From a4b66f99ebf25d41b581942d220a2e03b5ff49a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> Date: Sat, 3 May 2014 18:59:27 +0200 Subject: [PATCH] Imported Upstream version 1.3.1 --- ChangeLog | 5558 ++++++++++++++--- Makefile.in | 3 - NEWS | 110 +- README | 2 +- RELEASE | 186 +- aclocal.m4 | 2 - autogen.sh | 8 +- common/Makefile.in | 3 - common/gst-autogen.sh | 1 + common/gst.supp | 41 +- common/gstdoc-scangobj | 18 +- common/m4/Makefile.am | 1 - common/m4/Makefile.in | 4 - common/m4/as-scrub-include.m4 | 36 - common/m4/gst-error.m4 | 4 +- common/m4/gst-gettext.m4 | 7 + common/m4/gst-glib2.m4 | 3 - common/m4/gst-parser.m4 | 4 +- compile | 99 +- config.guess | 184 +- config.h.in | 15 +- config.sub | 106 +- configure | 650 +- configure.ac | 153 +- depcomp | 487 +- docs/Makefile.am | 4 + docs/Makefile.in | 8 +- docs/plugins/Makefile.am | 3 + docs/plugins/Makefile.in | 6 +- .../gst-plugins-good-plugins-docs.sgml | 3 + .../gst-plugins-good-plugins-sections.txt | 42 + docs/plugins/gst-plugins-good-plugins.args | 246 +- .../gst-plugins-good-plugins.hierarchy | 20 +- .../gst-plugins-good-plugins.interfaces | 2 + docs/plugins/gst-plugins-good-plugins.signals | 66 + docs/plugins/html/GstIirEqualizer.html | 80 +- docs/plugins/html/ch01.html | 27 +- docs/plugins/html/ch02.html | 18 +- docs/plugins/html/ch03.html | 18 +- .../gst-plugins-good-plugins-1.0.devhelp2 | 2338 +++---- .../gst-plugins-good-plugins-3gppmux.html | 309 +- ...plugins-good-plugins-GstVideoMixerPad.html | 45 +- .../gst-plugins-good-plugins-aacparse.html | 95 +- .../html/gst-plugins-good-plugins-aasink.html | 304 +- .../gst-plugins-good-plugins-ac3parse.html | 89 +- .../gst-plugins-good-plugins-agingtv.html | 151 +- .../gst-plugins-good-plugins-alawdec.html | 75 +- .../gst-plugins-good-plugins-alawenc.html | 87 +- .../html/gst-plugins-good-plugins-alpha.html | 268 +- .../gst-plugins-good-plugins-alphacolor.html | 162 +- .../gst-plugins-good-plugins-amrparse.html | 101 +- .../gst-plugins-good-plugins-apedemux.html | 91 +- .../gst-plugins-good-plugins-apev2mux.html | 76 +- ...-plugins-good-plugins-aspectratiocrop.html | 123 +- ...gst-plugins-good-plugins-audioamplify.html | 135 +- ...st-plugins-good-plugins-audiochebband.html | 204 +- ...t-plugins-good-plugins-audiocheblimit.html | 197 +- ...gst-plugins-good-plugins-audiodynamic.html | 151 +- .../gst-plugins-good-plugins-audioecho.html | 163 +- ...t-plugins-good-plugins-audiofirfilter.html | 209 +- ...t-plugins-good-plugins-audioiirfilter.html | 210 +- .../gst-plugins-good-plugins-audioinvert.html | 116 +- ...gst-plugins-good-plugins-audiokaraoke.html | 151 +- ...st-plugins-good-plugins-audiopanorama.html | 134 +- ...t-plugins-good-plugins-audiowsincband.html | 174 +- ...-plugins-good-plugins-audiowsinclimit.html | 174 +- .../gst-plugins-good-plugins-auparse.html | 75 +- ...st-plugins-good-plugins-autoaudiosink.html | 155 +- ...gst-plugins-good-plugins-autoaudiosrc.html | 131 +- ...st-plugins-good-plugins-autovideosink.html | 155 +- ...gst-plugins-good-plugins-autovideosrc.html | 131 +- .../gst-plugins-good-plugins-avidemux.html | 114 +- .../html/gst-plugins-good-plugins-avimux.html | 113 +- .../gst-plugins-good-plugins-avisubtitle.html | 80 +- .../gst-plugins-good-plugins-cacasink.html | 137 +- ...gst-plugins-good-plugins-cairooverlay.html | 173 +- .../gst-plugins-good-plugins-capssetter.html | 169 +- .../html/gst-plugins-good-plugins-cutter.html | 166 +- .../gst-plugins-good-plugins-dcaparse.html | 89 +- .../gst-plugins-good-plugins-deinterlace.html | 240 +- ...gst-plugins-good-plugins-deinterleave.html | 130 +- .../html/gst-plugins-good-plugins-dicetv.html | 164 +- ...-plugins-good-plugins-directsoundsink.html | 61 +- .../gst-plugins-good-plugins-dtmfsrc.html | 144 +- .../gst-plugins-good-plugins-dv1394src.html | 239 +- .../html/gst-plugins-good-plugins-dvdec.html | 135 +- .../gst-plugins-good-plugins-dvdemux.html | 71 +- .../html/gst-plugins-good-plugins-edgetv.html | 87 +- ...lugins-good-plugins-equalizer-10bands.html | 222 +- ...plugins-good-plugins-equalizer-3bands.html | 145 +- ...plugins-good-plugins-equalizer-nbands.html | 125 +- .../gst-plugins-good-plugins-flacdec.html | 75 +- .../gst-plugins-good-plugins-flacenc.html | 263 +- .../gst-plugins-good-plugins-flacparse.html | 122 +- .../gst-plugins-good-plugins-flactag.html | 74 +- .../gst-plugins-good-plugins-flvdemux.html | 81 +- .../html/gst-plugins-good-plugins-flvmux.html | 137 +- .../html/gst-plugins-good-plugins-flxdec.html | 75 +- .../html/gst-plugins-good-plugins-gamma.html | 121 +- ...st-plugins-good-plugins-gdkpixbufsink.html | 129 +- .../html/gst-plugins-good-plugins-goom.html | 85 +- .../gst-plugins-good-plugins-goom2k1.html | 85 +- .../gst-plugins-good-plugins-hdv1394src.html | 154 +- .../gst-plugins-good-plugins-icydemux.html | 83 +- .../gst-plugins-good-plugins-id3demux.html | 126 +- .../gst-plugins-good-plugins-id3v2mux.html | 76 +- .../gst-plugins-good-plugins-imagefreeze.html | 83 +- .../gst-plugins-good-plugins-interleave.html | 160 +- .../gst-plugins-good-plugins-ismlmux.html | 285 +- ...st-plugins-good-plugins-jackaudiosink.html | 153 +- ...gst-plugins-good-plugins-jackaudiosrc.html | 155 +- .../gst-plugins-good-plugins-jpegdec.html | 117 +- .../gst-plugins-good-plugins-jpegenc.html | 170 +- .../html/gst-plugins-good-plugins-level.html | 190 +- ...st-plugins-good-plugins-matroskademux.html | 110 +- .../gst-plugins-good-plugins-matroskamux.html | 169 +- .../html/gst-plugins-good-plugins-mj2mux.html | 266 +- .../gst-plugins-good-plugins-monoscope.html | 75 +- .../html/gst-plugins-good-plugins-mp4mux.html | 294 +- ...t-plugins-good-plugins-mpegaudioparse.html | 89 +- .../gst-plugins-good-plugins-mulawdec.html | 77 +- .../gst-plugins-good-plugins-mulawenc.html | 86 +- ...st-plugins-good-plugins-multifilesink.html | 282 +- ...gst-plugins-good-plugins-multifilesrc.html | 183 +- ...t-plugins-good-plugins-multipartdemux.html | 161 +- ...gst-plugins-good-plugins-multipartmux.html | 117 +- ...gst-plugins-good-plugins-multiudpsink.html | 698 ++- .../html/gst-plugins-good-plugins-optv.html | 140 +- .../gst-plugins-good-plugins-oss4sink.html | 146 +- .../gst-plugins-good-plugins-oss4src.html | 126 +- .../gst-plugins-good-plugins-osssink.html | 107 +- .../html/gst-plugins-good-plugins-osssrc.html | 126 +- ...gst-plugins-good-plugins-osxaudiosink.html | 86 +- .../gst-plugins-good-plugins-osxaudiosrc.html | 86 +- ...gst-plugins-good-plugins-osxvideosink.html | 100 +- .../gst-plugins-good-plugins-plugin-1394.html | 22 +- ...st-plugins-good-plugins-plugin-aasink.html | 22 +- .../gst-plugins-good-plugins-plugin-alaw.html | 22 +- ...gst-plugins-good-plugins-plugin-alpha.html | 22 +- ...lugins-good-plugins-plugin-alphacolor.html | 22 +- ...st-plugins-good-plugins-plugin-apetag.html | 22 +- ...t-plugins-good-plugins-plugin-audiofx.html | 22 +- ...t-plugins-good-plugins-plugin-auparse.html | 22 +- ...lugins-good-plugins-plugin-autodetect.html | 22 +- .../gst-plugins-good-plugins-plugin-avi.html | 22 +- ...-plugins-good-plugins-plugin-cacasink.html | 22 +- ...gst-plugins-good-plugins-plugin-cairo.html | 22 +- ...st-plugins-good-plugins-plugin-cutter.html | 22 +- ...gst-plugins-good-plugins-plugin-debug.html | 22 +- ...ugins-good-plugins-plugin-deinterlace.html | 22 +- ...ugins-good-plugins-plugin-directsound.html | 20 +- .../gst-plugins-good-plugins-plugin-dtmf.html | 22 +- .../gst-plugins-good-plugins-plugin-dv.html | 22 +- ...t-plugins-good-plugins-plugin-effectv.html | 22 +- ...plugins-good-plugins-plugin-equalizer.html | 22 +- .../gst-plugins-good-plugins-plugin-flac.html | 22 +- .../gst-plugins-good-plugins-plugin-flv.html | 22 +- ...st-plugins-good-plugins-plugin-flxdec.html | 22 +- ...plugins-good-plugins-plugin-gdkpixbuf.html | 22 +- .../gst-plugins-good-plugins-plugin-goom.html | 22 +- ...t-plugins-good-plugins-plugin-goom2k1.html | 22 +- ...-plugins-good-plugins-plugin-icydemux.html | 22 +- ...-plugins-good-plugins-plugin-id3demux.html | 22 +- ...ugins-good-plugins-plugin-imagefreeze.html | 22 +- ...lugins-good-plugins-plugin-interleave.html | 22 +- ...st-plugins-good-plugins-plugin-isomp4.html | 22 +- .../gst-plugins-good-plugins-plugin-jack.html | 22 +- .../gst-plugins-good-plugins-plugin-jpeg.html | 22 +- ...gst-plugins-good-plugins-plugin-level.html | 22 +- ...-plugins-good-plugins-plugin-matroska.html | 22 +- ...plugins-good-plugins-plugin-monoscope.html | 20 +- ...gst-plugins-good-plugins-plugin-mulaw.html | 22 +- ...plugins-good-plugins-plugin-multifile.html | 22 +- ...plugins-good-plugins-plugin-multipart.html | 22 +- ...ns-good-plugins-plugin-navigationtest.html | 22 +- .../gst-plugins-good-plugins-plugin-oss4.html | 22 +- ...-plugins-good-plugins-plugin-ossaudio.html | 22 +- ...-plugins-good-plugins-plugin-osxaudio.html | 20 +- ...-plugins-good-plugins-plugin-osxvideo.html | 20 +- .../gst-plugins-good-plugins-plugin-png.html | 22 +- ...lugins-good-plugins-plugin-pulseaudio.html | 22 +- ...lugins-good-plugins-plugin-replaygain.html | 22 +- .../gst-plugins-good-plugins-plugin-rtp.html | 30 +- ...lugins-good-plugins-plugin-rtpmanager.html | 30 +- .../gst-plugins-good-plugins-plugin-rtsp.html | 22 +- ...plugins-good-plugins-plugin-shapewipe.html | 22 +- ...lugins-good-plugins-plugin-shout2send.html | 24 +- ...gst-plugins-good-plugins-plugin-smpte.html | 22 +- .../gst-plugins-good-plugins-plugin-soup.html | 22 +- ...-plugins-good-plugins-plugin-spectrum.html | 22 +- ...gst-plugins-good-plugins-plugin-speex.html | 22 +- ...st-plugins-good-plugins-plugin-taglib.html | 22 +- .../gst-plugins-good-plugins-plugin-udp.html | 22 +- ...gins-good-plugins-plugin-video4linux2.html | 22 +- ...-plugins-good-plugins-plugin-videobox.html | 22 +- ...plugins-good-plugins-plugin-videocrop.html | 22 +- ...ugins-good-plugins-plugin-videofilter.html | 22 +- ...lugins-good-plugins-plugin-videomixer.html | 22 +- .../gst-plugins-good-plugins-plugin-vpx.html | 22 +- ...-plugins-good-plugins-plugin-waveform.html | 20 +- ...st-plugins-good-plugins-plugin-wavenc.html | 22 +- ...t-plugins-good-plugins-plugin-wavpack.html | 22 +- ...-plugins-good-plugins-plugin-wavparse.html | 22 +- ...plugins-good-plugins-plugin-ximagesrc.html | 22 +- ...st-plugins-good-plugins-plugin-y4menc.html | 22 +- .../html/gst-plugins-good-plugins-pngdec.html | 73 +- .../html/gst-plugins-good-plugins-pngenc.html | 118 +- ...t-plugins-good-plugins-progressreport.html | 178 +- .../gst-plugins-good-plugins-pulsesink.html | 204 +- .../gst-plugins-good-plugins-pulsesrc.html | 219 +- .../gst-plugins-good-plugins-qtdemux.html | 143 +- ...st-plugins-good-plugins-qtmoovrecover.html | 223 +- .../html/gst-plugins-good-plugins-qtmux.html | 277 +- .../gst-plugins-good-plugins-quarktv.html | 116 +- .../gst-plugins-good-plugins-radioactv.html | 163 +- .../html/gst-plugins-good-plugins-revtv.html | 140 +- .../gst-plugins-good-plugins-rganalysis.html | 245 +- .../gst-plugins-good-plugins-rglimiter.html | 120 +- .../gst-plugins-good-plugins-rgvolume.html | 311 +- .../gst-plugins-good-plugins-rippletv.html | 129 +- .../gst-plugins-good-plugins-rtpL16depay.html | 90 +- .../gst-plugins-good-plugins-rtpL16pay.html | 92 +- .../gst-plugins-good-plugins-rtpac3depay.html | 90 +- .../gst-plugins-good-plugins-rtpac3pay.html | 90 +- .../gst-plugins-good-plugins-rtpamrdepay.html | 90 +- .../gst-plugins-good-plugins-rtpamrpay.html | 90 +- .../html/gst-plugins-good-plugins-rtpbin.html | 1472 +++-- .../gst-plugins-good-plugins-rtpbvdepay.html | 60 +- .../gst-plugins-good-plugins-rtpbvpay.html | 60 +- .../html/gst-plugins-good-plugins-rtpdec.html | 510 +- .../gst-plugins-good-plugins-rtpdtmfmux.html | 91 +- .../gst-plugins-good-plugins-rtpdtmfsrc.html | 223 +- .../gst-plugins-good-plugins-rtpj2kpay.html | 114 +- ...-plugins-good-plugins-rtpjitterbuffer.html | 625 +- .../gst-plugins-good-plugins-rtpjpegpay.html | 142 +- .../html/gst-plugins-good-plugins-rtpmux.html | 158 +- .../gst-plugins-good-plugins-rtpptdemux.html | 307 +- ...st-plugins-good-plugins-rtprtxreceive.html | 387 ++ .../gst-plugins-good-plugins-rtprtxsend.html | 274 + .../gst-plugins-good-plugins-rtpsbcpay.html | 102 +- .../gst-plugins-good-plugins-rtpsession.html | 781 ++- ...gst-plugins-good-plugins-rtpssrcdemux.html | 263 +- .../gst-plugins-good-plugins-rtspsrc.html | 756 ++- .../gst-plugins-good-plugins-sbcparse.html | 83 +- .../gst-plugins-good-plugins-scaletempo.html | 168 +- ...gst-plugins-good-plugins-shagadelictv.html | 85 +- .../gst-plugins-good-plugins-shapewipe.html | 134 +- .../gst-plugins-good-plugins-shout2send.html | 394 ++ .../html/gst-plugins-good-plugins-smpte.html | 177 +- .../gst-plugins-good-plugins-smptealpha.html | 179 +- .../gst-plugins-good-plugins-souphttpsrc.html | 392 +- .../gst-plugins-good-plugins-spectrum.html | 220 +- .../gst-plugins-good-plugins-speexdec.html | 102 +- .../gst-plugins-good-plugins-speexenc.html | 207 +- ...gst-plugins-good-plugins-splitfilesrc.html | 126 +- .../gst-plugins-good-plugins-streaktv.html | 114 +- .../gst-plugins-good-plugins-taginject.html | 119 +- .../gst-plugins-good-plugins-udpsink.html | 135 +- .../html/gst-plugins-good-plugins-udpsrc.html | 398 +- .../gst-plugins-good-plugins-v4l2radio.html | 117 +- .../gst-plugins-good-plugins-v4l2sink.html | 445 +- .../gst-plugins-good-plugins-v4l2src.html | 424 +- .../gst-plugins-good-plugins-vertigotv.html | 175 +- ...gst-plugins-good-plugins-videobalance.html | 159 +- .../gst-plugins-good-plugins-videobox.html | 303 +- .../gst-plugins-good-plugins-videocrop.html | 173 +- .../gst-plugins-good-plugins-videoflip.html | 208 +- .../gst-plugins-good-plugins-videomixer.html | 71 +- .../html/gst-plugins-good-plugins-vp8dec.html | 148 +- .../html/gst-plugins-good-plugins-vp8enc.html | 752 ++- .../html/gst-plugins-good-plugins-warptv.html | 85 +- ...gst-plugins-good-plugins-waveformsink.html | 61 +- .../html/gst-plugins-good-plugins-wavenc.html | 84 +- .../gst-plugins-good-plugins-wavpackdec.html | 73 +- .../gst-plugins-good-plugins-wavpackenc.html | 173 +- ...gst-plugins-good-plugins-wavpackparse.html | 89 +- .../gst-plugins-good-plugins-wavparse.html | 130 +- .../gst-plugins-good-plugins-webmmux.html | 86 +- .../gst-plugins-good-plugins-ximagesrc.html | 218 +- .../html/gst-plugins-good-plugins-y4menc.html | 77 +- docs/plugins/html/home.png | Bin 654 -> 256 bytes docs/plugins/html/index.html | 17 +- docs/plugins/html/index.sgml | 1241 ++-- docs/plugins/html/left-insensitive.png | Bin 0 -> 395 bytes docs/plugins/html/left.png | Bin 459 -> 262 bytes docs/plugins/html/right-insensitive.png | Bin 0 -> 373 bytes docs/plugins/html/right.png | Bin 472 -> 261 bytes docs/plugins/html/style.css | 247 +- docs/plugins/html/up-insensitive.png | Bin 0 -> 374 bytes docs/plugins/html/up.png | Bin 406 -> 260 bytes docs/plugins/inspect/plugin-1394.xml | 2 +- docs/plugins/inspect/plugin-aasink.xml | 2 +- docs/plugins/inspect/plugin-alaw.xml | 2 +- docs/plugins/inspect/plugin-alpha.xml | 2 +- docs/plugins/inspect/plugin-alphacolor.xml | 2 +- docs/plugins/inspect/plugin-apetag.xml | 2 +- docs/plugins/inspect/plugin-audiofx.xml | 2 +- docs/plugins/inspect/plugin-audioparsers.xml | 2 +- docs/plugins/inspect/plugin-auparse.xml | 2 +- docs/plugins/inspect/plugin-autodetect.xml | 2 +- docs/plugins/inspect/plugin-avi.xml | 8 +- docs/plugins/inspect/plugin-cacasink.xml | 2 +- docs/plugins/inspect/plugin-cairo.xml | 6 +- docs/plugins/inspect/plugin-cutter.xml | 6 +- docs/plugins/inspect/plugin-debug.xml | 2 +- docs/plugins/inspect/plugin-deinterlace.xml | 6 +- docs/plugins/inspect/plugin-dtmf.xml | 2 +- docs/plugins/inspect/plugin-dv.xml | 2 +- docs/plugins/inspect/plugin-effectv.xml | 2 +- docs/plugins/inspect/plugin-equalizer.xml | 2 +- docs/plugins/inspect/plugin-flac.xml | 6 +- docs/plugins/inspect/plugin-flv.xml | 2 +- docs/plugins/inspect/plugin-flxdec.xml | 2 +- docs/plugins/inspect/plugin-gdkpixbuf.xml | 2 +- docs/plugins/inspect/plugin-goom.xml | 2 +- docs/plugins/inspect/plugin-goom2k1.xml | 2 +- docs/plugins/inspect/plugin-icydemux.xml | 2 +- docs/plugins/inspect/plugin-id3demux.xml | 2 +- docs/plugins/inspect/plugin-imagefreeze.xml | 2 +- docs/plugins/inspect/plugin-interleave.xml | 2 +- docs/plugins/inspect/plugin-isomp4.xml | 20 +- docs/plugins/inspect/plugin-jack.xml | 2 +- docs/plugins/inspect/plugin-jpeg.xml | 2 +- docs/plugins/inspect/plugin-level.xml | 2 +- docs/plugins/inspect/plugin-matroska.xml | 6 +- docs/plugins/inspect/plugin-mulaw.xml | 2 +- docs/plugins/inspect/plugin-multifile.xml | 2 +- docs/plugins/inspect/plugin-multipart.xml | 2 +- .../plugins/inspect/plugin-navigationtest.xml | 2 +- docs/plugins/inspect/plugin-oss4.xml | 2 +- docs/plugins/inspect/plugin-ossaudio.xml | 2 +- docs/plugins/inspect/plugin-png.xml | 2 +- docs/plugins/inspect/plugin-pulseaudio.xml | 2 +- docs/plugins/inspect/plugin-replaygain.xml | 2 +- docs/plugins/inspect/plugin-rtp.xml | 44 +- docs/plugins/inspect/plugin-rtpmanager.xml | 52 +- docs/plugins/inspect/plugin-rtsp.xml | 2 +- docs/plugins/inspect/plugin-shapewipe.xml | 2 +- docs/plugins/inspect/plugin-shout2send.xml | 2 +- docs/plugins/inspect/plugin-smpte.xml | 2 +- docs/plugins/inspect/plugin-soup.xml | 2 +- docs/plugins/inspect/plugin-spectrum.xml | 2 +- docs/plugins/inspect/plugin-speex.xml | 2 +- docs/plugins/inspect/plugin-taglib.xml | 2 +- docs/plugins/inspect/plugin-udp.xml | 2 +- docs/plugins/inspect/plugin-video4linux2.xml | 6 +- docs/plugins/inspect/plugin-videobox.xml | 2 +- docs/plugins/inspect/plugin-videocrop.xml | 2 +- docs/plugins/inspect/plugin-videofilter.xml | 2 +- docs/plugins/inspect/plugin-videomixer.xml | 2 +- docs/plugins/inspect/plugin-vpx.xml | 2 +- docs/plugins/inspect/plugin-wavenc.xml | 2 +- docs/plugins/inspect/plugin-wavpack.xml | 2 +- docs/plugins/inspect/plugin-wavparse.xml | 2 +- docs/plugins/inspect/plugin-ximagesrc.xml | 2 +- docs/plugins/inspect/plugin-y4menc.xml | 2 +- ext/Makefile.in | 3 - ext/aalib/Makefile.in | 3 - ext/cairo/Makefile.in | 3 - ext/cairo/gstcairooverlay.c | 29 +- ext/dv/Makefile.in | 3 - ext/dv/gstdvdec.c | 18 +- ext/dv/gstdvdemux.c | 2 - ext/flac/Makefile.in | 3 - ext/flac/gstflacdec.c | 24 +- ext/flac/gstflacenc.c | 6 +- ext/gdk_pixbuf/Makefile.in | 3 - ext/gdk_pixbuf/gstgdkpixbufoverlay.c | 3 - ext/gdk_pixbuf/gstgdkpixbufsink.c | 3 - ext/jack/Makefile.in | 3 - ext/jack/gstjackaudioclient.c | 15 + ext/jack/gstjackaudiosink.c | 10 +- ext/jack/gstjackaudiosrc.c | 10 +- ext/jpeg/Makefile.in | 3 - ext/jpeg/gstjpegdec.c | 18 +- ext/libcaca/Makefile.in | 3 - ext/libpng/Makefile.in | 3 - ext/libpng/gstpngdec.c | 20 +- ext/pulse/Makefile.am | 2 + ext/pulse/Makefile.in | 14 +- ext/pulse/plugin.c | 5 + ext/pulse/pulsedevicemonitor.c | 672 ++ ext/pulse/pulsedevicemonitor.h | 97 + ext/pulse/pulsesink.c | 116 +- ext/pulse/pulsesrc.c | 12 +- ext/pulse/pulseutil.c | 110 + ext/pulse/pulseutil.h | 2 + ext/raw1394/Makefile.in | 3 - ext/raw1394/gstdv1394src.c | 6 +- ext/raw1394/gsthdv1394src.c | 22 +- ext/shout2/Makefile.in | 3 - ext/shout2/gstshout2.c | 101 +- ext/shout2/gstshout2.h | 2 +- ext/soup/Makefile.am | 4 +- ext/soup/Makefile.in | 16 +- ext/soup/gstsoup.c | 3 + ext/soup/gstsouphttpclientsink.c | 32 +- ext/soup/gstsouphttpclientsink.h | 2 +- ext/soup/gstsouphttpsrc.c | 433 +- ext/soup/gstsouphttpsrc.h | 11 + ext/soup/gstsouputils.c | 97 + ext/soup/gstsouputils.h | 31 + ext/speex/Makefile.in | 3 - ext/speex/gstspeexdec.c | 12 +- ext/taglib/Makefile.in | 3 - ext/taglib/gstid3v2mux.cc | 4 +- ext/vpx/Makefile.in | 3 - ext/vpx/gstvp8dec.c | 2 + ext/vpx/gstvp8enc.c | 2 +- ext/vpx/gstvp9dec.c | 2 + ext/wavpack/Makefile.in | 3 - ext/wavpack/gstwavpackcommon.c | 2 +- ext/wavpack/gstwavpackdec.c | 2 + ext/wavpack/gstwavpackstreamreader.c | 2 +- gst-plugins-good.doap | 28 +- gst-plugins-good.spec | 6 +- gst-plugins-good.spec.in | 6 +- gst/Makefile.in | 3 - gst/alpha/Makefile.in | 3 - gst/apetag/Makefile.in | 3 - gst/apetag/gstapedemux.c | 2 +- gst/audiofx/Makefile.in | 3 - gst/audiofx/audioecho.c | 1 - gst/audiofx/audiofxbasefirfilter.c | 10 +- gst/audiofx/audiopanorama.c | 6 +- gst/audiofx/audiopanoramaorc-dist.c | 40 +- gst/audioparsers/Makefile.in | 3 - gst/audioparsers/gstaacparse.c | 85 +- gst/audioparsers/gstaacparse.h | 2 + gst/audioparsers/gstac3parse.c | 119 +- gst/audioparsers/gstac3parse.h | 1 + gst/audioparsers/gstamrparse.c | 36 +- gst/audioparsers/gstamrparse.h | 1 + gst/audioparsers/gstdcaparse.c | 77 +- gst/audioparsers/gstdcaparse.h | 2 + gst/audioparsers/gstflacparse.c | 70 +- gst/audioparsers/gstflacparse.h | 2 + gst/audioparsers/gstmpegaudioparse.c | 66 +- gst/audioparsers/gstsbcparse.c | 78 +- gst/audioparsers/gstsbcparse.h | 2 + gst/audioparsers/gstwavpackparse.c | 76 +- gst/audioparsers/gstwavpackparse.h | 2 + gst/auparse/Makefile.in | 3 - gst/autodetect/Makefile.in | 3 - gst/autodetect/gstautoaudiosink.c | 355 +- gst/autodetect/gstautoaudiosink.h | 10 +- gst/autodetect/gstautoaudiosrc.c | 369 +- gst/autodetect/gstautoaudiosrc.h | 10 +- gst/autodetect/gstautodetect.c | 439 ++ gst/autodetect/gstautodetect.h | 46 + gst/autodetect/gstautovideosink.c | 341 +- gst/autodetect/gstautovideosink.h | 10 +- gst/autodetect/gstautovideosrc.c | 355 +- gst/autodetect/gstautovideosrc.h | 10 +- gst/avi/Makefile.in | 3 - gst/avi/gstavidemux.c | 428 +- gst/avi/gstavidemux.h | 4 +- gst/avi/gstavimux.c | 12 +- gst/avi/gstavisubtitle.c | 2 - gst/cutter/Makefile.in | 3 - gst/cutter/gstcutter.c | 4 +- gst/debugutils/Makefile.in | 3 - gst/debugutils/gstcapssetter.c | 38 +- gst/deinterlace/Makefile.in | 3 - gst/deinterlace/gstdeinterlace.c | 75 +- gst/deinterlace/tvtime-dist.c | 6 +- gst/dtmf/Makefile.in | 3 - gst/dtmf/gstrtpdtmfsrc.c | 2 +- gst/effectv/Makefile.in | 3 - gst/equalizer/Makefile.in | 3 - gst/flv/Makefile.in | 3 - gst/flv/gstflvmux.c | 8 +- gst/flx/Makefile.in | 3 - gst/flx/flx_fmt.h | 2 +- gst/flx/gstflxdec.c | 2 +- gst/goom/Makefile.in | 3 - gst/goom/config_param.c | 2 - gst/goom/filters.c | 12 +- gst/goom2k1/Makefile.in | 3 - gst/goom2k1/filters.c | 33 - gst/icydemux/Makefile.in | 3 - gst/icydemux/gsticydemux.c | 5 +- gst/id3demux/Makefile.in | 3 - gst/imagefreeze/Makefile.in | 3 - gst/imagefreeze/gstimagefreeze.c | 81 +- gst/interleave/Makefile.in | 3 - gst/interleave/deinterleave.c | 26 +- gst/interleave/interleave.c | 53 +- gst/isomp4/Makefile.am | 2 - gst/isomp4/Makefile.in | 5 - gst/isomp4/atoms.c | 249 +- gst/isomp4/atoms.h | 38 +- gst/isomp4/atomsrecovery.c | 3 +- gst/isomp4/fourcc.h | 354 +- gst/isomp4/ftypcc.h | 68 - gst/isomp4/gstqtmoovrecover.c | 2 - gst/isomp4/gstqtmux-doc.c | 154 +- gst/isomp4/gstqtmux-doc.h | 4 +- gst/isomp4/gstqtmux.c | 361 +- gst/isomp4/gstqtmux.h | 14 +- gst/isomp4/gstqtmuxmap.c | 25 +- gst/isomp4/gstqtmuxmap.h | 1 + gst/isomp4/qtdemux.c | 726 ++- gst/isomp4/qtdemux.h | 16 +- gst/isomp4/qtdemux_dump.c | 105 +- gst/isomp4/qtdemux_fourcc.h | 253 - gst/isomp4/qtdemux_types.c | 6 +- gst/law/Makefile.in | 3 - gst/law/mulaw-decode.c | 1 + gst/level/Makefile.in | 3 - gst/level/gstlevel.c | 12 +- gst/matroska/Makefile.in | 3 - gst/matroska/ebml-read.c | 2 +- gst/matroska/ebml-write.c | 13 +- gst/matroska/matroska-demux.c | 295 +- gst/matroska/matroska-ids.c | 35 + gst/matroska/matroska-ids.h | 3 + gst/matroska/matroska-mux.c | 112 +- gst/matroska/matroska-mux.h | 6 + gst/matroska/matroska-parse.c | 173 +- gst/matroska/matroska-read-common.c | 122 +- gst/matroska/matroska-read-common.h | 8 + gst/matroska/webm-mux.c | 1 + gst/monoscope/Makefile.in | 3 - gst/multifile/Makefile.in | 3 - gst/multifile/gstmultifilesink.c | 18 +- gst/multifile/gstmultifilesink.h | 4 +- gst/multifile/gstmultifilesrc.c | 60 + gst/multifile/gstmultifilesrc.h | 2 + gst/multifile/gstsplitfilesrc.c | 2 - gst/multipart/Makefile.in | 3 - gst/multipart/multipartdemux.c | 4 +- gst/replaygain/Makefile.in | 3 - gst/replaygain/gstrganalysis.c | 6 +- gst/replaygain/gstrgvolume.c | 35 +- gst/rtp/Makefile.am | 8 +- gst/rtp/Makefile.in | 30 +- gst/rtp/gstrtp.c | 8 + gst/rtp/gstrtpL16depay.c | 2 - gst/rtp/gstrtpL16pay.c | 2 - gst/rtp/gstrtpac3depay.c | 49 - gst/rtp/gstrtpac3pay.c | 2 - gst/rtp/gstrtpamrdepay.c | 2 - gst/rtp/gstrtpamrpay.c | 2 - gst/rtp/gstrtpbvdepay.c | 2 - gst/rtp/gstrtpbvpay.c | 2 - gst/rtp/gstrtpgstpay.c | 3 + gst/rtp/gstrtph264pay.c | 26 +- gst/rtp/gstrtpjpegdepay.c | 6 + gst/rtp/gstrtpqcelpdepay.c | 3 - gst/rtp/gstrtpqdmdepay.c | 4 +- gst/rtp/gstrtpstreamdepay.c | 219 + gst/rtp/gstrtpstreamdepay.h | 57 + gst/rtp/gstrtpstreampay.c | 287 + gst/rtp/gstrtpstreampay.h | 54 + gst/rtp/gstrtptheorapay.c | 12 +- gst/rtp/gstrtpvorbispay.c | 12 +- gst/rtp/gstrtpvrawdepay.c | 7 +- gst/rtp/gstrtpvrawpay.c | 23 +- gst/rtpmanager/Makefile.am | 7 +- gst/rtpmanager/Makefile.in | 29 +- gst/rtpmanager/gstrtpbin.c | 890 ++- gst/rtpmanager/gstrtpbin.h | 12 +- gst/rtpmanager/gstrtpjitterbuffer.c | 725 ++- gst/rtpmanager/gstrtpjitterbuffer.h | 2 + gst/rtpmanager/gstrtpmanager.c | 8 + gst/rtpmanager/gstrtpmux.c | 5 +- gst/rtpmanager/gstrtpptdemux.c | 2 - gst/rtpmanager/gstrtprtxreceive.c | 679 ++ gst/rtpmanager/gstrtprtxreceive.h | 78 + gst/rtpmanager/gstrtprtxsend.c | 887 +++ gst/rtpmanager/gstrtprtxsend.h | 84 + gst/rtpmanager/gstrtpsession.c | 140 +- gst/rtpmanager/gstrtpssrcdemux.c | 2 - gst/rtpmanager/rtpjitterbuffer.c | 106 +- gst/rtpmanager/rtpjitterbuffer.h | 14 +- gst/rtpmanager/rtpsession.c | 306 +- gst/rtpmanager/rtpsession.h | 19 +- gst/rtpmanager/rtpsource.c | 83 +- gst/rtpmanager/rtpsource.h | 2 + gst/rtpmanager/rtpstats.c | 3 + gst/rtpmanager/rtpstats.h | 3 + gst/rtsp/Makefile.in | 3 - gst/rtsp/gstrtpdec.c | 2 - gst/rtsp/gstrtspsrc.c | 970 ++- gst/rtsp/gstrtspsrc.h | 17 +- gst/shapewipe/Makefile.in | 3 - gst/smpte/Makefile.in | 3 - gst/smpte/gstsmpte.c | 2 +- gst/smpte/gstsmptealpha.c | 2 - gst/spectrum/Makefile.in | 3 - gst/spectrum/gstspectrum.c | 2 - gst/udp/Makefile.in | 3 - gst/udp/gstmultiudpsink.c | 24 +- gst/udp/gstudpsrc.c | 121 +- gst/videobox/Makefile.in | 3 - gst/videobox/gstvideobox.c | 6 +- gst/videobox/gstvideoboxorc-dist.c | 4 +- gst/videocrop/Makefile.in | 3 - gst/videofilter/Makefile.in | 3 - gst/videofilter/gstgamma.c | 2 - gst/videofilter/gstvideobalance.c | 2 - gst/videofilter/gstvideoflip.c | 134 +- gst/videofilter/gstvideoflip.h | 6 +- gst/videomixer/Makefile.in | 3 - gst/videomixer/blend.c | 18 +- gst/videomixer/videoconvert.c | 28 +- gst/videomixer/videomixer2.c | 125 +- gst/videomixer/videomixer2.h | 7 +- gst/videomixer/videomixerorc-dist.c | 210 +- gst/wavenc/Makefile.in | 3 - gst/wavparse/Makefile.in | 3 - gst/wavparse/gstwavparse.c | 576 +- gst/y4m/Makefile.in | 3 - gst/y4m/gsty4mencode.c | 43 +- install-sh | 14 +- m4/Makefile.in | 3 - missing | 414 +- pkgconfig/Makefile.in | 3 - po/Makefile.in.in | 3 - po/Makevars | 2 +- po/POTFILES.in | 1 - po/af.gmo | Bin 666 -> 666 bytes po/af.po | 34 +- po/az.gmo | Bin 723 -> 723 bytes po/az.po | 34 +- po/bg.gmo | Bin 11149 -> 11149 bytes po/bg.po | 37 +- po/ca.gmo | Bin 9124 -> 9124 bytes po/ca.po | 40 +- po/cs.gmo | Bin 11134 -> 11134 bytes po/cs.po | 36 +- po/da.gmo | Bin 10193 -> 10193 bytes po/da.po | 36 +- po/de.gmo | Bin 11230 -> 11230 bytes po/de.po | 38 +- po/el.gmo | Bin 11597 -> 11597 bytes po/el.po | 36 +- po/en_GB.gmo | Bin 671 -> 671 bytes po/en_GB.po | 34 +- po/eo.gmo | Bin 1328 -> 1328 bytes po/eo.po | 34 +- po/es.gmo | Bin 9369 -> 9369 bytes po/es.po | 40 +- po/eu.gmo | Bin 7626 -> 7626 bytes po/eu.po | 39 +- po/fi.gmo | Bin 8041 -> 8041 bytes po/fi.po | 36 +- po/fr.gmo | Bin 9222 -> 9222 bytes po/fr.po | 40 +- po/gl.gmo | Bin 11055 -> 11055 bytes po/gl.po | 37 +- po/gst-plugins-good-1.0.pot | 183 +- po/hr.gmo | Bin 8525 -> 8525 bytes po/hr.po | 36 +- po/hu.gmo | Bin 10807 -> 11142 bytes po/hu.po | 54 +- po/id.gmo | Bin 10210 -> 10210 bytes po/id.po | 36 +- po/it.gmo | Bin 8539 -> 8539 bytes po/it.po | 37 +- po/ja.gmo | Bin 12193 -> 12193 bytes po/ja.po | 37 +- po/lt.gmo | Bin 7460 -> 7460 bytes po/lt.po | 36 +- po/lv.gmo | Bin 8543 -> 10633 bytes po/lv.po | 230 +- po/mt.gmo | Bin 5942 -> 5942 bytes po/mt.po | 38 +- po/nb.gmo | Bin 10145 -> 10145 bytes po/nb.po | 36 +- po/nl.gmo | Bin 10595 -> 10595 bytes po/nl.po | 36 +- po/or.gmo | Bin 832 -> 832 bytes po/or.po | 34 +- po/pl.gmo | Bin 11035 -> 11035 bytes po/pl.po | 37 +- po/pt_BR.gmo | Bin 11035 -> 11035 bytes po/pt_BR.po | 36 +- po/ro.gmo | Bin 8001 -> 8001 bytes po/ro.po | 39 +- po/ru.gmo | Bin 14112 -> 14112 bytes po/ru.po | 36 +- po/sk.gmo | Bin 10893 -> 10893 bytes po/sk.po | 36 +- po/sl.gmo | Bin 9825 -> 10519 bytes po/sl.po | 86 +- po/sq.gmo | Bin 685 -> 685 bytes po/sq.po | 34 +- po/sr.gmo | Bin 13866 -> 13866 bytes po/sr.po | 36 +- po/sv.gmo | Bin 8861 -> 8861 bytes po/sv.po | 36 +- po/tr.gmo | Bin 9917 -> 9917 bytes po/tr.po | 36 +- po/uk.gmo | Bin 14097 -> 14097 bytes po/uk.po | 37 +- po/vi.gmo | Bin 12220 -> 12220 bytes po/vi.po | 36 +- po/zh_CN.gmo | Bin 6295 -> 6295 bytes po/zh_CN.po | 35 +- po/zh_HK.gmo | Bin 1571 -> 1571 bytes po/zh_HK.po | 37 +- po/zh_TW.gmo | Bin 1570 -> 1570 bytes po/zh_TW.po | 37 +- sys/Makefile.in | 3 - sys/directsound/Makefile.in | 3 - sys/oss/Makefile.in | 3 - sys/oss4/Makefile.in | 3 - sys/oss4/oss4-audio.c | 2 +- sys/oss4/oss4-audio.h | 2 +- sys/oss4/oss4-property-probe.c | 81 +- sys/oss4/oss4-sink.c | 2 - sys/oss4/oss4-source.c | 2 - sys/osxaudio/Makefile.in | 3 - sys/osxaudio/gstosxaudioringbuffer.c | 2 - sys/osxaudio/gstosxaudiosink.c | 6 - sys/osxaudio/gstosxcoreaudio.h | 2 +- sys/osxvideo/Makefile.am | 6 +- sys/osxvideo/Makefile.in | 9 +- sys/osxvideo/cocoawindow.h | 2 +- sys/osxvideo/cocoawindow.m | 75 +- sys/osxvideo/osxvideosink.h | 22 +- sys/osxvideo/osxvideosink.m | 124 +- sys/sunaudio/Makefile.in | 3 - sys/v4l2/Makefile.am | 21 +- sys/v4l2/Makefile.in | 63 +- sys/v4l2/ext/types-compat.h | 47 + sys/v4l2/ext/v4l2-common.h | 71 + sys/v4l2/ext/v4l2-controls.h | 889 +++ sys/v4l2/ext/videodev2.h | 1964 ++++++ sys/v4l2/gstv4l2.c | 5 + sys/v4l2/gstv4l2bufferpool.c | 664 +- sys/v4l2/gstv4l2bufferpool.h | 23 +- sys/v4l2/gstv4l2devicemonitor.c | 509 ++ sys/v4l2/gstv4l2devicemonitor.h | 101 + sys/v4l2/gstv4l2object.c | 1453 +++-- sys/v4l2/gstv4l2object.h | 154 +- sys/v4l2/gstv4l2sink.c | 69 - sys/v4l2/gstv4l2src.c | 104 +- sys/v4l2/gstv4l2videodec.c | 945 +++ sys/v4l2/gstv4l2videodec.h | 83 + sys/v4l2/gstv4l2videooverlay.c | 492 -- sys/v4l2/gstv4l2videooverlay.h | 69 - sys/v4l2/gstv4l2vidorient.c | 18 +- sys/v4l2/v4l2_calls.c | 217 +- sys/v4l2/v4l2_calls.h | 1 + sys/waveform/Makefile.in | 3 - sys/ximage/Makefile.in | 3 - sys/ximage/gstximagesrc.c | 59 +- tests/Makefile.in | 3 - tests/check/Makefile.am | 344 +- tests/check/Makefile.in | 796 ++- tests/check/elements/aacparse.c | 49 + tests/check/elements/autodetect.c | 192 +- tests/check/elements/interleave.c | 2 + tests/check/elements/rtpaux.c | 412 ++ tests/check/elements/rtpbin.c | 262 +- tests/check/elements/rtpcollision.c | 462 ++ tests/check/elements/rtpjitterbuffer.c | 146 +- tests/check/elements/rtprtx.c | 1514 +++++ tests/check/elements/rtpsession.c | 435 ++ tests/check/elements/shapewipe.c | 14 +- tests/check/elements/souphttpsrc.c | 4 +- tests/check/elements/videofilter.c | 55 +- tests/check/elements/videomixer.c | 2 + tests/check/elements/wavpackdec.c | 14 +- tests/check/elements/wavparse.c | 11 +- tests/examples/Makefile.in | 3 - tests/examples/audiofx/Makefile.in | 3 - tests/examples/cairo/Makefile.in | 3 - tests/examples/equalizer/Makefile.in | 3 - tests/examples/jack/Makefile.in | 3 - tests/examples/level/Makefile.in | 3 - tests/examples/pulse/Makefile.in | 3 - tests/examples/rtp/Makefile.am | 11 +- tests/examples/rtp/Makefile.in | 68 +- tests/examples/rtp/client-rtpaux.c | 373 ++ tests/examples/rtp/server-rtpaux.c | 295 + tests/examples/shapewipe/Makefile.in | 3 - tests/examples/spectrum/Makefile.in | 3 - tests/examples/v4l2/Makefile.in | 3 - tests/files/Makefile.in | 3 - tests/icles/Makefile.am | 5 - tests/icles/Makefile.in | 24 +- win32/common/config.h | 23 +- 786 files changed, 51460 insertions(+), 25432 deletions(-) delete mode 100644 common/m4/as-scrub-include.m4 create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html create mode 100644 docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html create mode 100644 docs/plugins/html/gst-plugins-good-plugins-shout2send.html create mode 100644 docs/plugins/html/left-insensitive.png create mode 100644 docs/plugins/html/right-insensitive.png create mode 100644 docs/plugins/html/up-insensitive.png create mode 100644 ext/pulse/pulsedevicemonitor.c create mode 100644 ext/pulse/pulsedevicemonitor.h create mode 100644 ext/soup/gstsouputils.c create mode 100644 ext/soup/gstsouputils.h delete mode 100644 gst/isomp4/ftypcc.h delete mode 100644 gst/isomp4/qtdemux_fourcc.h create mode 100644 gst/rtp/gstrtpstreamdepay.c create mode 100644 gst/rtp/gstrtpstreamdepay.h create mode 100644 gst/rtp/gstrtpstreampay.c create mode 100644 gst/rtp/gstrtpstreampay.h create mode 100644 gst/rtpmanager/gstrtprtxreceive.c create mode 100644 gst/rtpmanager/gstrtprtxreceive.h create mode 100644 gst/rtpmanager/gstrtprtxsend.c create mode 100644 gst/rtpmanager/gstrtprtxsend.h create mode 100644 sys/v4l2/ext/types-compat.h create mode 100644 sys/v4l2/ext/v4l2-common.h create mode 100644 sys/v4l2/ext/v4l2-controls.h create mode 100644 sys/v4l2/ext/videodev2.h create mode 100644 sys/v4l2/gstv4l2devicemonitor.c create mode 100644 sys/v4l2/gstv4l2devicemonitor.h create mode 100644 sys/v4l2/gstv4l2videodec.c create mode 100644 sys/v4l2/gstv4l2videodec.h delete mode 100644 sys/v4l2/gstv4l2videooverlay.c delete mode 100644 sys/v4l2/gstv4l2videooverlay.h create mode 100644 tests/check/elements/rtpaux.c create mode 100644 tests/check/elements/rtpcollision.c create mode 100644 tests/check/elements/rtprtx.c create mode 100644 tests/check/elements/rtpsession.c create mode 100644 tests/examples/rtp/client-rtpaux.c create mode 100644 tests/examples/rtp/server-rtpaux.c diff --git a/ChangeLog b/ChangeLog index 8540cdc39..136ab1035 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,803 +1,4157 @@ -2014-04-18 11:11:14 +0200 Wim Taymans <wtaymans@redhat.com> - - * gst/rtpmanager/gstrtpjitterbuffer.c: - * gst/rtpmanager/rtpjitterbuffer.c: - * gst/rtpmanager/rtpjitterbuffer.h: - jitterbuffer: improve EOS handling - Make a new method to disable the jitterbuffer buffering. - Rework the update_estimated_eos() method. Calculate how much time - there is left to play. If we have less than the delay of the - jitterbuffer, we disabled buffering because we might never be able to - fill the complete jitterbuffer again. - If we receive an EOS event, disable buffering. We will drain the - buffer and eventually push the EOS event out. - When we reach the estimated NPT timeout and we didn't receive an EOS - event, make one and queue it so that it can be pushed. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728017 - Conflicts: - gst/rtpmanager/gstrtpjitterbuffer.c +=== release 1.3.1 === -=== release 1.2.4 === +2014-05-03 Sebastian Dröge <slomo@coaxion.net> -2014-04-18 12:49:26 +0200 Sebastian Dröge <sebastian@centricular.com> - - * ChangeLog: - * NEWS: - * RELEASE: * configure.ac: - * docs/plugins/gst-plugins-good-plugins.hierarchy: - * docs/plugins/gst-plugins-good-plugins.interfaces: - * docs/plugins/gst-plugins-good-plugins.prerequisites: - * 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: - * win32/common/config.h: - Release 1.2.4 + releasing 1.3.1 -2014-04-18 12:49:13 +0200 Sebastian Dröge <sebastian@centricular.com> +2014-05-03 17:22:45 +0200 Sebastian Dröge <sebastian@centricular.com> - * 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 + po: Update translations -2014-04-18 04:23:26 +0200 Wim Taymans <wtaymans@redhat.com> +2014-05-03 11:43:21 +0200 Sebastian Dröge <sebastian@centricular.com> - * gst/rtpmanager/gstrtpjitterbuffer.c: - jitterbuffer: assume a full buffer when eos - Rework the logic to make buffering messages a little, make sure we - don't make the same message multiple times. - Consider the buffer full when EOS was received. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728017 - Conflicts: - gst/rtpmanager/gstrtpjitterbuffer.c + * tests/check/elements/shapewipe.c: + shapewipe: Send initial events after setting the elements to PLAYING + Otherwise we send them too early, and setting the elements to PLAYING + afterwards will drop all the events again. -2014-04-11 18:19:49 +0200 Josep Torra <n770galaxy@gmail.com> +2014-05-03 10:15:03 +0200 Sebastian Dröge <sebastian@centricular.com> - * gst/rtp/gstrtph264depay.c: - rtph264depay: only guess AU boundaries when aren't indicated by marker - The marker bit isn't mandatory and we had in place code to guess AU - boundaries by detecting a new picture start. This guessing code - didn't work with interlaced content that has proper marker bits - to indicate the AU boundaries. It was leaking the first field buffer - and producing a corrupted output. - fixes: https://bugzilla.gnome.org/show_bug.cgi?id=728041 + * common: + Automatic update of common submodule + From bcb1518 to 211fa5f -2014-04-06 18:03:11 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> +2014-05-02 17:12:29 +0200 Sebastian Dröge <sebastian@centricular.com> - * tests/check/elements/souphttpsrc.c: - tests: souphttpsrc: use SoupKnownStatusCode if needed - From libsoup docs: - Prior to 2.44 SoupStatus was called SoupKnownStatusCode, - but the individual values have always had the names they - have now. - Fixes: - https://bugzilla.gnome.org/show_bug.cgi?id=727329 + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Set segment position to the stop position of the buffer -2013-12-02 15:26:50 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> +2014-05-02 17:10:18 +0200 Sebastian Dröge <sebastian@centricular.com> - * sys/v4l2/gstv4l2object.c: - v4l2object: Don't validate dimension for encoded format - We set the dimensions just in case but don't validate them - afterwards. For some codecs the dimensions are *not* in the - bitstream, IIRC VC1 in ASF mode for example. - https://bugzilla.gnome.org/show_bug.cgi?id=720568 - Conflicts: - sys/v4l2/gstv4l2object.c + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Properly report errors before stopping the srcpad task -2014-03-29 19:13:06 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> +2014-05-02 17:02:02 +0200 Sebastian Dröge <sebastian@centricular.com> - * sys/v4l2/gstv4l2object.c: - * sys/v4l2/gstv4l2src.c: - v4l2: Fix support for caps without width, height, framerate or format - For format like mpegts, width and height is rarely in the negotiated caps. This - patch fixes failure when setting format, and prevent introducing width, height, - framerate and format to the caps when fixating. - https://bugzilla.gnome.org/show_bug.cgi?id=725860 - Conflicts: - sys/v4l2/gstv4l2object.c + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Error out if we have no caps yet -2014-03-06 19:52:36 +0000 William Manley <will@williammanley.net> +2014-05-02 14:49:27 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * sys/v4l2/gstv4l2object.c: - v4l2src: Fix support for mpegts streams - It seems that GStreamer's mpegts elements (tsdemux, tsparse) require caps - `video/mpegts,systemstream=true`. As far as I can see the significance - of systemstream is to indicate that this is a container format rather than - an elementary stream. As this is the case (and I can't understand how it - could not be the case with mpegts) I add systemstream=true to v4l2src's - caps. - This allows v4l2src to be linked with tsdemux for playback from my - Hauppauge HD-PVR with the pipeline: - v4l2src ! queue ! tsdemux ! video/x-h264 ! decodebin ! xvimagesink - In combination with the next commit this fixes using Hauppauge HD-PVR with - GStreamer 1.0+. + * gst/wavparse/gstwavparse.c: + wavparse: avoid dividing by a 0 blockalign + This can be 0. In that case, do not try to cut off the last few + bytes from the last buffer. + Coverity 1146971 -2014-03-20 15:28:26 +0100 Ognyan Tonchev <ognyan@axis.com> +2014-05-02 14:25:01 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/rtp/gstrtpjpegpay.c: - jpegpay: consider header len when calculating payload len - Fixed https://bugzilla.gnome.org/show_bug.cgi?id=726777 + * gst/matroska/matroska-mux.c: + matroskamux: do not use uinitialized clut on error + If we're missing part of the clut, do not try to use it. It seems + very likely the break was meant to break out of the switch rather + than from the loop. + Coverity 1139878 -2014-03-06 12:06:43 -0500 Olivier Crête <olivier.crete@collabora.com> +2014-05-02 14:18:08 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/rtp/gstrtpamrdepay.c: - * gst/rtp/gstrtpilbcdepay.c: - * gst/rtp/gstrtpsirendepay.c: - * gst/rtp/gstrtpspeexdepay.c: - rtp: Remove caps restrictions from RTP depayloader sink caps - Remove caps restrictions that correspond to the default and are not - required in SDP. With the new usage of having pads require a subset - of the caps, they will make the negotiation fail. + * gst/flx/gstflxdec.c: + flxdec: fix integer overflow + Coverity 1139859 -2014-03-06 11:02:09 -0500 Olivier Crête <olivier.crete@collabora.com> +2014-05-02 14:09:02 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/rtp/gstrtpspeexdepay.c: - rtpspeexdepay: Remove caps restrictions for depayloader - The "encoding-params" is optional in the SDP, because we now require - a subset of the caps, it would fail caps negotiatioin if it wasn't present. - So removed it from the template caps. + * gst/rtp/gstrtpqdmdepay.c: + rtpqdmdepay: remove pointless check + Besides, the pointer was dereferenced earlier anyway. + Coverity 1139853 -2014-03-05 14:26:02 +0100 Wim Taymans <wtaymans@redhat.com> +2014-05-02 14:06:25 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/rtpmanager/rtpsession.c: - session: handle unknown SSRC in FIR - https://bugzilla.gnome.org/show_bug.cgi?id=725712 + * gst/rtsp/gstrtspsrc.c: + rtspsrc: remove duplicate test + item was dereference previously. + While there, reorder some test for faster early out. + Coverity 1139844 -2014-03-01 01:14:35 -0300 Thiago Santos <ts.santos@sisa.samsung.com> +2014-05-02 14:02:52 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/isomp4/qtdemux.c: - qtdemux: prevent segfault after seeking with negative rate - After a seek, the position and segments info of qtdemux are - reset to null or invalid values. For reverse playback, qtdemux - will seek to a keyframe and play until the next keyframe, then - seek to another previous keyframe. This seeking function requires - the position and segments info of qtdemux to be properly initialized. - Due to a missing check for segment.rate in the movie demuxing loop - it would consider the current segment to have ended without having - it initialized, leading qtdemux to attempt to do a previous keyframe - seek without proper position and segment info data. This would cause - a segfault. This patch fixes it by correctly checking for segment - boundaries taking the segment.rate into consideration. - https://bugzilla.gnome.org/show_bug.cgi?id=725104 + * ext/vpx/gstvp8enc.c: + vp8enc: guard against NULL pointer dereference + Coverity 1139838 -2014-02-27 18:55:04 -0300 Thiago Santos <ts.santos@sisa.samsung.com> +2014-05-02 13:59:07 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * ext/jpeg/gstjpegdec.c: - jpegdec: mark all parsed frames as sync points - all jpeg frames are sync points, so mark them as such so - reverse playback can properly work with the video decoder - base class - https://bugzilla.gnome.org/show_bug.cgi?id=725104 + * ext/flac/gstflacdec.c: + flacdec: fix theoretical integer overflow + This code isn't actually used at the moment, unsure if I should + just remove it or not... + Coverity 1139811 -2014-02-25 09:00:45 +0100 Santiago Carot-Nemesio <sancane@gmail.com> +2014-05-02 13:33:02 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/rtsp/gstrtspsrc.c: - rtspsrc: Fix deadlock when task creation is no successful - https://bugzilla.gnome.org/show_bug.cgi?id=725124 + * gst/matroska/ebml-write.c: + matroska: blindly fix writing variable length negative values + Spotted while fixing something else in the area. + Nothing calls this with a negative value. -2014-02-22 21:31:21 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> +2014-05-02 13:29:33 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * sys/v4l2/v4l2_calls.c: - v4l2src: handle old and odd driver behaviour when listing controls + * gst/matroska/ebml-write.c: + matroska: do not lose the top bits when writing a > 32 bit value + Coverity 1139806 -2013-11-28 16:54:58 -0800 Darryl Gamroth <dgamroth@uvic.ca> +2014-05-02 12:10:26 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/audiofx/audiofxbaseiirfilter.c: - audiofxbaseiirfilter: check if coefficients are provided inside filter lock - https://bugzilla.gnome.org/show_bug.cgi?id=719524 + * gst/videofilter/gstvideoflip.c: + videoflip: add missing break in switch + Coverity 1139755 -2014-02-19 13:35:59 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> +2014-05-02 11:39:39 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/audioparsers/gstaacparse.c: - aacparse: make sure we have enough ADTS data - We need at least 6 bytes to pass over to _get_frame_len() - but we were just checking for a minimum of 2 bytes for the - syncword. - https://bugzilla.gnome.org/show_bug.cgi?id=724638 + * gst/matroska/matroska-parse.c: + matroska: do not try to call gst_pad_query_default on a NULL pad + gst_matroska_parse_query can be called explicitely with a NULL pad. + If we reach this point with a NULL pad, fail the query. + Coverity 1139715 -2014-02-19 15:19:30 +0100 Branislav Katreniak <bkatreniak@nuvotechnologies.com> +2014-05-02 11:28:01 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * ext/soup/gstsouphttpsrc.c: - souphttpsrc: do not emit error when connection with unknown size ends - Commit 46fd12ae5ec53200b16dfd7f17048d6bc60fbfbc introduced connection - recovery. But when server does not specify content-size, - souphttpsrc tries to reconnect even after regular end of stream. - Http server replies with SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE - but souphttpsrc still emits error instead of EOS. - https://bugzilla.gnome.org/show_bug.cgi?id=724717 - Signed-off-by: Branislav Katreniak <bkatreniak@nuvotechnologies.com> + * gst/matroska/matroska-parse.c: + matroska: do not return GST_FLOW_OK if we did not get a buffer + Coverity 1139714 (which will likely come back in another guise, + as the _read_init call can have a failing _map) -2014-02-18 22:54:45 +0100 Stefan Sauer <ensonic@users.sf.net> +2014-05-02 11:20:33 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/audiofx/audiofirfilter.c: - * gst/audiofx/audioiirfilter.c: - * gst/level/gstlevel.c: - * gst/spectrum/gstspectrum.c: - docs: use docbook markup for xi:include - It turns out that the change in gtk-doc-1.20 which wraps the |[]| content in - CDATA break xi:inlcude examples. As in a whole jhbuild checkout these where - the only 4, we're fixing them instead. + * gst/matroska/ebml-write.c: + matroska: catch failure to map buffer + Avoids dereferencing NULL. + Coverity 1139712 -2014-02-18 11:28:18 +0100 Stefan Sauer <ensonic@users.sf.net> +2014-05-02 10:52:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * ext/pulse/pulsesink.c: - pulsesink: fix crash when getting the current-device in NULL->READY - The "goto unlock" is wrong as in this code path we haven't take the lock yet. - Fixes #724619 + * gst/avi/gstavimux.c: + avimux: refuse caps with invalid framerate + Coverity 1139701 -2014-02-14 15:27:20 -0500 William Jon McCann <william.jon.mccann@gmail.com> +2014-05-02 10:21:09 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * gst/audiofx/audiocheblimit.c: - * gst/udp/gstudpsrc.c: - docs: fix mismatched para tags - newer gtkdoc is more sensitive to mismatched docbook tags. - This fixes the build in master. + * gst/isomp4/gstqtmux.c: + qtmux: handle 0 size packets without dividing by 0 + Coverity 1139691 -2014-02-12 12:39:10 +0100 Sebastian Dröge <sebastian@centricular.com> +2014-05-02 09:49:32 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * ext/soup/gstsouphttpsrc.c: - souphttpsrc: Retry connection if we're finished before the content size only if we actually have a content size - https://bugzilla.gnome.org/show_bug.cgi?id=722185 + * gst/isomp4/qtdemux.c: + qtdemux: guard against invalid frame size to avoid division by 0 + Coverity 1139690 -2014-02-11 13:25:46 +0100 Sebastian Dröge <sebastian@centricular.com> +2014-05-02 09:49:17 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * ext/soup/gstsouphttpsrc.c: - souphttpsrc: Add mapping for NOT_FOUND and NOT_AUTHORIZED errors + * gst/isomp4/qtdemux.c: + qtdemux: trivial typo fix -2014-02-11 13:25:22 +0100 Sebastian Dröge <sebastian@centricular.com> +2014-05-02 09:43:54 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> - * ext/soup/gstsouphttpsrc.c: - souphttpsrc: Don't duplicate status_code to GStreamer error mapping + * ext/speex/gstspeexdec.c: + speexdec: remove dead code + fpp can never equal 0 here, or the loop would not execute at all. + Zero fpp was possible before as the loop condition was allowing + it specifically, but no more. + Coverity 1139681 -=== release 1.2.3 === +2014-05-02 09:41:19 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> -2014-02-08 12:47:26 +0100 Sebastian Dröge <sebastian@centricular.com> + * sys/oss4/oss4-property-probe.c: + oss4: remove dead mixer code + This was partly removed in the port to 0.11. If still needed, + it's still there in the history. + Coverity 1139687 - * ChangeLog: - * NEWS: - * RELEASE: - * configure.ac: - * docs/plugins/inspect/plugin-1394.xml: - * docs/plugins/inspect/plugin-aasink.xml: - * docs/plugins/inspect/plugin-alaw.xml: - * docs/plugins/inspect/plugin-alpha.xml: - * docs/plugins/inspect/plugin-alphacolor.xml: - * docs/plugins/inspect/plugin-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: - * win32/common/config.h: - Release 1.2.3 +2014-05-02 09:33:51 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> -2014-02-08 12:25:59 +0100 Sebastian Dröge <sebastian@centricular.com> + * sys/oss4/oss4-property-probe.c: + oss4: fix a missing unlock and a return-only-when-assertions-enabled + Spotted on the side while looking at another issue. - * 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 +2014-03-07 17:31:29 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> -2014-02-06 12:21:07 +0100 Wim Taymans <wtaymans@redhat.com> + * sys/v4l2/gstv4l2object.c: + v4l2: Correctly map RGB32 format + In v4l2 specification, RGB32 has the alpha, or pading, first, not last. + See http://linuxtv.org/downloads/v4l-dvb-apis/packed-rgb.html . + https://bugzilla.gnome.org/show_bug.cgi?id=540941 - * gst/effectv/gstrev.c: - effectv: fix doc section of revtv element +2014-04-30 18:06:40 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> -2014-01-24 01:52:08 +0000 Mike Sheldon <elleo@gnu.org> + * ext/flac/gstflacdec.c: + flacdec: remove dead code + For 8 bit width, we always have depth==gdepth==width==8. + Coverity 1139678 - * gst/wavparse/gstwavparse.c: - wavparse: Ignore Broadcast Wave Format (BWF) tags when searching for 'fmt' chunk - https://bugzilla.gnome.org/show_bug.cgi?id=723125 +2014-04-30 17:48:53 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> -2014-01-25 02:06:00 -0500 Ryan Lortie <desrt@desrt.ca> + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: remove dead code + A stricer check is already done earlier, and integer overflows + do not seem possible here. + Coverity 1139675 - * sys/v4l2/v4l2_calls.c: - v4l2: guard use of ENODATA with #ifdef - Not all systems with v4l have ENODATA defined, so check that we have it - before attempting to use it. - https://bugzilla.gnome.org/show_bug.cgi?id=722953 +2014-04-30 14:50:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> -2014-01-20 10:12:45 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/rtp/gstrtpvrawpay.c: + rtpvrawpay: guard against pathological "no space" condition + Even if one woul hope one pixel can fit in a MTU, ensure we do not + overwrite a buffer if this is not the case. + Spotted while looking at Coverity 1208786 - * gst/rtp/gstrtpvp8pay.c: - rtpvp8pay: Don't leak input buffers - https://bugzilla.gnome.org/show_bug.cgi?id=722414 +2014-04-30 11:52:10 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> -2014-01-15 22:47:12 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/rtp/gstrtpjpegdepay.c: + rtpjpegdepay: sanity check for NULL qtable + Can happen (at least in crafted stream) + Coverity 1208778 - * gst/matroska/matroska-demux.c: - matroskademux: Don't skip all video frames until the first keyframe - Instead do it like all other demuxers and let parsers and decoders - handle that. The keyframe information inside the container might - be completely wrong like in the sample file of the bug report, - and if it is correct and we push no keyframes, then the parsers - and decoders will handle that properly anyway. - https://bugzilla.gnome.org/show_bug.cgi?id=682276 +2014-04-30 01:08:41 +0100 Tim-Philipp Müller <tim@centricular.com> -2014-02-04 16:22:33 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/wavparse/gstwavparse.c: + wavparse: pass on tags from upstream if there are any + Don't just ignore upstream tags from e.g. an ID3 tag before + the .wav data, pass them on downstream. + https://bugzilla.gnome.org/show_bug.cgi?id=729223 - * po/nb.po: - * po/pt_BR.po: - * po/sk.po: - po: Update translations +2014-04-29 16:26:53 +0200 Wim Taymans <wtaymans@redhat.com> -2014-01-19 17:40:56 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: optimize timer update + When we are not doing retransmission, we just need to find the current + seqnum so we can stop when we found it. - * gst/avi/gstavimux.c: - avimux: reset some more audio pad data when needed +2014-04-29 16:21:44 +0200 Wim Taymans <wtaymans@redhat.com> -2014-01-19 17:38:59 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpjitterbuffer.h: + rtpjitterbuffer: small optimizations + Small optimizations where we can. + Add some more debug. - * gst/avi/gstavimux.c: - * gst/avi/gstavimux.h: - avimux: write correct blockalign for vbr audio - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720659 +2014-04-29 16:16:17 +0200 Wim Taymans <wtaymans@redhat.com> -2014-01-14 19:08:49 +0900 Justin Joy <justin.joy.9to5@gmail.com> + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: signal when next_seqnum changed + Signal the pushing thread when the next_seqnum changed and we might be + able to push a buffer now. - * sys/oss/gstosshelper.c: - osshelper: Don't leak fd when getting card name - https://bugzilla.gnome.org/show_bug.cgi?id=722163 +2014-04-29 16:12:29 +0200 Wim Taymans <wtaymans@redhat.com> -2014-01-14 15:42:01 +0900 Justin Joy <justin.joy.9to5@gmail.com> + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: only signal event when head changed + After adding a buffer, only signal the pushing thread when the head + buffer changed or else we cause a useless wakeup. - * gst/rtp/gstrtpg726pay.c: - rtpg726pay: don't leak encoding_name string - https://bugzilla.gnome.org/show_bug.cgi?id=722159 +2014-04-29 15:29:31 +0200 Wim Taymans <wtaymans@redhat.com> -2014-01-10 14:16:00 +0000 Tim-Philipp Müller <tim@centricular.com> + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + rtpjitterbuffer: rework packet insert + Rework the packet queue so that the most common action (insert a packet + at the tail of the queue) goes very fast. + Report if a packet was inserted at the head instead of the tail so that + we can know when to retry _pop or _peek. - * gst/matroska/matroska-read-common.c: - matroskademux: don't leak TOC chapter list +2014-04-28 14:41:10 +0200 Wim Taymans <wtaymans@redhat.com> -2014-01-08 11:28:04 +0100 Wim Taymans <wtaymans@redhat.com> + * gst/rtp/gstrtpvrawdepay.c: + * gst/rtp/gstrtpvrawpay.c: + rtpvraw: use plane pointers when needed + Pack/unpack planar formats to/from the first plane. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729058 - * gst/matroska/matroska-mux.c: - Revert "matroskamux: Use the running time for container timestamps, not buffer timestamps" - This reverts commit b3aa8755fe07639f22e4104f4932d769d6c9075a. - We are already using the running-time because they were placed on the - buffers with gst_collect_pads_clip_running_time(). Arguably it would be - better to not modify the incomming buffers but collectpads seems to want - to use absolute timestamps from the buffers for finding the best buffer - (this can be changed with a custom compare function..). +2014-04-28 09:47:10 +0200 Sebastian Dröge <sebastian@centricular.com> -2013-12-01 23:32:20 +0000 Tim-Philipp Müller <tim@centricular.com> + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: Remember if a redirect is permanent or not and store it in the query - * gst/deinterlace/gstdeinterlace.c: - deinterlace: fix off-by-one crash when downstream caps contain a list of framerates - https://bugzilla.gnome.org/show_bug.cgi?id=719544 +2014-04-27 21:57:31 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> -2014-01-10 08:52:16 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + * gst/goom/config_param.c: + goom: Remove french comment saying to prefix functions + All non-static function in this file are already prefixed with goom_. - * gst/matroska/matroska-mux.c: - matroskamux: remove obsolete write-dummy-and-overwrite-on-eos code - The need for rewriting apparently is obsolete 0.10 leftover. - We now have caps for subtitles when we create the headers, - so we always write the correct data in the first place. +2014-04-28 00:20:47 +0100 Tim-Philipp Müller <tim@centricular.com> -2014-01-09 18:25:04 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + * gst/goom/filters.c: + goom: fix compilation on ios-arm7-10.9 and osx-x86_64 + uint is not a standard type, and the rest of the code uses + Uint which is locally typedefed to unsigned int. + https://bugzilla.gnome.org/show_bug.cgi?id=729067 - * gst/matroska/matroska-mux.c: - matroskamux: write subtitle codec ID and data at start when known - This avoids issues with writing dummy data first, then having - to come back and write correct data later. Doing so prevents - the muxed stream from being actually streamable. - https://bugzilla.gnome.org/show_bug.cgi?id=712134 +2014-04-27 18:29:11 -0400 Luis de Bethencourt <luis@debethencourt.com> -2014-01-05 10:28:21 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/goom/filters.c: + goom: fix undefined behaviour of left-shift + Don't left-shift into the sign bit, the result is undefined and potentially + an overflow could flip the sign. - * gst/matroska/matroska-mux.c: - matroskamux: Add missing semicolon from last commit +2014-04-26 20:51:36 -0400 Luis de Bethencourt <luis@debethencourt.com> -2014-01-05 10:22:37 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/isomp4/qtdemux.c: + qtdemux: check return from qt_demux_video_caps + Now qtdemux_video_caps() can return NULL. We need to check this return before + using it's value. + https://bugzilla.gnome.org/show_bug.cgi?id=728987 + +2014-04-26 23:35:17 +0100 Tim-Philipp Müller <tim@centricular.com> + + * ext/dv/gstdvdec.c: + * ext/dv/gstdvdemux.c: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + * ext/speex/gstspeexdec.c: + * gst/avi/gstavidemux.c: + * gst/avi/gstavisubtitle.c: + * gst/isomp4/gstqtmoovrecover.c: + * gst/isomp4/gstqtmux-doc.c: + * gst/isomp4/gstqtmux.c: + * gst/isomp4/qtdemux.c: + * gst/multifile/gstmultifilesink.c: + * gst/rtp/gstrtpL16depay.c: + * gst/rtp/gstrtpL16pay.c: + * gst/rtp/gstrtpac3depay.c: + * gst/rtp/gstrtpac3pay.c: + * gst/rtp/gstrtpamrdepay.c: + * gst/rtp/gstrtpamrpay.c: + * gst/rtp/gstrtpbvdepay.c: + * gst/rtp/gstrtpbvpay.c: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpmux.c: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtprtxreceive.c: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtsp/gstrtpdec.c: + * gst/rtsp/gstrtspsrc.c: + * gst/spectrum/gstspectrum.c: + * gst/udp/gstudpsrc.c: + * gst/videofilter/gstgamma.c: + * gst/videofilter/gstvideobalance.c: + * gst/videofilter/gstvideoflip.c: + * gst/wavparse/gstwavparse.c: + * sys/osxaudio/gstosxaudiosink.c: + docs: remove outdated and pointless 'Last reviewed' lines from docs + They are very confusing for people, and more often than not + also just not very accurate. Seeing 'last reviewed: 2005' in + your docs is not very confidence-inspiring. Let's just remove + those comments. + +2014-04-25 17:58:42 -0400 Luis de Bethencourt <luis@debethencourt.com> + + * gst/isomp4/qtdemux.c: + qtdemux: initialize caps pointer to null + Make sure the caps pointer returns initialized when using it in + qtdemux_parse_tree (). + https://bugzilla.gnome.org/show_bug.cgi?id=728987 + +2014-04-22 17:07:38 +1000 Jan Schmidt <jan@centricular.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Clear last_pt on flush-stop. + Otherwise, we don't recheck the buffer caps for clock-rate + properly on the next chain. + +2014-04-22 17:29:02 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: Fix compiler warning + gstdeinterlace.c: In function 'gst_deinterlace_output_frame': + gstdeinterlace.c:1537:57: error: 'pattern.length' may be used uninitialized in this function [-Werror=maybe-uninitialized] + This actually is always initialized before it is used there, but + let's just silence gcc here. + +2014-04-21 15:58:45 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/rtpmanager/gstrtpmux.c: + rtpmux: fix buffer list drop check + While porting to 0.11, the check was mistakenly made constant, + instead of testing for the return value of process_buffer_locked. + Coverity 1139663 + +2014-04-21 13:44:15 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/matroska/matroska-read-common.c: + matroska: fix content encoding scope validity check + It's 3 bits, and http://matroska.org/technical/specs/index.html + says it can't be 0. + Coverity 1139660 + +2014-04-21 13:34:37 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/matroska/matroska-mux.c: + matroskamux: fix PAR fraction sanity check + It was checking par_num twice, and never par_denum. + Coverity 1139634 + +2014-04-21 13:32:40 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/udp/gstmultiudpsink.c: + multiidpsink: warn when setsockopt fails + This doesn't seem to be fatal, but it's good to let the user know + in the logs. + Coverity 1139630 + +2014-04-21 13:27:24 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/interleave/deinterleave.c: + interlace: catch failure to create audio info from caps + Coverity 1139627, 1139628 + +2014-03-13 09:37:48 +0100 Göran Jönsson <goranjn@axis.com> + + * gst/rtp/gstrtph264pay.c: + gstrtph264pay: Reset sps pps variable when state change. + Reset last_spspps and sps/pps arrays when state transition + GST_STATE_CHANGE_PAUSED_TO_READY. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726015 + +2014-04-18 11:11:14 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + jitterbuffer: improve EOS handling + Make a new method to disable the jitterbuffer buffering. + Rework the update_estimated_eos() method. Calculate how much time + there is left to play. If we have less than the delay of the + jitterbuffer, we disabled buffering because we might never be able to + fill the complete jitterbuffer again. + If we receive an EOS event, disable buffering. We will drain the + buffer and eventually push the EOS event out. + When we reach the estimated NPT timeout and we didn't receive an EOS + event, make one and queue it so that it can be pushed. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728017 + +2014-04-18 10:21:27 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + rtpsession: send reconfigure when internal-ssrc changes + When the internal-ssrc property changes, we want to send a reconfigure + upstream to make payloaders use the new suggested ssrc. + Using the internal-ssrc property to change the SSRC of a stream is not a + good idea and doesn't work when there are multiple senders, we want to + set the SSRC directly on the payloaders. Therefore, deprecate this + property. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725361 + +2014-04-18 04:23:26 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: assume a full buffer when eos + Rework the logic to make buffering messages a little, make sure we + don't make the same message multiple times. + Consider the buffer full when EOS was received. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=728017 + +2014-04-17 18:07:09 +0200 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/rtprtx.c: + rtprtx: Don't forget to unmap rtp buffer in the test + +2014-04-17 17:58:58 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: Require clock-rate in the caps and handle no ssrc in the caps properly + +2014-04-17 17:43:12 +0200 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/rtprtx.c: + rtprtx: Provide an ssrc in the test + And increase timeout to allow all tests to run in valgrind. + +2014-04-17 17:33:46 +0200 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/rtpsession.c: + rtpsession: Fix memory leaks in test + +2014-04-17 17:26:36 +0200 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: Fix hundreds of memory leaks in the test + +2014-04-17 17:00:37 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Unref clock id when waiting for the clock is interrupted + +2014-04-17 16:39:59 +0200 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/rtpcollision.c: + rtpcollision: Fix memory leaks in unit test + +2014-04-16 21:40:45 +0100 Tim-Philipp Müller <tim@centricular.com> + + * gst/videomixer/videomixer2.c: + videomixer: name collectpads object based on videomixer name + Makes it easier to track things in debug logs when there + are multiple mixers and muxers. + +2014-04-16 21:37:12 +0100 Tim-Philipp Müller <tim@centricular.com> + + * gst/videomixer/videomixer2.c: + videomixer: better logging of incoming events + The pad and parent names are already logged as part of logging + the object. Instead log the full event details. + +2014-04-16 19:03:47 +0200 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/videomixer.c: + videomixer: Fix memory leak in unit test + +2014-04-16 18:49:43 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/level/gstlevel.c: + level: Use the correct number of samples to iterate over the input array + Fixes invalid memory accesses and accesses to uninitialised data. + +2014-04-16 18:00:49 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/icydemux/gsticydemux.c: + icydemux: Unref dropped events + +2014-04-16 17:29:30 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/matroska/ebml-read.c: + matroska: fix check for amount of data to read + History shows length==0 should set data to NULL and return, + so we do that too instead of trying to read nothing. + Coverity 206205 + +2014-04-16 17:25:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: fix sign comparison + history_count is unsigned, so the whole comparison will be made + as unsigned, and fail to reject what it was meant to. + Coverity 206204 + +2014-04-16 17:04:50 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/avi/gstavidemux.c: + avidemux: remove dead code + sub may not be NULL in this switch, there is a bail out just + before it if so. + Coverity 206098 + +2014-04-16 16:59:43 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/audioparsers/gstflacparse.c: + flacparse: remove dead code + The block_size == 0 was shortcut earlier, and the variable is not + modified in the meantime. + Coverity 206097 + +2014-04-16 16:56:54 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/videomixer/videoconvert.c: + videomixer: remove dead code + While it seems to keep a compile time selection, I traced it + to some code copied from videoconvert, where it was removed, + with the following comment: + Also remove the high-quality I420 to BGRA fast-path as it needs + the same fix, which causes an additional instruction, which causes + orc to emit more than 96 variables, which then just crashes. + This can only be fixed in orc by breaking ABI and allowing more + variables. + Thus, I remove it here as well. + Coverity 206064 + +2014-04-16 16:50:30 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/isomp4/qtdemux.c: + isomp4: fix incorrect masking for multiple tags + Coverity 206058 + +2014-04-16 16:45:08 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/isomp4/atoms.c: + isomp4: fix wrong atom flags set when adding samples + Coverity 206057 + +2014-04-16 16:40:02 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/audiofx/audiofxbasefirfilter.c: + audiofx: fix comparison of delta time to a threshold + Coverity 206055 + +2014-04-16 16:32:26 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/wavparse/gstwavparse.c: + wavparse: do not rely on call failure keeping return data unmodified + This is clearer this way too. + Coverity 206029 + +2014-04-16 16:28:49 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/isomp4/atomsrecovery.c: + isomp4: catch fseek error + Coverity 206028 + +2014-04-16 16:25:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/isomp4/atoms.c: + isomp4: report failures to caller + Coverity 206027 + +2014-04-16 18:05:46 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: refuse serialied query when buffering + When we are buffering, we can't block and wait for the serialized query + to complete because the jitterbuffer will not try to forward the query + while buffering. Instead, just refuse the query. + +2014-04-16 16:51:15 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: don't free the serialized query + We should never free a serialized query in the queue, it is the upstream + caller that will free it. + +2014-04-16 17:35:42 +0200 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/aacparse.c: + aacparse: Fix memory leak in the test + +2014-04-16 17:33:46 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/videomixer/videomixer2.c: + videomixer: Create hashtable only when we actually use it + In error cases we previously returned without freeing it. + +2014-04-16 17:30:59 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/videomixer/videomixer2.c: + videomixer: Chain up to the parent class' dispose function + +2014-04-16 17:23:27 +0200 Sebastian Dröge <sebastian@centricular.com> + + * sys/v4l2/gstv4l2videodec.c: + v4l2videodec: Initialise ioctl struct with zeroes before passing it to ioctl() + +2014-04-16 13:47:43 +0200 Marc Leeman <marc.leeman@gmail.com> + + * gst/udp/gstudpsrc.c: + udpsrc: correct LOG msg for -1 + Signed-off-by: Marc Leeman <marc.leeman@gmail.com> + +2014-04-15 21:36:30 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/interleave/interleave.c: + interleave: Fix negotiation to work at all again + The caps query handling function for the sinkpads was called for + the srcpad, and the sinkpads had none. This commit moves it to the + right pad, but nonetheless the negotiation still looks wrong. + This makes the test pass again after the recent coverity fix + and also allows interleave to work again, but someone should + really review the negotiation code and fix it. + +2014-04-13 09:03:41 +0200 Edward Hervey <edward@collabora.com> + + * sys/oss4/oss4-audio.c: + oss4: Maximum number of channels support is 8 + Avoids doing potential overwrites in ch_layout (which only has 8 + fields). + CID #1139826 + +2014-04-12 22:16:37 +0200 Sebastian Dröge <sebastian@centricular.com> + + * sys/osxvideo/osxvideosink.m: + osxvideosink: Set rank to MARGINAL + If available we prefer using glimagesink over osxvideosink. It supports + more formats and in general has more features than osxvideosink. + +2014-04-11 18:19:49 +0200 Josep Torra <n770galaxy@gmail.com> + + * gst/rtp/gstrtph264depay.c: + rtph264depay: only guess AU boundaries when aren't indicated by marker + The marker bit isn't mandatory and we had in place code to guess AU + boundaries by detecting a new picture start. This guessing code + didn't work with interlaced content that has proper marker bits + to indicate the AU boundaries. It was leaking the first field buffer + and producing a corrupted output. + fixes: https://bugzilla.gnome.org/show_bug.cgi?id=728041 + +2014-04-10 10:38:19 -0300 RafaÅ‚ MużyÅ‚o <galtgendo@o2.pl> + + * ext/libpng/gstpngdec.c: + pngdec: enable libpng interlaced picture handling + Makes libpng deinterlace Adam7 interlaced pictures + by default. It is the only interlaced format available + and if the picture isn't interlaced the code should behave + as before. + https://bugzilla.gnome.org/show_bug.cgi?id=726161 + +2014-04-11 13:27:42 +0200 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Only keep-alive the connection in stop() if we have finished all previous messages + After cancelling a request we need to create a new connection. + +2014-04-11 11:54:12 +0200 Edward Hervey <bilboed@bilboed.com> + + * ext/dv/gstdvdec.c: + dvdec: Don't set bogus timestamp/duration + This will happen if we have an incoming stream with a non-TIME segment + Could be improved later to figure out proper pts/duration. + CID #1199702 + CID #1199703 + +2014-04-11 11:53:42 +0200 Edward Hervey <bilboed@bilboed.com> + + * ext/dv/gstdvdec.c: + dvdec: Properly refuse incoming stream without framerate + The return value wasn't properly propagated back if the caps + didn't contain a framerate + +2014-04-10 16:35:28 +0200 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Also retry on unexpected network failures + +2014-04-10 15:45:41 +0200 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: New property to specify the maximum number of retries before we give up + +2014-03-13 10:56:11 +0100 Alexander Zallesov <zallesov@gmail.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Change default timeout to 15 seconds + If nothing happens after 15 seconds, chances are good that + our connection will never will work. Stop after 15 seconds + instead of waiting until the system's default timeout, which + can be > 1 minute. + +2014-04-09 17:30:54 +0900 Jimmy Ohn <yongjin.ohn@lge.com> + + * gst/isomp4/qtdemux.c: + qtdemux: replace duplicated variable when parsing trex atom + https://bugzilla.gnome.org/show_bug.cgi?id=727878 + +2014-04-09 10:56:29 +0200 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Use GST_FLOW_FLUSHING when flushing, not GST_FLOW_EOS + ... and reset it properly after flushing is done. Fixes playback + in many cases when buffering is used. + https://bugzilla.gnome.org/show_bug.cgi?id=727821 + +2014-04-09 08:58:04 +0200 Sebastian Dröge <sebastian@centricular.com> + + * gst/isomp4/qtdemux.c: + qtdemux: Properly return stream flags when parsing trex atom + https://bugzilla.gnome.org/show_bug.cgi?id=727867 + +2014-03-19 19:18:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> + + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + osxvideosink: use the video frame API instead of the video meta API + https://bugzilla.gnome.org/show_bug.cgi?id=726738 + +2014-03-19 18:47:39 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> + + * sys/osxvideo/osxvideosink.m: + osxvideosink: advertize video meta API support + https://bugzilla.gnome.org/show_bug.cgi?id=726737 + +2014-04-08 11:31:06 +0200 Edward Hervey <edward@collabora.com> + + * gst/interleave/interleave.c: + interleave: Add missing break in switch statement + The caps query is handled entirely already before. + CID #1139757 + +2014-04-06 18:03:11 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * tests/check/elements/souphttpsrc.c: + tests: souphttpsrc: use SoupKnownStatusCode if needed + From libsoup docs: + Prior to 2.44 SoupStatus was called SoupKnownStatusCode, + but the individual values have always had the names they + have now. + Fixes: + https://bugzilla.gnome.org/show_bug.cgi?id=727329 + +2014-04-07 12:58:23 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/avi/gstavidemux.c: + avidemux: use frames, not bytes, for position query in VBR streams + Coverity 1139648 + +2014-04-07 12:42:14 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/smpte/gstsmpte.c: + smpte: fix copy/paste error causing unmap on wrong buffer + Coverity 1139647 + +2014-04-07 12:16:17 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: guard against finding no suitable pattern + The code handles a -1 pattern index, and it seems plausible + that a pattern might be found later, so it seems best to not + send an element error here. + Coverity 1139766 + +2014-04-04 17:38:14 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: update for new MIKEY API + +2014-04-03 17:40:01 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: send sender SSRC in the MIKEY message + Allocate a new SSRC for our RTCP messages back to the server and set + this in the MIKEY message. + +2014-04-03 17:39:30 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: make random number for the CSB + As recommended in the RFC + +2014-03-26 12:10:44 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: don't put spaces in keymgmt header + +2014-03-25 17:47:49 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: create and send the RTCP encryption key + Create and make a key for encrypting the RTCP packets back to the server + and wrap this in a MIKEY message that we send as a header in the SETUP + request. + +2014-04-03 12:18:39 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: free the srtpdec element + +2014-04-03 12:16:25 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: cleanup stream_free function + There is no reason to NULL all fields, we will free the stream anyway. + +2014-04-03 12:07:31 +0200 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: demote warning to debug + For TCP, it is normal that we don't have timestamps so don't WARN on + it. + +2014-03-29 19:13:06 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2src.c: + v4l2: Fix support for caps without width, height, framerate or format + For format like mpegts, width and height is rarely in the negotiated caps. This + patch fixes failure when setting format, and prevent introducing width, height, + framerate and format to the caps when fixating. + https://bugzilla.gnome.org/show_bug.cgi?id=725860 + +2014-03-31 18:34:13 +0200 Thibault Saunier <tsaunier@gnome.org> + + * gst/avi/gstavidemux.c: + * gst/avi/gstavidemux.h: + avidemux: Always set PTS=DTS on raw video streams + +2014-03-31 18:31:22 +0200 Thibault Saunier <tsaunier@gnome.org> + + * gst/avi/gstavidemux.c: + avidemux: Always set pixel-aspect-ratio on raw video streams + That field is mandatory in caps and if it is not present in the + AVI container, it means square pixels thus 1/1. + +2014-03-30 00:35:07 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/matroska/matroska-mux.c: + matroska-mux: add mapping for Opus audio + Might want to consider adding channels/rate + requirement to template caps, but requires + fixing up of encoder and parser first. + +2014-03-30 00:31:11 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + matroska-demux: add mapping for Opus audio codec + https://bugzilla.gnome.org/show_bug.cgi?id=727305 + +2014-03-29 17:21:17 -0400 William Manley <will@williammanley.net> + + * sys/v4l2/gstv4l2object.c: + v4l2src: Fix support for mpegts streams + It seems that GStreamer's mpegts elements (tsdemux, tsparse) require caps + `video/mpegts,systemstream=true`. As far as I can see the significance + of systemstream is to indicate that this is a container format rather than + an elementary stream. As this is the case (and I can't understand how it + could not be the case with mpegts) I add systemstream=true to v4l2src's + caps. + This allows v4l2src to be linked with tsdemux for playback from my + Hauppauge HD-PVR with the pipeline: + v4l2src ! queue ! tsdemux ! video/x-h264 ! decodebin ! xvimagesink + In combination with the next commit this fixes using Hauppauge HD-PVR with + GStreamer 1.0+. + +2014-01-14 14:48:42 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * sys/v4l2/v4l2_calls.c: + v4l2: attempt to fix infinite (for small version of infinite) loop + +2014-03-29 13:20:30 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpmanager: copy sticky events when exposing pads in more places + https://bugzilla.gnome.org/show_bug.cgi?id=724712 + +2014-03-28 20:11:36 +0100 Rico Tzschichholz <ricotz@ubuntu.com> + + * sys/v4l2/Makefile.am: + v4l2: fix distcheck + Make sure ext/*.h are dist'ed + +2014-03-27 19:51:50 +0000 Tim-Philipp Müller <tim@centricular.com> + + * sys/ximage/gstximagesrc.c: + ximagesrc: only extrapolate alpha mask for 32-bit depth + Instead of passing bogus alpha mask values when there's no alpha. + https://bugzilla.gnome.org/show_bug.cgi?id=726833 + +2014-03-21 13:03:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/ximage/gstximagesrc.c: + ximagesrc: Add ARGB/BGRA support + +2014-03-20 15:28:26 +0100 Ognyan Tonchev <ognyan@axis.com> + + * gst/rtp/gstrtpjpegpay.c: + jpegpay: consider header len when calculating payload len + Fixed https://bugzilla.gnome.org/show_bug.cgi?id=726777 + +2014-03-26 08:03:22 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/jpeg/gstjpegdec.c: + jpegdec: All frames are sync points + +2014-03-26 08:02:43 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/libpng/gstpngdec.c: + pngdec: All frames are sync points + +2014-03-22 17:07:46 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/matroska/matroska-demux.c: + matroskademux: segment closing not needed in 1.x + ... as sender should keep track of segment base accumulation. + Rather, it may have some adverse effects as a spurious segment event, + e.g. in collectpads. + +2014-03-22 17:05:17 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/matroska/matroska-demux.c: + matroskademux: early sending pending codec-data for all streams + ... at least before syncing across all streams might cause some gap + activity on any of those streams, notably sparse streams. + See also #712134 + +2014-03-22 17:01:27 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/matroska/matroska-mux.c: + matroskamux: handle both sticky and non-sticky custom event + +2014-03-25 11:44:27 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: only expose streams on dataflow + Only probe on buffers, we don't want to expose the streams on events. + +2014-03-25 11:36:40 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtsp/gstrtspsrc.c: + rtspsrc: copy sticky events to ghostpad + When we expose internal pads as ghostpads, first copy the sticky events + so that we have the caps and segment etc. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724712 + +2014-03-24 14:25:43 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: srtp handling + +2014-03-25 10:23:00 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: set SSRC on caps if known + +2014-03-24 16:58:25 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: put caps on udpsrc instead of using the signals + Try to avoid using the request-pt-map to get caps but set them directly + on the udpsrc element. That way, the caps get nicely transformed as they + pass through the different elements in the rtpbin, including the AUX and + decoder/encoder elements. + +2014-03-24 15:35:09 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: use profile to set rtcp caps + Use the negotiated profile to set x-rtcp or x-srtcp caps + +2014-03-24 15:34:26 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: set udpsrc to READY + READY is enough to allocate ports now + +2014-03-24 14:25:28 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/udp/gstudpsrc.c: + udpsrc: improve caps handling + Protect caps with the lock. + Don't push the caps event from the set_property function but mark the + pad for reconfiguration so that it will renegotiate and push the new + caps event in the streaming thread. + +2014-03-24 15:15:34 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/udp/gstudpsrc.c: + udpsrc: open/close socket in NULL<->READY state + We should open the socket when going to NULL<->READY and not in the + start/stop vemthod, which is called in READY<->PAUSED. This makes it + possible to allocate a socket without going to PAUSED (and starting the + negotiation). + +2014-03-24 14:35:01 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: free caps in ptmap array + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726696 + +2014-03-20 11:12:51 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: handle NULL rtpmap and parse error better + +2014-03-16 23:46:22 -0400 Olivier Crête <tester@tester.ca> + + * configure.ac: + configure: Don't check for gudev if video4linux2 is not present + +2014-03-16 23:19:55 -0400 Olivier Crête <tester@tester.ca> + + * configure.ac: + configure: Don't fail if gudev is not present + PKG_CHECK_MODULES has the bad habit of failing the build if it doesn't + get what it wants, prevent that. + +2012-11-02 13:33:13 +0100 Olivier Crête <olivier.crete@collabora.com> + + * configure.ac: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2devicemonitor.c: + * sys/v4l2/gstv4l2devicemonitor.h: + v4l2: Implement GstDeviceMonitor subclass + https://bugzilla.gnome.org/show_bug.cgi?id=678402 + +2013-08-12 11:49:21 -0400 Olivier Crête <olivier.crete@collabora.com> + + * ext/pulse/Makefile.am: + * ext/pulse/plugin.c: + * ext/pulse/pulsedevicemonitor.c: + * ext/pulse/pulsedevicemonitor.h: + pulse: Add device monitors + https://bugzilla.gnome.org/show_bug.cgi?id=678402 + +2014-03-16 19:24:26 -0400 Olivier Crête <tester@tester.ca> + + * sys/v4l2/gstv4l2object.c: + v4l2: Remove GstPropertyProbe leftovers + +2014-02-19 03:04:03 +0100 Mathieu Duponchelle <mduponchelle1@gmail.com> + + * gst/videomixer/videomixer2.c: + * gst/videomixer/videomixer2.h: + videomixer: Port to new collectpads API + See: https://bugzilla.gnome.org/show_bug.cgi?id=724705 + +2014-03-16 15:26:04 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/ext/types-compat.h: + * sys/v4l2/ext/videodev2.h: + v4l2: Add types compatiblity for other OS + Adds type compatiblity with other OS like BSD. This uses types mapping macro to + avoid conflict with existing defined types. We resuse glib types as these are + already available on supported platforms. This is GCC only because of the + le32 type that uses bitwise attribute. + https://bugzilla.gnome.org/show_bug.cgi?id=726453 + +2014-03-16 15:55:00 +0000 Tim-Philipp Müller <tim@centricular.com> + + * ext/pulse/pulseutil.c: + pulse: fix format info to caps conversion for mulaw + +2013-08-13 12:10:42 -0400 Olivier Crête <olivier.crete@collabora.com> + + * ext/pulse/pulsesink.c: + * ext/pulse/pulseutil.c: + * ext/pulse/pulseutil.h: + pulse: Make gst_pulse_format_info_to_caps() shared + https://bugzilla.gnome.org/show_bug.cgi?id=678402 + +2014-03-15 18:41:16 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/Makefile.am: + v4l2: Fix typo V4L_DIR intead of V4L2_DIR + +2014-03-15 18:05:32 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * configure.ac: + v4l2-build: Set HAVE_GST_V4L2 if headers are present + The name of HAVE_ need to match the USE_. Now set HAVE_GST_V4L2 if + videodev2.h is found. + +2014-03-15 16:47:51 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * configure.ac: + * sys/Makefile.am: + v4l2: Actually build the plugin + The checks were removed inadvertedly in previous patch and not replaced. + Re-introduce the configure checks and some of the checks in order to enable + this plugin again. We only check if videodev2.h exist on the platform to + avoid building on Windows or OSX, though we build against our own copy. This + was breaking the build on built-bot. + +2014-03-15 13:47:42 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * 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: + translation: PO file changes caused by POTFILE.in update + +2014-03-15 13:17:21 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * configure.ac: + * po/POTFILES.in: + * po/POTFILES.skip: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2sink.c: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2videooverlay.c: + * sys/v4l2/gstv4l2videooverlay.h: + v4l2: Remove XV support + XV support for v4l2 never became upstream and ended up being + commented out with an undef for a long time now. + +2014-03-15 11:13:05 +0100 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * configure.ac: + * gst-plugins-good.spec.in: + * sys/Makefile.am: + * sys/v4l2/ext/v4l2-common.h: + * sys/v4l2/ext/v4l2-controls.h: + * sys/v4l2/ext/videodev2.h: + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2vidorient.c: + * sys/v4l2/v4l2_calls.c: + * tests/icles/Makefile.am: + v4l2: Use a copy of videodev2.h header + With years the amount of ifdef have grown up and we are not even sure if the + old code path compiles. Each time we need to update the v4l2 framework to add + the new feature, we break compilation on older kernel. With exception of two + controls in the video orientation control, this patch get rid of all ifdef by + including the latest version of videodev2.h inside GStreamer. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=723446 + +2014-03-12 15:32:55 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: Add properties for selecting SSL/TLS certificate checking + And by default properly check certificates against the system's CA + certificates. Everything else is not a good default at all. + +2014-03-11 14:56:30 +0100 Per x Johansson <perxjoh@axis.com> + + * gst/matroska/matroska-demux.c: + matroskademux: fix assert on fps lower than 1 + Fixes assert caused by gst_duration_to_fraction calling + gst_util_uint64_scale_int with a denominator of 0 when fps is less + than 1. + https://bugzilla.gnome.org/show_bug.cgi?id=726106 + +2014-03-11 00:46:06 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/videomixer/videomixer2.c: + videomixer2: store video info with buffers to keep it in sync + Instead the queued buffer might have an old caps while the pad + is already storing the information for a new caps. Mixing those + while handling buffers will often lead to issues + https://bugzilla.gnome.org/show_bug.cgi?id=725948 + +2014-03-08 19:29:58 -0500 William Manley <will@williammanley.net> + + * sys/v4l2/v4l2_calls.c: + v4l2: Fix typo contol -> control + https://bugzilla.gnome.org/show_bug.cgi?id=725632 + +2014-03-04 01:15:49 +0000 William Manley <will@williammanley.net> + + * sys/v4l2/v4l2_calls.c: + v4l2: Normalise control names in the same way as v4l2-ctl + V4L2 kernel drivers allow configuration of the hardware settings via a + mechanism called controls. These can be referred to by name such as + "Brightness" and "White Balance Temperature". The user-space command line + client for setting these controls (v4l2-ctl) normalises these names such + that they only contain lower case alphanumeric characters and the + underscore '_'. e.g: + Kernel v4l2-ctl + ---------------------------------------------------- + Brightness brightness + White Balance Temperature white_balance_temperature + Focus (absolute) focus_absolute + GStreamer seems to want to follow this pattern but failed for controls with + more than one consecutive non-alphanum character. e.g. GStreamer would + produce "focus__absolute_" rather than "focus_absolute". + This commit fixes that issue. Backwards compatibility is preserved by + normalising all control names before comparison. + https://bugzilla.gnome.org/show_bug.cgi?id=725632 + +2014-03-07 16:17:29 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Make sure to not return EOS immediately if we finished a range request + Only return EOS the next time create() is called, if at all. basesrc + should already take care of not calling it again. + Also always return immediately if the previous flow return was + not OK. This indicates an error somewhere. + +2014-03-06 12:06:43 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtp/gstrtpamrdepay.c: + * gst/rtp/gstrtpilbcdepay.c: + * gst/rtp/gstrtpsirendepay.c: + * gst/rtp/gstrtpspeexdepay.c: + rtp: Remove caps restrictions from RTP depayloader sink caps + Remove caps restrictions that correspond to the default and are not + required in SDP. With the new usage of having pads require a subset + of the caps, they will make the negotiation fail. + +2014-03-06 11:02:09 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtp/gstrtpspeexdepay.c: + rtpspeexdepay: Remove caps restrictions for depayloader + The "encoding-params" is optional in the SDP, because we now require + a subset of the caps, it would fail caps negotiatioin if it wasn't present. + So removed it from the template caps. + +2014-03-06 13:38:09 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Don't forget to quit mainloop after we cancelled when we got data after the stop position + +2014-03-06 13:35:47 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: If we had a stop position, allow for the server to finish our connection instead of just cancelling + Otherwise keep-alive does not make much sense and also the server will have + confusing things in the logs. + +2014-03-06 12:24:01 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: skip streams with same control url + Keep track of what streams we did the SETUP for. We only need to + configure caps, wait for pads and push events on setup streams. We can + remove the disabled state of the stream and simplify some checks. + After we setup a stream, skip the other streams that have the same + control url. Use a skipped flag to mark streams that should be skipped. + +2014-03-06 12:22:47 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: remove obsolete code + +2014-03-05 16:19:19 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: just use the SDP index as the stream id + Use the index of the media stream in the SDP as the stream id instead of + keeping a separate counter. + +2014-03-05 13:35:19 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.m: + osxvideo: fix build on Mac OSX Mavericks and put new window in front + GetCurrentProcess/SetFrontProcess/TransformProcessType was deprecated + and now removed in Mac OSX 10.9. orderFrontRegardless is used to make + the video window the most front window. + +2014-03-05 17:33:56 +0100 Christian Fredrik Kalager Schaller <uraeus@linuxrising.org> + + * gst-plugins-good.spec.in: + Add docs directory to spec file + +2014-03-05 15:44:25 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: handle NULL control urls better + +2014-03-05 14:28:26 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/rtpsession.c: + session: small cleanups + It's nicer to explicitly check for NULL on pointer types to make it + clear that it's a pointer and not a boolean. + +2014-03-05 14:26:02 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/rtpsession.c: + session: handle unknown SSRC in FIR + https://bugzilla.gnome.org/show_bug.cgi?id=725712 + +2014-03-05 11:39:09 +0100 Alessandro Decina <alessandro.d@gmail.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: fix seeking + Call gst_rtspsrc_connection_flush (src, FALSE) to reset connections as + non-flushing before sending PAUSE and PLAY with the new npt range. Without this + patch, those commands would fail with EINTR as the connections were still + flushing. + +2014-03-03 16:39:26 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/avi/gstavidemux.c: + * gst/avi/gstavidemux.h: + avidemux: expose xsub as a subtitle instead of as a video + It is placed inside a 'vids' struct, so it was being exposed on + a pad named video_%d. XSUB are subtitles and this patch adds + an special case for it to be exposed in a subpicture_%d pad + +2014-03-03 16:38:45 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/avi/gstavidemux.c: + avidemux: do not try to add a tag with tag_name set to NULL + This can happen if there are subtitles in the stream, leading to + an assertion + +2014-03-04 16:40:34 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: Add support for multiple payload types + A media stream can have multiple payload types. Parse all the payload + types and collect the caps information. We then have to store the + pt<->caps mapping instead of 1 pt and 1 caps. + Parse the profile from the SDP and use that to negotiate the transport + instead of always using AVP. + Rework how we do some tweaks for ASF and Realmedia. + +2014-03-04 11:34:39 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: refactor payload handling + +2014-03-03 11:34:00 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/rtpjitterbuffer.c: + jitterbuffer: fix buffer level with invalid DTS + It is possible that the DTS is invalid (when we receive RTP packets from + TCP, for example). As a fallback, use the reconstructed PTS value to + calculate the buffer level. + +2014-03-02 05:10:13 +0100 Sebastian Rasmussen <sebras@hotmail.com> + + * .gitignore: + .gitignore: Ignore gcov intermediate files + https://bugzilla.gnome.org/show_bug.cgi?id=725480 + +2014-02-28 09:34:46 +0100 Sebastian Dröge <sebastian@centricular.com> + + * common: + Automatic update of common submodule + From fe1672e to bcb1518 + +2014-02-27 23:15:04 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/audioparsers/gstaacparse.c: + Revert "aacparse: put codec data on caps for loas format" + This reverts commit e459cf3e01a08f1a3ef1fb954a41cfa36b3e510c. + This was pushed by accident, the bug should likely be fixed in + libav https://bugzilla.libav.org/show_bug.cgi?id=644 + +2014-02-27 18:55:04 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * ext/jpeg/gstjpegdec.c: + jpegdec: mark all parsed frames as sync points + all jpeg frames are sync points, so mark them as such so + reverse playback can properly work with the video decoder + base class + https://bugzilla.gnome.org/show_bug.cgi?id=725104 + +2014-02-25 01:12:05 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/audioparsers/gstaacparse.c: + aacparse: put codec data on caps for loas format + gst-libav audio decoder also needs codec data for LOAS format, otherwise + it will complain about not having a decoder config and skip all packets + https://bugzilla.gnome.org/show_bug.cgi?id=596772 + +2014-02-27 00:43:48 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/matroska/matroska-demux.c: + matroskademux: align raw audio memory to powers of two + https://bugzilla.gnome.org/show_bug.cgi?id=725008 + +2014-02-27 00:37:20 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/matroska/matroska-demux.c: + matroskademux: calculate alignment properly for audio depths not a multiple of 8 + +2014-02-23 19:09:24 +0100 Matej Knopp <matej.knopp@gmail.com> + + * gst/matroska/matroska-demux.c: + matroskademux: fix crash with 24-bit raw audio + Do not try to align audio buffers to odd numbers, + which will get us a NULL buffer which we then + crash on. + https://bugzilla.gnome.org/show_bug.cgi?id=725008 + +2014-02-27 00:11:42 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/rtpmanager/Makefile.am: + rtpmanager: re-enable -Werror + +2014-02-27 00:11:11 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: fix compiler warning + gstrtpjitterbuffer.c: In function 'gst_rtp_jitter_buffer_loop': + gstrtpjitterbuffer.c:2978:3: error: 'result' may be used uninitialized in this function + while (result == GST_FLOW_OK); + ^ + +2014-02-26 22:11:41 +0100 Stefan Sauer <ensonic@users.sf.net> + + * common: + Automatic update of common submodule + From 1a07da9 to fe1672e + +2014-02-26 21:11:23 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Fix uninitialized variable compiler warning + +2014-02-26 07:32:32 -0500 Jake Foytik <jake.foytik@ipconfigure.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: Remove raw comparisons of RTP sequence numbers + Several conditional statements perform comparison on RTP sequence + numbers without taking the sequence number rollover into account. + Instead, use the gst_rtp_buffer_compare_seqnum function to perform the + comparison. + https://bugzilla.gnome.org/show_bug.cgi?id=725159 + +2014-02-03 01:44:21 +0100 Sebastian Rasmussen <sebras@hotmail.com> + + * tests/check/Makefile.am: + tests: Don't build disabled plugins' check tests + https://bugzilla.gnome.org/show_bug.cgi?id=723502 + +2014-02-26 11:29:45 +0100 Stefan Sauer <ensonic@users.sf.net> + + * docs/Makefile.am: + docs: install prebuilt plugin docs if gtk-doc is disabled + Sync to the Makefile.am from gst-plugin-base where it is done right. + Fixes #725034 + +2014-02-25 16:10:54 -0500 Hugues Fruchet <hugues.fruchet@st.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: do not emit "parsed" caps for vp8 + VP8 doesn't require parsing (vp8parse doesn't exist, so negotiation with demux fails + if "parsed" is set in caps). + https://bugzilla.gnome.org/show_bug.cgi?id=724636 + +2014-02-11 16:27:08 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2: Don't require parser for VP8 + Until GStreamer has one (see bug722760), we should not require a parser for VP8. + https://bugzilla.gnome.org/show_bug.cgi?id=722128 + +2014-02-10 17:08:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/v4l2_calls.c: + v4l2: CAPTURE_MPLANE is well tested now + https://bugzilla.gnome.org/show_bug.cgi?id=722128 + +2013-12-18 09:56:35 +0100 Benjamin Gaignard <benjamin.gaignard@linaro.org> + + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2videodec.c: + * sys/v4l2/gstv4l2videodec.h: + v4l2videodec: Create one element per device + For each videoCdevice probe it input/output capabilities + if it match with video decoder requirement register a new element. + Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org> + https://bugzilla.gnome.org/show_bug.cgi?id=722128 + +2013-12-19 15:26:52 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2videodec.c: + v4l2videodec: Calculate latency from device information + Decoders or other devices that expose a minimum buffers required produce + an first output. We use this information to calculate latency. + https://bugzilla.gnome.org/show_bug.cgi?id=722128 + +2013-11-28 17:14:18 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2videodec.c: + * sys/v4l2/gstv4l2videodec.h: + * sys/v4l2/v4l2_calls.c: + v4l2videodec: Implement v4l2videodec + Implement an element that can driver V4L2 M2M decoder device. + https://bugzilla.gnome.org/show_bug.cgi?id=722128 + +2014-02-11 12:41:29 +0100 Göran Jönsson <goranjn@axis.com> + + * gst/rtp/gstrtph264pay.c: + rtph264pay: only update last_spspps time if all sps/pps got sent successfully + This fixes an issue with gst-rtsp-server where no sps and pps are + sent for the first intra frame, because the payloader starts working + already when receiving DESCRIBE but there is no transports so it tries + to send sps and pps, but that fails with a FLUSHING flow. But the time + for last sent sps and pps would still be set, so when PLAY arrives and + the first intra frame is to be sent there is no sps and pps sent due to + that time since last sps pps is less than spspps_interval. + https://bugzilla.gnome.org/show_bug.cgi?id=724213 + +2014-02-25 09:00:45 +0100 Santiago Carot-Nemesio <sancane@gmail.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: Fix deadlock when task creation is no successful + https://bugzilla.gnome.org/show_bug.cgi?id=725124 + +2014-02-22 20:19:49 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/autodetect/gstautodetect.c: + autodetect: demote candidate error to warning and plug fake{sink,src} + In the case where we have no suitable candidate we post a warning and plug a + fake-element. Do the same when non of the candidate work. + This is more consistent and plugin the fakesink as a fallback is probably + helpful for running unit tests without requiring hardware src/sink elements. + Fixes #722981 + +2014-02-23 12:34:48 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + * sys/v4l2/v4l2_calls.c: + v4l2: make some more controls configurable + ... at least if one tries hard enough using extra-controls property. + +2014-02-23 10:39:20 +0100 Dan Kegel <dank@kegel.com> + + * configure.ac: + v4l2: Require mplanar support for now in configure + The code fails to compile without currently, see + https://bugzilla.gnome.org/show_bug.cgi?id=723446 + It's better to disable it instead of failing compilation + until this is fixed properly. + +2014-02-23 00:14:04 +0100 Stefan Sauer <ensonic@users.sf.net> + + * ext/jack/gstjackaudioclient.c: + jack: add some simple log handlers for jack + Add log handlers for jack that write to the gst debug log. This avoids spamming + the console when e.g. using autoaudiosink, having the jack elements installed, + but not running jack. + +2014-02-22 21:31:21 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * sys/v4l2/v4l2_calls.c: + v4l2src: handle old and odd driver behaviour when listing controls + +2013-11-28 16:54:58 -0800 Darryl Gamroth <dgamroth@uvic.ca> + + * gst/audiofx/audiofxbaseiirfilter.c: + audiofxbaseiirfilter: check if coefficients are provided inside filter lock + https://bugzilla.gnome.org/show_bug.cgi?id=719524 + +2014-02-21 19:46:44 +0000 Tim-Philipp Müller <tim@centricular.com> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2src: also unset INTERLACED flag on buffers if frame is not interlaced + https://bugzilla.gnome.org/show_bug.cgi?id=724899 + +2014-02-21 14:31:59 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2src: Flag interlaced buffers as interlaced. + We correctly indicate the field ordering on interlaced buffers, but fail to + flag them as containing interlaced video, which we need to do here because + we signal interlace-mode=mixed in our caps. This means that downstream + elements (like vaapipostproc from gstreamer-vaapi) don't recognise these + buffers as in need of deinterlacing. + Fix this by setting the interlaced flag on all interlaced buffers. + Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> + https://bugzilla.gnome.org/show_bug.cgi?id=724899 + +2014-02-19 13:56:37 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * gst/audioparsers/gstaacparse.c: + aacparse: be more strict at ADTS header parsing + Adds two extra checks: + - Sampling frequency on header can't be 15. + - Frame size should be at least 9 or 7, depending + on whether CRC protection is present. + https://bugzilla.gnome.org/show_bug.cgi?id=724638 + +2014-02-19 13:35:59 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * gst/audioparsers/gstaacparse.c: + aacparse: make sure we have enough ADTS data + We need at least 6 bytes to pass over to _get_frame_len() + but we were just checking for a minimum of 2 bytes for the + syncword. + https://bugzilla.gnome.org/show_bug.cgi?id=724638 + +2014-02-20 22:52:57 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/autodetect/gstautodetect.c: + * gst/autodetect/gstautodetect.h: + autodetect: check if the kid has a sync property + previously autovideosrc did not have a sync property and v4l2src has none either. + +2014-02-19 21:55:52 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/autodetect/gstautoaudiosink.c: + * gst/autodetect/gstautoaudiosink.h: + * gst/autodetect/gstautoaudiosrc.c: + * gst/autodetect/gstautoaudiosrc.h: + * gst/autodetect/gstautodetect.c: + * gst/autodetect/gstautodetect.h: + * gst/autodetect/gstautovideosink.c: + * gst/autodetect/gstautovideosink.h: + * gst/autodetect/gstautovideosrc.c: + * gst/autodetect/gstautovideosrc.h: + autodetect: use a common baseclass + This makes the actual elements super simple. We're using the ELEMENT_FLAG to + configure source/sink and a string for the Audio/Video type. + +2014-02-14 17:14:42 -0800 Aleix Conchillo Flaqué <aleix@oblong.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: add tls-database property + Add support for a new property: tls-database. If the property is set, + the certificate database will be given to the rtsp connection if TLS + protocol is being used. If the server certificate can't be verified with + the default database, this additional database will be used. + https://bugzilla.gnome.org/show_bug.cgi?id=724396 + +2014-02-19 22:21:54 +0100 Thijs Vermeir <thijsvermeir@gmail.com> + + * sys/osxaudio/gstosxaudioringbuffer.c: + * sys/osxaudio/gstosxaudiosink.c: + osxaudio: remove unused variables + +2014-02-19 21:26:03 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/autodetect/gstautoaudiosink.c: + * gst/autodetect/gstautoaudiosrc.c: + * gst/autodetect/gstautodetect.c: + * gst/autodetect/gstautodetect.h: + * gst/autodetect/gstautovideosink.c: + * gst/autodetect/gstautovideosrc.c: + autodetect: extract common helper code + The function to generate the pretty names is basically the same. Use one and add + a parameter. + +2014-02-19 21:01:39 +0100 Stefan Sauer <ensonic@users.sf.net> + + * tests/check/Makefile.am: + * tests/check/elements/autodetect.c: + autodetect: improve the tests + Add fake audio/video sinks. Previously running the test might be flaky due to + the use of real elements (hardware in use), which we don't want to test here. + Add two more tests that check that the fakes are chosen. + +2014-02-19 15:19:30 +0100 Branislav Katreniak <bkatreniak@nuvotechnologies.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: do not emit error when connection with unknown size ends + Commit 46fd12ae5ec53200b16dfd7f17048d6bc60fbfbc introduced connection + recovery. But when server does not specify content-size, + souphttpsrc tries to reconnect even after regular end of stream. + Http server replies with SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE + but souphttpsrc still emits error instead of EOS. + https://bugzilla.gnome.org/show_bug.cgi?id=724717 + Signed-off-by: Branislav Katreniak <bkatreniak@nuvotechnologies.com> + +2014-02-19 11:26:22 +0100 Stefan Sauer <ensonic@users.sf.net> + + * tests/check/elements/autodetect.c: + autodetect: fix the disabled test + Use a shared helper for both tests. It turns out that the valgrind variant is + fine (maybe due to picking up pulsesink though). + +2014-02-19 11:05:35 +0100 Stefan Sauer <ensonic@users.sf.net> + + * tests/check/elements/autodetect.c: + autodetect: remove cruft from the test + Remove the obsolete version check and use the ignore macro for the disabled test. + +2014-02-18 22:54:45 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/audiofx/audiofirfilter.c: + * gst/audiofx/audioiirfilter.c: + * gst/level/gstlevel.c: + * gst/spectrum/gstspectrum.c: + docs: use docbook markup for xi:include + It turns out that the change in gtk-doc-1.20 which wraps the |[]| content in + CDATA break xi:inlcude examples. As in a whole jhbuild checkout these where + the only 4, we're fixing them instead. + +2014-02-18 22:35:45 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/isomp4/gstqtmux-doc.h: + isomp4mux: fix copy and paste + This fixes doc warnings. + +2014-02-18 21:44:24 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/debugutils/gstcapssetter.c: + * gst/isomp4/gstqtmux-doc.c: + * gst/isomp4/gstqtmux.c: + * gst/level/gstlevel.c: + * gst/replaygain/gstrganalysis.c: + * gst/replaygain/gstrgvolume.c: + docs: use the gtk-doc syntax to link to properties + Don't use docbook unless needed. Also stip other docbook tags in the the files we fix. + +2014-02-18 11:28:18 +0100 Stefan Sauer <ensonic@users.sf.net> + + * ext/pulse/pulsesink.c: + pulsesink: fix crash when getting the current-device in NULL->READY + The "goto unlock" is wrong as in this code path we haven't take the lock yet. + Fixes #724619 + +2014-02-14 22:50:49 +0100 Sebastian Dröge <sebastian@centricular.com> + + * configure.ac: + soup: We need libsoup >= 2.40 for proper usage of the content decoder + Previous versions did not consider our chunk allocator and allocated + memory by themselves, which caused crashes and broken behaviour. + +2014-02-14 15:27:20 -0500 William Jon McCann <william.jon.mccann@gmail.com> + + * gst/audiofx/audiocheblimit.c: + * gst/udp/gstudpsrc.c: + docs: fix mismatched para tags + newer gtkdoc is more sensitive to mismatched docbook tags. + This fixes the build in master. + +2014-02-14 15:59:46 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: add support for serialized queries + See https://bugzilla.gnome.org/show_bug.cgi?id=723850 + +2014-02-14 15:53:55 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/souphttpsrc.c: + tests: fix typecast to fix compilation + +2014-02-14 12:01:00 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: proxy caps and allocation on RTP pads + recv_rtp_sink: allow proxying of the allocation query. + send_rtp_sink: allow proxying of caps and allocation. This allows us to + query caps downstream as well as get an allocator from downstream. + send_rtp_src: allow proxy of caps, this makes the caps query do + upstream. + See https://bugzilla.gnome.org/show_bug.cgi?id=723850 + +2014-02-13 12:29:13 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/qtdemux.c: + qtdemux: handle tags in mac encoding + Check the charset from (C)*** tags and set the charset + to convert from MAC encoding if suitable. + https://bugzilla.gnome.org/show_bug.cgi?id=723166 + +2014-02-13 12:09:13 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Use new automatic_eos API from basesrc + We want to notice ourselves that we're EOS. Otherwise we will + always cancel requests in the very end and confuse the server... + and also make it impossible to use persistent connections. + +2014-02-13 11:11:13 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Consistently use have_size instead of content_size!=0 + +2014-02-13 10:30:09 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Free extra headers when finalizing the element + It's set as property by the application, we should not just reset + properties when going back to READY. + +2014-02-13 10:28:13 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Properly close the session when going back to NULL + Don't wait for that until the element is disposed. + +2013-02-28 12:20:52 +0100 Andoni Morales Alastruey <ylatuya@gmail.com> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: add support for keep-alive sessions + https://bugzilla.gnome.org/show_bug.cgi?id=699926 + +2014-02-12 13:00:13 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: Add "compress" property to enable/disable automatic gzip/deflate content encoding handling + +2014-02-12 12:39:10 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Retry connection if we're finished before the content size only if we actually have a content size + https://bugzilla.gnome.org/show_bug.cgi?id=722185 + +2014-02-12 10:08:50 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouputils.c: + souputils: Fix compiler warning + gstsouputils.c:35:25: error: comparison of constant 9 with expression of type + 'SoupLoggerLogLevel' is always false + [-Werror,-Wtautological-constant-out-of-range-compare] + +2014-01-07 23:00:56 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * ext/soup/Makefile.am: + * ext/soup/gstsoup.c: + * ext/soup/gstsouphttpclientsink.c: + * ext/soup/gstsouphttpclientsink.h: + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + * ext/soup/gstsouputils.c: + * ext/soup/gstsouputils.h: + souphttp*: add ability to do HTTP session logging + This changeset adds the loggin infrastructure and + mods both souphttpsrc and souphttclientsink to use it. + https://bugzilla.gnome.org/show_bug.cgi?id=721764 + +2014-02-07 14:00:15 +0100 divhaere <dirk.vanhaerenborgh@ugent.be> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-mux.c: + matroska: add support for GRAY8, BGR and RGB video colourspaces in V_UNCOMPRESSED codec + https://bugzilla.gnome.org/show_bug.cgi?id=723849 + +2014-02-11 13:25:46 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Add mapping for NOT_FOUND and NOT_AUTHORIZED errors + +2014-02-11 13:25:22 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: Don't duplicate status_code to GStreamer error mapping + +2014-02-09 23:38:44 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/goom/filters.c: + * gst/goom2k1/filters.c: + goom: Remove unused functions + +2014-02-09 23:21:20 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-parse.c: + matroskaparse: Comment out some unused functions used only from the commented out pull-mode code + +2014-02-08 21:01:32 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Fix another compiler warning + +2014-02-08 17:43:32 +0100 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/souphttpsrc.c: + souphttpsrc: Fix implicit enum conversion compiler warning + error: implicit conversion from enumeration type + 'SoupStatus' to different enumeration type 'SoupKnownStatusCode' + +2014-02-08 17:41:21 +0100 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/interleave.c: + interleave: Fix unitialized variable compiler warning in test + error: variable 'mask' is used uninitialized + whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] + +2014-02-08 17:27:51 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Fix unitialized variable compiler warning + error: variable 'image_type' is used uninitialized + whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] + +2014-02-08 17:25:27 +0100 Sebastian Dröge <sebastian@centricular.com> + + * sys/oss4/oss4-audio.h: + oss4: Fix typo in header include guard + error: 'GST_OSS4_AUDIO_H' is used as a header guard here, + followed by #define of a different macro [-Werror,-Wheader-guard] + +2014-02-08 17:24:06 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: Fix unitialized variable compiler warning + variable 'rtx_ssrc' is used uninitialized whenever + 'if' condition is false [-Werror,-Wsometimes-uninitialized] + +2014-02-08 17:21:19 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtp/gstrtpac3depay.c: + rtpac3depay: Remove unused variable + +2014-02-08 17:19:19 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/flx/flx_fmt.h: + flx: Fix typo in header include guard + error: '__GST_FLX_FMT__H__' is used as a header guard here, + followed by #define of a different macro [-Werror,-Wheader-guard] + +2014-02-07 10:07:41 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmux.h: + qtmux: remove have_dts flag from pads + It was used in the past in 0.10 when there was no explicit DTS + field in buffers, now we have it in 1.x series and we can + check it directly with GST_BUFFER_DTS_IS_VALID + +2014-02-07 01:49:26 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmux.h: + qtmux: improve support for sparse streams + Do not try to use subsequent buffer timestamps to calculate + sparse streams durations because the stream is sparse and + the buffers might not be 'time adjacent'. So rely on the + duration and give the option to the pad to provide + custom 'empty' buffers to represent the gaps in the + stream, this can vary on how the data is represented. + Right now, the only sparse stream supported is tx3g subtitles. + +2014-02-06 12:15:22 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmuxmap.c: + qtmux: add support for text/x-raw subtitles + Adds it to mp4mux, qtmux and gppmux. + Buffers need to be prefixed with 2 bytes for the text length before + being muxed. + https://bugzilla.gnome.org/show_bug.cgi?id=581295 + +2014-02-06 12:09:01 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/atoms.c: + * gst/isomp4/atoms.h: + * gst/isomp4/fourcc.h: + qtmux: add support for the TX3G atoms + Adds functions for creating and setting values related to the + tx3g atom for raw text subtitle support. + QTFF spec has information on those atoms + https://bugzilla.gnome.org/show_bug.cgi?id=581295 + +2014-02-05 10:27:54 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/gstqtmux.c: + * gst/isomp4/gstqtmux.h: + * gst/isomp4/gstqtmuxmap.c: + * gst/isomp4/gstqtmuxmap.h: + qtmux: add subtitle support to qtmuxmap structures + adds basic stubs for subtitle support around the qtmux and + qtmuxmap structures. Still no real subtitle implemented, but + basic functions in place + https://bugzilla.gnome.org/show_bug.cgi?id=581295 + +2014-01-20 17:31:14 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.c: + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroska: factor out read context init/reset + While at this, move _track_reset() to track-ids + so it can be called from the common read context + reset routine. + https://bugzilla.gnome.org/show_bug.cgi?id=722705 + +2014-02-06 12:21:07 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/effectv/gstrev.c: + effectv: fix doc section of revtv element + +2014-02-05 12:46:54 +0100 Edward Hervey <bilboed@bilboed.com> + + * sys/osxvideo/Makefile.am: + osxvideo: Fix libtool usage + --tag=CC is needed for static build + +2014-01-16 11:26:41 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: do not try set deinterlace method if passthrough is enabled + Fixes an issue with progressive content and unsupported video formats + for the deinterlace method. + https://bugzilla.gnome.org/show_bug.cgi?id=719636 + +2014-02-04 21:26:56 +0100 Tim-Philipp Müller <tim@centricular.com> + + * ext/flac/gstflacenc.c: + flacenc: order format in template caps by preference + To minimise risk of bad fixation, though audioconvert + at least should be smart enough to avoid it. + +2014-02-02 09:57:03 -0800 Dan Kegel <dank@kegel.com> + + * configure.ac: + v4l2: Remove obsolete definition GST_V4L2_MISSING_BUFDECL + The only use was removed by 9edc0c0365f79ab07ff2e65461c6696e3931a3f0 + https://bugzilla.gnome.org/show_bug.cgi?id=723446 + +2014-02-04 13:43:56 +0100 RafaÅ‚ MużyÅ‚o <galtgendo@o2.pl> + + * ext/flac/gstflacdec.c: + * ext/flac/gstflacenc.c: + * gst/cutter/gstcutter.c: + gst: Don't use endianness-specific S8 audio format + It does not exist. + https://bugzilla.gnome.org/show_bug.cgi?id=723331 + +2014-01-31 14:17:54 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * ext/cairo/gstcairooverlay.c: + cairooverlay: add support for RGB16 + https://bugzilla.gnome.org/show_bug.cgi?id=723289 + +2014-01-30 09:43:50 +0100 Per x Johansson <perxjoh@axis.com> + + * gst/matroska/matroska-mux.c: + * gst/matroska/matroska-mux.h: + matroskamux: Fix constantly growing used uid list + Moves the used uid list to the class to avoid having it grow forever. + https://bugzilla.gnome.org/show_bug.cgi?id=723269 + +2014-01-30 10:44:05 +0100 Edward Hervey <bilboed@bilboed.com> + + * common: + Automatic update of common submodule + From d48bed3 to 1a07da9 + +2014-01-24 01:52:08 +0000 Mike Sheldon <elleo@gnu.org> + + * gst/wavparse/gstwavparse.c: + wavparse: Ignore Broadcast Wave Format (BWF) tags when searching for 'fmt' chunk + https://bugzilla.gnome.org/show_bug.cgi?id=723125 + +2014-01-29 10:37:53 +0100 Edward Hervey <bilboed@bilboed.com> + + * tests/check/elements/rtpaux.c: + check: Use fakesink sync=True instead of an audio sink + Ensures the test can run on systems without alsa (or any audio output for + that matter), and will avoid people running build slaves wondering what + the hell was beeping during the night :) + +2014-01-27 20:05:42 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/audioparsers/gstac3parse.c: + ac3parse: custom get_sink_caps handling for private stream caps + ... now that those are transformed rather than parsed, some transforming + of caps is required as well to make auto-plugging succeed. + +2014-01-25 02:06:00 -0500 Ryan Lortie <desrt@desrt.ca> + + * sys/v4l2/v4l2_calls.c: + v4l2: guard use of ENODATA with #ifdef + Not all systems with v4l have ENODATA defined, so check that we have it + before attempting to use it. + https://bugzilla.gnome.org/show_bug.cgi?id=722953 + +2014-01-24 12:37:39 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + Revert "rtspsrc: Proxy rtpjitterbuffer do-retransmission property" + This reverts commit 9f7b1128b1f00a2b87a232ff890867549ab95ba5. + This should be handled automatically be rtspsrc if the AVPF profile + is used, and manual enabling of it can be done with the new-manager + signal. + +2014-01-24 10:21:11 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: add signal to notify of new manager + So that you can configure and connect to signals on the rtpbin. + See https://bugzilla.gnome.org/show_bug.cgi?id=722866 + +2014-01-23 15:17:58 -0800 Aleix Conchillo Flaqué <aleix@oblong.com> + + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: Proxy rtpjitterbuffer do-retransmission property + https://bugzilla.gnome.org/show_bug.cgi?id=722866 + +2014-01-21 17:52:44 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: handle expected packet being an RTX packet + If the expected packet (do_next_seqnum is TRUE) is the one we requested + for retranmission earlier, do the logic to update the retransmission + statistics as well before setting up the timers for the next expected + packet. + Also reset the retransmission counter if the timer is reused for another + seqnum. + +2014-01-21 15:48:20 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: add a caps accumulator for the request-pt-map signal + Add an accumulator that stops the signal emission as soon as a caps has + been retrieved. Otherwise the default handler would continue emitting + the signal and possibly overwrite the result with NULL again. + +2014-01-21 15:25:54 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + rtxreceive: copy flags and timestamps from original buffer + +2014-01-21 15:24:52 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: ignore invalid timestamps in rtt calculation + When the input buffer does not have a valid timestamp, don't try to + calculate the round-trip-time. + +2014-01-16 14:23:13 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-parse.c: + * gst/matroska/matroska-read-common.c: + * gst/matroska/matroska-read-common.h: + matroskaparse: better default caps when none set + Uses information gathered during EBML parsing to + forge a more suitable set of caps instead of blindly + assuming everything is video/x-matroska. + For consistency, stream type reset was added to + matroska-demux too. + https://bugzilla.gnome.org/show_bug.cgi?id=722311 + +2014-01-15 17:29:35 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests: rtprtx::test_rtxreceive_data_reconstruction: remove useless code for triggering retransmission + There is no need anymore to push yet another buffer in rtxsend + in order to trigger the previously requested retransmissions + to actually happen. + +2014-01-15 17:27:19 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests: rtprtx::test_rtxreceive_data_reconstruction: fix race condition + Now with rtprtxsend pushing rtx buffers from a different thread, + this is necessary to ensure that the result of the test is deterministic. + This code makes use of GstCheck's global GMutex and GCond that are + being used inside GstCheck's sink pad chain() function in order + to synchronize with it. + +2014-01-15 17:17:57 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests: rtprtx::test_rtxsender_packet_retention: fix race condition + Now with rtprtxsend pushing rtx buffers from a different thread, + this is necessary to ensure that the result of the test is deterministic. + This code makes use of GstCheck's global GMutex and GCond that are + being used inside GstCheck's sink pad chain() function in order + to synchronize with it. + +2014-01-15 11:26:33 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests: rtprtx::test_push_forward_seq: fix race condition + Now with rtprtxsend pushing rtx buffers from a different thread, + this is necessary to ensure that the result of the test is deterministic. + This code makes use of GstCheck's global GMutex and GCond that are + being used inside GstCheck's sink pad chain() function in order + to synchronize with it. + +2014-01-15 09:47:03 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests: rtprtx::test_push_forward_seq: fix buffer refcounting + +2014-01-21 13:42:38 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: ensure that no rtx buffers are sent after EOS + To do that, enqueue the EOS event to be sent from the srcpad task + thread and flush the queue right afterwards, so that no more rtx + buffers can be sent, even if there are more requests coming in. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722370 + +2014-01-15 09:46:14 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + rtprtxsend: run a new GstTask on the src pad + The reason behind this is to minimize the retransmission delay. + Previously, when a NACK was received, rtprtxsend would put a + retransmission packet in a queue and it would send it from chain(), + i.e. only after a new buffer would arrive. + This unfortunately was causing big delays, in the order of 60-100 ms, + which can be critical for the receiver side. + By having a separate GstTask for pushing buffers out of rtxsend, + we can push buffers out right after receiving the event, without + waiting for chain() to get called. + +2014-01-03 17:47:55 +0000 Tim-Philipp Müller <tim@centricular.com> + + * ext/shout2/gstshout2.c: + * ext/shout2/gstshout2.h: + shout2send: error out if no caps were received + Instead of assuming that input is ogg. + +2014-01-03 17:30:12 +0000 Tim-Philipp Müller <tim@centricular.com> + + * ext/shout2/gstshout2.c: + shout2send: accept audio/webm, audio/ogg and video/ogg as well + Those are advertised in the template caps, but the + setcaps handler didn't handle them. But then oggmux + and oggparse at least for now still always output + application/ogg anyway, so that wasn't a real problem. + +2014-01-20 10:12:45 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtp/gstrtpvp8pay.c: + rtpvp8pay: Don't leak input buffers + https://bugzilla.gnome.org/show_bug.cgi?id=722414 + +2014-01-19 17:40:56 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/avi/gstavimux.c: + avimux: reset some more audio pad data when needed + +2014-01-19 17:38:59 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/avi/gstavimux.c: + * gst/avi/gstavimux.h: + avimux: write correct blockalign for vbr audio + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=720659 + +2014-01-16 17:36:12 -0800 Aleix Conchillo Flaqué <aleix@oblong.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: do not drop serialized events when latency is set + Serialized events are now queued in the jitter buffer, so we don't + want to drop them even latency is set. + https://bugzilla.gnome.org/show_bug.cgi?id=722372 + +2013-12-11 09:36:22 +0100 Michael Olbrich <m.olbrich@pengutronix.de> + + * gst/avi/gstavimux.c: + avimux: don't make the buffer writable unless absolutely necessary + https://bugzilla.gnome.org/show_bug.cgi?id=722396 + +2013-09-12 16:56:56 +0200 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: set GST_BUFFER_FLAG_DELTA_UNIT when appropriate + https://bugzilla.gnome.org/show_bug.cgi?id=722394 + +2014-01-17 07:46:09 +0100 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: don't ref the newly created allocator + Otherwise the allocator will never be deleted. + https://bugzilla.gnome.org/show_bug.cgi?id=712612 + +2014-01-15 22:47:12 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-demux.c: + matroskademux: Don't skip all video frames until the first keyframe + Instead do it like all other demuxers and let parsers and decoders + handle that. The keyframe information inside the container might + be completely wrong like in the sample file of the bug report, + and if it is correct and we push no keyframes, then the parsers + and decoders will handle that properly anyway. + https://bugzilla.gnome.org/show_bug.cgi?id=682276 + +2014-01-13 10:08:09 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: remove elst_offset variables + They are not used anymore + +2014-01-06 21:36:17 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/qtdemux.c: + qtdemux: remember reverse playback when verifying the segment end + Check if the rate is positive or negative to correctly compare the current + position with the segment to make reverse playback work + +2014-01-03 10:59:35 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: do not ignore empty segments + Make sure empty segments are used and pushed with a gap event + to represent its data (or lack of it) + Each QtSegment is mapped into a GstSegment with the corresponding + media range. For empty QtSegments a gap event is pushed instead + of GstBuffers and it advances to the next QtSegment. + To make this work with seeks, need to keep track of the starting + 'base' to make sure it remains consistently increasing when + pushing new segment events. + For example: if a seek makes qtdemux start from 5s, the first + segment will have a base=0. When the next segment is activated, + its base time will be QtSegment.time - qtdemux.segment_base so + that it doesn't include the first 5s that weren't played and + shouldn't be accounted on the running time + This purposedly will remove the fix made for + https://bugzilla.gnome.org/show_bug.cgi?id=700264, at this + point it was decided to respect the gaps, even if they cause + a delay on playback, because that's the way the file was crafted. + https://bugzilla.gnome.org/show_bug.cgi?id=345830 + +2013-12-12 23:05:43 -0500 Olivier Crête <olivier.crete@collabora.com> + + * tests/check/elements/rtprtx.c: + tests: Remove usage of the system clock from the rtprtx test + +2013-12-12 23:22:41 -0500 Olivier Crête <olivier.crete@collabora.com> + + * tests/check/elements/rtpcollision.c: + tests: Initial segment in rtpcollision test + +2014-01-14 15:56:42 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/examples/rtp/client-rtpaux.c: + * tests/examples/rtp/server-rtpaux.c: + examples/*-rtpaux: specify payload type association for the audio stream, so that rtx works also for audio + +2014-01-14 13:08:18 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: remove wrong check for payload type not having been set + 1) pt can be lower than 96 + 2) there is no point in checking that because rtprtxsend will not + even store buffers for payload types that it doesn't know about, + so this case will never be reached + +2014-01-14 13:01:41 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: fix data locking when creating rtx packets + This patch moves the creation of rtx packets to be done early, + in the src_event() function, when they are requested. The purpose + is to run gst_rtp_rtx_buffer_new() with the object locked to + protect internal data, because if it is done at the pushing stage, + we would have to lock and unlock multiple times in a row while we + are pushing the rtx buffers. + Previously there was no locking at all, which was terribly wrong. + +2014-01-14 12:50:23 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: lock access to internal data in sink_event() function + +2014-01-14 12:44:06 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: remove unnecessary call to reset() from finalize() + ...and use _free_full() on the pending buffers queue now that + reset() is not being called + +2014-01-14 12:38:51 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: remove unused parameter from the internal reset() method + +2014-01-14 12:32:38 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: Use g_slice_* for allocating internal structures + +2014-01-14 12:28:01 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + rtprtxreceive: remove stupid mutex unlock in the middle of chain() + +2014-01-14 12:25:36 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + rtprtxreceive: use GST_DEBUG_OBJECT / GST_WARNING_OBJECT instead of GST_DEBUG / g_warning + +2014-01-14 12:19:58 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + rtprtxreceive: fix integer format specifiers in GST_DEBUG + seqnum in this function is 32-bit, so G_GUINT16_FORMAT would + produce undefined output on big endian systems + +2014-01-14 12:13:49 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + rtprtxsend: change the rtx_pt_map directly in set_property() instead of delaying it for chain() + The same lock is held, so there is no point in complicating it... + +2014-01-14 12:07:58 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + * gst/rtpmanager/gstrtprtxreceive.h: + rtprtxreceive: change the rtx_pt_map directly in set_property() instead of delaying it for chain() + The same lock is held, so there is no point in complicating it... + +2014-01-14 11:55:00 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + rtprtxreceive: simplify the code of finalize() + +2014-01-14 11:52:21 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + * gst/rtpmanager/gstrtprtxreceive.h: + rtprtxreceive: use the GstObject lock instead of a new one + +2014-01-14 11:45:52 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + rtprtxsend: use the GstObject lock instead of a new one + +2013-12-10 14:29:55 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2object.c: + v4l2: Add NV12_64Z32 support + https://bugzilla.gnome.org/show_bug.cgi?id=722127 + +2014-01-14 19:08:49 +0900 Justin Joy <justin.joy.9to5@gmail.com> + + * sys/oss/gstosshelper.c: + osshelper: Don't leak fd when getting card name + https://bugzilla.gnome.org/show_bug.cgi?id=722163 + +2014-01-14 09:43:33 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/audioparsers/gstaacparse.c: + Revert "aacparse: relax the detection of ADTS" + This was pushed by mistake along with the V4L2 fix. + This reverts commit 8eb4b032bef444397c4d211f2095c173ba114187. + +2014-01-14 15:42:01 +0900 Justin Joy <justin.joy.9to5@gmail.com> + + * gst/rtp/gstrtpg726pay.c: + rtpg726pay: don't leak encoding_name string + https://bugzilla.gnome.org/show_bug.cgi?id=722159 + +2014-01-13 09:14:00 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * sys/v4l2/v4l2_calls.c: + v4l2: fix build break using V4L2_CAP_VIDEO_M2M_MPLANE + This may not be defined. Since the previous version used + only the other define (V4L2_CAP_VIDEO_OUTPUT_MPLANE), fall + back on this only when not available. + +2013-02-27 01:45:52 +0900 Akihiro Tsukada <atsukada@users.sourceforge.net> + + * gst/audioparsers/gstaacparse.c: + aacparse: relax the detection of ADTS + According to ISO/IEC 13818-7, "channel_config" field in ADTS header + may have value of 0, as in the case of frame with PCE. + gst_aac_parse_detect_streams() returned FALSE for those frames + and discarded them. + +2014-01-07 11:58:23 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: check set_config return value in gst_v4l2_buffer_pool_new + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2014-01-10 12:40:31 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Add parsed=1 field for encoded output + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2014-01-10 12:39:16 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Don't leak empty caps + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2014-01-08 16:51:21 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: do not stop a stream not previously started + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-12 16:27:21 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Don't enforce dimension field on encoded formats + Don't enforce having width, height and framerate in template caps for encoded + formats. These don't always need to be exposed and may break negotiation for + decoder and decoding sink. If needed, these field will be automatically added + when probed caps are known. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-12 17:09:59 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * sys/v4l2/gstv4l2object.c: + v4l2object: unref downstream pool + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-18 13:37:23 -0500 Julien Isorce <julien.isorce@collabora.co.uk> + + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2bufferpool.h: + v4l2bufferpool: add gst_v4l2_buffer_pool_flush + STREAMOFF set all v4l2buffers to DEQUEUE state. + Then for CAPTURE we call QBUF on each buffer. + For OUTPUT the buffers are just push back in the GstBufferPool + base class 's queue. + But the loop actually looks like the same. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-16 17:29:30 -0500 Benjamin Gaignard <benjamin.gaignard@linaro.org> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Add vp8 support + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-12 16:46:09 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Don't force framerate field for OUTPUT + If there is nothing that seems to force a certain framerate on output device, it is + preferable to simply not set that feild. This allow negotiation with tsdemux in a + decoder for example. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-12 14:07:03 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2object: _v4l2fourcc_to_structure() can be static + This function is not used anymore outside v4l2object. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-12 14:22:26 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Add MPEG1/2 support + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-12 12:18:45 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Ask for a decent buffer size when dealing with encoded formats + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-07 14:03:53 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: On warn on size change if n_planes > 1 + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-31 16:38:09 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * sys/v4l2/gstv4l2object.c: + v4l2object: check if translated format is valid + Also add a FIXME in gst_v4l2_object_setup_format + to note that the whole function has to be improved + in order to support ENCODED formats. + It requires to have an encoder device which we do not + have right now. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-07 10:31:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Validate returned dimensions + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-05 19:36:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Ensure max is not smaller then min in decide_allocation + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-05 19:36:06 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Don't keep the max paramter when using our own pool + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-05 19:34:44 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: Respect the suggested min buffer + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-05 18:48:44 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Allocate pool if needed in decide_allocation + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-05 18:49:19 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Add V4L2_CID_MIN_BUFFERS_FOR_CAPTURE support + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-05 18:48:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: + v4l2: Move decide allocation into v4l2object + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-05 13:51:13 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2object: Implement _setup_format() + This method allow setting up the object from the currently configured format on the + device. This is useful for M2M element where input data decides the format that will + be set on capture side. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-10 14:34:17 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Split out saving format from set_format() + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-31 15:37:26 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * sys/v4l2/gstv4l2object.c: + v4l2object: set only one plane for encoded format + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-04 16:49:13 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Move code block where it belongs + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-04 16:26:12 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Don't check format specific information + The number of plane, and the stride does not represent a capability change. Same caps + can have different stride from the default GstVideoInfo and the number of planes will + never change for 1 format. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-04 16:23:18 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2object.c: + v4l2object: Move the extrapolation of stride at the right place + Now that we have a stride array, we should extrapolate only when + eeded (non multi-planar buffer). + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-04 15:09:44 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Move back assertions where they should be + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-04 15:09:10 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Move mplane logic into gst_v4l2_object_get_caps_info() + It makes the gst_v4l2_object_set_format() slightly simplier and will make that + logic reusable. Note that gst_v4l2_object_has_mplane() will always return the + same value for one device. There is no need to check against the caps as this + has already been done by _open. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-03 18:27:47 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2object: Split _v4l2fourcc_to_video_format + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-02 18:05:11 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: Request buffers only once + VIDIOC_REQBUFS allocates buffer, it has no place inside set_config. Also, some driver do + no allow multiple calls to this ioctl. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-02 15:26:50 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: Don't validate dimension for encoded format + We set the dimensions just in case but don't validate them + afterwards. For some codecs the dimensions are *not* in the + bitstream, IIRC VC1 in ASF mode for example. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-11-28 17:10:29 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2object: Quirks for dev without initial format + Most M2M have undefined behaviour initially when VIDIOC_G_FMT is called. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-11-28 17:09:26 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2object: Add gst_v4l2_object_open_shared() + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-11-28 17:07:05 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + v4l2object: Implement gst_v4l2_dup() + This will duplicated the FD from another object and copy over the probed result. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-11-28 16:59:59 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2object: make IO_MODE enum public + This is to allow adding a second io-mode property on M2M device like decoder so + input and output can be controlled separatly. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-06-04 23:42:24 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/v4l2_calls.c: + v4l2: better handle quirks activation + This way we can activate deactivate those quirks all at once at one + place. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-06-04 23:34:04 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * sys/v4l2/gstv4l2object.c: + v4l2: Fix h264 caps + V4L2_PIX_FMT_H264 is documentated as byte-stream (with start code). The ensure proper + negotiation with element like h264parse. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2013-12-06 14:44:51 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + v4l2object: Split caps in different categories + This is need to correctly expose capabilities on specialized devices + like decoders and encoders. + https://bugzilla.gnome.org/show_bug.cgi?id=720568 + +2014-01-10 14:16:00 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/matroska/matroska-read-common.c: + matroskademux: don't leak TOC chapter list + +2014-01-10 08:52:16 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/matroska/matroska-mux.c: + matroskamux: remove obsolete write-dummy-and-overwrite-on-eos code + The need for rewriting apparently is obsolete 0.10 leftover. + We now have caps for subtitles when we create the headers, + so we always write the correct data in the first place. + +2014-01-09 23:55:16 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: remove duplicate assignment + Coverity CID 1151680 + +2014-01-09 18:25:04 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> + + * gst/matroska/matroska-mux.c: + matroskamux: write subtitle codec ID and data at start when known + This avoids issues with writing dummy data first, then having + to come back and write correct data later. Doing so prevents + the muxed stream from being actually streamable. + https://bugzilla.gnome.org/show_bug.cgi?id=712134 + +2014-01-09 17:32:15 +0100 Sebastian Dröge <sebastian@centricular.com> + + * configure.ac: + configure: Include AvailabilityMacros.h for osxvideo check + Otherwise MAC_OS_X_VERSION_MIN_REQUIRED might not be defined + +2014-01-09 11:56:31 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/atoms.c: + * gst/isomp4/atoms.h: + qtmux: respect the HDLR box string format for mov and isomedia + Mov spec says it uses a pascal style string, while isomedia uses + a null terminated one. Store the current atoms flavor into the HDLR + to be able to generate the correct output. + https://bugzilla.gnome.org/show_bug.cgi?id=705982 + +2014-01-08 11:28:04 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/matroska/matroska-mux.c: + Revert "matroskamux: Use the running time for container timestamps, not buffer timestamps" + This reverts commit b3aa8755fe07639f22e4104f4932d769d6c9075a. + We are already using the running-time because they were placed on the + buffers with gst_collect_pads_clip_running_time(). Arguably it would be + better to not modify the incomming buffers but collectpads seems to want + to use absolute timestamps from the buffers for finding the best buffer + (this can be changed with a custom compare function..). + +2014-01-08 10:41:24 +0100 Sebastian Dröge <sebastian@centricular.com> + + * configure.ac: + configure: Fix AC_COMPILE_IFELSE usage + +2014-01-08 10:31:18 +0100 Sebastian Dröge <sebastian@centricular.com> + + * configure.ac: + osxvideosink: Improve configure check for OSX >= 10.6 + https://bugzilla.gnome.org/show_bug.cgi?id=721245 + +2014-01-07 12:13:51 -0800 Aleix Conchillo Flaqué <aleix@oblong.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: remove unused list of decoders + remove list of decoders, which are already handled by the list of elements. + https://bugzilla.gnome.org/show_bug.cgi?id=719938 + +2014-01-08 09:46:55 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-mux.c: + matroskamux: Error out if ADPCM caps don't contain the layout field + +2014-01-03 15:25:23 +0100 Nicola Murino <nicola.murino@gmail.com> + + * gst/matroska/matroska-mux.c: + matroskamux: Add support for g726 ADPCM + https://bugzilla.gnome.org/show_bug.cgi?id=720995 + +2014-01-07 15:04:02 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: use new method to get media-type + Use the new method to get the media type of a transport. + +2014-01-06 21:12:17 +0100 Stefan Sauer <ensonic@users.sf.net> + + * tests/check/elements/wavparse.c: + wavparse: split the test + This way one failure won't shadow the other test and also if one fails we get + better disgnostics through the test-name. + +2014-01-06 14:54:46 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-mux.c: + matroskamux: Add HEVC / h265 support + +2014-01-06 14:54:38 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + matroskademux: Add HEVC / h265 support + +2014-01-06 13:36:38 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/wavparse/gstwavparse.c: + wavparse: remove ifdef'ed code + We do have adtl and cue parse as part of toc handling alreday. The fmt code is a left over from <0.10 times. + +2014-01-06 13:32:58 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/avi/gstavidemux.c: + * gst/wavparse/gstwavparse.c: + avidemux, waveparse: more logging for unhandled chunks + Always print a warning with the tag and if possible do a memdump. + +2014-01-05 22:47:42 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/avi/gstavidemux.c: + avidemux: expose 'strn' - stream name - as title tag + +2014-01-05 22:41:24 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/avi/gstavidemux.c: + avidemux: parse fuji strd + We can get maker, model and capture date from this chunk. + Fixes #636143 + +2014-01-05 21:46:33 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/avi/gstavidemux.c: + avidemux: ... and use the local api both times + +2014-01-05 21:38:14 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/avi/gstavidemux.c: + avidemux: copy the riff api for ncdt into the element + This chunk is avi specific, no need to expose this as public api. + +2014-01-05 10:28:21 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-mux.c: + matroskamux: Add missing semicolon from last commit + +2014-01-05 10:22:37 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-mux.c: + matroskamux: Use the running time for container timestamps, not buffer timestamps + Buffer timestamps have no real meaning here, and for selecting the next + buffer we already use the running time anyway. + +2014-01-04 21:34:38 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/avi/gstavidemux.c: + avi: use new riff api to extract nikon metadata + Fixes #636143 + +2013-11-01 16:41:43 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-good-plugins-docs.sgml: + * docs/plugins/gst-plugins-good-plugins-sections.txt: + * docs/plugins/gst-plugins-good-plugins.args: + * docs/plugins/gst-plugins-good-plugins.hierarchy: + * docs/plugins/inspect/plugin-rtpmanager.xml: + rtprtxsend/rtprtxreceive: generate gtk doc + +2013-12-02 11:26:09 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + test/check: Verify rtprtxsend::ssrc-map property works as expected + +2013-11-29 19:35:44 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxreceive.c: + * gst/rtpmanager/gstrtprtxreceive.h: + * tests/check/elements/rtpaux.c: + * tests/check/elements/rtprtx.c: + * tests/examples/rtp/client-rtpaux.c: + rtprtxreceive: modify to use a payload-type map like rtprtxsend + +2013-11-29 19:58:26 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: do not keep history of packets with an unknown payload type + This allows to disable retransmission per payload type by not putting + a certain payload type in the map. + +2014-01-02 15:18:52 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + * tests/check/elements/rtpaux.c: + * tests/check/elements/rtpcollision.c: + * tests/check/elements/rtprtx.c: + * tests/examples/rtp/server-rtpaux.c: + rtprtxsend: Allow SSRC-multiplexing and multiple payload types in the original stream + Conflicts: + tests/examples/rtp/server-rtpaux.c + +2013-11-25 15:00:45 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: Add an rtx-ssrc property to allow external control of the ssrc + This is useful when one needs to know the SSRC beforehands, so that it can + be used for SRTP for example. + +2013-11-13 15:11:35 -0500 Torrie Fischer <torrie.fischer@collabora.co.uk> + + * tests/examples/rtp/.gitignore: + * tests/examples/rtp/Makefile.am: + * tests/examples/rtp/client-rtpaux.c: + * tests/examples/rtp/server-rtpaux.c: + examples: rtp: Add end-to-end rtpbin example with RTX elements + This example demonstrates how to use rtpbin with retransmission (rtx) + elements set in the place of rtpbin's "aux" elements in order to + enable RTP retransmission according to the rules of RFC4588. + +2013-11-05 17:35:01 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * docs/design/Makefile.am: + * docs/design/design-rtpauxiliary.txt: + doc: add design-rtpauxiliary.txt to describe how rtpbin deals with auxiliary elements + +2014-01-02 14:48:49 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpsession.c: + session: also push EOS event to RTCP srcpad + +2014-01-02 14:46:11 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + session: place SSRC in Retransmission event + +2013-11-01 16:57:15 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/rtpaux.c: + tests/check: add rtpaux::test_simple_rtpbin_aux + It shows how to use "set-aux-receive" and "set-aux-send" + properties of rtpbin to set rtprtxsend and rtprtxreceive + Build 2 pipelines, one for rtpbin as a sender and one for + rtobin as a receive. Then transmit an audio stream. + It also drops some packets to activate restransmission and + check they are actually retransmited. + +2013-11-01 17:09:42 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * tests/check/elements/rtpcollision.c: + tests/check: add rtpcollision::test_rtx_ssrc_collision unit test + check that rtxrtpsend changes its retransmission ssrc when + collision happens + +2013-11-06 12:34:13 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests/check: add rtprtx::test_rtxreceive_data_reconstruction + This unit test verifies that retransmitted rtp packets coming out + of rtprtxreceive are the same as the original ones. + +2013-11-05 09:33:51 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: use a realistic limit for the value of max-size-packets + G_MAXINT16 is chosen because if the queue contains more than + G_MAXINT16 packets, seqnum comparison will not work properly. + +2013-11-04 20:05:03 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + rtprtxsend: use a GSequence to implement the buffer queue + This has the advantage that searching the queue to find the + buffer with the requested seqnum is done with binary search. + +2013-11-04 18:38:24 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + * tests/check/elements/rtprtx.c: + rtprtxsend: retransmit packets in the same order as the rtx requests + +2013-11-02 19:56:44 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests/check: Add unit test for rtxsend's max_size_time property + +2013-10-29 18:27:00 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + rtprtxsend: Handle the max_size_time property + This property allows you to specify the amount of buffers + to keep in the retransmission queue expressed as time (ms) + instead of buffer count (which is the max_size_buffers property). + +2013-11-02 15:21:08 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtprtxsend.c: + rtprtxsend: keep important buffer information in a private structure + This is to avoid mapping a buffer every time we need to read a seqnum + or a timestamp. + +2013-11-01 11:58:47 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtprtx.c: + tests/check: Add rtprtx::test_rtxsender_packet_retention + This unit test verifies that the rtxsend element correctly maintains + a buffer of already transmitted rtp packets and that it can + re-transmit all of them correctly on demand. It also verifies + that the limit of this buffer (max-size-packets property) is respected. + +2013-11-01 16:22:13 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * tests/check/elements/rtprtx.c: + tests/check: add rtprtx::test_drop_multiple_sender unit test + Several senders / one receiver + Similar than test_drop_one_sender but with multiple senders + mixed through the funnel element. + It drops some packets and checks that they are retransmited + correctly. + +2013-11-01 16:21:00 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * tests/check/elements/rtprtx.c: + tests/check: add rtprtx::test_drop_one_sender unit test + Test for one sender / one receiver + Build the pipeline + videotestsrc ! rtpvrawpay ! rtprtxsend ! rtprtxreceive ! fakesink + and drop some buffers between rtprtxsend and rtprtxreceive + Then it checks that every dropped packet has been re-sent. + It also checks that not too much requests has been sent. + +2013-11-01 16:17:51 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/rtprtx.c: + tests/check: add rtprtx::test_push_forward_seq + add simple unit test that manually push buffers + in rtprtxsend connected to rtprtxreceive. + Drops some buffers and make sure they are retransmisted. + +2013-11-01 15:52:03 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/gstrtpmanager.c: + * gst/rtpmanager/gstrtprtxreceive.c: + * gst/rtpmanager/gstrtprtxreceive.h: + * gst/rtpmanager/gstrtprtxsend.c: + * gst/rtpmanager/gstrtprtxsend.h: + rtpmanager: add new rtprtxsend / rtprtxreceive elements + The purpose of the sender RTX object is to keep a history + of RTP packets up to a configurable limit (in time). It will + listen for custom retransmission events from downstream. When + it receives a request for retransmission, it will look up the + requested seqnum in its list of stored packets. If the packet + is available, it will create a RTX packet according to RFC 4588 + and send this as an auxiliary stream. + The receiver will listen to the custom retransmission events + from the downstream jitterbuffer and will remember the SSRC1 + of the stream and seqnum that was requested. When it sees a + packet with one of the stored seqnum, it associates the SSRC2 + of the stream with the SSRC1 of the master stream. From then + on it knows that SSRC2 is the retransmission stream of SSRC1. + This algorithm is stated in RFC 4588. For this algorithm to + work, RFC4588 also states that no two pending retransmission + requests can exist for the same seqnum and different SSRCs or + else it would be impossible to associate the retransmission with + the original requester SSRC. + When the RTX receiver has associated the retransmission packets, + it can depayload and forward them to the source pad of the element. + RTX is SSRC-multiplexed + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711084 + +2013-11-05 16:36:46 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * docs/design/Makefile.am: + * docs/design/design-rtpretransmission.txt: + doc: add design for rtp retransmission + Describe how rtprtxsend and rtprtxreceive generally work + but also how the association algorithm is implemented. + +2014-01-02 20:23:05 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * ext/soup/gstsouphttpsrc.c: + souphttpsrc: use status code macro instead of 407 + Rest of the code is using the _PROXY_AUTHENTICATION_REQUIRED + macro too. Easier to understand if you don't recall HTTP + error codes by heart. + +2013-12-31 21:31:43 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * ext/shout2/gstshout2.c: + * ext/shout2/gstshout2.h: + shout2send: change audio_format field to format + This element and the underlying libshout2 library + can handle video media files too. The code already + handles video/webm so the name gets confusing. Also + add and use DEFAULT_FORMAT macro Instead of hardwiring + SHOUT_FORMAT_VORBIS at init + https://bugzilla.gnome.org/show_bug.cgi?id=721342 + +2013-12-31 20:09:29 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * ext/shout2/gstshout2.c: + shout2send: clarify meaning of the URL prop + https://bugzilla.gnome.org/show_bug.cgi?id=721342 + +2013-12-27 12:27:32 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-good-plugins-docs.sgml: + * docs/plugins/gst-plugins-good-plugins-sections.txt: + * ext/shout2/gstshout2.c: + shout2send: docs, add a sample pipeline + And finish adding shout2send to the docs while at it + https://bugzilla.gnome.org/show_bug.cgi?id=721342 + +2013-12-31 15:00:22 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * ext/gdk_pixbuf/gstgdkpixbufoverlay.c: + gdkpixbufoverlay: remove spurious @see_also + +2013-12-06 17:08:54 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: support any video formats and any caps features if deinterlace mode allows it + https://bugzilla.gnome.org/show_bug.cgi?id=719636 + +2013-12-31 13:31:52 +0100 Sebastian Rasmussen <sebras@hotmail.com> + + * sys/v4l2/gstv4l2object.c: + v4l2: Handle v4l2_ioctl() errors even in error handling + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721268 + +2014-01-01 12:11:43 -0800 Jeremy Huddleston Sequoia <jeremyhu@apple.com> + + * sys/osxvideo/Makefile.am: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + osxvideo: unifdef -DRUN_NS_APP_THREAD + +2014-01-01 12:10:01 -0800 Jeremy Huddleston Sequoia <jeremyhu@apple.com> + + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + osxvideo: Assume SDK and deployment target are at least Snow Leopard + +2014-01-01 12:23:50 -0800 Jeremy Huddleston Sequoia <jeremyhu@apple.com> + + * configure.ac: + configure: Disable osxvideo on Leopard and earlier + This also moves the "other platforms" check in OS X video to before the + variable is read + https://bugzilla.gnome.org/show_bug.cgi?id=721245 + +2013-12-31 14:57:27 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/rtpbin.c: + tests: add AUX receiver unit test + +2013-12-31 13:20:01 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/rtpbin.c: + tests: improve rtpbin test + +2013-12-31 13:16:46 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: add some docs about AUX elements + +2013-12-31 13:01:22 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/rtpbin.c: + tests: add AUX sender unit test + +2013-12-31 12:31:25 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + rtpbin: add support for AUX sender and receiver + AUX elements are elements that can be inserted into the rtpbin + pipeline right before or after 1 or more session elements. + The AUX elements are essential for implementing functionality such + as error correction (FEC) and retransmission (RTX). + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711087 + +2013-12-31 12:22:39 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/rtpbin.c: + tests: add decoder test + +2013-12-30 17:36:42 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: make request_element method internally + We can use the same method to create encoder and decoder elements, they + are just internal elements that we create. + +2013-12-31 10:25:28 +0100 Stéphane Cerveau <scerveau@gmail.com> + + * gst/wavparse/gstwavparse.c: + wavparse: Skip id3 tag + Skip id3 tag during wav parse. + https://bugzilla.gnome.org/show_bug.cgi?id=721241 + +2013-12-31 10:10:05 +0100 Sebastian Dröge <sebastian@centricular.com> + + * sys/osxaudio/gstosxcoreaudio.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + osx: Make OSX version checks more consistent + And especially also consider update versions, e.g. 10.5 with updates + will be 1051 or similar and thus bigger than MAC_OS_X_VERSION_10_5 but + still won't have the API we want to use. + +2013-12-31 10:07:22 +0100 Jeremy Huddleston <jeremyhu@freedesktop.org> + + * sys/osxvideo/osxvideosink.h: + osxvideosink: Fix build on updated OS X Leopard + https://bugzilla.gnome.org/show_bug.cgi?id=721245 + +2013-12-30 17:23:22 +0100 Edward Hervey <bilboed@bilboed.com> + + * gst/avi/gstavimux.c: + avimux: Add missing break + I guess no-one noticed we no longer could mux WMV3 ... + COVERITY CID 1139759 + +2013-12-30 17:20:37 +0100 Edward Hervey <bilboed@bilboed.com> + + * gst/rtp/gstrtpvrawpay.c: + rtpvrawpay: Add missing break + COVERITY CID 1139762 + +2013-12-30 17:00:45 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: internal-ssrc is no longer deprecated + +2013-12-30 16:59:20 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: add Since tags + +2013-12-30 16:52:28 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + rtpbin: add signal for new jitterbuffer + Emit a signal when a new jitterbuffer is created so that the app can + have a chance to configure it. + +2013-12-30 16:28:57 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + * tests/check/elements/rtpbin.c: + rtpbin: handle multiple encoder instances + Keep track of elements that are added to multiple sessions and make sure + we only add them to the rtpbin once and that we clean them when no + session refers to them anymore. + +2013-12-30 15:16:09 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/rtpbin.c: + tests: add unit test for encoder element + +2013-12-30 15:15:43 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: fix memory leaks + +2013-12-30 15:03:34 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/rtpbin.c: + tests: fix leak + +2013-12-30 15:00:50 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: expect the pads on the encoders + Don't use request pads for the encoder elements, the signal handler + should request the pads and make sure they are available with the right + name. + +2013-12-30 14:56:07 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + rtpbin: request-rtp-encoder are no action signals + The request-rtp-encoder signals are not action signals so mark them + correctly and use an accumulator to collect the result value. + +2013-12-30 14:36:45 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/wavparse/gstwavparse.c: + wavparse: emit midi-base-note tag from data in 'smpl' chunk + Add parsing of the 'smpl' chunk. Right now we only grab the midi-base-note and + emit it as a tag. + +2013-12-26 12:05:19 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtpsession.c: + gstrtpsession: suggest upstream to use the new "internal-ssrc" after a collision + When a collision is found on the internal ssrc, we have to change it. + Ideally, we want also the payloader upstream to follow this change and use + the new internal ssrc. Ideally we want this condition to be always met: + if there is one payloader sending on this session, its ssrc should match the + internal ssrc. + +2013-12-26 11:04:29 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: allow setting internal-ssrc again + +2013-12-30 13:31:45 +0100 Edward Hervey <bilboed@bilboed.com> + + * gst/y4m/gsty4mencode.c: + y4mencode: Remove dead code + set/get property isn't used + +2013-12-30 13:30:24 +0100 Edward Hervey <bilboed@bilboed.com> + + * gst/rtp/gstrtpqcelpdepay.c: + rtpqcelpdepay: Remove uneeded variable + +2013-12-05 15:53:52 -0800 Aleix Conchillo Flaqué <aleix@oblong.com> + + rtpbin: allow dynamic RTP/RTCP encoders/decoders + * gst/rtpmanager/gstrtpbin.[ch]: four new action signals have been + added (request-rtp-encoder, request-rtp-decoder, request-rtcp-encoder + and request-rtcp-decoder). The user will be able to provide encoders + or decoders dynamically. The encoders must follow the srtpenc API and + the decoders the srtpdec API. Having separate signals for RTP and RTCP + allows the user to use different encoders/decoders or provide the same + one (e.g. that would be the case for srtpenc). + Also, rtpbin now allows application/x-srtp in its pads. + https://bugzilla.gnome.org/show_bug.cgi?id=719938 + +2013-12-27 16:51:32 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: dynamically recalculate RTX parameters + Use the round-trip-time and average jitter to dynamically calculate the + retransmission interval and expected packet arrival time. + Based on patches from Torrie Fischer <torrie.fischer@collabora.co.uk> + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711412 + +2013-12-27 16:50:52 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: calculate average jitter + +2013-12-27 16:48:48 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpsession.c: + rtpsession: use RTT from the Retransmission event + Place the estimated RTT in the Retransmission event and let the session + manager use that instead of the hardcoded value. + +2013-12-27 15:57:39 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: take more accurate running-time for NACK + Don't use the current time calculated from the tmieout loop for when we + last scheduled the NACK because it might be unscheduled because of a max + packet misorder and then we don't accurately calculate the current time. + Instead, take the current element running time using the clock. + +2013-12-30 11:06:38 +0100 Sebastian Dröge <sebastian@centricular.com> + + * tests/check/elements/wavpackdec.c: + wavpackdec: Send a CAPS event in the unit test + +2013-12-27 02:14:02 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: improve mss_mode/fragmented special handling + Make it clear what should be handled purely by mss mode: + 1) Expose the streams on the first moof as there are no moov atoms + 2) Properly cleanup streams on flushes + Add a note about the meaning of upstream_newsegment and mss_mode + for future reference. + Make all other special fragment handling shared for both dash + and mss streams. + +2013-12-12 10:50:27 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * gst/isomp4/qtdemux.c: + qtdemux: drain the adapter before pushing EOS + In a fragmented scenario, qtdemux is operating in push mode + and it gets a fragmented buffer. While processing its data + downstream gets unlinked (or a input-selector changes its + active pad and returns not-linked). Qtdemux stops processing + this fragment and returns not-linked upstream, leaving the + remaining data in its adapter. + When it gets an EOS it should make sure that all the data it + had received is pushed before pushing EOS. + +2013-12-26 23:21:47 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * ext/shout2/gstshout2.c: + shout2send: drop IP only requirement for _set_host() + libshout2 (we require > 2.0 at config time) supports + both IP and hostname for _set_host(). Dropped an + outdated FIXME regarding this limitation, adjusted + some comments and changed the param blurb to reflect + this too. + +2013-12-26 21:43:34 -0300 Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com> + + * ext/shout2/gstshout2.c: + shout2send: Retarget FIXME to 2.0 + +2013-12-26 11:21:36 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: use aggregate control for PLAY/PAUSE/TEARDOWN + Use the aggregate control instead of the original request url to perform + PAUSE/PLAY and TEARDOWN. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721003 + +2013-12-24 14:40:25 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/debugutils/rndbuffersize.c: + rndbuffersize: Proxy CAPS, ALLOCATION, SCHEDULING and srcpad events properly + +2013-12-24 00:43:39 +0100 Nicola Murino <nicola.murino@gmail.com> + + * gst/matroska/matroska-mux.c: + matroskamux: adpcm max block align is 8192 + +2013-12-23 12:23:27 -0600 Brendan Long <b.long@cablelabs.com> + + * configure.ac: + vp9dec: Require vpx >= 1.3.0 for building vp9dec and vp9enc + Previous versions did not have a stable bitstream for VP9. + https://bugzilla.gnome.org/show_bug.cgi?id=720986 + +2013-12-23 15:46:48 +0100 Sebastian Dröge <sebastian@centricular.com> * gst/matroska/matroska-mux.c: - matroskamux: Use the running time for container timestamps, not buffer timestamps - Buffer timestamps have no real meaning here, and for selecting the next - buffer we already use the running time anyway. + matroskamux: Use correct codec id for ADPCM/DVI -2013-12-31 13:31:52 +0100 Sebastian Rasmussen <sebras@hotmail.com> +2013-12-23 15:44:30 +0100 Sebastian Dröge <sebastian@centricular.com> - * sys/v4l2/gstv4l2object.c: - v4l2: Handle v4l2_ioctl() errors even in error handling - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721268 + * gst/matroska/matroska-demux.c: + matroskademux: Check for the correct size of codec_data in the ACM case -2013-12-31 10:25:28 +0100 Stéphane Cerveau <scerveau@gmail.com> +2012-01-14 19:58:17 +0100 Nicola Murino <nicola.murino@gmail.com> - * gst/wavparse/gstwavparse.c: - wavparse: Skip id3 tag - Skip id3 tag during wav parse. - https://bugzilla.gnome.org/show_bug.cgi?id=721241 + * gst/matroska/matroska-mux.c: + matroskamux: basic adpcm support + https://bugzilla.gnome.org/show_bug.cgi?id=664339 -=== release 1.2.2 === +2013-12-20 11:45:38 +0100 Sebastian Dröge <sebastian@centricular.com> -2013-12-26 17:47:09 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/isomp4/descriptors.c: + qtdemux: Fix calcuation of descriptor length + https://bugzilla.gnome.org/show_bug.cgi?id=720813 + +2013-12-22 22:33:39 +0000 Tim-Philipp Müller <tim@centricular.com> + + * autogen.sh: + * common: + Automatic update of common submodule + From dbedaa0 to d48bed3 + +2013-12-22 21:56:03 +0000 Tim-Philipp Müller <tim@centricular.com> + + * po/Makevars: + po: set gettext domain in Makevars so we don't have to patch the generated Makefile.in.in + https://bugzilla.gnome.org/show_bug.cgi?id=705455 + +2013-12-19 16:50:10 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/udp/gstudpsrc.c: + udpsrc: on receive error only unmap and unref buffer if one was alloced and mapped + coverity CID 1139866. + +2013-12-19 12:47:22 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/udp/gstmultiudpsink.c: + multiudpsink: fix misleading comment + Those are not allocated on the stack. + +2013-12-17 18:28:25 +0100 Sebastian Dröge <sebastian@centricular.com> - * ChangeLog: - * NEWS: - * RELEASE: * configure.ac: - * docs/plugins/gst-plugins-good-plugins.args: - * docs/plugins/gst-plugins-good-plugins.hierarchy: - * docs/plugins/gst-plugins-good-plugins.interfaces: - * docs/plugins/inspect/plugin-1394.xml: - * docs/plugins/inspect/plugin-aasink.xml: - * docs/plugins/inspect/plugin-alaw.xml: - * docs/plugins/inspect/plugin-alpha.xml: - * docs/plugins/inspect/plugin-alphacolor.xml: - * docs/plugins/inspect/plugin-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: - * win32/common/config.h: - Release 1.2.2 + vpx: Mark VP9 support as non-experimental + There was a libvpx release with VP9 support now and the bitstream + is frozen too. + +2013-12-15 21:04:11 -0800 Todd Agulnick <todd@agulnick.com> + + * gst/deinterlace/gstdeinterlace.c: + Some compiler warning fixes to satisfy XCode compiler + https://bugzilla.gnome.org/show_bug.cgi?id=720513 + +2013-12-16 16:17:07 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Set picture type in the APIC frames + +2013-12-16 16:14:52 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/taglib/gstid3v2mux.cc: + id3v2mux: Set image-description from the info struct, not the caps + +2013-12-16 10:02:37 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstwavpackparse.c: + * gst/audioparsers/gstwavpackparse.h: + wavpackparse: Post AUDIO_CODEC tag + +2013-12-16 10:00:37 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstsbcparse.c: + * gst/audioparsers/gstsbcparse.h: + sbcparse: Post AUDIO_CODEC tag + +2013-12-16 09:58:31 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + flacparse: Post AUDIO_CODEC tag + https://bugzilla.gnome.org/show_bug.cgi?id=720512 + +2013-12-16 09:56:29 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + dcaparse: Post AUDIO_CODEC tag + +2013-12-16 09:54:38 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstamrparse.h: + amrparse: Post AUDIO_CODEC tag + +2013-12-16 09:49:48 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + ac3parse: Post AUDIO_CODEC tag + +2013-12-16 09:46:16 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstaacparse.h: + aacparse: Post AUDIO_CODEC tag + +2013-12-16 09:41:14 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: Use pbutils functionality to create the AUDIO_CODEC tag + +2013-12-13 17:36:36 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: Add error message if the app tries to set the internal-ssrc + +2013-12-13 16:08:35 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: Only count nacks when a nack packet is received + Not when any RTCP feedback packet is. + +2013-12-12 23:22:41 -0500 Olivier Crête <olivier.crete@collabora.com> + + * tests/check/elements/rtpcollision.c: + tests: Initialize segment in rtpcollision test + +2013-12-13 15:57:36 -0500 Olivier Crête <olivier.crete@collabora.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: Process PSFB FIR requests which lack the media ssrc + According to RFC 5104 section 4.3.1.2, RTCP PSFB FIR message SHALL + have a media_ssrc field set to 0. The actual media ssrc is in the FCI. + So in that case, we ignore the retained feedback and just let it through + to the rtp_session_process_fir() function which will check for the actual + SSRC inside the FCI. + Fixes a regression introduced by commit 57c27ec3 + +2013-11-14 16:19:29 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsource.c: + * gst/rtpmanager/rtpsource.h: + rtpsession: fix rb blocks disappearing after the first rtcp cycle with multiple senders + Previously, when the session had multiple internal sender SSRCs, it would + issue SR reports with RB blocks only on the first RTCP timeout and afterwards + SR reports would be sent empty. This was because the "generation" number + in RTPSource would increase more than once during the same cycle and afterwards + it would always be greater than the session's generation, which would cause + it to be skipped from being included in RBs. + This commit fixes this problem by: + 1) Increasing the RTPSource generation only at the end of each cycle, + which essentially fixes the problem but only when the internal senders + are less than GST_RTCP_MAX_RB_COUNT. + 2) Keeping for each RTPSource a set of SSRCs which stores which SSRC's + SR the given RTPSource has been reported in, which also fixes the problem + when the internal senders are more than GST_RTCP_MAX_RB_COUNT. This is + necessary because of the fact that any RTPSource is marked as reported + in itself's SR and makes it impossible to know if it has been reported + in other SRs too or not, and which. + +2013-11-14 16:23:35 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * tests/check/elements/rtpsession.c: + tests/check: add an rtpsession unit test to verify all RBs are included in all SRs, roundrobin + This test checks that when we have multiple internal sender sources + in rtpsession, SRs contain RBs for every other sender source, and that + they are included roundrobin when they exceed ST_RTCP_MAX_RB_COUNT, + which is the max number of RBs that can fit in a SR. + +2013-12-12 16:01:10 +0100 Wim Taymans <wtaymans@redhat.com> + + * docs/design/design-rtpcollision.txt: + docs: improve docs + +2013-11-05 18:03:48 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * docs/design/Makefile.am: + * docs/design/design-rtpcollision.txt: + doc: add design-rtpcollision.txt that explains when GstRTPCollision is created + It also talks about "BYE only the corresponding source, not the whole session." + +2013-11-05 12:31:54 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * tests/check/elements/rtpcollision.c: + tests/check: improve rtpcollision::test_master_ssrc_collision to ensure that a collision does not BYE the whole session + Conflicts: + tests/check/elements/rtpcollision.c + +2013-11-01 17:07:57 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/rtpcollision.c: + tests/check: add rtpcollision::test_master_ssrc_collision unit test + It checks the payloader changes its ssrc when collision happens + +2013-12-12 10:38:43 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + rtpsession: keep extra stats for scheduling BYE + Keep an extra stats structure for scheduling the BYE packets. When we + decide to schedule BYE, make a copy of the current stats into the + bye_stats. Then while we schedule the BYE, update and use only the + bye_stats. When we finished scheduling the BYE packet, we use the + regular stats again. + +2013-12-12 10:34:38 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: when we schedule BYE, only deal with BYE sources + When we are doing the RTCP timeout to schedule BYE packets, don't + generate RTCP for all sources but only for the sources marked as BYE. + +2013-12-12 10:32:48 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: reset state after scheduling BYE + After we do RTCP, we are not scheduling bye anymore. + +2013-12-12 10:31:38 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/rtpsession.c: + rtpsession: also count NACKS when no signal was pending + +2013-12-12 10:09:25 +0100 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/rtpsession.c: + session: ignore RTCP packets for the BYE sources + When we are scheduling BYE packets, ignore all RTCP for the sources that + are scheduling a BYE packet. Other sources that are not scheduling BYE + should continue receiving RTCP packets as usual. + +2013-11-04 11:48:21 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + rtpsession: determine if the session is doing point-to-point + In this case T_dither_max is set to 0 according to RFC 4585 + +2013-12-10 11:57:37 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: serialize events in the buffer + Serialize events into the jitterbuffer by inserting them with a -1 + seqnum. + Update unit test to expect events from the streaming thread. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=652986 + +2013-12-10 11:04:06 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: detect -1 seqnum + Keep the seqnum as a full guint so that we can check for -1 entries and + deal with them correctly. + Immediately try to push -1 seqnum. + +2013-12-10 11:01:03 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/rtpjitterbuffer.c: + rtpjitterbuffer: reorganize jitterbuffer items + Keep the oldest item at the head and the newest items on the tail. This + makes it easier to deal with -1 seqnums. + +2013-12-09 23:34:10 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + jitterbuffer: correctly check for invalid values + Check for -1 on the guint from the buffer item instead of on the guint16 + or guint32. + Also insert -1 seqnum at the head of the jitterbuffer. + +2013-12-08 16:49:55 +0100 Alessandro Decina <alessandro.d@gmail.com> + + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.m: + osxvideosink: fix segfault when dealing with padded frames + Fixes crashes with vtdec ! osxvideosink where VideoToolbox outputs padded UYVY + +2013-12-05 12:15:29 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/law/mulaw-decode.c: + mulawdec: Require caps to be set before accepting any data + +2013-12-05 12:15:19 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/wavpack/gstwavpackdec.c: + wavpackdec: Require caps to be set before accepting any data + +2013-12-05 12:13:33 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/speex/gstspeexdec.c: + speexdec: Require caps to be set before accepting any data + +2013-12-05 12:13:10 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/flac/gstflacdec.c: + flacdec: Require caps to be set before accepting any data + +2013-12-05 11:42:15 +0100 Sebastian Dröge <sebastian@centricular.com> + + * ext/vpx/gstvp8dec.c: + * ext/vpx/gstvp9dec.c: + vpx: Use new gst_video_decoder_set_needs_format() API + +2013-12-04 16:23:43 -0500 Olivier Crête <olivier.crete@collabora.com> + + * ext/pulse/pulsesink.c: + pulsesink: Free device_info in accepts caps + https://bugzilla.gnome.org/show_bug.cgi?id=719811 + +2013-12-04 21:57:48 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtp/gstrtptheorapay.c: + rtptheorapay: Don't send headers twice if we got them from the caps already + +2013-12-04 21:57:04 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtp/gstrtptheorapay.c: + rtptheorapay: Don't leak config data when receiving a second CAPS event + +2013-12-04 21:55:53 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtp/gstrtpvorbispay.c: + rtpvorbispay: Don't send headers twice if we got them from the caps already + +2013-12-04 21:54:16 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtp/gstrtpvorbispay.c: + rtpvorbispay: Don't leak config data when receiving a second CAPS event + +2013-12-04 21:17:03 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp.c: + * gst/rtp/gstrtpstreamdepay.c: + * gst/rtp/gstrtpstreamdepay.h: + rtpstreamdepay: Add RFC4571 RTP stream depayloading element + https://bugzilla.gnome.org/show_bug.cgi?id=719829 -2013-12-26 17:46:54 +0100 Sebastian Dröge <sebastian@centricular.com> +2013-12-04 10:12:46 +0100 Sebastian Dröge <sebastian@centricular.com> - * 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 + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp.c: + * gst/rtp/gstrtpstreampay.c: + * gst/rtp/gstrtpstreampay.h: + rtpstreampay: Add RFC4571 RTP stream payloading element + https://bugzilla.gnome.org/show_bug.cgi?id=719829 -2013-12-26 16:46:27 +0100 Sebastian Dröge <sebastian@centricular.com> +2013-12-03 15:08:25 -0300 Thiago Santos <ts.santos@sisa.samsung.com> - * po/da.po: - * po/ru.po: - po: Update translations + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: improve fragment-start tracking + Some buffers can have multiple moov atoms inside and the strategy + of using the gst_adapter_prev_pts timestamp to get the base timestamp + for the media of the fragment would fail as it would reuse the same + base timestamp for all moofs in the buffer instead of accumulating + the durations for all of them. + Heres a better explanation of the issue: + qtdemux receives a buffer where PTS(buf) = X + buf -> moofA | moofB | moofC + The problem was that PTS(buf) was used as the base timestamp for + all 3 moofs, causing all buffers to be X based. In this case we want + only moofA to be X based as it is what the PTS on buf means, and the + other moofB and moofC just use the accumulated timestamp from the + previous moofs durations. + To solve this, this patch uses gst_adapter_prev_pts distance + result, this allows qtdemux to calculate if it should use the + resulting pts or just accumulate the samples as it can identify + if the moofs belong to the same upstream buffer or not. + https://bugzilla.gnome.org/show_bug.cgi?id=719783 + +2013-11-21 12:29:28 +0000 Julien Isorce <julien.isorce@collabora.co.uk> -2013-12-26 11:21:36 +0100 Wim Taymans <wtaymans@redhat.com> + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: add support for multi-planar V4l2 API in DMABUF mode + Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754 - * gst/rtsp/gstrtspsrc.c: - rtspsrc: use aggregate control for PLAY/PAUSE/TEARDOWN - Use the aggregate control instead of the original request url to perform - PAUSE/PLAY and TEARDOWN. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721003 +2013-11-19 17:16:27 +0000 Julien Isorce <julien.isorce@collabora.co.uk> -2013-12-24 14:40:25 +0100 Sebastian Dröge <sebastian@centricular.com> + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2bufferpool.h: + v4l2: refactor by emulating one v4l2_plane in non-MPLANE mode + so that the buffer informations can be retrieved the same way + in both MPLANE and non-MPLANE mode. + Here "emulating" means "manually fill in the plane". + Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754 - * gst/debugutils/rndbuffersize.c: - rndbuffersize: Proxy CAPS, ALLOCATION, SCHEDULING and srcpad events properly +2013-11-13 12:05:40 +0000 Julien Isorce <julien.isorce@collabora.co.uk> -2013-12-23 12:23:27 -0600 Brendan Long <b.long@cablelabs.com> + * sys/v4l2/gstv4l2bufferpool.c: + * sys/v4l2/gstv4l2bufferpool.h: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/v4l2_calls.c: + v4l2: add support for multi-planar V4L2 API + This api is in linux kernel since version 2.6.39, + and present in all version 3. + The commit that adds the API in master branch of the + linux kernel source is: + https://github.com/torvalds/linux/commit/f8f3914cf922f5f9e1d60e9e10f6fb92742907ad + v4l2 doc: "Some devices require data for each input + or output video frame to be placed in discontiguous + memory buffers" + There are newer structures 'struct v4l2_pix_format_mplane' + and 'struct v4l2_plane'. + So the pixel format is not setup with the same API when using + multi-planar. + Also for gst-v4l2, one of the difference is that in GstV4l2Meta + there are now one mem pointer for each maped plane. + When not using multi-planar, this commit takes care of keeping + the same code path than previously. So that the 2 cases are + in two different blocks triggered from V4L2_TYPE_IS_MULTIPLANAR. + Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=712754 + +2013-12-04 09:12:07 +0100 Wim Taymans <wtaymans@redhat.com> - * configure.ac: - vp9dec: Require vpx >= 1.3.0 for building vp9dec and vp9enc - Previous versions did not have a stable bitstream for VP9. - https://bugzilla.gnome.org/show_bug.cgi?id=720986 + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstsbcparse.c: + * gst/audioparsers/gstwavpackparse.c: + audioparsers: don't leak template caps -2013-12-23 15:44:30 +0100 Sebastian Dröge <sebastian@centricular.com> +2013-12-03 21:41:28 +0100 Wim Taymans <wtaymans@redhat.com> - * gst/matroska/matroska-demux.c: - matroskademux: Check for the correct size of codec_data in the ACM case + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstsbcparse.c: + * gst/audioparsers/gstwavpackparse.c: + * tests/check/elements/aacparse.c: + audioparsers: use ACCEPT_INTERSECT flag + The parser can accept input that is not completely specified. Use the + ACCEPT_INTERSECT flag on the sinkpad to tweak the acceptcaps function to + check for intersection only. This allows us to proxy downstream + constraints while still allowing non-subset caps as input. + We can then also remove the appended template caps workaround. + Make a unit-test to check the new feature. + This reverts commit 26040ee38cb9e7c42f3d9a0282b3e5cace7ca42d + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=705024 + +2013-12-03 21:36:54 +0100 Wim Taymans <wtaymans@redhat.com> -2013-12-20 11:45:38 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstsbcparse.c: + * gst/audioparsers/gstwavpackparse.c: + audioparsers: remove fields from filter + We need to remove the fields from the filter when we can convert + between them. - * gst/isomp4/descriptors.c: - qtdemux: Fix calcuation of descriptor length - https://bugzilla.gnome.org/show_bug.cgi?id=720813 +2013-12-03 21:29:13 +0100 Wim Taymans <wtaymans@redhat.com> -2013-12-17 18:28:25 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstsbcparse.c: + * gst/audioparsers/gstwavpackparse.c: + audioparsers: refactor code to remove caps fields - * configure.ac: - vpx: Mark VP9 support as non-experimental - There was a libvpx release with VP9 support now and the bitstream - is frozen too. +2013-12-02 00:10:43 +0000 Tim-Philipp Müller <tim@centricular.com> -2013-12-16 16:17:07 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/deinterlace/gstdeinterlace.c: + deinterlace: microoptimisation: avoid some unnecessary GValue copies - * ext/taglib/gstid3v2mux.cc: - id3v2mux: Set picture type in the APIC frames +2013-12-01 23:32:20 +0000 Tim-Philipp Müller <tim@centricular.com> -2013-12-16 16:14:52 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/deinterlace/gstdeinterlace.c: + deinterlace: fix off-by-one crash when downstream caps contain a list of framerates + https://bugzilla.gnome.org/show_bug.cgi?id=719544 - * ext/taglib/gstid3v2mux.cc: - id3v2mux: Set image-description from the info struct, not the caps +2013-11-29 11:26:05 -0300 Thiago Santos <ts.santos@sisa.samsung.com> -2013-11-25 17:38:06 +0100 Wim Taymans <wtaymans@redhat.com> + * gst/isomp4/qtdemux.c: + qtdemux: Use the timestamp of the moof as the base fragment start + In SmoothStreaming fragmented scenario, the timestamps are calculated + starting from the fragment buffer timestamp. When there is a not-linked + return from downstream, qtdemux will return upstream and will keep the + non-pushed data into its adapter. + On a new fragment buffer pushed to qtdemux, the new buffer timestamp + would overwrite the previous one that should be used on the still + to be pushed buffers. Because of this, this patch will also + update the fragment_start timestamp from the adapter last pts + to make sure the moof and timestamps are in sync and will result + in correct timestamps for all fragments. + +2013-11-15 08:54:07 -0300 Thiago Santos <ts.santos@sisa.samsung.com> - * tests/check/elements/rtpjitterbuffer.c: - check: fix jitterbuffer check - Don't advance the clock to 240ms too early. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=710013 + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux.h: + qtdemux: avoid re-reading the same moov and entering into loop + In the scenario of "mdat | moov (with fragmented artifacts)" qtdemux + could read the moov again after the mdat because it was considering the + media as a fragmented one. + To avoid this loop this patch makes it store + the last processed moov_offset to avoid parsing it again. + And it also checks if there are any samples to play before + resturning to the mdat, so that it knows there is new data to be played. + https://bugzilla.gnome.org/show_bug.cgi?id=691570 + +2013-11-15 00:52:53 -0300 Thiago Santos <ts.santos@sisa.samsung.com> -2013-12-04 16:23:43 -0500 Olivier Crête <olivier.crete@collabora.com> + * gst/isomp4/qtdemux.c: + qtdemux: do not free streams if they were not created locally + When parsing a trak only free streams on failures if those streams + were created locally. They could have been created from a previous + fragment, in this case we they have valid info from the other fragment. + Including pads. + https://bugzilla.gnome.org/show_bug.cgi?id=691570 - * ext/pulse/pulsesink.c: - pulsesink: Free device_info in accepts caps - https://bugzilla.gnome.org/show_bug.cgi?id=719811 +2013-11-29 19:57:46 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/videomixer/blend.c: + videomixer: Simplify NV12/21 blending code macros 2013-11-29 19:50:24 +0100 Sebastian Dröge <sebastian@centricular.com> @@ -805,10 +4159,34 @@ videomixer: Fix segfault when filling the background of a UYVY frame https://bugzilla.gnome.org/show_bug.cgi?id=712401 -2013-11-27 16:15:12 +0100 Mathieu Duponchelle <mduponchelle1@gmail.com> +2013-11-29 09:21:52 +0000 Tim-Philipp Müller <tim@centricular.com> - * gst/videomixer/videomixer2.c: - videomixer: explicitly fail when alpha information would have been lost. + * gst/isomp4/qtdemux.c: + qtdemux: fix compilation with gst debuging disabled + qtdemux.c:9452:1: error: label at end of compound statement + +2013-11-27 17:02:00 +0100 Jonas Holmberg <jonashg@axis.com> + + * gst/rtp/gstrtph264pay.c: + rtph264pay: Map inbuffer once only + Do not call gst_buffer_extract() twice since each call will map and + unmap the biffer. + https://bugzilla.gnome.org/show_bug.cgi?id=719434 + +2013-11-28 11:58:42 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> + + * tests/check/elements/videofilter.c: + videoflip: Add unit test for the 'automatic' method + These new tests send a tag event before seding the buffer. Tested case are an + empty tag list, a tag list with orientation-180 set and an invalid orientation value. + https://bugzilla.gnome.org/show_bug.cgi?id=719497 + +2013-11-28 16:09:04 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/videofilter/gstvideoflip.c: + videoflip: don't crash on tag events without orientation tag + Would crash in g_free() trying to free an uninitialised pointer. + https://bugzilla.gnome.org/show_bug.cgi?id=719497 2013-11-28 16:50:42 +0100 Wim Taymans <wtaymans@redhat.com> @@ -817,51 +4195,110 @@ Cleaning the packet info will already unref the buffer. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=715078 -2013-10-24 13:16:42 +0200 Per x Johansson <perxjoh@axis.com> +2013-11-28 22:35:02 +1100 Jan Schmidt <jan@centricular.com> + + * gst/isomp4/qtdemux.c: + qtdemux: Add HydrogenAudio ReplayGain tags + Identical to the itunes (tm) version, but labelled with + org.hydrogenaudio.replaygain as the producer. + +2013-11-27 16:15:12 +0100 Mathieu Duponchelle <mduponchelle1@gmail.com> + + * gst/videomixer/videomixer2.c: + videomixer: explicitly fail when alpha information would have been lost. + +2013-05-29 16:06:05 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * .gitignore: + gitignore: Updated to ignore *.swp and .dirstamp + +2013-11-26 11:17:42 +0100 Sebastian Dröge <sebastian@centricular.com> * gst/matroska/matroska-demux.c: - matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos - https://bugzilla.gnome.org/show_bug.cgi?id=711829 + matroska-demux: Allow a bit more variation when detecting common framerates + Instead of +/- 1ns we allow 2ns now. Due to rounding errors there are + some Matroska files out there with 33.333331ms per frame for 30fps. -2013-11-11 13:17:25 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> +2013-11-26 10:20:31 +0100 Sebastian Dröge <sebastian@centricular.com> - * gst/audioparsers/gstac3parse.c: - ac3parse: correctly handle timestamps when parsing x-private1-ac3 - ... the way it has always worked fine in a52dec. + * gst/matroska/matroska-demux.c: + matroska-demux: Use gst_util_double_to_fraction() instead of GValue magic -2013-11-06 12:40:06 +0100 Wim Taymans <wim.taymans@collabora.co.uk> +2013-11-25 14:03:21 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> - * gst/rtpmanager/gstrtpjitterbuffer.c: - jitterbuffer: advance expected seqnum after dropping - After dropping a buffer, move our expected seqnum - Conflicts: - gst/rtpmanager/gstrtpjitterbuffer.c + * gst/videofilter/gstvideoflip.c: + videoflip: Set default method at contruction + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712333 -2013-11-18 14:27:48 +0100 Michael Olbrich <m.olbrich@pengutronix.de> +2013-05-29 15:57:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> * sys/v4l2/gstv4l2object.c: - v4l2: clear cached caps on close - A different device with different caps may be used for the next open. - https://bugzilla.gnome.org/show_bug.cgi?id=712611 + v4l2object: Use space instead of tabs + https://bugzilla.gnome.org/show_bug.cgi?id=712754 -2013-11-14 17:29:50 -0300 Thibault Saunier <thibault.saunier@collabora.com> +2013-05-29 15:44:31 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> + + * sys/v4l2/gstv4l2object.h: + v4l2object: Fix header indentation so it's readable again + It's unfortunate to have to do this, but with the mix of tabs and space, plus all the random + indentation this header has become very hard to read. + https://bugzilla.gnome.org/show_bug.cgi?id=712754 + +2013-11-25 17:38:06 +0100 Wim Taymans <wtaymans@redhat.com> + + * tests/check/elements/rtpjitterbuffer.c: + check: fix jitterbuffer check + Don't advance the clock to 240ms too early. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=710013 + +2013-11-25 11:45:33 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * ext/jpeg/gstjpegdec.c: + jpegdec: deprecate max-errors + The property wasn't use internally, let the base class handle the + number of errors to tolerate. + +2013-11-25 15:49:07 +0100 Wim Taymans <wtaymans@redhat.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: improve clear-pt-map handling + Don't reset the expected output seqnum when clearing the pt map because this + could stall the jitterbuffer forever. + Add a unit test for this. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709800 + +2013-10-28 21:33:22 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * ext/jpeg/gstjpegdec.c: + jpegdec: let the base class decide when to return an error + The base videodecoder class has an error counting feature to tolerate + a few errors before posting an error message. So don't force the + error and let the base class decide when it should happen + https://bugzilla.gnome.org/show_bug.cgi?id=710762 + +2013-10-28 21:28:33 -0300 Thiago Santos <ts.santos@sisa.samsung.com> + + * ext/jpeg/gstjpegdec.c: + jpegdec: Add data skipping on input + Add missing bytes skipping when bad input is received. + https://bugzilla.gnome.org/show_bug.cgi?id=710762 + +2013-11-25 12:13:43 +1100 Jan Schmidt <jan@centricular.com> * gst/isomp4/qtdemux.c: - qtdemux: Use GstVideoInfo helper to create caps for raw video - This way we do not miss mandatory fields in caps. - At the same time use the gst_pb_utils_get_codec_description - helper to get codec description. - https://bugzilla.gnome.org/show_bug.cgi?id=712335 + qtdemux: Discard 2 byte subpicture packets + As for text subtitles and as suggested in #712643, throw + away the 2 byte terminator packets that some encoders insert. + This will make things better when remuxing and causes generation + of gap events. -2013-11-14 16:11:38 -0300 Thibault Saunier <thibault.saunier@collabora.com> +2013-11-25 00:34:21 +0000 Tim-Philipp Müller <tim@centricular.com> - * gst/matroska/Makefile.am: - * gst/matroska/matroska-demux.c: - matroskademux: Use GstVideoInfo helper to create caps for raw video - This way we do not miss mandatory fields in caps. - At the same time use the gst_pb_utils_get_codec_description helper to - get codec description. - https://bugzilla.gnome.org/show_bug.cgi?id=712328 + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: fix wake-up when new buffers come in after running empty + Spotted by 'gratias' on IRC. Probably introduced in recent refactoring. + https://bugzilla.gnome.org/show_bug.cgi?id=715039 2013-11-23 12:15:40 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> @@ -871,29 +4308,43 @@ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712744 Based on patch by Krzysztof Kotlenga <pocek@users.sf.net> -2013-11-26 11:17:42 +0100 Sebastian Dröge <sebastian@centricular.com> +2013-09-14 03:27:09 +0200 MathieuDuponchelle <mathieu.duponchelle@epitech.eu> - * gst/matroska/matroska-demux.c: - matroska-demux: Allow a bit more variation when detecting common framerates - Instead of +/- 1ns we allow 2ns now. Due to rounding errors there are - some Matroska files out there with 33.333331ms per frame for 30fps. + * gst/videomixer/videomixer2.c: + * gst/videomixer/videomixer2.h: + videomixer2: Merge tag events to send them in collected. + Otherwise there were race conditions where we would send tags + on a flushing srcpad. + We have a test for that in GES, but this should be tested + systematically with harness in the future as I believe it + is useful for exactly that kind of cases. + https://bugzilla.gnome.org/show_bug.cgi?id=708165 -2013-11-25 15:49:07 +0100 Wim Taymans <wtaymans@redhat.com> +2013-11-14 17:29:50 -0300 Thibault Saunier <thibault.saunier@collabora.com> - * gst/rtpmanager/gstrtpjitterbuffer.c: - * tests/check/elements/rtpjitterbuffer.c: - rtpjitterbuffer: improve clear-pt-map handling - Don't reset the expected output seqnum when clearing the pt map because this - could stall the jitterbuffer forever. - Add a unit test for this. - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709800 + * gst/isomp4/qtdemux.c: + qtdemux: Use GstVideoInfo helper to create caps for raw video + This way we do not miss mandatory fields in caps. + At the same time use the gst_pb_utils_get_codec_description + helper to get codec description. + https://bugzilla.gnome.org/show_bug.cgi?id=712335 -2013-11-25 00:34:21 +0000 Tim-Philipp Müller <tim@centricular.com> +2013-11-14 16:11:38 -0300 Thibault Saunier <thibault.saunier@collabora.com> - * gst/rtpmanager/gstrtpjitterbuffer.c: - rtpjitterbuffer: fix wake-up when new buffers come in after running empty - Spotted by 'gratias' on IRC. Probably introduced in recent refactoring. - https://bugzilla.gnome.org/show_bug.cgi?id=715039 + * gst/matroska/Makefile.am: + * gst/matroska/matroska-demux.c: + matroskademux: Use GstVideoInfo helper to create caps for raw video + This way we do not miss mandatory fields in caps. + At the same time use the gst_pb_utils_get_codec_description helper to + get codec description. + https://bugzilla.gnome.org/show_bug.cgi?id=712328 + +2013-11-13 20:18:17 -0300 Thibault Saunier <thibault.saunier@collabora.com> + + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + multifilesrc: Implement seeking in case of multiple images + https://bugzilla.gnome.org/show_bug.cgi?id=712254 2013-11-22 12:26:21 +0100 Wim Taymans <wtaymans@redhat.com> @@ -901,6 +4352,30 @@ rtpjitterbuffer: pass downstream flowreturn to upstream Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712722 +2013-11-18 14:27:48 +0100 Michael Olbrich <m.olbrich@pengutronix.de> + + * sys/v4l2/gstv4l2object.c: + v4l2: clear cached caps on close + A different device with different caps may be used for the next open. + https://bugzilla.gnome.org/show_bug.cgi?id=712611 + +2013-11-21 15:30:34 +0000 Tim-Philipp Müller <tim@centricular.com> + + * ext/wavpack/gstwavpackcommon.c: + * ext/wavpack/gstwavpackstreamreader.c: + * gst/apetag/gstapedemux.c: + * gst/autodetect/gstautoaudiosink.c: + * gst/autodetect/gstautoaudiosrc.c: + * gst/autodetect/gstautovideosink.c: + * gst/autodetect/gstautovideosrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/isomp4/atoms.c: + * gst/matroska/matroska-demux.c: + g_memmove() is deprecated + Just use plain memmove(), g_memmove() is deprecated in + recent GLib versions. + https://bugzilla.gnome.org/show_bug.cgi?id=712811 + 2013-11-21 11:32:15 +0100 Wim Taymans <wtaymans@redhat.com> * gst/rtp/gstrtpvorbisdepay.c: @@ -918,159 +4393,225 @@ than 16 bits. Remove the size restriction on the payloader. +2013-11-21 02:28:27 +1100 Jan Schmidt <jan@centricular.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux_dump.c: + * gst/isomp4/qtdemux_types.c: + isomp4: Handle mp4s subpicture streams better. + Clean up the handling of mp4s streams. Use the generic esds + descriptor function to extract the palette, instead of hard coding + a wrong magic offset. + Add some more size safety checks when parsing ES descriptors, and + replace magic numbers with the descriptive constants that are already + defined. + Enhance dump output for stsd atoms. + Streams from both bug 712643 and historic bug 568278 now both work + correctly. + Fixes: #712643 + +2013-11-20 22:08:25 +1100 Jan Schmidt <thaytan@noraisin.net> + + * gst/isomp4/fourcc.h: + qtdemux: Sort fourcc declarations and remove duplicates + +2013-11-20 21:41:47 +1100 Jan Schmidt <thaytan@noraisin.net> + + * gst/isomp4/Makefile.am: + * gst/isomp4/atoms.h: + * gst/isomp4/fourcc.h: + * gst/isomp4/ftypcc.h: + * gst/isomp4/gstqtmuxmap.c: + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux_dump.c: + * gst/isomp4/qtdemux_fourcc.h: + * gst/isomp4/qtdemux_types.c: + qtdemux: Merge all the fourcc headers into one + Remove qtdemux_fourcc.h and ftypcc.h and put it all in fourcc.h + 2013-11-19 10:10:51 +0100 Wim Taymans <wim.taymans@gmail.com> * gst/rtpmanager/rtpjitterbuffer.c: rtpjitterbuffer: avoid mapping the buffer Reuse the parsed structure to get the timestamps. -2013-11-05 10:48:33 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> +2013-11-18 17:13:49 +0000 Tim-Philipp Müller <tim@centricular.com> + + * gst/rtsp/gstrtspsrc.c: + rtspsrc: fix 'make check' + Fix generic/states check. Also, g_return_if_fail() is + not for internal state checking. + +2013-11-18 14:44:36 +0000 Tim-Philipp Müller <tim@centricular.com> + * ext/gdk_pixbuf/gstgdkpixbufoverlay.c: + * ext/gdk_pixbuf/gstgdkpixbufsink.c: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + * ext/jpeg/gstjpegdec.c: + * ext/pulse/pulsesink.c: + * ext/pulse/pulsesrc.c: + * ext/raw1394/gstdv1394src.c: + * ext/raw1394/gsthdv1394src.c: + * gst/audiofx/audioecho.c: + * gst/audiofx/audiofxbasefirfilter.c: + * gst/audiofx/audiopanorama.c: + * gst/autodetect/gstautoaudiosink.c: + * gst/autodetect/gstautoaudiosrc.c: + * gst/autodetect/gstautovideosink.c: + * gst/autodetect/gstautovideosrc.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/flv/gstflvmux.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + * gst/multifile/gstsplitfilesrc.c: + * gst/multipart/multipartdemux.c: + * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpjitterbuffer.c: - rtpjitterbuffer: fix crash when do-retransmission=true and a lot of buffers are lost - The problem here was that the jitterbuffer lock was unlocked to push - the event, but that caused another thread to remove the timer currently - being processed, probably because the amount of rtx events - (and therefore timers) was getting too high. The solution is to - unlock and push the event only after timer processing has finished. - fixes https://bugzilla.gnome.org/show_bug.cgi?id=711131 + * gst/rtsp/gstrtspsrc.c: + * gst/smpte/gstsmptealpha.c: + * gst/udp/gstmultiudpsink.c: + * gst/videobox/gstvideobox.c: + * gst/wavparse/gstwavparse.c: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-source.c: + * sys/v4l2/gstv4l2object.c: + * sys/ximage/gstximagesrc.c: + docs: get rid of 'Since: 0.10.x' markers + And some gtk-doc markup fixes. -2013-11-08 11:09:21 +0000 Marc Leeman <marc.leeman@gmail.com> +2013-11-16 12:15:14 +0000 Tim-Philipp Müller <tim@centricular.com> - * sys/v4l2/gstv4l2bufferpool.c: - v4l2: init v4l2_buffer to 0x0 before ioctl - https://bugzilla.gnome.org/show_bug.cgi?id=712137 + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + rtpmanager: fix Since markers + Should be next stable release series version -=== release 1.2.1 === +2013-11-15 13:48:07 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> -2013-11-09 15:38:33 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/rtpmanager/gstrtpjitterbuffer.c: + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: Fix stats property field names and documentation - * ChangeLog: - * NEWS: - * RELEASE: - * configure.ac: - * docs/plugins/gst-plugins-good-plugins.args: - * 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: - * win32/common/config.h: - Release 1.2.1 +2013-11-15 15:20:14 +0100 Torrie Fischer <torrie.fischer@collabora.co.uk> -2013-11-09 15:38:15 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpstats.c: + * gst/rtpmanager/rtpstats.h: + gstrtpsession: Implement a number of feedback packet statistics + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711693 - * 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-11-13 17:11:08 -0300 Thiago Santos <ts.santos@partner.samsung.com> + + * gst/isomp4/qtdemux.c: + qtdemux: remove math operation from loop + The elst_offset doesn't change inside the loop, so compute it + outside + +2013-11-14 20:54:32 +0100 Stefan Sauer <ensonic@users.sf.net> + + * gst/isomp4/qtdemux.c: + qtmux: fix playback regression + In ae1150e85cf99d7482933aa6f7e4f012fe45a3ec flipping a condition misaligned the + else branch, where for there condition that was change there is none. + Fixes #712303 + +2013-11-14 09:20:06 +0100 Wim Taymans <wim.taymans@gmail.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: rename property to 'stats' + This makes the unit test work. + We can later also add more stats, not specific to retransmission. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711411 + +2013-11-12 11:19:25 -0500 Torrie Fischer <torrie.fischer@collabora.co.uk> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + * tests/check/elements/rtpjitterbuffer.c: + rtpjitterbuffer: implement rtx statistics + +2013-11-13 10:42:21 +0000 Marc Leeman <marc.leeman@gmail.com> + + * sys/v4l2/gstv4l2object.c: + v4l2object: print FOURCC_FORMAT when enumerating + https://bugzilla.gnome.org/show_bug.cgi?id=712206 + +2013-11-06 12:40:06 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: advance expected seqnum after dropping + After dropping a buffer, move our expected seqnum + Conflicts: + gst/rtpmanager/gstrtpjitterbuffer.c + +2013-11-04 15:46:22 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtp/gstrtpgstpay.c: + gstpay: only send one caps + Only send one caps in a packet. Two caps can happen when setcaps is called and + the config-interval expires at the same time. + +2013-11-13 10:23:19 +0100 Sebastian Dröge <sebastian@centricular.com> -2013-11-09 12:01:55 +0100 Sebastian Dröge <sebastian@centricular.com> + * gst/rtsp/gstrtspsrc.c: + * gst/rtsp/gstrtspsrc.h: + rtspsrc: Use the synced buffer mode in auto mode if a clock provider is in the SDP - * po/de.po: - * po/id.po: - * po/sr.po: - po: Update translations +2013-11-08 11:09:21 +0000 Marc Leeman <marc.leeman@gmail.com> + + * sys/v4l2/gstv4l2bufferpool.c: + v4l2: init v4l2_buffer to 0x0 before ioctl + https://bugzilla.gnome.org/show_bug.cgi?id=712137 + +2013-11-11 15:27:18 +0100 Wim Taymans <wim.taymans@gmail.com> + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: remove collision reconfigure event + Remove bogus reconfigure event on collision, we don't want to send the event on + the receiving RTP pad and the collision event is now handling this + case. + See https://bugzilla.gnome.org/show_bug.cgi?id=711560 + +2013-11-01 17:04:28 +0000 Julien Isorce <julien.isorce@collabora.co.uk> + + * gst/rtpmanager/gstrtpsession.c: + gstrtpsession: send custom upstream event "GstRTPCollision" on send_rtp_sink pad + See https://bugzilla.gnome.org/show_bug.cgi?id=711560 + +2013-11-11 14:25:51 +0100 Wim Taymans <wim.taymans@gmail.com> + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/rtpsession.c: + check: add rtpsession test + Add a basic rtpsession test to ensure that RR blocks are generated when + multiple SSRC senders are active. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711270 + +2013-11-11 13:17:25 +0100 Mark Nauwelaerts <mnauw@users.sourceforge.net> + + * gst/audioparsers/gstac3parse.c: + ac3parse: correctly handle timestamps when parsing x-private1-ac3 + ... the way it has always worked fine in a52dec. + +2013-11-05 10:48:33 +0200 George Kiagiadakis <george.kiagiadakis@collabora.com> + + * gst/rtpmanager/gstrtpjitterbuffer.c: + rtpjitterbuffer: fix crash when do-retransmission=true and a lot of buffers are lost + The problem here was that the jitterbuffer lock was unlocked to push + the event, but that caused another thread to remove the timer currently + being processed, probably because the amount of rtx events + (and therefore timers) was getting too high. The solution is to + unlock and push the event only after timer processing has finished. + fixes https://bugzilla.gnome.org/show_bug.cgi?id=711131 + +2013-10-24 13:16:42 +0200 Per x Johansson <perxjoh@axis.com> + + * gst/matroska/matroska-demux.c: + matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos + https://bugzilla.gnome.org/show_bug.cgi?id=711829 2013-11-08 17:59:24 +0100 Philippe Normand <philn@igalia.com> @@ -1082,25 +4623,19 @@ again, this time with the correct size. https://bugzilla.gnome.org/show_bug.cgi?id=711699 -2013-10-07 14:27:21 -0300 Thiago Santos <ts.santos@partner.samsung.com> +2013-11-07 16:17:16 +0100 Wim Taymans <wim.taymans@collabora.co.uk> - * ext/soup/gstsouphttpsrc.c: - * ext/soup/gstsouphttpsrc.h: - souphttpsrc: do not emit EOS when connection drops - If the pipeline is stalled for too long, souphttpsrc will block and - stop fetching data from the network. This can cause the connection to - drop and souphttpsrc would handle it as an EOS. This patch makes it - persist and try to fetch more data until the end of the content length - or until receiving an error that it is beyong limits in case the content - is unknown. - https://bugzilla.gnome.org/show_bug.cgi?id=683536 + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsource.c: + rtpsource: update receiver stats for sender + An internal sender in a session is also a receiver of its own packets so update + the receiver stats. Other senders in the session will use this info to generate + correct RB blocks in their SR reports. -2013-10-25 11:30:36 -0300 Thiago Santos <ts.santos@partner.samsung.com> +2013-11-07 16:13:16 +0100 Wim Taymans <wim.taymans@collabora.co.uk> - * gst/isomp4/qtdemux.c: - qtdemux: check if the end_time is defined before using it - Avoids sending EOS too soon because of overflow. Can happen on - fragmented mp4 playback. + * gst/rtpmanager/rtpsource.c: + rtpsource: refactor receiver stats update 2013-10-25 18:22:00 -0300 Thiago Santos <ts.santos@partner.samsung.com> @@ -1155,30 +4690,30 @@ stream and will fail if one is provided. https://bugzilla.gnome.org/show_bug.cgi?id=711497 +2013-11-05 11:18:34 +0000 Tim-Philipp Müller <tim@centricular.com> + + * common: + Automatic update of common submodule + From 865aa20 to dbedaa0 + +2013-01-29 10:51:07 +0100 Paul HENRYS <visechelle@gmail.com> + + * gst/rtp/gstrtph264pay.c: + Add call to gst_rtp_h264_pay_clear_sps_pps() when receiving a STREAM_START event + https://bugzilla.gnome.org/show_bug.cgi?id=692787 + 2013-11-02 22:50:47 +0100 Rico Tzschichholz <ricotz@ubuntu.com> * gst/rtsp/Makefile.am: * gst/rtsp/gstrtspsrc.h: rtsp: Add missing gio-2.0 deps and includes -2013-11-01 18:10:51 +0000 Olivier Crête <olivier.crete@collabora.com> - - * configure.ac: - Revert "configure: Require gst-plugins-base >= 1.2.1 for the TLS validation check flags in GstRTSPConnection" - Version 1.2.1 doesn't exist yet, re-apply when it does - This reverts commit c98380985db3483ea78a8e738d544d1201d8ed1e. - 2013-11-01 18:31:36 +0100 Sebastian Dröge <sebastian@centricular.com> * gst/audiofx/audioiirfilter.c: audioiirfilter: Fix initialization coefficient handling Broke unit test. -2013-11-01 16:59:11 +0100 Sebastian Dröge <sebastian@centricular.com> - - * configure.ac: - configure: Require gst-plugins-base >= 1.2.1 for the TLS validation check flags in GstRTSPConnection - 2013-10-31 14:05:43 -0700 Aleix Conchillo Flaque <aleix@oblong.com> * gst/rtsp/gstrtspsrc.c: @@ -1202,6 +4737,98 @@ wavpackenc: Fix writing of MD5 sums and other metadata blocks These don't have the FINAL_BLOCK flag set. +2013-10-31 13:02:11 -0200 Djalma Lúcio Soares da Silva <dlucio@impa.br> + + * ext/raw1394/gsthdv1394src.c: + hdv1394src: Make it possible to select a camera by its GUID + The source hdv1394src has the guid property that permits select a camera + connected from its GUID number. + However when this property is setted the selected camera is not changed. + The source continues using the default camera. + This problem was solved using the function iec61883_cmp_connect. + The reference for the function could be found here: + http://www.dennedy.org/libiec61883/API-iec61883-cmp-connect.html + The solution came from dvgrab source code. + https://bugzilla.gnome.org/show_bug.cgi?id=710415 + +2013-10-31 13:20:41 -0300 Thiago Santos <ts.santos@partner.samsung.com> + + * tests/check/elements/souphttpsrc.c: + tests: souphttpsrc: add explicit cast to silence warning + Silencing this warning: + elements/souphttpsrc.c:533:14: error: comparison between ‘SoupKnownStatusCode’ and ‘enum <anonymous>’ [-Werror=enum-compare] + if (status != SOUP_STATUS_OK && !send_error_doc) + With gcc 4.8.2 (debian) + +2013-10-31 10:38:35 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/rtpjitterbuffer.h: + * gst/rtsp/gstrtspsrc.c: + rtspsrc: proxy new buffer mode + +2013-10-30 16:49:36 +0100 Wim Taymans <wim.taymans@collabora.co.uk> + + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + jitterbuffer: add new timestamp mode + Add a new timestamp mode that assumes the local and remote clock are + synchronized. It takes the first timestamp as a base time and then uses the RTP + timestamps for the output PTS. + +2013-10-30 22:12:45 +0100 Sebastian Dröge <sebastian@centricular.com> + + * gst/matroska/matroska-demux.c: + matroska-demux: Fix compiler warning + matroska-demux.c: In function 'gst_matroska_demux_add_stream': + matroska-demux.c:1379:7: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'guint64' [-Werror=format=] + "%03u", context->uid); + ^ + +2013-10-28 13:21:15 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> + + * gst/videomixer/videoconvert.c: + videomixer: remove unneeded guint comparaison + https://bugzilla.gnome.org/show_bug.cgi?id=711010 + +2013-10-28 14:13:12 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> + + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + osxvideosink: fix missing selector name warnings + The spaces matter in ObjC + https://bugzilla.gnome.org/show_bug.cgi?id=711013 + +2013-10-28 13:31:34 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> + + * gst/y4m/gsty4mencode.c: + y4menc: fix uninitialized variable warning + https://bugzilla.gnome.org/show_bug.cgi?id=711011 + +2013-10-25 11:30:36 -0300 Thiago Santos <ts.santos@partner.samsung.com> + + * gst/isomp4/qtdemux.c: + qtdemux: check if the end_time is defined before using it + Avoids sending EOS too soon because of overflow. Can happen on + fragmented mp4 playback. + +2013-10-23 13:38:20 -0300 Thiago Santos <ts.santos@partner.samsung.com> + + * gst/isomp4/qtdemux.c: + qtdemux: use correct unref function + Events aren't GstObjects, but GstMiniObjects + +2013-10-15 08:16:20 +0200 Stefan Sauer <ensonic@users.sf.net> + + * gst/isomp4/qtdemux.c: + qtdemux: rename chunks_are_chunks to chunks_are_samples and flip the logic + As the variable name suggests, sometimes chunks are chunks. Rename the variable + to tell what they are when they are not chunks. + +2013-10-09 08:04:20 +0200 Stefan Sauer <ensonic@users.sf.net> + + * gst/isomp4/qtdemux.c: + qtdemux: fix typos and add more logging for unhandled parts + 2013-10-14 16:23:25 +0200 Ognyan Tonchev <ognyan@axis.com> * gst/udp/gstmultiudpsink.c: @@ -1209,12 +4836,32 @@ Unmap all GstMemory of the current buffer when flushing. https://bugzilla.gnome.org/show_bug.cgi?id=710110 +2013-10-12 20:44:31 +0100 Tim-Philipp Müller <tim@centricular.net> + + * gst/flv/gstflvmux.c: + flvmux: fix broken sample pipeline + which was muxing raw audio and video into flvmux, which won't work, + even if there were converters. + 2013-10-12 20:37:41 +0100 Tim-Philipp Müller <tim@centricular.net> * gst/flv/gstflvmux.c: flvmux: require stream-format=raw for mpeg-2 too, but don't require framed field raw implies that it's framed already. Fixes .. ! faac ! flvmux +2013-10-07 14:27:21 -0300 Thiago Santos <ts.santos@partner.samsung.com> + + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + souphttpsrc: do not emit EOS when connection drops + If the pipeline is stalled for too long, souphttpsrc will block and + stop fetching data from the network. This can cause the connection to + drop and souphttpsrc would handle it as an EOS. This patch makes it + persist and try to fetch more data until the end of the content length + or until receiving an error that it is beyong limits in case the content + is unknown. + https://bugzilla.gnome.org/show_bug.cgi?id=683536 + 2013-10-10 13:52:35 +0200 Sebastian Dröge <slomo@circular-chaos.org> * ext/dv/gstdvdec.c: @@ -1240,15 +4887,21 @@ deinterlace: Fix handling of planar video formats in greedyh method https://bugzilla.gnome.org/show_bug.cgi?id=709507 -2013-10-04 13:34:09 +0200 Peter Korsgaard <peter@korsgaard.com> +2013-10-06 10:01:26 -0700 Reynaldo H. Verdejo Pinochet <r.verdejo@partner.samsung.com> - * sys/v4l2/gstv4l2bufferpool.c: - v4l2bufferpool: O_CLOEXEC needs _GNU_SOURCE - On some systems (E.G. uClibc and older Glibc versions), O_CLOEXEC is only - defined when _GNU_SOURCE is specified, so do so. - _GNU_SOURCE needs to be defined before any system headers are included, - so move the fcntl.h section up. - https://bugzilla.gnome.org/show_bug.cgi?id=709423 + * gst/matroska/matroska-mux.c: + matroska: Trivial grammar fix on debug msg + +2013-10-06 09:17:00 -0700 Reynaldo H. Verdejo Pinochet <r.verdejo@partner.samsung.com> + + * gst/matroska/matroska-mux.c: + * gst/matroska/matroska-mux.h: + * gst/matroska/webm-mux.c: + matroskamux: Add context flag for WebM + WebM has a couple of specific requirements we need to handle. + Idea is to set this flag once and just rely on mux->is_webm + at run time instead of repeatedly figuring this out from + GST_MATROSKA_DOCTYPE_WEBM (which requires a strcmp()). 2013-10-04 14:42:59 -0700 Reynaldo H. Verdejo Pinochet <r.verdejo@partner.samsung.com> @@ -1259,23 +4912,29 @@ this when passed to mkvalidator: ERR201: Invalid 'SegmentUID' for profile 'webm' in Info at 192 -2013-10-03 22:38:43 +0200 Mathieu Duponchelle <mduponchelle1@gmail.com> +2013-10-05 00:00:03 +0200 Matej Knopp <matej.knopp@gmail.com> - * gst/videomixer/videoconvert.c: - videomixer: Update videoconvert copy - https://bugzilla.gnome.org/show_bug.cgi?id=709390 + * gst/matroska/matroska-demux.c: + matroskademux: make dvd palette change event sticky + So they don't get lost. + https://bugzilla.gnome.org/show_bug.cgi?id=709454 -2013-10-03 21:36:34 +0200 Mathieu Duponchelle <mduponchelle1@gmail.com> +2013-10-03 16:39:26 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> - * gst/videomixer/videomixer2.c: - videomixer: Check if the pad needs reconfiguration in collected - https://bugzilla.gnome.org/show_bug.cgi?id=709384 + * gst/videofilter/gstvideoflip.c: + * gst/videofilter/gstvideoflip.h: + videoflip: Add automatic flip mode driven by image-orientation tag + https://bugzilla.gnome.org/show_bug.cgi?id=709312 -2013-10-03 11:59:25 +0200 Sebastian Dröge <slomo@circular-chaos.org> +2013-10-04 13:34:09 +0200 Peter Korsgaard <peter@korsgaard.com> - * gst/isomp4/qtdemux.c: - qtdemux: Add support for the mp2v fourcc for MPEG-2 video - https://bugzilla.gnome.org/show_bug.cgi?id=709270 + * sys/v4l2/gstv4l2bufferpool.c: + v4l2bufferpool: O_CLOEXEC needs _GNU_SOURCE + On some systems (E.G. uClibc and older Glibc versions), O_CLOEXEC is only + defined when _GNU_SOURCE is specified, so do so. + _GNU_SOURCE needs to be defined before any system headers are included, + so move the fcntl.h section up. + https://bugzilla.gnome.org/show_bug.cgi?id=709423 2013-10-04 12:11:56 +0200 Wim Taymans <wim.taymans@collabora.co.uk> @@ -1286,6 +4945,18 @@ race by waiting for the srcpad loop function to completely pause after doing the flush-start. +2013-10-03 22:38:43 +0200 Mathieu Duponchelle <mduponchelle1@gmail.com> + + * gst/videomixer/videoconvert.c: + videomixer: Update videoconvert copy + https://bugzilla.gnome.org/show_bug.cgi?id=709390 + +2013-10-03 21:36:34 +0200 Mathieu Duponchelle <mduponchelle1@gmail.com> + + * gst/videomixer/videomixer2.c: + videomixer: Check if the pad needs reconfiguration in collected + https://bugzilla.gnome.org/show_bug.cgi?id=709384 + 2013-10-03 14:39:35 +0100 Matthieu Bouron <matthieu.bouron@collabora.com> * ext/jpeg/gstjpegdec.c: @@ -1295,12 +4966,32 @@ particular when the jpeg typefinder does not find the width and height. https://bugzilla.gnome.org/show_bug.cgi?id=709352 +2013-10-03 18:33:01 +0100 Tim-Philipp Müller <tim@centricular.net> + + * sys/v4l2/gstv4l2object.c: + v4l2src: print probed caps as caps again in debug log + This got lost during refactoring. + +2013-10-03 11:59:25 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/isomp4/qtdemux.c: + qtdemux: Add support for the mp2v fourcc for MPEG-2 video + https://bugzilla.gnome.org/show_bug.cgi?id=709270 + 2013-10-02 15:56:53 +0200 Ognyan Tonchev <ognyan@axis.com> * gst/matroska/matroska-demux.c: matroskademux: Fix memory leak https://bugzilla.gnome.org/show_bug.cgi?id=709266 +2013-09-30 12:31:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> + + * gst/isomp4/qtdemux.c: + * gst/isomp4/qtdemux_fourcc.h: + * gst/isomp4/qtdemux_types.c: + qtdemux: Add HEVC support + https://bugzilla.gnome.org/show_bug.cgi?id=709093 + 2013-09-30 12:24:32 +0200 Ognyan Tonchev <ognyan@axis.com> * gst/rtp/gstrtpgstpay.c: @@ -1344,6 +5035,13 @@ * gst/rtpmanager/gstrtpjitterbuffer.c: rtpjitterbuffer: improve debug +2013-09-26 20:41:26 +0200 Hans MÃ¥nsson <hansm@axis.com> + + * gst/isomp4/gstqtmuxmap.c: + mp4mux: Do not require framerate in peer video caps + Remove the framerate restriction on the caps. + Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708864 + 2013-09-27 15:05:04 +0200 Wim Taymans <wim.taymans@collabora.co.uk> * gst/rtsp/gstrtspsrc.c: @@ -1351,6 +5049,12 @@ When we have opened the stream, go into the loop function so that we can receive messages from the server. +2013-09-27 12:53:06 +0200 Matej Knopp <matej.knopp@gmail.com> + + * gst/matroska/matroska-demux.c: + matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8 + https://bugzilla.gnome.org/show_bug.cgi?id=707933 + 2013-09-26 16:20:04 +0200 Wim Taymans <wim.taymans@collabora.co.uk> * gst/rtpmanager/rtpjitterbuffer.c: @@ -1358,6 +5062,13 @@ Skip trying to calculate the skew when we don't have an rtptime. It causes problems when lost packet events are placed in the jitterbuffer. +2013-09-25 23:46:14 +0100 Tim-Philipp Müller <tim@centricular.net> + + * configure.ac: + configure: get rid of AS_SCRUB_INCLUDE + Should not be needed any more. + https://bugzilla.gnome.org/show_bug.cgi?id=707658 + 2013-09-25 17:42:02 +0200 Wim Taymans <wim.taymans@collabora.co.uk> * gst/rtsp/gstrtspsrc.c: @@ -1371,6 +5082,14 @@ rtpbin: avoid some pad link checks Link pads without checks, we know it will work. +2013-09-25 12:55:21 +0200 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/isomp4/gstqtmux.c: + qtmux: Don't error out if downstream is not seekable for non-fragmented variants + Doing so would be a regression over 1.0 and breaks the unit test. + However the result will be most likely unusable, so let's post + a warning message on the bus. + 2013-09-24 04:02:09 +0200 Wim Taymans <wim.taymans@collabora.co.uk> * gst/rtpmanager/gstrtpjitterbuffer.c: @@ -1383,19 +5102,6 @@ Move the send_lost_event function to the do_lost_event handling, there is no need to have a separate function. -2013-10-03 18:33:01 +0100 Tim-Philipp Müller <tim@centricular.net> - - * sys/v4l2/gstv4l2object.c: - v4l2src: print probed caps as caps again in debug log - This got lost during refactoring. - -2013-09-26 20:41:26 +0200 Hans MÃ¥nsson <hansm@axis.com> - - * gst/isomp4/gstqtmuxmap.c: - mp4mux: Do not require framerate in peer video caps - Remove the framerate restriction on the caps. - Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708864 - 2013-09-16 11:20:51 -0300 Thiago Santos <thiago.sousa.santos@collabora.com> * gst/isomp4/qtdemux.c: @@ -1417,26 +5123,22 @@ matroskademux: update stream->pos when sending buffers so that gap events are not sent unnecessarily https://bugzilla.gnome.org/show_bug.cgi?id=708505 -2013-09-27 12:53:06 +0200 Matej Knopp <matej.knopp@gmail.com> +2013-09-24 18:30:04 +0100 Tim-Philipp Müller <tim@centricular.net> - * gst/matroska/matroska-demux.c: - matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8 - https://bugzilla.gnome.org/show_bug.cgi?id=707933 + * README: + * common: + Automatic update of common submodule + From 6b03ba7 to 865aa20 -2013-09-25 12:55:21 +0200 Sebastian Dröge <slomo@circular-chaos.org> +2013-09-24 15:05:24 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * gst/isomp4/gstqtmux.c: - qtmux: Don't error out if downstream is not seekable for non-fragmented variants - Doing so would be a regression over 1.0 and breaks the unit test. - However the result will be most likely unusable, so let's post - a warning message on the bus. + * configure.ac: + configure: Actually use 1.3.0.1 as version to make configure happy -2013-09-24 17:24:26 +0100 Tim-Philipp Müller <tim@centricular.net> +2013-09-24 15:00:24 +0200 Sebastian Dröge <slomo@circular-chaos.org> - * README: - * common: - Automatic update of common submodule - From 6b03ba7 to 7412249 + * configure.ac: + Back to development === release 1.2.0 === diff --git a/Makefile.in b/Makefile.in index d47175c83..894ee4676 100644 --- a/Makefile.in +++ b/Makefile.in @@ -106,7 +106,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -122,7 +121,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -500,7 +498,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/NEWS b/NEWS index 57243f404..5fc86c82d 100644 --- a/NEWS +++ b/NEWS @@ -1,2 +1,110 @@ -This is GStreamer Good Plugins 1.2.4 +This is GStreamer Good Plugins 1.3.1 + +Changes since 1.2: + +New API: + • GstMessageType has GST_MESSAGE_EXTENDED added. All types before + that can be used together as a flags type as before, but from + that message onwards the types are just counted incrementally. + This was necessary to be able to add more message types. + In 2.0 GstMessageType will just become an enum and not a flags + type anymore. + • GstDeviceMonitor for device probing, e.g. to list all available + audio or video capture devices. This is the replacement for + GstPropertyProbe from 0.10. + • Events accumulate the running-time offset now when travelling + through pads, as set by the gst_pad_set_offset() function. This + allows to compensate for this in the QOS event for example. + • GstBuffer has a new flag "tag-memory" that is set automatically + when memory is added or removed to a buffer. This allows buffer + pools to detect if they can recycle a buffer or need to reset + it first. + • GstToc has new API to mark GstTocEntries as loops. + • A not-authorized resource error has been defined to notify + applications that accessing the resource has failed because + of missing authorization and to distinguish this case from others. + This change is actually already in 1.2.4. + • GstPad has a new flag "accept-intersect", that will let the default + ACCEPT_CAPS query handler do an intersection instead of subset check. + This is interesting for parser elements that can handle incomplete + caps. + • GstCollectPads has support for flushing and a default handler for + SEEK events now. + • GstSegment has new API to offset the running time by a specific + value and this is used in GstPad to allow positive and negative + offsets in gst_pad_set_offset() in all situations. + • Support for h265/HEVC and VP8 has been added to the codec utils and codec + parsers library, and was integrated into various elements. + • API for adjusting the TLS validation of RTSP connection has been added. + • The RTSP and SDP library has MIKEY (RFC 3830) support now, and + there is API to distinguish between the different RTSP profiles. + • API to access RTP time information and statistics. + • Support for auxiliary streams was added to rtpbin. + • Support for tiled, raw video formats has been added. + • GstVideoDecoder and GstAudioDecoder have API to help aggregating tag + events and merge custom tags into them consistently. + • playbin/playsink has support for application provided audio and video + filters. + • The GL library was merged from gst-plugins-gl to gst-plugins-bad, + providing a generic infrastructure for handling GL inside GStreamer + pipelines and a plugin with some elements using these, especially + a video sink. Supported platforms currently are Android, Cocoa (OS X), + DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) and generic X11, + Wayland and EGL platforms. + This replaces eglglessink and also is supposed to replace osxvideosink. + + +Major changes: + • New plugins and elements: + ∘ v4l2videodec element for accessing hardware codecs on + platforms that make them accessible via V4L2, e.g. + Samsung Exynos. This comes together with major refactoring + of the existing V4L2 elements and the corresponding + infrastructure. + The v4l2videodec element replaces the mfcdec element. + ∘ rtpstreampay and rtpstreamdepay elements for transmitting + RTP packets over a stream API (e.g. TCP) according to + RFC 4571. + ∘ rtprtx elements for standard compliant implementation of + retransmissions, integrated into the rtpmanager plugin. + ∘ audiomixer element that mixes multiple audio streams together + into a single one while keeping synchronization. This is + planned to become the replacement of the adder element. + ∘ OpenNI2 plugin for 3D cameras like the Kinect camera. + ∘ OpenEXR plugin for decoding high-dynamic-range EXR images. + ∘ curlsshsink and curlsftpsink to write files via SSH/SFTP. + ∘ videosignal, ivfparse and sndfile plugins ported from 0.10. + ∘ avfvideosrc, vtdec and other elements were ported from 0.10 and + are available on OS X and iOS now. + + • Other changes: + ∘ gst-libav now uses libav 10, and gained support for H265/HEVC. + ∘ Support for hardware codecs and special memory types has been + improved with bugfixes and feature additions in various plugins + and base classes. + ∘ Various bugfixes and improvements to buffering in queue2 and + multiqueue elements. + ∘ dvbsrc supports more delivery mechanisms and other features + now, including DVB S2 and T2 support. + ∘ The MPEGTS library has support for many more descriptors. + ∘ Major improvements to tsdemux, especially time related. + ∘ souphttpsrc now has support for keep-alive connections, + compression, configurable number of retries and configuration + for SSL certificate validation. + ∘ hlsdemux has undergone major refactoring and works more + reliable now and supports more HLS features like trick modes. + Also fragments are pushed downstream while they're downloaded + now instead of waiting for each fragment to finish. + ∘ videoflip can automatically flip based on the orientation tag. + ∘ openjpeg supports the OpenJPEG2 API. + ∘ gst-rtsp-server supports SRTP and MIKEY now. + ∘ Lots of fixes for coverity warnings all over the place. + ∘ 400+ fixed bug reports, and many other bug fixes and other + improvements everywhere that had no bug report. + +Things to look out for: + • The eglglessink element was removed and replaced by the glimagesink + element. + • The mfcdec element was removed and replaced by v4l2videodec. + • osxvideosink is only available in OS X 10.6 or newer. diff --git a/README b/README index a8f26f0c0..da0cab491 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -GStreamer 1.2.x stable series +GStreamer 1.3.x development series WHAT IT IS ---------- diff --git a/RELEASE b/RELEASE index c6e268d08..30d759566 100644 --- a/RELEASE +++ b/RELEASE @@ -1,16 +1,29 @@ -Release notes for GStreamer Good Plugins 1.2.4 +Release notes for GStreamer Good Plugins 1.3.1 -The GStreamer team is proud to announce a new bug-fix release -in the 1.x stable series of the -core of the GStreamer streaming media framework. +The GStreamer team is pleased to announce the first release of the unstable +1.3 release series. The 1.3 release series is adding new features on top of +the 1.0 and 1.2 series and is part of the API and ABI-stable 1.x release +series of the GStreamer multimedia framework. The unstable 1.3 release series +will lead to the stable 1.4 release series in the next weeks, and newly added +API can still change until that point. -The 1.x series is a stable series targeted at end users. -It is not API or ABI compatible with the stable 0.10.x series. -It is, however, parallel installable with the 0.10.x series and -will not affect an existing 0.10.x installation. + +Binaries for Android, iOS, Mac OS X and Windows will be provided separately +during the unstable 1.3 release series. + + + +The versioning scheme that is used in general is that 1.x.y is API and +ABI backwards compatible with previous 1.x.y releases. If x is an even +number it is a stable release series and all releases in this series +will only contain important bugfixes, e.g. the 1.0 series with 1.0.7. If +x is odd it is a development release series that will lead to the next +stable release series 1.x+1 and contains new features and bigger +changes. During the development release series, new API can still +change. @@ -57,17 +70,101 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg) Bugs fixed in this release - * 725104 : qtdemux: reverse playback and video stream switching failure - * 722185 : souphttpsrc: racy " server does not support seeking " error - * 724619 : crash when reading the device name property of pulsesink - * 725124 : rtspsrc: Fix deadlock when task creation is no successful - * 725712 : rtpsession: Crash when RTCP FIR received with unknown SSRC - * 725860 : v4l2src: Fix using v4l2src with Hauppauge HDPVR video capture device - * 726777 : rtpjpegpay: payload size not correctly calculated - * 728017 : [regression]eos event could not be send out from gstrtpjitterbuffer. - * 728041 : rtph264depay: marks all output buffers as delta units when outputting avc format - * 724638 : aacparse : Missing resilience when no audio frame is found - * 727329 : check: souphttpsrc: unknown type name ‘SoupStatus’ + * 728501 : rtpaux/rtprtx: Unit tests are racy and take very long sometimes + * 719636 : deinterlace: alters caps in passthrough mode preventing hardware decode + * 727305 : matroskademux: Add support for A_OPUS + * 725632 : v4l2: Normalise control names in the same way as v4l2-ctl + * 345830 : qtdemux: better edit lists handling + * 636143 : avidemux: report creation date/time via GST_TAG_DATE_TIME + * 652986 : rtpjitterbuffer: events are not serialized + * 664339 : matroskamux: support for audio/x-adpcm + * 691570 : [isomp4/qtdemux] lots of critical warnings on this sample file + * 692787 : rtph264pay: No way to clear SPS and PPS in case of a new stream + * 705024 : aacparse: does not propagate downstream sample rate restriction upstream + * 705982 : mp4mux: HDLR box name string is not NULL terminated + * 708165 : videomixer: Store and forward tag events + * 709079 : rtpgstpay: Leaks memory + * 709093 : qtdemux: add HEVC support + * 709266 : matroska-demux leaks memory + * 709312 : videoflip: Add an automatic method that flip base on image-orientation tag + * 710415 : hdv1394src: Not possible to select a HDV camera from GUID + * 710762 : qtdemux: fails reading some MOV files with problematic jpeg frames + * 711010 : videomixer: remove unneeded guint comparison + * 711011 : y4mencode: fix uninitialized variable warning + * 711013 : osxvideosink: fix missing selector name warning + * 711084 : rtpmanager: add new rtprtxsend and rtprtxreceive elements for retransmission + * 711087 : rtpbin: Support Auxiliary streams + * 711270 : check: add rtpsession test + * 711411 : rtpjitterbuffer: implement RTX statistics + * 711412 : rtpjitterbuffer: Automatically calculate RTX properties based on RTT + * 711560 : rtpsession: ssrc collision improvements + * 711693 : rtpsession: Implement various session statistics + * 712206 : v4l2: print FOURCC before enumerating + * 712254 : multifilesrc: Implement seeking in case of multiple images + * 712303 : qtdemux: playback regression after commit ae1150e85cf99d7482933aa6f7e4f012fe45a3ec + * 712567 : rtpsession: RBs are not included in SRs after the first RTCP timeout when there are multiple internal senders + * 712612 : v4l2bufferpool: take over the floating reference for the new allocator + * 712754 : v4l2: add support for multi-planar V4L2 API + * 719434 : rtph264pay maps and unmaps inbuffer twice + * 719497 : videoflip: crashes on tag list without orientation tag in git master + * 719783 : qtdemux: regression with mp4-main-multi-mpd-AV-NBS.mpd + * 719829 : rtp: Add RFC4571 framing/de-framing element + * 719938 : rtpbin: allow dynamic RTP/RTCP encoders and decoders + * 720371 : rtpbin: Impossible to set jitterbuffer rtx-* properties when using rtpbin + * 720512 : flacparse: Doesn't set the codec tag + * 720568 : v4l2: Various changes to allow using M2M decoders + * 720995 : matroskamux: add g726 adpcm support + * 721245 : osxvideosink: Fails to build on OS X Leopard 10.5.8 + * 721342 : shout2send: Some minor cleanups + * 722175 : rtpmanager: improve code of rtprtx* elements + * 722370 : rtprtxsend: push rtx buffers from a different thread to avoid long retransmission delays + * 722372 : rtpjitterbuffer: Got data flow before stream-start event + * 722394 : v4l2: set GST_BUFFER_FLAG_DELTA_UNIT when appropriate + * 722396 : avimux: don't make the buffer writable unless absolutely necessary + * 722866 : rtspsrc: add rtpjitterbuffer do-retransmission property + * 722981 : autodetect elements have inconsistent handling of autoplugin + * 723166 : qtdemux: incorrect tag character + * 723269 : matroskamux: used uid list grows forever + * 723289 : cairooverlay: add RGB16 support + * 723502 : gst-plugins-good: Do not build check tests for disabled plugins + * 723849 : matroska: add support for GRAY8, BGR and RGB video colourspaces in V_UNCOMPRESSED codec + * 724085 : gst-plugins-good/docs: Rebalance docbook < para > tags in comments + * 724213 : rtph264pay: shouldn't update time for sending SPS and PPS if we failed to send SPS or PPS + * 724396 : rtspsrc: add tls-database property + * 724636 : v4l2videodec: VP8 KO with playbin + * 724705 : videomixer: Port to new collectpads API + * 724712 : rtspsrc doesn't set caps on pads before adding them + * 724899 : v4l2src does not set interlaced flag on buffers + * 725008 : matroskademux: crash with 24bit raw audio + * 725159 : rtpjitterbuffer: RTP sequence number rollover problems + * 725361 : [regression] rtpsession: setting the " internal-ssrc " property does nothing + * 725480 : gst-plugins-good: Ignore gcov intermediate files + * 725723 : osxvideo: GetCurrentProcess not available on Mavericks + * 725948 : videomixer2: crash after renegotiating with different resolution + * 726106 : matroskademux: does not handle fps lower than 1 + * 726161 : png plugin handles interlaced png files incorrectly + * 726696 : rtspsrc memleaks + * 726737 : osxvideosink: advertize for the video meta API support + * 726738 : osxvideosink: use the video frame API instead of the video meta API + * 726833 : ximagesrc: Add alpha channel support + * 726837 : rtspsrc segfault + * 727821 : souphttpsrc: Regression in push mode + * 727867 : qtdemux: Does not return stream flags from trex atom + * 727878 : qtdemux: replace duplicated variable when parsing trex atom + * 729223 : wavparse: drops upstream tags for .wav files that are ID3 tagged + * 728987 : qtdemux: 'caps' may be used uninitialized in this function. + * 729067 : goom filter: left shift of 24 places cannot be represented in type 'int' + * 712333 : regression: videoflip: aborts with gst_video_flip_transform_caps: code should not be reached + * 722077 : v4l2: compile error - 'V4L2_CAP_VIDEO_M2M_MPLANE' undeclared + * 722127 : v4l2: Add NV12_64Z32 support + * 722128 : v4l2: Implement video decoder + * 723446 : v4l2src: Should detect support for mplanar formats during runtime + * 726453 : v4l2 plugin broken due to bundeling of videodev2.h + * 721764 : souphttpsrc: Add ability to do HTTP session logging + * 722311 : matroskaparse: should try to identify data on stream header before going with a blind + * 722705 : Factor out common init/reset code from matroska parse/demux + * 712643 : qtdemux: couple of issues with vobsub + * 581295 : mp4mux: Add support for embedded subtitles ==== Download ==== @@ -104,19 +201,70 @@ subscribe to the gstreamer-devel list. Contributors to this release + * Akihiro Tsukada + * Aleix Conchillo Flaque + * Aleix Conchillo Flaqué + * Alessandro Decina + * Alexander Zallesov + * Andoni Morales Alastruey + * Benjamin Gaignard * Branislav Katreniak + * Brendan Long + * Christian Fredrik Kalager Schaller + * Dan Kegel * Darryl Gamroth + * Djalma Lúcio Soares da Silva + * Edward Hervey + * George Kiagiadakis + * Göran Jönsson + * Hans MÃ¥nsson + * Hugues Fruchet + * Jake Foytik + * Jan Schmidt + * Jeremy Huddleston + * Jeremy Huddleston Sequoia + * Jimmy Ohn + * Jonas Holmberg * Josep Torra + * Julien Isorce + * Justin Joy + * Luis de Bethencourt + * Marc Leeman * Mark Nauwelaerts + * Matej Knopp + * Mathieu Duponchelle + * MathieuDuponchelle + * Matthieu Bouron + * Michael Olbrich + * Mike Sheldon + * Nicola Murino * Nicolas Dufresne * Ognyan Tonchev * Olivier Crête + * Paul HENRYS + * Per x Johansson + * Peter Korsgaard + * Philippe Normand + * RafaÅ‚ MużyÅ‚o * Reynaldo H. Verdejo Pinochet + * Rico Tzschichholz + * Ryan Lortie * Santiago Carot-Nemesio * Sebastian Dröge + * Sebastian Rasmussen + * Simon Farnsworth + * Sreerenj Balachandran * Stefan Sauer + * Stéphane Cerveau * Thiago Santos + * Thibault Saunier + * Thijs Vermeir + * Tim-Philipp Müller + * Todd Agulnick + * Torrie Fischer + * Vincent Penquerc'h * William Jon McCann * William Manley * Wim Taymans + * divhaere  \ No newline at end of file diff --git a/aclocal.m4 b/aclocal.m4 index 4028bb3c4..ec7cfe1a8 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1476,7 +1476,6 @@ m4_include([common/m4/as-auto-alt.m4]) m4_include([common/m4/as-compiler-flag.m4]) m4_include([common/m4/as-gcc-inline-assembly.m4]) m4_include([common/m4/as-libtool.m4]) -m4_include([common/m4/as-scrub-include.m4]) m4_include([common/m4/as-version.m4]) m4_include([common/m4/ax_create_stdint_h.m4]) m4_include([common/m4/gst-arch.m4]) @@ -1492,7 +1491,6 @@ m4_include([common/m4/gst-package-release-datetime.m4]) m4_include([common/m4/gst-platform.m4]) m4_include([common/m4/gst-plugin-docs.m4]) m4_include([common/m4/gst-plugindir.m4]) -m4_include([common/m4/gst-x11.m4]) m4_include([common/m4/gst.m4]) m4_include([common/m4/gtk-doc.m4]) m4_include([common/m4/orc.m4]) diff --git a/autogen.sh b/autogen.sh index 93f88d49b..632b0253b 100755 --- a/autogen.sh +++ b/autogen.sh @@ -87,14 +87,8 @@ fi toplevel_check $srcfile # autopoint -# first remove patch if necessary, then run autopoint, then reapply if test -d po ; then - if test -f po/Makefile.in.in; - then - patch -p0 -R --forward < common/gettext.patch - fi - tool_run "$autopoint" "--force" "patch -p0 < common/gettext.patch" - patch -p0 < common/gettext.patch + tool_run "$autopoint" "--force" fi # aclocal diff --git a/common/Makefile.in b/common/Makefile.in index 21ce2f185..a48f40386 100644 --- a/common/Makefile.in +++ b/common/Makefile.in @@ -87,7 +87,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -103,7 +102,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -461,7 +459,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/common/gst-autogen.sh b/common/gst-autogen.sh index e54dbcfa2..78cab66fd 100644 --- a/common/gst-autogen.sh +++ b/common/gst-autogen.sh @@ -29,6 +29,7 @@ version_get () { COMMAND=$1 VARPREFIX=`echo $2 | tr .,- _` + local ${VARPREFIX}_VERSION # strip everything that's not a digit, then use cut to get the first field pkg_version=`$COMMAND --version|head -n 1|sed 's/^.*)[^0-9]*//'|cut -d' ' -f1` diff --git a/common/gst.supp b/common/gst.supp index 8a3617fe7..2c6039226 100644 --- a/common/gst.supp +++ b/common/gst.supp @@ -1297,6 +1297,15 @@ fun:snd_config_update_r fun:snd_config_update } +{ + <alsa leak snd_config_searcha_hooks> + Memcheck:Leak + fun:*alloc + fun:_dl_close_worker + ... + fun:snd_config_searcha_hooks +} + { <nss lookup within ALSA> Memcheck:Leak @@ -2528,41 +2537,13 @@ } -## Leak of property_list in gstffmpegcfg.c -## This list is created in gst_ffmpegcsp_init(), called from -## gst_ffmpegenc_register. -{ - <insert a suppression name here> - Memcheck:Leak - fun:malloc - fun:g_malloc - fun:g_slice_alloc - fun:g_datalist_id_set_data_full - fun:gst_ffmpeg_cfg_init - fun:gst_ffmpegenc_register - fun:plugin_init -} -{ - <insert a suppression name here> - Memcheck:Leak - fun:malloc - fun:g_malloc - fun:g_slice_alloc - fun:g_datalist_id_set_data_full - fun:g_param_spec_set_qdata_full - fun:gst_ffmpeg_cfg_init - fun:gst_ffmpegenc_register - fun:plugin_init -} - - +## Leak of everything allocated by gst-libav plugin init { <insert_a_suppression_name_here> Memcheck:Leak fun:*alloc - fun:* + ... fun:gst_ffmpeg_cfg_init - fun:gst_ffmpegenc_register } ## Leak of GIO module through gnomevfs diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj index 09039a56c..4ad9786be 100755 --- a/common/gstdoc-scangobj +++ b/common/gstdoc-scangobj @@ -150,7 +150,18 @@ print OUTPUT <<EOT; #include <stdio.h> #include <errno.h> -$includes +#include <gst/gst.h> +EOT + +if ($includes) { + print OUTPUT $includes; +} else { + for (@types) { + print OUTPUT "extern GType $_ (void);\n"; + } +} + +print OUTPUT <<EOT; #ifdef GTK_IS_WIDGET_CLASS #include <gtk/gtkversion.h> @@ -453,11 +464,8 @@ static void output_args (void); static void output_object_args (FILE *fp, GType object_type); int -main (int argc, char *argv[]) +main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char *argv[]) { - /* Silence the compiler: */ - if (argv != argv) argc = argc; - $TYPE_INIT_FUNC; get_object_types (); diff --git a/common/m4/Makefile.am b/common/m4/Makefile.am index 856d6e329..3d387ee63 100644 --- a/common/m4/Makefile.am +++ b/common/m4/Makefile.am @@ -9,7 +9,6 @@ EXTRA_DIST = \ as-libtool.m4 \ as-libtool-tags.m4 \ as-python.m4 \ - as-scrub-include.m4 \ as-version.m4 \ ax_create_stdint_h.m4 \ glib-gettext.m4 \ diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in index 79aa19e30..ef2bd77bd 100644 --- a/common/m4/Makefile.in +++ b/common/m4/Makefile.in @@ -86,7 +86,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -102,7 +101,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -400,7 +398,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -480,7 +477,6 @@ EXTRA_DIST = \ as-libtool.m4 \ as-libtool-tags.m4 \ as-python.m4 \ - as-scrub-include.m4 \ as-version.m4 \ ax_create_stdint_h.m4 \ glib-gettext.m4 \ diff --git a/common/m4/as-scrub-include.m4 b/common/m4/as-scrub-include.m4 deleted file mode 100644 index 3ed49b0a7..000000000 --- a/common/m4/as-scrub-include.m4 +++ /dev/null @@ -1,36 +0,0 @@ -dnl as-scrub-include.m4 0.0.4 - -dnl autostars m4 macro for scrubbing CFLAGS of system include dirs -dnl because gcc 3.x complains about including system including dirs - -dnl Thomas Vander Stichele <thomas at apestaart dot org> - -dnl $Id: as-scrub-include.m4,v 1.7 2004/06/12 08:30:20 thomasvs Exp $ - -dnl This macro uses output of cpp -v and expects it to contain text that -dnl looks a little bit like this: -dnl #include <...> search starts here: -dnl /usr/local/include -dnl /usr/lib/gcc-lib/i386-redhat-linux/3.2/include -dnl /usr/include -dnl End of search list. - -dnl AS_SCRUB_INCLUDE(VAR) -dnl example -dnl AS_SCRUB_INCLUDE(CFLAGS) -dnl will remove all system include dirs from the given CFLAGS - -AC_DEFUN([AS_SCRUB_INCLUDE], -[ - GIVEN_CFLAGS=$[$1] - INCLUDE_DIRS=`echo | cpp -v 2>&1` - - dnl remove everything from this output between the "starts here" and "End of" - dnl line - INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'` - for dir in $INCLUDE_DIRS; do - dnl use "" as the sed script so $dir gets expanded - GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"` - done - [$1]=$GIVEN_CFLAGS -]) diff --git a/common/m4/gst-error.m4 b/common/m4/gst-error.m4 index e12a04cc6..bce80d2b0 100644 --- a/common/m4/gst-error.m4 +++ b/common/m4/gst-error.m4 @@ -169,7 +169,7 @@ AC_DEFUN([AG_GST_SET_ERROR_CXXFLAGS], 'no%E_MACRO_REDEFINED' \ 'no%E_LOOP_NOT_ENTERED_AT_TOP' do - AS_CXX_COMPILER_FLAG([-errwarn=%all,$f], ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f") + AS_CXX_COMPILER_FLAG([-errwarn=%all,$f], [ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f"]) done fi fi @@ -254,7 +254,7 @@ AC_DEFUN([AG_GST_SET_ERROR_OBJCFLAGS], 'no%E_MACRO_REDEFINED' \ 'no%E_LOOP_NOT_ENTERED_AT_TOP' do - AS_OBJC_COMPILER_FLAG([-errwarn=%all,$f], ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS,$f") + AS_OBJC_COMPILER_FLAG([-errwarn=%all,$f], [ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS,$f"]) done fi fi diff --git a/common/m4/gst-gettext.m4 b/common/m4/gst-gettext.m4 index a63651bf8..df817eb05 100644 --- a/common/m4/gst-gettext.m4 +++ b/common/m4/gst-gettext.m4 @@ -14,6 +14,13 @@ AC_DEFUN([AG_GST_GETTEXT], AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE", [gettext package name]) + dnl make sure po/Makevars is kept in sync with GETTEXT_PACKAGE + if test -e "${srcdir}/po/Makevars"; then + if ! grep -e "$1" "${srcdir}/po/Makevars"; then + AC_MSG_ERROR([DOMAIN in po/Makevars does not match GETTEXT_PACKAGE $1]) + fi + fi + dnl define LOCALEDIR in config.h AS_AC_EXPAND(LOCALEDIR, $datadir/locale) AC_DEFINE_UNQUOTED([LOCALEDIR], "$LOCALEDIR", diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 index 3af5547b4..63f0f4612 100644 --- a/common/m4/gst-glib2.m4 +++ b/common/m4/gst-glib2.m4 @@ -106,9 +106,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], fi AC_SUBST(GLIB_MKENUMS) - dnl for the poor souls who for example have glib in /usr/local - AS_SCRUB_INCLUDE(GLIB_CFLAGS) - AC_SUBST(GLIB_EXTRA_CFLAGS) dnl Now check for GIO diff --git a/common/m4/gst-parser.m4 b/common/m4/gst-parser.m4 index 710da897b..b002047bb 100644 --- a/common/m4/gst-parser.m4 +++ b/common/m4/gst-parser.m4 @@ -8,10 +8,10 @@ AC_DEFUN([AG_GST_BISON_CHECK], fi dnl check bison version - dnl we need version >= 1.875 for the reentrancy support + dnl we need version >= 2.4 for the '<>' support dnl in the parser. dnl First lines observed: 'bison (GNU Bison) 2.3' or 'GNU Bison version 1.28' - bison_min_version=1.875 + bison_min_version=2.4 bison_version=`$BISON_PATH --version | head -n 1 | sed 's/^[[^0-9]]*//' | sed 's/[[^0-9]]*$//' | cut -d' ' -f1` AC_MSG_CHECKING([bison version $bison_version >= $bison_min_version]) diff --git a/compile b/compile index 531136b06..b1f474915 100755 --- a/compile +++ b/compile @@ -1,9 +1,10 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2012-01-04.17; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free +# Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -78,53 +79,6 @@ func_file_conv () esac } -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () @@ -155,34 +109,43 @@ func_cl_wrapper () ;; esac ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" + lib=${1#-l} + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + set x "$@" "$dir/$lib.dll.lib" + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + set x "$@" "$dir/$lib.lib" + break + fi + done + IFS=$save_IFS + + test "$found" != yes && set x "$@" "$lib.lib" shift ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; -L*) - func_cl_dashL "${1#-L}" + func_file_conv "${1#-L}" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" ;; -static) shared=false diff --git a/config.guess b/config.guess index b79252d6b..d622a44e5 100755 --- a/config.guess +++ b/config.guess @@ -1,12 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2013-06-10' +timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -20,17 +22,19 @@ timestamp='2013-06-10' # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to <config-patches@gnu.org> and include a ChangeLog +# entry. # -# Originally written by Per Bothner. +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -# -# Please send patches with a ChangeLog entry to config-patches@gnu.org. - me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +54,9 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -132,27 +138,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval $set_cc_for_build - cat <<-EOF > $dummy.c - #include <features.h> - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - ;; -esac - # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in @@ -215,10 +200,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -321,7 +302,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) + arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -820,9 +801,6 @@ EOF i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; @@ -874,21 +852,21 @@ EOF exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -901,54 +879,59 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo ${UNAME_MACHINE}-unknown-linux-gnueabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -967,63 +950,54 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1227,9 +1201,6 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1256,21 +1227,19 @@ EOF exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - fi + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) @@ -1287,7 +1256,7 @@ EOF NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; - NSE-*:NONSTOP_KERNEL:*:*) + NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) @@ -1361,6 +1330,9 @@ EOF exit ;; esac +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + eval $set_cc_for_build cat >$dummy.c <<EOF #ifdef _SEQUENT_ diff --git a/config.h.in b/config.h.in index bd812ee6f..aa5692a11 100644 --- a/config.h.in +++ b/config.h.in @@ -58,12 +58,6 @@ /* Define if static plugins should be built */ #undef GST_PLUGIN_BUILD_STATIC -/* struct v4l2_buffer missing */ -#undef GST_V4L2_MISSING_BUFDECL - -/* I know the API is subject to change. */ -#undef G_UDEV_API_IS_SUBJECT_TO_CHANGE - /* Define to enable aalib ASCII Art library (used by aasink). */ #undef HAVE_AALIB @@ -137,10 +131,6 @@ */ #undef HAVE_DCGETTEXT -/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0 - if you don't. */ -#undef HAVE_DECL_V4L2_MEMORY_DMABUF - /* Define to enable DirectSound plug-in (used by directsoundsink). */ #undef HAVE_DIRECTSOUND @@ -186,7 +176,7 @@ /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT -/* Define to enable Video 4 Linux 2 (used by v4l2src). */ +/* Define to enable Video 4 Linux 2 (used by video4linux2). */ #undef HAVE_GST_V4L2 /* Whether gudev is available for device detection */ @@ -354,9 +344,6 @@ /* Define to enable X Shared Memory extension. */ #undef HAVE_XSHM -/* Define to enable X11 XVideo extensions. */ -#undef HAVE_XVIDEO - /* Define to enable zlib support for qtdemux/matroska. */ #undef HAVE_ZLIB diff --git a/config.sub b/config.sub index 9633db704..c894da455 100755 --- a/config.sub +++ b/config.sub @@ -1,18 +1,24 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2013-08-10' +timestamp='2012-02-10' -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see <http://www.gnu.org/licenses/>. @@ -20,12 +26,11 @@ timestamp='2013-08-10' # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). +# the same distribution terms that you use for the rest of that program. -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to <config-patches@gnu.org>. Submit a context +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -68,7 +73,9 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -116,7 +123,7 @@ esac maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) @@ -149,7 +156,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; @@ -218,12 +225,6 @@ case $os in -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; -lynx*) os=-lynxos ;; @@ -252,12 +253,10 @@ case $basic_machine in | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ | bfin \ - | c4x | c8051 | clipper \ + | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ @@ -268,7 +267,7 @@ case $basic_machine in | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -286,17 +285,16 @@ case $basic_machine in | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ + | nios | nios2 \ | ns16k | ns32k \ | open8 \ - | or1k | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ @@ -366,13 +364,13 @@ case $basic_machine in | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -385,8 +383,7 @@ case $basic_machine in | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -404,13 +401,12 @@ case $basic_machine in | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ @@ -786,15 +782,11 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; - microblaze*) + microblaze) basic_machine=microblaze-xilinx ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; mingw32) - basic_machine=i686-pc + basic_machine=i386-pc os=-mingw32 ;; mingw32ce) @@ -830,7 +822,7 @@ case $basic_machine in basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) - basic_machine=i686-pc + basic_machine=i386-pc os=-msys ;; mvs) @@ -1021,11 +1013,7 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) + rdos) basic_machine=i386-pc os=-rdos ;; @@ -1352,21 +1340,21 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1498,6 +1486,9 @@ case $os in -aros*) os=-aros ;; + -kaos*) + os=-kaos + ;; -zvmoe) os=-zvmoe ;; @@ -1546,12 +1537,6 @@ case $basic_machine in c4x-* | tic4x-*) os=-coff ;; - c8051-*) - os=-elf - ;; - hexagon-*) - os=-elf - ;; tic54x-*) os=-coff ;; @@ -1592,9 +1577,6 @@ case $basic_machine in mips*-*) os=-elf ;; - or1k-*) - os=-elf - ;; or32-*) os=-coff ;; diff --git a/configure b/configure index 361442afe..a4838c48f 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.2.4. +# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.3.1. # # 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.2.4' -PACKAGE_STRING='GStreamer Good Plug-ins 1.2.4' +PACKAGE_VERSION='1.3.1' +PACKAGE_STRING='GStreamer Good Plug-ins 1.3.1' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer' PACKAGE_URL='' @@ -739,8 +739,6 @@ USE_AALIB_TRUE AALIB_LIBS AALIB_CFLAGS AALIB_CONFIG -USE_XVIDEO_FALSE -USE_XVIDEO_TRUE USE_XSHM_FALSE USE_XSHM_TRUE XSHM_LIBS @@ -763,7 +761,6 @@ GUDEV_LIBS GUDEV_CFLAGS USE_GST_V4L2_FALSE USE_GST_V4L2_TRUE -XVIDEO_LIBS USE_OSX_VIDEO_FALSE USE_OSX_VIDEO_TRUE HAVE_IOS_FALSE @@ -1292,7 +1289,6 @@ with_libv4l2 enable_x with_x enable_xshm -enable_xvideo enable_aalib with_aalib_prefix with_aalib_exec_prefix @@ -1949,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.2.4 to adapt to many kinds of systems. +\`configure' configures GStreamer Good Plug-ins 1.3.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2025,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.2.4:";; + short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.3.1:";; esac cat <<\_ACEOF @@ -2118,10 +2114,9 @@ Optional Features: --disable-sunaudio disable Sun Audio: sunaudio --disable-osx_audio disable OSX audio: osxaudio --disable-osx_video disable OSX video: osxvideosink - --disable-gst_v4l2 disable Video 4 Linux 2: v4l2src + --disable-gst_v4l2 disable Video 4 Linux 2: video4linux2 --disable-x disable X libraries and plugins: ximagesrc --disable-xshm disable X Shared Memory extension - --disable-xvideo disable X11 XVideo extensions --disable-aalib disable aalib ASCII Art library: aasink --disable-aalibtest do not try to compile and run a test AALIB program --disable-cairo disable Cairo graphics rendering and gobject bindings: cairo @@ -2389,7 +2384,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GStreamer Good Plug-ins configure 1.2.4 +GStreamer Good Plug-ins configure 1.3.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3200,7 +3195,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.2.4, which was +It was created by GStreamer Good Plug-ins $as_me 1.3.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4182,7 +4177,7 @@ fi # Define the identity of the package. PACKAGE='gst-plugins-good' - VERSION='1.2.4' + VERSION='1.3.1' cat >>confdefs.h <<_ACEOF @@ -4393,9 +4388,9 @@ fi - PACKAGE_VERSION_MAJOR=$(echo 1.2.4 | cut -d'.' -f1) - PACKAGE_VERSION_MINOR=$(echo 1.2.4 | cut -d'.' -f2) - PACKAGE_VERSION_MICRO=$(echo 1.2.4 | cut -d'.' -f3) + PACKAGE_VERSION_MAJOR=$(echo 1.3.1 | cut -d'.' -f1) + PACKAGE_VERSION_MINOR=$(echo 1.3.1 | cut -d'.' -f2) + PACKAGE_VERSION_MICRO=$(echo 1.3.1 | cut -d'.' -f3) @@ -4406,7 +4401,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5 $as_echo_n "checking nano version... " >&6; } - NANO=$(echo 1.2.4 | cut -d'.' -f4) + NANO=$(echo 1.3.1 | cut -d'.' -f4) if test x"$NANO" = x || test "x$NANO" = "x0" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5 @@ -9062,10 +9057,10 @@ fi done - GST_CURRENT=204 + GST_CURRENT=301 GST_REVISION=0 - GST_AGE=204 - GST_LIBVERSION=204:0:204 + GST_AGE=301 + GST_LIBVERSION=301:0:301 @@ -13390,8 +13385,8 @@ CC="$lt_save_CC" -GST_REQ=1.2.4 -GSTPB_REQ=1.2.3 +GST_REQ=1.3.1 +GSTPB_REQ=1.3.1 @@ -15379,6 +15374,12 @@ cat >>confdefs.h <<_ACEOF _ACEOF + if test -e "${srcdir}/po/Makevars"; then + if ! grep -e "gst-plugins-good-$GST_API_VERSION" "${srcdir}/po/Makevars"; then + as_fn_error $? "DOMAIN in po/Makevars does not match GETTEXT_PACKAGE gst-plugins-good-$GST_API_VERSION" "$LINENO" 5 + fi + fi + EXP_VAR=LOCALEDIR FROM_VAR=$datadir/locale @@ -24278,17 +24279,6 @@ $as_echo "$as_me: WARNING: $GLIB_MKENUMS does not seem to work!" >&2;} - GIVEN_CFLAGS=$GLIB_CFLAGS - INCLUDE_DIRS=`echo | cpp -v 2>&1` - - INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'` - for dir in $INCLUDE_DIRS; do - GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"` - done - GLIB_CFLAGS=$GIVEN_CFLAGS - - - pkg_failed=no @@ -26392,10 +26382,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$save_CPPFLAGS" if test "X$flag_ok" = Xyes ; then - ERROR_CXXFLAGS="$ERROR_CXXFLAGS + ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f" true else - $f" + true fi @@ -26828,10 +26818,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$save_CPPFLAGS" if test "X$flag_ok" = Xyes ; then - ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS + ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS,$f" true else - $f" + true fi @@ -29703,6 +29693,30 @@ fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <AvailabilityMacros.h> + #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 + #error Too old OSX version + #endif + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + HAVE_OSX_VIDEO="yes" +else + HAVE_OSX_VIDEO="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + LIBS=$gst_check_save_LIBS LDFLAGS=$gst_check_save_LDFLAGS CFLAGS=$gst_check_save_CFLAGS @@ -29741,22 +29755,15 @@ else fi -case "$host" in - *-*darwin*) - ;; - *) - HAVE_OSX_VIDEO="no" - ;; -esac - +HAVE_GST_V4L2=no echo { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Video 4 Linux 2 ***" >&5 $as_echo "$as_me: *** checking feature: Video 4 Linux 2 ***" >&6;} -if test "xv4l2src" != "x" +if test "xvideo4linux2" != "x" then - { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: v4l2src ***" >&5 -$as_echo "$as_me: *** for plug-ins: v4l2src ***" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: video4linux2 ***" >&5 +$as_echo "$as_me: *** for plug-ins: video4linux2 ***" >&6;} fi NOUSE= if test "x$USE_GST_V4L2" = "xno"; then @@ -29775,15 +29782,15 @@ fi if test "x$NOUSE" = "xyes"; then USE_GST_V4L2="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** v4l2src pre-configured not to be built" >&5 -$as_echo "$as_me: WARNING: *** v4l2src pre-configured not to be built" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** video4linux2 pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** video4linux2 pre-configured not to be built" >&2;} fi NOUSE= if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " GST_V4L2 " > /dev/null; then USE_GST_V4L2="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** v4l2src not ported" >&5 -$as_echo "$as_me: WARNING: *** v4l2src not ported" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** video4linux2 not ported" >&5 +$as_echo "$as_me: WARNING: *** video4linux2 not ported" >&2;} fi @@ -29797,58 +29804,16 @@ if test x$USE_GST_V4L2 = xyes; then HAVE_GST_V4L2=no - { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for up to date v4l2 installation" >&5 -$as_echo_n "checking Checking for up to date v4l2 installation... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/types.h> -#ifdef __sun /* Solaris */ -#include <sys/types.h> -#include <sys/videodev2.h> -#elif __FreeBSD__ -#include <linux/videodev2.h> -#else /* Linux */ -#include <linux/types.h> -#define _LINUX_TIME_H -#define __user -#include <linux/videodev2.h> -#endif -#if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION) -#error too early v4l2 version or no v4l2 at all -#endif - -int -main () -{ - -return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - HAVE_GST_V4L2="yes" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -else - - HAVE_GST_V4L2="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - - HAVE_VIDEODEV=no - ac_fn_c_check_header_mongrel "$LINENO" "linux/videodev2.h" "ac_cv_header_linux_videodev2_h" "$ac_includes_default" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for video4linux2 header ..." >&5 +$as_echo_n "checking Checking for video4linux2 header ...... " >&6; } + ac_fn_c_check_header_mongrel "$LINENO" "linux/videodev2.h" "ac_cv_header_linux_videodev2_h" "$ac_includes_default" if test "x$ac_cv_header_linux_videodev2_h" = xyes; then : - HAVE_VIDEODEV=yes + HAVE_GST_V4L2=yes else - ac_fn_c_check_header_mongrel "$LINENO" "sys/videodev2.h" "ac_cv_header_sys_videodev2_h" "$ac_includes_default" + ac_fn_c_check_header_mongrel "$LINENO" "sys/videodev2.h" "ac_cv_header_sys_videodev2_h" "$ac_includes_default" if test "x$ac_cv_header_sys_videodev2_h" = xyes; then : - HAVE_VIDEODEV=yes + HAVE_GST_V4L2=yes fi @@ -29856,167 +29821,9 @@ fi fi - - if test "x$HAVE_VIDEODEV" = "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: video4linux2 headers were found, but they're old." >&5 -$as_echo "$as_me: WARNING: video4linux2 headers were found, but they're old." >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please update v4l2 to compile the v4l2 plugins" >&5 -$as_echo "$as_me: WARNING: Please update v4l2 to compile the v4l2 plugins" >&2;} - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: video4linux2 was not found" >&5 + if test "x$HAVE_VIDEODEV" = "xno"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: video4linux2 was not found" >&5 $as_echo "$as_me: WARNING: video4linux2 was not found" >&2;} - fi - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - if test x$HAVE_GST_V4L2 = xyes ; then - MISSING_DECL=0 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking struct v4l2_buffer declaration" >&5 -$as_echo_n "checking struct v4l2_buffer declaration... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include <sys/types.h> -#ifdef __sun /* Solaris */ -#include <sys/types.h> -#include <sys/videodev2.h> -#elif __FreeBSD__ -#include <linux/videodev2.h> -#else /* Linux */ -#include <linux/types.h> -#define _LINUX_TIME_H -#define __user -#include <linux/videodev2.h> -#endif - -int -main () -{ - -struct v4l2_buffer buf; -buf.index = 0; -return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - MISSING_DECL=1 && { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test x$MISSING_DECL = x1 ; then - -$as_echo "#define GST_V4L2_MISSING_BUFDECL 1" >>confdefs.h - - fi - - - if test x$HAVE_X = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv_pic" >&5 -$as_echo_n "checking for XvQueryExtension in -lXv_pic... " >&6; } -if ${ac_cv_lib_Xv_pic_XvQueryExtension+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXv_pic $X_LIBS -lXext $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XvQueryExtension (); -int -main () -{ -return XvQueryExtension (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xv_pic_XvQueryExtension=yes -else - ac_cv_lib_Xv_pic_XvQueryExtension=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_pic_XvQueryExtension" >&5 -$as_echo "$ac_cv_lib_Xv_pic_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = xyes; then : - HAVE_XVIDEO="yes" -else - HAVE_XVIDEO="no" -fi - - - if test x$HAVE_XVIDEO = xyes; then - XVIDEO_LIBS="-lXv_pic -lXext" - - else - if test x$HAVE_XVIDEO = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv" >&5 -$as_echo_n "checking for XvQueryExtension in -lXv... " >&6; } -if ${ac_cv_lib_Xv_XvQueryExtension+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXv $X_LIBS -lXext $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XvQueryExtension (); -int -main () -{ -return XvQueryExtension (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xv_XvQueryExtension=yes -else - ac_cv_lib_Xv_XvQueryExtension=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_XvQueryExtension" >&5 -$as_echo "$ac_cv_lib_Xv_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_XvQueryExtension" = xyes; then : - HAVE_XVIDEO="yes" -else - HAVE_XVIDEO="no" -fi - - - if test x$HAVE_XVIDEO = xyes; then - XVIDEO_LIBS="-lXv -lXext" - - fi - fi - fi - fi - fi @@ -30029,23 +29836,23 @@ fi if test x$HAVE_GST_V4L2 = xno; then USE_GST_V4L2=no else - { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: v4l2src" >&5 -$as_echo "$as_me: *** These plugins will be built: v4l2src" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: video4linux2" >&5 +$as_echo "$as_me: *** These plugins will be built: video4linux2" >&6;} fi fi if test x$USE_GST_V4L2 = xyes; then : - if test "xv4l2src" != "x"; then - GST_PLUGINS_YES="\tv4l2src\n$GST_PLUGINS_YES" + if test "xvideo4linux2" != "x"; then + GST_PLUGINS_YES="\tvideo4linux2\n$GST_PLUGINS_YES" fi $as_echo "#define HAVE_GST_V4L2 /**/" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: v4l2src" >&5 -$as_echo "$as_me: *** These plugins will not be built: v4l2src" >&6;} - if test "xv4l2src" != "x"; then - GST_PLUGINS_NO="\tv4l2src\n$GST_PLUGINS_NO" + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: video4linux2" >&5 +$as_echo "$as_me: *** These plugins will not be built: video4linux2" >&6;} + if test "xvideo4linux2" != "x"; then + GST_PLUGINS_NO="\tvideo4linux2\n$GST_PLUGINS_NO" fi : fi @@ -30080,12 +29887,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_GUDEV_CFLAGS="$GUDEV_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" gudev-1.0 >= 143 \""; } >&5 - ($PKG_CONFIG --exists --print-errors " gudev-1.0 >= 143 ") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" gudev-1.0 >= 147 \""; } >&5 + ($PKG_CONFIG --exists --print-errors " gudev-1.0 >= 147 ") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GUDEV_CFLAGS=`$PKG_CONFIG --cflags " gudev-1.0 >= 143 " 2>/dev/null` + pkg_cv_GUDEV_CFLAGS=`$PKG_CONFIG --cflags " gudev-1.0 >= 147 " 2>/dev/null` else pkg_failed=yes fi @@ -30098,12 +29905,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_GUDEV_LIBS="$GUDEV_LIBS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" gudev-1.0 >= 143 \""; } >&5 - ($PKG_CONFIG --exists --print-errors " gudev-1.0 >= 143 ") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" gudev-1.0 >= 147 \""; } >&5 + ($PKG_CONFIG --exists --print-errors " gudev-1.0 >= 147 ") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GUDEV_LIBS=`$PKG_CONFIG --libs " gudev-1.0 >= 143 " 2>/dev/null` + pkg_cv_GUDEV_LIBS=`$PKG_CONFIG --libs " gudev-1.0 >= 147 " 2>/dev/null` else pkg_failed=yes fi @@ -30122,43 +29929,34 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GUDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " gudev-1.0 >= 143 "` + GUDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " gudev-1.0 >= 147 "` else - GUDEV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " gudev-1.0 >= 143 "` + GUDEV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " gudev-1.0 >= 147 "` fi # Put the nasty error message in config.log where it belongs echo "$GUDEV_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - - have_gudev=no - + true elif test $pkg_failed = untried; then - - have_gudev=no - + true else GUDEV_CFLAGS=$pkg_cv_GUDEV_CFLAGS GUDEV_LIBS=$pkg_cv_GUDEV_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - have_gudev=yes $as_echo "#define HAVE_GUDEV 1" >>confdefs.h -$as_echo "#define G_UDEV_API_IS_SUBJECT_TO_CHANGE 1" >>confdefs.h - - fi - else - have_gudev=no fi fi + # Make libv4l2 non-automagic # Check whether --with-libv4l2 was given. @@ -30254,35 +30052,6 @@ fi fi fi -# Check if v4l2 support dmabuf -if test x$HAVE_GST_V4L2 = xyes; then - ac_fn_c_check_decl "$LINENO" "V4L2_MEMORY_DMABUF" "ac_cv_have_decl_V4L2_MEMORY_DMABUF" " - #include <sys/types.h> - #ifdef __sun /* Solaris */ - #include <sys/types.h> - #include <sys/videodev2.h> - #elif __FreeBSD__ - #include <linux/videodev2.h> - #else /* Linux */ - #include <linux/types.h> - #define _LINUX_TIME_H - #define __user - #include <linux/videodev2.h> - #endif - -" -if test "x$ac_cv_have_decl_V4L2_MEMORY_DMABUF" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_V4L2_MEMORY_DMABUF $ac_have_decl -_ACEOF - -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } @@ -31419,193 +31188,6 @@ fi -echo -{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: X11 XVideo extensions ***" >&5 -$as_echo "$as_me: *** checking feature: X11 XVideo extensions ***" >&6;} -if test "x" != "x" -then - { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: ***" >&5 -$as_echo "$as_me: *** for plug-ins: ***" >&6;} -fi -NOUSE= -if test "x$USE_XVIDEO" = "xno"; then - NOUSE="yes" -fi -# Check whether --enable-xvideo was given. -if test "${enable_xvideo+set}" = set; then : - enableval=$enable_xvideo; case "${enableval}" in - yes) USE_XVIDEO=yes;; - no) USE_XVIDEO=no;; - *) as_fn_error $? "bad value ${enableval} for --enable-xvideo" "$LINENO" 5 ;; - esac -else - USE_XVIDEO=yes -fi - -if test "x$NOUSE" = "xyes"; then - USE_XVIDEO="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** pre-configured not to be built" >&5 -$as_echo "$as_me: WARNING: *** pre-configured not to be built" >&2;} -fi -NOUSE= - -if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " XVIDEO " > /dev/null; then - USE_XVIDEO="no" - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** not ported" >&5 -$as_echo "$as_me: WARNING: *** not ported" >&2;} -fi - - -if test x$USE_XVIDEO = xyes; then - - gst_check_save_LIBS=$LIBS - gst_check_save_LDFLAGS=$LDFLAGS - gst_check_save_CFLAGS=$CFLAGS - gst_check_save_CPPFLAGS=$CPPFLAGS - gst_check_save_CXXFLAGS=$CXXFLAGS - - HAVE_XVIDEO=no - - - if test x$HAVE_X = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv_pic" >&5 -$as_echo_n "checking for XvQueryExtension in -lXv_pic... " >&6; } -if ${ac_cv_lib_Xv_pic_XvQueryExtension+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXv_pic $X_LIBS -lXext $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XvQueryExtension (); -int -main () -{ -return XvQueryExtension (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xv_pic_XvQueryExtension=yes -else - ac_cv_lib_Xv_pic_XvQueryExtension=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_pic_XvQueryExtension" >&5 -$as_echo "$ac_cv_lib_Xv_pic_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_pic_XvQueryExtension" = xyes; then : - HAVE_XVIDEO="yes" -else - HAVE_XVIDEO="no" -fi - - - if test x$HAVE_XVIDEO = xyes; then - XVIDEO_LIBS="-lXv_pic -lXext" - - else - if test x$HAVE_XVIDEO = xno; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XvQueryExtension in -lXv" >&5 -$as_echo_n "checking for XvQueryExtension in -lXv... " >&6; } -if ${ac_cv_lib_Xv_XvQueryExtension+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lXv $X_LIBS -lXext $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XvQueryExtension (); -int -main () -{ -return XvQueryExtension (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_Xv_XvQueryExtension=yes -else - ac_cv_lib_Xv_XvQueryExtension=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xv_XvQueryExtension" >&5 -$as_echo "$ac_cv_lib_Xv_XvQueryExtension" >&6; } -if test "x$ac_cv_lib_Xv_XvQueryExtension" = xyes; then : - HAVE_XVIDEO="yes" -else - HAVE_XVIDEO="no" -fi - - - if test x$HAVE_XVIDEO = xyes; then - XVIDEO_LIBS="-lXv -lXext" - - fi - fi - fi - fi - - - - LIBS=$gst_check_save_LIBS - LDFLAGS=$gst_check_save_LDFLAGS - CFLAGS=$gst_check_save_CFLAGS - CPPFLAGS=$gst_check_save_CPPFLAGS - CXXFLAGS=$gst_check_save_CXXFLAGS - - if test x$HAVE_XVIDEO = xno; then - USE_XVIDEO=no - else - : - fi -fi -if test x$USE_XVIDEO = xyes; then - : - if test "x" != "x"; then - GST_PLUGINS_YES="\t\n$GST_PLUGINS_YES" - fi - -$as_echo "#define HAVE_XVIDEO /**/" >>confdefs.h - -else - : - if test "x" != "x"; then - GST_PLUGINS_NO="\t\n$GST_PLUGINS_NO" - fi - : -fi - if test x$USE_XVIDEO = xyes; then - USE_XVIDEO_TRUE= - USE_XVIDEO_FALSE='#' -else - USE_XVIDEO_TRUE='#' - USE_XVIDEO_FALSE= -fi - - - if test "x$BUILD_EXTERNAL" = "xyes"; then @@ -31904,16 +31486,6 @@ rm -f core conftest.err conftest.$ac_objext \ rm -f conf.aalibtest - GIVEN_CFLAGS=$AALIB_CFLAGS - INCLUDE_DIRS=`echo | cpp -v 2>&1` - - INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'` - for dir in $INCLUDE_DIRS; do - GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"` - done - AALIB_CFLAGS=$GIVEN_CFLAGS - - LIBS=$gst_check_save_LIBS LDFLAGS=$gst_check_save_LDFLAGS @@ -34701,12 +34273,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_SOUP_CFLAGS="$SOUP_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.38\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.38") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.40\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.40") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.4 >= 2.38" 2>/dev/null` + pkg_cv_SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.4 >= 2.40" 2>/dev/null` else pkg_failed=yes fi @@ -34719,12 +34291,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_SOUP_LIBS="$SOUP_LIBS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.38\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.38") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4 >= 2.40\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libsoup-2.4 >= 2.40") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.4 >= 2.38" 2>/dev/null` + pkg_cv_SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.4 >= 2.40" 2>/dev/null` else pkg_failed=yes fi @@ -34743,9 +34315,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - SOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libsoup-2.4 >= 2.38"` + SOUP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libsoup-2.4 >= 2.40"` else - SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.4 >= 2.38"` + SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.4 >= 2.40"` fi # Put the nasty error message in config.log where it belongs echo "$SOUP_PKG_ERRORS" >&5 @@ -36483,14 +36055,6 @@ else USE_GDK_PIXBUF_FALSE= fi - if false; then - USE_GST_V4L2_TRUE= - USE_GST_V4L2_FALSE='#' -else - USE_GST_V4L2_TRUE='#' - USE_GST_V4L2_FALSE= -fi - if false; then USE_JACK_TRUE= USE_JACK_FALSE='#' @@ -36659,14 +36223,6 @@ else USE_XSHM_FALSE= fi - if false; then - USE_XVIDEO_TRUE= - USE_XVIDEO_FALSE='#' -else - USE_XVIDEO_TRUE='#' - USE_XVIDEO_FALSE= -fi - if false; then USE_ZLIB_TRUE= USE_ZLIB_FALSE='#' @@ -37270,10 +36826,6 @@ if test -z "${USE_XSHM_TRUE}" && test -z "${USE_XSHM_FALSE}"; then as_fn_error $? "conditional \"USE_XSHM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${USE_XVIDEO_TRUE}" && test -z "${USE_XVIDEO_FALSE}"; then - as_fn_error $? "conditional \"USE_XVIDEO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${USE_AALIB_TRUE}" && test -z "${USE_AALIB_FALSE}"; then as_fn_error $? "conditional \"USE_AALIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37382,10 +36934,6 @@ if test -z "${USE_GDK_PIXBUF_TRUE}" && test -z "${USE_GDK_PIXBUF_FALSE}"; then as_fn_error $? "conditional \"USE_GDK_PIXBUF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${USE_GST_V4L2_TRUE}" && test -z "${USE_GST_V4L2_FALSE}"; then - as_fn_error $? "conditional \"USE_GST_V4L2\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${USE_JACK_TRUE}" && test -z "${USE_JACK_FALSE}"; then as_fn_error $? "conditional \"USE_JACK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37470,10 +37018,6 @@ if test -z "${USE_XSHM_TRUE}" && test -z "${USE_XSHM_FALSE}"; then as_fn_error $? "conditional \"USE_XSHM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${USE_XVIDEO_TRUE}" && test -z "${USE_XVIDEO_FALSE}"; then - as_fn_error $? "conditional \"USE_XVIDEO\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${USE_ZLIB_TRUE}" && test -z "${USE_ZLIB_FALSE}"; then as_fn_error $? "conditional \"USE_ZLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -37875,7 +37419,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.2.4, which was +This file was extended by GStreamer Good Plug-ins $as_me 1.3.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -37941,7 +37485,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.2.4 +GStreamer Good Plug-ins config.status 1.3.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index bfaadb3d0..b31be2abc 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.2.4],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good]) +AC_INIT([GStreamer Good Plug-ins],[1.3.1],[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, 204, 0, 204) +AS_LIBTOOL(GST, 301, 0, 301) dnl *** required versions of GStreamer stuff *** -GST_REQ=1.2.4 -GSTPB_REQ=1.2.3 +GST_REQ=1.3.1 +GSTPB_REQ=1.3.1 dnl *** autotools stuff **** @@ -486,91 +486,30 @@ translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true) HAVE_OSX_VIDEO="no" AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosink, [ AC_CHECK_HEADER(OpenGL/gl.h, HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no") -]) -dnl in case header OpenGL/gl.h is found on other platforms -case "$host" in - *-*darwin*) - dnl do nothing - ;; - *) - HAVE_OSX_VIDEO="no" - ;; -esac + dnl in case header OpenGL/gl.h is found on other platforms (or older, unsupported OS X) + dnl also require Snow Leopard or newer + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include <AvailabilityMacros.h> + #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 + #error Too old OSX version + #endif + ]], [[return 0;]])],[HAVE_OSX_VIDEO="yes"],[HAVE_OSX_VIDEO="no"]) +]) dnl *** Video 4 Linux 2 *** -dnl for information about the header/define, see sys/v4l2/gstv4l2element.h dnl renamed to GST_V4L2 because of some conflict with kernel headers translit(dnm, m, l) AM_CONDITIONAL(USE_GST_V4L2, true) -AG_GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], v4l2src, [ - AC_MSG_CHECKING([Checking for up to date v4l2 installation]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include <sys/types.h> -#ifdef __sun /* Solaris */ -#include <sys/types.h> -#include <sys/videodev2.h> -#elif __FreeBSD__ -#include <linux/videodev2.h> -#else /* Linux */ -#include <linux/types.h> -#define _LINUX_TIME_H -#define __user -#include <linux/videodev2.h> -#endif -#if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION) -#error too early v4l2 version or no v4l2 at all -#endif - ]], [[ -return 0; - ]])],[ - HAVE_GST_V4L2="yes" - AC_MSG_RESULT(yes) - ],[ - HAVE_GST_V4L2="no" - AC_MSG_RESULT(no) - - HAVE_VIDEODEV=no - AC_CHECK_HEADER(linux/videodev2.h, [ HAVE_VIDEODEV=yes ], - [ - AC_CHECK_HEADER(sys/videodev2.h, [ HAVE_VIDEODEV=yes ]) - ]) - - if test "x$HAVE_VIDEODEV" = "xyes"; then - AC_MSG_WARN([video4linux2 headers were found, but they're old.]) - AC_MSG_WARN([Please update v4l2 to compile the v4l2 plugins]) - else - AC_MSG_WARN([video4linux2 was not found]) - fi - ]) - - if [ test x$HAVE_GST_V4L2 = xyes ]; then - dnl check for missing v4l2_buffer declaration (see #135919) - MISSING_DECL=0 - AC_MSG_CHECKING(struct v4l2_buffer declaration) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include <sys/types.h> -#ifdef __sun /* Solaris */ -#include <sys/types.h> -#include <sys/videodev2.h> -#elif __FreeBSD__ -#include <linux/videodev2.h> -#else /* Linux */ -#include <linux/types.h> -#define _LINUX_TIME_H -#define __user -#include <linux/videodev2.h> -#endif - ]], [[ -struct v4l2_buffer buf; -buf.index = 0; -return 0; - ]])],[ AC_MSG_RESULT(yes) ],[ MISSING_DECL=1 && AC_MSG_RESULT(no) ]) - if [ test x$MISSING_DECL = x1 ]; then - AC_DEFINE(GST_V4L2_MISSING_BUFDECL, 1, [struct v4l2_buffer missing]) - fi - - dnl check for XOverlay libraries - AG_GST_CHECK_XV +HAVE_GST_V4L2=no +AG_GST_CHECK_FEATURE(GST_V4L2, [Video 4 Linux 2], video4linux2, [ + AC_MSG_CHECKING([Checking for video4linux2 header ...]) + AC_CHECK_HEADER(linux/videodev2.h, [ HAVE_GST_V4L2=yes ], + [ + AC_CHECK_HEADER(sys/videodev2.h, [ HAVE_GST_V4L2=yes ]) + ]) + if test "x$HAVE_VIDEODEV" = "xno"; then + AC_MSG_WARN([video4linux2 was not found]) fi ]) @@ -581,18 +520,14 @@ AC_ARG_WITH([gudev], [with_gudev=check]) if test x$HAVE_GST_V4L2 = xyes; then if test x$with_gudev != xno; then - PKG_CHECK_MODULES(GUDEV, [ gudev-1.0 >= 143 ], - [ have_gudev=yes - AC_DEFINE(HAVE_GUDEV, 1, - [Whether gudev is available for device detection]) - AC_DEFINE([G_UDEV_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.]) - ], [ - have_gudev=no - ]) - else - have_gudev=no + PKG_CHECK_MODULES(GUDEV, [ gudev-1.0 >= 147 ], + [ AC_DEFINE(HAVE_GUDEV, 1, + [Whether gudev is available for device detection]) + ], + [true]) fi fi + AC_SUBST(GUDEV_CFLAGS) AC_SUBST(GUDEV_LIBS) @@ -615,24 +550,6 @@ if test x$HAVE_GST_V4L2 = xyes; then fi fi -# Check if v4l2 support dmabuf -if test x$HAVE_GST_V4L2 = xyes; then - AC_CHECK_DECLS(V4L2_MEMORY_DMABUF,,,[ - #include <sys/types.h> - #ifdef __sun /* Solaris */ - #include <sys/types.h> - #include <sys/videodev2.h> - #elif __FreeBSD__ - #include <linux/videodev2.h> - #else /* Linux */ - #include <linux/types.h> - #define _LINUX_TIME_H - #define __user - #include <linux/videodev2.h> - #endif - ]) -fi - dnl Check for X11 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true) AG_GST_CHECK_FEATURE(X, [X libraries and plugins], @@ -708,13 +625,6 @@ AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [ AC_SUBST(XSHM_LIBS) ]) -dnl for V4L2, we also need to know if we have XVIDEO -translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true) -AG_GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], - [], [ - AG_GST_CHECK_XV -]) - dnl *** ext plug-ins *** dnl keep this list sorted alphabetically ! @@ -728,7 +638,6 @@ dnl *** aalib *** translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true) AG_GST_CHECK_FEATURE(AALIB, [aalib ASCII Art library], aasink, [ AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no) - AS_SCRUB_INCLUDE(AALIB_CFLAGS) ]) dnl *** cairo *** @@ -875,7 +784,7 @@ AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [ dnl *** soup *** translit(dnm, m, l) AM_CONDITIONAL(USE_SOUP, true) AG_GST_CHECK_FEATURE(SOUP, [soup http client plugin (2.4)], souphttpsrc, [ - PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.38, [HAVE_SOUP="yes"], [HAVE_SOUP="no"]) + PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.40, [HAVE_SOUP="yes"], [HAVE_SOUP="no"]) AC_SUBST(SOUP_CFLAGS) AC_SUBST(SOUP_LIBS) ]) @@ -1031,7 +940,6 @@ AM_CONDITIONAL(USE_DIRECTSOUND, false) AM_CONDITIONAL(USE_DV1394, false) AM_CONDITIONAL(USE_FLAC, false) AM_CONDITIONAL(USE_GDK_PIXBUF, false) -AM_CONDITIONAL(USE_GST_V4L2, false) AM_CONDITIONAL(USE_JACK, false) AM_CONDITIONAL(USE_JPEG, false) AM_CONDITIONAL(USE_LIBCACA, false) @@ -1053,7 +961,6 @@ AM_CONDITIONAL(USE_WAVEFORM, false) AM_CONDITIONAL(USE_WAVPACK, false) AM_CONDITIONAL(USE_X, false) AM_CONDITIONAL(USE_XSHM, false) -AM_CONDITIONAL(USE_XVIDEO, false) AM_CONDITIONAL(USE_ZLIB, false) fi dnl of EXT plugins diff --git a/depcomp b/depcomp index 4ebd5b3a2..bd0ac0895 100755 --- a/depcomp +++ b/depcomp @@ -1,9 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2011-12-04.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -27,9 +28,9 @@ scriptversion=2013-05-30.07; # UTC case $1 in '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -39,8 +40,8 @@ as side-effects. Environment variables: depmode Dependency tracking mode. - source Source file read by 'PROGRAMS ARGS'. - object Object file output by 'PROGRAMS ARGS'. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. @@ -56,66 +57,6 @@ EOF ;; esac -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} - if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 @@ -128,9 +69,6 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" -# Avoid interferences from the environment. -gccflag= dashmflag= - # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -142,32 +80,26 @@ if test "$depmode" = hp; then fi if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 fi case "$depmode" in @@ -190,7 +122,8 @@ gcc3) done "$@" stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi @@ -198,17 +131,13 @@ gcc3) ;; gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. +## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -216,31 +145,33 @@ gcc) fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" - # The second -e expression handles DOS-style file names with drive - # letters. + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. +## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. -## Some versions of gcc put a space before the ':'. On the theory + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -258,7 +189,8 @@ sgi) "$@" -MDupdate "$tmpdepfile" fi stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi @@ -266,41 +198,43 @@ sgi) if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like '#:fec' to the end of the + # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> "$depfile" echo >> "$depfile" + # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" else - make_dummy_depfile + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; -xlc) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts '$object:' at the + # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - set_dir_from "$object" - set_base_from "$object" + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u @@ -313,7 +247,9 @@ aix) "$@" -M fi stat=$? - if test $stat -ne 0; then + + if test $stat -eq 0; then : + else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi @@ -322,100 +258,44 @@ aix) do test -f "$tmpdepfile" && break done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : + # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - if test $stat -ne 0; then + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi @@ -427,8 +307,8 @@ pgcc) sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ - | sed -e 's/$/ :/' >> "$depfile" + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -439,8 +319,9 @@ hp2) # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. - set_dir_from "$object" - set_base_from "$object" + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d @@ -451,7 +332,8 @@ hp2) "$@" +Maked fi stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi @@ -461,61 +343,77 @@ hp2) test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else - make_dummy_depfile + echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool generates 2 separate objects for the 2 libraries. These - # two compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; msvc7) if test "$libtool" = yes; then @@ -526,7 +424,8 @@ msvc7) "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then + if test "$stat" = 0; then : + else rm -f "$tmpdepfile" exit $stat fi @@ -544,15 +443,14 @@ msvc7) p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p +s/\(.*\)/ \1 \\/p s/.\(.*\) \\/\1:/ H $ { - s/.*/'"$tab"'/ + s/.*/ / G p }' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; @@ -580,7 +478,7 @@ dashmstdout) shift fi - # Remove '-o $object'. + # Remove `-o $object'. IFS=" " for arg do @@ -600,18 +498,18 @@ dashmstdout) done test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for ':' + # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -664,12 +562,11 @@ makedepend) # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; @@ -686,7 +583,7 @@ cpp) shift fi - # Remove '-o $object'. + # Remove `-o $object'. IFS=" " for arg do @@ -705,10 +602,10 @@ cpp) esac done - "$@" -E \ - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - | sed '$ s: \\$::' > "$tmpdepfile" + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" @@ -740,23 +637,23 @@ msvisualcpp) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; + set fnord "$@" + shift + shift + ;; *) - set fnord "$@" "$arg" - shift - shift - ;; + set fnord "$@" "$arg" + shift + shift + ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; diff --git a/docs/Makefile.am b/docs/Makefile.am index 10847b58e..8ff41fee1 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,8 +1,12 @@ +if ENABLE_GTK_DOC if ENABLE_PLUGIN_DOCS PLUGIN_DOCS_DIRS = plugins else PLUGIN_DOCS_DIRS = endif +else +PLUGIN_DOCS_DIRS = plugins +endif SUBDIRS = $(PLUGIN_DOCS_DIRS) DIST_SUBDIRS = plugins diff --git a/docs/Makefile.in b/docs/Makefile.in index 7773f245e..d59161f66 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -87,7 +87,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -103,7 +102,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -460,7 +458,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -529,8 +526,9 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -@ENABLE_PLUGIN_DOCS_FALSE@PLUGIN_DOCS_DIRS = -@ENABLE_PLUGIN_DOCS_TRUE@PLUGIN_DOCS_DIRS = plugins +@ENABLE_GTK_DOC_FALSE@PLUGIN_DOCS_DIRS = plugins +@ENABLE_GTK_DOC_TRUE@@ENABLE_PLUGIN_DOCS_FALSE@PLUGIN_DOCS_DIRS = +@ENABLE_GTK_DOC_TRUE@@ENABLE_PLUGIN_DOCS_TRUE@PLUGIN_DOCS_DIRS = plugins SUBDIRS = $(PLUGIN_DOCS_DIRS) DIST_SUBDIRS = plugins EXTRA_DIST = \ diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am index 379074c0d..7c125adff 100644 --- a/docs/plugins/Makefile.am +++ b/docs/plugins/Makefile.am @@ -69,6 +69,7 @@ EXTRA_HFILES = \ $(top_srcdir)/ext/libpng/gstpngenc.h \ $(top_srcdir)/ext/raw1394/gstdv1394src.h \ $(top_srcdir)/ext/raw1394/gsthdv1394src.h \ + $(top_srcdir)/ext/shout2/gstshout2.h \ $(top_srcdir)/ext/soup/gstsouphttpsrc.h \ $(top_srcdir)/ext/taglib/gstapev2mux.h \ $(top_srcdir)/ext/taglib/gstid3v2mux.h \ @@ -173,6 +174,8 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/rtpmanager/gstrtpssrcdemux.h \ $(top_srcdir)/gst/rtpmanager/gstrtpmux.h \ $(top_srcdir)/gst/rtpmanager/gstrtpdtmfmux.h \ + $(top_srcdir)/gst/rtpmanager/gstrtprtxsend.h \ + $(top_srcdir)/gst/rtpmanager/gstrtprtxreceive.h \ $(top_srcdir)/gst/rtsp/gstrtpdec.h \ $(top_srcdir)/gst/rtsp/gstrtspsrc.h \ $(top_srcdir)/gst/shapewipe/gstshapewipe.h \ diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in index f459f3db4..55dbc256b 100644 --- a/docs/plugins/Makefile.in +++ b/docs/plugins/Makefile.in @@ -105,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -121,7 +120,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -419,7 +417,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -562,6 +559,7 @@ EXTRA_HFILES = \ $(top_srcdir)/ext/libpng/gstpngenc.h \ $(top_srcdir)/ext/raw1394/gstdv1394src.h \ $(top_srcdir)/ext/raw1394/gsthdv1394src.h \ + $(top_srcdir)/ext/shout2/gstshout2.h \ $(top_srcdir)/ext/soup/gstsouphttpsrc.h \ $(top_srcdir)/ext/taglib/gstapev2mux.h \ $(top_srcdir)/ext/taglib/gstid3v2mux.h \ @@ -666,6 +664,8 @@ EXTRA_HFILES = \ $(top_srcdir)/gst/rtpmanager/gstrtpssrcdemux.h \ $(top_srcdir)/gst/rtpmanager/gstrtpmux.h \ $(top_srcdir)/gst/rtpmanager/gstrtpdtmfmux.h \ + $(top_srcdir)/gst/rtpmanager/gstrtprtxsend.h \ + $(top_srcdir)/gst/rtpmanager/gstrtprtxreceive.h \ $(top_srcdir)/gst/rtsp/gstrtpdec.h \ $(top_srcdir)/gst/rtsp/gstrtspsrc.h \ $(top_srcdir)/gst/shapewipe/gstshapewipe.h \ diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml index 148c6390a..d48bf00e1 100644 --- a/docs/plugins/gst-plugins-good-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml @@ -148,10 +148,13 @@ <xi:include href="xml/element-rtpptdemux.xml" /> <xi:include href="xml/element-rtpsession.xml" /> <xi:include href="xml/element-rtpssrcdemux.xml" /> + <xi:include href="xml/element-rtprtxsend.xml" /> + <xi:include href="xml/element-rtprtxreceive.xml" /> <xi:include href="xml/element-sbcparse.xml" /> <xi:include href="xml/element-scaletempo.xml" /> <xi:include href="xml/element-shagadelictv.xml" /> <xi:include href="xml/element-shapewipe.xml" /> + <xi:include href="xml/element-shout2send.xml" /> <xi:include href="xml/element-smpte.xml" /> <xi:include href="xml/element-smptealpha.xml" /> <xi:include href="xml/element-souphttpsrc.xml" /> diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt index 86ecacb56..807f4b39c 100644 --- a/docs/plugins/gst-plugins-good-plugins-sections.txt +++ b/docs/plugins/gst-plugins-good-plugins-sections.txt @@ -976,6 +976,34 @@ GST_RTP_SSRC_DEMUX_CLASS GST_IS_RTP_SSRC_DEMUX_CLASS </SECTION> +<SECTION> +<FILE>element-rtprtxsend</FILE> +<TITLE>rtprtxsend</TITLE> +GstRtpRtxSend +<SUBSECTION Standard> +GstRtpRtxSendClass +GST_RTP_RTX_SEND +GST_IS_RTP_RTX_SEND +GST_TYPE_RTP_RTX_SEND +gst_rtp_rtx_send_get_type +GST_RTP_RTX_SEND_CLASS +GST_IS_RTP_RTX_SEND_CLASS +</SECTION> + +<SECTION> +<FILE>element-rtprtxreceive</FILE> +<TITLE>rtprtxreceive</TITLE> +GstRtpRtxReceive +<SUBSECTION Standard> +GstRtpRtxReceiveClass +GST_RTP_RTX_RECEIVE +GST_IS_RTP_RTX_RECEIVE +GST_TYPE_RTP_RTX_RECEIVE +gst_rtp_rtx_receive_get_type +GST_RTP_RTX_RECEIVE_CLASS +GST_IS_RTP_RTX_RECEIVE_CLASS +</SECTION> + <SECTION> <FILE>element-icydemux</FILE> <TITLE>icydemux</TITLE> @@ -1843,6 +1871,20 @@ GST_TYPE_SHAPE_WIPE gst_shape_wipe_get_type </SECTION> +<SECTION> +<FILE>element-shout2send</FILE> +<TITLE>shout2send</TITLE> +GstShout2send +<SUBSECTION Standard> +GstShout2sendClass +GST_SHOUT2SEND +GST_SHOUT2SEND_CLASS +GST_IS_SHOUT2SEND +GST_IS_SHOUT2SEND_CLASS +GST_TYPE_SHOUT2SEND +gst_shout2send_get_type +</SECTION> + <SECTION> <FILE>element-smpte</FILE> <TITLE>smpte</TITLE> diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args index bfbf46220..8e17826f7 100644 --- a/docs/plugins/gst-plugins-good-plugins.args +++ b/docs/plugins/gst-plugins-good-plugins.args @@ -988,6 +988,16 @@ <DEFAULT></DEFAULT> </ARG> +<ARG> +<NAME>GstRTSPSrc::tls-database</NAME> +<TYPE>GTlsDatabase*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>TLS database</NICK> +<BLURB>TLS database with anchor certificate authorities used to validate the server certificate.</BLURB> +<DEFAULT></DEFAULT> +</ARG> + <ARG> <NAME>GstRTSPSrc::tls-validation-flags</NAME> <TYPE>GTlsCertificateFlags</TYPE> @@ -1274,7 +1284,7 @@ <RANGE></RANGE> <FLAGS>rw</FLAGS> <NICK>ip</NICK> -<BLURB>ip.</BLURB> +<BLURB>IP address or hostname.</BLURB> <DEFAULT>"127.0.0.1"</DEFAULT> </ARG> @@ -1344,7 +1354,7 @@ <RANGE></RANGE> <FLAGS>rw</FLAGS> <NICK>url</NICK> -<BLURB>url.</BLURB> +<BLURB>the stream's homepage URL.</BLURB> <DEFAULT>""</DEFAULT> </ARG> @@ -2442,7 +2452,7 @@ <NAME>GstVideoFlip::method</NAME> <TYPE>GstVideoFlipMethod</TYPE> <RANGE></RANGE> -<FLAGS>rw</FLAGS> +<FLAGS>rwx</FLAGS> <NICK>method</NICK> <BLURB>method.</BLURB> <DEFAULT>Identity (no rotation)</DEFAULT> @@ -3224,7 +3234,7 @@ <RANGE>>= G_MAXULONG</RANGE> <FLAGS>rw</FLAGS> <NICK>Maximum Consecutive Decoding Errors</NICK> -<BLURB>Error out after receiving N consecutive decoding errors (-1 = never fail, 0 = automatic, 1 = fail on first error).</BLURB> +<BLURB>(Deprecated) Error out after receiving N consecutive decoding errors (-1 = never fail, 0 = automatic, 1 = fail on first error).</BLURB> <DEFAULT>0</DEFAULT> </ARG> @@ -4175,7 +4185,77 @@ <FLAGS>rw</FLAGS> <NICK>timeout</NICK> <BLURB>Value in seconds to timeout a blocking I/O (0 = No timeout).</BLURB> -<DEFAULT>0</DEFAULT> +<DEFAULT>15</DEFAULT> +</ARG> + +<ARG> +<NAME>GstSoupHTTPSrc::compress</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Compress</NICK> +<BLURB>Allow compressed content encodings.</BLURB> +<DEFAULT>FALSE</DEFAULT> +</ARG> + +<ARG> +<NAME>GstSoupHTTPSrc::http-log-level</NAME> +<TYPE>SoupLoggerLogLevel</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>HTTP log level</NICK> +<BLURB>Set log level for soup's HTTP session log.</BLURB> +<DEFAULT>SOUP_LOGGER_LOG_HEADERS</DEFAULT> +</ARG> + +<ARG> +<NAME>GstSoupHTTPSrc::keep-alive</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>keep-alive</NICK> +<BLURB>Use HTTP persistent connections.</BLURB> +<DEFAULT>FALSE</DEFAULT> +</ARG> + +<ARG> +<NAME>GstSoupHTTPSrc::retries</NAME> +<TYPE>gint</TYPE> +<RANGE>>= G_MAXULONG</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Retries</NICK> +<BLURB>Maximum number of retries until giving up (-1=infinite).</BLURB> +<DEFAULT>3</DEFAULT> +</ARG> + +<ARG> +<NAME>GstSoupHTTPSrc::ssl-ca-file</NAME> +<TYPE>gchar*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>SSL CA File</NICK> +<BLURB>Location of a SSL anchor CA file to use.</BLURB> +<DEFAULT>NULL</DEFAULT> +</ARG> + +<ARG> +<NAME>GstSoupHTTPSrc::ssl-strict</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>SSL Strict</NICK> +<BLURB>Strict SSL certificate checking.</BLURB> +<DEFAULT>TRUE</DEFAULT> +</ARG> + +<ARG> +<NAME>GstSoupHTTPSrc::ssl-use-system-ca-file</NAME> +<TYPE>gboolean</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Use System CA File</NICK> +<BLURB>Use system CA file.</BLURB> +<DEFAULT>TRUE</DEFAULT> </ARG> <ARG> @@ -21345,7 +21425,7 @@ <FLAGS>rw</FLAGS> <NICK>RTX Delay</NICK> <BLURB>Extra time in ms to wait before sending retransmission event (-1 automatic).</BLURB> -<DEFAULT>20</DEFAULT> +<DEFAULT>-1</DEFAULT> </ARG> <ARG> @@ -21365,7 +21445,7 @@ <FLAGS>rw</FLAGS> <NICK>RTX Retry Period</NICK> <BLURB>Try to get a retransmission for this many ms (-1 automatic).</BLURB> -<DEFAULT>160</DEFAULT> +<DEFAULT>-1</DEFAULT> </ARG> <ARG> @@ -21375,7 +21455,17 @@ <FLAGS>rw</FLAGS> <NICK>RTX Retry Timeout</NICK> <BLURB>Retry sending a transmission event after this timeout in ms (-1 automatic).</BLURB> -<DEFAULT>40</DEFAULT> +<DEFAULT>-1</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpJitterBuffer::stats</NAME> +<TYPE>GstStructure*</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Statistics</NICK> +<BLURB>Various statistics.</BLURB> +<DEFAULT></DEFAULT> </ARG> <ARG> @@ -21498,6 +21588,136 @@ <DEFAULT>2</DEFAULT> </ARG> +<ARG> +<NAME>GstRtpSession::stats</NAME> +<TYPE>GstStructure*</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Statistics</NICK> +<BLURB>Various statistics.</BLURB> +<DEFAULT></DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxSend::rtx-payload-type</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>RTX Payload Type</NICK> +<BLURB>Payload type of the retransmission stream (fmtp in SDP).</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxSend::max-size-time</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Max Size Time</NICK> +<BLURB>Amount of ms to queue (0 = unlimited).</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxSend::max-size-packets</NAME> +<TYPE>guint</TYPE> +<RANGE><= 32767</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Max Size Packets</NICK> +<BLURB>Amount of packets to queue (0 = unlimited).</BLURB> +<DEFAULT>100</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxSend::num-rtx-requests</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Num RTX Requests</NICK> +<BLURB>Number of retransmission events received.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxSend::num-rtx-packets</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Num RTX Packets</NICK> +<BLURB> Number of retransmission packets sent.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxSend::payload-type-map</NAME> +<TYPE>GstStructure*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Payload Type Map</NICK> +<BLURB>Map of original payload types to their retransmission payload types.</BLURB> +<DEFAULT></DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxSend::ssrc-map</NAME> +<TYPE>GstStructure*</TYPE> +<RANGE></RANGE> +<FLAGS>w</FLAGS> +<NICK>SSRC Map</NICK> +<BLURB>Map of SSRCs to their retransmission SSRCs for SSRC-multiplexed mode (default = random).</BLURB> +<DEFAULT></DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxReceive::rtx-payload-types</NAME> +<TYPE>string</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Colon separated list of payload format type</NICK> +<BLURB>Set through SDP (fmtp), it helps to detect restransmission streams.</BLURB> +<DEFAULT>""</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxReceive::num-rtx-requests</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Num RTX Requests</NICK> +<BLURB>Number of retransmission events received.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxReceive::num-rtx-packets</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Num RTX Packets</NICK> +<BLURB> Number of retransmission packets received.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxReceive::num-rtx-assoc-packets</NAME> +<TYPE>guint</TYPE> +<RANGE></RANGE> +<FLAGS>r</FLAGS> +<NICK>Num RTX Associated Packets</NICK> +<BLURB>Number of retransmission packets correctly associated with retransmission requests.</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> +<NAME>GstRtpRtxReceive::payload-type-map</NAME> +<TYPE>GstStructure*</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>Payload Type Map</NICK> +<BLURB>Map of original payload types to their retransmission payload types.</BLURB> +<DEFAULT></DEFAULT> +</ARG> + <ARG> <NAME>GstV4l2Sink::device</NAME> <TYPE>gchar*</TYPE> @@ -23008,6 +23228,16 @@ <DEFAULT>""</DEFAULT> </ARG> +<ARG> +<NAME>GstSoupHttpClientSink::http-log-level</NAME> +<TYPE>SoupLoggerLogLevel</TYPE> +<RANGE></RANGE> +<FLAGS>rw</FLAGS> +<NICK>HTTP log level</NICK> +<BLURB>Set log level for soup's HTTP session log.</BLURB> +<DEFAULT>SOUP_LOGGER_LOG_NONE</DEFAULT> +</ARG> + <ARG> <NAME>GstWavParse::ignore-length</NAME> <TYPE>gboolean</TYPE> diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy index 654df5fbd..dfe885968 100644 --- a/docs/plugins/gst-plugins-good-plugins.hierarchy +++ b/docs/plugins/gst-plugins-good-plugins.hierarchy @@ -14,6 +14,9 @@ GObject GstAudioClock GstControlBinding GstControlSource + GstDeviceMonitor + GstPulseDeviceMonitor + GstV4l2DeviceMonitor GstElement Gst3GPPMux GstALawDec @@ -40,6 +43,7 @@ GObject GstDcaParse GstFlacParse GstMpegAudioParse + GstRtpStreamDepay GstSbcParse GstWavpackParse GstBaseSink @@ -137,10 +141,11 @@ GObject GstWarpTV GstBin GstAspectRatioCrop - GstAutoAudioSink - GstAutoAudioSrc - GstAutoVideoSink - GstAutoVideoSrc + GstAutoDetect + GstAutoAudioSink + GstAutoAudioSrc + GstAutoVideoSink + GstAutoVideoSrc GstPipeline GstQTMoovRecover GstPushFileSrc @@ -258,8 +263,11 @@ GObject GstRndBufferSize GstRtpJitterBuffer GstRtpPtDemux + GstRtpRtxReceive + GstRtpRtxSend GstRtpSession GstRtpSsrcDemux + GstRtpStreamPay GstSMPTE GstShapeWipe GstTagDemux @@ -289,12 +297,14 @@ GObject GstPadTemplate GstPlugin GstPluginFeature + GstDeviceMonitorFactory GstElementFactory GstTypeFindFactory GstRegistry GstTask GstTaskPool GSocket + GTlsDatabase GdkPixbuf GstColorBalanceChannel GstTunerChannel @@ -308,7 +318,6 @@ GInterface GTypePlugin GstChildProxy GstColorBalance - GstNavigation GstPreset GstStreamVolume GstTagSetter @@ -317,4 +326,3 @@ GInterface GstTuner GstURIHandler GstVideoOrientation - GstVideoOverlay diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces index 49e0f8189..8dfb97d03 100644 --- a/docs/plugins/gst-plugins-good-plugins.interfaces +++ b/docs/plugins/gst-plugins-good-plugins.interfaces @@ -7,6 +7,7 @@ GstAspectRatioCrop GstChildProxy GstAudioEncoder GstPreset GstAutoAudioSink GstChildProxy GstAutoAudioSrc GstChildProxy +GstAutoDetect GstChildProxy GstAutoVideoSink GstChildProxy GstAutoVideoSrc GstChildProxy GstAviMux GstTagSetter @@ -79,6 +80,7 @@ GstUDPSrc GstURIHandler GstV4l2Radio GstURIHandler GstImplementsInterface GstTuner GstPropertyProbe GstV4l2Radio GstURIHandler GstTuner GstV4l2Sink GstImplementsInterface GstXOverlay GstNavigation GstColorBalance GstVideoOrientation GstPropertyProbe +GstV4l2Sink GstTuner GstColorBalance GstVideoOrientation GstV4l2Sink GstTuner GstVideoOverlay GstNavigation GstColorBalance GstVideoOrientation GstV4l2Src GstURIHandler GstImplementsInterface GstTuner GstColorBalance GstVideoOrientation GstPropertyProbe GstV4l2Src GstURIHandler GstTuner GstColorBalance GstVideoOrientation diff --git a/docs/plugins/gst-plugins-good-plugins.signals b/docs/plugins/gst-plugins-good-plugins.signals index 794622b8e..b14af19a3 100644 --- a/docs/plugins/gst-plugins-good-plugins.signals +++ b/docs/plugins/gst-plugins-good-plugins.signals @@ -478,6 +478,64 @@ guint arg1 guint arg2 </SIGNAL> +<SIGNAL> +<NAME>GstRtpBin::new-jitterbuffer</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRtpBin *gstrtpbin +GstElement *arg1 +guint arg2 +guint arg3 +</SIGNAL> + +<SIGNAL> +<NAME>GstRtpBin::request-aux-receiver</NAME> +<RETURNS>GstElement*</RETURNS> +<FLAGS>l</FLAGS> +GstRtpBin *gstrtpbin +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRtpBin::request-aux-sender</NAME> +<RETURNS>GstElement*</RETURNS> +<FLAGS>l</FLAGS> +GstRtpBin *gstrtpbin +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRtpBin::request-rtcp-decoder</NAME> +<RETURNS>GstElement*</RETURNS> +<FLAGS>l</FLAGS> +GstRtpBin *gstrtpbin +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRtpBin::request-rtcp-encoder</NAME> +<RETURNS>GstElement*</RETURNS> +<FLAGS>l</FLAGS> +GstRtpBin *gstrtpbin +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRtpBin::request-rtp-decoder</NAME> +<RETURNS>GstElement*</RETURNS> +<FLAGS>l</FLAGS> +GstRtpBin *gstrtpbin +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRtpBin::request-rtp-encoder</NAME> +<RETURNS>GstElement*</RETURNS> +<FLAGS>l</FLAGS> +GstRtpBin *gstrtpbin +guint arg1 +</SIGNAL> + <SIGNAL> <NAME>GstRtpJitterBuffer::clear-pt-map</NAME> <RETURNS>void</RETURNS> @@ -715,3 +773,11 @@ guint arg1 GstCaps *arg2 </SIGNAL> +<SIGNAL> +<NAME>GstRTSPSrc::new-manager</NAME> +<RETURNS>void</RETURNS> +<FLAGS>fc</FLAGS> +GstRTSPSrc *gstrtspsrc +GstElement *arg1 +</SIGNAL> + diff --git a/docs/plugins/html/GstIirEqualizer.html b/docs/plugins/html/GstIirEqualizer.html index f0b37b3f3..70cf95887 100644 --- a/docs/plugins/html/GstIirEqualizer.html +++ b/docs/plugins/html/GstIirEqualizer.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>GstIirEqualizer</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: GstIirEqualizer</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="ch03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-GstVideoMixerPad.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#GstIirEqualizer.synopsis" class="shortcut">Top</a> -  | - <a href="#GstIirEqualizer.description" class="shortcut">Description</a> -  | - <a href="#GstIirEqualizer.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#GstIirEqualizer.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#GstIirEqualizer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#GstIirEqualizer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#GstIirEqualizer.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-GstVideoMixerPad.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="GstIirEqualizer"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,26 +31,33 @@ <h2><span class="refentrytitle"><a name="GstIirEqualizer.top_of_page"></a>GstIirEqualizer</span></h2> <p>GstIirEqualizer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="GstIirEqualizer.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="GstIirEqualizer.html#GstIirEqualizer-struct" title="struct GstIirEqualizer">GstIirEqualizer</a>; -</pre> +<div class="refsect1"> +<a name="GstIirEqualizer.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="GstIirEqualizer.html#GstIirEqualizer-struct" title="struct GstIirEqualizer">GstIirEqualizer</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="GstIirEqualizer.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstIirEqualizer - +----<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands">GstIirEqualizer10Bands</a> - +----<a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands">GstIirEqualizer3Bands</a> - +----<a class="link" href="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands">GstIirEqualizerNBands</a> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstIirEqualizer + <span class="lineart">├──</span> <a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands">GstIirEqualizer10Bands</a> + <span class="lineart">├──</span> <a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands">GstIirEqualizer3Bands</a> + <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands">GstIirEqualizerNBands</a> </pre> </div> <div class="refsect1"> @@ -71,7 +72,10 @@ GstIirEqualizer implements </p> </div> <div class="refsect1"> -<a name="GstIirEqualizer.details"></a><h2>Details</h2> +<a name="GstIirEqualizer.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="GstIirEqualizer.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstIirEqualizer-struct"></a><h3>struct GstIirEqualizer</h3> <pre class="programlisting">struct GstIirEqualizer;</pre> @@ -82,6 +86,6 @@ GstIirEqualizer implements </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</div> </body> </html> \ No newline at end of file diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html index 6632de3cb..7f4dfaa68 100644 --- a/docs/plugins/html/ch01.html +++ b/docs/plugins/html/ch01.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>gst-plugins-good Elements</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: gst-plugins-good Elements</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td> </td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-3gppmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><img src="up-insensitive.png" width="16" height="16" border="0"></td> +<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-3gppmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="chapter"> <div class="titlepage"><div><div><h1 class="title"> @@ -414,6 +414,12 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"> — Splits RTP streams based on the SSRC</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxsend.html">rtprtxsend</a></span><span class="refpurpose"> — Retransmit RTP packets when needed, according to RFC4588</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxreceive.html">rtprtxreceive</a></span><span class="refpurpose"> — Receive retransmitted RTP packets according to RFC4588</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"> — Parses an SBC bluetooth audio stream</span> </dt> <dt> @@ -426,6 +432,9 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-shapewipe.html">shapewipe</a></span><span class="refpurpose"> — Adds a shape wipe transition to a video stream</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-shout2send.html">shout2send</a></span><span class="refpurpose"> — Sends data to an icecast server</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-smpte.html">smpte</a></span><span class="refpurpose"> — Apply the standard SMPTE transitions on video images</span> </dt> <dt> @@ -525,6 +534,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</div> </body> </html> \ No newline at end of file diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html index 0dae3283d..4492444a7 100644 --- a/docs/plugins/html/ch02.html +++ b/docs/plugins/html/ch02.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>gst-plugins-good Plugins</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: gst-plugins-good Plugins</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-y4menc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td> </td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-1394.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><img src="up-insensitive.png" width="16" height="16" border="0"></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-y4menc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-1394.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="chapter"> <div class="titlepage"><div><div><h1 class="title"> @@ -237,6 +237,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</div> </body> </html> \ No newline at end of file diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html index 29cf902c6..3e4058810 100644 --- a/docs/plugins/html/ch03.html +++ b/docs/plugins/html/ch03.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>gst-plugins-good Base Classes</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: gst-plugins-good Base Classes</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-y4menc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td> </td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="GstIirEqualizer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><img src="up-insensitive.png" width="16" height="16" border="0"></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-y4menc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="GstIirEqualizer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="chapter"> <div class="titlepage"><div><div><h1 class="title"> @@ -33,6 +33,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f110445cb..197262e0d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 +++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 @@ -133,10 +133,13 @@ <sub name="rtpptdemux" link="gst-plugins-good-plugins-rtpptdemux.html"/> <sub name="rtpsession" link="gst-plugins-good-plugins-rtpsession.html"/> <sub name="rtpssrcdemux" link="gst-plugins-good-plugins-rtpssrcdemux.html"/> + <sub name="rtprtxsend" link="gst-plugins-good-plugins-rtprtxsend.html"/> + <sub name="rtprtxreceive" link="gst-plugins-good-plugins-rtprtxreceive.html"/> <sub name="sbcparse" link="gst-plugins-good-plugins-sbcparse.html"/> <sub name="scaletempo" link="gst-plugins-good-plugins-scaletempo.html"/> <sub name="shagadelictv" link="gst-plugins-good-plugins-shagadelictv.html"/> <sub name="shapewipe" link="gst-plugins-good-plugins-shapewipe.html"/> + <sub name="shout2send" link="gst-plugins-good-plugins-shout2send.html"/> <sub name="smpte" link="gst-plugins-good-plugins-smpte.html"/> <sub name="smptealpha" link="gst-plugins-good-plugins-smptealpha.html"/> <sub name="souphttpsrc" link="gst-plugins-good-plugins-souphttpsrc.html"/> @@ -248,1311 +251,1360 @@ </sub> </chapters> <functions> - <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="" name="Example pipelines" link="gst-plugins-good-plugins-3gppmux.html#id-1.2.2.8.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-3gppmux.html#id-1.2.2.8.8.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-3gppmux.html#id-1.2.2.8.8.1.2"/> + <keyword type="struct" name="Gst3GPPMux" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux-struct"/> + <keyword type="property" name="The “dts-method†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--dts-method"/> + <keyword type="property" name="The “faststart†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--faststart"/> + <keyword type="property" name="The “faststart-file†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--faststart-file"/> + <keyword type="property" name="The “fragment-duration†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--fragment-duration"/> + <keyword type="property" name="The “moov-recovery-file†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--moov-recovery-file"/> + <keyword type="property" name="The “movie-timescale†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--movie-timescale"/> + <keyword type="property" name="The “presentation-time†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--presentation-time"/> + <keyword type="property" name="The “streamable†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--streamable"/> + <keyword type="property" name="The “trak-timescale†property" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--trak-timescale"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-aacparse.html#id-1.2.3.6.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aacparse.html#id-1.2.3.6.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aacparse.html#id-1.2.3.6.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#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="" name="Element Information" link="gst-plugins-good-plugins-aasink.html#id-1.2.4.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aasink.html#id-1.2.4.8.2.2"/> <keyword type="struct" name="struct GstAASink" link="gst-plugins-good-plugins-aasink.html#GstAASink-struct"/> - <keyword type="property" name="The "brightness" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--brightness"/> - <keyword type="property" name="The "contrast" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--contrast"/> - <keyword type="property" name="The "dither" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--dither"/> - <keyword type="property" name="The "driver" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--driver"/> - <keyword type="property" name="The "frame-time" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--frame-time"/> - <keyword type="property" name="The "frames-displayed" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--frames-displayed"/> - <keyword type="property" name="The "gamma" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--gamma"/> - <keyword type="property" name="The "height" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--height"/> - <keyword type="property" name="The "inversion" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--inversion"/> - <keyword type="property" name="The "randomval" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--randomval"/> - <keyword type="property" name="The "width" property" link="gst-plugins-good-plugins-aasink.html#GstAASink--width"/> - <keyword type="signal" name="The "frame-displayed" signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed"/> - <keyword type="signal" name="The "have-size" signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-have-size"/> - <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="property" name="The “brightness†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--brightness"/> + <keyword type="property" name="The “contrast†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--contrast"/> + <keyword type="property" name="The “dither†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--dither"/> + <keyword type="property" name="The “driver†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--driver"/> + <keyword type="property" name="The “frame-time†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--frame-time"/> + <keyword type="property" name="The “frames-displayed†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--frames-displayed"/> + <keyword type="property" name="The “gamma†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--gamma"/> + <keyword type="property" name="The “height†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--height"/> + <keyword type="property" name="The “inversion†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--inversion"/> + <keyword type="property" name="The “randomval†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--randomval"/> + <keyword type="property" name="The “width†property" link="gst-plugins-good-plugins-aasink.html#GstAASink--width"/> + <keyword type="signal" name="The “frame-displayed†signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed"/> + <keyword type="signal" name="The “have-size†signal" link="gst-plugins-good-plugins-aasink.html#GstAASink-have-size"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-ac3parse.html#id-1.2.5.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ac3parse.html#id-1.2.5.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ac3parse.html#id-1.2.5.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-agingtv.html#id-1.2.6.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-agingtv.html#id-1.2.6.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-agingtv.html#id-1.2.6.7.4.2"/> <keyword type="struct" name="struct GstAgingTV" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV-struct"/> - <keyword type="property" name="The "color-aging" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging"/> - <keyword type="property" name="The "dusts" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts"/> - <keyword type="property" name="The "pits" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits"/> - <keyword type="property" name="The "scratch-lines" property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines"/> - <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="property" name="The “color-aging†property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging"/> + <keyword type="property" name="The “dusts†property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts"/> + <keyword type="property" name="The “pits†property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits"/> + <keyword type="property" name="The “scratch-lines†property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-alpha.html#id-1.2.7.7.5.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alpha.html#id-1.2.7.7.5.1.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 "alpha" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha"/> - <keyword type="property" name="The "angle" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--angle"/> - <keyword type="property" name="The "method" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--method"/> - <keyword type="property" name="The "noise-level" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--noise-level"/> - <keyword type="property" name="The "target-b" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--target-b"/> - <keyword type="property" name="The "target-g" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--target-g"/> - <keyword type="property" name="The "target-r" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--target-r"/> - <keyword type="property" name="The "black-sensitivity" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity"/> - <keyword type="property" name="The "white-sensitivity" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity"/> - <keyword type="property" name="The "prefer-passthrough" property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough"/> - <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="property" name="The “alpha†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha"/> + <keyword type="property" name="The “angle†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--angle"/> + <keyword type="property" name="The “method†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--method"/> + <keyword type="property" name="The “noise-level†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--noise-level"/> + <keyword type="property" name="The “target-b†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--target-b"/> + <keyword type="property" name="The “target-g†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--target-g"/> + <keyword type="property" name="The “target-r†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--target-r"/> + <keyword type="property" name="The “black-sensitivity†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity"/> + <keyword type="property" name="The “white-sensitivity†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity"/> + <keyword type="property" name="The “prefer-passthrough†property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough"/> <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#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="" name="Element Information" link="gst-plugins-good-plugins-alawdec.html#id-1.2.9.6.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawdec.html#id-1.2.9.6.2.1.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#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#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="" name="Element Information" link="gst-plugins-good-plugins-alawenc.html#id-1.2.10.7.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-alawenc.html#id-1.2.10.7.2.1.2"/> + <keyword type="struct" name="struct GstALawEnc" link="gst-plugins-good-plugins-alawenc.html#GstALawEnc-struct"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-amrparse.html#id-1.2.11.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-amrparse.html#id-1.2.11.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-amrparse.html#id-1.2.11.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-apedemux.html#id-1.2.12.6.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-apedemux.html#id-1.2.12.6.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apedemux.html#id-1.2.12.6.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#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="" name="Element Information" link="gst-plugins-good-plugins-apev2mux.html#id-1.2.13.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-apev2mux.html#id-1.2.13.7.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#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="" name="Example launch line" link="gst-plugins-good-plugins-aspectratiocrop.html#id-1.2.14.8.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-aspectratiocrop.html#id-1.2.14.8.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-aspectratiocrop.html#id-1.2.14.8.5.2"/> <keyword type="struct" name="struct GstAspectRatioCrop" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct"/> - <keyword type="property" name="The "aspect-ratio" property" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio"/> - <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="property" name="The “aspect-ratio†property" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioamplify.html#id-1.2.15.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioamplify.html#id-1.2.15.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioamplify.html#id-1.2.15.7.4.2"/> <keyword type="struct" name="struct GstAudioAmplify" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct"/> - <keyword type="property" name="The "amplification" property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification"/> - <keyword type="property" name="The "clipping-method" property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method"/> - <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="property" name="The “amplification†property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification"/> + <keyword type="property" name="The “clipping-method†property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiochebband.html#id-1.2.16.7.8"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiochebband.html#id-1.2.16.7.9.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiochebband.html#id-1.2.16.7.9.2"/> <keyword type="struct" name="struct GstAudioChebBand" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand-struct"/> - <keyword type="property" name="The "lower-frequency" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--mode"/> - <keyword type="property" name="The "poles" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--poles"/> - <keyword type="property" name="The "ripple" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--ripple"/> - <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type"/> - <keyword type="property" name="The "upper-frequency" property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency"/> - <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="property" name="The “lower-frequency†property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--mode"/> + <keyword type="property" name="The “poles†property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--poles"/> + <keyword type="property" name="The “ripple†property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--ripple"/> + <keyword type="property" name="The “type†property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type"/> + <keyword type="property" name="The “upper-frequency†property" link="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiocheblimit.html#id-1.2.17.7.8"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiocheblimit.html#id-1.2.17.7.9.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiocheblimit.html#id-1.2.17.7.9.2"/> <keyword type="struct" name="struct GstAudioChebLimit" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit-struct"/> - <keyword type="property" name="The "cutoff" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--mode"/> - <keyword type="property" name="The "poles" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles"/> - <keyword type="property" name="The "ripple" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple"/> - <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type"/> - <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="property" name="The “cutoff†property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--mode"/> + <keyword type="property" name="The “poles†property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles"/> + <keyword type="property" name="The “ripple†property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple"/> + <keyword type="property" name="The “type†property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-audiofirfilter.html#id-1.2.18.8.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiofirfilter.html#id-1.2.18.8.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiofirfilter.html#id-1.2.18.8.6.2"/> <keyword type="struct" name="struct GstAudioFIRFilter" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct"/> - <keyword type="property" name="The "kernel" property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel"/> - <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency"/> - <keyword type="signal" name="The "rate-changed" signal" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed"/> - <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="property" name="The “kernel†property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel"/> + <keyword type="property" name="The “latency†property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency"/> + <keyword type="signal" name="The “rate-changed†signal" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-audioiirfilter.html#id-1.2.19.8.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioiirfilter.html#id-1.2.19.8.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioiirfilter.html#id-1.2.19.8.6.2"/> <keyword type="struct" name="struct GstAudioIIRFilter" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-struct"/> - <keyword type="property" name="The "a" property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a"/> - <keyword type="property" name="The "b" property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b"/> - <keyword type="signal" name="The "rate-changed" signal" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed"/> - <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="property" name="The “a†property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a"/> + <keyword type="property" name="The “b†property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b"/> + <keyword type="signal" name="The “rate-changed†signal" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsincband.html#id-1.2.20.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsincband.html#id-1.2.20.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsincband.html#id-1.2.20.7.5.2"/> <keyword type="struct" name="struct GstAudioWSincBand" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct"/> - <keyword type="property" name="The "lower-frequency" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency"/> - <keyword type="property" name="The "upper-frequency" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--mode"/> - <keyword type="property" name="The "window" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window"/> - <keyword type="property" name="The "length" property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length"/> - <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="property" name="The “lower-frequency†property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency"/> + <keyword type="property" name="The “upper-frequency†property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--mode"/> + <keyword type="property" name="The “window†property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window"/> + <keyword type="property" name="The “length†property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiowsinclimit.html#id-1.2.21.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiowsinclimit.html#id-1.2.21.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiowsinclimit.html#id-1.2.21.7.5.2"/> <keyword type="struct" name="struct GstAudioWSincLimit" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit-struct"/> - <keyword type="property" name="The "frequency" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency"/> - <keyword type="property" name="The "length" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--length"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode"/> - <keyword type="property" name="The "window" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window"/> - <keyword type="property" name="The "cutoff" property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff"/> - <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="property" name="The “frequency†property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency"/> + <keyword type="property" name="The “length†property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--length"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode"/> + <keyword type="property" name="The “window†property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window"/> + <keyword type="property" name="The “cutoff†property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioecho.html#id-1.2.22.7.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioecho.html#id-1.2.22.7.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioecho.html#id-1.2.22.7.6.2"/> <keyword type="struct" name="struct GstAudioEcho" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct"/> - <keyword type="property" name="The "delay" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"/> - <keyword type="property" name="The "feedback" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback"/> - <keyword type="property" name="The "intensity" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"/> - <keyword type="property" name="The "max-delay" property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"/> - <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="property" name="The “delay†property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"/> + <keyword type="property" name="The “feedback†property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback"/> + <keyword type="property" name="The “intensity†property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"/> + <keyword type="property" name="The “max-delay†property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiodynamic.html#id-1.2.23.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiodynamic.html#id-1.2.23.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiodynamic.html#id-1.2.23.7.4.2"/> <keyword type="struct" name="struct GstAudioDynamic" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct"/> - <keyword type="property" name="The "characteristics" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode"/> - <keyword type="property" name="The "ratio" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"/> - <keyword type="property" name="The "threshold" property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"/> - <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="property" name="The “characteristics†property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode"/> + <keyword type="property" name="The “ratio†property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"/> + <keyword type="property" name="The “threshold†property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audioinvert.html#id-1.2.24.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audioinvert.html#id-1.2.24.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audioinvert.html#id-1.2.24.7.4.2"/> <keyword type="struct" name="struct GstAudioInvert" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct"/> - <keyword type="property" name="The "degree" property" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"/> - <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="property" name="The “degree†property" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiopanorama.html#id-1.2.25.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiopanorama.html#id-1.2.25.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiopanorama.html#id-1.2.25.7.4.2"/> <keyword type="struct" name="struct GstAudioPanorama" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct"/> - <keyword type="property" name="The "panorama" property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"/> - <keyword type="property" name="The "method" property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"/> - <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="property" name="The “panorama†property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"/> + <keyword type="property" name="The “method†property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-audiokaraoke.html#id-1.2.26.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-audiokaraoke.html#id-1.2.26.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-audiokaraoke.html#id-1.2.26.7.4.2"/> <keyword type="struct" name="struct GstAudioKaraoke" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct"/> - <keyword type="property" name="The "filter-band" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"/> - <keyword type="property" name="The "filter-width" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width"/> - <keyword type="property" name="The "level" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"/> - <keyword type="property" name="The "mono-level" property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"/> - <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="property" name="The “filter-band†property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"/> + <keyword type="property" name="The “filter-width†property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width"/> + <keyword type="property" name="The “level†property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"/> + <keyword type="property" name="The “mono-level†property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-auparse.html#id-1.2.27.6.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-auparse.html#id-1.2.27.6.2.1.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#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="" name="Example launch line" link="gst-plugins-good-plugins-autoaudiosink.html#id-1.2.28.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosink.html#id-1.2.28.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosink.html#id-1.2.28.8.4.2"/> <keyword type="struct" name="GstAutoAudioSink" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct"/> - <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps"/> - <keyword type="property" name="The "ts-offset" property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset"/> - <keyword type="property" name="The "sync" 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="property" name="The “filter-caps†property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps"/> + <keyword type="property" name="The “ts-offset†property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset"/> + <keyword type="property" name="The “sync†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.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autoaudiosrc.html#id-1.2.29.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autoaudiosrc.html#id-1.2.29.8.4.2"/> <keyword type="struct" name="GstAutoAudioSrc" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc-struct"/> - <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--filter-caps"/> - <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="property" name="The “filter-caps†property" link="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--filter-caps"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-autovideosink.html#id-1.2.30.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosink.html#id-1.2.30.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosink.html#id-1.2.30.8.4.2"/> <keyword type="struct" name="GstAutoVideoSink" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink-struct"/> - <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps"/> - <keyword type="property" name="The "ts-offset" property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset"/> - <keyword type="property" name="The "sync" 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="property" name="The “filter-caps†property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps"/> + <keyword type="property" name="The “ts-offset†property" link="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset"/> + <keyword type="property" name="The “sync†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.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-autovideosrc.html#id-1.2.31.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-autovideosrc.html#id-1.2.31.8.4.2"/> <keyword type="struct" name="GstAutoVideoSrc" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc-struct"/> - <keyword type="property" name="The "filter-caps" property" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--filter-caps"/> - <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="property" name="The “filter-caps†property" link="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--filter-caps"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avidemux.html#id-1.2.32.6.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avidemux.html#id-1.2.32.6.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avidemux.html#id-1.2.32.6.5.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#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="" name="Example launch lines" link="gst-plugins-good-plugins-avimux.html#id-1.2.33.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avimux.html#id-1.2.33.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avimux.html#id-1.2.33.8.4.2"/> <keyword type="struct" name="struct GstAviMux" link="gst-plugins-good-plugins-avimux.html#GstAviMux-struct"/> - <keyword type="property" name="The "bigfile" property" link="gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile"/> - <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="property" name="The “bigfile†property" link="gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-avisubtitle.html#id-1.2.34.6.2"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-avisubtitle.html#id-1.2.34.6.3.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-avisubtitle.html#id-1.2.34.6.3.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#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="" name="Element Information" link="gst-plugins-good-plugins-cacasink.html#id-1.2.35.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cacasink.html#id-1.2.35.7.2.2"/> <keyword type="struct" name="struct GstCACASink" link="gst-plugins-good-plugins-cacasink.html#GstCACASink-struct"/> - <keyword type="property" name="The "anti-aliasing" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing"/> - <keyword type="property" name="The "dither" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--dither"/> - <keyword type="property" name="The "screen-height" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height"/> - <keyword type="property" name="The "screen-width" property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width"/> - <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="property" name="The “anti-aliasing†property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing"/> + <keyword type="property" name="The “dither†property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--dither"/> + <keyword type="property" name="The “screen-height†property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height"/> + <keyword type="property" name="The “screen-width†property" link="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cairooverlay.html#id-1.2.36.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cairooverlay.html#id-1.2.36.7.2.2"/> <keyword type="struct" name="struct GstCairoOverlay" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-struct"/> - <keyword type="signal" name="The "caps-changed" signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed"/> - <keyword type="signal" name="The "draw" signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw"/> - <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="signal" name="The “caps-changed†signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed"/> + <keyword type="signal" name="The “draw†signal" link="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-capssetter.html#id-1.2.37.7.5.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-capssetter.html#id-1.2.37.7.5.1.2"/> <keyword type="struct" name="struct GstCapsSetter" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter-struct"/> - <keyword type="property" name="The "caps" property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps"/> - <keyword type="property" name="The "join" property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join"/> - <keyword type="property" name="The "replace" property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace"/> - <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="property" name="The “caps†property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps"/> + <keyword type="property" name="The “join†property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join"/> + <keyword type="property" name="The “replace†property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-cutter.html#id-1.2.38.7.6"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-cutter.html#id-1.2.38.7.7.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-cutter.html#id-1.2.38.7.7.2"/> <keyword type="struct" name="struct GstCutter" link="gst-plugins-good-plugins-cutter.html#GstCutter-struct"/> - <keyword type="property" name="The "leaky" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--leaky"/> - <keyword type="property" name="The "pre-length" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length"/> - <keyword type="property" name="The "run-length" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--run-length"/> - <keyword type="property" name="The "threshold" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold"/> - <keyword type="property" name="The "threshold-dB" property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB"/> - <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="property" name="The “leaky†property" link="gst-plugins-good-plugins-cutter.html#GstCutter--leaky"/> + <keyword type="property" name="The “pre-length†property" link="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length"/> + <keyword type="property" name="The “run-length†property" link="gst-plugins-good-plugins-cutter.html#GstCutter--run-length"/> + <keyword type="property" name="The “threshold†property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold"/> + <keyword type="property" name="The “threshold-dB†property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dcaparse.html#id-1.2.39.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dcaparse.html#id-1.2.39.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dcaparse.html#id-1.2.39.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-deinterlace.html#id-1.2.40.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterlace.html#id-1.2.40.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterlace.html#id-1.2.40.8.4.2"/> <keyword type="struct" name="struct GstDeinterlace" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct"/> - <keyword type="property" name="The "fields" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields"/> - <keyword type="property" name="The "method" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--mode"/> - <keyword type="property" name="The "tff" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--tff"/> - <keyword type="property" name="The "drop-orphans" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--drop-orphans"/> - <keyword type="property" name="The "ignore-obscure" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure"/> - <keyword type="property" name="The "locking" property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking"/> - <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="property" name="The “fields†property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields"/> + <keyword type="property" name="The “method†property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--mode"/> + <keyword type="property" name="The “tff†property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--tff"/> + <keyword type="property" name="The “drop-orphans†property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--drop-orphans"/> + <keyword type="property" name="The “ignore-obscure†property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure"/> + <keyword type="property" name="The “locking†property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-deinterleave.html#id-1.2.41.7.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-deinterleave.html#id-1.2.41.7.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-deinterleave.html#id-1.2.41.7.6.2"/> <keyword type="struct" name="struct GstDeinterleave" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave-struct"/> - <keyword type="property" name="The "keep-positions" property" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions"/> - <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="property" name="The “keep-positions†property" link="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-dicetv.html#id-1.2.42.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dicetv.html#id-1.2.42.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dicetv.html#id-1.2.42.8.4.2"/> <keyword type="struct" name="struct GstDiceTV" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-struct"/> - <keyword type="property" name="The "square-bits" property" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits"/> - <keyword type="signal" name="The "reset" signal" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset"/> - <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="property" name="The “square-bits†property" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits"/> + <keyword type="signal" name="The “reset†signal" link="gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-directsoundsink.html#id-1.2.43.5.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-directsoundsink.html#id-1.2.43.5.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#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="" name="Element Information" link="gst-plugins-good-plugins-dtmfsrc.html#id-1.2.44.7.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dtmfsrc.html#id-1.2.44.7.6.4.2"/> <keyword type="struct" name="struct GstDTMFSrc" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct"/> - <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval"/> - <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="property" name="The “interval†property" link="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dv1394src.html#id-1.2.45.9.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dv1394src.html#id-1.2.45.9.2.2"/> <keyword type="struct" name="struct GstDV1394Src" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-struct"/> - <keyword type="property" name="The "channel" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel"/> - <keyword type="property" name="The "consecutive" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--consecutive"/> - <keyword type="property" name="The "drop-incomplete" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--drop-incomplete"/> - <keyword type="property" name="The "guid" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--guid"/> - <keyword type="property" name="The "port" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--port"/> - <keyword type="property" name="The "skip" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--skip"/> - <keyword type="property" name="The "use-avc" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--use-avc"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--device-name"/> - <keyword type="signal" name="The "frame-dropped" signal" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped"/> - <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="property" name="The “channel†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel"/> + <keyword type="property" name="The “consecutive†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--consecutive"/> + <keyword type="property" name="The “drop-incomplete†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--drop-incomplete"/> + <keyword type="property" name="The “guid†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--guid"/> + <keyword type="property" name="The “port†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--port"/> + <keyword type="property" name="The “skip†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--skip"/> + <keyword type="property" name="The “use-avc†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--use-avc"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--device-name"/> + <keyword type="signal" name="The “frame-dropped†signal" link="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdec.html#id-1.2.46.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdec.html#id-1.2.46.7.2.2"/> <keyword type="struct" name="struct GstDVDec" link="gst-plugins-good-plugins-dvdec.html#GstDVDec-struct"/> - <keyword type="property" name="The "clamp-chroma" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma"/> - <keyword type="property" name="The "clamp-luma" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-luma"/> - <keyword type="property" name="The "drop-factor" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor"/> - <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality"/> - <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="property" name="The “clamp-chroma†property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma"/> + <keyword type="property" name="The “clamp-luma†property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-luma"/> + <keyword type="property" name="The “drop-factor†property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor"/> + <keyword type="property" name="The “quality†property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-dvdemux.html#id-1.2.47.6.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-dvdemux.html#id-1.2.47.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-edgetv.html#id-1.2.48.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-edgetv.html#id-1.2.48.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-edgetv.html#id-1.2.48.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-equalizer-10bands.html#id-1.2.49.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-10bands.html#id-1.2.49.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-10bands.html#id-1.2.49.8.4.2"/> <keyword type="struct" name="struct GstIirEqualizer10Bands" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct"/> - <keyword type="property" name="The "band0" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0"/> - <keyword type="property" name="The "band1" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band1"/> - <keyword type="property" name="The "band2" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band2"/> - <keyword type="property" name="The "band3" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band3"/> - <keyword type="property" name="The "band4" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band4"/> - <keyword type="property" name="The "band5" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band5"/> - <keyword type="property" name="The "band6" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band6"/> - <keyword type="property" name="The "band7" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band7"/> - <keyword type="property" name="The "band8" property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8"/> - <keyword type="property" name="The "band9" 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#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="property" name="The “band0†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0"/> + <keyword type="property" name="The “band1†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band1"/> + <keyword type="property" name="The “band2†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band2"/> + <keyword type="property" name="The “band3†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band3"/> + <keyword type="property" name="The “band4†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band4"/> + <keyword type="property" name="The “band5†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band5"/> + <keyword type="property" name="The “band6†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band6"/> + <keyword type="property" name="The “band7†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band7"/> + <keyword type="property" name="The “band8†property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8"/> + <keyword type="property" name="The “band9†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#id-1.2.50.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-3bands.html#id-1.2.50.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-3bands.html#id-1.2.50.8.4.2"/> <keyword type="struct" name="struct GstIirEqualizer3Bands" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands-struct"/> - <keyword type="property" name="The "band0" property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0"/> - <keyword type="property" name="The "band1" property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1"/> - <keyword type="property" name="The "band2" 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#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="property" name="The “band0†property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0"/> + <keyword type="property" name="The “band1†property" link="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1"/> + <keyword type="property" name="The “band2†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#id-1.2.51.8.3"/> + <keyword type="" name="Example code" link="gst-plugins-good-plugins-equalizer-nbands.html#id-1.2.51.8.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-equalizer-nbands.html#id-1.2.51.8.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-equalizer-nbands.html#id-1.2.51.8.5.2"/> <keyword type="struct" name="struct GstIirEqualizerNBands" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands-struct"/> - <keyword type="property" name="The "num-bands" property" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands"/> - <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="property" name="The “num-bands†property" link="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacdec.html#id-1.2.52.6.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacdec.html#id-1.2.52.6.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#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="" name="Element Information" link="gst-plugins-good-plugins-flacenc.html#id-1.2.53.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacenc.html#id-1.2.53.8.2.2"/> <keyword type="struct" name="struct GstFlacEnc" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc-struct"/> - <keyword type="property" name="The "blocksize" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize"/> - <keyword type="property" name="The "escape-coding" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--escape-coding"/> - <keyword type="property" name="The "exhaustive-model-search" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--exhaustive-model-search"/> - <keyword type="property" name="The "loose-mid-side-stereo" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--loose-mid-side-stereo"/> - <keyword type="property" name="The "max-lpc-order" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-lpc-order"/> - <keyword type="property" name="The "max-residual-partition-order" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-residual-partition-order"/> - <keyword type="property" name="The "mid-side-stereo" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--mid-side-stereo"/> - <keyword type="property" name="The "min-residual-partition-order" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--min-residual-partition-order"/> - <keyword type="property" name="The "qlp-coeff-prec-search" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-prec-search"/> - <keyword type="property" name="The "qlp-coeff-precision" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-precision"/> - <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--quality"/> - <keyword type="property" name="The "rice-parameter-search-dist" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--rice-parameter-search-dist"/> - <keyword type="property" name="The "streamable-subset" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--streamable-subset"/> - <keyword type="property" name="The "padding" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding"/> - <keyword type="property" name="The "seekpoints" property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints"/> - <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="property" name="The “blocksize†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize"/> + <keyword type="property" name="The “escape-coding†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--escape-coding"/> + <keyword type="property" name="The “exhaustive-model-search†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--exhaustive-model-search"/> + <keyword type="property" name="The “loose-mid-side-stereo†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--loose-mid-side-stereo"/> + <keyword type="property" name="The “max-lpc-order†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-lpc-order"/> + <keyword type="property" name="The “max-residual-partition-order†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-residual-partition-order"/> + <keyword type="property" name="The “mid-side-stereo†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--mid-side-stereo"/> + <keyword type="property" name="The “min-residual-partition-order†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--min-residual-partition-order"/> + <keyword type="property" name="The “qlp-coeff-prec-search†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-prec-search"/> + <keyword type="property" name="The “qlp-coeff-precision†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-precision"/> + <keyword type="property" name="The “quality†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--quality"/> + <keyword type="property" name="The “rice-parameter-search-dist†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--rice-parameter-search-dist"/> + <keyword type="property" name="The “streamable-subset†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--streamable-subset"/> + <keyword type="property" name="The “padding†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding"/> + <keyword type="property" name="The “seekpoints†property" link="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-flacparse.html#id-1.2.54.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flacparse.html#id-1.2.54.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flacparse.html#id-1.2.54.7.5.2"/> <keyword type="struct" name="struct GstFlacParse" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse-struct"/> - <keyword type="property" name="The "check-frame-checksums" property" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums"/> - <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="property" name="The “check-frame-checksums†property" link="gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flactag.html#id-1.2.55.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flactag.html#id-1.2.55.7.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#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="" name="Example launch line" link="gst-plugins-good-plugins-flvdemux.html#id-1.2.56.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvdemux.html#id-1.2.56.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvdemux.html#id-1.2.56.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-flvmux.html#id-1.2.57.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flvmux.html#id-1.2.57.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flvmux.html#id-1.2.57.8.4.2"/> <keyword type="struct" name="GstFlvMux" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux-struct"/> - <keyword type="property" name="The "is-live" property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live"/> - <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable"/> - <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="property" name="The “is-live†property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live"/> + <keyword type="property" name="The “streamable†property" link="gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-flxdec.html#id-1.2.58.6.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-flxdec.html#id-1.2.58.6.2.1.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#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="" name="Example launch line" link="gst-plugins-good-plugins-gamma.html#id-1.2.59.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gamma.html#id-1.2.59.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gamma.html#id-1.2.59.7.4.2"/> <keyword type="struct" name="struct GstGamma" link="gst-plugins-good-plugins-gamma.html#GstGamma-struct"/> - <keyword type="property" name="The "gamma" property" link="gst-plugins-good-plugins-gamma.html#GstGamma--gamma"/> - <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="property" name="The “gamma†property" link="gst-plugins-good-plugins-gamma.html#GstGamma--gamma"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-gdkpixbufsink.html#id-1.2.60.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-gdkpixbufsink.html#id-1.2.60.7.2.2"/> <keyword type="struct" name="struct GstGdkPixbufSink" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct"/> - <keyword type="property" name="The "last-pixbuf" property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"/> - <keyword type="property" name="The "send-messages" property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages"/> - <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/> - <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="property" name="The “last-pixbuf†property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"/> + <keyword type="property" name="The “send-messages†property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages"/> + <keyword type="property" name="The “post-messages†property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-goom.html#id-1.2.61.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom.html#id-1.2.61.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom.html#id-1.2.61.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-goom2k1.html#id-1.2.62.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-goom2k1.html#id-1.2.62.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-goom2k1.html#id-1.2.62.6.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#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="" name="Element Information" link="gst-plugins-good-plugins-hdv1394src.html#id-1.2.63.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-hdv1394src.html#id-1.2.63.8.2.2"/> <keyword type="struct" name="struct GstHDV1394Src" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct"/> - <keyword type="property" name="The "channel" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name"/> - <keyword type="property" name="The "guid" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--guid"/> - <keyword type="property" name="The "port" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port"/> - <keyword type="property" name="The "use-avc" property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc"/> - <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="property" name="The “channel†property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name"/> + <keyword type="property" name="The “guid†property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--guid"/> + <keyword type="property" name="The “port†property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port"/> + <keyword type="property" name="The “use-avc†property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-icydemux.html#id-1.2.64.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-icydemux.html#id-1.2.64.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-icydemux.html#id-1.2.64.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-id3demux.html#id-1.2.65.7.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3demux.html#id-1.2.65.7.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3demux.html#id-1.2.65.7.6.2"/> <keyword type="struct" name="struct GstID3Demux" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct"/> - <keyword type="property" name="The "prefer-v1" property" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1"/> - <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="property" name="The “prefer-v1†property" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-id3v2mux.html#id-1.2.66.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-id3v2mux.html#id-1.2.66.7.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#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="" name="Example launch line" link="gst-plugins-good-plugins-imagefreeze.html#id-1.2.67.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-imagefreeze.html#id-1.2.67.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-imagefreeze.html#id-1.2.67.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-interleave.html#id-1.2.68.7.6"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-interleave.html#id-1.2.68.7.7.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-interleave.html#id-1.2.68.7.7.2"/> <keyword type="struct" name="struct GstInterleave" link="gst-plugins-good-plugins-interleave.html#GstInterleave-struct"/> - <keyword type="property" name="The "channel-positions" property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions"/> - <keyword type="property" name="The "channel-positions-from-input" 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#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="property" name="The “channel-positions†property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions"/> + <keyword type="property" name="The “channel-positions-from-input†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#id-1.2.69.8.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-ismlmux.html#id-1.2.69.8.8.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ismlmux.html#id-1.2.69.8.8.1.2"/> + <keyword type="struct" name="GstISMLMux" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux-struct"/> + <keyword type="property" name="The “dts-method†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--dts-method"/> + <keyword type="property" name="The “faststart†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--faststart"/> + <keyword type="property" name="The “faststart-file†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--faststart-file"/> + <keyword type="property" name="The “fragment-duration†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--fragment-duration"/> + <keyword type="property" name="The “moov-recovery-file†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--moov-recovery-file"/> + <keyword type="property" name="The “movie-timescale†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--movie-timescale"/> + <keyword type="property" name="The “presentation-time†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--presentation-time"/> + <keyword type="property" name="The “streamable†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--streamable"/> + <keyword type="property" name="The “trak-timescale†property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--trak-timescale"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosrc.html#id-1.2.70.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosrc.html#id-1.2.70.7.2.2"/> <keyword type="struct" name="struct GstJackAudioSrc" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct"/> - <keyword type="property" name="The "client" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"/> - <keyword type="property" name="The "connect" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect"/> - <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server"/> - <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"/> - <keyword type="property" name="The "transport" property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"/> - <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="property" name="The “client†property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"/> + <keyword type="property" name="The “connect†property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect"/> + <keyword type="property" name="The “server†property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server"/> + <keyword type="property" name="The “client-name†property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"/> + <keyword type="property" name="The “transport†property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jackaudiosink.html#id-1.2.71.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jackaudiosink.html#id-1.2.71.7.2.2"/> <keyword type="struct" name="struct GstJackAudioSink" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct"/> - <keyword type="property" name="The "client" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"/> - <keyword type="property" name="The "connect" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect"/> - <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--server"/> - <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name"/> - <keyword type="property" name="The "transport" property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport"/> - <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="property" name="The “client†property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"/> + <keyword type="property" name="The “connect†property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect"/> + <keyword type="property" name="The “server†property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--server"/> + <keyword type="property" name="The “client-name†property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name"/> + <keyword type="property" name="The “transport†property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegdec.html#id-1.2.72.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegdec.html#id-1.2.72.7.2.2"/> <keyword type="struct" name="struct GstJpegDec" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct"/> - <keyword type="property" name="The "idct-method" property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method"/> - <keyword type="property" name="The "max-errors" property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors"/> - <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="property" name="The “idct-method†property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method"/> + <keyword type="property" name="The “max-errors†property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-jpegenc.html#id-1.2.73.9.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-jpegenc.html#id-1.2.73.9.2.2"/> <keyword type="struct" name="struct GstJpegEnc" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct"/> - <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality"/> - <keyword type="property" name="The "idct-method" property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method"/> - <keyword type="signal" name="The "frame-encoded" signal" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded"/> - <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="property" name="The “quality†property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality"/> + <keyword type="property" name="The “idct-method†property" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method"/> + <keyword type="signal" name="The “frame-encoded†signal" link="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-level.html#id-1.2.74.7.6"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-level.html#id-1.2.74.7.7.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-level.html#id-1.2.74.7.7.2"/> <keyword type="struct" name="struct GstLevel" link="gst-plugins-good-plugins-level.html#GstLevel-struct"/> - <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-level.html#GstLevel--interval"/> - <keyword type="property" name="The "message" property" link="gst-plugins-good-plugins-level.html#GstLevel--message"/> - <keyword type="property" name="The "peak-falloff" property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff"/> - <keyword type="property" name="The "peak-ttl" property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"/> - <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-level.html#GstLevel--post-messages"/> - <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="property" name="The “interval†property" link="gst-plugins-good-plugins-level.html#GstLevel--interval"/> + <keyword type="property" name="The “message†property" link="gst-plugins-good-plugins-level.html#GstLevel--message"/> + <keyword type="property" name="The “peak-falloff†property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff"/> + <keyword type="property" name="The “peak-ttl†property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"/> + <keyword type="property" name="The “post-messages†property" link="gst-plugins-good-plugins-level.html#GstLevel--post-messages"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskamux.html#id-1.2.75.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskamux.html#id-1.2.75.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskamux.html#id-1.2.75.8.4.2"/> <keyword type="struct" name="GstMatroskaMux" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct"/> - <keyword type="property" name="The "writing-app" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app"/> - <keyword type="property" name="The "version" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version"/> - <keyword type="property" name="The "min-index-interval" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval"/> - <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable"/> - <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="property" name="The “writing-app†property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app"/> + <keyword type="property" name="The “version†property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version"/> + <keyword type="property" name="The “min-index-interval†property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval"/> + <keyword type="property" name="The “streamable†property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-matroskademux.html#id-1.2.76.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-matroskademux.html#id-1.2.76.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-matroskademux.html#id-1.2.76.7.4.2"/> <keyword type="struct" name="GstMatroskaDemux" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct"/> - <keyword type="property" name="The "max-gap-time" property" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"/> - <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="property" name="The “max-gap-time†property" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-mj2mux.html#id-1.2.77.8.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mj2mux.html#id-1.2.77.8.8.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mj2mux.html#id-1.2.77.8.8.1.2"/> <keyword type="struct" name="GstMJ2Mux" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct"/> - <keyword type="property" name="The "dts-method" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method"/> - <keyword type="property" name="The "faststart" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart"/> - <keyword type="property" name="The "faststart-file" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart-file"/> - <keyword type="property" name="The "fragment-duration" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--fragment-duration"/> - <keyword type="property" name="The "moov-recovery-file" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--moov-recovery-file"/> - <keyword type="property" name="The "movie-timescale" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--movie-timescale"/> - <keyword type="property" name="The "presentation-time" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--presentation-time"/> - <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable"/> - <keyword type="property" name="The "trak-timescale" property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#id-1.2.78.4.3.1"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-monoscope.html#id-1.2.78.4.4.1"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-monoscope.html#id-1.2.78.4.4.2"/> + <keyword type="property" name="The “dts-method†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method"/> + <keyword type="property" name="The “faststart†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart"/> + <keyword type="property" name="The “faststart-file†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart-file"/> + <keyword type="property" name="The “fragment-duration†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--fragment-duration"/> + <keyword type="property" name="The “moov-recovery-file†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--moov-recovery-file"/> + <keyword type="property" name="The “movie-timescale†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--movie-timescale"/> + <keyword type="property" name="The “presentation-time†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--presentation-time"/> + <keyword type="property" name="The “streamable†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable"/> + <keyword type="property" name="The “trak-timescale†property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-monoscope.html#id-1.2.78.5.3"/> + <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"/> - <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="" name="Example launch line" link="gst-plugins-good-plugins-mpegaudioparse.html#id-1.2.79.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mpegaudioparse.html#id-1.2.79.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mpegaudioparse.html#id-1.2.79.6.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#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 "dts-method" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"/> - <keyword type="property" name="The "faststart" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart"/> - <keyword type="property" name="The "faststart-file" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart-file"/> - <keyword type="property" name="The "fragment-duration" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--fragment-duration"/> - <keyword type="property" name="The "moov-recovery-file" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--moov-recovery-file"/> - <keyword type="property" name="The "movie-timescale" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--movie-timescale"/> - <keyword type="property" name="The "presentation-time" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--presentation-time"/> - <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable"/> - <keyword type="property" name="The "trak-timescale" property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale"/> - <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="" name="Example pipelines" link="gst-plugins-good-plugins-mp4mux.html#id-1.2.80.8.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mp4mux.html#id-1.2.80.8.8.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mp4mux.html#id-1.2.80.8.8.2"/> + <keyword type="struct" name="GstMP4Mux" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux-struct"/> + <keyword type="property" name="The “dts-method†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"/> + <keyword type="property" name="The “faststart†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart"/> + <keyword type="property" name="The “faststart-file†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart-file"/> + <keyword type="property" name="The “fragment-duration†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--fragment-duration"/> + <keyword type="property" name="The “moov-recovery-file†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--moov-recovery-file"/> + <keyword type="property" name="The “movie-timescale†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--movie-timescale"/> + <keyword type="property" name="The “presentation-time†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--presentation-time"/> + <keyword type="property" name="The “streamable†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable"/> + <keyword type="property" name="The “trak-timescale†property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-mulawdec.html#id-1.2.81.6.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawdec.html#id-1.2.81.6.2.1.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#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#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="" name="Element Information" link="gst-plugins-good-plugins-mulawenc.html#id-1.2.82.7.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-mulawenc.html#id-1.2.82.7.2.1.2"/> + <keyword type="struct" name="struct GstMuLawEnc" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc-struct"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-multifilesink.html#id-1.2.83.7.9"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesink.html#id-1.2.83.7.10.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesink.html#id-1.2.83.7.10.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 "location" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location"/> - <keyword type="property" name="The "index" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--index"/> - <keyword type="property" name="The "next-file" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--next-file"/> - <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages"/> - <keyword type="property" name="The "max-files" property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-files"/> - <keyword type="property" name="The "max-file-size" 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#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="property" name="The “location†property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location"/> + <keyword type="property" name="The “index†property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--index"/> + <keyword type="property" name="The “next-file†property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--next-file"/> + <keyword type="property" name="The “post-messages†property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages"/> + <keyword type="property" name="The “max-files†property" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-files"/> + <keyword type="property" name="The “max-file-size†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#id-1.2.84.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multifilesrc.html#id-1.2.84.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multifilesrc.html#id-1.2.84.7.5.2"/> <keyword type="struct" name="struct GstMultiFileSrc" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc-struct"/> - <keyword type="property" name="The "caps" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps"/> - <keyword type="property" name="The "index" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--index"/> - <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--location"/> - <keyword type="property" name="The "loop" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--loop"/> - <keyword type="property" name="The "start-index" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--start-index"/> - <keyword type="property" name="The "stop-index" property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index"/> - <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="property" name="The “caps†property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps"/> + <keyword type="property" name="The “index†property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--index"/> + <keyword type="property" name="The “location†property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--location"/> + <keyword type="property" name="The “loop†property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--loop"/> + <keyword type="property" name="The “start-index†property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--start-index"/> + <keyword type="property" name="The “stop-index†property" link="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartdemux.html#id-1.2.85.7.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartdemux.html#id-1.2.85.7.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartdemux.html#id-1.2.85.7.6.2"/> <keyword type="struct" name="struct GstMultipartDemux" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux-struct"/> - <keyword type="property" name="The "autoscan" property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan"/> - <keyword type="property" name="The "boundary" property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary"/> - <keyword type="property" name="The "single-stream" property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream"/> - <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="property" name="The “autoscan†property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan"/> + <keyword type="property" name="The “boundary†property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary"/> + <keyword type="property" name="The “single-stream†property" link="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-multipartmux.html#id-1.2.86.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multipartmux.html#id-1.2.86.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multipartmux.html#id-1.2.86.7.4.2"/> <keyword type="struct" name="struct GstMultipartMux" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux-struct"/> - <keyword type="property" name="The "boundary" property" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary"/> - <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="property" name="The “boundary†property" link="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-multiudpsink.html#id-1.2.87.8.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-multiudpsink.html#id-1.2.87.8.2.1.2"/> <keyword type="struct" name="struct GstMultiUDPSink" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-struct"/> - <keyword type="property" name="The "bytes-served" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served"/> - <keyword type="property" name="The "bytes-to-serve" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-to-serve"/> - <keyword type="property" name="The "clients" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--clients"/> - <keyword type="property" name="The "closefd" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--closefd"/> - <keyword type="property" name="The "sock" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sock"/> - <keyword type="property" name="The "sockfd" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sockfd"/> - <keyword type="property" name="The "auto-multicast" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--auto-multicast"/> - <keyword type="property" name="The "loop" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--loop"/> - <keyword type="property" name="The "qos-dscp" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--qos-dscp"/> - <keyword type="property" name="The "ttl" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl"/> - <keyword type="property" name="The "ttl-mc" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl-mc"/> - <keyword type="property" name="The "send-duplicates" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--send-duplicates"/> - <keyword type="property" name="The "buffer-size" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--buffer-size"/> - <keyword type="property" name="The "close-socket" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--close-socket"/> - <keyword type="property" name="The "socket" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket"/> - <keyword type="property" name="The "used-socket" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket"/> - <keyword type="property" name="The "force-ipv4" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4"/> - <keyword type="property" name="The "multicast-iface" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface"/> - <keyword type="property" name="The "bind-address" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address"/> - <keyword type="property" name="The "bind-port" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port"/> - <keyword type="property" name="The "socket-v6" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6"/> - <keyword type="property" name="The "used-socket-v6" property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6"/> - <keyword type="signal" name="The "add" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add"/> - <keyword type="signal" name="The "clear" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear"/> - <keyword type="signal" name="The "client-added" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-added"/> - <keyword type="signal" name="The "client-removed" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed"/> - <keyword type="signal" name="The "get-stats" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats"/> - <keyword type="signal" name="The "remove" signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove"/> - <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="property" name="The “bytes-served†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served"/> + <keyword type="property" name="The “bytes-to-serve†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-to-serve"/> + <keyword type="property" name="The “clients†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--clients"/> + <keyword type="property" name="The “closefd†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--closefd"/> + <keyword type="property" name="The “sock†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sock"/> + <keyword type="property" name="The “sockfd†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sockfd"/> + <keyword type="property" name="The “auto-multicast†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--auto-multicast"/> + <keyword type="property" name="The “loop†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--loop"/> + <keyword type="property" name="The “qos-dscp†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--qos-dscp"/> + <keyword type="property" name="The “ttl†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl"/> + <keyword type="property" name="The “ttl-mc†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl-mc"/> + <keyword type="property" name="The “send-duplicates†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--send-duplicates"/> + <keyword type="property" name="The “buffer-size†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--buffer-size"/> + <keyword type="property" name="The “close-socket†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--close-socket"/> + <keyword type="property" name="The “socket†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket"/> + <keyword type="property" name="The “used-socket†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket"/> + <keyword type="property" name="The “force-ipv4†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4"/> + <keyword type="property" name="The “multicast-iface†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface"/> + <keyword type="property" name="The “bind-address†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address"/> + <keyword type="property" name="The “bind-port†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port"/> + <keyword type="property" name="The “socket-v6†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6"/> + <keyword type="property" name="The “used-socket-v6†property" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6"/> + <keyword type="signal" name="The “add†signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add"/> + <keyword type="signal" name="The “clear†signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear"/> + <keyword type="signal" name="The “client-added†signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-added"/> + <keyword type="signal" name="The “client-removed†signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed"/> + <keyword type="signal" name="The “get-stats†signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats"/> + <keyword type="signal" name="The “remove†signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-optv.html#id-1.2.88.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-optv.html#id-1.2.88.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-optv.html#id-1.2.88.7.4.2"/> <keyword type="struct" name="struct GstOpTV" link="gst-plugins-good-plugins-optv.html#GstOpTV-struct"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-optv.html#GstOpTV--mode"/> - <keyword type="property" name="The "speed" property" link="gst-plugins-good-plugins-optv.html#GstOpTV--speed"/> - <keyword type="property" name="The "threshold" property" link="gst-plugins-good-plugins-optv.html#GstOpTV--threshold"/> - <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="property" name="The “mode†property" link="gst-plugins-good-plugins-optv.html#GstOpTV--mode"/> + <keyword type="property" name="The “speed†property" link="gst-plugins-good-plugins-optv.html#GstOpTV--speed"/> + <keyword type="property" name="The “threshold†property" link="gst-plugins-good-plugins-optv.html#GstOpTV--threshold"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4sink.html#id-1.2.89.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4sink.html#id-1.2.89.8.2.2"/> <keyword type="struct" name="struct GstOss4Sink" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device-name"/> - <keyword type="property" name="The "mute" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute"/> - <keyword type="property" name="The "volume" property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device-name"/> + <keyword type="property" name="The “mute†property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute"/> + <keyword type="property" name="The “volume†property" link="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-oss4src.html#id-1.2.90.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-oss4src.html#id-1.2.90.8.2.2"/> <keyword type="struct" name="struct GstOss4Source" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device-name"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device-name"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssink.html#id-1.2.91.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssink.html#id-1.2.91.7.2.2"/> <keyword type="struct" name="struct GstOssSink" link="gst-plugins-good-plugins-osssink.html#GstOssSink-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osssink.html#GstOssSink--device"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-osssink.html#GstOssSink--device"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osssrc.html#id-1.2.92.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osssrc.html#id-1.2.92.8.2.2"/> <keyword type="struct" name="struct GstOssSrc" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device-name"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device-name"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosink.html#id-1.2.93.6.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosink.html#id-1.2.93.6.2.2"/> <keyword type="struct" name="struct GstOsxAudioSink" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxaudiosrc.html#id-1.2.94.6.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxaudiosrc.html#id-1.2.94.6.2.2"/> <keyword type="struct" name="struct GstOsxAudioSrc" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-osxvideosink.html#id-1.2.95.6.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-osxvideosink.html#id-1.2.95.6.2.2"/> <keyword type="struct" name="struct GstOSXVideoSink" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink"/> - <keyword type="property" name="The "embed" property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed"/> - <keyword type="property" name="The "fullscreen" property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen"/> - <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="property" name="The “embed†property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed"/> + <keyword type="property" name="The “fullscreen†property" link="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pngdec.html#id-1.2.96.6.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngdec.html#id-1.2.96.6.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#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="" name="Element Information" link="gst-plugins-good-plugins-pngenc.html#id-1.2.97.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pngenc.html#id-1.2.97.8.2.2"/> <keyword type="struct" name="struct GstPngEnc" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc-struct"/> - <keyword type="property" name="The "compression-level" property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level"/> - <keyword type="property" name="The "snapshot" property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot"/> - <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="property" name="The “compression-level†property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level"/> + <keyword type="property" name="The “snapshot†property" link="gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-progressreport.html#id-1.2.98.7.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-progressreport.html#id-1.2.98.7.8.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-progressreport.html#id-1.2.98.7.8.2"/> <keyword type="struct" name="struct GstProgressReport" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport-struct"/> - <keyword type="property" name="The "silent" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent"/> - <keyword type="property" name="The "update-freq" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq"/> - <keyword type="property" name="The "format" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format"/> - <keyword type="property" name="The "do-query" property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--do-query"/> - <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="property" name="The “silent†property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent"/> + <keyword type="property" name="The “update-freq†property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq"/> + <keyword type="property" name="The “format†property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format"/> + <keyword type="property" name="The “do-query†property" link="gst-plugins-good-plugins-progressreport.html#GstProgressReport--do-query"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesink.html#id-1.2.99.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesink.html#id-1.2.99.8.2.2"/> <keyword type="struct" name="struct GstPulseSink" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device"/> - <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--server"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device-name"/> - <keyword type="property" name="The "volume" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--volume"/> - <keyword type="property" name="The "mute" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--mute"/> - <keyword type="property" name="The "client" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client"/> - <keyword type="property" name="The "stream-properties" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--stream-properties"/> - <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name"/> - <keyword type="property" name="The "current-device" property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--current-device"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device"/> + <keyword type="property" name="The “server†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--server"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device-name"/> + <keyword type="property" name="The “volume†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--volume"/> + <keyword type="property" name="The “mute†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--mute"/> + <keyword type="property" name="The “client†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client"/> + <keyword type="property" name="The “stream-properties†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--stream-properties"/> + <keyword type="property" name="The “client-name†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name"/> + <keyword type="property" name="The “current-device†property" link="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--current-device"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-pulsesrc.html#id-1.2.100.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-pulsesrc.html#id-1.2.100.8.2.2"/> <keyword type="struct" name="struct GstPulseSrc" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device"/> - <keyword type="property" name="The "server" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--server"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device-name"/> - <keyword type="property" name="The "stream-properties" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--stream-properties"/> - <keyword type="property" name="The "client" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client"/> - <keyword type="property" name="The "mute" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--mute"/> - <keyword type="property" name="The "source-output-index" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--source-output-index"/> - <keyword type="property" name="The "volume" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume"/> - <keyword type="property" name="The "client-name" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name"/> - <keyword type="property" name="The "current-device" property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--current-device"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device"/> + <keyword type="property" name="The “server†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--server"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device-name"/> + <keyword type="property" name="The “stream-properties†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--stream-properties"/> + <keyword type="property" name="The “client†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client"/> + <keyword type="property" name="The “mute†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--mute"/> + <keyword type="property" name="The “source-output-index†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--source-output-index"/> + <keyword type="property" name="The “volume†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume"/> + <keyword type="property" name="The “client-name†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name"/> + <keyword type="property" name="The “current-device†property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--current-device"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-quarktv.html#id-1.2.101.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-quarktv.html#id-1.2.101.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-quarktv.html#id-1.2.101.7.4.2"/> <keyword type="struct" name="struct GstQuarkTV" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"/> - <keyword type="property" name="The "planes" property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/> - <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="property" name="The “planes†property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-qtdemux.html#id-1.2.102.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtdemux.html#id-1.2.102.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtdemux.html#id-1.2.102.7.5.2"/> <keyword type="struct" name="struct GstQTDemux" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"/> - <keyword type="signal" name="The "got-redirect" signal" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect"/> - <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="signal" name="The “got-redirect†signal" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmux.html#id-1.2.103.8.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmux.html#id-1.2.103.8.8.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmux.html#id-1.2.103.8.8.2"/> <keyword type="struct" name="struct GstQTMux" link="gst-plugins-good-plugins-qtmux.html#GstQTMux-struct"/> - <keyword type="property" name="The "dts-method" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method"/> - <keyword type="property" name="The "faststart" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart"/> - <keyword type="property" name="The "faststart-file" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart-file"/> - <keyword type="property" name="The "fragment-duration" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--fragment-duration"/> - <keyword type="property" name="The "moov-recovery-file" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--moov-recovery-file"/> - <keyword type="property" name="The "movie-timescale" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale"/> - <keyword type="property" name="The "presentation-time" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--presentation-time"/> - <keyword type="property" name="The "streamable" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable"/> - <keyword type="property" name="The "trak-timescale" property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale"/> - <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="property" name="The “dts-method†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method"/> + <keyword type="property" name="The “faststart†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart"/> + <keyword type="property" name="The “faststart-file†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart-file"/> + <keyword type="property" name="The “fragment-duration†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--fragment-duration"/> + <keyword type="property" name="The “moov-recovery-file†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--moov-recovery-file"/> + <keyword type="property" name="The “movie-timescale†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale"/> + <keyword type="property" name="The “presentation-time†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--presentation-time"/> + <keyword type="property" name="The “streamable†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable"/> + <keyword type="property" name="The “trak-timescale†property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-qtmoovrecover.html#id-1.2.104.9.2"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-qtmoovrecover.html#id-1.2.104.9.3.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-qtmoovrecover.html#id-1.2.104.9.3.2"/> + <keyword type="function" name="gst_qt_moov_recover_get_type ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type"/> + <keyword type="function" name="gst_qt_moov_recover_register ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register"/> <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"/> - <keyword type="function" name="gst_qt_moov_recover_register ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register"/> - <keyword type="property" name="The "broken-input" property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input"/> - <keyword type="property" name="The "faststart-mode" property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"/> - <keyword type="property" name="The "fixed-output" property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"/> - <keyword type="property" name="The "recovery-input" property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"/> - <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="property" name="The “broken-input†property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input"/> + <keyword type="property" name="The “faststart-mode†property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"/> + <keyword type="property" name="The “fixed-output†property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"/> + <keyword type="property" name="The “recovery-input†property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-radioactv.html#id-1.2.105.7.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-radioactv.html#id-1.2.105.7.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-radioactv.html#id-1.2.105.7.6.2"/> <keyword type="struct" name="struct GstRadioacTV" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct"/> - <keyword type="property" name="The "color" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color"/> - <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode"/> - <keyword type="property" name="The "trigger" property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger"/> - <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.6.3.1"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.6.4.1"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.6.4.2"/> + <keyword type="property" name="The “color†property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color"/> + <keyword type="property" name="The “interval†property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode"/> + <keyword type="property" name="The “trigger†property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-revtv.html#id-1.2.106.7.4.2"/> <keyword type="struct" name="struct GstRevTV" link="gst-plugins-good-plugins-revtv.html#GstRevTV-struct"/> - <keyword type="property" name="The "delay" property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--delay"/> - <keyword type="property" name="The "gain" property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--gain"/> - <keyword type="property" name="The "linespace" property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--linespace"/> - <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="property" name="The “delay†property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--delay"/> + <keyword type="property" name="The “gain†property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--gain"/> + <keyword type="property" name="The “linespace†property" link="gst-plugins-good-plugins-revtv.html#GstRevTV--linespace"/> + <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.7.6"/> + <keyword type="" name="Acknowledgements" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.7.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.7.8.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rganalysis.html#id-1.2.107.7.8.2"/> <keyword type="struct" name="struct GstRgAnalysis" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis-struct"/> - <keyword type="property" name="The "forced" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced"/> - <keyword type="property" name="The "num-tracks" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks"/> - <keyword type="property" name="The "reference-level" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level"/> - <keyword type="property" name="The "message" property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message"/> - <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="property" name="The “forced†property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced"/> + <keyword type="property" name="The “num-tracks†property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks"/> + <keyword type="property" name="The “reference-level†property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level"/> + <keyword type="property" name="The “message†property" link="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rglimiter.html#id-1.2.108.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rglimiter.html#id-1.2.108.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rglimiter.html#id-1.2.108.7.4.2"/> <keyword type="struct" name="struct GstRgLimiter" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter-struct"/> - <keyword type="property" name="The "enabled" property" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled"/> - <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="property" name="The “enabled†property" link="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rgvolume.html#id-1.2.109.8.8"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rgvolume.html#id-1.2.109.8.9.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rgvolume.html#id-1.2.109.8.9.2"/> <keyword type="struct" name="struct GstRgVolume" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume-struct"/> - <keyword type="property" name="The "album-mode" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode"/> - <keyword type="property" name="The "fallback-gain" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain"/> - <keyword type="property" name="The "headroom" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--headroom"/> - <keyword type="property" name="The "pre-amp" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp"/> - <keyword type="property" name="The "result-gain" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--result-gain"/> - <keyword type="property" name="The "target-gain" property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain"/> - <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="property" name="The “album-mode†property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode"/> + <keyword type="property" name="The “fallback-gain†property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain"/> + <keyword type="property" name="The “headroom†property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--headroom"/> + <keyword type="property" name="The “pre-amp†property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp"/> + <keyword type="property" name="The “result-gain†property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--result-gain"/> + <keyword type="property" name="The “target-gain†property" link="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rippletv.html#id-1.2.110.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rippletv.html#id-1.2.110.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rippletv.html#id-1.2.110.7.4.2"/> <keyword type="struct" name="struct GstRippleTV" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode"/> - <keyword type="property" name="The "reset" property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset"/> - <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="property" name="The “mode†property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode"/> + <keyword type="property" name="The “reset†property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdec.html#id-1.2.111.8.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdec.html#id-1.2.111.8.2.1.2"/> <keyword type="struct" name="struct GstRTPDec" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"/> - <keyword type="property" name="The "skip" property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"/> - <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency"/> - <keyword type="signal" name="The "clear-pt-map" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map"/> - <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map"/> - <keyword type="signal" name="The "on-bye-ssrc" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc"/> - <keyword type="signal" name="The "on-bye-timeout" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout"/> - <keyword type="signal" name="The "on-new-ssrc" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc"/> - <keyword type="signal" name="The "on-ssrc-collision" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"/> - <keyword type="signal" name="The "on-ssrc-validated" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"/> - <keyword type="signal" name="The "on-timeout" signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"/> - <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="property" name="The “skip†property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"/> + <keyword type="property" name="The “latency†property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency"/> + <keyword type="signal" name="The “clear-pt-map†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map"/> + <keyword type="signal" name="The “request-pt-map†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map"/> + <keyword type="signal" name="The “on-bye-ssrc†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc"/> + <keyword type="signal" name="The “on-bye-timeout†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout"/> + <keyword type="signal" name="The “on-new-ssrc†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc"/> + <keyword type="signal" name="The “on-ssrc-collision†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"/> + <keyword type="signal" name="The “on-ssrc-validated†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"/> + <keyword type="signal" name="The “on-timeout†signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3depay.html#id-1.2.112.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3depay.html#id-1.2.112.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3depay.html#id-1.2.112.6.4.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#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="" name="Example pipeline" link="gst-plugins-good-plugins-rtpac3pay.html#id-1.2.113.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpac3pay.html#id-1.2.113.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpac3pay.html#id-1.2.113.6.4.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#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="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrdepay.html#id-1.2.114.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrdepay.html#id-1.2.114.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrdepay.html#id-1.2.114.6.4.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#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="" name="Example pipeline" link="gst-plugins-good-plugins-rtpamrpay.html#id-1.2.115.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpamrpay.html#id-1.2.115.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpamrpay.html#id-1.2.115.6.4.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#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="" name="Element Information" link="gst-plugins-good-plugins-rtpbvdepay.html#id-1.2.116.4.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvdepay.html#id-1.2.116.4.2.1.2"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbvpay.html#id-1.2.117.4.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbvpay.html#id-1.2.117.4.2.1.2"/> + <keyword type="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16depay.html#id-1.2.118.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16depay.html#id-1.2.118.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16depay.html#id-1.2.118.6.4.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#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="" name="Example pipeline" link="gst-plugins-good-plugins-rtpL16pay.html#id-1.2.119.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpL16pay.html#id-1.2.119.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpL16pay.html#id-1.2.119.6.4.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#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="" name="Element Information" link="gst-plugins-good-plugins-rtpj2kpay.html#id-1.2.120.7.3.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpj2kpay.html#id-1.2.120.7.3.1.2"/> <keyword type="struct" name="struct GstRtpJ2KPay" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"/> - <keyword type="property" name="The "buffer-list" property" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list"/> - <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="property" name="The “buffer-list†property" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjpegpay.html#id-1.2.121.7.4.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjpegpay.html#id-1.2.121.7.4.1.2"/> <keyword type="struct" name="struct GstRtpJPEGPay" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct"/> - <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"/> - <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"/> - <keyword type="property" name="The "buffer-list" property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"/> - <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="property" name="The “quality†property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"/> + <keyword type="property" name="The “type†property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"/> + <keyword type="property" name="The “buffer-list†property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsbcpay.html#id-1.2.122.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsbcpay.html#id-1.2.122.7.2.2"/> <keyword type="struct" name="struct GstRtpSBCPay" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"/> - <keyword type="property" name="The "min-frames" property" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"/> - <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="property" name="The “min-frames†property" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-rtspsrc.html#id-1.2.123.9.7"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtspsrc.html#id-1.2.123.9.8.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtspsrc.html#id-1.2.123.9.8.2"/> <keyword type="struct" name="struct GstRTSPSrc" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct"/> - <keyword type="property" name="The "debug" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug"/> - <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location"/> - <keyword type="property" name="The "protocols" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--protocols"/> - <keyword type="property" name="The "retry" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--retry"/> - <keyword type="property" name="The "timeout" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--timeout"/> - <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--latency"/> - <keyword type="property" name="The "tcp-timeout" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tcp-timeout"/> - <keyword type="property" name="The "connection-speed" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--connection-speed"/> - <keyword type="property" name="The "nat-method" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--nat-method"/> - <keyword type="property" name="The "do-rtcp" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtcp"/> - <keyword type="property" name="The "proxy" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy"/> - <keyword type="property" name="The "rtp-blocksize" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rtp-blocksize"/> - <keyword type="property" name="The "user-id" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-id"/> - <keyword type="property" name="The "user-pw" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-pw"/> - <keyword type="property" name="The "buffer-mode" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--buffer-mode"/> - <keyword type="property" name="The "port-range" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--port-range"/> - <keyword type="property" name="The "udp-buffer-size" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-buffer-size"/> - <keyword type="property" name="The "short-header" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--short-header"/> - <keyword type="property" name="The "do-rtsp-keep-alive" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive"/> - <keyword type="property" name="The "drop-on-latency" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency"/> - <keyword type="property" name="The "probation" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation"/> - <keyword type="property" name="The "udp-reconnect" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect"/> - <keyword type="property" name="The "proxy-id" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id"/> - <keyword type="property" name="The "proxy-pw" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw"/> - <keyword type="property" name="The "multicast-iface" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface"/> - <keyword type="property" name="The "ntp-sync" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"/> - <keyword type="property" name="The "use-pipeline-clock" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"/> - <keyword type="property" name="The "sdes" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes"/> - <keyword type="property" name="The "tls-validation-flags" property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags"/> - <keyword type="signal" name="The "handle-request" signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/> - <keyword type="signal" name="The "on-sdp" signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/> - <keyword type="signal" name="The "select-stream" signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/> - <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="property" name="The “debug†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug"/> + <keyword type="property" name="The “location†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location"/> + <keyword type="property" name="The “protocols†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--protocols"/> + <keyword type="property" name="The “retry†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--retry"/> + <keyword type="property" name="The “timeout†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--timeout"/> + <keyword type="property" name="The “latency†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--latency"/> + <keyword type="property" name="The “tcp-timeout†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tcp-timeout"/> + <keyword type="property" name="The “connection-speed†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--connection-speed"/> + <keyword type="property" name="The “nat-method†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--nat-method"/> + <keyword type="property" name="The “do-rtcp†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtcp"/> + <keyword type="property" name="The “proxy†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy"/> + <keyword type="property" name="The “rtp-blocksize†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rtp-blocksize"/> + <keyword type="property" name="The “user-id†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-id"/> + <keyword type="property" name="The “user-pw†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-pw"/> + <keyword type="property" name="The “buffer-mode†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--buffer-mode"/> + <keyword type="property" name="The “port-range†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--port-range"/> + <keyword type="property" name="The “udp-buffer-size†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-buffer-size"/> + <keyword type="property" name="The “short-header†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--short-header"/> + <keyword type="property" name="The “do-rtsp-keep-alive†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive"/> + <keyword type="property" name="The “drop-on-latency†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency"/> + <keyword type="property" name="The “probation†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation"/> + <keyword type="property" name="The “udp-reconnect†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect"/> + <keyword type="property" name="The “proxy-id†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id"/> + <keyword type="property" name="The “proxy-pw†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw"/> + <keyword type="property" name="The “multicast-iface†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface"/> + <keyword type="property" name="The “ntp-sync†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"/> + <keyword type="property" name="The “use-pipeline-clock†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"/> + <keyword type="property" name="The “sdes†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes"/> + <keyword type="property" name="The “tls-database†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-database"/> + <keyword type="property" name="The “tls-validation-flags†property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags"/> + <keyword type="signal" name="The “handle-request†signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/> + <keyword type="signal" name="The “on-sdp†signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/> + <keyword type="signal" name="The “select-stream†signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/> + <keyword type="signal" name="The “new-manager†signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-new-manager"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpbin.html#id-1.2.124.9.12"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpbin.html#id-1.2.124.9.13.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpbin.html#id-1.2.124.9.13.2"/> <keyword type="struct" name="struct GstRtpBin" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct"/> - <keyword type="property" name="The "do-lost" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost"/> - <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency"/> - <keyword type="property" name="The "sdes" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--sdes"/> - <keyword type="property" name="The "ignore-pt" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ignore-pt"/> - <keyword type="property" name="The "autoremove" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--autoremove"/> - <keyword type="property" name="The "buffer-mode" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--buffer-mode"/> - <keyword type="property" name="The "ntp-sync" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-sync"/> - <keyword type="property" name="The "use-pipeline-clock" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--use-pipeline-clock"/> - <keyword type="property" name="The "rtcp-sync" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync"/> - <keyword type="property" name="The "rtcp-sync-interval" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-interval"/> - <keyword type="property" name="The "drop-on-latency" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--drop-on-latency"/> - <keyword type="property" name="The "do-sync-event" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-sync-event"/> - <keyword type="property" name="The "do-retransmission" property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-retransmission"/> - <keyword type="signal" name="The "clear-pt-map" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-clear-pt-map"/> - <keyword type="signal" name="The "get-internal-session" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-internal-session"/> - <keyword type="signal" name="The "on-bye-ssrc" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-ssrc"/> - <keyword type="signal" name="The "on-bye-timeout" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-timeout"/> - <keyword type="signal" name="The "on-new-ssrc" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-ssrc"/> - <keyword type="signal" name="The "on-npt-stop" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-npt-stop"/> - <keyword type="signal" name="The "on-sender-timeout" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-timeout"/> - <keyword type="signal" name="The "on-ssrc-active" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-active"/> - <keyword type="signal" name="The "on-ssrc-collision" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-collision"/> - <keyword type="signal" name="The "on-ssrc-sdes" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-sdes"/> - <keyword type="signal" name="The "on-ssrc-validated" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-validated"/> - <keyword type="signal" name="The "on-timeout" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-timeout"/> - <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"/> - <keyword type="signal" name="The "reset-sync" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"/> - <keyword type="signal" name="The "payload-type-change" signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"/> - <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="property" name="The “do-lost†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost"/> + <keyword type="property" name="The “latency†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency"/> + <keyword type="property" name="The “sdes†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--sdes"/> + <keyword type="property" name="The “ignore-pt†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ignore-pt"/> + <keyword type="property" name="The “autoremove†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--autoremove"/> + <keyword type="property" name="The “buffer-mode†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--buffer-mode"/> + <keyword type="property" name="The “ntp-sync†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-sync"/> + <keyword type="property" name="The “use-pipeline-clock†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--use-pipeline-clock"/> + <keyword type="property" name="The “rtcp-sync†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync"/> + <keyword type="property" name="The “rtcp-sync-interval†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-interval"/> + <keyword type="property" name="The “drop-on-latency†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--drop-on-latency"/> + <keyword type="property" name="The “do-sync-event†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-sync-event"/> + <keyword type="property" name="The “do-retransmission†property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-retransmission"/> + <keyword type="signal" name="The “clear-pt-map†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-clear-pt-map"/> + <keyword type="signal" name="The “get-internal-session†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-internal-session"/> + <keyword type="signal" name="The “on-bye-ssrc†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-ssrc"/> + <keyword type="signal" name="The “on-bye-timeout†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-timeout"/> + <keyword type="signal" name="The “on-new-ssrc†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-ssrc"/> + <keyword type="signal" name="The “on-npt-stop†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-npt-stop"/> + <keyword type="signal" name="The “on-sender-timeout†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-timeout"/> + <keyword type="signal" name="The “on-ssrc-active†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-active"/> + <keyword type="signal" name="The “on-ssrc-collision†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-collision"/> + <keyword type="signal" name="The “on-ssrc-sdes†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-sdes"/> + <keyword type="signal" name="The “on-ssrc-validated†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-validated"/> + <keyword type="signal" name="The “on-timeout†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-timeout"/> + <keyword type="signal" name="The “request-pt-map†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"/> + <keyword type="signal" name="The “reset-sync†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"/> + <keyword type="signal" name="The “payload-type-change†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"/> + <keyword type="signal" name="The “new-jitterbuffer†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-new-jitterbuffer"/> + <keyword type="signal" name="The “request-aux-receiver†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver"/> + <keyword type="signal" name="The “request-aux-sender†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender"/> + <keyword type="signal" name="The “request-rtcp-decoder†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-decoder"/> + <keyword type="signal" name="The “request-rtcp-encoder†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-encoder"/> + <keyword type="signal" name="The “request-rtp-decoder†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder"/> + <keyword type="signal" name="The “request-rtp-encoder†signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfmux.html#id-1.2.125.6.3.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfmux.html#id-1.2.125.6.3.1.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#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="" name="Element Information" link="gst-plugins-good-plugins-rtpdtmfsrc.html#id-1.2.126.7.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpdtmfsrc.html#id-1.2.126.7.6.4.2"/> <keyword type="struct" name="struct GstRTPDTMFSrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct"/> - <keyword type="property" name="The "clock-rate" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"/> - <keyword type="property" name="The "packet-redundancy" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy"/> - <keyword type="property" name="The "pt" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt"/> - <keyword type="property" name="The "seqnum" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum"/> - <keyword type="property" name="The "seqnum-offset" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset"/> - <keyword type="property" name="The "ssrc" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc"/> - <keyword type="property" name="The "timestamp" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp"/> - <keyword type="property" name="The "timestamp-offset" property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.7.13.1"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.7.15.1"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.7.15.2"/> + <keyword type="property" name="The “clock-rate†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"/> + <keyword type="property" name="The “packet-redundancy†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy"/> + <keyword type="property" name="The “pt†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt"/> + <keyword type="property" name="The “seqnum†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum"/> + <keyword type="property" name="The “seqnum-offset†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset"/> + <keyword type="property" name="The “ssrc†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc"/> + <keyword type="property" name="The “timestamp†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp"/> + <keyword type="property" name="The “timestamp-offset†property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.8.11"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.8.12.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpjitterbuffer.html#id-1.2.127.8.12.2"/> <keyword type="struct" name="struct GstRtpJitterBuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct"/> - <keyword type="property" name="The "do-lost" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost"/> - <keyword type="property" name="The "drop-on-latency" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency"/> - <keyword type="property" name="The "latency" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency"/> - <keyword type="property" name="The "ts-offset" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--ts-offset"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--mode"/> - <keyword type="property" name="The "percent" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--percent"/> - <keyword type="property" name="The "do-retransmission" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission"/> - <keyword type="property" name="The "rtx-delay" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay"/> - <keyword type="property" name="The "rtx-delay-reorder" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder"/> - <keyword type="property" name="The "rtx-retry-period" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period"/> - <keyword type="property" name="The "rtx-retry-timeout" property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout"/> - <keyword type="signal" name="The "clear-pt-map" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map"/> - <keyword type="signal" name="The "handle-sync" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync"/> - <keyword type="signal" name="The "on-npt-stop" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"/> - <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"/> - <keyword type="signal" name="The "set-active" signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"/> - <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="property" name="The “do-lost†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost"/> + <keyword type="property" name="The “drop-on-latency†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency"/> + <keyword type="property" name="The “latency†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency"/> + <keyword type="property" name="The “ts-offset†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--ts-offset"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--mode"/> + <keyword type="property" name="The “percent†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--percent"/> + <keyword type="property" name="The “do-retransmission†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission"/> + <keyword type="property" name="The “rtx-delay†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay"/> + <keyword type="property" name="The “rtx-delay-reorder†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder"/> + <keyword type="property" name="The “rtx-retry-period†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period"/> + <keyword type="property" name="The “rtx-retry-timeout†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout"/> + <keyword type="property" name="The “stats†property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--stats"/> + <keyword type="signal" name="The “clear-pt-map†signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map"/> + <keyword type="signal" name="The “handle-sync†signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync"/> + <keyword type="signal" name="The “on-npt-stop†signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"/> + <keyword type="signal" name="The “request-pt-map†signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"/> + <keyword type="signal" name="The “set-active†signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpmux.html#id-1.2.128.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpmux.html#id-1.2.128.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpmux.html#id-1.2.128.7.4.2"/> <keyword type="struct" name="struct GstRTPMux" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct"/> - <keyword type="property" name="The "seqnum" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"/> - <keyword type="property" name="The "seqnum-offset" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset"/> - <keyword type="property" name="The "ssrc" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc"/> - <keyword type="property" name="The "timestamp-offset" property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.6.5.1"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.6.7.1"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.6.7.2"/> + <keyword type="property" name="The “seqnum†property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"/> + <keyword type="property" name="The “seqnum-offset†property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset"/> + <keyword type="property" name="The “ssrc†property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc"/> + <keyword type="property" name="The “timestamp-offset†property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.7.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.7.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpptdemux.html#id-1.2.129.7.6.2"/> <keyword type="struct" name="struct GstRtpPtDemux" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct"/> - <keyword type="signal" name="The "clear-pt-map" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map"/> - <keyword type="signal" name="The "new-payload-type" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type"/> - <keyword type="signal" name="The "payload-type-change" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change"/> - <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.7.10.1"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.7.12.1"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.7.12.2"/> + <keyword type="signal" name="The “clear-pt-map†signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map"/> + <keyword type="signal" name="The “new-payload-type†signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type"/> + <keyword type="signal" name="The “payload-type-change†signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change"/> + <keyword type="signal" name="The “request-pt-map†signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.8.11"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.8.12.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpsession.html#id-1.2.130.8.12.2"/> <keyword type="struct" name="struct GstRtpSession" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct"/> - <keyword type="property" name="The "bandwidth" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth"/> - <keyword type="property" name="The "internal-session" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session"/> - <keyword type="property" name="The "ntp-ns-base" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-ns-base"/> - <keyword type="property" name="The "num-active-sources" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-active-sources"/> - <keyword type="property" name="The "num-sources" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-sources"/> - <keyword type="property" name="The "rtcp-fraction" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-fraction"/> - <keyword type="property" name="The "sdes" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--sdes"/> - <keyword type="property" name="The "rtcp-rr-bandwidth" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rr-bandwidth"/> - <keyword type="property" name="The "rtcp-rs-bandwidth" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rs-bandwidth"/> - <keyword type="property" name="The "use-pipeline-clock" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock"/> - <keyword type="property" name="The "rtcp-min-interval" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval"/> - <keyword type="property" name="The "probation" property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation"/> - <keyword type="signal" name="The "clear-pt-map" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map"/> - <keyword type="signal" name="The "on-bye-ssrc" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc"/> - <keyword type="signal" name="The "on-bye-timeout" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-timeout"/> - <keyword type="signal" name="The "on-new-ssrc" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-ssrc"/> - <keyword type="signal" name="The "on-sender-timeout" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-timeout"/> - <keyword type="signal" name="The "on-ssrc-active" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-active"/> - <keyword type="signal" name="The "on-ssrc-collision" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-collision"/> - <keyword type="signal" name="The "on-ssrc-sdes" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-sdes"/> - <keyword type="signal" name="The "on-ssrc-validated" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated"/> - <keyword type="signal" name="The "on-timeout" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout"/> - <keyword type="signal" name="The "request-pt-map" signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map"/> - <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.6.4.1"/> - <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.6.6.1"/> - <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.6.6.2"/> + <keyword type="property" name="The “bandwidth†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth"/> + <keyword type="property" name="The “internal-session†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session"/> + <keyword type="property" name="The “ntp-ns-base†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-ns-base"/> + <keyword type="property" name="The “num-active-sources†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-active-sources"/> + <keyword type="property" name="The “num-sources†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-sources"/> + <keyword type="property" name="The “rtcp-fraction†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-fraction"/> + <keyword type="property" name="The “sdes†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--sdes"/> + <keyword type="property" name="The “rtcp-rr-bandwidth†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rr-bandwidth"/> + <keyword type="property" name="The “rtcp-rs-bandwidth†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rs-bandwidth"/> + <keyword type="property" name="The “use-pipeline-clock†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock"/> + <keyword type="property" name="The “rtcp-min-interval†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval"/> + <keyword type="property" name="The “probation†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation"/> + <keyword type="property" name="The “stats†property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--stats"/> + <keyword type="signal" name="The “clear-pt-map†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map"/> + <keyword type="signal" name="The “on-bye-ssrc†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc"/> + <keyword type="signal" name="The “on-bye-timeout†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-timeout"/> + <keyword type="signal" name="The “on-new-ssrc†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-ssrc"/> + <keyword type="signal" name="The “on-sender-timeout†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-timeout"/> + <keyword type="signal" name="The “on-ssrc-active†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-active"/> + <keyword type="signal" name="The “on-ssrc-collision†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-collision"/> + <keyword type="signal" name="The “on-ssrc-sdes†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-sdes"/> + <keyword type="signal" name="The “on-ssrc-validated†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated"/> + <keyword type="signal" name="The “on-timeout†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout"/> + <keyword type="signal" name="The “request-pt-map†signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtpssrcdemux.html#id-1.2.131.7.5.2"/> <keyword type="struct" name="struct GstRtpSsrcDemux" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct"/> - <keyword type="signal" name="The "clear-ssrc" signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"/> - <keyword type="signal" name="The "new-ssrc-pad" signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"/> - <keyword type="signal" name="The "removed-ssrc-pad" signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"/> - <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="signal" name="The “clear-ssrc†signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"/> + <keyword type="signal" name="The “new-ssrc-pad†signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"/> + <keyword type="signal" name="The “removed-ssrc-pad†signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtprtxsend.html#id-1.2.132.7.3.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtprtxsend.html#id-1.2.132.7.3.2.2"/> + <keyword type="struct" name="struct GstRtpRtxSend" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend-struct"/> + <keyword type="property" name="The “rtx-payload-type†property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--rtx-payload-type"/> + <keyword type="property" name="The “max-size-time†property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-time"/> + <keyword type="property" name="The “max-size-packets†property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-packets"/> + <keyword type="property" name="The “num-rtx-requests†property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-requests"/> + <keyword type="property" name="The “num-rtx-packets†property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-packets"/> + <keyword type="property" name="The “payload-type-map†property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--payload-type-map"/> + <keyword type="property" name="The “ssrc-map†property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--ssrc-map"/> + <keyword type="" name="Example pipelines" link="gst-plugins-good-plugins-rtprtxreceive.html#id-1.2.133.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-rtprtxreceive.html#id-1.2.133.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-rtprtxreceive.html#id-1.2.133.7.4.2"/> + <keyword type="struct" name="struct GstRtpRtxReceive" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct"/> + <keyword type="property" name="The “rtx-payload-types†property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--rtx-payload-types"/> + <keyword type="property" name="The “num-rtx-requests†property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests"/> + <keyword type="property" name="The “num-rtx-packets†property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets"/> + <keyword type="property" name="The “num-rtx-assoc-packets†property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets"/> + <keyword type="property" name="The “payload-type-map†property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-sbcparse.html#id-1.2.134.6.2.1.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-sbcparse.html#id-1.2.134.6.2.1.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#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="" name="Example pipelines" link="gst-plugins-good-plugins-scaletempo.html#id-1.2.135.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-scaletempo.html#id-1.2.135.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-scaletempo.html#id-1.2.135.7.5.2"/> <keyword type="struct" name="struct GstScaletempo" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"/> - <keyword type="property" name="The "overlap" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"/> - <keyword type="property" name="The "rate" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate"/> - <keyword type="property" name="The "search" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search"/> - <keyword type="property" name="The "stride" property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride"/> - <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="property" name="The “overlap†property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"/> + <keyword type="property" name="The “rate†property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate"/> + <keyword type="property" name="The “search†property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search"/> + <keyword type="property" name="The “stride†property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-shagadelictv.html#id-1.2.136.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shagadelictv.html#id-1.2.136.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shagadelictv.html#id-1.2.136.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-shapewipe.html#id-1.2.137.7.6"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shapewipe.html#id-1.2.137.7.7.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shapewipe.html#id-1.2.137.7.7.2"/> <keyword type="struct" name="struct GstShapeWipe" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct"/> - <keyword type="property" name="The "border" property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border"/> - <keyword type="property" name="The "position" property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position"/> - <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="property" name="The “border†property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border"/> + <keyword type="property" name="The “position†property" link="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-shout2send.html#id-1.2.138.9.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-shout2send.html#id-1.2.138.9.2.2"/> + <keyword type="struct" name="struct GstShout2send" link="gst-plugins-good-plugins-shout2send.html#GstShout2send-struct"/> + <keyword type="property" name="The “description†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--description"/> + <keyword type="property" name="The “genre†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--genre"/> + <keyword type="property" name="The “ip†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--ip"/> + <keyword type="property" name="The “mount†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--mount"/> + <keyword type="property" name="The “password†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--password"/> + <keyword type="property" name="The “port†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--port"/> + <keyword type="property" name="The “protocol†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--protocol"/> + <keyword type="property" name="The “streamname†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--streamname"/> + <keyword type="property" name="The “sync†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--sync"/> + <keyword type="property" name="The “url†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--url"/> + <keyword type="property" name="The “username†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--username"/> + <keyword type="property" name="The “public†property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--public"/> + <keyword type="signal" name="The “connection-problem†signal" link="gst-plugins-good-plugins-shout2send.html#GstShout2send-connection-problem"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smpte.html#id-1.2.139.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smpte.html#id-1.2.139.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smpte.html#id-1.2.139.7.5.2"/> <keyword type="struct" name="struct GstSMPTE" link="gst-plugins-good-plugins-smpte.html#GstSMPTE-struct"/> - <keyword type="property" name="The "border" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--border"/> - <keyword type="property" name="The "depth" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth"/> - <keyword type="property" name="The "fps" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--fps"/> - <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--type"/> - <keyword type="property" name="The "duration" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration"/> - <keyword type="property" name="The "invert" property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert"/> - <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="property" name="The “border†property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--border"/> + <keyword type="property" name="The “depth†property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth"/> + <keyword type="property" name="The “fps†property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--fps"/> + <keyword type="property" name="The “type†property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--type"/> + <keyword type="property" name="The “duration†property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration"/> + <keyword type="property" name="The “invert†property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-smptealpha.html#id-1.2.140.7.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-smptealpha.html#id-1.2.140.7.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-smptealpha.html#id-1.2.140.7.6.2"/> <keyword type="struct" name="struct GstSMPTEAlpha" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"/> - <keyword type="property" name="The "border" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/> - <keyword type="property" name="The "depth" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth"/> - <keyword type="property" name="The "position" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position"/> - <keyword type="property" name="The "type" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"/> - <keyword type="property" name="The "invert" property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"/> - <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="property" name="The “border†property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/> + <keyword type="property" name="The “depth†property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth"/> + <keyword type="property" name="The “position†property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position"/> + <keyword type="property" name="The “type†property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"/> + <keyword type="property" name="The “invert†property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-souphttpsrc.html#id-1.2.141.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-souphttpsrc.html#id-1.2.141.8.2.2"/> <keyword type="struct" name="struct GstSoupHTTPSrc" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct"/> - <keyword type="property" name="The "automatic-redirect" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect"/> - <keyword type="property" name="The "cookies" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies"/> - <keyword type="property" name="The "iradio-genre" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-genre"/> - <keyword type="property" name="The "iradio-mode" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-mode"/> - <keyword type="property" name="The "iradio-name" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-name"/> - <keyword type="property" name="The "iradio-title" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-title"/> - <keyword type="property" name="The "iradio-url" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-url"/> - <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--location"/> - <keyword type="property" name="The "proxy" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy"/> - <keyword type="property" name="The "user-agent" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-agent"/> - <keyword type="property" name="The "is-live" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--is-live"/> - <keyword type="property" name="The "proxy-id" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy-id"/> - <keyword type="property" name="The "proxy-pw" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy-pw"/> - <keyword type="property" name="The "user-id" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-id"/> - <keyword type="property" name="The "user-pw" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-pw"/> - <keyword type="property" name="The "extra-headers" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--extra-headers"/> - <keyword type="property" name="The "timeout" property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout"/> - <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="property" name="The “automatic-redirect†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect"/> + <keyword type="property" name="The “cookies†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies"/> + <keyword type="property" name="The “iradio-genre†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-genre"/> + <keyword type="property" name="The “iradio-mode†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-mode"/> + <keyword type="property" name="The “iradio-name†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-name"/> + <keyword type="property" name="The “iradio-title†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-title"/> + <keyword type="property" name="The “iradio-url†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-url"/> + <keyword type="property" name="The “location†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--location"/> + <keyword type="property" name="The “proxy†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy"/> + <keyword type="property" name="The “user-agent†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-agent"/> + <keyword type="property" name="The “is-live†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--is-live"/> + <keyword type="property" name="The “proxy-id†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy-id"/> + <keyword type="property" name="The “proxy-pw†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy-pw"/> + <keyword type="property" name="The “user-id†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-id"/> + <keyword type="property" name="The “user-pw†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-pw"/> + <keyword type="property" name="The “extra-headers†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--extra-headers"/> + <keyword type="property" name="The “timeout†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout"/> + <keyword type="property" name="The “compress†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--compress"/> + <keyword type="property" name="The “http-log-level†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--http-log-level"/> + <keyword type="property" name="The “keep-alive†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--keep-alive"/> + <keyword type="property" name="The “retries†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--retries"/> + <keyword type="property" name="The “ssl-ca-file†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-ca-file"/> + <keyword type="property" name="The “ssl-strict†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-strict"/> + <keyword type="property" name="The “ssl-use-system-ca-file†property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-use-system-ca-file"/> + <keyword type="" name="Example application" link="gst-plugins-good-plugins-spectrum.html#id-1.2.142.7.8"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-spectrum.html#id-1.2.142.7.9.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-spectrum.html#id-1.2.142.7.9.2"/> <keyword type="struct" name="struct GstSpectrum" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct"/> - <keyword type="property" name="The "bands" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands"/> - <keyword type="property" name="The "interval" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval"/> - <keyword type="property" name="The "message" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message"/> - <keyword type="property" name="The "threshold" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--threshold"/> - <keyword type="property" name="The "message-magnitude" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-magnitude"/> - <keyword type="property" name="The "message-phase" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase"/> - <keyword type="property" name="The "post-messages" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages"/> - <keyword type="property" name="The "multi-channel" property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel"/> - <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="property" name="The “bands†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands"/> + <keyword type="property" name="The “interval†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval"/> + <keyword type="property" name="The “message†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message"/> + <keyword type="property" name="The “threshold†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--threshold"/> + <keyword type="property" name="The “message-magnitude†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-magnitude"/> + <keyword type="property" name="The “message-phase†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase"/> + <keyword type="property" name="The “post-messages†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages"/> + <keyword type="property" name="The “multi-channel†property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexenc.html#id-1.2.143.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexenc.html#id-1.2.143.8.2.2"/> <keyword type="struct" name="struct GstSpeexEnc" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct"/> - <keyword type="property" name="The "abr" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr"/> - <keyword type="property" name="The "bitrate" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate"/> - <keyword type="property" name="The "complexity" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--complexity"/> - <keyword type="property" name="The "dtx" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--dtx"/> - <keyword type="property" name="The "last-message" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--last-message"/> - <keyword type="property" name="The "nframes" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--nframes"/> - <keyword type="property" name="The "quality" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--quality"/> - <keyword type="property" name="The "vad" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad"/> - <keyword type="property" name="The "vbr" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode"/> - <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="property" name="The “abr†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr"/> + <keyword type="property" name="The “bitrate†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate"/> + <keyword type="property" name="The “complexity†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--complexity"/> + <keyword type="property" name="The “dtx†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--dtx"/> + <keyword type="property" name="The “last-message†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--last-message"/> + <keyword type="property" name="The “nframes†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--nframes"/> + <keyword type="property" name="The “quality†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--quality"/> + <keyword type="property" name="The “vad†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad"/> + <keyword type="property" name="The “vbr†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-speexdec.html#id-1.2.144.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-speexdec.html#id-1.2.144.7.2.2"/> <keyword type="struct" name="struct GstSpeexDec" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct"/> - <keyword type="property" name="The "enh" property" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"/> - <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="property" name="The “enh†property" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"/> + <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-splitfilesrc.html#id-1.2.145.8.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-splitfilesrc.html#id-1.2.145.8.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-splitfilesrc.html#id-1.2.145.8.5.2"/> <keyword type="struct" name="struct GstSplitFileSrc" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct"/> - <keyword type="property" name="The "location" property" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location"/> - <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="property" name="The “location†property" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-streaktv.html#id-1.2.146.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-streaktv.html#id-1.2.146.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-streaktv.html#id-1.2.146.7.4.2"/> <keyword type="struct" name="struct GstStreakTV" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct"/> - <keyword type="property" name="The "feedback" property" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"/> - <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="property" name="The “feedback†property" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"/> + <keyword type="" name="Example launch lines" link="gst-plugins-good-plugins-taginject.html#id-1.2.147.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-taginject.html#id-1.2.147.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-taginject.html#id-1.2.147.7.4.2"/> <keyword type="struct" name="struct GstTagInject" link="gst-plugins-good-plugins-taginject.html#GstTagInject-struct"/> - <keyword type="property" name="The "tags" property" link="gst-plugins-good-plugins-taginject.html#GstTagInject--tags"/> - <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="property" name="The “tags†property" link="gst-plugins-good-plugins-taginject.html#GstTagInject--tags"/> + <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsrc.html#id-1.2.148.8.17"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsrc.html#id-1.2.148.8.18.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsrc.html#id-1.2.148.8.18.2"/> <keyword type="struct" name="struct GstUDPSrc" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct"/> - <keyword type="property" name="The "caps" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps"/> - <keyword type="property" name="The "multicast-group" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group"/> - <keyword type="property" name="The "port" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--port"/> - <keyword type="property" name="The "uri" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--uri"/> - <keyword type="property" name="The "sockfd" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sockfd"/> - <keyword type="property" name="The "buffer-size" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--buffer-size"/> - <keyword type="property" name="The "timeout" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--timeout"/> - <keyword type="property" name="The "closefd" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--closefd"/> - <keyword type="property" name="The "skip-first-bytes" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--skip-first-bytes"/> - <keyword type="property" name="The "sock" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sock"/> - <keyword type="property" name="The "auto-multicast" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--auto-multicast"/> - <keyword type="property" name="The "multicast-iface" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-iface"/> - <keyword type="property" name="The "reuse" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--reuse"/> - <keyword type="property" name="The "close-socket" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket"/> - <keyword type="property" name="The "socket" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket"/> - <keyword type="property" name="The "used-socket" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"/> - <keyword type="property" name="The "bind-address" property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address"/> - <keyword type="property" name="The "address" 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="property" name="The “caps†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps"/> + <keyword type="property" name="The “multicast-group†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group"/> + <keyword type="property" name="The “port†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--port"/> + <keyword type="property" name="The “uri†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--uri"/> + <keyword type="property" name="The “sockfd†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sockfd"/> + <keyword type="property" name="The “buffer-size†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--buffer-size"/> + <keyword type="property" name="The “timeout†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--timeout"/> + <keyword type="property" name="The “closefd†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--closefd"/> + <keyword type="property" name="The “skip-first-bytes†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--skip-first-bytes"/> + <keyword type="property" name="The “sock†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sock"/> + <keyword type="property" name="The “auto-multicast†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--auto-multicast"/> + <keyword type="property" name="The “multicast-iface†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-iface"/> + <keyword type="property" name="The “reuse†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--reuse"/> + <keyword type="property" name="The “close-socket†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket"/> + <keyword type="property" name="The “socket†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket"/> + <keyword type="property" name="The “used-socket†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"/> + <keyword type="property" name="The “bind-address†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address"/> + <keyword type="property" name="The “address†property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address"/> + <keyword type="" name="Examples" link="gst-plugins-good-plugins-udpsink.html#id-1.2.149.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-udpsink.html#id-1.2.149.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-udpsink.html#id-1.2.149.8.4.2"/> <keyword type="struct" name="struct GstUDPSink" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"/> - <keyword type="property" name="The "host" property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/> - <keyword type="property" name="The "port" property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/> - <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="property" name="The “host†property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/> + <keyword type="property" name="The “port†property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2src.html#id-1.2.150.9.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2src.html#id-1.2.150.9.2.2"/> <keyword type="struct" name="struct GstV4l2Src" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name"/> - <keyword type="property" name="The "flags" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags"/> - <keyword type="property" name="The "queue-size" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size"/> - <keyword type="property" name="The "always-copy" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy"/> - <keyword type="property" name="The "device-fd" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd"/> - <keyword type="property" name="The "brightness" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness"/> - <keyword type="property" name="The "contrast" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast"/> - <keyword type="property" name="The "decimate" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate"/> - <keyword type="property" name="The "hue" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue"/> - <keyword type="property" name="The "saturation" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation"/> - <keyword type="property" name="The "norm" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm"/> - <keyword type="property" name="The "io-mode" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode"/> - <keyword type="property" name="The "extra-controls" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls"/> - <keyword type="property" name="The "force-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"/> - <keyword type="property" name="The "pixel-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"/> - <keyword type="signal" name="The "prepare-format" signal" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name"/> + <keyword type="property" name="The “flags†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags"/> + <keyword type="property" name="The “queue-size†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size"/> + <keyword type="property" name="The “always-copy†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy"/> + <keyword type="property" name="The “device-fd†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd"/> + <keyword type="property" name="The “brightness†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness"/> + <keyword type="property" name="The “contrast†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast"/> + <keyword type="property" name="The “decimate†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate"/> + <keyword type="property" name="The “hue†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue"/> + <keyword type="property" name="The “saturation†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation"/> + <keyword type="property" name="The “norm†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm"/> + <keyword type="property" name="The “io-mode†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode"/> + <keyword type="property" name="The “extra-controls†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls"/> + <keyword type="property" name="The “force-aspect-ratio†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"/> + <keyword type="property" name="The “pixel-aspect-ratio†property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"/> + <keyword type="signal" name="The “prepare-format†signal" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2sink.html#id-1.2.151.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2sink.html#id-1.2.151.8.2.2"/> <keyword type="struct" name="struct GstV4l2Sink" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device"/> - <keyword type="property" name="The "device-fd" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-fd"/> - <keyword type="property" name="The "device-name" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-name"/> - <keyword type="property" name="The "flags" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--flags"/> - <keyword type="property" name="The "overlay-height" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-height"/> - <keyword type="property" name="The "overlay-left" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-left"/> - <keyword type="property" name="The "overlay-top" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-top"/> - <keyword type="property" name="The "overlay-width" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-width"/> - <keyword type="property" name="The "queue-size" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--queue-size"/> - <keyword type="property" name="The "brightness" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--brightness"/> - <keyword type="property" name="The "contrast" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--contrast"/> - <keyword type="property" name="The "hue" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--hue"/> - <keyword type="property" name="The "saturation" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--saturation"/> - <keyword type="property" name="The "crop-height" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-height"/> - <keyword type="property" name="The "crop-left" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-left"/> - <keyword type="property" name="The "crop-top" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-top"/> - <keyword type="property" name="The "crop-width" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-width"/> - <keyword type="property" name="The "min-queued-bufs" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs"/> - <keyword type="property" name="The "io-mode" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode"/> - <keyword type="property" name="The "norm" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm"/> - <keyword type="property" name="The "extra-controls" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls"/> - <keyword type="property" name="The "force-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"/> - <keyword type="property" name="The "pixel-aspect-ratio" property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device"/> + <keyword type="property" name="The “device-fd†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-fd"/> + <keyword type="property" name="The “device-name†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-name"/> + <keyword type="property" name="The “flags†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--flags"/> + <keyword type="property" name="The “overlay-height†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-height"/> + <keyword type="property" name="The “overlay-left†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-left"/> + <keyword type="property" name="The “overlay-top†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-top"/> + <keyword type="property" name="The “overlay-width†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-width"/> + <keyword type="property" name="The “queue-size†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--queue-size"/> + <keyword type="property" name="The “brightness†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--brightness"/> + <keyword type="property" name="The “contrast†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--contrast"/> + <keyword type="property" name="The “hue†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--hue"/> + <keyword type="property" name="The “saturation†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--saturation"/> + <keyword type="property" name="The “crop-height†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-height"/> + <keyword type="property" name="The “crop-left†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-left"/> + <keyword type="property" name="The “crop-top†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-top"/> + <keyword type="property" name="The “crop-width†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-width"/> + <keyword type="property" name="The “min-queued-bufs†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs"/> + <keyword type="property" name="The “io-mode†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode"/> + <keyword type="property" name="The “norm†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm"/> + <keyword type="property" name="The “extra-controls†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls"/> + <keyword type="property" name="The “force-aspect-ratio†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"/> + <keyword type="property" name="The “pixel-aspect-ratio†property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-v4l2radio.html#id-1.2.152.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-v4l2radio.html#id-1.2.152.8.2.2"/> <keyword type="struct" name="struct GstV4l2Radio" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct"/> - <keyword type="property" name="The "device" property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"/> - <keyword type="property" name="The "frequency" property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"/> - <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="property" name="The “device†property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"/> + <keyword type="property" name="The “frequency†property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-vertigotv.html#id-1.2.153.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vertigotv.html#id-1.2.153.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vertigotv.html#id-1.2.153.8.4.2"/> <keyword type="struct" name="struct GstVertigoTV" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct"/> - <keyword type="property" name="The "speed" property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed"/> - <keyword type="property" name="The "zoom-speed" property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed"/> - <keyword type="signal" name="The "reset-parms" signal" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms"/> - <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="property" name="The “speed†property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed"/> + <keyword type="property" name="The “zoom-speed†property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed"/> + <keyword type="signal" name="The “reset-parms†signal" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videobalance.html#id-1.2.154.8.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videobalance.html#id-1.2.154.8.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videobalance.html#id-1.2.154.8.4.2"/> <keyword type="struct" name="struct GstVideoBalance" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance-struct"/> - <keyword type="property" name="The "brightness" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness"/> - <keyword type="property" name="The "contrast" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--contrast"/> - <keyword type="property" name="The "hue" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue"/> - <keyword type="property" name="The "saturation" property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation"/> - <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="property" name="The “brightness†property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness"/> + <keyword type="property" name="The “contrast†property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--contrast"/> + <keyword type="property" name="The “hue†property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue"/> + <keyword type="property" name="The “saturation†property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation"/> <keyword type="struct" name="struct GstVideoBox" link="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct"/> - <keyword type="property" name="The "alpha" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha"/> - <keyword type="property" name="The "border-alpha" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha"/> - <keyword type="property" name="The "bottom" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--bottom"/> - <keyword type="property" name="The "fill" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--fill"/> - <keyword type="property" name="The "left" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--left"/> - <keyword type="property" name="The "right" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--right"/> - <keyword type="property" name="The "top" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--top"/> - <keyword type="property" name="The "autocrop" property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop"/> - <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="property" name="The “alpha†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha"/> + <keyword type="property" name="The “border-alpha†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha"/> + <keyword type="property" name="The “bottom†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--bottom"/> + <keyword type="property" name="The “fill†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--fill"/> + <keyword type="property" name="The “left†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--left"/> + <keyword type="property" name="The “right†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--right"/> + <keyword type="property" name="The “top†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--top"/> + <keyword type="property" name="The “autocrop†property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videocrop.html#id-1.2.156.7.6"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videocrop.html#id-1.2.156.7.7.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videocrop.html#id-1.2.156.7.7.2"/> <keyword type="struct" name="struct GstVideoCrop" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop-struct"/> - <keyword type="property" name="The "bottom" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom"/> - <keyword type="property" name="The "left" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left"/> - <keyword type="property" name="The "right" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--right"/> - <keyword type="property" name="The "top" property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top"/> - <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="property" name="The “bottom†property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom"/> + <keyword type="property" name="The “left†property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left"/> + <keyword type="property" name="The “right†property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--right"/> + <keyword type="property" name="The “top†property" link="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-videoflip.html#id-1.2.157.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videoflip.html#id-1.2.157.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videoflip.html#id-1.2.157.7.4.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 "method" property" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method"/> - <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="property" name="The “method†property" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method"/> + <keyword type="" name="Sample pipelines" link="gst-plugins-good-plugins-videomixer.html#id-1.2.158.4.5"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-videomixer.html#id-1.2.158.4.6.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-videomixer.html#id-1.2.158.4.6.2"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8dec.html#id-1.2.159.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8dec.html#id-1.2.159.7.2.2"/> <keyword type="struct" name="struct GstVP8Dec" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct"/> - <keyword type="property" name="The "deblocking-level" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level"/> - <keyword type="property" name="The "noise-level" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level"/> - <keyword type="property" name="The "post-processing" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing"/> - <keyword type="property" name="The "post-processing-flags" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags"/> - <keyword type="property" name="The "threads" property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads"/> - <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="property" name="The “deblocking-level†property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level"/> + <keyword type="property" name="The “noise-level†property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level"/> + <keyword type="property" name="The “post-processing†property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing"/> + <keyword type="property" name="The “post-processing-flags†property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags"/> + <keyword type="property" name="The “threads†property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-vp8enc.html#id-1.2.160.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-vp8enc.html#id-1.2.160.8.2.2"/> <keyword type="struct" name="struct GstVP8Enc" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc-struct"/> - <keyword type="property" name="The "arnr-maxframes" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes"/> - <keyword type="property" name="The "arnr-strength" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-strength"/> - <keyword type="property" name="The "arnr-type" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-type"/> - <keyword type="property" name="The "auto-alt-ref" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--auto-alt-ref"/> - <keyword type="property" name="The "buffer-initial-size" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-initial-size"/> - <keyword type="property" name="The "buffer-optimal-size" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-optimal-size"/> - <keyword type="property" name="The "buffer-size" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-size"/> - <keyword type="property" name="The "cpu-used" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cpu-used"/> - <keyword type="property" name="The "cq-level" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cq-level"/> - <keyword type="property" name="The "deadline" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--deadline"/> - <keyword type="property" name="The "dropframe-threshold" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--dropframe-threshold"/> - <keyword type="property" name="The "end-usage" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--end-usage"/> - <keyword type="property" name="The "error-resilient" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--error-resilient"/> - <keyword type="property" name="The "h-scaling-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--h-scaling-mode"/> - <keyword type="property" name="The "kf-max-dist" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-max-dist"/> - <keyword type="property" name="The "kf-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-mode"/> - <keyword type="property" name="The "lag-in-frames" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--lag-in-frames"/> - <keyword type="property" name="The "max-intra-bitrate-pct" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate-pct"/> - <keyword type="property" name="The "max-quantizer" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-quantizer"/> - <keyword type="property" name="The "min-quantizer" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--min-quantizer"/> - <keyword type="property" name="The "multipass-cache-file" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--multipass-cache-file"/> - <keyword type="property" name="The "multipass-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--multipass-mode"/> - <keyword type="property" name="The "noise-sensitivity" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--noise-sensitivity"/> - <keyword type="property" name="The "overshoot-pct" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot-pct"/> - <keyword type="property" name="The "resize-allowed" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-allowed"/> - <keyword type="property" name="The "resize-down-threshold" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-down-threshold"/> - <keyword type="property" name="The "resize-up-threshold" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-up-threshold"/> - <keyword type="property" name="The "sharpness" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--sharpness"/> - <keyword type="property" name="The "static-threshold" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--static-threshold"/> - <keyword type="property" name="The "target-bitrate" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--target-bitrate"/> - <keyword type="property" name="The "threads" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--threads"/> - <keyword type="property" name="The "token-partitions" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--token-partitions"/> - <keyword type="property" name="The "ts-layer-id" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-layer-id"/> - <keyword type="property" name="The "ts-number-layers" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-number-layers"/> - <keyword type="property" name="The "ts-periodicity" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-periodicity"/> - <keyword type="property" name="The "ts-rate-decimator" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-rate-decimator"/> - <keyword type="property" name="The "ts-target-bitrate" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-target-bitrate"/> - <keyword type="property" name="The "tuning" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--tuning"/> - <keyword type="property" name="The "twopass-vbr-bias-pct" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias-pct"/> - <keyword type="property" name="The "twopass-vbr-maxsection-pct" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection-pct"/> - <keyword type="property" name="The "twopass-vbr-minsection-pct" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection-pct"/> - <keyword type="property" name="The "undershoot-pct" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot-pct"/> - <keyword type="property" name="The "v-scaling-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--v-scaling-mode"/> - <keyword type="property" name="The "horizontal-scaling-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--horizontal-scaling-mode"/> - <keyword type="property" name="The "keyframe-max-dist" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-max-dist"/> - <keyword type="property" name="The "keyframe-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-mode"/> - <keyword type="property" name="The "max-intra-bitrate" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate"/> - <keyword type="property" name="The "overshoot" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot"/> - <keyword type="property" name="The "temporal-scalability-layer-id" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-layer-id"/> - <keyword type="property" name="The "temporal-scalability-number-layers" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-number-layers"/> - <keyword type="property" name="The "temporal-scalability-periodicity" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-periodicity"/> - <keyword type="property" name="The "temporal-scalability-rate-decimator" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-rate-decimator"/> - <keyword type="property" name="The "temporal-scalability-target-bitrate" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-target-bitrate"/> - <keyword type="property" name="The "twopass-vbr-bias" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias"/> - <keyword type="property" name="The "twopass-vbr-maxsection" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection"/> - <keyword type="property" name="The "twopass-vbr-minsection" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection"/> - <keyword type="property" name="The "undershoot" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot"/> - <keyword type="property" name="The "vertical-scaling-mode" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"/> - <keyword type="property" name="The "timebase" property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"/> - <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="property" name="The “arnr-maxframes†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes"/> + <keyword type="property" name="The “arnr-strength†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-strength"/> + <keyword type="property" name="The “arnr-type†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-type"/> + <keyword type="property" name="The “auto-alt-ref†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--auto-alt-ref"/> + <keyword type="property" name="The “buffer-initial-size†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-initial-size"/> + <keyword type="property" name="The “buffer-optimal-size†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-optimal-size"/> + <keyword type="property" name="The “buffer-size†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-size"/> + <keyword type="property" name="The “cpu-used†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cpu-used"/> + <keyword type="property" name="The “cq-level†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cq-level"/> + <keyword type="property" name="The “deadline†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--deadline"/> + <keyword type="property" name="The “dropframe-threshold†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--dropframe-threshold"/> + <keyword type="property" name="The “end-usage†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--end-usage"/> + <keyword type="property" name="The “error-resilient†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--error-resilient"/> + <keyword type="property" name="The “h-scaling-mode†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--h-scaling-mode"/> + <keyword type="property" name="The “kf-max-dist†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-max-dist"/> + <keyword type="property" name="The “kf-mode†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-mode"/> + <keyword type="property" name="The “lag-in-frames†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--lag-in-frames"/> + <keyword type="property" name="The “max-intra-bitrate-pct†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate-pct"/> + <keyword type="property" name="The “max-quantizer†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-quantizer"/> + <keyword type="property" name="The “min-quantizer†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--min-quantizer"/> + <keyword type="property" name="The “multipass-cache-file†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--multipass-cache-file"/> + <keyword type="property" name="The “multipass-mode†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--multipass-mode"/> + <keyword type="property" name="The “noise-sensitivity†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--noise-sensitivity"/> + <keyword type="property" name="The “overshoot-pct†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot-pct"/> + <keyword type="property" name="The “resize-allowed†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-allowed"/> + <keyword type="property" name="The “resize-down-threshold†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-down-threshold"/> + <keyword type="property" name="The “resize-up-threshold†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-up-threshold"/> + <keyword type="property" name="The “sharpness†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--sharpness"/> + <keyword type="property" name="The “static-threshold†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--static-threshold"/> + <keyword type="property" name="The “target-bitrate†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--target-bitrate"/> + <keyword type="property" name="The “threads†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--threads"/> + <keyword type="property" name="The “token-partitions†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--token-partitions"/> + <keyword type="property" name="The “ts-layer-id†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-layer-id"/> + <keyword type="property" name="The “ts-number-layers†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-number-layers"/> + <keyword type="property" name="The “ts-periodicity†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-periodicity"/> + <keyword type="property" name="The “ts-rate-decimator†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-rate-decimator"/> + <keyword type="property" name="The “ts-target-bitrate†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-target-bitrate"/> + <keyword type="property" name="The “tuning†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--tuning"/> + <keyword type="property" name="The “twopass-vbr-bias-pct†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias-pct"/> + <keyword type="property" name="The “twopass-vbr-maxsection-pct†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection-pct"/> + <keyword type="property" name="The “twopass-vbr-minsection-pct†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection-pct"/> + <keyword type="property" name="The “undershoot-pct†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot-pct"/> + <keyword type="property" name="The “v-scaling-mode†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--v-scaling-mode"/> + <keyword type="property" name="The “horizontal-scaling-mode†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--horizontal-scaling-mode"/> + <keyword type="property" name="The “keyframe-max-dist†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-max-dist"/> + <keyword type="property" name="The “keyframe-mode†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-mode"/> + <keyword type="property" name="The “max-intra-bitrate†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate"/> + <keyword type="property" name="The “overshoot†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot"/> + <keyword type="property" name="The “temporal-scalability-layer-id†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-layer-id"/> + <keyword type="property" name="The “temporal-scalability-number-layers†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-number-layers"/> + <keyword type="property" name="The “temporal-scalability-periodicity†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-periodicity"/> + <keyword type="property" name="The “temporal-scalability-rate-decimator†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-rate-decimator"/> + <keyword type="property" name="The “temporal-scalability-target-bitrate†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-target-bitrate"/> + <keyword type="property" name="The “twopass-vbr-bias†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias"/> + <keyword type="property" name="The “twopass-vbr-maxsection†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection"/> + <keyword type="property" name="The “twopass-vbr-minsection†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection"/> + <keyword type="property" name="The “undershoot†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot"/> + <keyword type="property" name="The “vertical-scaling-mode†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"/> + <keyword type="property" name="The “timebase†property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-warptv.html#id-1.2.161.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-warptv.html#id-1.2.161.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-warptv.html#id-1.2.161.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-wavenc.html#id-1.2.162.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavenc.html#id-1.2.162.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavenc.html#id-1.2.162.7.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#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="" name="Element Information" link="gst-plugins-good-plugins-waveformsink.html#id-1.2.163.5.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-waveformsink.html#id-1.2.163.5.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#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="" name="Element Information" link="gst-plugins-good-plugins-wavpackdec.html#id-1.2.164.6.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackdec.html#id-1.2.164.6.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#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="" name="Element Information" link="gst-plugins-good-plugins-wavpackenc.html#id-1.2.165.8.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackenc.html#id-1.2.165.8.2.2"/> <keyword type="struct" name="struct GstWavpackEnc" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct"/> - <keyword type="property" name="The "bitrate" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate"/> - <keyword type="property" name="The "bits-per-sample" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bits-per-sample"/> - <keyword type="property" name="The "correction-mode" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--correction-mode"/> - <keyword type="property" name="The "extra-processing" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--extra-processing"/> - <keyword type="property" name="The "joint-stereo-mode" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--joint-stereo-mode"/> - <keyword type="property" name="The "md5" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5"/> - <keyword type="property" name="The "mode" property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode"/> - <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="property" name="The “bitrate†property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate"/> + <keyword type="property" name="The “bits-per-sample†property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bits-per-sample"/> + <keyword type="property" name="The “correction-mode†property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--correction-mode"/> + <keyword type="property" name="The “extra-processing†property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--extra-processing"/> + <keyword type="property" name="The “joint-stereo-mode†property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--joint-stereo-mode"/> + <keyword type="property" name="The “md5†property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5"/> + <keyword type="property" name="The “mode†property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-wavpackparse.html#id-1.2.166.6.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavpackparse.html#id-1.2.166.6.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavpackparse.html#id-1.2.166.6.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#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="" name="Example launch line" link="gst-plugins-good-plugins-wavparse.html#id-1.2.167.7.4"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-wavparse.html#id-1.2.167.7.5.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-wavparse.html#id-1.2.167.7.5.2"/> <keyword type="struct" name="struct GstWavParse" link="gst-plugins-good-plugins-wavparse.html#GstWavParse-struct"/> - <keyword type="property" name="The "ignore-length" property" link="gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length"/> - <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="property" name="The “ignore-length†property" link="gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-webmmux.html#id-1.2.168.7.3"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-webmmux.html#id-1.2.168.7.4.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-webmmux.html#id-1.2.168.7.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#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="" name="Element Information" link="gst-plugins-good-plugins-ximagesrc.html#id-1.2.169.7.2.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-ximagesrc.html#id-1.2.169.7.2.2"/> <keyword type="struct" name="struct GstXImageSrc" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc-struct"/> - <keyword type="property" name="The "display-name" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name"/> - <keyword type="property" name="The "screen-num" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--screen-num"/> - <keyword type="property" name="The "show-pointer" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--show-pointer"/> - <keyword type="property" name="The "endx" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endx"/> - <keyword type="property" name="The "endy" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endy"/> - <keyword type="property" name="The "startx" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--startx"/> - <keyword type="property" name="The "starty" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--starty"/> - <keyword type="property" name="The "use-damage" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--use-damage"/> - <keyword type="property" name="The "remote" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--remote"/> - <keyword type="property" name="The "xid" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid"/> - <keyword type="property" name="The "xname" property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname"/> - <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="property" name="The “display-name†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name"/> + <keyword type="property" name="The “screen-num†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--screen-num"/> + <keyword type="property" name="The “show-pointer†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--show-pointer"/> + <keyword type="property" name="The “endx†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endx"/> + <keyword type="property" name="The “endy†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endy"/> + <keyword type="property" name="The “startx†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--startx"/> + <keyword type="property" name="The “starty†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--starty"/> + <keyword type="property" name="The “use-damage†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--use-damage"/> + <keyword type="property" name="The “remote†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--remote"/> + <keyword type="property" name="The “xid†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid"/> + <keyword type="property" name="The “xname†property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname"/> + <keyword type="" name="Example launch line" link="gst-plugins-good-plugins-y4menc.html#id-1.2.170.6.2"/> + <keyword type="" name="Element Information" link="gst-plugins-good-plugins-y4menc.html#id-1.2.170.6.3.1"/> + <keyword type="" name="Element Pads" link="gst-plugins-good-plugins-y4menc.html#id-1.2.170.6.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"/> - <keyword type="constant" name="ALPHA_METHOD_GREEN" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-GREEN:CAPS"/> - <keyword type="constant" name="ALPHA_METHOD_BLUE" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-BLUE:CAPS"/> - <keyword type="constant" name="ALPHA_METHOD_CUSTOM" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-CUSTOM:CAPS"/> - <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_BUFFER" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS"/> - <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_DISCONT" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-DISCONT:CAPS"/> - <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_KEY_FRAME" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-KEY-FRAME:CAPS"/> - <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-KEY-UNIT-EVENT:CAPS"/> - <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_MAX_SIZE" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-MAX-SIZE:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_IDENTITY" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_90R" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-90R:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_180" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-180:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_90L" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-90L:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_HORIZ" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-HORIZ:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_VERT" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-VERT:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_TRANS" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-TRANS:CAPS"/> - <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_OTHER" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-OTHER:CAPS"/> </functions> </book> diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html index a234fe6bd..ce6c1957e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html @@ -2,30 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>3gppmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: 3gppmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-aacparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-3gppmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-3gppmux.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-3gppmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-3gppmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-3gppmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-3gppmux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-aacparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-3gppmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,23 +32,101 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-3gppmux.top_of_page"></a>3gppmux</span></h2> <p>3gppmux — Muxer for 3GPP (.3gp) files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-3gppmux.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis"></pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-3gppmux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstQTMuxDtsMethods</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--dts-method" title="The “dts-method†property">dts-method</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--faststart" title="The “faststart†property">faststart</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--faststart-file" title="The “faststart-file†property">faststart-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--fragment-duration" title="The “fragment-duration†property">fragment-duration</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--moov-recovery-file" title="The “moov-recovery-file†property">moov-recovery-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--movie-timescale" title="The “movie-timescale†property">movie-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--presentation-time" title="The “presentation-time†property">presentation-time</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--streamable" title="The “streamable†property">streamable</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--trak-timescale" title="The “trak-timescale†property">trak-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="Gst3GPPMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-3gppmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux-struct" title="Gst3GPPMux">Gst3GPPMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-3gppmux.description"></a><h2>Description</h2> -<p> -This element merges streams (audio and video) into 3GPP (.3gp) files. -</p> -<p> -The following background intends to explain why various similar muxers -are present in this plugin. -</p> +<a name="gst-plugins-good-plugins-3gppmux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> Gst3GPPMux +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-3gppmux.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> -The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> +Gst3GPPMux implements + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and GstTagXmpWriter.</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-3gppmux.description"></a><h2>Description</h2> +<p>This element merges streams (audio and video) into 3GPP (.3gp) files.</p> +<p>The following background intends to explain why various similar muxers +are present in this plugin.</p> +<p>The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> QuickTime file format specification</a> served as basis for the MP4 file format specification (mp4mux), and as such the QuickTime file structure is nearly identical to the so-called ISO Base Media file format defined in @@ -58,45 +135,23 @@ In turn, the latter ISO Base Media format was further specialized as a Motion JPEG-2000 file format in ISO 15444-3 (mj2mux) and in various 3GPP(2) specs (3gppmux). The fragmented file features defined (only) in ISO Base Media are used by -ISMV files making up (a.o.) Smooth Streaming (ismlmux). -</p> -<p> -A few properties (movie-timescale, -trak-timescale) allow adjusting -some technical parameters, which might be useful in (rare) cases to resolve -compatibility issues in some situations. -</p> -<p> -Some other properties influence the result more fundamentally. +ISMV files making up (a.o.) Smooth Streaming (ismlmux).</p> +<p>A few properties (<a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--movie-timescale" title="The “movie-timescale†property"><span class="type">“movie-timescaleâ€</span></a>, <a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--trak-timescale" title="The “trak-timescale†property"><span class="type">“trak-timescaleâ€</span></a>) +allow adjusting some technical parameters, which might be useful in (rare) +cases to resolve compatibility issues in some situations.</p> +<p>Some other properties influence the result more fundamentally. A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, -somewhat contrary to this usually being called "the header". -However, a faststart file will -(with some effort) arrange this to be located near start of the file, -which then allows it e.g. to be played while downloading. -Alternatively, rather than having one chunk of metadata at start (or end), -there can be some metadata at start and most of the other data can be spread -out into fragments of fragment-duration. -If such fragmented layout is intended for streaming purposes, then -streamable allows foregoing to add -index metadata (at the end of file). -</p> -<p> -dts-method allows selecting a -method for managing input timestamps (stay tuned for 0.11 to have this -automagically settled). The default delta/duration method should handle nice -(aka perfect streams) just fine, but may experience problems otherwise -(e.g. input stream with re-ordered B-frames and/or with frame dropping). -The re-ordering approach re-assigns incoming timestamps in ascending order -to incoming buffers and offers an alternative in such cases. In cases where -that might fail, the remaining method can be tried, which is exact and -according to specs, but might experience playback on not so spec-wise players. -Note that this latter approach also requires one to enable -presentation-timestamp. -</p> -<p> -</p> +somewhat contrary to this usually being called "the header". However, a +<a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--faststart" title="The “faststart†property"><span class="type">“faststartâ€</span></a> file will (with some effort) arrange this to be located +near start of the file, which then allows it e.g. to be played while +downloading. Alternatively, rather than having one chunk of metadata at start +(or end), there can be some metadata at start and most of the other data can +be spread out into fragments of <a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--fragment-duration" title="The “fragment-duration†property"><span class="type">“fragment-durationâ€</span></a>. If such +fragmented layout is intended for streaming purposes, then +<a class="link" href="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--streamable" title="The “streamable†property"><span class="type">“streamableâ€</span></a> allows foregoing to add index metadata (at the end of +file).</p> <div class="refsect2"> -<a name="id-1.2.2.4.8.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.2.8.7"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -111,15 +166,11 @@ presentation-timestamp. Records a video stream captured from a v4l2 device, encodes it into H.263 and muxes it into an 3gp file. </div> -<p> -</p> -<p> -Documentation last reviewed on 2011-04-21 -</p> +<p>Documentation last reviewed on 2011-04-21</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.2.4.10.1"></a><h3>Element Information</h3> +<a name="id-1.2.2.8.8.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -145,7 +196,7 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="id-1.2.2.4.10.2"></a><h3>Element Pads</h3> +<a name="id-1.2.2.8.8.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -190,6 +241,30 @@ Documentation last reviewed on 2011-04-21 <tbody> <tr> <td><p><span class="term">name</span></p></td> +<td>subtitle_%u</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>request</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>text/x-raw, format=(string)utf8</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> <td>video_%u</td> </tr> <tr> @@ -248,11 +323,95 @@ Documentation last reviewed on 2011-04-21 </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-3gppmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-3gppmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-3gppmux.other_details"></a><h2>Types and Values</h2> +<div class="refsect2"> +<a name="Gst3GPPMux-struct"></a><h3>Gst3GPPMux</h3> +<pre class="programlisting">typedef struct _Gst3GPPMux Gst3GPPMux;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-3gppmux.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="Gst3GPPMux--dts-method"></a><h3>The <code class="literal">“dts-methodâ€</code> property</h3> +<pre class="programlisting"> “dts-method†<span class="type">GstQTMuxDtsMethods</span></pre> +<p>(DEPRECATED) Method to determine DTS time.</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: reorder</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--faststart"></a><h3>The <code class="literal">“faststartâ€</code> property</h3> +<pre class="programlisting"> “faststart†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>If the file should be formatted for faststart (headers first).</p> +<p>Flags: Read / Write</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--faststart-file"></a><h3>The <code class="literal">“faststart-fileâ€</code> property</h3> +<pre class="programlisting"> “faststart-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically.</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--fragment-duration"></a><h3>The <code class="literal">“fragment-durationâ€</code> property</h3> +<pre class="programlisting"> “fragment-duration†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Fragment durations in ms (produce a fragmented file if > 0).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--moov-recovery-file"></a><h3>The <code class="literal">“moov-recovery-fileâ€</code> property</h3> +<pre class="programlisting"> “moov-recovery-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--movie-timescale"></a><h3>The <code class="literal">“movie-timescaleâ€</code> property</h3> +<pre class="programlisting"> “movie-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Timescale to use in the movie (units per second).</p> +<p>Flags: Read / Write / Construct</p> +<p>Allowed values: >= 1</p> +<p>Default value: 1000</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--presentation-time"></a><h3>The <code class="literal">“presentation-timeâ€</code> property</h3> +<pre class="programlisting"> “presentation-time†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Calculate and include presentation/composition time (in addition to decoding time).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--streamable"></a><h3>The <code class="literal">“streamableâ€</code> property</h3> +<pre class="programlisting"> “streamable†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. (DEPRECATED, only valid for fragmented MP4).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="Gst3GPPMux--trak-timescale"></a><h3>The <code class="literal">“trak-timescaleâ€</code> property</h3> +<pre class="programlisting"> “trak-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Timescale to use for the tracks (units per second, 0 is automatic).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: 0</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 88042c63d..5d23e4431 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html +++ b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html @@ -2,29 +2,26 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>GstVideoMixerPad</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: GstVideoMixerPad</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="GstIirEqualizer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td> </td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-GstVideoMixerPad.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-GstVideoMixerPad.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-GstVideoMixerPad.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-GstVideoMixerPad.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="GstIirEqualizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><img src="right-insensitive.png" width="16" height="16" border="0"></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-GstVideoMixerPad"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -32,11 +29,12 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-GstVideoMixerPad.top_of_page"></a>GstVideoMixerPad</span></h2> <p>GstVideoMixerPad</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-GstVideoMixerPad.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis"></pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-GstVideoMixerPad.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> +</pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-GstVideoMixerPad.description"></a><h2>Description</h2> @@ -44,11 +42,14 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-GstVideoMixerPad.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-GstVideoMixerPad.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-GstVideoMixerPad.other_details"></a><h2>Types and Values</h2> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 695cb2df5..1ff4111ba 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>aacparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: aacparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-3gppmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-aasink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-aacparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-aacparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-aacparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aacparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aacparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-3gppmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-aasink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-aacparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,38 +30,39 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-aacparse.top_of_page"></a>aacparse</span></h2> <p>aacparse — AAC parser</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-aacparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstAacParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-aacparse.html#GstAacParse-struct" title="struct GstAacParse">GstAacParse</a>; -</pre> +<a name="GstAacParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-aacparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-aacparse.html#GstAacParse-struct" title="struct GstAacParse">GstAacParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aacparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstAacParse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstAacParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aacparse.description"></a><h2>Description</h2> -<p> -This is an AAC parser which handles both ADIF and ADTS stream formats. -</p> -<p> -As ADIF format is not framed, it is not seekable and stream duration cannot +<p>This is an AAC parser which handles both ADIF and ADTS stream formats.</p> +<p>As ADIF format is not framed, it is not seekable and stream duration cannot be determined either. However, ADTS format AAC clips can be seeked, and parser -can also estimate playback position and clip duration. -</p> -<p> -</p> +can also estimate playback position and clip duration.</p> <div class="refsect2"> -<a name="id-1.2.3.5.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.3.6.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -79,12 +75,10 @@ can also estimate playback position and clip duration. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.3.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.3.6.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -110,7 +104,7 @@ can also estimate playback position and clip duration. </div> <hr> <div class="refsect2"> -<a name="id-1.2.3.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.3.6.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -165,22 +159,23 @@ can also estimate playback position and clip duration. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-aacparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-aacparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-aacparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAacParse-struct"></a><h3>struct GstAacParse</h3> <pre class="programlisting">struct GstAacParse;</pre> -<p> -The opaque GstAacParse data structure. -</p> +<p>The opaque GstAacParse data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aacparse.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a> +<p><a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 7cc88a578..f5a385625 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aasink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>aasink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: aasink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-aacparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-ac3parse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-aasink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-aasink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-aasink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-aasink.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-aasink.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aasink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aasink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aasink.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aasink.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-aacparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-ac3parse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-aasink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,46 +32,119 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-aasink.top_of_page"></a>aasink</span></h2> <p>aasink — An ASCII art videosink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-aasink.synopsis"></a><h2>Synopsis</h2> -<a name="GstAASink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink-struct" title="struct GstAASink">GstAASink</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-aasink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</a> - +----GstAASink -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aasink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--brightness" title='The "brightness" property'>brightness</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--contrast" title='The "contrast" property'>contrast</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--dither" title='The "dither" property'>dither</a>" <span class="type">GstAASinkDitherers</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--driver" title='The "driver" property'>driver</a>" <span class="type">GstAASinkDrivers</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--frame-time" title='The "frame-time" property'>frame-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--frames-displayed" title='The "frames-displayed" property'>frames-displayed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--gamma" title='The "gamma" property'>gamma</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--height" title='The "height" property'>height</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--inversion" title='The "inversion" property'>inversion</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--randomval" title='The "randomval" property'>randomval</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--width" title='The "width" property'>width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--brightness" title="The “brightness†property">brightness</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--contrast" title="The “contrast†property">contrast</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAASinkDitherers</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--dither" title="The “dither†property">dither</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAASinkDrivers</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--driver" title="The “driver†property">driver</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--frame-time" title="The “frame-time†property">frame-time</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--frames-displayed" title="The “frames-displayed†property">frames-displayed</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--gamma" title="The “gamma†property">gamma</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--height" title="The “height†property">height</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--inversion" title="The “inversion†property">inversion</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--randomval" title="The “randomval†property">randomval</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink--width" title="The “width†property">width</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aasink.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed" title='The "frame-displayed" signal'>frame-displayed</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink-have-size" title='The "have-size" signal'>have-size</a>" : <code class="literal">Run Last</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed" title="The “frame-displayed†signal">frame-displayed</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink-have-size" title="The “have-size†signal">have-size</a></td> +<td class="signal_flags">Run Last</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAASink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-aasink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink-struct" title="struct GstAASink">GstAASink</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-aasink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</a> + <span class="lineart">╰──</span> GstAASink </pre> </div> <div class="refsect1"> @@ -86,7 +152,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.4.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.4.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -112,7 +178,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.4.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.4.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -143,7 +209,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-aasink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-aasink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-aasink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAASink-struct"></a><h3>struct GstAASink</h3> <pre class="programlisting">struct GstAASink;</pre> @@ -154,138 +223,165 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-aasink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAASink--brightness"></a><h3>The <code class="literal">"brightness"</code> property</h3> -<pre class="programlisting"> "brightness" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAASink--brightness"></a><h3>The <code class="literal">“brightnessâ€</code> property</h3> +<pre class="programlisting"> “brightness†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>brightness.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--contrast"></a><h3>The <code class="literal">"contrast"</code> property</h3> -<pre class="programlisting"> "contrast" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAASink--contrast"></a><h3>The <code class="literal">“contrastâ€</code> property</h3> +<pre class="programlisting"> “contrast†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>contrast.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--dither"></a><h3>The <code class="literal">"dither"</code> property</h3> -<pre class="programlisting"> "dither" <span class="type">GstAASinkDitherers</span> : Read / Write</pre> +<a name="GstAASink--dither"></a><h3>The <code class="literal">“ditherâ€</code> property</h3> +<pre class="programlisting"> “dither†<span class="type">GstAASinkDitherers</span></pre> <p>dither.</p> +<p>Flags: Read / Write</p> <p>Default value: no dithering</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--driver"></a><h3>The <code class="literal">"driver"</code> property</h3> -<pre class="programlisting"> "driver" <span class="type">GstAASinkDrivers</span> : Read / Write</pre> +<a name="GstAASink--driver"></a><h3>The <code class="literal">“driverâ€</code> property</h3> +<pre class="programlisting"> “driver†<span class="type">GstAASinkDrivers</span></pre> <p>driver.</p> +<p>Flags: Read / Write</p> <p>Default value: X11 driver 1.1</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--frame-time"></a><h3>The <code class="literal">"frame-time"</code> property</h3> -<pre class="programlisting"> "frame-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstAASink--frame-time"></a><h3>The <code class="literal">“frame-timeâ€</code> property</h3> +<pre class="programlisting"> “frame-time†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>frame time.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--frames-displayed"></a><h3>The <code class="literal">"frames-displayed"</code> property</h3> -<pre class="programlisting"> "frames-displayed" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstAASink--frames-displayed"></a><h3>The <code class="literal">“frames-displayedâ€</code> property</h3> +<pre class="programlisting"> “frames-displayed†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>frames displayed.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--gamma"></a><h3>The <code class="literal">"gamma"</code> property</h3> -<pre class="programlisting"> "gamma" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAASink--gamma"></a><h3>The <code class="literal">“gammaâ€</code> property</h3> +<pre class="programlisting"> “gamma†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>gamma.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,5]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--height"></a><h3>The <code class="literal">"height"</code> property</h3> -<pre class="programlisting"> "height" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAASink--height"></a><h3>The <code class="literal">“heightâ€</code> property</h3> +<pre class="programlisting"> “height†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>height.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--inversion"></a><h3>The <code class="literal">"inversion"</code> property</h3> -<pre class="programlisting"> "inversion" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstAASink--inversion"></a><h3>The <code class="literal">“inversionâ€</code> property</h3> +<pre class="programlisting"> “inversion†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>inversion.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--randomval"></a><h3>The <code class="literal">"randomval"</code> property</h3> -<pre class="programlisting"> "randomval" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAASink--randomval"></a><h3>The <code class="literal">“randomvalâ€</code> property</h3> +<pre class="programlisting"> “randomval†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>randomval.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAASink--width"></a><h3>The <code class="literal">"width"</code> property</h3> -<pre class="programlisting"> "width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAASink--width"></a><h3>The <code class="literal">“widthâ€</code> property</h3> +<pre class="programlisting"> “width†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>width.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aasink.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstAASink-frame-displayed"></a><h3>The <code class="literal">"frame-displayed"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink"><span class="type">GstAASink</span></a> *gstaasink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstAASink-frame-displayed"></a><h3>The <code class="literal">“frame-displayedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink"><span class="type">GstAASink</span></a> *gstaasink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.4.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstaasink</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstaasink</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstAASink-have-size"></a><h3>The <code class="literal">"have-size"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink"><span class="type">GstAASink</span></a> *gstaasink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstAASink-have-size"></a><h3>The <code class="literal">“have-sizeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink"><span class="type">GstAASink</span></a> *gstaasink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.4.12.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstaasink</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstaasink</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f286a64ee..02fa22bbc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>ac3parse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: ac3parse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-aasink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-agingtv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-ac3parse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-ac3parse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-ac3parse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ac3parse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ac3parse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-aasink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-agingtv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-ac3parse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,33 +30,36 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-ac3parse.top_of_page"></a>ac3parse</span></h2> <p>ac3parse — AC3 parser</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-ac3parse.synopsis"></a><h2>Synopsis</h2> -<a name="GstAc3Parse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-ac3parse.html#GstAc3Parse-struct" title="struct GstAc3Parse">GstAc3Parse</a>; -</pre> +<a name="GstAc3Parse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-ac3parse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-ac3parse.html#GstAc3Parse-struct" title="struct GstAc3Parse">GstAc3Parse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-ac3parse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstAc3Parse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstAc3Parse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-ac3parse.description"></a><h2>Description</h2> -<p> -This is an AC3 parser. -</p> -<p> -</p> +<p>This is an AC3 parser.</p> <div class="refsect2"> -<a name="id-1.2.5.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.5.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -74,12 +72,10 @@ This is an AC3 parser. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.5.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.5.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -105,7 +101,7 @@ This is an AC3 parser. </div> <hr> <div class="refsect2"> -<a name="id-1.2.5.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.5.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -176,22 +172,23 @@ This is an AC3 parser. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-ac3parse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-ac3parse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-ac3parse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAc3Parse-struct"></a><h3>struct GstAc3Parse</h3> <pre class="programlisting">struct GstAc3Parse;</pre> -<p> -The opaque GstAc3Parse object -</p> +<p>The opaque GstAc3Parse object</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-ac3parse.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span> +<p><a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0f30eba2d..36e6ae972 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>agingtv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: agingtv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-ac3parse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-alpha.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-agingtv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-agingtv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-agingtv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-agingtv.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-agingtv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-agingtv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-agingtv.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-ac3parse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-alpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-agingtv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,44 +31,70 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-agingtv.top_of_page"></a>agingtv</span></h2> <p>agingtv — AgingTV adds age to video input using scratches and dust</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-agingtv.synopsis"></a><h2>Synopsis</h2> -<a name="GstAgingTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV-struct" title="struct GstAgingTV">GstAgingTV</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-agingtv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstAgingTV -</pre> +<a name="gst-plugins-good-plugins-agingtv.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging" title="The “color-aging†property">color-aging</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts" title="The “dusts†property">dusts</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits" title="The “pits†property">pits</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines" title="The “scratch-lines†property">scratch-lines</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAgingTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-agingtv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV-struct" title="struct GstAgingTV">GstAgingTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-agingtv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging" title='The "color-aging" property'>color-aging</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts" title='The "dusts" property'>dusts</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits" title='The "pits" property'>pits</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines" title='The "scratch-lines" property'>scratch-lines</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-agingtv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstAgingTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-agingtv.description"></a><h2>Description</h2> -<p> -AgingTV ages a video stream in realtime, changes the colors and adds -scratches and dust. -</p> -<p> -</p> +<p>AgingTV ages a video stream in realtime, changes the colors and adds +scratches and dust.</p> <div class="refsect2"> -<a name="id-1.2.6.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.6.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -87,12 +107,10 @@ scratches and dust. </div> This pipeline shows the effect of agingtv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.6.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.6.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -118,7 +136,7 @@ scratches and dust. </div> <hr> <div class="refsect2"> -<a name="id-1.2.6.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.6.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,7 +191,10 @@ scratches and dust. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-agingtv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-agingtv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-agingtv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAgingTV-struct"></a><h3>struct GstAgingTV</h3> <pre class="programlisting">struct GstAgingTV;</pre> @@ -184,30 +205,34 @@ scratches and dust. <div class="refsect1"> <a name="gst-plugins-good-plugins-agingtv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAgingTV--color-aging"></a><h3>The <code class="literal">"color-aging"</code> property</h3> -<pre class="programlisting"> "color-aging" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstAgingTV--color-aging"></a><h3>The <code class="literal">“color-agingâ€</code> property</h3> +<pre class="programlisting"> “color-aging†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Color Aging.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstAgingTV--dusts"></a><h3>The <code class="literal">"dusts"</code> property</h3> -<pre class="programlisting"> "dusts" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstAgingTV--dusts"></a><h3>The <code class="literal">“dustsâ€</code> property</h3> +<pre class="programlisting"> “dusts†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Dusts.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstAgingTV--pits"></a><h3>The <code class="literal">"pits"</code> property</h3> -<pre class="programlisting"> "pits" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstAgingTV--pits"></a><h3>The <code class="literal">“pitsâ€</code> property</h3> +<pre class="programlisting"> “pits†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Pits.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstAgingTV--scratch-lines"></a><h3>The <code class="literal">"scratch-lines"</code> property</h3> -<pre class="programlisting"> "scratch-lines" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstAgingTV--scratch-lines"></a><h3>The <code class="literal">“scratch-linesâ€</code> property</h3> +<pre class="programlisting"> “scratch-lines†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Number of scratch lines.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 20</p> <p>Default value: 7</p> </div> @@ -215,6 +240,6 @@ scratches and dust. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 dbe4d07fe..97ca855b7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>alawdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: alawdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-alphacolor.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-alawenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-alawdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-alawdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-alawdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alawdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alawdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-alphacolor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-alawenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-alawdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,32 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-alawdec.top_of_page"></a>alawdec</span></h2> <p>alawdec — Convert 8bit A law to 16bit PCM</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-alawdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstALawDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct" title="struct GstALawDec">GstALawDec</a>; -</pre> +<a name="GstALawDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-alawdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct" title="struct GstALawDec">GstALawDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-alawdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstALawDec +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstALawDec </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-alawdec.description"></a><h2>Description</h2> -<p> -This element decodes alaw audio. Alaw coding is also known as G.711. -</p> +<p>This element decodes alaw audio. Alaw coding is also known as G.711.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.9.5.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.9.6.2.1.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="id-1.2.9.5.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.9.6.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -141,7 +141,10 @@ This element decodes alaw audio. Alaw coding is also known as G.711. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-alawdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-alawdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-alawdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstALawDec-struct"></a><h3>struct GstALawDec</h3> <pre class="programlisting">struct GstALawDec;</pre> @@ -152,6 +155,6 @@ This element decodes alaw audio. Alaw coding is also known as G.711. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f433e146b..704941004 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>alawenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: alawenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-alawdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-amrparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-alawenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-alawenc.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alawenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alawenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-alawdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-amrparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-alawenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,23 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-alawenc.top_of_page"></a>alawenc</span></h2> <p>alawenc — Convert 16bit PCM to 8bit A law</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-alawenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstALawDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct" title="struct GstALawDec">GstALawDec</a>; -struct <a class="link" href="gst-plugins-good-plugins-alawenc.html#GstALawEnc" title="struct GstALawEnc">GstALawEnc</a>; +<a name="GstALawDec"></a><a name="GstALawEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-alawenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-alawenc.html#GstALawEnc-struct" title="struct GstALawEnc">GstALawEnc</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-alawenc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstALawEnc </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-alawenc.description"></a><h2>Description</h2> -<p> -This element encode alaw audio. Alaw coding is also known as G.711. -</p> +<p>This element encode alaw audio. Alaw coding is also known as G.711.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.10.4.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.10.7.2.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -75,7 +86,7 @@ This element encode alaw audio. Alaw coding is also known as G.711. </div> <hr> <div class="refsect2"> -<a name="id-1.2.10.4.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.10.7.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -130,25 +141,13 @@ This element encode alaw audio. Alaw coding is also known as G.711. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-alawenc.details"></a><h2>Details</h2> -<div class="refsect2"> -<a name="GstALawDec-struct"></a><h3>struct GstALawDec</h3> -<pre class="programlisting">struct GstALawDec;</pre> -<p> -</p> +<a name="gst-plugins-good-plugins-alawenc.functions_details"></a><h2>Functions</h2> </div> -<hr> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-alawenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> -<a name="GstALawEnc"></a><h3>struct GstALawEnc</h3> -<pre class="programlisting">struct GstALawEnc { - GstElement element; - - GstPad *sinkpad,*srcpad; - - gint channels; - gint rate; -}; -</pre> +<a name="GstALawEnc-struct"></a><h3>struct GstALawEnc</h3> +<pre class="programlisting">struct GstALawEnc;</pre> <p> </p> </div> @@ -156,6 +155,6 @@ This element encode alaw audio. Alaw coding is also known as G.711. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 ca89e0de6..1143e7c26 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alpha.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>alpha</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: alpha</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-agingtv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-alphacolor.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-alpha.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-alpha.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-alpha.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-alpha.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alpha.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alpha.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alpha.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-agingtv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-alphacolor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-alpha"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,52 +31,107 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-alpha.top_of_page"></a>alpha</span></h2> <p>alpha — Adds an alpha channel to video - uniform or via chroma-keying</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-alpha.synopsis"></a><h2>Synopsis</h2> -<a name="GstAlpha"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha-struct" title="struct GstAlpha">GstAlpha</a>; -enum <a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlphaMethod" title="enum GstAlphaMethod">GstAlphaMethod</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-alpha.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstAlpha -</pre> +<a name="gst-plugins-good-plugins-alpha.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha" title="The “alpha†property">alpha</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--angle" title="The “angle†property">angle</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlphaMethod" title="enum GstAlphaMethod"><span class="type">GstAlphaMethod</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--method" title="The “method†property">method</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--noise-level" title="The “noise-level†property">noise-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--target-b" title="The “target-b†property">target-b</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--target-g" title="The “target-g†property">target-g</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--target-r" title="The “target-r†property">target-r</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity" title="The “black-sensitivity†property">black-sensitivity</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity" title="The “white-sensitivity†property">white-sensitivity</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough" title="The “prefer-passthrough†property">prefer-passthrough</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAlpha"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-alpha.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody> +<tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha-struct" title="struct GstAlpha">GstAlpha</a></td> +</tr> +<tr> +<td class="datatype_keyword">enum</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlphaMethod" title="enum GstAlphaMethod">GstAlphaMethod</a></td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-alpha.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha" title='The "alpha" property'>alpha</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--angle" title='The "angle" property'>angle</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--method" title='The "method" property'>method</a>" <a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlphaMethod" title="enum GstAlphaMethod"><span class="type">GstAlphaMethod</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--noise-level" title='The "noise-level" property'>noise-level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--target-b" title='The "target-b" property'>target-b</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--target-g" title='The "target-g" property'>target-g</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--target-r" title='The "target-r" property'>target-r</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity" title='The "black-sensitivity" property'>black-sensitivity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity" title='The "white-sensitivity" property'>white-sensitivity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough" title='The "prefer-passthrough" property'>prefer-passthrough</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-alpha.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstAlpha </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-alpha.description"></a><h2>Description</h2> -<p> -The alpha element adds an alpha channel to a video stream. The values +<p>The alpha element adds an alpha channel to a video stream. The values of the alpha channel can be either be set to a constant or can be dynamically calculated via chroma keying, e.g. blue can be set as -the transparent color. -</p> -<p> -Sample pipeline: -</p> +the transparent color.</p> +<p>Sample pipeline:</p> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,14 +147,13 @@ Sample pipeline: </table> </div> -<p> This pipeline adds a alpha channel to the SMPTE color bars +<p> with green as the transparent color and mixes the output with -a snow video stream. -</p> +a snow video stream.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.7.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.7.7.5.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -133,7 +181,7 @@ Jan Schmidt <thaytan@noraisin.net></td> </div> <hr> <div class="refsect2"> -<a name="id-1.2.7.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.7.7.5.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -188,7 +236,10 @@ Jan Schmidt <thaytan@noraisin.net></td> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-alpha.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-alpha.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-alpha.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAlpha-struct"></a><h3>struct GstAlpha</h3> <pre class="programlisting">struct GstAlpha;</pre> @@ -198,126 +249,141 @@ Jan Schmidt <thaytan@noraisin.net></td> <hr> <div class="refsect2"> <a name="GstAlphaMethod"></a><h3>enum GstAlphaMethod</h3> -<pre class="programlisting">typedef enum { - ALPHA_METHOD_SET, - ALPHA_METHOD_GREEN, - ALPHA_METHOD_BLUE, - ALPHA_METHOD_CUSTOM, -} GstAlphaMethod; -</pre> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.7.9.3.3"></a><h4>Members</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="300px" class="enum_members_name"> +<col class="enum_members_description"> +<col width="200px" class="enum_members_annotations"> </colgroup> <tbody> <tr> -<td><p><a name="ALPHA-METHOD-SET:CAPS"></a><span class="term"><code class="literal">ALPHA_METHOD_SET</code></span></p></td> -<td>Set/adjust alpha channel +<td class="enum_member_name"><p><a name="ALPHA-METHOD-SET:CAPS"></a>ALPHA_METHOD_SET</p></td> +<td class="enum_member_description"> +<p>Set/adjust alpha channel</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="ALPHA-METHOD-GREEN:CAPS"></a><span class="term"><code class="literal">ALPHA_METHOD_GREEN</code></span></p></td> -<td>Chroma Key green +<td class="enum_member_name"><p><a name="ALPHA-METHOD-GREEN:CAPS"></a>ALPHA_METHOD_GREEN</p></td> +<td class="enum_member_description"> +<p>Chroma Key green</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="ALPHA-METHOD-BLUE:CAPS"></a><span class="term"><code class="literal">ALPHA_METHOD_BLUE</code></span></p></td> -<td>Chroma Key blue +<td class="enum_member_name"><p><a name="ALPHA-METHOD-BLUE:CAPS"></a>ALPHA_METHOD_BLUE</p></td> +<td class="enum_member_description"> +<p>Chroma Key blue</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="ALPHA-METHOD-CUSTOM:CAPS"></a><span class="term"><code class="literal">ALPHA_METHOD_CUSTOM</code></span></p></td> -<td>Chroma Key on target_r/g/b +<td class="enum_member_name"><p><a name="ALPHA-METHOD-CUSTOM:CAPS"></a>ALPHA_METHOD_CUSTOM</p></td> +<td class="enum_member_description"> +<p>Chroma Key on target_r/g/b</p> </td> +<td class="enum_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> +</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-alpha.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAlpha--alpha"></a><h3>The <code class="literal">"alpha"</code> property</h3> -<pre class="programlisting"> "alpha" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstAlpha--alpha"></a><h3>The <code class="literal">“alphaâ€</code> property</h3> +<pre class="programlisting"> “alpha†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>The value for the alpha channel.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--angle"></a><h3>The <code class="literal">"angle"</code> property</h3> -<pre class="programlisting"> "angle" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAlpha--angle"></a><h3>The <code class="literal">“angleâ€</code> property</h3> +<pre class="programlisting"> “angle†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Size of the colorcube to change.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,90]</p> <p>Default value: 20</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--method"></a><h3>The <code class="literal">"method"</code> property</h3> -<pre class="programlisting"> "method" <a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlphaMethod" title="enum GstAlphaMethod"><span class="type">GstAlphaMethod</span></a> : Read / Write</pre> +<a name="GstAlpha--method"></a><h3>The <code class="literal">“methodâ€</code> property</h3> +<pre class="programlisting"> “method†<a class="link" href="gst-plugins-good-plugins-alpha.html#GstAlphaMethod" title="enum GstAlphaMethod"><span class="type">GstAlphaMethod</span></a></pre> <p>How the alpha channels should be created.</p> +<p>Flags: Read / Write</p> <p>Default value: Set/adjust alpha channel</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--noise-level"></a><h3>The <code class="literal">"noise-level"</code> property</h3> -<pre class="programlisting"> "noise-level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAlpha--noise-level"></a><h3>The <code class="literal">“noise-levelâ€</code> property</h3> +<pre class="programlisting"> “noise-level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Size of noise radius.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,64]</p> <p>Default value: 2</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--target-b"></a><h3>The <code class="literal">"target-b"</code> property</h3> -<pre class="programlisting"> "target-b" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstAlpha--target-b"></a><h3>The <code class="literal">“target-bâ€</code> property</h3> +<pre class="programlisting"> “target-b†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The blue color value for custom RGB chroma keying.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 255</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--target-g"></a><h3>The <code class="literal">"target-g"</code> property</h3> -<pre class="programlisting"> "target-g" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstAlpha--target-g"></a><h3>The <code class="literal">“target-gâ€</code> property</h3> +<pre class="programlisting"> “target-g†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The green color value for custom RGB chroma keying.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 255</p> <p>Default value: 255</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--target-r"></a><h3>The <code class="literal">"target-r"</code> property</h3> -<pre class="programlisting"> "target-r" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstAlpha--target-r"></a><h3>The <code class="literal">“target-râ€</code> property</h3> +<pre class="programlisting"> “target-r†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The red color value for custom RGB chroma keying.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 255</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--black-sensitivity"></a><h3>The <code class="literal">"black-sensitivity"</code> property</h3> -<pre class="programlisting"> "black-sensitivity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstAlpha--black-sensitivity"></a><h3>The <code class="literal">“black-sensitivityâ€</code> property</h3> +<pre class="programlisting"> “black-sensitivity†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Sensitivity to dark colors.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 128</p> <p>Default value: 100</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--white-sensitivity"></a><h3>The <code class="literal">"white-sensitivity"</code> property</h3> -<pre class="programlisting"> "white-sensitivity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstAlpha--white-sensitivity"></a><h3>The <code class="literal">“white-sensitivityâ€</code> property</h3> +<pre class="programlisting"> “white-sensitivity†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Sensitivity to bright colors.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 128</p> <p>Default value: 100</p> </div> <hr> <div class="refsect2"> -<a name="GstAlpha--prefer-passthrough"></a><h3>The <code class="literal">"prefer-passthrough"</code> property</h3> -<pre class="programlisting"> "prefer-passthrough" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstAlpha--prefer-passthrough"></a><h3>The <code class="literal">“prefer-passthroughâ€</code> property</h3> +<pre class="programlisting"> “prefer-passthrough†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Don't do any processing for alpha=1.0 if possible.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 43b10b604..490ba2650 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html +++ b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>alphacolor</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: alphacolor</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-alpha.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-alawdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-alphacolor.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-alphacolor.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-alphacolor.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alphacolor.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-alphacolor.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-alpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-alawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-alphacolor"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,35 +30,38 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-alphacolor.top_of_page"></a>alphacolor</span></h2> <p>alphacolor — ARGB from/to AYUV colorspace conversion preserving the alpha channel</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-alphacolor.synopsis"></a><h2>Synopsis</h2> -<a name="GstAlphaColor"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct" title="struct GstAlphaColor">GstAlphaColor</a>; -</pre> +<a name="GstAlphaColor"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-alphacolor.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct" title="struct GstAlphaColor">GstAlphaColor</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-alphacolor.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstAlphaColor +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstAlphaColor </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-alphacolor.description"></a><h2>Description</h2> -<p> -The alphacolor element does memory-efficient (in-place) colourspace +<p>The alphacolor element does memory-efficient (in-place) colourspace conversion from RGBA to AYUV or AYUV to RGBA while preserving the -alpha channel. -</p> -<p> -Sample pipeline: -</p> +alpha channel.</p> +<p>Sample pipeline:</p> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -77,93 +75,15 @@ Sample pipeline: </table> </div> +<p></p> <p> </p> -<div class="refsynopsisdiv"> -<h2>Synopsis</h2> -<div class="refsect2"> -<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"> -<col> -</colgroup> -<tbody> -<tr> -<td><p><span class="term">plugin</span></p></td> -<td> - <a class="link" href="gst-plugins-good-plugins-plugin-alphacolor.html#plugin-alphacolor">alphacolor</a> - </td> -</tr> -<tr> -<td><p><span class="term">author</span></p></td> -<td>Wim Taymans <wim.taymans@gmail.com></td> -</tr> -<tr> -<td><p><span class="term">class</span></p></td> -<td>Filter/Converter/Video</td> -</tr> -</tbody> -</table></div> </div> -<hr> -<div class="refsect2"> -<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"> -<col> -</colgroup> -<tbody> -<tr> -<td><p><span class="term">name</span></p></td> -<td>sink</td> -</tr> -<tr> -<td><p><span class="term">direction</span></p></td> -<td>sink</td> -</tr> -<tr> -<td><p><span class="term">presence</span></p></td> -<td>always</td> -</tr> -<tr> -<td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBA, BGRA, ARGB, ABGR, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> -</tr> -</tbody> -</table></div> -<div class="variablelist"><table border="0" class="variablelist"> -<colgroup> -<col align="left" valign="top"> -<col> -</colgroup> -<tbody> -<tr> -<td><p><span class="term">name</span></p></td> -<td>src</td> -</tr> -<tr> -<td><p><span class="term">direction</span></p></td> -<td>source</td> -</tr> -<tr> -<td><p><span class="term">presence</span></p></td> -<td>always</td> -</tr> -<tr> -<td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ RGBA, BGRA, ARGB, ABGR, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> -</tr> -</tbody> -</table></div> -</div> -</div> -<p> -</p> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-alphacolor.functions_details"></a><h2>Functions</h2> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-alphacolor.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-alphacolor.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAlphaColor-struct"></a><h3>struct GstAlphaColor</h3> <pre class="programlisting">struct GstAlphaColor;</pre> @@ -174,6 +94,6 @@ Sample pipeline: </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 604c57d67..cb4d4a413 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>amrparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: amrparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-alawenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-apedemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-amrparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-amrparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-amrparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-amrparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-amrparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-alawenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-apedemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-amrparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-amrparse.top_of_page"></a>amrparse</span></h2> <p>amrparse — AMR parser</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-amrparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstAmrParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct" title="struct GstAmrParse">GstAmrParse</a>; -</pre> +<a name="GstAmrParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-amrparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct" title="struct GstAmrParse">GstAmrParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-amrparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstAmrParse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstAmrParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-amrparse.description"></a><h2>Description</h2> -<p> -This is an AMR parser capable of handling both narrow-band and wideband -formats. -</p> -<p> -</p> +<p>This is an AMR parser capable of handling both narrow-band and wideband +formats.</p> <div class="refsect2"> -<a name="id-1.2.11.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.11.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -75,12 +73,10 @@ formats. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.11.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.11.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -106,7 +102,7 @@ formats. </div> <hr> <div class="refsect2"> -<a name="id-1.2.11.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.11.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -169,29 +165,34 @@ formats. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-amrparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-amrparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-amrparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAmrParse-struct"></a><h3>struct GstAmrParse</h3> <pre class="programlisting">struct GstAmrParse;</pre> -<p> -The opaque GstAacParse data structure. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<p>The opaque GstAacParse data structure.</p> +<div class="refsect3"> +<a name="id-1.2.11.8.2.5"></a><h4>Members</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="300px" class="struct_members_name"> +<col class="struct_members_description"> +<col width="200px" class="struct_members_annotations"> </colgroup> <tbody></tbody> </table></div> </div> </div> +</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-amrparse.see-also"></a><h2>See Also</h2> -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbdec.html#GstAmrnbDec"><span class="type">GstAmrnbDec</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbenc.html#GstAmrnbEnc"><span class="type">GstAmrnbEnc</span></a> +<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbdec.html#GstAmrnbDec"><span class="type">GstAmrnbDec</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/gst-plugins-ugly-plugins-amrnbenc.html#GstAmrnbEnc"><span class="type">GstAmrnbEnc</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 89a696514..9fa06fd61 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-apedemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-apedemux.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>apedemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: apedemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-amrparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-apev2mux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-apedemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-apedemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-apedemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-apedemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-apedemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-amrparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-apev2mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-apedemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,44 +30,45 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-apedemux.top_of_page"></a>apedemux</span></h2> <p>apedemux — Read and output APE tags while demuxing the contents</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-apedemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstApeDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-apedemux.html#GstApeDemux-struct" title="struct GstApeDemux">GstApeDemux</a>; -</pre> +<a name="GstApeDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-apedemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-apedemux.html#GstApeDemux-struct" title="struct GstApeDemux">GstApeDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-apedemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagdemux.html#GstTagDemux">GstTagDemux</a> - +----GstApeDemux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagdemux.html#GstTagDemux">GstTagDemux</a> + <span class="lineart">╰──</span> GstApeDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-apedemux.description"></a><h2>Description</h2> -<p> -apedemux accepts data streams with APE tags at the start or at the end +<p>apedemux accepts data streams with APE tags at the start or at the end (or both). The mime type of the data between the tag blocks is detected using typefind functions, and the appropriate output mime type set on -outgoing buffers. -</p> -<p> -The element is only able to read APE tags at the end of a stream from +outgoing buffers.</p> +<p>The element is only able to read APE tags at the end of a stream from a seekable stream, ie. when get_range mode is supported by the upstream elements. If get_range operation is available, apedemux makes it available downstream. This means that elements which require get_range mode, such as wavparse or musepackdec, can operate on files containing APE tag -information. -</p> -<p> -</p> +information.</p> <div class="refsect2"> -<a name="id-1.2.12.5.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.12.6.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -87,12 +83,10 @@ information. The contents of the file inside the APE tag regions should be detected, and the appropriate mime type set on buffers produced from apedemux. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.12.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.12.6.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -118,7 +112,7 @@ the appropriate mime type set on buffers produced from apedemux. </div> <hr> <div class="refsect2"> -<a name="id-1.2.12.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.12.6.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,7 +167,10 @@ the appropriate mime type set on buffers produced from apedemux. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-apedemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-apedemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-apedemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstApeDemux-struct"></a><h3>struct GstApeDemux</h3> <pre class="programlisting">struct GstApeDemux;</pre> @@ -184,6 +181,6 @@ the appropriate mime type set on buffers produced from apedemux. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a8c520bd3..20a384e7b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>apev2mux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: apev2mux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-apedemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-aspectratiocrop.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-apev2mux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-apev2mux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-apev2mux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-apev2mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-apev2mux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-apev2mux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-apev2mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-apedemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-aspectratiocrop.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-apev2mux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,22 +31,29 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-apev2mux.top_of_page"></a>apev2mux</span></h2> <p>apev2mux — Adds an APEv2 header to the beginning of files using taglib</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-apev2mux.synopsis"></a><h2>Synopsis</h2> -<a name="GstApev2Mux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct" title="struct GstApev2Mux">GstApev2Mux</a>; -</pre> +<a name="GstApev2Mux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-apev2mux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct" title="struct GstApev2Mux">GstApev2Mux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-apev2mux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagmux.html#GstTagMux">GstTagMux</a> - +----GstApev2Mux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagmux.html#GstTagMux">GstTagMux</a> + <span class="lineart">╰──</span> GstApev2Mux </pre> </div> <div class="refsect1"> @@ -66,7 +67,7 @@ GstApev2Mux implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.13.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.13.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -92,7 +93,7 @@ GstApev2Mux implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.13.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.13.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -147,7 +148,10 @@ GstApev2Mux implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-apev2mux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-apev2mux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-apev2mux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstApev2Mux-struct"></a><h3>struct GstApev2Mux</h3> <pre class="programlisting">struct GstApev2Mux;</pre> @@ -158,6 +162,6 @@ GstApev2Mux implements </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 1f04f85ea..46660d7f2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>aspectratiocrop</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: aspectratiocrop</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-apev2mux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audioamplify.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-aspectratiocrop.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-aspectratiocrop.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-aspectratiocrop.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-aspectratiocrop.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-aspectratiocrop.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aspectratiocrop.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aspectratiocrop.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aspectratiocrop.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-aspectratiocrop.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-apev2mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audioamplify.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-aspectratiocrop"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,44 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-aspectratiocrop.top_of_page"></a>aspectratiocrop</span></h2> <p>aspectratiocrop — Crops video into a user-defined aspect-ratio</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-aspectratiocrop.synopsis"></a><h2>Synopsis</h2> -<a name="GstAspectRatioCrop"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct" title="struct GstAspectRatioCrop">GstAspectRatioCrop</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-aspectratiocrop.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><span class="type">GstFraction</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio" title="The “aspect-ratio†property">aspect-ratio</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstAspectRatioCrop"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-aspectratiocrop.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct" title="struct GstAspectRatioCrop">GstAspectRatioCrop</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aspectratiocrop.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstAspectRatioCrop +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstAspectRatioCrop </pre> </div> <div class="refsect1"> @@ -64,24 +79,12 @@ GstAspectRatioCrop implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-aspectratiocrop.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio" title='The "aspect-ratio" property'>aspect-ratio</a>" <span class="type">GstFraction</span> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-aspectratiocrop.description"></a><h2>Description</h2> -<p> -This element crops video frames to a specified <a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio" title='The "aspect-ratio" property'><span class="type">"aspect-ratio"</span></a>. -</p> -<p> -If the aspect-ratio is already correct, the element will operate -in pass-through mode. -</p> -<p> -</p> +<p>This element crops video frames to a specified <a class="link" href="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio" title="The “aspect-ratio†property"><span class="type">“aspect-ratioâ€</span></a>.</p> +<p>If the aspect-ratio is already correct, the element will operate +in pass-through mode.</p> <div class="refsect2"> -<a name="id-1.2.14.7.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.14.8.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -94,12 +97,10 @@ in pass-through mode. </div> This pipeline generates a videostream in 4/3 and crops it to 16/9. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.14.7.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.14.8.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -125,7 +126,7 @@ in pass-through mode. </div> <hr> <div class="refsect2"> -<a name="id-1.2.14.7.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.14.8.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -180,7 +181,10 @@ in pass-through mode. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-aspectratiocrop.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-aspectratiocrop.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-aspectratiocrop.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAspectRatioCrop-struct"></a><h3>struct GstAspectRatioCrop</h3> <pre class="programlisting">struct GstAspectRatioCrop;</pre> @@ -191,18 +195,19 @@ in pass-through mode. <div class="refsect1"> <a name="gst-plugins-good-plugins-aspectratiocrop.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAspectRatioCrop--aspect-ratio"></a><h3>The <code class="literal">"aspect-ratio"</code> property</h3> -<pre class="programlisting"> "aspect-ratio" <span class="type">GstFraction</span> : Read / Write</pre> +<a name="GstAspectRatioCrop--aspect-ratio"></a><h3>The <code class="literal">“aspect-ratioâ€</code> property</h3> +<pre class="programlisting"> “aspect-ratio†<span class="type">GstFraction</span></pre> <p>Target aspect-ratio of video.</p> +<p>Flags: Read / Write</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-aspectratiocrop.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop"><span class="type">GstVideoCrop</span></a> +<p><a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop"><span class="type">GstVideoCrop</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 454632a9d..86d91cc37 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audioamplify</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audioamplify</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-aspectratiocrop.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiochebband.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audioamplify.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audioamplify.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audioamplify.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audioamplify.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioamplify.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioamplify.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioamplify.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-aspectratiocrop.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiochebband.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audioamplify"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,42 +31,60 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audioamplify.top_of_page"></a>audioamplify</span></h2> <p>audioamplify — Amplifies an audio stream by a given factor</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audioamplify.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioAmplify"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct" title="struct GstAudioAmplify">GstAudioAmplify</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioamplify.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioAmplify -</pre> +<a name="gst-plugins-good-plugins-audioamplify.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification" title="The “amplification†property">amplification</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioAmplifyClippingMethod</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method" title="The “clipping-method†property">clipping-method</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioAmplify"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audioamplify.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct" title="struct GstAudioAmplify">GstAudioAmplify</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioamplify.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification" title='The "amplification" property'>amplification</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method" title='The "clipping-method" property'>clipping-method</a>" <span class="type">GstAudioAmplifyClippingMethod</span> : Read / Write +<a name="gst-plugins-good-plugins-audioamplify.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioAmplify </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioamplify.description"></a><h2>Description</h2> -<p> -Amplifies an audio stream by a given factor and allows the selection of different clipping modes. -The difference between the clipping modes is best evaluated by testing. -</p> -<p> -</p> +<p>Amplifies an audio stream by a given factor and allows the selection of different clipping modes. +The difference between the clipping modes is best evaluated by testing.</p> <div class="refsect2"> -<a name="id-1.2.15.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.15.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -89,12 +101,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.15.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.15.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -120,7 +130,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.15.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.15.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -175,7 +185,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioamplify.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audioamplify.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audioamplify.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioAmplify-struct"></a><h3>struct GstAudioAmplify</h3> <pre class="programlisting">struct GstAudioAmplify;</pre> @@ -186,26 +199,26 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsect1"> <a name="gst-plugins-good-plugins-audioamplify.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioAmplify--amplification"></a><h3>The <code class="literal">"amplification"</code> property</h3> -<pre class="programlisting"> "amplification" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioAmplify--amplification"></a><h3>The <code class="literal">“amplificationâ€</code> property</h3> +<pre class="programlisting"> “amplification†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Factor of amplification.</p> +<p>Flags: Read / Write</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioAmplify--clipping-method"></a><h3>The <code class="literal">"clipping-method"</code> property</h3> -<pre class="programlisting"> "clipping-method" <span class="type">GstAudioAmplifyClippingMethod</span> : Read / Write</pre> -<p> -Clipping method: clip mode set values higher than the maximum to the +<a name="GstAudioAmplify--clipping-method"></a><h3>The <code class="literal">“clipping-methodâ€</code> property</h3> +<pre class="programlisting"> “clipping-method†<span class="type">GstAudioAmplifyClippingMethod</span></pre> +<p>Clipping method: clip mode set values higher than the maximum to the maximum. The wrap-negative mode pushes those values back from the -opposite side, wrap-positive pushes them back from the same side. -</p> +opposite side, wrap-positive pushes them back from the same side.</p> +<p>Flags: Read / Write</p> <p>Default value: Normal clipping (default)</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a91f2898a..856646ce9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiochebband</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiochebband</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audioamplify.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiocheblimit.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiochebband.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiochebband.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiochebband.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiochebband.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiochebband.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiochebband.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiochebband.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audioamplify.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiocheblimit.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiochebband"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,73 +31,94 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiochebband.top_of_page"></a>audiochebband</span></h2> <p>audiochebband — Chebyshev band pass and band reject filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiochebband.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioChebBand"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand-struct" title="struct GstAudioChebBand">GstAudioChebBand</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiochebband.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioFXBaseIIRFilter - +----GstAudioChebBand -</pre> +<a name="gst-plugins-good-plugins-audiochebband.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency" title="The “lower-frequency†property">lower-frequency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioChebBandMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--poles" title="The “poles†property">poles</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--ripple" title="The “ripple†property">ripple</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type" title="The “type†property">type</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency" title="The “upper-frequency†property">upper-frequency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioChebBand"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiochebband.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand-struct" title="struct GstAudioChebBand">GstAudioChebBand</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiochebband.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency" title='The "lower-frequency" property'>lower-frequency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--mode" title='The "mode" property'>mode</a>" <span class="type">GstAudioChebBandMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--poles" title='The "poles" property'>poles</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--ripple" title='The "ripple" property'>ripple</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type" title='The "type" property'>type</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency" title='The "upper-frequency" property'>upper-frequency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write +<a name="gst-plugins-good-plugins-audiochebband.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioFXBaseIIRFilter + <span class="lineart">╰──</span> GstAudioChebBand </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiochebband.description"></a><h2>Description</h2> -<p> -Attenuates all frequencies outside (bandpass) or inside (bandreject) of a frequency -band. The number of poles and the ripple parameter control the rolloff. -</p> -<p> -This element has the advantage over the windowed sinc bandpass and bandreject filter that it is +<p>Attenuates all frequencies outside (bandpass) or inside (bandreject) of a frequency +band. The number of poles and the ripple parameter control the rolloff.</p> +<p>This element has the advantage over the windowed sinc bandpass and bandreject filter that it is much faster and produces almost as good results. It's only disadvantages are the highly -non-linear phase and the slower rolloff compared to a windowed sinc filter with a large kernel. -</p> -<p> -For type 1 the ripple parameter specifies how much ripple in dB is allowed in the passband, i.e. +non-linear phase and the slower rolloff compared to a windowed sinc filter with a large kernel.</p> +<p>For type 1 the ripple parameter specifies how much ripple in dB is allowed in the passband, i.e. some frequencies in the passband will be amplified by that value. A higher ripple value will allow -a faster rolloff. -</p> -<p> -For type 2 the ripple parameter specifies the stopband attenuation. In the stopband the gain will -be at most this value. A lower ripple value will allow a faster rolloff. -</p> -<p> -As a special case, a Chebyshev type 1 filter with no ripple is a Butterworth filter. -</p> -<p> -</p> -<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> -<h3 class="title">Note</h3> +a faster rolloff.</p> +<p>For type 2 the ripple parameter specifies the stopband attenuation. In the stopband the gain will +be at most this value. A lower ripple value will allow a faster rolloff.</p> +<p>As a special case, a Chebyshev type 1 filter with no ripple is a Butterworth filter.</p> +<div class="note"> Be warned that a too large number of poles can produce noise. The most poles are possible with a cutoff frequency at a quarter of the sampling rate. </div> -<p> -</p> -<p> -</p> <div class="refsect2"> -<a name="id-1.2.16.6.8.1"></a><h3>Example launch line</h3> +<a name="id-1.2.16.7.8"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -120,12 +135,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.16.6.9.1"></a><h3>Element Information</h3> +<a name="id-1.2.16.7.9.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -151,7 +164,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.16.6.9.2"></a><h3>Element Pads</h3> +<a name="id-1.2.16.7.9.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -206,7 +219,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiochebband.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiochebband.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiochebband.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioChebBand-struct"></a><h3>struct GstAudioChebBand</h3> <pre class="programlisting">struct GstAudioChebBand;</pre> @@ -217,48 +233,54 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsect1"> <a name="gst-plugins-good-plugins-audiochebband.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioChebBand--lower-frequency"></a><h3>The <code class="literal">"lower-frequency"</code> property</h3> -<pre class="programlisting"> "lower-frequency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioChebBand--lower-frequency"></a><h3>The <code class="literal">“lower-frequencyâ€</code> property</h3> +<pre class="programlisting"> “lower-frequency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Start frequency of the band (Hz).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100000]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebBand--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstAudioChebBandMode</span> : Read / Write</pre> +<a name="GstAudioChebBand--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstAudioChebBandMode</span></pre> <p>Low pass or high pass mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Band pass (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebBand--poles"></a><h3>The <code class="literal">"poles"</code> property</h3> -<pre class="programlisting"> "poles" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAudioChebBand--poles"></a><h3>The <code class="literal">“polesâ€</code> property</h3> +<pre class="programlisting"> “poles†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of poles to use, will be rounded up to the next multiply of four.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [4,32]</p> <p>Default value: 4</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebBand--ripple"></a><h3>The <code class="literal">"ripple"</code> property</h3> -<pre class="programlisting"> "ripple" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioChebBand--ripple"></a><h3>The <code class="literal">“rippleâ€</code> property</h3> +<pre class="programlisting"> “ripple†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Amount of ripple (dB).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,200]</p> <p>Default value: 0.25</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebBand--type"></a><h3>The <code class="literal">"type"</code> property</h3> -<pre class="programlisting"> "type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAudioChebBand--type"></a><h3>The <code class="literal">“typeâ€</code> property</h3> +<pre class="programlisting"> “type†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Type of the chebychev filter.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,2]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebBand--upper-frequency"></a><h3>The <code class="literal">"upper-frequency"</code> property</h3> -<pre class="programlisting"> "upper-frequency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioChebBand--upper-frequency"></a><h3>The <code class="literal">“upper-frequencyâ€</code> property</h3> +<pre class="programlisting"> “upper-frequency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Stop frequency of the band (Hz).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100000]</p> <p>Default value: 0</p> </div> @@ -266,6 +288,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 43f5bf72d..15e55d522 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiocheblimit</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiocheblimit</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiochebband.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiofirfilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiocheblimit.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiocheblimit.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiocheblimit.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiocheblimit.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiocheblimit.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiocheblimit.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiocheblimit.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiochebband.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiofirfilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiocheblimit"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,74 +31,89 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiocheblimit.top_of_page"></a>audiocheblimit</span></h2> <p>audiocheblimit — Chebyshev low pass and high pass filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiocheblimit.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioChebLimit"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit-struct" title="struct GstAudioChebLimit">GstAudioChebLimit</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiocheblimit.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioFXBaseIIRFilter - +----GstAudioChebLimit -</pre> +<a name="gst-plugins-good-plugins-audiocheblimit.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff" title="The “cutoff†property">cutoff</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioChebLimitMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles" title="The “poles†property">poles</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple" title="The “ripple†property">ripple</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type" title="The “type†property">type</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioChebLimit"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiocheblimit.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit-struct" title="struct GstAudioChebLimit">GstAudioChebLimit</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiocheblimit.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff" title='The "cutoff" property'>cutoff</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--mode" title='The "mode" property'>mode</a>" <span class="type">GstAudioChebLimitMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles" title='The "poles" property'>poles</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple" title='The "ripple" property'>ripple</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type" title='The "type" property'>type</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-audiocheblimit.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioFXBaseIIRFilter + <span class="lineart">╰──</span> GstAudioChebLimit </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiocheblimit.description"></a><h2>Description</h2> -<p> -Attenuates all frequencies above the cutoff frequency (low-pass) or all frequencies below the -cutoff frequency (high-pass). The number of poles and the ripple parameter control the rolloff. -</p> -<p> -This element has the advantage over the windowed sinc lowpass and highpass filter that it is +<p>Attenuates all frequencies above the cutoff frequency (low-pass) or all frequencies below the +cutoff frequency (high-pass). The number of poles and the ripple parameter control the rolloff.</p> +<p>This element has the advantage over the windowed sinc lowpass and highpass filter that it is much faster and produces almost as good results. It's only disadvantages are the highly -non-linear phase and the slower rolloff compared to a windowed sinc filter with a large kernel. -</p> -<p> -For type 1 the ripple parameter specifies how much ripple in dB is allowed in the passband, i.e. +non-linear phase and the slower rolloff compared to a windowed sinc filter with a large kernel.</p> +<p>For type 1 the ripple parameter specifies how much ripple in dB is allowed in the passband, i.e. some frequencies in the passband will be amplified by that value. A higher ripple value will allow -a faster rolloff. -</p> -<p> -For type 2 the ripple parameter specifies the stopband attenuation. In the stopband the gain will -be at most this value. A lower ripple value will allow a faster rolloff. -</p> -<p> -As a special case, a Chebyshev type 1 filter with no ripple is a Butterworth filter. -</p> -<p> -</p> -<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> -<h3 class="title">Note</h3> -<p> +a faster rolloff.</p> +<p>For type 2 the ripple parameter specifies the stopband attenuation. In the stopband the gain will +be at most this value. A lower ripple value will allow a faster rolloff.</p> +<p>As a special case, a Chebyshev type 1 filter with no ripple is a Butterworth filter.</p> +<div class="note"><p> Be warned that a too large number of poles can produce noise. The most poles are possible with a cutoff frequency at a quarter of the sampling rate. -</p> -</div> -<p> -</p> -<p> -</p> +</p></div> <div class="refsect2"> -<a name="id-1.2.17.6.8.1"></a><h3>Example launch line</h3> +<a name="id-1.2.17.7.8"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -121,12 +130,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.17.6.9.1"></a><h3>Element Information</h3> +<a name="id-1.2.17.7.9.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -152,7 +159,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.17.6.9.2"></a><h3>Element Pads</h3> +<a name="id-1.2.17.7.9.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -207,7 +214,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiocheblimit.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiocheblimit.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiocheblimit.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioChebLimit-struct"></a><h3>struct GstAudioChebLimit</h3> <pre class="programlisting">struct GstAudioChebLimit;</pre> @@ -218,40 +228,45 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsect1"> <a name="gst-plugins-good-plugins-audiocheblimit.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioChebLimit--cutoff"></a><h3>The <code class="literal">"cutoff"</code> property</h3> -<pre class="programlisting"> "cutoff" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioChebLimit--cutoff"></a><h3>The <code class="literal">“cutoffâ€</code> property</h3> +<pre class="programlisting"> “cutoff†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Cut off frequency (Hz).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100000]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebLimit--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstAudioChebLimitMode</span> : Read / Write</pre> +<a name="GstAudioChebLimit--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstAudioChebLimitMode</span></pre> <p>Low pass or high pass mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Low pass (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebLimit--poles"></a><h3>The <code class="literal">"poles"</code> property</h3> -<pre class="programlisting"> "poles" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAudioChebLimit--poles"></a><h3>The <code class="literal">“polesâ€</code> property</h3> +<pre class="programlisting"> “poles†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of poles to use, will be rounded up to the next even number.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [2,32]</p> <p>Default value: 4</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebLimit--ripple"></a><h3>The <code class="literal">"ripple"</code> property</h3> -<pre class="programlisting"> "ripple" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioChebLimit--ripple"></a><h3>The <code class="literal">“rippleâ€</code> property</h3> +<pre class="programlisting"> “ripple†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Amount of ripple (dB).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,200]</p> <p>Default value: 0.25</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioChebLimit--type"></a><h3>The <code class="literal">"type"</code> property</h3> -<pre class="programlisting"> "type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAudioChebLimit--type"></a><h3>The <code class="literal">“typeâ€</code> property</h3> +<pre class="programlisting"> “type†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Type of the chebychev filter.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,2]</p> <p>Default value: 1</p> </div> @@ -259,6 +274,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 b3d84be3e..bd0c76466 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiodynamic</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiodynamic</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audioecho.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audioinvert.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiodynamic.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiodynamic.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiodynamic.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiodynamic.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiodynamic.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiodynamic.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiodynamic.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audioecho.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audioinvert.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiodynamic"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,46 +31,72 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiodynamic.top_of_page"></a>audiodynamic</span></h2> <p>audiodynamic — Compressor and Expander</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiodynamic.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioDynamic"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct" title="struct GstAudioDynamic">GstAudioDynamic</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiodynamic.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioDynamic -</pre> +<a name="gst-plugins-good-plugins-audiodynamic.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstAudioDynamicCharacteristics</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics" title="The “characteristics†property">characteristics</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioDynamicMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio" title="The “ratio†property">ratio</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold" title="The “threshold†property">threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioDynamic"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiodynamic.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct" title="struct GstAudioDynamic">GstAudioDynamic</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiodynamic.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics" title='The "characteristics" property'>characteristics</a>" <span class="type">GstAudioDynamicCharacteristics</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode" title='The "mode" property'>mode</a>" <span class="type">GstAudioDynamicMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio" title='The "ratio" property'>ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold" title='The "threshold" property'>threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write +<a name="gst-plugins-good-plugins-audiodynamic.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioDynamic </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiodynamic.description"></a><h2>Description</h2> -<p> -This element can act as a compressor or expander. A compressor changes the +<p>This element can act as a compressor or expander. A compressor changes the amplitude of all samples above a specific threshold with a specific ratio, a expander does the same for all samples below a specific threshold. If -soft-knee mode is selected the ratio is applied smoothly. -</p> -<p> -</p> +soft-knee mode is selected the ratio is applied smoothly.</p> <div class="refsect2"> -<a name="id-1.2.23.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.23.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -93,12 +113,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.23.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.23.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -124,7 +142,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.23.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.23.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -179,7 +197,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiodynamic.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiodynamic.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiodynamic.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioDynamic-struct"></a><h3>struct GstAudioDynamic</h3> <pre class="programlisting">struct GstAudioDynamic;</pre> @@ -190,31 +211,35 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsect1"> <a name="gst-plugins-good-plugins-audiodynamic.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioDynamic--characteristics"></a><h3>The <code class="literal">"characteristics"</code> property</h3> -<pre class="programlisting"> "characteristics" <span class="type">GstAudioDynamicCharacteristics</span> : Read / Write</pre> +<a name="GstAudioDynamic--characteristics"></a><h3>The <code class="literal">“characteristicsâ€</code> property</h3> +<pre class="programlisting"> “characteristics†<span class="type">GstAudioDynamicCharacteristics</span></pre> <p>Selects whether the ratio should be applied smooth (soft-knee) or hard (hard-knee).</p> +<p>Flags: Read / Write</p> <p>Default value: Hard Knee (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioDynamic--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstAudioDynamicMode</span> : Read / Write</pre> +<a name="GstAudioDynamic--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstAudioDynamicMode</span></pre> <p>Selects whether the filter should work on loud samples (compressor) orquiet samples (expander).</p> +<p>Flags: Read / Write</p> <p>Default value: Compressor (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioDynamic--ratio"></a><h3>The <code class="literal">"ratio"</code> property</h3> -<pre class="programlisting"> "ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioDynamic--ratio"></a><h3>The <code class="literal">“ratioâ€</code> property</h3> +<pre class="programlisting"> “ratio†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Ratio that should be applied.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioDynamic--threshold"></a><h3>The <code class="literal">"threshold"</code> property</h3> -<pre class="programlisting"> "threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioDynamic--threshold"></a><h3>The <code class="literal">“thresholdâ€</code> property</h3> +<pre class="programlisting"> “threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Threshold until the filter is activated.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0</p> </div> @@ -222,6 +247,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a34c2d90c..d93332505 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audioecho</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audioecho</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiowsinclimit.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiodynamic.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audioecho.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audioecho.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audioecho.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audioecho.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioecho.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioecho.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioecho.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiowsinclimit.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiodynamic.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audioecho"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,54 +31,76 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audioecho.top_of_page"></a>audioecho</span></h2> <p>audioecho — Adds an echo or reverb effect to an audio stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audioecho.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioEcho"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct" title="struct GstAudioEcho">GstAudioEcho</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioecho.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioEcho -</pre> +<a name="gst-plugins-good-plugins-audioecho.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay" title="The “delay†property">delay</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback" title="The “feedback†property">feedback</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity" title="The “intensity†property">intensity</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay" title="The “max-delay†property">max-delay</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioEcho"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audioecho.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct" title="struct GstAudioEcho">GstAudioEcho</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioecho.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay" title='The "delay" property'>delay</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback" title='The "feedback" property'>feedback</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity" title='The "intensity" property'>intensity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay" title='The "max-delay" property'>max-delay</a>" <span class="type">guint64</span> : Read / Write +<a name="gst-plugins-good-plugins-audioecho.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioEcho </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioecho.description"></a><h2>Description</h2> -<p> -audioecho adds an echo or (simple) reverb effect to an audio stream. The echo -delay, intensity and the percentage of feedback can be configured. -</p> -<p> -For getting an echo effect you have to set the delay to a larger value, +<p>audioecho adds an echo or (simple) reverb effect to an audio stream. The echo +delay, intensity and the percentage of feedback can be configured.</p> +<p>For getting an echo effect you have to set the delay to a larger value, for example 200ms and more. Everything below will result in a simple -reverb effect, which results in a slightly metallic sound. -</p> -<p> -Use the max-delay property to set the maximum amount of delay that +reverb effect, which results in a slightly metallic sound.</p> +<p>Use the max-delay property to set the maximum amount of delay that will be used. This can only be set before going to the PAUSED or PLAYING -state and will be set to the current delay by default. -</p> -<p> -</p> +state and will be set to the current delay by default.</p> <div class="refsect2"> -<a name="id-1.2.22.6.5.1"></a><h3>Example launch line</h3> +<a name="id-1.2.22.7.5"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -99,12 +115,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.22.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.22.7.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -130,7 +144,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.22.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.22.7.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -185,7 +199,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioecho.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audioecho.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audioecho.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioEcho-struct"></a><h3>struct GstAudioEcho</h3> <pre class="programlisting">struct GstAudioEcho;</pre> @@ -196,33 +213,37 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsect1"> <a name="gst-plugins-good-plugins-audioecho.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioEcho--delay"></a><h3>The <code class="literal">"delay"</code> property</h3> -<pre class="programlisting"> "delay" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstAudioEcho--delay"></a><h3>The <code class="literal">“delayâ€</code> property</h3> +<pre class="programlisting"> “delay†<span class="type">guint64</span></pre> <p>Delay of the echo in nanoseconds.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioEcho--feedback"></a><h3>The <code class="literal">"feedback"</code> property</h3> -<pre class="programlisting"> "feedback" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioEcho--feedback"></a><h3>The <code class="literal">“feedbackâ€</code> property</h3> +<pre class="programlisting"> “feedback†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Amount of feedback.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioEcho--intensity"></a><h3>The <code class="literal">"intensity"</code> property</h3> -<pre class="programlisting"> "intensity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioEcho--intensity"></a><h3>The <code class="literal">“intensityâ€</code> property</h3> +<pre class="programlisting"> “intensity†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Intensity of the echo.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioEcho--max-delay"></a><h3>The <code class="literal">"max-delay"</code> property</h3> -<pre class="programlisting"> "max-delay" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstAudioEcho--max-delay"></a><h3>The <code class="literal">“max-delayâ€</code> property</h3> +<pre class="programlisting"> “max-delay†<span class="type">guint64</span></pre> <p>Maximum delay of the echo in nanoseconds (can't be changed in PLAYING or PAUSED state).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 1</p> </div> @@ -230,6 +251,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 938eadc02..5a1d53b38 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiofirfilter</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiofirfilter</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiocheblimit.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audioiirfilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiofirfilter.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiofirfilter.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiofirfilter.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiofirfilter.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-audiofirfilter.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiofirfilter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiofirfilter.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiofirfilter.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiofirfilter.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiocheblimit.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audioiirfilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiofirfilter"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,63 +32,87 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiofirfilter.top_of_page"></a>audiofirfilter</span></h2> <p>audiofirfilter — Generic audio FIR filter with custom filter kernel</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiofirfilter.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioFIRFilter"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct" title="struct GstAudioFIRFilter">GstAudioFIRFilter</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-audiofirfilter.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioFXBaseFIRFilter - +----GstAudioFIRFilter -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiofirfilter.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel" title='The "kernel" property'>kernel</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency" title='The "latency" property'>latency</a>" <span class="type">guint64</span> : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel" title="The “kernel†property">kernel</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency" title="The “latency†property">latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiofirfilter.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed" title='The "rate-changed" signal'>rate-changed</a>" : <code class="literal">Run Last</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed" title="The “rate-changed†signal">rate-changed</a></td> +<td class="signal_flags">Run Last</td> +</tr></tbody> +</table></div> +</div> +<a name="GstAudioFIRFilter"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiofirfilter.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct" title="struct GstAudioFIRFilter">GstAudioFIRFilter</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiofirfilter.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioFXBaseFIRFilter + <span class="lineart">╰──</span> GstAudioFIRFilter </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiofirfilter.description"></a><h2>Description</h2> -<p> -audiofirfilter implements a generic audio <a class="ulink" href="http://en.wikipedia.org/wiki/Finite_impulse_response" target="_top">FIR filter</a>. Before usage the +<p>audiofirfilter implements a generic audio <a class="ulink" href="http://en.wikipedia.org/wiki/Finite_impulse_response" target="_top">FIR filter</a>. Before usage the "kernel" property has to be set to the filter kernel that should be used and the "latency" property has to be set to the latency (in samples) that is introduced by the filter kernel. Setting a latency of n samples will lead to the first n samples being dropped from the output and -n samples added to the end. -</p> -<p> -The filter kernel describes the impulse response of the filter. To +n samples added to the end.</p> +<p>The filter kernel describes the impulse response of the filter. To calculate the frequency response of the filter you have to calculate -the Fourier Transform of the impulse response. -</p> -<p> -To change the filter kernel whenever the sampling rate changes the +the Fourier Transform of the impulse response.</p> +<p>To change the filter kernel whenever the sampling rate changes the "rate-changed" signal can be used. This should be done for most -FIR filters as they're depending on the sampling rate. -</p> -<p> -</p> +FIR filters as they're depending on the sampling rate.</p> <div class="refsect2"> -<a name="id-1.2.18.7.5.1"></a><h3>Example application</h3> +<a name="id-1.2.18.8.5"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -436,12 +453,10 @@ gint </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.18.7.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.18.8.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -467,7 +482,7 @@ gint </div> <hr> <div class="refsect2"> -<a name="id-1.2.18.7.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.18.8.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -522,67 +537,77 @@ gint </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiofirfilter.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiofirfilter.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiofirfilter.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioFIRFilter-struct"></a><h3>struct GstAudioFIRFilter</h3> <pre class="programlisting">struct GstAudioFIRFilter;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiofirfilter.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioFIRFilter--kernel"></a><h3>The <code class="literal">"kernel"</code> property</h3> -<pre class="programlisting"> "kernel" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstAudioFIRFilter--kernel"></a><h3>The <code class="literal">“kernelâ€</code> property</h3> +<pre class="programlisting"> “kernel†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Filter kernel for the FIR filter.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioFIRFilter--latency"></a><h3>The <code class="literal">"latency"</code> property</h3> -<pre class="programlisting"> "latency" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstAudioFIRFilter--latency"></a><h3>The <code class="literal">“latencyâ€</code> property</h3> +<pre class="programlisting"> “latency†<span class="type">guint64</span></pre> <p>Filter latency in samples.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiofirfilter.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstAudioFIRFilter-rate-changed"></a><h3>The <code class="literal">"rate-changed"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter"><span class="type">GstAudioFIRFilter</span></a> *filter, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Will be emitted when the sampling rate changes. The callbacks +<a name="GstAudioFIRFilter-rate-changed"></a><h3>The <code class="literal">“rate-changedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter"><span class="type">GstAudioFIRFilter</span></a> *filter, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Will be emitted when the sampling rate changes. The callbacks will be called from the streaming thread and processing will -stop until the event is handled. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +stop until the event is handled.</p> +<div class="refsect3"> +<a name="id-1.2.18.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> -<td>the filter on which the signal is emitted</td> +<td class="parameter_name"><p>filter</p></td> +<td class="parameter_description"><p>the filter on which the signal is emitted</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td> -<td>the new sampling rate</td> +<td class="parameter_name"><p>rate</p></td> +<td class="parameter_description"><p>the new sampling rate</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f4377be53..1c5f7546a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audioiirfilter</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audioiirfilter</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiofirfilter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiowsincband.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audioiirfilter.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audioiirfilter.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audioiirfilter.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audioiirfilter.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-audioiirfilter.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioiirfilter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioiirfilter.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioiirfilter.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioiirfilter.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiofirfilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiowsincband.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audioiirfilter"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,59 +32,84 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audioiirfilter.top_of_page"></a>audioiirfilter</span></h2> <p>audioiirfilter — Generic audio IIR filter with custom filter kernel</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audioiirfilter.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioIIRFilter"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-struct" title="struct GstAudioIIRFilter">GstAudioIIRFilter</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-audioiirfilter.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioFXBaseIIRFilter - +----GstAudioIIRFilter -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioiirfilter.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a" title='The "a" property'>a</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b" title='The "b" property'>b</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a" title="The “a†property">a</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b" title="The “b†property">b</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioiirfilter.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed" title='The "rate-changed" signal'>rate-changed</a>" : <code class="literal">Run Last</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed" title="The “rate-changed†signal">rate-changed</a></td> +<td class="signal_flags">Run Last</td> +</tr></tbody> +</table></div> +</div> +<a name="GstAudioIIRFilter"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audioiirfilter.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-struct" title="struct GstAudioIIRFilter">GstAudioIIRFilter</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audioiirfilter.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioFXBaseIIRFilter + <span class="lineart">╰──</span> GstAudioIIRFilter </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioiirfilter.description"></a><h2>Description</h2> -<p> -audioiirfilter implements a generic audio <a class="ulink" href="http://en.wikipedia.org/wiki/Infinite_impulse_response" target="_top">IIR filter</a>. Before usage the +<p>audioiirfilter implements a generic audio <a class="ulink" href="http://en.wikipedia.org/wiki/Infinite_impulse_response" target="_top">IIR filter</a>. Before usage the "a" and "b" properties have to be set to the filter coefficients that -should be used. -</p> -<p> -The filter coefficients describe the numerator and denominator of the -transfer function. -</p> -<p> -To change the filter coefficients whenever the sampling rate changes the +should be used.</p> +<p>The filter coefficients describe the numerator and denominator of the +transfer function.</p> +<p>To change the filter coefficients whenever the sampling rate changes the "rate-changed" signal can be used. This should be done for most -IIR filters as they're depending on the sampling rate. -</p> -<p> -</p> +IIR filters as they're depending on the sampling rate.</p> <div class="refsect2"> -<a name="id-1.2.19.7.5.1"></a><h3>Example application</h3> +<a name="id-1.2.19.8.5"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -384,12 +402,10 @@ gint </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.19.7.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.19.8.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -415,7 +431,7 @@ gint </div> <hr> <div class="refsect2"> -<a name="id-1.2.19.7.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.19.8.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -470,66 +486,76 @@ gint </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioiirfilter.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audioiirfilter.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audioiirfilter.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioIIRFilter-struct"></a><h3>struct GstAudioIIRFilter</h3> <pre class="programlisting">struct GstAudioIIRFilter;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioiirfilter.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioIIRFilter--a"></a><h3>The <code class="literal">"a"</code> property</h3> -<pre class="programlisting"> "a" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstAudioIIRFilter--a"></a><h3>The <code class="literal">“aâ€</code> property</h3> +<pre class="programlisting"> “a†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Filter coefficients (denominator of transfer function).</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioIIRFilter--b"></a><h3>The <code class="literal">"b"</code> property</h3> -<pre class="programlisting"> "b" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstAudioIIRFilter--b"></a><h3>The <code class="literal">“bâ€</code> property</h3> +<pre class="programlisting"> “b†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Filter coefficients (numerator of transfer function).</p> +<p>Flags: Read / Write</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioiirfilter.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstAudioIIRFilter-rate-changed"></a><h3>The <code class="literal">"rate-changed"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter"><span class="type">GstAudioIIRFilter</span></a> *filter, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Will be emitted when the sampling rate changes. The callbacks +<a name="GstAudioIIRFilter-rate-changed"></a><h3>The <code class="literal">“rate-changedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter"><span class="type">GstAudioIIRFilter</span></a> *filter, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Will be emitted when the sampling rate changes. The callbacks will be called from the streaming thread and processing will -stop until the event is handled. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +stop until the event is handled.</p> +<div class="refsect3"> +<a name="id-1.2.19.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> -<td>the filter on which the signal is emitted</td> +<td class="parameter_name"><p>filter</p></td> +<td class="parameter_description"><p>the filter on which the signal is emitted</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>rate</code></em> :</span></p></td> -<td>the new sampling rate</td> +<td class="parameter_name"><p>rate</p></td> +<td class="parameter_description"><p>the new sampling rate</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 aad7109ba..e1aca97c8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audioinvert</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audioinvert</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiodynamic.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiopanorama.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audioinvert.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audioinvert.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audioinvert.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audioinvert.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioinvert.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioinvert.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audioinvert.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiodynamic.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiopanorama.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audioinvert"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,42 +31,54 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audioinvert.top_of_page"></a>audioinvert</span></h2> <p>audioinvert — Swaps upper and lower half of audio samples</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audioinvert.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioInvert"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct" title="struct GstAudioInvert">GstAudioInvert</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioinvert.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioInvert -</pre> +<a name="gst-plugins-good-plugins-audioinvert.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree" title="The “degree†property">degree</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstAudioInvert"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audioinvert.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct" title="struct GstAudioInvert">GstAudioInvert</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioinvert.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree" title='The "degree" property'>degree</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write +<a name="gst-plugins-good-plugins-audioinvert.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioInvert </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audioinvert.description"></a><h2>Description</h2> -<p> -Swaps upper and lower half of audio samples. Mixing an inverted sample on top of +<p>Swaps upper and lower half of audio samples. Mixing an inverted sample on top of the original with a slight delay can produce effects that sound like resonance. -Creating a stereo sample from a mono source, with one channel inverted produces wide-stereo sounds. -</p> -<p> -</p> +Creating a stereo sample from a mono source, with one channel inverted produces wide-stereo sounds.</p> <div class="refsect2"> -<a name="id-1.2.24.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.24.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -89,12 +95,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.24.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.24.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -120,7 +124,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.24.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.24.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -175,7 +179,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audioinvert.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audioinvert.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audioinvert.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioInvert-struct"></a><h3>struct GstAudioInvert</h3> <pre class="programlisting">struct GstAudioInvert;</pre> @@ -186,9 +193,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsect1"> <a name="gst-plugins-good-plugins-audioinvert.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioInvert--degree"></a><h3>The <code class="literal">"degree"</code> property</h3> -<pre class="programlisting"> "degree" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioInvert--degree"></a><h3>The <code class="literal">“degreeâ€</code> property</h3> +<pre class="programlisting"> “degree†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Degree of inversion.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0</p> </div> @@ -196,6 +204,6 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 d6568bc57..61a8ac61c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiokaraoke</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiokaraoke</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiopanorama.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-auparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiokaraoke.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiokaraoke.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiokaraoke.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiokaraoke.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiokaraoke.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiokaraoke.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiokaraoke.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiopanorama.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-auparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiokaraoke"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,44 +31,70 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiokaraoke.top_of_page"></a>audiokaraoke</span></h2> <p>audiokaraoke — Removes voice from sound</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiokaraoke.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioKaraoke"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct" title="struct GstAudioKaraoke">GstAudioKaraoke</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiokaraoke.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioKaraoke -</pre> +<a name="gst-plugins-good-plugins-audiokaraoke.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band" title="The “filter-band†property">filter-band</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width" title="The “filter-width†property">filter-width</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level" title="The “level†property">level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level" title="The “mono-level†property">mono-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioKaraoke"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiokaraoke.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct" title="struct GstAudioKaraoke">GstAudioKaraoke</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiokaraoke.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band" title='The "filter-band" property'>filter-band</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width" title='The "filter-width" property'>filter-width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level" title='The "level" property'>level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level" title='The "mono-level" property'>mono-level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write +<a name="gst-plugins-good-plugins-audiokaraoke.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioKaraoke </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiokaraoke.description"></a><h2>Description</h2> -<p> -Remove the voice from audio by filtering the center channel. -This plugin is useful for karaoke applications. -</p> -<p> -</p> +<p>Remove the voice from audio by filtering the center channel. +This plugin is useful for karaoke applications.</p> <div class="refsect2"> -<a name="id-1.2.26.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.26.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -87,12 +107,10 @@ This plugin is useful for karaoke applications. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.26.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.26.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -118,7 +136,7 @@ This plugin is useful for karaoke applications. </div> <hr> <div class="refsect2"> -<a name="id-1.2.26.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.26.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,7 +191,10 @@ This plugin is useful for karaoke applications. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiokaraoke.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiokaraoke.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiokaraoke.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioKaraoke-struct"></a><h3>struct GstAudioKaraoke</h3> <pre class="programlisting">struct GstAudioKaraoke;</pre> @@ -184,33 +205,37 @@ This plugin is useful for karaoke applications. <div class="refsect1"> <a name="gst-plugins-good-plugins-audiokaraoke.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioKaraoke--filter-band"></a><h3>The <code class="literal">"filter-band"</code> property</h3> -<pre class="programlisting"> "filter-band" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioKaraoke--filter-band"></a><h3>The <code class="literal">“filter-bandâ€</code> property</h3> +<pre class="programlisting"> “filter-band†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>The Frequency band of the filter.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,441]</p> <p>Default value: 220</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioKaraoke--filter-width"></a><h3>The <code class="literal">"filter-width"</code> property</h3> -<pre class="programlisting"> "filter-width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioKaraoke--filter-width"></a><h3>The <code class="literal">“filter-widthâ€</code> property</h3> +<pre class="programlisting"> “filter-width†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>The Frequency width of the filter.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100]</p> <p>Default value: 100</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioKaraoke--level"></a><h3>The <code class="literal">"level"</code> property</h3> -<pre class="programlisting"> "level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioKaraoke--level"></a><h3>The <code class="literal">“levelâ€</code> property</h3> +<pre class="programlisting"> “level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Level of the effect (1.0 = full).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioKaraoke--mono-level"></a><h3>The <code class="literal">"mono-level"</code> property</h3> -<pre class="programlisting"> "mono-level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioKaraoke--mono-level"></a><h3>The <code class="literal">“mono-levelâ€</code> property</h3> +<pre class="programlisting"> “mono-level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Level of the mono channel (1.0 = full).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 1</p> </div> @@ -218,6 +243,6 @@ This plugin is useful for karaoke applications. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f3be1dfd5..8dc79d472 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiopanorama</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiopanorama</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audioinvert.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiopanorama.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiopanorama.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiopanorama.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiopanorama.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiopanorama.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiopanorama.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiopanorama.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audioinvert.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiopanorama"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,41 +31,59 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiopanorama.top_of_page"></a>audiopanorama</span></h2> <p>audiopanorama — Positions audio streams in the stereo panorama</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiopanorama.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioPanorama"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct" title="struct GstAudioPanorama">GstAudioPanorama</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiopanorama.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstAudioPanorama -</pre> +<a name="gst-plugins-good-plugins-audiopanorama.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama" title="The “panorama†property">panorama</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioPanoramaMethod</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method" title="The “method†property">method</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioPanorama"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiopanorama.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct" title="struct GstAudioPanorama">GstAudioPanorama</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiopanorama.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama" title='The "panorama" property'>panorama</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method" title='The "method" property'>method</a>" <span class="type">GstAudioPanoramaMethod</span> : Read / Write +<a name="gst-plugins-good-plugins-audiopanorama.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstAudioPanorama </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiopanorama.description"></a><h2>Description</h2> -<p> -Stereo panorama effect with controllable pan position. One can choose between the default psychoacoustic panning method, -which keeps the same perceived loudness, and a simple panning method that just controls the volume on one channel. -</p> -<p> -</p> +<p>Stereo panorama effect with controllable pan position. One can choose between the default psychoacoustic panning method, +which keeps the same perceived loudness, and a simple panning method that just controls the volume on one channel.</p> <div class="refsect2"> -<a name="id-1.2.25.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.25.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -90,12 +102,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.25.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.25.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -121,7 +131,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.25.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.25.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -176,7 +186,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiopanorama.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiopanorama.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiopanorama.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioPanorama-struct"></a><h3>struct GstAudioPanorama</h3> <pre class="programlisting">struct GstAudioPanorama;</pre> @@ -187,28 +200,27 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span <div class="refsect1"> <a name="gst-plugins-good-plugins-audiopanorama.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioPanorama--panorama"></a><h3>The <code class="literal">"panorama"</code> property</h3> -<pre class="programlisting"> "panorama" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioPanorama--panorama"></a><h3>The <code class="literal">“panoramaâ€</code> property</h3> +<pre class="programlisting"> “panorama†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Position in stereo panorama (-1.0 left -> 1.0 right).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-1,1]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioPanorama--method"></a><h3>The <code class="literal">"method"</code> property</h3> -<pre class="programlisting"> "method" <span class="type">GstAudioPanoramaMethod</span> : Read / Write</pre> -<p> -Panning method: psychoacoustic mode keeps the same perceived loudness, +<a name="GstAudioPanorama--method"></a><h3>The <code class="literal">“methodâ€</code> property</h3> +<pre class="programlisting"> “method†<span class="type">GstAudioPanoramaMethod</span></pre> +<p>Panning method: psychoacoustic mode keeps the same perceived loudness, while simple mode just controls the volume of one channel. It's merely -a matter of taste which method should be chosen. -</p> +a matter of taste which method should be chosen.</p> +<p>Flags: Read / Write</p> <p>Default value: Psychoacoustic Panning (default)</p> -<p class="since">Since 0.10.6</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 948455396..54a51db83 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiowsincband</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiowsincband</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audioiirfilter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audiowsinclimit.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiowsincband.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiowsincband.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiowsincband.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiowsincband.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiowsincband.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiowsincband.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiowsincband.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audioiirfilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audiowsinclimit.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiowsincband"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,53 +31,81 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiowsincband.top_of_page"></a>audiowsincband</span></h2> <p>audiowsincband — Band pass and band reject windowed sinc filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiowsincband.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioWSincBand"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct" title="struct GstAudioWSincBand">GstAudioWSincBand</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiowsincband.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioFXBaseFIRFilter - +----GstAudioWSincBand -</pre> +<a name="gst-plugins-good-plugins-audiowsincband.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency" title="The “lower-frequency†property">lower-frequency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency" title="The “upper-frequency†property">upper-frequency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioWSincBandMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioWSincBandWindow</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window" title="The “window†property">window</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length" title="The “length†property">length</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioWSincBand"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiowsincband.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct" title="struct GstAudioWSincBand">GstAudioWSincBand</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiowsincband.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency" title='The "lower-frequency" property'>lower-frequency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency" title='The "upper-frequency" property'>upper-frequency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--mode" title='The "mode" property'>mode</a>" <span class="type">GstAudioWSincBandMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window" title='The "window" property'>window</a>" <span class="type">GstAudioWSincBandWindow</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length" title='The "length" property'>length</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-audiowsincband.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioFXBaseFIRFilter + <span class="lineart">╰──</span> GstAudioWSincBand </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiowsincband.description"></a><h2>Description</h2> -<p> -Attenuates all frequencies outside (bandpass) or inside (bandreject) of a frequency +<p>Attenuates all frequencies outside (bandpass) or inside (bandreject) of a frequency band. The length parameter controls the rolloff, the window parameter controls rolloff and stopband attenuation. The Hamming window provides a faster rolloff but a bit -worse stopband attenuation, the other way around for the Blackman window. -</p> -<p> -This element has the advantage over the Chebyshev bandpass and bandreject filter that it has +worse stopband attenuation, the other way around for the Blackman window.</p> +<p>This element has the advantage over the Chebyshev bandpass and bandreject filter that it has a much better rolloff when using a larger kernel size and almost linear phase. The only -disadvantage is the much slower execution time with larger kernels. -</p> -<p> -</p> +disadvantage is the much slower execution time with larger kernels.</p> <div class="refsect2"> -<a name="id-1.2.20.6.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.20.7.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -100,12 +122,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.20.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.20.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -131,7 +151,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.20.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.20.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -186,51 +206,57 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiowsincband.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiowsincband.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiowsincband.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioWSincBand-struct"></a><h3>struct GstAudioWSincBand</h3> <pre class="programlisting">struct GstAudioWSincBand;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiowsincband.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioWSincBand--lower-frequency"></a><h3>The <code class="literal">"lower-frequency"</code> property</h3> -<pre class="programlisting"> "lower-frequency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioWSincBand--lower-frequency"></a><h3>The <code class="literal">“lower-frequencyâ€</code> property</h3> +<pre class="programlisting"> “lower-frequency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Cut-off lower frequency (Hz).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100000]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincBand--upper-frequency"></a><h3>The <code class="literal">"upper-frequency"</code> property</h3> -<pre class="programlisting"> "upper-frequency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioWSincBand--upper-frequency"></a><h3>The <code class="literal">“upper-frequencyâ€</code> property</h3> +<pre class="programlisting"> “upper-frequency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Cut-off upper frequency (Hz).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100000]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincBand--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstAudioWSincBandMode</span> : Read / Write</pre> +<a name="GstAudioWSincBand--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstAudioWSincBandMode</span></pre> <p>Band pass or band reject mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Band pass (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincBand--window"></a><h3>The <code class="literal">"window"</code> property</h3> -<pre class="programlisting"> "window" <span class="type">GstAudioWSincBandWindow</span> : Read / Write</pre> +<a name="GstAudioWSincBand--window"></a><h3>The <code class="literal">“windowâ€</code> property</h3> +<pre class="programlisting"> “window†<span class="type">GstAudioWSincBandWindow</span></pre> <p>Window function to use.</p> +<p>Flags: Read / Write</p> <p>Default value: Hamming window (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincBand--length"></a><h3>The <code class="literal">"length"</code> property</h3> -<pre class="programlisting"> "length" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAudioWSincBand--length"></a><h3>The <code class="literal">“lengthâ€</code> property</h3> +<pre class="programlisting"> “length†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Filter kernel length, will be rounded to the next odd number.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [3,256000]</p> <p>Default value: 101</p> </div> @@ -238,6 +264,6 @@ Opaque data structure. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f89997421..11697e0dd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html +++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiowsinclimit</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiowsinclimit</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiowsincband.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-audioecho.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-audiowsinclimit.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-audiowsinclimit.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-audiowsinclimit.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-audiowsinclimit.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiowsinclimit.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiowsinclimit.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-audiowsinclimit.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiowsincband.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-audioecho.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-audiowsinclimit"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,53 +31,81 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-audiowsinclimit.top_of_page"></a>audiowsinclimit</span></h2> <p>audiowsinclimit — Low pass and high pass windowed sinc filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-audiowsinclimit.synopsis"></a><h2>Synopsis</h2> -<a name="GstAudioWSincLimit"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit-struct" title="struct GstAudioWSincLimit">GstAudioWSincLimit</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiowsinclimit.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstAudioFXBaseFIRFilter - +----GstAudioWSincLimit -</pre> +<a name="gst-plugins-good-plugins-audiowsinclimit.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency" title="The “frequency†property">frequency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--length" title="The “length†property">length</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioWSincLimitMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstAudioWSincLimitWindow</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window" title="The “window†property">window</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff" title="The “cutoff†property">cutoff</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAudioWSincLimit"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-audiowsinclimit.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit-struct" title="struct GstAudioWSincLimit">GstAudioWSincLimit</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiowsinclimit.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency" title='The "frequency" property'>frequency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--length" title='The "length" property'>length</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode" title='The "mode" property'>mode</a>" <span class="type">GstAudioWSincLimitMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window" title='The "window" property'>window</a>" <span class="type">GstAudioWSincLimitWindow</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff" title='The "cutoff" property'>cutoff</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write +<a name="gst-plugins-good-plugins-audiowsinclimit.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstAudioFXBaseFIRFilter + <span class="lineart">╰──</span> GstAudioWSincLimit </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiowsinclimit.description"></a><h2>Description</h2> -<p> -Attenuates all frequencies above the cutoff frequency (low-pass) or all frequencies below the +<p>Attenuates all frequencies above the cutoff frequency (low-pass) or all frequencies below the cutoff frequency (high-pass). The length parameter controls the rolloff, the window parameter controls rolloff and stopband attenuation. The Hamming window provides a faster rolloff but a bit -worse stopband attenuation, the other way around for the Blackman window. -</p> -<p> -This element has the advantage over the Chebyshev lowpass and highpass filter that it has +worse stopband attenuation, the other way around for the Blackman window.</p> +<p>This element has the advantage over the Chebyshev lowpass and highpass filter that it has a much better rolloff when using a larger kernel size and almost linear phase. The only -disadvantage is the much slower execution time with larger kernels. -</p> -<p> -</p> +disadvantage is the much slower execution time with larger kernels.</p> <div class="refsect2"> -<a name="id-1.2.21.6.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.21.7.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -100,12 +122,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.21.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.21.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -131,7 +151,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> <hr> <div class="refsect2"> -<a name="id-1.2.21.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.21.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -186,51 +206,57 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-audiowsinclimit.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-audiowsinclimit.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-audiowsinclimit.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAudioWSincLimit-struct"></a><h3>struct GstAudioWSincLimit</h3> <pre class="programlisting">struct GstAudioWSincLimit;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-audiowsinclimit.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAudioWSincLimit--frequency"></a><h3>The <code class="literal">"frequency"</code> property</h3> -<pre class="programlisting"> "frequency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstAudioWSincLimit--frequency"></a><h3>The <code class="literal">“frequencyâ€</code> property</h3> +<pre class="programlisting"> “frequency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Cut-off Frequency (Hz).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincLimit--length"></a><h3>The <code class="literal">"length"</code> property</h3> -<pre class="programlisting"> "length" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstAudioWSincLimit--length"></a><h3>The <code class="literal">“lengthâ€</code> property</h3> +<pre class="programlisting"> “length†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Filter kernel length, will be rounded to the next odd number.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [3,256000]</p> <p>Default value: 101</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincLimit--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstAudioWSincLimitMode</span> : Read / Write</pre> +<a name="GstAudioWSincLimit--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstAudioWSincLimitMode</span></pre> <p>Low pass or high pass mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Low pass (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincLimit--window"></a><h3>The <code class="literal">"window"</code> property</h3> -<pre class="programlisting"> "window" <span class="type">GstAudioWSincLimitWindow</span> : Read / Write</pre> +<a name="GstAudioWSincLimit--window"></a><h3>The <code class="literal">“windowâ€</code> property</h3> +<pre class="programlisting"> “window†<span class="type">GstAudioWSincLimitWindow</span></pre> <p>Window function to use.</p> +<p>Flags: Read / Write</p> <p>Default value: Hamming window (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstAudioWSincLimit--cutoff"></a><h3>The <code class="literal">"cutoff"</code> property</h3> -<pre class="programlisting"> "cutoff" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstAudioWSincLimit--cutoff"></a><h3>The <code class="literal">“cutoffâ€</code> property</h3> +<pre class="programlisting"> “cutoff†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Cut-off Frequency (Hz).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100000]</p> <p>Default value: 0</p> </div> @@ -238,6 +264,6 @@ Opaque data structure. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 749af4342..55bd46ea3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>auparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: auparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-autoaudiosink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-auparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-auparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-auparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-auparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-auparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-autoaudiosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-auparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,32 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-auparse.top_of_page"></a>auparse</span></h2> <p>auparse — Parse an .au file into raw audio</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-auparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstAuParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-auparse.html#GstAuParse-struct" title="struct GstAuParse">GstAuParse</a>; -</pre> +<a name="GstAuParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-auparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-auparse.html#GstAuParse-struct" title="struct GstAuParse">GstAuParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-auparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstAuParse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstAuParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-auparse.description"></a><h2>Description</h2> -<p> -Parses .au files mostly originating from sun os based computers. -</p> +<p>Parses .au files mostly originating from sun os based computers.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.27.5.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.27.6.2.1.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="id-1.2.27.5.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.27.6.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -157,7 +157,10 @@ Parses .au files mostly originating from sun os based computers. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-auparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-auparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-auparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAuParse-struct"></a><h3>struct GstAuParse</h3> <pre class="programlisting">struct GstAuParse;</pre> @@ -168,6 +171,6 @@ Parses .au files mostly originating from sun os based computers. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 eba84ae4c..e42d0d9ae 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>autoaudiosink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: autoaudiosink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-auparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-autoaudiosrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-autoaudiosink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosink.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-auparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-autoaudiosrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-autoaudiosink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,58 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-autoaudiosink.top_of_page"></a>autoaudiosink</span></h2> <p>autoaudiosink — Wrapper audio sink for automatically detected audio sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-autoaudiosink.synopsis"></a><h2>Synopsis</h2> -<a name="GstAutoAudioSink"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct" title="GstAutoAudioSink">GstAutoAudioSink</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autoaudiosink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps" title="The “filter-caps†property">filter-caps</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">gint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--ts-offset" title="The “ts-offset†property">ts-offset</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--sync" title="The “sync†property">sync</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAutoAudioSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-autoaudiosink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct" title="GstAutoAudioSink">GstAutoAudioSink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-autoaudiosink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstAutoAudioSink +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstAutoDetect + <span class="lineart">╰──</span> GstAutoAudioSink </pre> </div> <div class="refsect1"> @@ -64,25 +93,13 @@ GstAutoAudioSink implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autoaudiosink.properties"></a><h2>Properties</h2> -<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"> <a name="gst-plugins-good-plugins-autoaudiosink.description"></a><h2>Description</h2> -<p> -autoaudiosink is an audio sink that automatically detects an appropriate +<p>autoaudiosink is an audio sink that automatically detects an appropriate audio sink to use. It does so by scanning the registry for all elements that have <span class="quote">“<span class="quote">Sink</span>â€</span> and <span class="quote">“<span class="quote">Audio</span>â€</span> in the class field -of their element information, and also have a non-zero autoplugging rank. -</p> -<p> -</p> +of their element information, and also have a non-zero autoplugging rank.</p> <div class="refsect2"> -<a name="id-1.2.28.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.28.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -95,12 +112,10 @@ of their element information, and also have a non-zero autoplugging rank. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.28.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.28.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -126,7 +141,7 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="id-1.2.28.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.28.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -157,7 +172,10 @@ of their element information, and also have a non-zero autoplugging rank. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autoaudiosink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-autoaudiosink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autoaudiosink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAutoAudioSink-struct"></a><h3>GstAutoAudioSink</h3> <pre class="programlisting">typedef struct _GstAutoAudioSink GstAutoAudioSink;</pre> @@ -168,40 +186,35 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsect1"> <a name="gst-plugins-good-plugins-autoaudiosink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAutoAudioSink--filter-caps"></a><h3>The <code class="literal">"filter-caps"</code> property</h3> -<pre class="programlisting"> "filter-caps" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write</pre> -<p> -This property will filter out candidate sinks that can handle the specified -caps. By default only audio sinks that support raw floating point and -integer audio are selected. -</p> -<p> -This property can only be set before the element goes to the READY state. -</p> -<p class="since">Since 0.10.7</p> +<a name="GstAutoAudioSink--filter-caps"></a><h3>The <code class="literal">“filter-capsâ€</code> property</h3> +<pre class="programlisting"> “filter-caps†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre> +<p>Filter sink candidates using these caps.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstAutoAudioSink--ts-offset"></a><h3>The <code class="literal">"ts-offset"</code> property</h3> -<pre class="programlisting"> "ts-offset" <span class="type">gint64</span> : Read / Write</pre> +<a name="GstAutoAudioSink--ts-offset"></a><h3>The <code class="literal">“ts-offsetâ€</code> property</h3> +<pre class="programlisting"> “ts-offset†<span class="type">gint64</span></pre> <p>Timestamp offset in nanoseconds.</p> +<p>Flags: Read / Write</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> +<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></pre> <p>Sync on the clock.</p> +<p>Flags: Read / Write</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> -autovideosink, alsasink, osssink +<p>autovideosink, alsasink, osssink</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 29480c2a7..64e6917ec 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>autoaudiosrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: autoaudiosrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-autoaudiosink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-autovideosink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-autoaudiosrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-autoaudiosrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autoaudiosrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-autoaudiosink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-autovideosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-autoaudiosrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,46 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-autoaudiosrc.top_of_page"></a>autoaudiosrc</span></h2> <p>autoaudiosrc — Wrapper audio source for automatically detected audio source</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-autoaudiosrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstAutoAudioSrc"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc-struct" title="GstAutoAudioSrc">GstAutoAudioSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autoaudiosrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--filter-caps" title="The “filter-caps†property">filter-caps</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstAutoAudioSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-autoaudiosrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc-struct" title="GstAutoAudioSrc">GstAutoAudioSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-autoaudiosrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstAutoAudioSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstAutoDetect + <span class="lineart">╰──</span> GstAutoAudioSrc </pre> </div> <div class="refsect1"> @@ -64,23 +81,13 @@ GstAutoAudioSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autoaudiosrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--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 -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-autoaudiosrc.description"></a><h2>Description</h2> -<p> -autoaudiosrc is an audio source that automatically detects an appropriate +<p>autoaudiosrc is an audio source that automatically detects an appropriate audio source to use. It does so by scanning the registry for all elements that have <span class="quote">“<span class="quote">Source</span>â€</span> and <span class="quote">“<span class="quote">Audio</span>â€</span> in the class field -of their element information, and also have a non-zero autoplugging rank. -</p> -<p> -</p> +of their element information, and also have a non-zero autoplugging rank.</p> <div class="refsect2"> -<a name="id-1.2.29.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.29.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -93,12 +100,10 @@ of their element information, and also have a non-zero autoplugging rank. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.29.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.29.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -124,7 +129,7 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="id-1.2.29.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.29.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -155,7 +160,10 @@ of their element information, and also have a non-zero autoplugging rank. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autoaudiosrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-autoaudiosrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autoaudiosrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAutoAudioSrc-struct"></a><h3>GstAutoAudioSrc</h3> <pre class="programlisting">typedef struct _GstAutoAudioSrc GstAutoAudioSrc;</pre> @@ -166,26 +174,19 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsect1"> <a name="gst-plugins-good-plugins-autoaudiosrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAutoAudioSrc--filter-caps"></a><h3>The <code class="literal">"filter-caps"</code> property</h3> -<pre class="programlisting"> "filter-caps" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write</pre> -<p> -This property will filter out candidate sinks that can handle the specified -caps. By default only audio sinks that support raw floating point and -integer audio are selected. -</p> -<p> -This property can only be set before the element goes to the READY state. -</p> -<p class="since">Since 0.10.14</p> +<a name="GstAutoAudioSrc--filter-caps"></a><h3>The <code class="literal">“filter-capsâ€</code> property</h3> +<pre class="programlisting"> “filter-caps†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre> +<p>Filter sink candidates using these caps.</p> +<p>Flags: Read / Write</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-autoaudiosrc.see-also"></a><h2>See Also</h2> -autovideosrc, alsasrc, osssrc +<p>autovideosrc, alsasrc, osssrc</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c79ba85cb..d2b59e44c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>autovideosink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: autovideosink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-autoaudiosrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-autovideosrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-autovideosink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-autovideosink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-autovideosink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-autovideosink.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-autovideosink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-autoaudiosrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-autovideosrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-autovideosink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,58 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-autovideosink.top_of_page"></a>autovideosink</span></h2> <p>autovideosink — Wrapper video sink for automatically detected video sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-autovideosink.synopsis"></a><h2>Synopsis</h2> -<a name="GstAutoVideoSink"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink-struct" title="GstAutoVideoSink">GstAutoVideoSink</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autovideosink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--filter-caps" title="The “filter-caps†property">filter-caps</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">gint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--ts-offset" title="The “ts-offset†property">ts-offset</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink--sync" title="The “sync†property">sync</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstAutoVideoSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-autovideosink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink-struct" title="GstAutoVideoSink">GstAutoVideoSink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-autovideosink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstAutoVideoSink +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstAutoDetect + <span class="lineart">╰──</span> GstAutoVideoSink </pre> </div> <div class="refsect1"> @@ -64,25 +93,13 @@ GstAutoVideoSink implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autovideosink.properties"></a><h2>Properties</h2> -<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"> <a name="gst-plugins-good-plugins-autovideosink.description"></a><h2>Description</h2> -<p> -autovideosink is a video sink that automatically detects an appropriate +<p>autovideosink is a video sink that automatically detects an appropriate video sink to use. It does so by scanning the registry for all elements that have <span class="quote">“<span class="quote">Sink</span>â€</span> and <span class="quote">“<span class="quote">Video</span>â€</span> in the class field -of their element information, and also have a non-zero autoplugging rank. -</p> -<p> -</p> +of their element information, and also have a non-zero autoplugging rank.</p> <div class="refsect2"> -<a name="id-1.2.30.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.30.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -95,12 +112,10 @@ of their element information, and also have a non-zero autoplugging rank. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.30.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.30.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -126,7 +141,7 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="id-1.2.30.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.30.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -157,7 +172,10 @@ of their element information, and also have a non-zero autoplugging rank. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autovideosink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-autovideosink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autovideosink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAutoVideoSink-struct"></a><h3>GstAutoVideoSink</h3> <pre class="programlisting">typedef struct _GstAutoVideoSink GstAutoVideoSink;</pre> @@ -168,40 +186,35 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsect1"> <a name="gst-plugins-good-plugins-autovideosink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAutoVideoSink--filter-caps"></a><h3>The <code class="literal">"filter-caps"</code> property</h3> -<pre class="programlisting"> "filter-caps" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write</pre> -<p> -This property will filter out candidate sinks that can handle the specified -caps. By default only video sinks that support raw rgb and yuv video -are selected. -</p> -<p> -This property can only be set before the element goes to the READY state. -</p> -<p class="since">Since 0.10.7</p> +<a name="GstAutoVideoSink--filter-caps"></a><h3>The <code class="literal">“filter-capsâ€</code> property</h3> +<pre class="programlisting"> “filter-caps†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre> +<p>Filter sink candidates using these caps.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstAutoVideoSink--ts-offset"></a><h3>The <code class="literal">"ts-offset"</code> property</h3> -<pre class="programlisting"> "ts-offset" <span class="type">gint64</span> : Read / Write</pre> +<a name="GstAutoVideoSink--ts-offset"></a><h3>The <code class="literal">“ts-offsetâ€</code> property</h3> +<pre class="programlisting"> “ts-offset†<span class="type">gint64</span></pre> <p>Timestamp offset in nanoseconds.</p> +<p>Flags: Read / Write</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> +<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></pre> <p>Sync on the clock.</p> +<p>Flags: Read / Write</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> -autoaudiosink, ximagesink, xvimagesink, sdlvideosink +<p>autoaudiosink, ximagesink, xvimagesink, sdlvideosink</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e0b3f9b54..1a739ae6c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>autovideosrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: autovideosrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-autovideosink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-avidemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-autovideosrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-autovideosrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-autovideosrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-autovideosrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-autovideosrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-autovideosrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-autovideosink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-avidemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-autovideosrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,46 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-autovideosrc.top_of_page"></a>autovideosrc</span></h2> <p>autovideosrc — Wrapper video source for automatically detected video source</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-autovideosrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstAutoVideoSrc"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc-struct" title="GstAutoVideoSrc">GstAutoVideoSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autovideosrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--filter-caps" title="The “filter-caps†property">filter-caps</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstAutoVideoSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-autovideosrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc-struct" title="GstAutoVideoSrc">GstAutoVideoSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-autovideosrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstAutoVideoSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstAutoDetect + <span class="lineart">╰──</span> GstAutoVideoSrc </pre> </div> <div class="refsect1"> @@ -64,23 +81,13 @@ GstAutoVideoSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autovideosrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--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 -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-autovideosrc.description"></a><h2>Description</h2> -<p> -autovideosrc is a video src that automatically detects an appropriate +<p>autovideosrc is a video src that automatically detects an appropriate video source to use. It does so by scanning the registry for all elements that have <span class="quote">“<span class="quote">Source</span>â€</span> and <span class="quote">“<span class="quote">Video</span>â€</span> in the class field -of their element information, and also have a non-zero autoplugging rank. -</p> -<p> -</p> +of their element information, and also have a non-zero autoplugging rank.</p> <div class="refsect2"> -<a name="id-1.2.31.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.31.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -93,12 +100,10 @@ of their element information, and also have a non-zero autoplugging rank. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.31.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.31.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -124,7 +129,7 @@ of their element information, and also have a non-zero autoplugging rank. </div> <hr> <div class="refsect2"> -<a name="id-1.2.31.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.31.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -155,7 +160,10 @@ of their element information, and also have a non-zero autoplugging rank. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-autovideosrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-autovideosrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-autovideosrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAutoVideoSrc-struct"></a><h3>GstAutoVideoSrc</h3> <pre class="programlisting">typedef struct _GstAutoVideoSrc GstAutoVideoSrc;</pre> @@ -166,26 +174,19 @@ of their element information, and also have a non-zero autoplugging rank. <div class="refsect1"> <a name="gst-plugins-good-plugins-autovideosrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAutoVideoSrc--filter-caps"></a><h3>The <code class="literal">"filter-caps"</code> property</h3> -<pre class="programlisting"> "filter-caps" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write</pre> -<p> -This property will filter out candidate sources that can handle the specified -caps. By default only video sources that support raw rgb and yuv video -are selected. -</p> -<p> -This property can only be set before the element goes to the READY state. -</p> -<p class="since">Since 0.10.14</p> +<a name="GstAutoVideoSrc--filter-caps"></a><h3>The <code class="literal">“filter-capsâ€</code> property</h3> +<pre class="programlisting"> “filter-caps†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre> +<p>Filter src candidates using these caps.</p> +<p>Flags: Read / Write</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-autovideosrc.see-also"></a><h2>See Also</h2> -autoaudiosrc, v4l2src, v4lsrc +<p>autoaudiosrc, v4l2src, v4lsrc</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 9d14b660e..730e4dd6e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>avidemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: avidemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-autovideosrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-avimux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-avidemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-avidemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-avidemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avidemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avidemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-autovideosrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-avimux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-avidemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,36 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-avidemux.top_of_page"></a>avidemux</span></h2> <p>avidemux — Demultiplex an avi file into audio and video</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-avidemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstAviDemux"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-avidemux.html#GstAviDemux-struct" title="GstAviDemux">GstAviDemux</a>; -</pre> +<a name="GstAviDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-avidemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-avidemux.html#GstAviDemux-struct" title="GstAviDemux">GstAviDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-avidemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstAviDemux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstAviDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-avidemux.description"></a><h2>Description</h2> -<p> -Demuxes an .avi file into raw or compressed audio and/or video streams. -</p> -<p> -This element supports both push and pull-based scheduling, depending on the -capabilities of the upstream elements. -</p> -<p> -</p> +<p>Demuxes an .avi file into raw or compressed audio and/or video streams.</p> +<p>This element supports both push and pull-based scheduling, depending on the +capabilities of the upstream elements.</p> <div class="refsect2"> -<a name="id-1.2.32.5.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.32.6.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -80,15 +76,10 @@ an automatically detected soundcard and videosink. If the AVI file contains compressed audio or video data, this will only work if you have the right decoder elements/plugins installed. </div> -<p> -</p> -<p> -Last reviewed on 2006-12-29 (0.10.6) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.32.5.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.32.6.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -114,7 +105,7 @@ Last reviewed on 2006-12-29 (0.10.6) </div> <hr> <div class="refsect2"> -<a name="id-1.2.32.5.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.32.6.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -279,6 +270,30 @@ Last reviewed on 2006-12-29 (0.10.6) <tbody> <tr> <td><p><span class="term">name</span></p></td> +<td>subpicture_%u</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>sometimes</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>subpicture/x-xsub</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> <td>subtitle_%u</td> </tr> <tr> @@ -653,7 +668,10 @@ Last reviewed on 2006-12-29 (0.10.6) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-avidemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-avidemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-avidemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAviDemux-struct"></a><h3>GstAviDemux</h3> <pre class="programlisting">typedef struct _GstAviDemux GstAviDemux;</pre> @@ -664,6 +682,6 @@ Last reviewed on 2006-12-29 (0.10.6) </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 2f295f8ae..53572c815 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>avimux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: avimux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-avidemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-avisubtitle.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-avimux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-avimux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-avimux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-avimux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-avimux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avimux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avimux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avimux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avimux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-avidemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-avisubtitle.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-avimux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,21 +32,43 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-avimux.top_of_page"></a>avimux</span></h2> <p>avimux — Muxes audio and video into an avi stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-avimux.synopsis"></a><h2>Synopsis</h2> -<a name="GstAviMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-avimux.html#GstAviMux-struct" title="struct GstAviMux">GstAviMux</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-avimux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile" title="The “bigfile†property">bigfile</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstAviMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-avimux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-avimux.html#GstAviMux-struct" title="struct GstAviMux">GstAviMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-avimux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstAviMux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstAviMux </pre> </div> <div class="refsect1"> @@ -63,20 +78,10 @@ GstAviMux implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-avimux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile" title='The "bigfile" property'>bigfile</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"> <a name="gst-plugins-good-plugins-avimux.description"></a><h2>Description</h2> -<p> -Muxes raw or compressed audio and/or video streams into an AVI file. -</p> -<p> -</p> +<p>Muxes raw or compressed audio and/or video streams into an AVI file.</p> <div class="refsect2"> -<a name="id-1.2.33.7.3.1"></a><h3>Example launch lines</h3> +<a name="id-1.2.33.8.3"></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"> @@ -125,12 +130,10 @@ avimux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span as above, only that both streams will be compressed this time. This will only work if you have the necessary encoder elements installed of course. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.33.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.33.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -156,7 +159,7 @@ only work if you have the necessary encoder elements installed of course. </div> <hr> <div class="refsect2"> -<a name="id-1.2.33.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.33.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -303,7 +306,10 @@ only work if you have the necessary encoder elements installed of course. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-avimux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-avimux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-avimux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAviMux-struct"></a><h3>struct GstAviMux</h3> <pre class="programlisting">struct GstAviMux;</pre> @@ -314,15 +320,16 @@ only work if you have the necessary encoder elements installed of course. <div class="refsect1"> <a name="gst-plugins-good-plugins-avimux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstAviMux--bigfile"></a><h3>The <code class="literal">"bigfile"</code> property</h3> -<pre class="programlisting"> "bigfile" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstAviMux--bigfile"></a><h3>The <code class="literal">“bigfileâ€</code> property</h3> +<pre class="programlisting"> “bigfile†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Support for openDML-2.0 (big) AVI files.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 adbbd26f6..c919469c7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html +++ b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>avisubtitle</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: avisubtitle</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-avimux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-cacasink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-avisubtitle.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-avisubtitle.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-avisubtitle.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avisubtitle.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-avisubtitle.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-avimux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-cacasink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-avisubtitle"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,29 +30,34 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-avisubtitle.top_of_page"></a>avisubtitle</span></h2> <p>avisubtitle — Parse avi subtitle stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-avisubtitle.synopsis"></a><h2>Synopsis</h2> -<a name="GstAviSubtitle"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-avisubtitle.html#GstAviSubtitle-struct" title="struct GstAviSubtitle">GstAviSubtitle</a>; -</pre> +<a name="GstAviSubtitle"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-avisubtitle.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-avisubtitle.html#GstAviSubtitle-struct" title="struct GstAviSubtitle">GstAviSubtitle</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-avisubtitle.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstAviSubtitle +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstAviSubtitle </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-avisubtitle.description"></a><h2>Description</h2> -<p> -</p> <div class="refsect2"> -<a name="id-1.2.34.5.2.1"></a><h3>Example launch line</h3> +<a name="id-1.2.34.6.2"></a><h3>Example launch line</h3> <p> Parses the subtitle stream from an avi file. </p> @@ -70,15 +70,10 @@ gst-launch-1.0 filesrc location=subtitle.avi ! avidemux name=demux ! queue ! avi This plays an avi file with a video and subtitle stream. </p> </div> -<p> -</p> -<p> -Last reviewed on 2008-02-01 -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.34.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.34.6.3.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -104,7 +99,7 @@ Last reviewed on 2008-02-01 </div> <hr> <div class="refsect2"> -<a name="id-1.2.34.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.34.6.3.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -159,7 +154,10 @@ Last reviewed on 2008-02-01 </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-avisubtitle.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-avisubtitle.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-avisubtitle.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstAviSubtitle-struct"></a><h3>struct GstAviSubtitle</h3> <pre class="programlisting">struct GstAviSubtitle;</pre> @@ -170,6 +168,6 @@ Last reviewed on 2008-02-01 </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 b9b17bc27..151faea8b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>cacasink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: cacasink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-avisubtitle.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-cairooverlay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-cacasink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-cacasink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-cacasink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-cacasink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cacasink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cacasink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cacasink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-avisubtitle.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-cairooverlay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-cacasink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,31 +31,61 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-cacasink.top_of_page"></a>cacasink</span></h2> <p>cacasink — A colored ASCII art videosink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-cacasink.synopsis"></a><h2>Synopsis</h2> -<a name="GstCACASink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink-struct" title="struct GstCACASink">GstCACASink</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cacasink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----GstCACASink -</pre> +<a name="gst-plugins-good-plugins-cacasink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing" title="The “anti-aliasing†property">anti-aliasing</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstCACASinkDithering</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--dither" title="The “dither†property">dither</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height" title="The “screen-height†property">screen-height</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width" title="The “screen-width†property">screen-width</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstCACASink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-cacasink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink-struct" title="struct GstCACASink">GstCACASink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cacasink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing" title='The "anti-aliasing" property'>anti-aliasing</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--dither" title='The "dither" property'>dither</a>" <span class="type">GstCACASinkDithering</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height" title='The "screen-height" property'>screen-height</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width" title='The "screen-width" property'>screen-width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read +<a name="gst-plugins-good-plugins-cacasink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> GstCACASink </pre> </div> <div class="refsect1"> @@ -69,7 +93,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.35.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.35.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -95,7 +119,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.35.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.35.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -126,7 +150,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cacasink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-cacasink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-cacasink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstCACASink-struct"></a><h3>struct GstCACASink</h3> <pre class="programlisting">struct GstCACASink;</pre> @@ -137,31 +164,35 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-cacasink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstCACASink--anti-aliasing"></a><h3>The <code class="literal">"anti-aliasing"</code> property</h3> -<pre class="programlisting"> "anti-aliasing" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstCACASink--anti-aliasing"></a><h3>The <code class="literal">“anti-aliasingâ€</code> property</h3> +<pre class="programlisting"> “anti-aliasing†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enables Anti-Aliasing.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstCACASink--dither"></a><h3>The <code class="literal">"dither"</code> property</h3> -<pre class="programlisting"> "dither" <span class="type">GstCACASinkDithering</span> : Read / Write</pre> +<a name="GstCACASink--dither"></a><h3>The <code class="literal">“ditherâ€</code> property</h3> +<pre class="programlisting"> “dither†<span class="type">GstCACASinkDithering</span></pre> <p>Set type of Dither.</p> +<p>Flags: Read / Write</p> <p>Default value: No dithering</p> </div> <hr> <div class="refsect2"> -<a name="GstCACASink--screen-height"></a><h3>The <code class="literal">"screen-height"</code> property</h3> -<pre class="programlisting"> "screen-height" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstCACASink--screen-height"></a><h3>The <code class="literal">“screen-heightâ€</code> property</h3> +<pre class="programlisting"> “screen-height†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The height of the screen.</p> +<p>Flags: Read</p> <p>Allowed values: >= 0</p> <p>Default value: 25</p> </div> <hr> <div class="refsect2"> -<a name="GstCACASink--screen-width"></a><h3>The <code class="literal">"screen-width"</code> property</h3> -<pre class="programlisting"> "screen-width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstCACASink--screen-width"></a><h3>The <code class="literal">“screen-widthâ€</code> property</h3> +<pre class="programlisting"> “screen-width†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The width of the screen.</p> +<p>Flags: Read</p> <p>Allowed values: >= 0</p> <p>Default value: 80</p> </div> @@ -169,6 +200,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c4bbec6b1..b14aadb78 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>cairooverlay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: cairooverlay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-cacasink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-capssetter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-cairooverlay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-cairooverlay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-cairooverlay.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-cairooverlay.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cairooverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cairooverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cairooverlay.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-cacasink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-capssetter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-cairooverlay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,30 +31,52 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-cairooverlay.top_of_page"></a>cairooverlay</span></h2> <p>cairooverlay — Render overlay on a video stream using Cairo</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-cairooverlay.synopsis"></a><h2>Synopsis</h2> -<a name="GstCairoOverlay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-struct" title="struct GstCairoOverlay">GstCairoOverlay</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cairooverlay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstCairoOverlay -</pre> +<a name="gst-plugins-good-plugins-cairooverlay.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed" title="The “caps-changed†signal">caps-changed</a></td> +<td class="signal_flags"> </td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw" title="The “draw†signal">draw</a></td> +<td class="signal_flags"> </td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstCairoOverlay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-cairooverlay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-struct" title="struct GstCairoOverlay">GstCairoOverlay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cairooverlay.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed" title='The "caps-changed" signal'>caps-changed</a>" - "<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw" title='The "draw" signal'>draw</a>" +<a name="gst-plugins-good-plugins-cairooverlay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstCairoOverlay </pre> </div> <div class="refsect1"> @@ -68,7 +84,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.36.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.36.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -94,7 +110,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.36.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.36.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -115,7 +131,7 @@ </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ BGRx, BGRA }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ BGRx, BGRA, RGB16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> @@ -139,7 +155,7 @@ </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ BGRx, BGRA }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +<td>video/x-raw, format=(string){ BGRx, BGRA, RGB16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> </tbody> </table></div> @@ -149,7 +165,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cairooverlay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-cairooverlay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-cairooverlay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstCairoOverlay-struct"></a><h3>struct GstCairoOverlay</h3> <pre class="programlisting">struct GstCairoOverlay;</pre> @@ -160,60 +179,74 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-cairooverlay.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstCairoOverlay-caps-changed"></a><h3>The <code class="literal">"caps-changed"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *gstcairooverlay, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<a name="GstCairoOverlay-caps-changed"></a><h3>The <code class="literal">“caps-changedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *gstcairooverlay, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.36.10.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstcairooverlay</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstcairooverlay</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +</div> <hr> <div class="refsect2"> -<a name="GstCairoOverlay-draw"></a><h3>The <code class="literal">"draw"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *gstcairooverlay, - <span class="type">CairoContext</span> *arg1, - <span class="type">guint64</span> arg2, - <span class="type">guint64</span> arg3, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<a name="GstCairoOverlay-draw"></a><h3>The <code class="literal">“drawâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *gstcairooverlay, + <span class="type">CairoContext</span> *arg1, + <span class="type">guint64</span> arg2, + <span class="type">guint64</span> arg3, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.36.10.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstcairooverlay</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstcairooverlay</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> </div> +</div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 277fe2c97..90ffca42e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>capssetter</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: capssetter</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-cairooverlay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-cutter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-capssetter.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-capssetter.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-capssetter.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-capssetter.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-capssetter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-capssetter.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-capssetter.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-cairooverlay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-cutter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-capssetter"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,69 +31,80 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-capssetter.top_of_page"></a>capssetter</span></h2> <p>capssetter — Set/merge caps on stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-capssetter.synopsis"></a><h2>Synopsis</h2> -<a name="GstCapsSetter"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter-struct" title="struct GstCapsSetter">GstCapsSetter</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-capssetter.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstCapsSetter -</pre> +<a name="gst-plugins-good-plugins-capssetter.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps" title="The “caps†property">caps</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join" title="The “join†property">join</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace" title="The “replace†property">replace</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstCapsSetter"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-capssetter.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter-struct" title="struct GstCapsSetter">GstCapsSetter</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-capssetter.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps" title='The "caps" property'>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-capssetter.html#GstCapsSetter--join" title='The "join" property'>join</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace" title='The "replace" property'>replace</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-capssetter.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstCapsSetter </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-capssetter.description"></a><h2>Description</h2> -<p> -</p> -<div class="refsect2"> -<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 -contain multiple structures (though not likely recommended), but each -of these must be fixed (or will otherwise be rejected). -</p> -<p> -If <a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join" title='The "join" property'>join</a> -is TRUE, then the incoming caps' mime-type is compared to the mime-type(s) -of provided caps and only matching structure(s) are considered for updating. -</p> -<p> -If <a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace" title='The "replace" property'>replace</a> -is TRUE, then any caps update is preceded by clearing existing fields, -making provided fields (as a whole) replace incoming ones. -Otherwise, no clearing is performed, in which case provided fields are -added/merged onto incoming caps -</p> -<p> -Although this element might mainly serve as debug helper, +<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"><span class="type">“capsâ€</span></a>. Note that this may contain +multiple structures (though not likely recommended), but each of these must +be fixed (or will otherwise be rejected).</p> +<p>If <a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join" title="The “join†property"><span class="type">“joinâ€</span></a> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the incoming caps' mime-type is +compared to the mime-type(s) of provided caps and only matching structure(s) +are considered for updating.</p> +<p>If <a class="link" href="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace" title="The “replace†property"><span class="type">“replaceâ€</span></a> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then any caps update is preceded by +clearing existing fields, making provided fields (as a whole) replace +incoming ones. Otherwise, no clearing is performed, in which case provided +fields are added/merged onto incoming caps</p> +<p>Although this element might mainly serve as debug helper, it can also practically be used to correct a faulty pixel-aspect-ratio, or to modify a yuv fourcc value to effectively swap chroma components or such -alike. -</p> -</div> -<p> -</p> +alike.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.37.6.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.37.7.5.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -125,7 +130,7 @@ alike. </div> <hr> <div class="refsect2"> -<a name="id-1.2.37.6.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.37.7.5.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -180,7 +185,10 @@ alike. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-capssetter.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-capssetter.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-capssetter.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstCapsSetter-struct"></a><h3>struct GstCapsSetter</h3> <pre class="programlisting">struct GstCapsSetter;</pre> @@ -191,28 +199,31 @@ alike. <div class="refsect1"> <a name="gst-plugins-good-plugins-capssetter.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstCapsSetter--caps"></a><h3>The <code class="literal">"caps"</code> property</h3> -<pre class="programlisting"> "caps" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write</pre> +<a name="GstCapsSetter--caps"></a><h3>The <code class="literal">“capsâ€</code> property</h3> +<pre class="programlisting"> “caps†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre> <p>Merge these caps (thereby overwriting) in the stream.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstCapsSetter--join"></a><h3>The <code class="literal">"join"</code> property</h3> -<pre class="programlisting"> "join" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstCapsSetter--join"></a><h3>The <code class="literal">“joinâ€</code> property</h3> +<pre class="programlisting"> “join†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Match incoming caps' mime-type to mime-type of provided caps.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstCapsSetter--replace"></a><h3>The <code class="literal">"replace"</code> property</h3> -<pre class="programlisting"> "replace" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstCapsSetter--replace"></a><h3>The <code class="literal">“replaceâ€</code> property</h3> +<pre class="programlisting"> “replace†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Drop fields of incoming caps.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 05ab8fbd4..7d9b11e86 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-cutter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-cutter.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>cutter</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: cutter</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-capssetter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-dcaparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-cutter.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-cutter.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-cutter.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-cutter.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cutter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cutter.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-cutter.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-capssetter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-dcaparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-cutter"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,41 +31,73 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-cutter.top_of_page"></a>cutter</span></h2> <p>cutter — Audio Cutter to split audio into non-silent bits</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-cutter.synopsis"></a><h2>Synopsis</h2> -<a name="GstCutter"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter-struct" title="struct GstCutter">GstCutter</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cutter.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstCutter -</pre> +<a name="gst-plugins-good-plugins-cutter.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--leaky" title="The “leaky†property">leaky</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length" title="The “pre-length†property">pre-length</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--run-length" title="The “run-length†property">run-length</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--threshold" title="The “threshold†property">threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB" title="The “threshold-dB†property">threshold-dB</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstCutter"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-cutter.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter-struct" title="struct GstCutter">GstCutter</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cutter.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--leaky" title='The "leaky" property'>leaky</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length" title='The "pre-length" property'>pre-length</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--run-length" title='The "run-length" property'>run-length</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--threshold" title='The "threshold" property'>threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB" title='The "threshold-dB" property'>threshold-dB</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write +<a name="gst-plugins-good-plugins-cutter.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstCutter </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-cutter.description"></a><h2>Description</h2> -<p> -Analyses the audio signal for periods of silence. The start and end of -silence is signalled by bus messages named +<p>Analyses the audio signal for periods of silence. The start and end of +silence is signalled by bus messages named</p> <code class="classname">"cutter"</code>. -The message's structure contains two fields: -</p> +<p>The message's structure contains two fields:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> @@ -84,12 +110,8 @@ The message's structure contains two fields: <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for begin of silence and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> for end of silence. </p></li> </ul></div> -<p> -</p> -<p> -</p> <div class="refsect2"> -<a name="id-1.2.38.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.38.7.6"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -102,12 +124,10 @@ The message's structure contains two fields: </div> Show cut messages. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.38.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.38.7.7.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -133,7 +153,7 @@ The message's structure contains two fields: </div> <hr> <div class="refsect2"> -<a name="id-1.2.38.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.38.7.7.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -154,7 +174,7 @@ The message's structure contains two fields: </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>audio/x-raw, format=(string){ S8LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</td> +<td>audio/x-raw, format=(string){ S8, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</td> </tr> </tbody> </table></div> @@ -178,7 +198,7 @@ The message's structure contains two fields: </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>audio/x-raw, format=(string){ S8LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</td> +<td>audio/x-raw, format=(string){ S8, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</td> </tr> </tbody> </table></div> @@ -188,7 +208,10 @@ The message's structure contains two fields: </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-cutter.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-cutter.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-cutter.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstCutter-struct"></a><h3>struct GstCutter</h3> <pre class="programlisting">struct GstCutter;</pre> @@ -199,43 +222,48 @@ The message's structure contains two fields: <div class="refsect1"> <a name="gst-plugins-good-plugins-cutter.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstCutter--leaky"></a><h3>The <code class="literal">"leaky"</code> property</h3> -<pre class="programlisting"> "leaky" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstCutter--leaky"></a><h3>The <code class="literal">“leakyâ€</code> property</h3> +<pre class="programlisting"> “leaky†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>do we leak buffers when below threshold ?.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstCutter--pre-length"></a><h3>The <code class="literal">"pre-length"</code> property</h3> -<pre class="programlisting"> "pre-length" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstCutter--pre-length"></a><h3>The <code class="literal">“pre-lengthâ€</code> property</h3> +<pre class="programlisting"> “pre-length†<span class="type">guint64</span></pre> <p>Length of pre-recording buffer (in nanoseconds).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstCutter--run-length"></a><h3>The <code class="literal">"run-length"</code> property</h3> -<pre class="programlisting"> "run-length" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstCutter--run-length"></a><h3>The <code class="literal">“run-lengthâ€</code> property</h3> +<pre class="programlisting"> “run-length†<span class="type">guint64</span></pre> <p>Length of drop below threshold before cut_stop (in nanoseconds).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstCutter--threshold"></a><h3>The <code class="literal">"threshold"</code> property</h3> -<pre class="programlisting"> "threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstCutter--threshold"></a><h3>The <code class="literal">“thresholdâ€</code> property</h3> +<pre class="programlisting"> “threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Volume threshold before trigger.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstCutter--threshold-dB"></a><h3>The <code class="literal">"threshold-dB"</code> property</h3> -<pre class="programlisting"> "threshold-dB" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstCutter--threshold-dB"></a><h3>The <code class="literal">“threshold-dBâ€</code> property</h3> +<pre class="programlisting"> “threshold-dB†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Volume threshold before trigger (in dB).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 b7bfd2a75..215bb4420 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dcaparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dcaparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-cutter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-deinterlace.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-dcaparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-dcaparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-dcaparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dcaparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dcaparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-cutter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-deinterlace.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-dcaparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,33 +30,36 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dcaparse.top_of_page"></a>dcaparse</span></h2> <p>dcaparse — DCA (DTS Coherent Acoustics) parser</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-dcaparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstDcaParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-dcaparse.html#GstDcaParse-struct" title="struct GstDcaParse">GstDcaParse</a>; -</pre> +<a name="GstDcaParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-dcaparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-dcaparse.html#GstDcaParse-struct" title="struct GstDcaParse">GstDcaParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dcaparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstDcaParse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstDcaParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dcaparse.description"></a><h2>Description</h2> -<p> -This is a DCA (DTS Coherent Acoustics) parser. -</p> -<p> -</p> +<p>This is a DCA (DTS Coherent Acoustics) parser.</p> <div class="refsect2"> -<a name="id-1.2.39.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.39.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -74,12 +72,10 @@ This is a DCA (DTS Coherent Acoustics) parser. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.39.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.39.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -105,7 +101,7 @@ This is a DCA (DTS Coherent Acoustics) parser. </div> <hr> <div class="refsect2"> -<a name="id-1.2.39.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.39.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -164,22 +160,23 @@ This is a DCA (DTS Coherent Acoustics) parser. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dcaparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-dcaparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dcaparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDcaParse-struct"></a><h3>struct GstDcaParse</h3> <pre class="programlisting">struct GstDcaParse;</pre> -<p> -The opaque GstDcaParse object -</p> +<p>The opaque GstDcaParse object</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dcaparse.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span>, <a class="link" href="gst-plugins-good-plugins-ac3parse.html#GstAc3Parse"><span class="type">GstAc3Parse</span></a> +<p><a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span>, <a class="link" href="gst-plugins-good-plugins-ac3parse.html#GstAc3Parse"><span class="type">GstAc3Parse</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 26c029df5..a236b1b64 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html +++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>deinterlace</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: deinterlace</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-dcaparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-deinterleave.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-deinterlace.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-deinterlace.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-deinterlace.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-deinterlace.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-deinterlace.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-deinterlace.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-deinterlace.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-deinterlace.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-deinterlace.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-dcaparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-deinterleave.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-deinterlace"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,21 +32,75 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-deinterlace.top_of_page"></a>deinterlace</span></h2> <p>deinterlace — Deinterlace Methods ported from DScaler/TvTime</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-deinterlace.synopsis"></a><h2>Synopsis</h2> -<a name="GstDeinterlace"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct" title="struct GstDeinterlace">GstDeinterlace</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-deinterlace.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstDeinterlaceFields</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields" title="The “fields†property">fields</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstDeinterlaceMethods</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method" title="The “method†property">method</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstDeinterlaceModes</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstDeinterlaceFieldLayout</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--tff" title="The “tff†property">tff</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--drop-orphans" title="The “drop-orphans†property">drop-orphans</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure" title="The “ignore-obscure†property">ignore-obscure</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstDeinterlaceLocking</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking" title="The “locking†property">locking</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstDeinterlace"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-deinterlace.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct" title="struct GstDeinterlace">GstDeinterlace</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-deinterlace.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstDeinterlace +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstDeinterlace </pre> </div> <div class="refsect1"> @@ -63,27 +110,11 @@ GstDeinterlace implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-deinterlace.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields" title='The "fields" property'>fields</a>" <span class="type">GstDeinterlaceFields</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method" title='The "method" property'>method</a>" <span class="type">GstDeinterlaceMethods</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--mode" title='The "mode" property'>mode</a>" <span class="type">GstDeinterlaceModes</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--tff" title='The "tff" property'>tff</a>" <span class="type">GstDeinterlaceFieldLayout</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--drop-orphans" title='The "drop-orphans" property'>drop-orphans</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure" title='The "ignore-obscure" property'>ignore-obscure</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking" title='The "locking" property'>locking</a>" <span class="type">GstDeinterlaceLocking</span> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-deinterlace.description"></a><h2>Description</h2> -<p> -deinterlace deinterlaces interlaced video frames to progressive video frames. -For this different algorithms can be selected which will be described later. -</p> -<p> -</p> +<p>deinterlace deinterlaces interlaced video frames to progressive video frames. +For this different algorithms can be selected which will be described later.</p> <div class="refsect2"> -<a name="id-1.2.40.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.40.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -96,12 +127,10 @@ For this different algorithms can be selected which will be described later. </div> This pipeline deinterlaces a video file with the default deinterlacing options. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.40.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.40.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -127,7 +156,7 @@ For this different algorithms can be selected which will be described later. </div> <hr> <div class="refsect2"> -<a name="id-1.2.40.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.40.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -150,6 +179,10 @@ For this different algorithms can be selected which will be described later. <td><p><span class="term">details</span></p></td> <td>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +</tr> </tbody> </table></div> <div class="variablelist"><table border="0" class="variablelist"> @@ -174,6 +207,10 @@ For this different algorithms can be selected which will be described later. <td><p><span class="term">details</span></p></td> <td>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> +</tr> </tbody> </table></div> </div> @@ -182,7 +219,10 @@ For this different algorithms can be selected which will be described later. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-deinterlace.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-deinterlace.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-deinterlace.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDeinterlace-struct"></a><h3>struct GstDeinterlace</h3> <pre class="programlisting">struct GstDeinterlace;</pre> @@ -193,29 +233,22 @@ For this different algorithms can be selected which will be described later. <div class="refsect1"> <a name="gst-plugins-good-plugins-deinterlace.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstDeinterlace--fields"></a><h3>The <code class="literal">"fields"</code> property</h3> -<pre class="programlisting"> "fields" <span class="type">GstDeinterlaceFields</span> : Read / Write</pre> -<p> -This selects which fields should be output. If "all" is selected -the output framerate will be double. -</p> +<a name="GstDeinterlace--fields"></a><h3>The <code class="literal">“fieldsâ€</code> property</h3> +<pre class="programlisting"> “fields†<span class="type">GstDeinterlaceFields</span></pre> +<p>This selects which fields should be output. If "all" is selected +the output framerate will be double.</p> +<p>Flags: Read / Write</p> <p>Default value: All fields</p> </div> <hr> <div class="refsect2"> -<a name="GstDeinterlace--method"></a><h3>The <code class="literal">"method"</code> property</h3> -<pre class="programlisting"> "method" <span class="type">GstDeinterlaceMethods</span> : Read / Write</pre> -<p> -Selects the different deinterlacing algorithms that can be used. -These provide different quality and CPU usage. -</p> -<p> -Some methods provide parameters which can be set by getting +<a name="GstDeinterlace--method"></a><h3>The <code class="literal">“methodâ€</code> property</h3> +<pre class="programlisting"> “method†<span class="type">GstDeinterlaceMethods</span></pre> +<p>Selects the different deinterlacing algorithms that can be used. +These provide different quality and CPU usage.</p> +<p>Some methods provide parameters which can be set by getting the "method" child via the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html"><span class="type">GstChildProxy</span></a> interface and -setting the appropiate properties on it. -</p> -<p> -</p> +setting the appropiate properties on it.</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> tomsmocomp @@ -259,66 +292,59 @@ weavebff Progressive: Bottom Field First. Bad quality, do not use. </p></li> </ul></div> -<p> -</p> +<p>Flags: Read / Write</p> <p>Default value: Television: Full resolution</p> </div> <hr> <div class="refsect2"> -<a name="GstDeinterlace--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstDeinterlaceModes</span> : Read / Write</pre> -<p> -This selects whether the deinterlacing methods should +<a name="GstDeinterlace--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstDeinterlaceModes</span></pre> +<p>This selects whether the deinterlacing methods should always be applied or if they should only be applied -on content that has the "interlaced" flag on the caps. -</p> +on content that has the "interlaced" flag on the caps.</p> +<p>Flags: Read / Write</p> <p>Default value: Auto detection</p> </div> <hr> <div class="refsect2"> -<a name="GstDeinterlace--tff"></a><h3>The <code class="literal">"tff"</code> property</h3> -<pre class="programlisting"> "tff" <span class="type">GstDeinterlaceFieldLayout</span> : Read / Write</pre> +<a name="GstDeinterlace--tff"></a><h3>The <code class="literal">“tffâ€</code> property</h3> +<pre class="programlisting"> “tff†<span class="type">GstDeinterlaceFieldLayout</span></pre> <p>Deinterlace top field first.</p> +<p>Flags: Read / Write</p> <p>Default value: Auto detection</p> </div> <hr> <div class="refsect2"> -<a name="GstDeinterlace--drop-orphans"></a><h3>The <code class="literal">"drop-orphans"</code> property</h3> -<pre class="programlisting"> "drop-orphans" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -This selects whether to drop orphan fields at the beginning of telecine -patterns in active locking mode. -</p> +<a name="GstDeinterlace--drop-orphans"></a><h3>The <code class="literal">“drop-orphansâ€</code> property</h3> +<pre class="programlisting"> “drop-orphans†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>This selects whether to drop orphan fields at the beginning of telecine +patterns in active locking mode.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> -<p class="since">Since 0.10.31</p> </div> <hr> <div class="refsect2"> -<a name="GstDeinterlace--ignore-obscure"></a><h3>The <code class="literal">"ignore-obscure"</code> property</h3> -<pre class="programlisting"> "ignore-obscure" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -This selects whether to ignore obscure/rare telecine patterns. -NTSC 2:3 pulldown variants are the only really common patterns. -</p> +<a name="GstDeinterlace--ignore-obscure"></a><h3>The <code class="literal">“ignore-obscureâ€</code> property</h3> +<pre class="programlisting"> “ignore-obscure†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>This selects whether to ignore obscure/rare telecine patterns. +NTSC 2:3 pulldown variants are the only really common patterns.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> -<p class="since">Since 0.10.31</p> </div> <hr> <div class="refsect2"> -<a name="GstDeinterlace--locking"></a><h3>The <code class="literal">"locking"</code> property</h3> -<pre class="programlisting"> "locking" <span class="type">GstDeinterlaceLocking</span> : Read / Write</pre> -<p> -This selects which approach to pattern locking is used which affects +<a name="GstDeinterlace--locking"></a><h3>The <code class="literal">“lockingâ€</code> property</h3> +<pre class="programlisting"> “locking†<span class="type">GstDeinterlaceLocking</span></pre> +<p>This selects which approach to pattern locking is used which affects processing latency and accuracy of timestamp adjustment for telecine -streams. -</p> +streams.</p> +<p>Flags: Read / Write</p> <p>Default value: No pattern locking</p> -<p class="since">Since 0.10.31</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c9801a17f..bb39bc6cf 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>deinterleave</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: deinterleave</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-deinterlace.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-dicetv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-deinterleave.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-deinterleave.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-deinterleave.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-deinterleave.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-deinterleave.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-deinterleave.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-deinterleave.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-deinterlace.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-dicetv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-deinterleave"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,48 +31,56 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-deinterleave.top_of_page"></a>deinterleave</span></h2> <p>deinterleave — Splits one interleaved multichannel audio stream into many mono audio streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-deinterleave.synopsis"></a><h2>Synopsis</h2> -<a name="GstDeinterleave"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave-struct" title="struct GstDeinterleave">GstDeinterleave</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-deinterleave.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstDeinterleave -</pre> +<a name="gst-plugins-good-plugins-deinterleave.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions" title="The “keep-positions†property">keep-positions</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstDeinterleave"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-deinterleave.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave-struct" title="struct GstDeinterleave">GstDeinterleave</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-deinterleave.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions" title='The "keep-positions" property'>keep-positions</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-deinterleave.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstDeinterleave </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-deinterleave.description"></a><h2>Description</h2> -<p> -Splits one interleaved multichannel audio stream into many mono audio streams. -</p> -<p> -This element handles all raw audio formats and supports changing the input caps as long as +<p>Splits one interleaved multichannel audio stream into many mono audio streams.</p> +<p>This element handles all raw audio formats and supports changing the input caps as long as all downstream elements can handle the new caps and the number of channels and the channel positions stay the same. This restriction will be removed in later versions by adding or -removing some source pads as required. -</p> -<p> -In most cases a queue and an audioconvert element should be added after each source pad -before further processing of the audio data. -</p> -<p> -</p> +removing some source pads as required.</p> +<p>In most cases a queue and an audioconvert element should be added after each source pad +before further processing of the audio data.</p> <div class="refsect2"> -<a name="id-1.2.41.6.5.1"></a><h3>Example launch line</h3> +<a name="id-1.2.41.7.5"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -105,12 +107,10 @@ Ogg Vorbis files. then interleaves the channels again to a WAV file with the channel with the channels exchanged. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.41.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.41.7.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="id-1.2.41.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.41.7.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -191,7 +191,10 @@ channels exchanged. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-deinterleave.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-deinterleave.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-deinterleave.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDeinterleave-struct"></a><h3>struct GstDeinterleave</h3> <pre class="programlisting">struct GstDeinterleave;</pre> @@ -202,24 +205,23 @@ channels exchanged. <div class="refsect1"> <a name="gst-plugins-good-plugins-deinterleave.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstDeinterleave--keep-positions"></a><h3>The <code class="literal">"keep-positions"</code> property</h3> -<pre class="programlisting"> "keep-positions" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Keep positions: When enable the caps on the output buffers will +<a name="GstDeinterleave--keep-positions"></a><h3>The <code class="literal">“keep-positionsâ€</code> property</h3> +<pre class="programlisting"> “keep-positions†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Keep positions: When enable the caps on the output buffers will contain the original channel positions. This can be used to correctly interleave the output again later but can also lead to unwanted effects -if the output should be handled as Mono. -</p> +if the output should be handled as Mono.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-deinterleave.see-also"></a><h2>See Also</h2> -interleave +<p>interleave</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0057f5126..7a5665d43 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dicetv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dicetv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-deinterleave.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-directsoundsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-dicetv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-dicetv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-dicetv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-dicetv.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-dicetv.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dicetv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dicetv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dicetv.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dicetv.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-deinterleave.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-directsoundsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-dicetv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,51 +32,72 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dicetv.top_of_page"></a>dicetv</span></h2> <p>dicetv — 'Dices' the screen up into many small squares</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-dicetv.synopsis"></a><h2>Synopsis</h2> -<a name="GstDiceTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV-struct" title="struct GstDiceTV">GstDiceTV</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-dicetv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstDiceTV -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dicetv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits" title='The "square-bits" property'>square-bits</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits" title="The “square-bits†property">square-bits</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dicetv.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset" title='The "reset" signal'>reset</a>" : <code class="literal">Action</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset" title="The “reset†signal">reset</a></td> +<td class="signal_flags">Action</td> +</tr></tbody> +</table></div> +</div> +<a name="GstDiceTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-dicetv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV-struct" title="struct GstDiceTV">GstDiceTV</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dicetv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstDiceTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dicetv.description"></a><h2>Description</h2> -<p> -DiceTV 'dices' the screen up into many small squares, each defaulting +<p>DiceTV 'dices' the screen up into many small squares, each defaulting to a size of 16 pixels by 16 pixels.. Each square is rotated randomly in one of four directions: up (no change), down (180 degrees, or upside down), right (90 degrees clockwise), or left (90 degrees counterclockwise). The direction of each square normally remains -consistent between each frame. -</p> -<p> -</p> +consistent between each frame.</p> <div class="refsect2"> -<a name="id-1.2.42.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.42.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -96,12 +110,10 @@ consistent between each frame. </div> This pipeline shows the effect of dicetv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.42.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.42.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -127,7 +139,7 @@ consistent between each frame. </div> <hr> <div class="refsect2"> -<a name="id-1.2.42.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.42.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -182,7 +194,10 @@ consistent between each frame. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dicetv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-dicetv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dicetv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDiceTV-struct"></a><h3>struct GstDiceTV</h3> <pre class="programlisting">struct GstDiceTV;</pre> @@ -193,9 +208,10 @@ consistent between each frame. <div class="refsect1"> <a name="gst-plugins-good-plugins-dicetv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstDiceTV--square-bits"></a><h3>The <code class="literal">"square-bits"</code> property</h3> -<pre class="programlisting"> "square-bits" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstDiceTV--square-bits"></a><h3>The <code class="literal">“square-bitsâ€</code> property</h3> +<pre class="programlisting"> “square-bits†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The size of the Squares.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,5]</p> <p>Default value: 4</p> </div> @@ -203,32 +219,40 @@ consistent between each frame. <div class="refsect1"> <a name="gst-plugins-good-plugins-dicetv.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstDiceTV-reset"></a><h3>The <code class="literal">"reset"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV"><span class="type">GstDiceTV</span></a> *gstdicetv, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> +<a name="GstDiceTV-reset"></a><h3>The <code class="literal">“resetâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-dicetv.html#GstDiceTV"><span class="type">GstDiceTV</span></a> *gstdicetv, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.42.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstdicetv</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstdicetv</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 bf223f2a2..7cb00f33d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>directsoundsink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: directsoundsink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-dicetv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-dtmfsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-directsoundsink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-directsoundsink.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-directsoundsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-directsoundsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-dicetv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-dtmfsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-directsoundsink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,11 +30,24 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-directsoundsink.top_of_page"></a>directsoundsink</span></h2> <p>directsoundsink — DirectSound audio sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-directsoundsink.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink" title="struct GstDirectSoundSink">GstDirectSoundSink</a>; +<div class="refsect1"> +<a name="gst-plugins-good-plugins-directsoundsink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink" title="struct GstDirectSoundSink">GstDirectSoundSink</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-directsoundsink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> </pre> </div> <div class="refsect1"> @@ -45,7 +55,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.43.4.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.43.5.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -71,14 +81,17 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.43.4.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.43.5.2.2"></a><h3>Element Pads</h3> </div> </div> <p> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-directsoundsink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-directsoundsink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-directsoundsink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDirectSoundSink"></a><h3>struct GstDirectSoundSink</h3> <pre class="programlisting">struct GstDirectSoundSink { @@ -119,6 +132,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f6e68e976..72774950c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dtmfsrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dtmfsrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-directsoundsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-dv1394src.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-dtmfsrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-dtmfsrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-dtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-dtmfsrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dtmfsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dtmfsrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-directsoundsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-dv1394src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-dtmfsrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,42 +31,54 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dtmfsrc.top_of_page"></a>dtmfsrc</span></h2> <p>dtmfsrc — Generates DTMF tones</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-dtmfsrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstDTMFSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct" title="struct GstDTMFSrc">GstDTMFSrc</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dtmfsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----GstDTMFSrc -</pre> +<a name="gst-plugins-good-plugins-dtmfsrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval" title="The “interval†property">interval</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstDTMFSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct" title="struct GstDTMFSrc">GstDTMFSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dtmfsrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval" title='The "interval" property'>interval</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-dtmfsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> GstDTMFSrc </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dtmfsrc.description"></a><h2>Description</h2> -<p> -The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request +<p>The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request from application. The application communicates the beginning and end of a DTMF event using custom upstream gstreamer events. To report a DTMF event, an application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a structure of name "dtmf-event" with fields set according to the following -table: -</p> -<p> -</p> +table:</p> <div class="informaltable"><table border="1"> <colgroup> <col class="Name"> @@ -129,15 +135,9 @@ field is absent or 2. </tr> </tbody> </table></div> -<p> -</p> -<p> -For example, the following code informs the pipeline (and in turn, the +<p>For example, the following code informs the pipeline (and in turn, the DTMFSrc element inside the pipeline) about the start of a DTMF named -event '1' of volume -25 dBm0: -</p> -<p> -</p> +event '1' of volume -25 dBm0:</p> <pre class="programlisting"> structure = gst_structure_new ("dtmf-event", "type", G_TYPE_INT, 1, @@ -148,20 +148,16 @@ structure = gst_structure_new ("dtmf-event", event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure); gst_element_send_event (pipeline, event); </pre> -<p> -</p> -<p> -When a DTMF tone actually starts or stop, a "dtmf-event-processed" +<p>When a DTMF tone actually starts or stop, a "dtmf-event-processed" element <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> with the same fields as the "dtmf-event" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> that was used to request the event. Also, if any event has not been processed when the element goes from the PAUSED to the READY state, then a "dtmf-event-dropped" message is posted on the -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received. -</p> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.44.6.7.1"></a><h3>Element Information</h3> +<a name="id-1.2.44.7.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -187,7 +183,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the </div> <hr> <div class="refsect2"> -<a name="id-1.2.44.6.7.2"></a><h3>Element Pads</h3> +<a name="id-1.2.44.7.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -218,39 +214,45 @@ READY state, then a "dtmf-event-dropped" message is posted on the </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dtmfsrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-dtmfsrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dtmfsrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDTMFSrc-struct"></a><h3>struct GstDTMFSrc</h3> <pre class="programlisting">struct GstDTMFSrc;</pre> -<p> -The opaque <a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc"><span class="type">GstDTMFSrc</span></a> data structure. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<p>The opaque <a class="link" href="gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc"><span class="type">GstDTMFSrc</span></a> data structure.</p> +<div class="refsect3"> +<a name="id-1.2.44.9.2.5"></a><h4>Members</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="300px" class="struct_members_name"> +<col class="struct_members_description"> +<col width="200px" class="struct_members_annotations"> </colgroup> <tbody></tbody> </table></div> </div> </div> +</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dtmfsrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstDTMFSrc--interval"></a><h3>The <code class="literal">"interval"</code> property</h3> -<pre class="programlisting"> "interval" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstDTMFSrc--interval"></a><h3>The <code class="literal">“intervalâ€</code> property</h3> +<pre class="programlisting"> “interval†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Interval in ms between two tone packets.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [10,50]</p> <p>Default value: 50</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dtmfsrc.see-also"></a><h2>See Also</h2> -rtpdtmsrc, rtpdtmfmuxx +<p>rtpdtmsrc, rtpdtmfmuxx</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 4224c1a1e..6bd39edb7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html @@ -2,38 +2,30 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dv1394src</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dv1394src</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-dtmfsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-dvdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-dv1394src.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-dv1394src.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-dv1394src.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-dv1394src.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-dv1394src.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-dv1394src.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dv1394src.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dv1394src.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dv1394src.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dv1394src.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dv1394src.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-dtmfsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-dvdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-dv1394src"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -41,23 +33,98 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dv1394src.top_of_page"></a>dv1394src</span></h2> <p>dv1394src — Source for DV video data from firewire port</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-dv1394src.synopsis"></a><h2>Synopsis</h2> -<a name="GstDV1394Src"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-struct" title="struct GstDV1394Src">GstDV1394Src</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dv1394src.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel" title="The “channel†property">channel</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--consecutive" title="The “consecutive†property">consecutive</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--drop-incomplete" title="The “drop-incomplete†property">drop-incomplete</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--guid" title="The “guid†property">guid</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--port" title="The “port†property">port</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--skip" title="The “skip†property">skip</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--use-avc" title="The “use-avc†property">use-avc</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dv1394src.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped" title="The “frame-dropped†signal">frame-dropped</a></td> +<td class="signal_flags">Run Last</td> +</tr></tbody> +</table></div> +</div> +<a name="GstDV1394Src"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-dv1394src.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-struct" title="struct GstDV1394Src">GstDV1394Src</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dv1394src.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----GstDV1394Src +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> GstDV1394Src </pre> </div> <div class="refsect1"> @@ -67,30 +134,11 @@ GstDV1394Src implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dv1394src.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel" title='The "channel" property'>channel</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--consecutive" title='The "consecutive" property'>consecutive</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--drop-incomplete" title='The "drop-incomplete" property'>drop-incomplete</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--guid" title='The "guid" property'>guid</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--port" title='The "port" property'>port</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--skip" title='The "skip" property'>skip</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--use-avc" title='The "use-avc" property'>use-avc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-dv1394src.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped" title='The "frame-dropped" signal'>frame-dropped</a>" : <code class="literal">Run Last</code> -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-dv1394src.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.45.8.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.45.9.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -116,7 +164,7 @@ GstDV1394Src implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.45.8.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.45.9.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -147,7 +195,10 @@ GstDV1394Src implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dv1394src.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-dv1394src.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dv1394src.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDV1394Src-struct"></a><h3>struct GstDV1394Src</h3> <pre class="programlisting">struct GstDV1394Src;</pre> @@ -158,94 +209,110 @@ GstDV1394Src implements <div class="refsect1"> <a name="gst-plugins-good-plugins-dv1394src.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstDV1394Src--channel"></a><h3>The <code class="literal">"channel"</code> property</h3> -<pre class="programlisting"> "channel" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstDV1394Src--channel"></a><h3>The <code class="literal">“channelâ€</code> property</h3> +<pre class="programlisting"> “channel†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Channel number for listening.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,64]</p> <p>Default value: 63</p> </div> <hr> <div class="refsect2"> -<a name="GstDV1394Src--consecutive"></a><h3>The <code class="literal">"consecutive"</code> property</h3> -<pre class="programlisting"> "consecutive" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstDV1394Src--consecutive"></a><h3>The <code class="literal">“consecutiveâ€</code> property</h3> +<pre class="programlisting"> “consecutive†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>send n consecutive frames after skipping.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstDV1394Src--drop-incomplete"></a><h3>The <code class="literal">"drop-incomplete"</code> property</h3> -<pre class="programlisting"> "drop-incomplete" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstDV1394Src--drop-incomplete"></a><h3>The <code class="literal">“drop-incompleteâ€</code> property</h3> +<pre class="programlisting"> “drop-incomplete†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>drop incomplete frames.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstDV1394Src--guid"></a><h3>The <code class="literal">"guid"</code> property</h3> -<pre class="programlisting"> "guid" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstDV1394Src--guid"></a><h3>The <code class="literal">“guidâ€</code> property</h3> +<pre class="programlisting"> “guid†<span class="type">guint64</span></pre> <p>select one of multiple DV devices by its GUID. use a hexadecimal like 0xhhhhhhhhhhhhhhhh. (0 = no guid).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstDV1394Src--port"></a><h3>The <code class="literal">"port"</code> property</h3> -<pre class="programlisting"> "port" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstDV1394Src--port"></a><h3>The <code class="literal">“portâ€</code> property</h3> +<pre class="programlisting"> “port†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Port number (-1 automatic).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [G_MAXULONG,16]</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstDV1394Src--skip"></a><h3>The <code class="literal">"skip"</code> property</h3> -<pre class="programlisting"> "skip" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstDV1394Src--skip"></a><h3>The <code class="literal">“skipâ€</code> property</h3> +<pre class="programlisting"> “skip†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>skip n frames.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstDV1394Src--use-avc"></a><h3>The <code class="literal">"use-avc"</code> property</h3> -<pre class="programlisting"> "use-avc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstDV1394Src--use-avc"></a><h3>The <code class="literal">“use-avcâ€</code> property</h3> +<pre class="programlisting"> “use-avc†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use AV/C VTR control.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstDV1394Src--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstDV1394Src--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>user-friendly name of the device.</p> +<p>Flags: Read</p> <p>Default value: "Default"</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dv1394src.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstDV1394Src-frame-dropped"></a><h3>The <code class="literal">"frame-dropped"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src"><span class="type">GstDV1394Src</span></a> *gstdv1394src, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstDV1394Src-frame-dropped"></a><h3>The <code class="literal">“frame-droppedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-dv1394src.html#GstDV1394Src"><span class="type">GstDV1394Src</span></a> *gstdv1394src, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.45.13.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstdv1394src</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstdv1394src</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 75237d4be..b859108f4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dvdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dvdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-dv1394src.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-dvdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-dvdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-dvdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-dvdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-dvdec.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dvdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dvdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dvdec.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-dv1394src.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-dvdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-dvdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,30 +31,60 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dvdec.top_of_page"></a>dvdec</span></h2> <p>dvdec — Uses libdv to decode DV video (smpte314) (libdv.sourceforge.net)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-dvdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstDVDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec-struct" title="struct GstDVDec">GstDVDec</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dvdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstDVDec -</pre> +<a name="gst-plugins-good-plugins-dvdec.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma" title="The “clamp-chroma†property">clamp-chroma</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-luma" title="The “clamp-luma†property">clamp-luma</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor" title="The “drop-factor†property">drop-factor</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstDVDecQualityEnum</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality" title="The “quality†property">quality</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstDVDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-dvdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec-struct" title="struct GstDVDec">GstDVDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dvdec.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma" title='The "clamp-chroma" property'>clamp-chroma</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-luma" title='The "clamp-luma" property'>clamp-luma</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor" title='The "drop-factor" property'>drop-factor</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality" title='The "quality" property'>quality</a>" <span class="type">GstDVDecQualityEnum</span> : Read / Write +<a name="gst-plugins-good-plugins-dvdec.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstDVDec </pre> </div> <div class="refsect1"> @@ -68,7 +92,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.46.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.46.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -94,7 +118,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.46.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.46.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -149,7 +173,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dvdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-dvdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dvdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDVDec-struct"></a><h3>struct GstDVDec</h3> <pre class="programlisting">struct GstDVDec;</pre> @@ -160,37 +187,41 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-dvdec.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstDVDec--clamp-chroma"></a><h3>The <code class="literal">"clamp-chroma"</code> property</h3> -<pre class="programlisting"> "clamp-chroma" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstDVDec--clamp-chroma"></a><h3>The <code class="literal">“clamp-chromaâ€</code> property</h3> +<pre class="programlisting"> “clamp-chroma†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Clamp chroma.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstDVDec--clamp-luma"></a><h3>The <code class="literal">"clamp-luma"</code> property</h3> -<pre class="programlisting"> "clamp-luma" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstDVDec--clamp-luma"></a><h3>The <code class="literal">“clamp-lumaâ€</code> property</h3> +<pre class="programlisting"> “clamp-luma†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Clamp luma.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstDVDec--drop-factor"></a><h3>The <code class="literal">"drop-factor"</code> property</h3> -<pre class="programlisting"> "drop-factor" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstDVDec--drop-factor"></a><h3>The <code class="literal">“drop-factorâ€</code> property</h3> +<pre class="programlisting"> “drop-factor†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Only decode Nth frame.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstDVDec--quality"></a><h3>The <code class="literal">"quality"</code> property</h3> -<pre class="programlisting"> "quality" <span class="type">GstDVDecQualityEnum</span> : Read / Write</pre> +<a name="GstDVDec--quality"></a><h3>The <code class="literal">“qualityâ€</code> property</h3> +<pre class="programlisting"> “quality†<span class="type">GstDVDecQualityEnum</span></pre> <p>Decoding quality.</p> +<p>Flags: Read / Write</p> <p>Default value: Highest quality colour decoding</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 ebbf8311e..538888e1a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dvdemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dvdemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-dvdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-edgetv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-dvdemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-dvdemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-dvdemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dvdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-dvdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-dvdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-edgetv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-dvdemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,21 +30,28 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-dvdemux.top_of_page"></a>dvdemux</span></h2> <p>dvdemux — Uses libdv to separate DV audio from DV video (libdv.sourceforge.net)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-dvdemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstDVDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-dvdemux.html#GstDVDemux-struct" title="struct GstDVDemux">GstDVDemux</a>; -</pre> +<a name="GstDVDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-dvdemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-dvdemux.html#GstDVDemux-struct" title="struct GstDVDemux">GstDVDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-dvdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstDVDemux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstDVDemux </pre> </div> <div class="refsect1"> @@ -57,7 +59,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.47.5.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.47.6.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -83,7 +85,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.47.5.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.47.6.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -162,7 +164,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-dvdemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-dvdemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-dvdemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstDVDemux-struct"></a><h3>struct GstDVDemux</h3> <pre class="programlisting">struct GstDVDemux;</pre> @@ -173,6 +178,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 7e8b71161..3f9b00cd4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>edgetv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: edgetv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-dvdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-equalizer-10bands.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-edgetv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-edgetv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-edgetv.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-edgetv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-edgetv.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-dvdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-equalizer-10bands.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-edgetv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,35 +30,38 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-edgetv.top_of_page"></a>edgetv</span></h2> <p>edgetv — Apply edge detect on video</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-edgetv.synopsis"></a><h2>Synopsis</h2> -<a name="GstEdgeTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-edgetv.html#GstEdgeTV-struct" title="struct GstEdgeTV">GstEdgeTV</a>; -</pre> +<a name="GstEdgeTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-edgetv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-edgetv.html#GstEdgeTV-struct" title="struct GstEdgeTV">GstEdgeTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-edgetv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstEdgeTV +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstEdgeTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-edgetv.description"></a><h2>Description</h2> -<p> -EdgeTV detects edges and display it in good old low resolution -computer way. -</p> -<p> -</p> +<p>EdgeTV detects edges and display it in good old low resolution +computer way.</p> <div class="refsect2"> -<a name="id-1.2.48.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.48.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -76,12 +74,10 @@ computer way. </div> This pipeline shows the effect of edgetv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.48.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.48.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -107,7 +103,7 @@ computer way. </div> <hr> <div class="refsect2"> -<a name="id-1.2.48.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.48.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -162,7 +158,10 @@ computer way. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-edgetv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-edgetv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-edgetv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstEdgeTV-struct"></a><h3>struct GstEdgeTV</h3> <pre class="programlisting">struct GstEdgeTV;</pre> @@ -173,6 +172,6 @@ computer way. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e72bb128b..1ca5a66f8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>equalizer-10bands</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: equalizer-10bands</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-edgetv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-equalizer-3bands.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-equalizer-10bands.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-10bands.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-10bands.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-10bands.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-10bands.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-10bands.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-10bands.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-10bands.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-10bands.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-edgetv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-equalizer-3bands.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-equalizer-10bands"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,24 +32,93 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-equalizer-10bands.top_of_page"></a>equalizer-10bands</span></h2> <p>equalizer-10bands — Direct Form 10 band IIR equalizer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-equalizer-10bands.synopsis"></a><h2>Synopsis</h2> -<a name="GstIirEqualizer10Bands"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct" title="struct GstIirEqualizer10Bands">GstIirEqualizer10Bands</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-10bands.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0" title="The “band0†property">band0</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band1" title="The “band1†property">band1</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band2" title="The “band2†property">band2</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band3" title="The “band3†property">band3</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band4" title="The “band4†property">band4</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band5" title="The “band5†property">band5</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band6" title="The “band6†property">band6</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band7" title="The “band7†property">band7</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8" title="The “band8†property">band8</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band9" title="The “band9†property">band9</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstIirEqualizer10Bands"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-10bands.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct" title="struct GstIirEqualizer10Bands">GstIirEqualizer10Bands</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-10bands.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----<a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a> - +----GstIirEqualizer10Bands +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> <a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a> + <span class="lineart">╰──</span> GstIirEqualizer10Bands </pre> </div> <div class="refsect1"> @@ -66,30 +128,11 @@ GstIirEqualizer10Bands implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-equalizer-10bands.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0" title='The "band0" property'>band0</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band1" title='The "band1" property'>band1</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band2" title='The "band2" property'>band2</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band3" title='The "band3" property'>band3</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band4" title='The "band4" property'>band4</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band5" title='The "band5" property'>band5</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band6" title='The "band6" property'>band6</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band7" title='The "band7" property'>band7</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8" title='The "band8" property'>band8</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band9" title='The "band9" property'>band9</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-10bands.description"></a><h2>Description</h2> -<p> -The 10 band equalizer element allows to change the gain of 10 equally distributed -frequency bands between 30 Hz and 15 kHz. -</p> -<p> -</p> +<p>The 10 band equalizer element allows to change the gain of 10 equally distributed +frequency bands between 30 Hz and 15 kHz.</p> <div class="refsect2"> -<a name="id-1.2.49.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.49.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -102,12 +145,10 @@ frequency bands between 30 Hz and 15 kHz. </div> This raises the volume of the 3rd band which is at 119 Hz by 3 db. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.49.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.49.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -133,7 +174,7 @@ frequency bands between 30 Hz and 15 kHz. </div> <hr> <div class="refsect2"> -<a name="id-1.2.49.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.49.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -188,7 +229,10 @@ frequency bands between 30 Hz and 15 kHz. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-equalizer-10bands.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-equalizer-10bands.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-10bands.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstIirEqualizer10Bands-struct"></a><h3>struct GstIirEqualizer10Bands</h3> <pre class="programlisting">struct GstIirEqualizer10Bands;</pre> @@ -199,81 +243,91 @@ frequency bands between 30 Hz and 15 kHz. <div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-10bands.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band0"></a><h3>The <code class="literal">"band0"</code> property</h3> -<pre class="programlisting"> "band0" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band0"></a><h3>The <code class="literal">“band0â€</code> property</h3> +<pre class="programlisting"> “band0†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 29 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band1"></a><h3>The <code class="literal">"band1"</code> property</h3> -<pre class="programlisting"> "band1" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band1"></a><h3>The <code class="literal">“band1â€</code> property</h3> +<pre class="programlisting"> “band1†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 59 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band2"></a><h3>The <code class="literal">"band2"</code> property</h3> -<pre class="programlisting"> "band2" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band2"></a><h3>The <code class="literal">“band2â€</code> property</h3> +<pre class="programlisting"> “band2†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 119 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band3"></a><h3>The <code class="literal">"band3"</code> property</h3> -<pre class="programlisting"> "band3" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band3"></a><h3>The <code class="literal">“band3â€</code> property</h3> +<pre class="programlisting"> “band3†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 237 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band4"></a><h3>The <code class="literal">"band4"</code> property</h3> -<pre class="programlisting"> "band4" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band4"></a><h3>The <code class="literal">“band4â€</code> property</h3> +<pre class="programlisting"> “band4†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 474 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band5"></a><h3>The <code class="literal">"band5"</code> property</h3> -<pre class="programlisting"> "band5" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band5"></a><h3>The <code class="literal">“band5â€</code> property</h3> +<pre class="programlisting"> “band5†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 947 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band6"></a><h3>The <code class="literal">"band6"</code> property</h3> -<pre class="programlisting"> "band6" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band6"></a><h3>The <code class="literal">“band6â€</code> property</h3> +<pre class="programlisting"> “band6†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 1889 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band7"></a><h3>The <code class="literal">"band7"</code> property</h3> -<pre class="programlisting"> "band7" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band7"></a><h3>The <code class="literal">“band7â€</code> property</h3> +<pre class="programlisting"> “band7†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 3770 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band8"></a><h3>The <code class="literal">"band8"</code> property</h3> -<pre class="programlisting"> "band8" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band8"></a><h3>The <code class="literal">“band8â€</code> property</h3> +<pre class="programlisting"> “band8†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 7523 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer10Bands--band9"></a><h3>The <code class="literal">"band9"</code> property</h3> -<pre class="programlisting"> "band9" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer10Bands--band9"></a><h3>The <code class="literal">“band9â€</code> property</h3> +<pre class="programlisting"> “band9†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 15011 Hz, ranging from -24 dB to +12 dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> @@ -281,6 +335,6 @@ frequency bands between 30 Hz and 15 kHz. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0d82b1075..5e5b302b9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>equalizer-3bands</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: equalizer-3bands</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-equalizer-10bands.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-equalizer-nbands.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-equalizer-3bands.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-3bands.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-3bands.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-3bands.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-3bands.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-3bands.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-3bands.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-3bands.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-3bands.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-equalizer-10bands.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-equalizer-nbands.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-equalizer-3bands"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,24 +32,58 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-equalizer-3bands.top_of_page"></a>equalizer-3bands</span></h2> <p>equalizer-3bands — Direct Form 3 band IIR equalizer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-equalizer-3bands.synopsis"></a><h2>Synopsis</h2> -<a name="GstIirEqualizer3Bands"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands-struct" title="struct GstIirEqualizer3Bands">GstIirEqualizer3Bands</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-3bands.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0" title="The “band0†property">band0</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1" title="The “band1†property">band1</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band2" title="The “band2†property">band2</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstIirEqualizer3Bands"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-3bands.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands-struct" title="struct GstIirEqualizer3Bands">GstIirEqualizer3Bands</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-3bands.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----<a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a> - +----GstIirEqualizer3Bands +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> <a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a> + <span class="lineart">╰──</span> GstIirEqualizer3Bands </pre> </div> <div class="refsect1"> @@ -66,23 +93,11 @@ GstIirEqualizer3Bands implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-equalizer-3bands.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0" title='The "band0" property'>band0</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1" title='The "band1" property'>band1</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band2" title='The "band2" property'>band2</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-3bands.description"></a><h2>Description</h2> -<p> -The 3-band equalizer element allows to change the gain of a low frequency, -medium frequency and high frequency band. -</p> -<p> -</p> +<p>The 3-band equalizer element allows to change the gain of a low frequency, +medium frequency and high frequency band.</p> <div class="refsect2"> -<a name="id-1.2.50.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.50.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -95,12 +110,10 @@ medium frequency and high frequency band. </div> This raises the volume of the 2nd band, which is at 1110 Hz, by 6 db. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.50.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.50.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -126,7 +139,7 @@ medium frequency and high frequency band. </div> <hr> <div class="refsect2"> -<a name="id-1.2.50.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.50.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -181,7 +194,10 @@ medium frequency and high frequency band. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-equalizer-3bands.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-equalizer-3bands.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-3bands.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstIirEqualizer3Bands-struct"></a><h3>struct GstIirEqualizer3Bands</h3> <pre class="programlisting">struct GstIirEqualizer3Bands;</pre> @@ -192,25 +208,28 @@ medium frequency and high frequency band. <div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-3bands.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstIirEqualizer3Bands--band0"></a><h3>The <code class="literal">"band0"</code> property</h3> -<pre class="programlisting"> "band0" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer3Bands--band0"></a><h3>The <code class="literal">“band0â€</code> property</h3> +<pre class="programlisting"> “band0†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 100 Hz, ranging from -24.0 to +12.0.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer3Bands--band1"></a><h3>The <code class="literal">"band1"</code> property</h3> -<pre class="programlisting"> "band1" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer3Bands--band1"></a><h3>The <code class="literal">“band1â€</code> property</h3> +<pre class="programlisting"> “band1†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 1100 Hz, ranging from -24.0 to +12.0.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstIirEqualizer3Bands--band2"></a><h3>The <code class="literal">"band2"</code> property</h3> -<pre class="programlisting"> "band2" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstIirEqualizer3Bands--band2"></a><h3>The <code class="literal">“band2â€</code> property</h3> +<pre class="programlisting"> “band2†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gain for the frequency band 11 kHz, ranging from -24.0 to +12.0.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-24,12]</p> <p>Default value: 0</p> </div> @@ -218,6 +237,6 @@ medium frequency and high frequency band. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0614b873c..4d1214798 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html +++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>equalizer-nbands</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: equalizer-nbands</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-equalizer-3bands.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-flacdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-equalizer-nbands.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-nbands.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-nbands.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-nbands.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-equalizer-nbands.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-nbands.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-nbands.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-nbands.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-equalizer-nbands.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-equalizer-3bands.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-flacdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-equalizer-nbands"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,24 +32,46 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-equalizer-nbands.top_of_page"></a>equalizer-nbands</span></h2> <p>equalizer-nbands — Direct Form IIR equalizer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-equalizer-nbands.synopsis"></a><h2>Synopsis</h2> -<a name="GstIirEqualizerNBands"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands-struct" title="struct GstIirEqualizerNBands">GstIirEqualizerNBands</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-nbands.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands" title="The “num-bands†property">num-bands</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr></tbody> +</table></div> +</div> +<a name="GstIirEqualizerNBands"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-nbands.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands-struct" title="struct GstIirEqualizerNBands">GstIirEqualizerNBands</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-nbands.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----<a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a> - +----GstIirEqualizerNBands +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> <a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a> + <span class="lineart">╰──</span> GstIirEqualizerNBands </pre> </div> <div class="refsect1"> @@ -66,22 +81,12 @@ GstIirEqualizerNBands implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-equalizer-nbands.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands" title='The "num-bands" property'>num-bands</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-nbands.description"></a><h2>Description</h2> -<p> -The n-band equalizer element is a fully parametric equalizer. It allows to +<p>The n-band equalizer element is a fully parametric equalizer. It allows to select between 1 and 64 bands and has properties on each band to change -the center frequency, band width and gain. -</p> -<p> -</p> +the center frequency, band width and gain.</p> <div class="refsect2"> -<a name="id-1.2.51.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.51.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -94,11 +99,9 @@ the center frequency, band width and gain. </div> This make the equalizer use 15 bands and raises the volume of the 5th band by 6 db. </div> -<p> -</p> <hr> <div class="refsect2"> -<a name="id-1.2.51.7.3.2"></a><h3>Example code</h3> +<a name="id-1.2.51.8.4"></a><h3>Example code</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -185,12 +188,10 @@ the center frequency, band width and gain. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.51.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.51.8.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -216,7 +217,7 @@ the center frequency, band width and gain. </div> <hr> <div class="refsect2"> -<a name="id-1.2.51.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.51.8.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -271,7 +272,10 @@ the center frequency, band width and gain. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-equalizer-nbands.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-equalizer-nbands.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-equalizer-nbands.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstIirEqualizerNBands-struct"></a><h3>struct GstIirEqualizerNBands</h3> <pre class="programlisting">struct GstIirEqualizerNBands;</pre> @@ -282,9 +286,10 @@ the center frequency, band width and gain. <div class="refsect1"> <a name="gst-plugins-good-plugins-equalizer-nbands.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstIirEqualizerNBands--num-bands"></a><h3>The <code class="literal">"num-bands"</code> property</h3> -<pre class="programlisting"> "num-bands" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstIirEqualizerNBands--num-bands"></a><h3>The <code class="literal">“num-bandsâ€</code> property</h3> +<pre class="programlisting"> “num-bands†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>number of different bands to use.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: [1,64]</p> <p>Default value: 10</p> </div> @@ -292,6 +297,6 @@ the center frequency, band width and gain. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 78b729cec..f72486288 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flacdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flacdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-equalizer-nbands.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-flacenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-flacdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-flacdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-flacdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-equalizer-nbands.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-flacenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-flacdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,22 +30,29 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-flacdec.top_of_page"></a>flacdec</span></h2> <p>flacdec — Decodes FLAC lossless audio streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-flacdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstFlacDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-flacdec.html#GstFlacDec-struct" title="struct GstFlacDec">GstFlacDec</a>; -</pre> +<a name="GstFlacDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-flacdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-flacdec.html#GstFlacDec-struct" title="struct GstFlacDec">GstFlacDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flacdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> - +----GstFlacDec +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> + <span class="lineart">╰──</span> GstFlacDec </pre> </div> <div class="refsect1"> @@ -58,7 +60,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.52.5.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.52.6.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -84,7 +86,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.52.5.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.52.6.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -129,7 +131,7 @@ </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>audio/x-raw, format=(string){ S8LE, S16LE, S24_32LE, S32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</td> +<td>audio/x-raw, format=(string){ S8, S16LE, S24_32LE, S32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</td> </tr> </tbody> </table></div> @@ -139,7 +141,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flacdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-flacdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flacdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstFlacDec-struct"></a><h3>struct GstFlacDec</h3> <pre class="programlisting">struct GstFlacDec;</pre> @@ -150,6 +155,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 6fb08acee..0e9de658a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flacenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flacenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-flacdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-flacparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-flacenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-flacenc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-flacenc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-flacenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-flacenc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacenc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-flacdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-flacparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-flacenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,116 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-flacenc.top_of_page"></a>flacenc</span></h2> <p>flacenc — Encodes audio with the FLAC lossless audio encoder</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-flacenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstFlacEnc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc-struct" title="struct GstFlacEnc">GstFlacEnc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flacenc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize" title="The “blocksize†property">blocksize</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--escape-coding" title="The “escape-coding†property">escape-coding</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--exhaustive-model-search" title="The “exhaustive-model-search†property">exhaustive-model-search</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--loose-mid-side-stereo" title="The “loose-mid-side-stereo†property">loose-mid-side-stereo</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-lpc-order" title="The “max-lpc-order†property">max-lpc-order</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-residual-partition-order" title="The “max-residual-partition-order†property">max-residual-partition-order</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--mid-side-stereo" title="The “mid-side-stereo†property">mid-side-stereo</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--min-residual-partition-order" title="The “min-residual-partition-order†property">min-residual-partition-order</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-prec-search" title="The “qlp-coeff-prec-search†property">qlp-coeff-prec-search</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-precision" title="The “qlp-coeff-precision†property">qlp-coeff-precision</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstFlacEncQuality</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--quality" title="The “quality†property">quality</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--rice-parameter-search-dist" title="The “rice-parameter-search-dist†property">rice-parameter-search-dist</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--streamable-subset" title="The “streamable-subset†property">streamable-subset</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding" title="The “padding†property">padding</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints" title="The “seekpoints†property">seekpoints</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstFlacEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-flacenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc-struct" title="struct GstFlacEnc">GstFlacEnc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flacenc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a> - +----GstFlacEnc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a> + <span class="lineart">╰──</span> GstFlacEnc </pre> </div> <div class="refsect1"> @@ -64,31 +151,11 @@ GstFlacEnc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flacenc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize" title='The "blocksize" property'>blocksize</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--escape-coding" title='The "escape-coding" property'>escape-coding</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--exhaustive-model-search" title='The "exhaustive-model-search" property'>exhaustive-model-search</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--loose-mid-side-stereo" title='The "loose-mid-side-stereo" property'>loose-mid-side-stereo</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-lpc-order" title='The "max-lpc-order" property'>max-lpc-order</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--max-residual-partition-order" title='The "max-residual-partition-order" property'>max-residual-partition-order</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--mid-side-stereo" title='The "mid-side-stereo" property'>mid-side-stereo</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--min-residual-partition-order" title='The "min-residual-partition-order" property'>min-residual-partition-order</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-prec-search" title='The "qlp-coeff-prec-search" property'>qlp-coeff-prec-search</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--qlp-coeff-precision" title='The "qlp-coeff-precision" property'>qlp-coeff-precision</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--quality" title='The "quality" property'>quality</a>" <span class="type">GstFlacEncQuality</span> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--rice-parameter-search-dist" title='The "rice-parameter-search-dist" property'>rice-parameter-search-dist</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--streamable-subset" title='The "streamable-subset" property'>streamable-subset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding" title='The "padding" property'>padding</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints" title='The "seekpoints" property'>seekpoints</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-flacenc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.53.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.53.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -114,7 +181,7 @@ GstFlacEnc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.53.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.53.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -135,7 +202,7 @@ GstFlacEnc implements </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>audio/x-raw, format=(string){ S8LE, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</td> +<td>audio/x-raw, format=(string){ S24LE, S24_32LE, S16LE, S8 }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</td> </tr> </tbody> </table></div> @@ -169,7 +236,10 @@ GstFlacEnc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flacenc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-flacenc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flacenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstFlacEnc-struct"></a><h3>struct GstFlacEnc</h3> <pre class="programlisting">struct GstFlacEnc;</pre> @@ -180,113 +250,128 @@ GstFlacEnc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-flacenc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstFlacEnc--blocksize"></a><h3>The <code class="literal">"blocksize"</code> property</h3> -<pre class="programlisting"> "blocksize" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--blocksize"></a><h3>The <code class="literal">“blocksizeâ€</code> property</h3> +<pre class="programlisting"> “blocksize†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Blocksize in samples.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: [16,65535]</p> <p>Default value: 4608</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--escape-coding"></a><h3>The <code class="literal">"escape-coding"</code> property</h3> -<pre class="programlisting"> "escape-coding" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--escape-coding"></a><h3>The <code class="literal">“escape-codingâ€</code> property</h3> +<pre class="programlisting"> “escape-coding†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>search for escape codes in the entropy coding stage for slightly better compression.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--exhaustive-model-search"></a><h3>The <code class="literal">"exhaustive-model-search"</code> property</h3> -<pre class="programlisting"> "exhaustive-model-search" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--exhaustive-model-search"></a><h3>The <code class="literal">“exhaustive-model-searchâ€</code> property</h3> +<pre class="programlisting"> “exhaustive-model-search†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>do exhaustive search of LP coefficient quantization (expensive!).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--loose-mid-side-stereo"></a><h3>The <code class="literal">"loose-mid-side-stereo"</code> property</h3> -<pre class="programlisting"> "loose-mid-side-stereo" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--loose-mid-side-stereo"></a><h3>The <code class="literal">“loose-mid-side-stereoâ€</code> property</h3> +<pre class="programlisting"> “loose-mid-side-stereo†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Loose mid side stereo.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--max-lpc-order"></a><h3>The <code class="literal">"max-lpc-order"</code> property</h3> -<pre class="programlisting"> "max-lpc-order" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--max-lpc-order"></a><h3>The <code class="literal">“max-lpc-orderâ€</code> property</h3> +<pre class="programlisting"> “max-lpc-order†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Max LPC order; 0 => use only fixed predictors.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: <= 32</p> <p>Default value: 8</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--max-residual-partition-order"></a><h3>The <code class="literal">"max-residual-partition-order"</code> property</h3> -<pre class="programlisting"> "max-residual-partition-order" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--max-residual-partition-order"></a><h3>The <code class="literal">“max-residual-partition-orderâ€</code> property</h3> +<pre class="programlisting"> “max-residual-partition-order†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Max residual partition order (above 4 doesn't usually help much).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: <= 16</p> <p>Default value: 3</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--mid-side-stereo"></a><h3>The <code class="literal">"mid-side-stereo"</code> property</h3> -<pre class="programlisting"> "mid-side-stereo" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--mid-side-stereo"></a><h3>The <code class="literal">“mid-side-stereoâ€</code> property</h3> +<pre class="programlisting"> “mid-side-stereo†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Do mid side stereo (only for stereo input).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--min-residual-partition-order"></a><h3>The <code class="literal">"min-residual-partition-order"</code> property</h3> -<pre class="programlisting"> "min-residual-partition-order" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--min-residual-partition-order"></a><h3>The <code class="literal">“min-residual-partition-orderâ€</code> property</h3> +<pre class="programlisting"> “min-residual-partition-order†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Min residual partition order (above 4 doesn't usually help much).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: <= 16</p> <p>Default value: 3</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--qlp-coeff-prec-search"></a><h3>The <code class="literal">"qlp-coeff-prec-search"</code> property</h3> -<pre class="programlisting"> "qlp-coeff-prec-search" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--qlp-coeff-prec-search"></a><h3>The <code class="literal">“qlp-coeff-prec-searchâ€</code> property</h3> +<pre class="programlisting"> “qlp-coeff-prec-search†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>false = use qlp_coeff_precision, true = search around qlp_coeff_precision, take best.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--qlp-coeff-precision"></a><h3>The <code class="literal">"qlp-coeff-precision"</code> property</h3> -<pre class="programlisting"> "qlp-coeff-precision" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--qlp-coeff-precision"></a><h3>The <code class="literal">“qlp-coeff-precisionâ€</code> property</h3> +<pre class="programlisting"> “qlp-coeff-precision†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Precision in bits of quantized linear-predictor coefficients; 0 = automatic.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: <= 32</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--quality"></a><h3>The <code class="literal">"quality"</code> property</h3> -<pre class="programlisting"> "quality" <span class="type">GstFlacEncQuality</span> : Read / Write / Construct</pre> +<a name="GstFlacEnc--quality"></a><h3>The <code class="literal">“qualityâ€</code> property</h3> +<pre class="programlisting"> “quality†<span class="type">GstFlacEncQuality</span></pre> <p>Speed versus compression tradeoff.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 5 - Default</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--rice-parameter-search-dist"></a><h3>The <code class="literal">"rice-parameter-search-dist"</code> property</h3> -<pre class="programlisting"> "rice-parameter-search-dist" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--rice-parameter-search-dist"></a><h3>The <code class="literal">“rice-parameter-search-distâ€</code> property</h3> +<pre class="programlisting"> “rice-parameter-search-dist†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>0 = try only calc'd parameter k; else try all [k-dist..k+dist] parameters, use best.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: <= 15</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--streamable-subset"></a><h3>The <code class="literal">"streamable-subset"</code> property</h3> -<pre class="programlisting"> "streamable-subset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--streamable-subset"></a><h3>The <code class="literal">“streamable-subsetâ€</code> property</h3> +<pre class="programlisting"> “streamable-subset†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>true to limit encoder to generating a Subset stream, else false.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--padding"></a><h3>The <code class="literal">"padding"</code> property</h3> -<pre class="programlisting"> "padding" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--padding"></a><h3>The <code class="literal">“paddingâ€</code> property</h3> +<pre class="programlisting"> “padding†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Write a PADDING block with this length in bytes.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstFlacEnc--seekpoints"></a><h3>The <code class="literal">"seekpoints"</code> property</h3> -<pre class="programlisting"> "seekpoints" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct</pre> +<a name="GstFlacEnc--seekpoints"></a><h3>The <code class="literal">“seekpointsâ€</code> property</h3> +<pre class="programlisting"> “seekpoints†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Add SEEKTABLE metadata (if > 0, number of entries, if < 0, interval in sec).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= -2147483647</p> <p>Default value: -10</p> </div> @@ -294,6 +379,6 @@ GstFlacEnc implements </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 ea217e207..0980b11ca 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flacparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flacparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-flacenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-flactag.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-flacparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-flacparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-flacparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-flacparse.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flacparse.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-flacenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-flactag.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-flacparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,50 +31,60 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-flacparse.top_of_page"></a>flacparse</span></h2> <p>flacparse — Parses audio with the FLAC lossless audio codec</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-flacparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstFlacParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-flacparse.html#GstFlacParse-struct" title="struct GstFlacParse">GstFlacParse</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flacparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstFlacParse -</pre> +<a name="gst-plugins-good-plugins-flacparse.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums" title="The “check-frame-checksums†property">check-frame-checksums</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstFlacParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-flacparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-flacparse.html#GstFlacParse-struct" title="struct GstFlacParse">GstFlacParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flacparse.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums" title='The "check-frame-checksums" property'>check-frame-checksums</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-flacparse.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstFlacParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flacparse.description"></a><h2>Description</h2> -<p> -The flacparse element will parse the header packets of the FLAC +<p>The flacparse element will parse the header packets of the FLAC stream and put them as the streamheader in the caps. This is used in the multifdsink case where you want to stream live FLAC streams to multiple clients, each client has to receive the streamheaders first before they can -consume the FLAC packets. -</p> -<p> -This element also makes sure that the buffers that it pushes out are properly +consume the FLAC packets.</p> +<p>This element also makes sure that the buffers that it pushes out are properly timestamped and that their offset and offset_end are set. The buffers that flacparse outputs have all of the metadata that oggmux expects to receive, which allows you to (for example) remux an ogg/flac or convert a native FLAC -format file to an ogg bitstream. -</p> -<p> -</p> +format file to an ogg bitstream.</p> <div class="refsect2"> -<a name="id-1.2.54.6.4.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.54.7.4"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -97,12 +101,10 @@ format file to an ogg bitstream. It also illustrates that the streamheader is set in the caps, and that each buffer has the timestamp, duration, offset, and offset_end set. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.54.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.54.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -128,7 +130,7 @@ buffer has the timestamp, duration, offset, and offset_end set. </div> <hr> <div class="refsect2"> -<a name="id-1.2.54.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.54.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -183,7 +185,10 @@ buffer has the timestamp, duration, offset, and offset_end set. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flacparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-flacparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flacparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstFlacParse-struct"></a><h3>struct GstFlacParse</h3> <pre class="programlisting">struct GstFlacParse;</pre> @@ -194,19 +199,20 @@ buffer has the timestamp, duration, offset, and offset_end set. <div class="refsect1"> <a name="gst-plugins-good-plugins-flacparse.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstFlacParse--check-frame-checksums"></a><h3>The <code class="literal">"check-frame-checksums"</code> property</h3> -<pre class="programlisting"> "check-frame-checksums" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstFlacParse--check-frame-checksums"></a><h3>The <code class="literal">“check-frame-checksumsâ€</code> property</h3> +<pre class="programlisting"> “check-frame-checksums†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Check the overall checksums of every frame.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flacparse.see-also"></a><h2>See Also</h2> -flacdec, oggdemux, vorbisparse +<p>flacdec, oggdemux, vorbisparse</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 9a6e04d52..f2d4936cd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flactag</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flactag</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-flacparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-flvdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-flactag.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-flactag.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-flactag.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-flactag.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flactag.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flactag.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flactag.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-flacparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-flvdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-flactag"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,21 +31,28 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-flactag.top_of_page"></a>flactag</span></h2> <p>flactag — Rewrite tags in a FLAC file</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-flactag.synopsis"></a><h2>Synopsis</h2> -<a name="GstFlacTag"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-flactag.html#GstFlacTag-struct" title="struct GstFlacTag">GstFlacTag</a>; -</pre> +<a name="GstFlacTag"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-flactag.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-flactag.html#GstFlacTag-struct" title="struct GstFlacTag">GstFlacTag</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flactag.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstFlacTag +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstFlacTag </pre> </div> <div class="refsect1"> @@ -65,7 +66,7 @@ GstFlacTag implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.55.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.55.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -91,7 +92,7 @@ GstFlacTag implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.55.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.55.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -146,7 +147,10 @@ GstFlacTag implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flactag.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-flactag.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flactag.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstFlacTag-struct"></a><h3>struct GstFlacTag</h3> <pre class="programlisting">struct GstFlacTag;</pre> @@ -157,6 +161,6 @@ GstFlacTag implements </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 5a9e61148..4247c3b37 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flvdemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flvdemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-flactag.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-flvmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-flvdemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-flvdemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-flvdemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flvdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flvdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-flactag.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-flvmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-flvdemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,32 +30,35 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-flvdemux.top_of_page"></a>flvdemux</span></h2> <p>flvdemux — Demux FLV feeds into digital streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-flvdemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstFlvDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-flvdemux.html#GstFlvDemux-struct" title="struct GstFlvDemux">GstFlvDemux</a>; -</pre> +<a name="GstFlvDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-flvdemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-flvdemux.html#GstFlvDemux-struct" title="struct GstFlvDemux">GstFlvDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flvdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstFlvDemux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstFlvDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flvdemux.description"></a><h2>Description</h2> -<p> -flvdemux demuxes an FLV file into the different contained streams. -</p> -<p> -</p> +<p>flvdemux demuxes an FLV file into the different contained streams.</p> <div class="refsect2"> -<a name="id-1.2.56.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.56.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -73,12 +71,10 @@ flvdemux demuxes an FLV file into the different contained streams. </div> This pipeline demuxes an FLV file and outputs the contained raw audio streams. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.56.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.56.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -104,7 +100,7 @@ flvdemux demuxes an FLV file into the different contained streams. </div> <hr> <div class="refsect2"> -<a name="id-1.2.56.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.56.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -227,7 +223,10 @@ flvdemux demuxes an FLV file into the different contained streams. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flvdemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-flvdemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flvdemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstFlvDemux-struct"></a><h3>struct GstFlvDemux</h3> <pre class="programlisting">struct GstFlvDemux;</pre> @@ -238,6 +237,6 @@ flvdemux demuxes an FLV file into the different contained streams. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 1107a7522..c366711e0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flvmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flvmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-flvdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-flxdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-flvmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-flvmux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-flvmux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-flvmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-flvmux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flvmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flvmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flvmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flvmux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-flvdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-flxdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-flvmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,21 +32,50 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-flvmux.top_of_page"></a>flvmux</span></h2> <p>flvmux — Muxes video/audio streams into a FLV stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-flvmux.synopsis"></a><h2>Synopsis</h2> -<a name="GstFlvMux"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-flvmux.html#GstFlvMux-struct" title="GstFlvMux">GstFlvMux</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flvmux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live" title="The “is-live†property">is-live</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable" title="The “streamable†property">streamable</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstFlvMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-flvmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-flvmux.html#GstFlvMux-struct" title="GstFlvMux">GstFlvMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flvmux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstFlvMux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstFlvMux </pre> </div> <div class="refsect1"> @@ -63,39 +85,26 @@ GstFlvMux implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flvmux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live" title='The "is-live" property'>is-live</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable" title='The "streamable" property'>streamable</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"> <a name="gst-plugins-good-plugins-flvmux.description"></a><h2>Description</h2> -<p> -flvmux muxes different streams into an FLV file. -</p> -<p> -</p> +<p>flvmux muxes different streams into an FLV file.</p> <div class="refsect2"> -<a name="id-1.2.57.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.57.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listing_lines" align="right"><pre>1</pre></td> - <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>audio <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> flvmux name<span class="gtkdoc opt">=</span>m <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">.</span>flv filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>video <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> m<span class="gtkdoc opt">.</span></pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v flvmux name<span class="gtkdoc opt">=</span>mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>flv audiotestsrc samplesperbuffer<span class="gtkdoc opt">=</span><span class="number">44100</span> num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">10</span> <span class="gtkdoc opt">!</span> faac <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span> videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">250</span> <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>framerate<span class="gtkdoc opt">=</span><span class="number">25</span><span class="gtkdoc opt">/</span><span class="number">1</span> <span class="gtkdoc opt">!</span> x264enc <span class="gtkdoc opt">!</span> mux<span class="gtkdoc opt">.</span></pre></td> </tr> </tbody> </table> </div> - This pipeline muxes an audio and video file into a single FLV file. + This pipeline encodes a test audio and video stream and muxes both into an FLV file. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.57.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.57.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -121,7 +130,7 @@ flvmux muxes different streams into an FLV file. </div> <hr> <div class="refsect2"> -<a name="id-1.2.57.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.57.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -244,7 +253,10 @@ flvmux muxes different streams into an FLV file. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flvmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-flvmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flvmux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstFlvMux-struct"></a><h3>GstFlvMux</h3> <pre class="programlisting">typedef struct _GstFlvMux GstFlvMux;</pre> @@ -255,26 +267,25 @@ flvmux muxes different streams into an FLV file. <div class="refsect1"> <a name="gst-plugins-good-plugins-flvmux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstFlvMux--is-live"></a><h3>The <code class="literal">"is-live"</code> property</h3> -<pre class="programlisting"> "is-live" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstFlvMux--is-live"></a><h3>The <code class="literal">“is-liveâ€</code> property</h3> +<pre class="programlisting"> “is-live†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>The stream is live and does not need an index.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstFlvMux--streamable"></a><h3>The <code class="literal">"streamable"</code> property</h3> -<pre class="programlisting"> "streamable" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -If True, the output will be streaming friendly. (ie without indexes and -duration) -</p> +<a name="GstFlvMux--streamable"></a><h3>The <code class="literal">“streamableâ€</code> property</h3> +<pre class="programlisting"> “streamable†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>If True, the output will be streaming friendly. (ie without indexes and +duration)</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> -<p class="since">Since 0.10.24</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a32bd5d38..81d1c5f66 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flxdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flxdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-flvmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-gamma.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-flxdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-flxdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-flxdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flxdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-flxdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-flvmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-gamma.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-flxdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,32 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-flxdec.top_of_page"></a>flxdec</span></h2> <p>flxdec — FLC/FLI/FLX video decoder</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-flxdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstFlxDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-flxdec.html#GstFlxDec-struct" title="struct GstFlxDec">GstFlxDec</a>; -</pre> +<a name="GstFlxDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-flxdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-flxdec.html#GstFlxDec-struct" title="struct GstFlxDec">GstFlxDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flxdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstFlxDec +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstFlxDec </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-flxdec.description"></a><h2>Description</h2> -<p> -This element decodes fli/flc/flx-video into raw video -</p> +<p>This element decodes fli/flc/flx-video into raw video</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.58.5.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.58.6.2.1.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="id-1.2.58.5.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.58.6.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -141,7 +141,10 @@ This element decodes fli/flc/flx-video into raw video </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-flxdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-flxdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-flxdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstFlxDec-struct"></a><h3>struct GstFlxDec</h3> <pre class="programlisting">struct GstFlxDec;</pre> @@ -152,6 +155,6 @@ This element decodes fli/flc/flx-video into raw video </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 7a826fc32..bfa0928ad 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>gamma</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: gamma</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-flxdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-gamma.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-gamma.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-gamma.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-gamma.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-gamma.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-gamma.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-gamma.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-flxdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-gamma"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,40 +31,52 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-gamma.top_of_page"></a>gamma</span></h2> <p>gamma — Adjusts gamma on a video stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-gamma.synopsis"></a><h2>Synopsis</h2> -<a name="GstGamma"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-gamma.html#GstGamma-struct" title="struct GstGamma">GstGamma</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-gamma.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstGamma -</pre> +<a name="gst-plugins-good-plugins-gamma.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gamma.html#GstGamma--gamma" title="The “gamma†property">gamma</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstGamma"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-gamma.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-gamma.html#GstGamma-struct" title="struct GstGamma">GstGamma</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-gamma.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-gamma.html#GstGamma--gamma" title='The "gamma" property'>gamma</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write +<a name="gst-plugins-good-plugins-gamma.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstGamma </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-gamma.description"></a><h2>Description</h2> -<p> -Performs gamma correction on a video stream. -</p> -<p> -</p> +<p>Performs gamma correction on a video stream.</p> <div class="refsect2"> -<a name="id-1.2.59.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.59.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -94,15 +100,10 @@ Performs gamma correction on a video stream. </div> This pipeline will make the image "darker". </div> -<p> -</p> -<p> -Last reviewed on 2010-04-18 (0.10.22) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.59.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.59.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -128,7 +129,7 @@ Last reviewed on 2010-04-18 (0.10.22) </div> <hr> <div class="refsect2"> -<a name="id-1.2.59.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.59.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -183,21 +184,23 @@ Last reviewed on 2010-04-18 (0.10.22) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-gamma.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-gamma.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-gamma.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstGamma-struct"></a><h3>struct GstGamma</h3> <pre class="programlisting">struct GstGamma;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-gamma.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstGamma--gamma"></a><h3>The <code class="literal">"gamma"</code> property</h3> -<pre class="programlisting"> "gamma" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstGamma--gamma"></a><h3>The <code class="literal">“gammaâ€</code> property</h3> +<pre class="programlisting"> “gamma†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>gamma.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0.01,10]</p> <p>Default value: 1</p> </div> @@ -205,6 +208,6 @@ Opaque data structure. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f8aa12631..cca1df6e2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>gdkpixbufsink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: gdkpixbufsink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-gamma.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-goom.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-gdkpixbufsink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-gdkpixbufsink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-gdkpixbufsink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-gdkpixbufsink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-gdkpixbufsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-gdkpixbufsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-gdkpixbufsink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-gamma.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-goom.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-gdkpixbufsink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,31 +31,58 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-gdkpixbufsink.top_of_page"></a>gdkpixbufsink</span></h2> <p>gdkpixbufsink — Output images as GdkPixbuf objects in bus messages</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-gdkpixbufsink.synopsis"></a><h2>Synopsis</h2> -<a name="GstGdkPixbufSink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct" title="struct GstGdkPixbufSink">GstGdkPixbufSink</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufsink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</a> - +----GstGdkPixbufSink -</pre> +<a name="gst-plugins-good-plugins-gdkpixbufsink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf" title="The “last-pixbuf†property">last-pixbuf</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages" title="The “send-messages†property">send-messages</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title="The “post-messages†property">post-messages</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstGdkPixbufSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-gdkpixbufsink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct" title="struct GstGdkPixbufSink">GstGdkPixbufSink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufsink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf" title='The "last-pixbuf" property'>last-pixbuf</a>" <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages" title='The "send-messages" property'>send-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title='The "post-messages" property'>post-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-gdkpixbufsink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</a> + <span class="lineart">╰──</span> GstGdkPixbufSink </pre> </div> <div class="refsect1"> @@ -69,7 +90,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.60.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.60.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -95,7 +116,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.60.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.60.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -130,7 +151,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-gdkpixbufsink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-gdkpixbufsink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-gdkpixbufsink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstGdkPixbufSink-struct"></a><h3>struct GstGdkPixbufSink</h3> <pre class="programlisting">struct GstGdkPixbufSink;</pre> @@ -141,28 +165,31 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-gdkpixbufsink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstGdkPixbufSink--last-pixbuf"></a><h3>The <code class="literal">"last-pixbuf"</code> property</h3> -<pre class="programlisting"> "last-pixbuf" <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>* : Read</pre> +<a name="GstGdkPixbufSink--last-pixbuf"></a><h3>The <code class="literal">“last-pixbufâ€</code> property</h3> +<pre class="programlisting"> “last-pixbuf†<a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *</pre> <p>Last GdkPixbuf object rendered.</p> +<p>Flags: Read</p> </div> <hr> <div class="refsect2"> -<a name="GstGdkPixbufSink--send-messages"></a><h3>The <code class="literal">"send-messages"</code> property</h3> -<pre class="programlisting"> "send-messages" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstGdkPixbufSink--send-messages"></a><h3>The <code class="literal">“send-messagesâ€</code> property</h3> +<pre class="programlisting"> “send-messages†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether to post messages containing pixbufs on the bus (deprecated, use post-messages).</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstGdkPixbufSink--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3> -<pre class="programlisting"> "post-messages" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstGdkPixbufSink--post-messages"></a><h3>The <code class="literal">“post-messagesâ€</code> property</h3> +<pre class="programlisting"> “post-messages†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether to post messages containing pixbufs on the bus.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 7014ace66..50921dd63 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-goom.html +++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>goom</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: goom</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-goom2k1.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-goom.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-goom.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-goom.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-goom.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-goom.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-goom2k1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-goom"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,33 +30,36 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-goom.top_of_page"></a>goom</span></h2> <p>goom — Takes frames of data and outputs video frames using the GOOM filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-goom.synopsis"></a><h2>Synopsis</h2> -<a name="GstGoom"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-goom.html#GstGoom-struct" title="struct GstGoom">GstGoom</a>; -</pre> +<a name="GstGoom"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-goom.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-goom.html#GstGoom-struct" title="struct GstGoom">GstGoom</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-goom.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstGoom +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstGoom </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-goom.description"></a><h2>Description</h2> -<p> -Goom is an audio visualisation element. It creates warping structures -based on the incoming audio signal. -</p> -<p> -</p> +<p>Goom is an audio visualisation element. It creates warping structures +based on the incoming audio signal.</p> <div class="refsect2"> -<a name="id-1.2.61.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.61.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -74,12 +72,10 @@ based on the incoming audio signal. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.61.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.61.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -105,7 +101,7 @@ based on the incoming audio signal. </div> <hr> <div class="refsect2"> -<a name="id-1.2.61.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.61.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -164,7 +160,10 @@ based on the incoming audio signal. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-goom.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-goom.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-goom.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstGoom-struct"></a><h3>struct GstGoom</h3> <pre class="programlisting">struct GstGoom;</pre> @@ -174,11 +173,11 @@ based on the incoming audio signal. </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-goom.see-also"></a><h2>See Also</h2> -synaesthesia +<p>synaesthesia</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c492865a2..cc03c12b6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html +++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>goom2k1</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: goom2k1</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-goom.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-hdv1394src.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-goom2k1.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-goom2k1.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-goom2k1.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-goom2k1.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-goom2k1.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-hdv1394src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-goom2k1"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-goom2k1.top_of_page"></a>goom2k1</span></h2> <p>goom2k1 — Takes frames of data and outputs video frames using the GOOM 2k1 filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-goom2k1.synopsis"></a><h2>Synopsis</h2> -<a name="GstGoom"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-goom.html#GstGoom-struct" title="struct GstGoom">GstGoom</a>; -</pre> +<a name="GstGoom"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-goom2k1.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-goom.html#GstGoom-struct" title="struct GstGoom">GstGoom</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-goom2k1.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstGoom +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstGoom </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-goom2k1.description"></a><h2>Description</h2> -<p> -Goom2k1 is an audio visualisation element. It creates warping structures +<p>Goom2k1 is an audio visualisation element. It creates warping structures based on the incomming audio signal. Goom2k1 is the older version of the -visualisation. Also available is goom2k4, with a different look. -</p> -<p> -</p> +visualisation. Also available is goom2k4, with a different look.</p> <div class="refsect2"> -<a name="id-1.2.62.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.62.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -75,12 +73,10 @@ visualisation. Also available is goom2k4, with a different look. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.62.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.62.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -106,7 +102,7 @@ visualisation. Also available is goom2k4, with a different look. </div> <hr> <div class="refsect2"> -<a name="id-1.2.62.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.62.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -165,7 +161,10 @@ visualisation. Also available is goom2k4, with a different look. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-goom2k1.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-goom2k1.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-goom2k1.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstGoom-struct"></a><h3>struct GstGoom</h3> <pre class="programlisting">struct GstGoom;</pre> @@ -175,11 +174,11 @@ visualisation. Also available is goom2k4, with a different look. </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-goom2k1.see-also"></a><h2>See Also</h2> -goom, synaesthesia +<p>goom, synaesthesia</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 4ca2fd16b..36e3a9773 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>hdv1394src</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: hdv1394src</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-goom2k1.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-icydemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-hdv1394src.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-hdv1394src.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-hdv1394src.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-hdv1394src.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-hdv1394src.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-hdv1394src.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-hdv1394src.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-hdv1394src.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-hdv1394src.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-hdv1394src"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,23 +32,68 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-hdv1394src.top_of_page"></a>hdv1394src</span></h2> <p>hdv1394src — Source for MPEG-TS video data from firewire port</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-hdv1394src.synopsis"></a><h2>Synopsis</h2> -<a name="GstHDV1394Src"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct" title="struct GstHDV1394Src">GstHDV1394Src</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-hdv1394src.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel" title="The “channel†property">channel</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--guid" title="The “guid†property">guid</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port" title="The “port†property">port</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc" title="The “use-avc†property">use-avc</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstHDV1394Src"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-hdv1394src.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct" title="struct GstHDV1394Src">GstHDV1394Src</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-hdv1394src.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----GstHDV1394Src +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> GstHDV1394Src </pre> </div> <div class="refsect1"> @@ -65,21 +103,11 @@ GstHDV1394Src implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-hdv1394src.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel" title='The "channel" property'>channel</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--guid" title='The "guid" property'>guid</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port" title='The "port" property'>port</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc" title='The "use-avc" property'>use-avc</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"> <a name="gst-plugins-good-plugins-hdv1394src.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.63.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.63.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -105,7 +133,7 @@ GstHDV1394Src implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.63.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.63.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -136,7 +164,10 @@ GstHDV1394Src implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-hdv1394src.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-hdv1394src.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-hdv1394src.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstHDV1394Src-struct"></a><h3>struct GstHDV1394Src</h3> <pre class="programlisting">struct GstHDV1394Src;</pre> @@ -147,45 +178,50 @@ GstHDV1394Src implements <div class="refsect1"> <a name="gst-plugins-good-plugins-hdv1394src.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstHDV1394Src--channel"></a><h3>The <code class="literal">"channel"</code> property</h3> -<pre class="programlisting"> "channel" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstHDV1394Src--channel"></a><h3>The <code class="literal">“channelâ€</code> property</h3> +<pre class="programlisting"> “channel†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Channel number for listening.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,64]</p> <p>Default value: 63</p> </div> <hr> <div class="refsect2"> -<a name="GstHDV1394Src--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstHDV1394Src--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>user-friendly name of the device.</p> +<p>Flags: Read</p> <p>Default value: "Default"</p> </div> <hr> <div class="refsect2"> -<a name="GstHDV1394Src--guid"></a><h3>The <code class="literal">"guid"</code> property</h3> -<pre class="programlisting"> "guid" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstHDV1394Src--guid"></a><h3>The <code class="literal">“guidâ€</code> property</h3> +<pre class="programlisting"> “guid†<span class="type">guint64</span></pre> <p>select one of multiple DV devices by its GUID. use a hexadecimal like 0xhhhhhhhhhhhhhhhh. (0 = no guid).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstHDV1394Src--port"></a><h3>The <code class="literal">"port"</code> property</h3> -<pre class="programlisting"> "port" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstHDV1394Src--port"></a><h3>The <code class="literal">“portâ€</code> property</h3> +<pre class="programlisting"> “port†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Port number (-1 automatic).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [G_MAXULONG,16]</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstHDV1394Src--use-avc"></a><h3>The <code class="literal">"use-avc"</code> property</h3> -<pre class="programlisting"> "use-avc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstHDV1394Src--use-avc"></a><h3>The <code class="literal">“use-avcâ€</code> property</h3> +<pre class="programlisting"> “use-avc†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use AV/C VTR control.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a0d4fe644..a9d44d7d8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>icydemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: icydemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-hdv1394src.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-id3demux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-icydemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-icydemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-icydemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-icydemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-icydemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-hdv1394src.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-id3demux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-icydemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,36 +30,39 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-icydemux.top_of_page"></a>icydemux</span></h2> <p>icydemux — Read and output ICY tags while demuxing the contents</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-icydemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstICYDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-icydemux.html#GstICYDemux-struct" title="struct GstICYDemux">GstICYDemux</a>; -</pre> +<a name="GstICYDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-icydemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-icydemux.html#GstICYDemux-struct" title="struct GstICYDemux">GstICYDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-icydemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstICYDemux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstICYDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-icydemux.description"></a><h2>Description</h2> -<p> -icydemux accepts data streams with ICY metadata at known intervals, as +<p>icydemux accepts data streams with ICY metadata at known intervals, as transmitted from an upstream element (usually read as response headers from an HTTP stream). The mime type of the data between the tag blocks is detected using typefind functions, and the appropriate output mime type set -on outgoing buffers. -</p> -<p> -</p> +on outgoing buffers. </p> <div class="refsect2"> -<a name="id-1.2.64.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.64.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -80,12 +78,10 @@ The contents of the stream should be detected, and the appropriate mime type set on buffers produced from icydemux. (Using gnomevfssrc, neonhttpsrc or giosrc instead of souphttpsrc should also work.) </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.64.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.64.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -111,7 +107,7 @@ or giosrc instead of souphttpsrc should also work.) </div> <hr> <div class="refsect2"> -<a name="id-1.2.64.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.64.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -166,7 +162,10 @@ or giosrc instead of souphttpsrc should also work.) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-icydemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-icydemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-icydemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstICYDemux-struct"></a><h3>struct GstICYDemux</h3> <pre class="programlisting">struct GstICYDemux;</pre> @@ -177,6 +176,6 @@ or giosrc instead of souphttpsrc should also work.) </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0e94409b5..75cf6e6f9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>id3demux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: id3demux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-icydemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-id3v2mux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-id3demux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-id3demux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-id3demux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-id3demux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-id3demux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-id3demux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-id3demux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-icydemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-id3v2mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-id3demux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,53 +31,61 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-id3demux.top_of_page"></a>id3demux</span></h2> <p>id3demux — Read and output ID3v1 and ID3v2 tags while demuxing the contents</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-id3demux.synopsis"></a><h2>Synopsis</h2> -<a name="GstID3Demux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct" title="struct GstID3Demux">GstID3Demux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-id3demux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagdemux.html#GstTagDemux">GstTagDemux</a> - +----GstID3Demux -</pre> +<a name="gst-plugins-good-plugins-id3demux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1" title="The “prefer-v1†property">prefer-v1</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr></tbody> +</table></div> +</div> +<a name="GstID3Demux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-id3demux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct" title="struct GstID3Demux">GstID3Demux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-id3demux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1" title='The "prefer-v1" property'>prefer-v1</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct +<a name="gst-plugins-good-plugins-id3demux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagdemux.html#GstTagDemux">GstTagDemux</a> + <span class="lineart">╰──</span> GstID3Demux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-id3demux.description"></a><h2>Description</h2> -<p> -id3demux accepts data streams with either (or both) ID3v2 regions at the +<p>id3demux accepts data streams with either (or both) ID3v2 regions at the start, or ID3v1 at the end. The mime type of the data between the tag blocks is detected using typefind functions, and the appropriate output mime type -set on outgoing buffers. -</p> -<p> -The element is only able to read ID3v1 tags from a seekable stream, because +set on outgoing buffers. </p> +<p>The element is only able to read ID3v1 tags from a seekable stream, because they are at the end of the stream. That is, when get_range mode is supported by the upstream elements. If get_range operation is available, id3demux makes it available downstream. This means that elements which require get_range -mode, such as wavparse, can operate on files containing ID3 tag information. -</p> -<p> -This id3demux element replaced an older element with the same name which -relied on libid3tag from the MAD project. -</p> -<p> -</p> +mode, such as wavparse, can operate on files containing ID3 tag information.</p> +<p>This id3demux element replaced an older element with the same name which +relied on libid3tag from the MAD project.</p> <div class="refsect2"> -<a name="id-1.2.65.6.5.1"></a><h3>Example launch line</h3> +<a name="id-1.2.65.7.5"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,12 +100,10 @@ relied on libid3tag from the MAD project. The contents of the file inside the ID3 tag regions should be detected, and the appropriate mime type set on buffers produced from id3demux. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.65.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.65.7.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="id-1.2.65.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.65.7.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -184,7 +184,10 @@ the appropriate mime type set on buffers produced from id3demux. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-id3demux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-id3demux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-id3demux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstID3Demux-struct"></a><h3>struct GstID3Demux</h3> <pre class="programlisting">struct GstID3Demux;</pre> @@ -195,15 +198,16 @@ the appropriate mime type set on buffers produced from id3demux. <div class="refsect1"> <a name="gst-plugins-good-plugins-id3demux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstID3Demux--prefer-v1"></a><h3>The <code class="literal">"prefer-v1"</code> property</h3> -<pre class="programlisting"> "prefer-v1" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstID3Demux--prefer-v1"></a><h3>The <code class="literal">“prefer-v1â€</code> property</h3> +<pre class="programlisting"> “prefer-v1†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Prefer tags from ID3v1 tag at end of file when both ID3v1 and ID3v2 tags are present.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 803f01e84..9acd925df 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>id3v2mux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: id3v2mux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-id3demux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-imagefreeze.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-id3v2mux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-id3v2mux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-id3v2mux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-id3v2mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-id3v2mux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-id3v2mux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-id3v2mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-id3demux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-imagefreeze.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-id3v2mux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,22 +31,29 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-id3v2mux.top_of_page"></a>id3v2mux</span></h2> <p>id3v2mux — Adds an ID3v2 header to the beginning of MP3 files using taglib</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-id3v2mux.synopsis"></a><h2>Synopsis</h2> -<a name="GstId3v2Mux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux-struct" title="struct GstId3v2Mux">GstId3v2Mux</a>; -</pre> +<a name="GstId3v2Mux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-id3v2mux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux-struct" title="struct GstId3v2Mux">GstId3v2Mux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-id3v2mux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagmux.html#GstTagMux">GstTagMux</a> - +----GstId3v2Mux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttagmux.html#GstTagMux">GstTagMux</a> + <span class="lineart">╰──</span> GstId3v2Mux </pre> </div> <div class="refsect1"> @@ -66,7 +67,7 @@ GstId3v2Mux implements <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.66.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.66.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -92,7 +93,7 @@ GstId3v2Mux implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.66.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.66.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -147,7 +148,10 @@ GstId3v2Mux implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-id3v2mux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-id3v2mux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-id3v2mux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstId3v2Mux-struct"></a><h3>struct GstId3v2Mux</h3> <pre class="programlisting">struct GstId3v2Mux;</pre> @@ -158,6 +162,6 @@ GstId3v2Mux implements </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 bb3ec370d..029bd08be 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html +++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>imagefreeze</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: imagefreeze</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-id3v2mux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-interleave.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-imagefreeze.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-imagefreeze.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-imagefreeze.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-imagefreeze.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-imagefreeze.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-id3v2mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-interleave.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-imagefreeze"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-imagefreeze.top_of_page"></a>imagefreeze</span></h2> <p>imagefreeze — Generates a still frame stream from an image</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-imagefreeze.synopsis"></a><h2>Synopsis</h2> -<a name="GstImageFreeze"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze-struct" title="struct GstImageFreeze">GstImageFreeze</a>; -</pre> +<a name="GstImageFreeze"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-imagefreeze.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze-struct" title="struct GstImageFreeze">GstImageFreeze</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-imagefreeze.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstImageFreeze +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstImageFreeze </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-imagefreeze.description"></a><h2>Description</h2> -<p> -The imagefreeze element generates a still frame video stream from +<p>The imagefreeze element generates a still frame video stream from the input. It duplicates the first frame with the framerate requested -by downstream, allows seeking and answers queries. -</p> -<p> -</p> +by downstream, allows seeking and answers queries.</p> <div class="refsect2"> -<a name="id-1.2.67.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.67.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -75,12 +73,10 @@ by downstream, allows seeking and answers queries. </div> This pipeline shows a still frame stream of a PNG file. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.67.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.67.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -106,7 +102,7 @@ by downstream, allows seeking and answers queries. </div> <hr> <div class="refsect2"> -<a name="id-1.2.67.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.67.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -161,7 +157,10 @@ by downstream, allows seeking and answers queries. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-imagefreeze.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-imagefreeze.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-imagefreeze.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstImageFreeze-struct"></a><h3>struct GstImageFreeze</h3> <pre class="programlisting">struct GstImageFreeze;</pre> @@ -172,6 +171,6 @@ by downstream, allows seeking and answers queries. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 768c9f263..94ba38f33 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-interleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-interleave.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>interleave</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: interleave</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-imagefreeze.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-ismlmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-interleave.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-interleave.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-interleave.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-interleave.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-interleave.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-interleave.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-interleave.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-imagefreeze.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-ismlmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-interleave"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,52 +31,65 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-interleave.top_of_page"></a>interleave</span></h2> <p>interleave — Folds many mono channels into one interleaved audio stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-interleave.synopsis"></a><h2>Synopsis</h2> -<a name="GstInterleave"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-interleave.html#GstInterleave-struct" title="struct GstInterleave">GstInterleave</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-interleave.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstInterleave -</pre> +<a name="gst-plugins-good-plugins-interleave.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions" title="The “channel-positions†property">channel-positions</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions-from-input" title="The “channel-positions-from-input†property">channel-positions-from-input</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstInterleave"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-interleave.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-interleave.html#GstInterleave-struct" title="struct GstInterleave">GstInterleave</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-interleave.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions" title='The "channel-positions" property'>channel-positions</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions-from-input" title='The "channel-positions-from-input" property'>channel-positions-from-input</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-interleave.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstInterleave </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-interleave.description"></a><h2>Description</h2> -<p> -Merges separate mono inputs into one interleaved stream. -</p> -<p> -This element handles all raw floating point sample formats and all signed integer sample formats. The first +<p>Merges separate mono inputs into one interleaved stream.</p> +<p>This element handles all raw floating point sample formats and all signed integer sample formats. The first caps on one of the sinkpads will set the caps of the output so usually an audioconvert element should be -placed before every sinkpad of interleave. -</p> -<p> -It's possible to change the number of channels while the pipeline is running by adding or removing +placed before every sinkpad of interleave.</p> +<p>It's possible to change the number of channels while the pipeline is running by adding or removing some of the request pads but this will change the caps of the output buffers. Changing the input -caps is _not_ supported yet. -</p> -<p> -The channel number of every sinkpad in the out can be retrieved from the "channel" property of the pad. -</p> -<p> -</p> +caps is _not_ supported yet.</p> +<p>The channel number of every sinkpad in the out can be retrieved from the "channel" property of the pad.</p> <div class="refsect2"> -<a name="id-1.2.68.6.6.1"></a><h3>Example launch line</h3> +<a name="id-1.2.68.7.6"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -108,12 +115,10 @@ channels exchanged. </div> Interleaves two Mono WAV files to a single Stereo WAV file. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.68.6.7.1"></a><h3>Element Information</h3> +<a name="id-1.2.68.7.7.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -139,7 +144,7 @@ channels exchanged. </div> <hr> <div class="refsect2"> -<a name="id-1.2.68.6.7.2"></a><h3>Element Pads</h3> +<a name="id-1.2.68.7.7.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -194,7 +199,10 @@ channels exchanged. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-interleave.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-interleave.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-interleave.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstInterleave-struct"></a><h3>struct GstInterleave</h3> <pre class="programlisting">struct GstInterleave;</pre> @@ -205,41 +213,37 @@ channels exchanged. <div class="refsect1"> <a name="gst-plugins-good-plugins-interleave.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstInterleave--channel-positions"></a><h3>The <code class="literal">"channel-positions"</code> property</h3> -<pre class="programlisting"> "channel-positions" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> -<p> -Channel positions: This property controls the channel positions +<a name="GstInterleave--channel-positions"></a><h3>The <code class="literal">“channel-positionsâ€</code> property</h3> +<pre class="programlisting"> “channel-positions†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> +<p>Channel positions: This property controls the channel positions that are used on the src caps. The number of elements should be the same as the number of sink pads and the array should contain a valid list of channel positions. The n-th element of the array -is the position of the n-th sink pad. -</p> -<p> -These channel positions will only be used if they're valid and the +is the position of the n-th sink pad.</p> +<p>These channel positions will only be used if they're valid and the number of elements is the same as the number of channels. If this -is not given a NONE layout will be used. -</p> +is not given a NONE layout will be used.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstInterleave--channel-positions-from-input"></a><h3>The <code class="literal">"channel-positions-from-input"</code> property</h3> -<pre class="programlisting"> "channel-positions-from-input" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Channel positions from input: If this property is set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the channel +<a name="GstInterleave--channel-positions-from-input"></a><h3>The <code class="literal">“channel-positions-from-inputâ€</code> property</h3> +<pre class="programlisting"> “channel-positions-from-input†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Channel positions from input: If this property is set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the channel positions will be taken from the input caps if valid channel positions for the output can be constructed from them. If this is set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> setting the -channel-positions property overwrites this property again. -</p> +channel-positions property overwrites this property again.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-interleave.see-also"></a><h2>See Also</h2> -deinterleave +<p>deinterleave</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 29c0dee46..75cde9892 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html @@ -2,30 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>ismlmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: ismlmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-interleave.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-ismlmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-ismlmux.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ismlmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ismlmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ismlmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ismlmux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-interleave.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-ismlmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,23 +32,101 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-ismlmux.top_of_page"></a>ismlmux</span></h2> <p>ismlmux — Muxer for ISML smooth streaming (.isml) files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-ismlmux.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis"></pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-ismlmux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstQTMuxDtsMethods</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--dts-method" title="The “dts-method†property">dts-method</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--faststart" title="The “faststart†property">faststart</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--faststart-file" title="The “faststart-file†property">faststart-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--fragment-duration" title="The “fragment-duration†property">fragment-duration</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--moov-recovery-file" title="The “moov-recovery-file†property">moov-recovery-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--movie-timescale" title="The “movie-timescale†property">movie-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--presentation-time" title="The “presentation-time†property">presentation-time</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--streamable" title="The “streamable†property">streamable</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--trak-timescale" title="The “trak-timescale†property">trak-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstISMLMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-ismlmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux-struct" title="GstISMLMux">GstISMLMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-ismlmux.description"></a><h2>Description</h2> -<p> -This element merges streams (audio and video) into MJ2 (.mj2) files. -</p> -<p> -The following background intends to explain why various similar muxers -are present in this plugin. -</p> +<a name="gst-plugins-good-plugins-ismlmux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstISMLMux +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-ismlmux.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> -The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> +GstISMLMux implements + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and GstTagXmpWriter.</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-ismlmux.description"></a><h2>Description</h2> +<p>This element merges streams (audio and video) into MJ2 (.mj2) files.</p> +<p>The following background intends to explain why various similar muxers +are present in this plugin.</p> +<p>The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> QuickTime file format specification</a> served as basis for the MP4 file format specification (mp4mux), and as such the QuickTime file structure is nearly identical to the so-called ISO Base Media file format defined in @@ -58,45 +135,23 @@ In turn, the latter ISO Base Media format was further specialized as a Motion JPEG-2000 file format in ISO 15444-3 (mj2mux) and in various 3GPP(2) specs (3gppmux). The fragmented file features defined (only) in ISO Base Media are used by -ISMV files making up (a.o.) Smooth Streaming (ismlmux). -</p> -<p> -A few properties (movie-timescale, -trak-timescale) allow adjusting -some technical parameters, which might be useful in (rare) cases to resolve -compatibility issues in some situations. -</p> -<p> -Some other properties influence the result more fundamentally. +ISMV files making up (a.o.) Smooth Streaming (ismlmux).</p> +<p>A few properties (<a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--movie-timescale" title="The “movie-timescale†property"><span class="type">“movie-timescaleâ€</span></a>, <a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--trak-timescale" title="The “trak-timescale†property"><span class="type">“trak-timescaleâ€</span></a>) +allow adjusting some technical parameters, which might be useful in (rare) +cases to resolve compatibility issues in some situations.</p> +<p>Some other properties influence the result more fundamentally. A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, -somewhat contrary to this usually being called "the header". -However, a faststart file will -(with some effort) arrange this to be located near start of the file, -which then allows it e.g. to be played while downloading. -Alternatively, rather than having one chunk of metadata at start (or end), -there can be some metadata at start and most of the other data can be spread -out into fragments of fragment-duration. -If such fragmented layout is intended for streaming purposes, then -streamable allows foregoing to add -index metadata (at the end of file). -</p> -<p> -dts-method allows selecting a -method for managing input timestamps (stay tuned for 0.11 to have this -automagically settled). The default delta/duration method should handle nice -(aka perfect streams) just fine, but may experience problems otherwise -(e.g. input stream with re-ordered B-frames and/or with frame dropping). -The re-ordering approach re-assigns incoming timestamps in ascending order -to incoming buffers and offers an alternative in such cases. In cases where -that might fail, the remaining method can be tried, which is exact and -according to specs, but might experience playback on not so spec-wise players. -Note that this latter approach also requires one to enable -presentation-timestamp. -</p> -<p> -</p> +somewhat contrary to this usually being called "the header". However, a +<a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--faststart" title="The “faststart†property"><span class="type">“faststartâ€</span></a> file will (with some effort) arrange this to be located +near start of the file, which then allows it e.g. to be played while +downloading. Alternatively, rather than having one chunk of metadata at start +(or end), there can be some metadata at start and most of the other data can +be spread out into fragments of <a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--fragment-duration" title="The “fragment-duration†property"><span class="type">“fragment-durationâ€</span></a>. If such +fragmented layout is intended for streaming purposes, then +<a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--streamable" title="The “streamable†property"><span class="type">“streamableâ€</span></a> allows foregoing to add index metadata (at the end of +file).</p> <div class="refsect2"> -<a name="id-1.2.69.4.8.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.69.8.7"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -111,15 +166,11 @@ presentation-timestamp. Records a video stream captured from a v4l2 device, encodes it into JPEG-2000 and muxes it into an mj2 file. </div> -<p> -</p> -<p> -Documentation last reviewed on 2011-04-21 -</p> +<p>Documentation last reviewed on 2011-04-21</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.69.4.10.1"></a><h3>Element Information</h3> +<a name="id-1.2.69.8.8.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -145,7 +196,7 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="id-1.2.69.4.10.2"></a><h3>Element Pads</h3> +<a name="id-1.2.69.8.8.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -236,11 +287,95 @@ Documentation last reviewed on 2011-04-21 </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-ismlmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-ismlmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-ismlmux.other_details"></a><h2>Types and Values</h2> +<div class="refsect2"> +<a name="GstISMLMux-struct"></a><h3>GstISMLMux</h3> +<pre class="programlisting">typedef struct _GstISMLMux GstISMLMux;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-ismlmux.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstISMLMux--dts-method"></a><h3>The <code class="literal">“dts-methodâ€</code> property</h3> +<pre class="programlisting"> “dts-method†<span class="type">GstQTMuxDtsMethods</span></pre> +<p>(DEPRECATED) Method to determine DTS time.</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: reorder</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--faststart"></a><h3>The <code class="literal">“faststartâ€</code> property</h3> +<pre class="programlisting"> “faststart†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>If the file should be formatted for faststart (headers first).</p> +<p>Flags: Read / Write</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--faststart-file"></a><h3>The <code class="literal">“faststart-fileâ€</code> property</h3> +<pre class="programlisting"> “faststart-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically.</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--fragment-duration"></a><h3>The <code class="literal">“fragment-durationâ€</code> property</h3> +<pre class="programlisting"> “fragment-duration†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Fragment durations in ms (produce a fragmented file if > 0).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: 2000</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--moov-recovery-file"></a><h3>The <code class="literal">“moov-recovery-fileâ€</code> property</h3> +<pre class="programlisting"> “moov-recovery-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--movie-timescale"></a><h3>The <code class="literal">“movie-timescaleâ€</code> property</h3> +<pre class="programlisting"> “movie-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Timescale to use in the movie (units per second).</p> +<p>Flags: Read / Write / Construct</p> +<p>Allowed values: >= 1</p> +<p>Default value: 1000</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--presentation-time"></a><h3>The <code class="literal">“presentation-timeâ€</code> property</h3> +<pre class="programlisting"> “presentation-time†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Calculate and include presentation/composition time (in addition to decoding time).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--streamable"></a><h3>The <code class="literal">“streamableâ€</code> property</h3> +<pre class="programlisting"> “streamable†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written.</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstISMLMux--trak-timescale"></a><h3>The <code class="literal">“trak-timescaleâ€</code> property</h3> +<pre class="programlisting"> “trak-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Timescale to use for the tracks (units per second, 0 is automatic).</p> +<p>Flags: Read / Write / Construct</p> +<p>Default value: 0</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 cc9ebfdfa..b78bc836c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>jackaudiosink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: jackaudiosink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-jpegdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-jackaudiosink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-jackaudiosink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-jackaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-jackaudiosink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jackaudiosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jackaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jackaudiosink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-jpegdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-jackaudiosink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,33 +31,70 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-jackaudiosink.top_of_page"></a>jackaudiosink</span></h2> <p>jackaudiosink — Output audio to a JACK server</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-jackaudiosink.synopsis"></a><h2>Synopsis</h2> -<a name="GstJackAudioSink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct" title="struct GstJackAudioSink">GstJackAudioSink</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jackaudiosink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> - +----GstJackAudioSink -</pre> +<a name="gst-plugins-good-plugins-jackaudiosink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<span class="type">JackClient</span> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client" title="The “client†property">client</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstJackConnect</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect" title="The “connect†property">connect</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--server" title="The “server†property">server</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name" title="The “client-name†property">client-name</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstJackTransport</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport" title="The “transport†property">transport</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstJackAudioSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-jackaudiosink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct" title="struct GstJackAudioSink">GstJackAudioSink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jackaudiosink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client" title='The "client" property'>client</a>" <span class="type">JackClient</span>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect" title='The "connect" property'>connect</a>" <span class="type">GstJackConnect</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--server" title='The "server" property'>server</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-jackaudiosink.html#GstJackAudioSink--client-name" title='The "client-name" property'>client-name</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-jackaudiosink.html#GstJackAudioSink--transport" title='The "transport" property'>transport</a>" <span class="type">GstJackTransport</span> : Read / Write +<a name="gst-plugins-good-plugins-jackaudiosink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> + <span class="lineart">╰──</span> GstJackAudioSink </pre> </div> <div class="refsect1"> @@ -71,7 +102,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.71.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.71.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -97,7 +128,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.71.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.71.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -128,7 +159,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jackaudiosink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-jackaudiosink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-jackaudiosink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstJackAudioSink-struct"></a><h3>struct GstJackAudioSink</h3> <pre class="programlisting">struct GstJackAudioSink;</pre> @@ -139,41 +173,46 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-jackaudiosink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstJackAudioSink--client"></a><h3>The <code class="literal">"client"</code> property</h3> -<pre class="programlisting"> "client" <span class="type">JackClient</span>* : Read / Write</pre> +<a name="GstJackAudioSink--client"></a><h3>The <code class="literal">“clientâ€</code> property</h3> +<pre class="programlisting"> “client†<span class="type">JackClient</span> *</pre> <p>Handle for jack client.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSink--connect"></a><h3>The <code class="literal">"connect"</code> property</h3> -<pre class="programlisting"> "connect" <span class="type">GstJackConnect</span> : Read / Write</pre> +<a name="GstJackAudioSink--connect"></a><h3>The <code class="literal">“connectâ€</code> property</h3> +<pre class="programlisting"> “connect†<span class="type">GstJackConnect</span></pre> <p>Specify how the output ports will be connected.</p> +<p>Flags: Read / Write</p> <p>Default value: Automatically connect ports to physical ports</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSink--server"></a><h3>The <code class="literal">"server"</code> property</h3> -<pre class="programlisting"> "server" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstJackAudioSink--server"></a><h3>The <code class="literal">“serverâ€</code> property</h3> +<pre class="programlisting"> “server†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The Jack server to connect to (NULL = default).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSink--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3> -<pre class="programlisting"> "client-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstJackAudioSink--client-name"></a><h3>The <code class="literal">“client-nameâ€</code> property</h3> +<pre class="programlisting"> “client-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The client name of the Jack instance (NULL = default).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSink--transport"></a><h3>The <code class="literal">"transport"</code> property</h3> -<pre class="programlisting"> "transport" <span class="type">GstJackTransport</span> : Read / Write</pre> +<a name="GstJackAudioSink--transport"></a><h3>The <code class="literal">“transportâ€</code> property</h3> +<pre class="programlisting"> “transport†<span class="type">GstJackTransport</span></pre> <p>Jack transport behaviour of the client.</p> +<p>Flags: Read / Write</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a4df480f8..2a25c372f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>jackaudiosrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: jackaudiosrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-ismlmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-jackaudiosrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-jackaudiosrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-jackaudiosrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-jackaudiosrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jackaudiosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jackaudiosrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jackaudiosrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-ismlmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-jackaudiosrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,34 +31,71 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-jackaudiosrc.top_of_page"></a>jackaudiosrc</span></h2> <p>jackaudiosrc — Captures audio from a JACK server</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-jackaudiosrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstJackAudioSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct" title="struct GstJackAudioSrc">GstJackAudioSrc</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jackaudiosrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> - +----GstJackAudioSrc -</pre> +<a name="gst-plugins-good-plugins-jackaudiosrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<span class="type">JackClient</span> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client" title="The “client†property">client</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstJackConnect</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect" title="The “connect†property">connect</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server" title="The “server†property">server</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name" title="The “client-name†property">client-name</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstJackTransport</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport" title="The “transport†property">transport</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstJackAudioSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-jackaudiosrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct" title="struct GstJackAudioSrc">GstJackAudioSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jackaudiosrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client" title='The "client" property'>client</a>" <span class="type">JackClient</span>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect" title='The "connect" property'>connect</a>" <span class="type">GstJackConnect</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server" title='The "server" property'>server</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-jackaudiosrc.html#GstJackAudioSrc--client-name" title='The "client-name" property'>client-name</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-jackaudiosrc.html#GstJackAudioSrc--transport" title='The "transport" property'>transport</a>" <span class="type">GstJackTransport</span> : Read / Write +<a name="gst-plugins-good-plugins-jackaudiosrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> + <span class="lineart">╰──</span> GstJackAudioSrc </pre> </div> <div class="refsect1"> @@ -72,7 +103,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.70.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.70.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -98,7 +129,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.70.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.70.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -129,7 +160,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jackaudiosrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-jackaudiosrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-jackaudiosrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstJackAudioSrc-struct"></a><h3>struct GstJackAudioSrc</h3> <pre class="programlisting">struct GstJackAudioSrc;</pre> @@ -140,41 +174,46 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-jackaudiosrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstJackAudioSrc--client"></a><h3>The <code class="literal">"client"</code> property</h3> -<pre class="programlisting"> "client" <span class="type">JackClient</span>* : Read / Write</pre> +<a name="GstJackAudioSrc--client"></a><h3>The <code class="literal">“clientâ€</code> property</h3> +<pre class="programlisting"> “client†<span class="type">JackClient</span> *</pre> <p>Handle for jack client.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSrc--connect"></a><h3>The <code class="literal">"connect"</code> property</h3> -<pre class="programlisting"> "connect" <span class="type">GstJackConnect</span> : Read / Write</pre> +<a name="GstJackAudioSrc--connect"></a><h3>The <code class="literal">“connectâ€</code> property</h3> +<pre class="programlisting"> “connect†<span class="type">GstJackConnect</span></pre> <p>Specify how the input ports will be connected.</p> +<p>Flags: Read / Write</p> <p>Default value: Automatically connect ports to physical ports</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSrc--server"></a><h3>The <code class="literal">"server"</code> property</h3> -<pre class="programlisting"> "server" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstJackAudioSrc--server"></a><h3>The <code class="literal">“serverâ€</code> property</h3> +<pre class="programlisting"> “server†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The Jack server to connect to (NULL = default).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSrc--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3> -<pre class="programlisting"> "client-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstJackAudioSrc--client-name"></a><h3>The <code class="literal">“client-nameâ€</code> property</h3> +<pre class="programlisting"> “client-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The client name of the Jack instance (NULL = default).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstJackAudioSrc--transport"></a><h3>The <code class="literal">"transport"</code> property</h3> -<pre class="programlisting"> "transport" <span class="type">GstJackTransport</span> : Read / Write</pre> +<a name="GstJackAudioSrc--transport"></a><h3>The <code class="literal">“transportâ€</code> property</h3> +<pre class="programlisting"> “transport†<span class="type">GstJackTransport</span></pre> <p>Jack transport behaviour of the client.</p> +<p>Flags: Read / Write</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 9076ff3ba..f17f84973 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>jpegdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: jpegdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-jpegenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-jpegdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-jpegdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-jpegdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-jpegdec.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegdec.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-jpegenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-jpegdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,29 +31,51 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-jpegdec.top_of_page"></a>jpegdec</span></h2> <p>jpegdec — Decode images from JPEG format</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-jpegdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstJpegDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct" title="struct GstJpegDec">GstJpegDec</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jpegdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a> - +----GstJpegDec -</pre> +<a name="gst-plugins-good-plugins-jpegdec.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstIDCTMethod</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method" title="The “idct-method†property">idct-method</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors" title="The “max-errors†property">max-errors</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstJpegDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-jpegdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct" title="struct GstJpegDec">GstJpegDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jpegdec.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method" title='The "idct-method" property'>idct-method</a>" <span class="type">GstIDCTMethod</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors" title='The "max-errors" property'>max-errors</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-jpegdec.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a> + <span class="lineart">╰──</span> GstJpegDec </pre> </div> <div class="refsect1"> @@ -67,7 +83,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.72.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.72.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -93,7 +109,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.72.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.72.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -148,7 +164,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jpegdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-jpegdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-jpegdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstJpegDec-struct"></a><h3>struct GstJpegDec</h3> <pre class="programlisting">struct GstJpegDec;</pre> @@ -159,16 +178,18 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-jpegdec.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstJpegDec--idct-method"></a><h3>The <code class="literal">"idct-method"</code> property</h3> -<pre class="programlisting"> "idct-method" <span class="type">GstIDCTMethod</span> : Read / Write</pre> +<a name="GstJpegDec--idct-method"></a><h3>The <code class="literal">“idct-methodâ€</code> property</h3> +<pre class="programlisting"> “idct-method†<span class="type">GstIDCTMethod</span></pre> <p>The IDCT algorithm to use.</p> +<p>Flags: Read / Write</p> <p>Default value: Faster, less accurate integer method</p> </div> <hr> <div class="refsect2"> -<a name="GstJpegDec--max-errors"></a><h3>The <code class="literal">"max-errors"</code> property</h3> -<pre class="programlisting"> "max-errors" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Error out after receiving N consecutive decoding errors (-1 = never fail, 0 = automatic, 1 = fail on first error).</p> +<a name="GstJpegDec--max-errors"></a><h3>The <code class="literal">“max-errorsâ€</code> property</h3> +<pre class="programlisting"> “max-errors†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>(Deprecated) Error out after receiving N consecutive decoding errors (-1 = never fail, 0 = automatic, 1 = fail on first error).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> @@ -176,6 +197,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 548b884f4..7cde29e13 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html @@ -2,38 +2,30 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>jpegenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: jpegenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-jpegdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-level.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-jpegenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-jpegenc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-jpegenc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-jpegenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-jpegenc.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-jpegenc.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegenc.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-jpegenc.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-jpegdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-level.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-jpegenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -41,22 +33,66 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-jpegenc.top_of_page"></a>jpegenc</span></h2> <p>jpegenc — Encode images in JPEG format</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-jpegenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstJpegEnc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct" title="struct GstJpegEnc">GstJpegEnc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-jpegenc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality" title="The “quality†property">quality</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstIDCTMethod</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method" title="The “idct-method†property">idct-method</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-jpegenc.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded" title="The “frame-encoded†signal">frame-encoded</a></td> +<td class="signal_flags">Run Last</td> +</tr></tbody> +</table></div> +</div> +<a name="GstJpegEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-jpegenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct" title="struct GstJpegEnc">GstJpegEnc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-jpegenc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a> - +----GstJpegEnc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a> + <span class="lineart">╰──</span> GstJpegEnc </pre> </div> <div class="refsect1"> @@ -66,24 +102,11 @@ GstJpegEnc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jpegenc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality" title='The "quality" property'>quality</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--idct-method" title='The "idct-method" property'>idct-method</a>" <span class="type">GstIDCTMethod</span> : Read / Write -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-jpegenc.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded" title='The "frame-encoded" signal'>frame-encoded</a>" : <code class="literal">Run Last</code> -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-jpegenc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.73.8.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.73.9.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -109,7 +132,7 @@ GstJpegEnc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.73.8.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.73.9.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -164,7 +187,10 @@ GstJpegEnc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-jpegenc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-jpegenc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-jpegenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstJpegEnc-struct"></a><h3>struct GstJpegEnc</h3> <pre class="programlisting">struct GstJpegEnc;</pre> @@ -175,49 +201,59 @@ GstJpegEnc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-jpegenc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstJpegEnc--quality"></a><h3>The <code class="literal">"quality"</code> property</h3> -<pre class="programlisting"> "quality" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstJpegEnc--quality"></a><h3>The <code class="literal">“qualityâ€</code> property</h3> +<pre class="programlisting"> “quality†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Quality of encoding.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100]</p> <p>Default value: 85</p> </div> <hr> <div class="refsect2"> -<a name="GstJpegEnc--idct-method"></a><h3>The <code class="literal">"idct-method"</code> property</h3> -<pre class="programlisting"> "idct-method" <span class="type">GstIDCTMethod</span> : Read / Write</pre> +<a name="GstJpegEnc--idct-method"></a><h3>The <code class="literal">“idct-methodâ€</code> property</h3> +<pre class="programlisting"> “idct-method†<span class="type">GstIDCTMethod</span></pre> <p>The IDCT algorithm to use.</p> +<p>Flags: Read / Write</p> <p>Default value: Faster, less accurate integer method</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-jpegenc.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstJpegEnc-frame-encoded"></a><h3>The <code class="literal">"frame-encoded"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc"><span class="type">GstJpegEnc</span></a> *gstjpegenc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstJpegEnc-frame-encoded"></a><h3>The <code class="literal">“frame-encodedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-jpegenc.html#GstJpegEnc"><span class="type">GstJpegEnc</span></a> *gstjpegenc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.73.13.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstjpegenc</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstjpegenc</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 8377f1deb..55e89785d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-level.html +++ b/docs/plugins/html/gst-plugins-good-plugins-level.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>level</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: level</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-jpegenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-matroskamux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-level.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-level.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-level.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-level.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-level.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-level.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-level.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-jpegenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-matroskamux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-level"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,43 +31,75 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-level.top_of_page"></a>level</span></h2> <p>level — RMS/Peak/Decaying Peak Level messager for audio/raw</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-level.synopsis"></a><h2>Synopsis</h2> -<a name="GstLevel"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel-struct" title="struct GstLevel">GstLevel</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-level.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstLevel -</pre> +<a name="gst-plugins-good-plugins-level.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--interval" title="The “interval†property">interval</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--message" title="The “message†property">message</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff" title="The “peak-falloff†property">peak-falloff</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl" title="The “peak-ttl†property">peak-ttl</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title="The “post-messages†property">post-messages</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstLevel"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-level.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-level.html#GstLevel-struct" title="struct GstLevel">GstLevel</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-level.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--interval" title='The "interval" property'>interval</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--message" title='The "message" property'>message</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff" title='The "peak-falloff" property'>peak-falloff</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl" title='The "peak-ttl" property'>peak-ttl</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title='The "post-messages" property'>post-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-level.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstLevel </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-level.description"></a><h2>Description</h2> -<p> -Level analyses incoming audio buffers and, if the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--message" title='The "message" property'><span class="type">"message"</span></a> property -is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, generates an element message named +<p>Level analyses incoming audio buffers and, if the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--message" title="The “message†property"><span class="type">“messageâ€</span></a> property +is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, generates an element message named</p> <code class="classname">"level"</code>: -after each interval of time given by the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--interval" title='The "interval" property'><span class="type">"interval"</span></a> property. -The message's structure contains these fields: -</p> +<p>after each interval of time given by the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--interval" title="The “interval†property"><span class="type">“intervalâ€</span></a> property. +The message's structure contains these fields:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> @@ -110,12 +136,10 @@ The message's structure contains these fields: <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <code class="classname">"decay"</code>: the decaying peak power level in dB for each channel - the decaying peak level follows the peak level, but starts dropping - if no new peak is reached after the time given by - the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl" title='The "peak-ttl" property'>the time to live</a>. - When the decaying peak level drops, it does so at the decay rate - as specified by the - <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff" title='The "peak-falloff" property'>the peak falloff rate</a>. + The decaying peak level follows the peak level, but starts dropping if no + new peak is reached after the time given by the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl" title="The “peak-ttl†property"><span class="type">“peak-ttlâ€</span></a>. + When the decaying peak level drops, it does so at the decay rate as + specified by the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff" title="The “peak-falloff†property"><span class="type">“peak-falloffâ€</span></a>. </p></li> <li class="listitem"><p> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> @@ -123,12 +147,8 @@ The message's structure contains these fields: the Root Mean Square (or average power) level in dB for each channel </p></li> </ul></div> -<p> -</p> -<p> -</p> <div class="refsect2"> -<a name="id-1.2.74.6.3.1"></a><h3>Example application</h3> +<a name="id-1.2.74.7.6"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -419,12 +439,10 @@ The message's structure contains these fields: </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.74.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.74.7.7.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -450,7 +468,7 @@ The message's structure contains these fields: </div> <hr> <div class="refsect2"> -<a name="id-1.2.74.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.74.7.7.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -505,57 +523,61 @@ The message's structure contains these fields: </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-level.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-level.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-level.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstLevel-struct"></a><h3>struct GstLevel</h3> <pre class="programlisting">struct GstLevel;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-level.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstLevel--interval"></a><h3>The <code class="literal">"interval"</code> property</h3> -<pre class="programlisting"> "interval" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstLevel--interval"></a><h3>The <code class="literal">“intervalâ€</code> property</h3> +<pre class="programlisting"> “interval†<span class="type">guint64</span></pre> <p>Interval of time between message posts (in nanoseconds).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 100000000</p> </div> <hr> <div class="refsect2"> -<a name="GstLevel--message"></a><h3>The <code class="literal">"message"</code> property</h3> -<pre class="programlisting"> "message" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstLevel--message"></a><h3>The <code class="literal">“messageâ€</code> property</h3> +<pre class="programlisting"> “message†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Post a 'level' message for each passed interval (deprecated).</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstLevel--peak-falloff"></a><h3>The <code class="literal">"peak-falloff"</code> property</h3> -<pre class="programlisting"> "peak-falloff" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstLevel--peak-falloff"></a><h3>The <code class="literal">“peak-falloffâ€</code> property</h3> +<pre class="programlisting"> “peak-falloff†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Decay rate of decay peak after TTL (in dB/sec).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 10</p> </div> <hr> <div class="refsect2"> -<a name="GstLevel--peak-ttl"></a><h3>The <code class="literal">"peak-ttl"</code> property</h3> -<pre class="programlisting"> "peak-ttl" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstLevel--peak-ttl"></a><h3>The <code class="literal">“peak-ttlâ€</code> property</h3> +<pre class="programlisting"> “peak-ttl†<span class="type">guint64</span></pre> <p>Time To Live of decay peak before it falls back (in nanoseconds).</p> +<p>Flags: Read / Write</p> <p>Default value: 300000000</p> </div> <hr> <div class="refsect2"> -<a name="GstLevel--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3> -<pre class="programlisting"> "post-messages" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"> -<h3 class="title">Warning</h3> -<p><code class="literal">GstLevel:post-messages</code> is deprecated and should not be used in newly-written code. use the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title='The "post-messages" property'><span class="type">"post-messages"</span></a> property</p> +<a name="GstLevel--post-messages"></a><h3>The <code class="literal">“post-messagesâ€</code> property</h3> +<pre class="programlisting"> “post-messages†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Post messages on the bus with level information.</p> +<div class="warning"> +<p><code class="literal">GstLevel:post-messages</code> is deprecated and should not be used in newly-written code.</p> +<p>use the <a class="link" href="gst-plugins-good-plugins-level.html#GstLevel--post-messages" title="The “post-messages†property"><span class="type">“post-messagesâ€</span></a> property</p> </div> -<p> -Post messages on the bus with level information. -</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> <p class="since">Since 1.1.0</p> </div> @@ -563,6 +585,6 @@ Post messages on the bus with level information. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 819cff24d..3d9ccd896 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>matroskademux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: matroskademux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-matroskamux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-mj2mux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-matroskademux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-matroskademux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-matroskademux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-matroskademux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-matroskademux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-matroskademux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-matroskademux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-matroskamux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-mj2mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-matroskademux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,38 +31,50 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-matroskademux.top_of_page"></a>matroskademux</span></h2> <p>matroskademux — Demuxes Matroska/WebM streams into video/audio/subtitles</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-matroskademux.synopsis"></a><h2>Synopsis</h2> -<a name="GstMatroskaDemux"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct" title="GstMatroskaDemux">GstMatroskaDemux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-matroskademux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstMatroskaDemux -</pre> +<a name="gst-plugins-good-plugins-matroskademux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time" title="The “max-gap-time†property">max-gap-time</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstMatroskaDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-matroskademux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct" title="GstMatroskaDemux">GstMatroskaDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-matroskademux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time" title='The "max-gap-time" property'>max-gap-time</a>" <span class="type">guint64</span> : Read / Write +<a name="gst-plugins-good-plugins-matroskademux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstMatroskaDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-matroskademux.description"></a><h2>Description</h2> -<p> -matroskademux demuxes a Matroska file into the different contained streams. -</p> -<p> -</p> +<p>matroskademux demuxes a Matroska file into the different contained streams.</p> <div class="refsect2"> -<a name="id-1.2.76.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.76.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -81,12 +87,10 @@ matroskademux demuxes a Matroska file into the different contained streams. </div> This pipeline demuxes a Matroska file and outputs the contained Vorbis audio. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.76.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.76.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -112,7 +116,7 @@ matroskademux demuxes a Matroska file into the different contained streams. </div> <hr> <div class="refsect2"> -<a name="id-1.2.76.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.76.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -259,7 +263,10 @@ matroskademux demuxes a Matroska file into the different contained streams. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-matroskademux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-matroskademux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-matroskademux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMatroskaDemux-struct"></a><h3>GstMatroskaDemux</h3> <pre class="programlisting">typedef struct _GstMatroskaDemux GstMatroskaDemux;</pre> @@ -270,15 +277,16 @@ matroskademux demuxes a Matroska file into the different contained streams. <div class="refsect1"> <a name="gst-plugins-good-plugins-matroskademux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMatroskaDemux--max-gap-time"></a><h3>The <code class="literal">"max-gap-time"</code> property</h3> -<pre class="programlisting"> "max-gap-time" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstMatroskaDemux--max-gap-time"></a><h3>The <code class="literal">“max-gap-timeâ€</code> property</h3> +<pre class="programlisting"> “max-gap-time†<span class="type">guint64</span></pre> <p>The demuxer sends out segment events for skipping gaps longer than this (0 = disabled).</p> +<p>Flags: Read / Write</p> <p>Default value: 2000000000</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3b1bfc06c..22c011398 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>matroskamux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: matroskamux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-level.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-matroskademux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-matroskamux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-matroskamux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-matroskamux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-matroskamux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-matroskamux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-matroskamux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-matroskamux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-matroskamux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-matroskamux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-level.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-matroskademux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-matroskamux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,62 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-matroskamux.top_of_page"></a>matroskamux</span></h2> <p>matroskamux — Muxes video/audio/subtitle streams into a matroska stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-matroskamux.synopsis"></a><h2>Synopsis</h2> -<a name="GstMatroskaMux"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct" title="GstMatroskaMux">GstMatroskaMux</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-matroskamux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app" title="The “writing-app†property">writing-app</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version" title="The “version†property">version</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">gint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval" title="The “min-index-interval†property">min-index-interval</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable" title="The “streamable†property">streamable</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstMatroskaMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-matroskamux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct" title="GstMatroskaMux">GstMatroskaMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-matroskamux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstMatroskaMux - +----<a class="link" href="gst-plugins-good-plugins-webmmux.html#GstWebMMux">GstWebMMux</a> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstMatroskaMux + <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-webmmux.html#GstWebMMux">GstWebMMux</a> </pre> </div> <div class="refsect1"> @@ -64,23 +97,10 @@ GstMatroskaMux implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTocSetter.html#GstTocSetter">GstTocSetter</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-matroskamux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app" title='The "writing-app" property'>writing-app</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-matroskamux.html#GstMatroskaMux--version" title='The "version" property'>version</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval" title='The "min-index-interval" property'>min-index-interval</a>" <span class="type">gint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable" title='The "streamable" property'>streamable</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"> <a name="gst-plugins-good-plugins-matroskamux.description"></a><h2>Description</h2> -<p> -matroskamux muxes different input streams into a Matroska file. -</p> -<p> -</p> +<p>matroskamux muxes different input streams into a Matroska file.</p> <div class="refsect2"> -<a name="id-1.2.75.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.75.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -104,12 +124,10 @@ matroskamux muxes different input streams into a Matroska file. </div> This pipeline muxes a 440Hz sine wave encoded with the Vorbis codec into a Matroska file. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.75.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.75.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -135,7 +153,7 @@ matroskamux muxes different input streams into a Matroska file. </div> <hr> <div class="refsect2"> -<a name="id-1.2.75.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.75.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -184,6 +202,10 @@ matroskamux muxes different input streams into a Matroska file. </tr> <tr> <td><p><span class="term"></span></p></td> +<td> audio/x-opus</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> <td> audio/x-speex, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]</td> </tr> <tr> @@ -210,6 +232,14 @@ matroskamux muxes different input streams into a Matroska file. <td><p><span class="term"></span></p></td> <td> audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 64, 8192 ], channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/x-adpcm, layout=(string)g726, channels=(int)1, rate=(int)8000</td> +</tr> </tbody> </table></div> <div class="variablelist"><table border="0" class="variablelist"> @@ -288,6 +318,10 @@ matroskamux muxes different input streams into a Matroska file. </tr> <tr> <td><p><span class="term"></span></p></td> +<td> video/x-h265, stream-format=(string)hvc1, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> <td> video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td> </tr> <tr> @@ -328,7 +362,7 @@ matroskamux muxes different input streams into a Matroska file. </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string){ YUY2, I420, YV12, UYVY, AYUV }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td> +<td> video/x-raw, format=(string){ YUY2, I420, YV12, UYVY, AYUV, GRAY8, BGR, RGB }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> @@ -374,7 +408,10 @@ matroskamux muxes different input streams into a Matroska file. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-matroskamux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-matroskamux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-matroskamux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMatroskaMux-struct"></a><h3>GstMatroskaMux</h3> <pre class="programlisting">typedef struct _GstMatroskaMux GstMatroskaMux;</pre> @@ -385,38 +422,42 @@ matroskamux muxes different input streams into a Matroska file. <div class="refsect1"> <a name="gst-plugins-good-plugins-matroskamux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMatroskaMux--writing-app"></a><h3>The <code class="literal">"writing-app"</code> property</h3> -<pre class="programlisting"> "writing-app" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstMatroskaMux--writing-app"></a><h3>The <code class="literal">“writing-appâ€</code> property</h3> +<pre class="programlisting"> “writing-app†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The name the application that creates the matroska file.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMatroskaMux--version"></a><h3>The <code class="literal">"version"</code> property</h3> -<pre class="programlisting"> "version" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMatroskaMux--version"></a><h3>The <code class="literal">“versionâ€</code> property</h3> +<pre class="programlisting"> “version†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>This parameter determines what Matroska features can be used.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,2]</p> <p>Default value: 2</p> </div> <hr> <div class="refsect2"> -<a name="GstMatroskaMux--min-index-interval"></a><h3>The <code class="literal">"min-index-interval"</code> property</h3> -<pre class="programlisting"> "min-index-interval" <span class="type">gint64</span> : Read / Write</pre> +<a name="GstMatroskaMux--min-index-interval"></a><h3>The <code class="literal">“min-index-intervalâ€</code> property</h3> +<pre class="programlisting"> “min-index-interval†<span class="type">gint64</span></pre> <p>An index entry is created every so many nanoseconds.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMatroskaMux--streamable"></a><h3>The <code class="literal">"streamable"</code> property</h3> -<pre class="programlisting"> "streamable" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMatroskaMux--streamable"></a><h3>The <code class="literal">“streamableâ€</code> property</h3> +<pre class="programlisting"> “streamable†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 29a038b10..9c71af352 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>mj2mux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: mj2mux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-matroskademux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-monoscope.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-mj2mux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-mj2mux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-mj2mux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-mj2mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-mj2mux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mj2mux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mj2mux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mj2mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mj2mux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-matroskademux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-monoscope.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-mj2mux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,21 +32,87 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-mj2mux.top_of_page"></a>mj2mux</span></h2> <p>mj2mux — Muxer for Motion JPEG-2000 (.mj2) files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-mj2mux.synopsis"></a><h2>Synopsis</h2> -<a name="GstMJ2Mux"></a><pre class="synopsis"> <a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct" title="GstMJ2Mux">GstMJ2Mux</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mj2mux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstQTMuxDtsMethods</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method" title="The “dts-method†property">dts-method</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart" title="The “faststart†property">faststart</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart-file" title="The “faststart-file†property">faststart-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--fragment-duration" title="The “fragment-duration†property">fragment-duration</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--moov-recovery-file" title="The “moov-recovery-file†property">moov-recovery-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--movie-timescale" title="The “movie-timescale†property">movie-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--presentation-time" title="The “presentation-time†property">presentation-time</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable" title="The “streamable†property">streamable</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale" title="The “trak-timescale†property">trak-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstMJ2Mux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-mj2mux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct" title="GstMJ2Mux">GstMJ2Mux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mj2mux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstMJ2Mux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstMJ2Mux </pre> </div> <div class="refsect1"> @@ -63,30 +122,11 @@ GstMJ2Mux implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and GstTagXmpWriter.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-mj2mux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method" title='The "dts-method" property'>dts-method</a>" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart" title='The "faststart" property'>faststart</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart-file" title='The "faststart-file" property'>faststart-file</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--fragment-duration" title='The "fragment-duration" property'>fragment-duration</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--moov-recovery-file" title='The "moov-recovery-file" property'>moov-recovery-file</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--movie-timescale" title='The "movie-timescale" property'>movie-timescale</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--presentation-time" title='The "presentation-time" property'>presentation-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable" title='The "streamable" property'>streamable</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale" title='The "trak-timescale" property'>trak-timescale</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-mj2mux.description"></a><h2>Description</h2> -<p> -This element merges streams (audio and video) into MJ2 (.mj2) files. -</p> -<p> -The following background intends to explain why various similar muxers -are present in this plugin. -</p> -<p> -The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> +<p>This element merges streams (audio and video) into MJ2 (.mj2) files.</p> +<p>The following background intends to explain why various similar muxers +are present in this plugin.</p> +<p>The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> QuickTime file format specification</a> served as basis for the MP4 file format specification (mp4mux), and as such the QuickTime file structure is nearly identical to the so-called ISO Base Media file format defined in @@ -95,45 +135,23 @@ In turn, the latter ISO Base Media format was further specialized as a Motion JPEG-2000 file format in ISO 15444-3 (mj2mux) and in various 3GPP(2) specs (3gppmux). The fragmented file features defined (only) in ISO Base Media are used by -ISMV files making up (a.o.) Smooth Streaming (ismlmux). -</p> -<p> -A few properties (<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--movie-timescale" title='The "movie-timescale" property'>movie-timescale</a>, -<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale" title='The "trak-timescale" property'>trak-timescale</a>) allow adjusting -some technical parameters, which might be useful in (rare) cases to resolve -compatibility issues in some situations. -</p> -<p> -Some other properties influence the result more fundamentally. +ISMV files making up (a.o.) Smooth Streaming (ismlmux).</p> +<p>A few properties (<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--movie-timescale" title="The “movie-timescale†property"><span class="type">“movie-timescaleâ€</span></a>, <a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale" title="The “trak-timescale†property"><span class="type">“trak-timescaleâ€</span></a>) +allow adjusting some technical parameters, which might be useful in (rare) +cases to resolve compatibility issues in some situations.</p> +<p>Some other properties influence the result more fundamentally. A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, -somewhat contrary to this usually being called "the header". -However, a <a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart" title='The "faststart" property'>faststart</a> file will -(with some effort) arrange this to be located near start of the file, -which then allows it e.g. to be played while downloading. -Alternatively, rather than having one chunk of metadata at start (or end), -there can be some metadata at start and most of the other data can be spread -out into fragments of <a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--fragment-duration" title='The "fragment-duration" property'>fragment-duration</a>. -If such fragmented layout is intended for streaming purposes, then -<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable" title='The "streamable" property'>streamable</a> allows foregoing to add -index metadata (at the end of file). -</p> -<p> -<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method" title='The "dts-method" property'>dts-method</a> allows selecting a -method for managing input timestamps (stay tuned for 0.11 to have this -automagically settled). The default delta/duration method should handle nice -(aka perfect streams) just fine, but may experience problems otherwise -(e.g. input stream with re-ordered B-frames and/or with frame dropping). -The re-ordering approach re-assigns incoming timestamps in ascending order -to incoming buffers and offers an alternative in such cases. In cases where -that might fail, the remaining method can be tried, which is exact and -according to specs, but might experience playback on not so spec-wise players. -Note that this latter approach also requires one to enable -presentation-timestamp. -</p> -<p> -</p> +somewhat contrary to this usually being called "the header". However, a +<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart" title="The “faststart†property"><span class="type">“faststartâ€</span></a> file will (with some effort) arrange this to be located +near start of the file, which then allows it e.g. to be played while +downloading. Alternatively, rather than having one chunk of metadata at start +(or end), there can be some metadata at start and most of the other data can +be spread out into fragments of <a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--fragment-duration" title="The “fragment-duration†property"><span class="type">“fragment-durationâ€</span></a>. If such +fragmented layout is intended for streaming purposes, then +<a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable" title="The “streamable†property"><span class="type">“streamableâ€</span></a> allows foregoing to add index metadata (at the end of +file).</p> <div class="refsect2"> -<a name="id-1.2.77.7.8.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.77.8.7"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -148,15 +166,11 @@ presentation-timestamp. Records a video stream captured from a v4l2 device, encodes it into JPEG-2000 and muxes it into an mj2 file. </div> -<p> -</p> -<p> -Documentation last reviewed on 2011-04-21 -</p> +<p>Documentation last reviewed on 2011-04-21</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.77.7.10.1"></a><h3>Element Information</h3> +<a name="id-1.2.77.8.8.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -182,7 +196,7 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="id-1.2.77.7.10.2"></a><h3>Element Pads</h3> +<a name="id-1.2.77.8.8.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -269,7 +283,10 @@ Documentation last reviewed on 2011-04-21 </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-mj2mux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-mj2mux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mj2mux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMJ2Mux-struct"></a><h3>GstMJ2Mux</h3> <pre class="programlisting">typedef struct _GstMJ2Mux GstMJ2Mux;</pre> @@ -280,72 +297,81 @@ Documentation last reviewed on 2011-04-21 <div class="refsect1"> <a name="gst-plugins-good-plugins-mj2mux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMJ2Mux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3> -<pre class="programlisting"> "dts-method" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct</pre> +<a name="GstMJ2Mux--dts-method"></a><h3>The <code class="literal">“dts-methodâ€</code> property</h3> +<pre class="programlisting"> “dts-method†<span class="type">GstQTMuxDtsMethods</span></pre> <p>(DEPRECATED) Method to determine DTS time.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: reorder</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--faststart"></a><h3>The <code class="literal">"faststart"</code> property</h3> -<pre class="programlisting"> "faststart" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMJ2Mux--faststart"></a><h3>The <code class="literal">“faststartâ€</code> property</h3> +<pre class="programlisting"> “faststart†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If the file should be formatted for faststart (headers first).</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--faststart-file"></a><h3>The <code class="literal">"faststart-file"</code> property</h3> -<pre class="programlisting"> "faststart-file" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<a name="GstMJ2Mux--faststart-file"></a><h3>The <code class="literal">“faststart-fileâ€</code> property</h3> +<pre class="programlisting"> “faststart-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--fragment-duration"></a><h3>The <code class="literal">"fragment-duration"</code> property</h3> -<pre class="programlisting"> "fragment-duration" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstMJ2Mux--fragment-duration"></a><h3>The <code class="literal">“fragment-durationâ€</code> property</h3> +<pre class="programlisting"> “fragment-duration†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Fragment durations in ms (produce a fragmented file if > 0).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--moov-recovery-file"></a><h3>The <code class="literal">"moov-recovery-file"</code> property</h3> -<pre class="programlisting"> "moov-recovery-file" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<a name="GstMJ2Mux--moov-recovery-file"></a><h3>The <code class="literal">“moov-recovery-fileâ€</code> property</h3> +<pre class="programlisting"> “moov-recovery-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--movie-timescale"></a><h3>The <code class="literal">"movie-timescale"</code> property</h3> -<pre class="programlisting"> "movie-timescale" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstMJ2Mux--movie-timescale"></a><h3>The <code class="literal">“movie-timescaleâ€</code> property</h3> +<pre class="programlisting"> “movie-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Timescale to use in the movie (units per second).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= 1</p> <p>Default value: 1000</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--presentation-time"></a><h3>The <code class="literal">"presentation-time"</code> property</h3> -<pre class="programlisting"> "presentation-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstMJ2Mux--presentation-time"></a><h3>The <code class="literal">“presentation-timeâ€</code> property</h3> +<pre class="programlisting"> “presentation-time†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Calculate and include presentation/composition time (in addition to decoding time).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--streamable"></a><h3>The <code class="literal">"streamable"</code> property</h3> -<pre class="programlisting"> "streamable" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstMJ2Mux--streamable"></a><h3>The <code class="literal">“streamableâ€</code> property</h3> +<pre class="programlisting"> “streamable†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. (DEPRECATED, only valid for fragmented MP4).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstMJ2Mux--trak-timescale"></a><h3>The <code class="literal">"trak-timescale"</code> property</h3> -<pre class="programlisting"> "trak-timescale" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstMJ2Mux--trak-timescale"></a><h3>The <code class="literal">“trak-timescaleâ€</code> property</h3> +<pre class="programlisting"> “trak-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Timescale to use for the tracks (units per second, 0 is automatic).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 0</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0254c4180..93bcff5ab 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html +++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>monoscope</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: monoscope</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-mj2mux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-monoscope.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-monoscope.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-monoscope.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-monoscope.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-mj2mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-monoscope"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,23 +30,32 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-monoscope.top_of_page"></a>monoscope</span></h2> <p>monoscope — Displays a highly stabilised waveform of audio input</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-monoscope.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-monoscope.html#GstMonoscope" title="struct GstMonoscope">GstMonoscope</a>; +<div class="refsect1"> +<a name="gst-plugins-good-plugins-monoscope.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-monoscope.html#GstMonoscope" title="struct GstMonoscope">GstMonoscope</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-monoscope.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-monoscope.description"></a><h2>Description</h2> -<p> -Monoscope is an audio visualisation element. It creates a coloured -curve of the audio signal like on an oscilloscope. -</p> -<p> -</p> +<p>Monoscope is an audio visualisation element. It creates a coloured +curve of the audio signal like on an oscilloscope.</p> <div class="refsect2"> -<a name="id-1.2.78.4.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.78.5.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -62,12 +68,10 @@ curve of the audio signal like on an oscilloscope. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.78.4.4.1"></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"> @@ -93,7 +97,7 @@ curve of the audio signal like on an oscilloscope. </div> <hr> <div class="refsect2"> -<a name="id-1.2.78.4.4.2"></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"> @@ -148,7 +152,10 @@ curve of the audio signal like on an oscilloscope. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-monoscope.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-monoscope.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-monoscope.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMonoscope"></a><h3>struct GstMonoscope</h3> <pre class="programlisting">struct GstMonoscope { @@ -190,11 +197,11 @@ curve of the audio signal like on an oscilloscope. </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-monoscope.see-also"></a><h2>See Also</h2> -goom +<p>goom</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f8295ef21..62f375562 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>mp4mux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: mp4mux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-mulawdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-mp4mux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-mp4mux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-mp4mux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-mp4mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-mp4mux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mp4mux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mp4mux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mp4mux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mp4mux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-mulawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-mp4mux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,21 +32,87 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-mp4mux.top_of_page"></a>mp4mux</span></h2> <p>mp4mux — Muxer for ISO MPEG-4 (.mp4) files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-mp4mux.synopsis"></a><h2>Synopsis</h2> -<a name="GstMP4Mux"></a><pre class="synopsis">typedef <a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux">GstMP4Mux</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mp4mux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstQTMuxDtsMethods</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method" title="The “dts-method†property">dts-method</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart" title="The “faststart†property">faststart</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart-file" title="The “faststart-file†property">faststart-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--fragment-duration" title="The “fragment-duration†property">fragment-duration</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--moov-recovery-file" title="The “moov-recovery-file†property">moov-recovery-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--movie-timescale" title="The “movie-timescale†property">movie-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--presentation-time" title="The “presentation-time†property">presentation-time</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable" title="The “streamable†property">streamable</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale" title="The “trak-timescale†property">trak-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstMP4Mux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-mp4mux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword"> </td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux-struct" title="GstMP4Mux">GstMP4Mux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mp4mux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstMP4Mux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstMP4Mux </pre> </div> <div class="refsect1"> @@ -63,30 +122,11 @@ GstMP4Mux implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and GstTagXmpWriter.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-mp4mux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method" title='The "dts-method" property'>dts-method</a>" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart" title='The "faststart" property'>faststart</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart-file" title='The "faststart-file" property'>faststart-file</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--fragment-duration" title='The "fragment-duration" property'>fragment-duration</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--moov-recovery-file" title='The "moov-recovery-file" property'>moov-recovery-file</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--movie-timescale" title='The "movie-timescale" property'>movie-timescale</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--presentation-time" title='The "presentation-time" property'>presentation-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable" title='The "streamable" property'>streamable</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale" title='The "trak-timescale" property'>trak-timescale</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-mp4mux.description"></a><h2>Description</h2> -<p> -This element merges streams (audio and video) into ISO MPEG-4 (.mp4) files. -</p> -<p> -The following background intends to explain why various similar muxers -are present in this plugin. -</p> -<p> -The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> +<p>This element merges streams (audio and video) into ISO MPEG-4 (.mp4) files.</p> +<p>The following background intends to explain why various similar muxers +are present in this plugin.</p> +<p>The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> QuickTime file format specification</a> served as basis for the MP4 file format specification (mp4mux), and as such the QuickTime file structure is nearly identical to the so-called ISO Base Media file format defined in @@ -95,45 +135,23 @@ In turn, the latter ISO Base Media format was further specialized as a Motion JPEG-2000 file format in ISO 15444-3 (mj2mux) and in various 3GPP(2) specs (3gppmux). The fragmented file features defined (only) in ISO Base Media are used by -ISMV files making up (a.o.) Smooth Streaming (ismlmux). -</p> -<p> -A few properties (<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--movie-timescale" title='The "movie-timescale" property'>movie-timescale</a>, -<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale" title='The "trak-timescale" property'>trak-timescale</a>) allow adjusting -some technical parameters, which might be useful in (rare) cases to resolve -compatibility issues in some situations. -</p> -<p> -Some other properties influence the result more fundamentally. -A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, -somewhat contrary to this usually being called "the header". -However, a <a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart" title='The "faststart" property'>faststart</a> file will -(with some effort) arrange this to be located near start of the file, -which then allows it e.g. to be played while downloading. -Alternatively, rather than having one chunk of metadata at start (or end), -there can be some metadata at start and most of the other data can be spread -out into fragments of <a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--fragment-duration" title='The "fragment-duration" property'>fragment-duration</a>. +ISMV files making up (a.o.) Smooth Streaming (ismlmux).</p> +<p>A few properties (<span class="type">“movie-timescaleâ€</span>, <span class="type">“trak-timescaleâ€</span>) +allow adjusting some technical parameters, which might be useful in (rare) +cases to resolve compatibility issues in some situations.</p> +<p>Some other properties influence the result more fundamentally. +A typical mov/mp4 file's metadata (aka moov) is located at the end of the +file, somewhat contrary to this usually being called "the header". +However, a <span class="type">“faststartâ€</span> file will (with some effort) arrange this to +be located near start of the file, which then allows it e.g. to be played +while downloading. Alternatively, rather than having one chunk of metadata at +start (or end), there can be some metadata at start and most of the other +data can be spread out into fragments of <span class="type">“fragment-durationâ€</span>. If such fragmented layout is intended for streaming purposes, then -<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable" title='The "streamable" property'>streamable</a> allows foregoing to add -index metadata (at the end of file). -</p> -<p> -<a class="link" href="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method" title='The "dts-method" property'>dts-method</a> allows selecting a -method for managing input timestamps (stay tuned for 0.11 to have this -automagically settled). The default delta/duration method should handle nice -(aka perfect streams) just fine, but may experience problems otherwise -(e.g. input stream with re-ordered B-frames and/or with frame dropping). -The re-ordering approach re-assigns incoming timestamps in ascending order -to incoming buffers and offers an alternative in such cases. In cases where -that might fail, the remaining method can be tried, which is exact and -according to specs, but might experience playback on not so spec-wise players. -Note that this latter approach also requires one to enable -presentation-timestamp. -</p> -<p> -</p> +<span class="type">“streamableâ€</span> allows foregoing to add index metadata (at the end of +file).</p> <div class="refsect2"> -<a name="id-1.2.80.7.8.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.80.8.7"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -148,15 +166,10 @@ presentation-timestamp. Records a video stream captured from a v4l2 device, encodes it into H.264 and muxes it into an mp4 file. </div> -<p> -</p> -<p> -Documentation last reviewed on 2011-04-21 -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.80.7.10.1"></a><h3>Element Information</h3> +<a name="id-1.2.80.8.8.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -182,7 +195,7 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="id-1.2.80.7.10.2"></a><h3>Element Pads</h3> +<a name="id-1.2.80.8.8.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -223,6 +236,30 @@ Documentation last reviewed on 2011-04-21 <tbody> <tr> <td><p><span class="term">name</span></p></td> +<td>subtitle_%u</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>request</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>text/x-raw, format=(string)utf8</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> <td>video_%u</td> </tr> <tr> @@ -281,11 +318,13 @@ Documentation last reviewed on 2011-04-21 </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-mp4mux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-mp4mux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mp4mux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> -<a name="GstMP4Mux"></a><h3>GstMP4Mux</h3> -<pre class="programlisting">typedef struct _Gst3GPPMux GstMP4Mux; -</pre> +<a name="GstMP4Mux-struct"></a><h3>GstMP4Mux</h3> +<pre class="programlisting">typedef struct _GstMP4Mux GstMP4Mux;</pre> <p> </p> </div> @@ -293,72 +332,81 @@ Documentation last reviewed on 2011-04-21 <div class="refsect1"> <a name="gst-plugins-good-plugins-mp4mux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMP4Mux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3> -<pre class="programlisting"> "dts-method" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct</pre> +<a name="GstMP4Mux--dts-method"></a><h3>The <code class="literal">“dts-methodâ€</code> property</h3> +<pre class="programlisting"> “dts-method†<span class="type">GstQTMuxDtsMethods</span></pre> <p>(DEPRECATED) Method to determine DTS time.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: reorder</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--faststart"></a><h3>The <code class="literal">"faststart"</code> property</h3> -<pre class="programlisting"> "faststart" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMP4Mux--faststart"></a><h3>The <code class="literal">“faststartâ€</code> property</h3> +<pre class="programlisting"> “faststart†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If the file should be formatted for faststart (headers first).</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--faststart-file"></a><h3>The <code class="literal">"faststart-file"</code> property</h3> -<pre class="programlisting"> "faststart-file" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<a name="GstMP4Mux--faststart-file"></a><h3>The <code class="literal">“faststart-fileâ€</code> property</h3> +<pre class="programlisting"> “faststart-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--fragment-duration"></a><h3>The <code class="literal">"fragment-duration"</code> property</h3> -<pre class="programlisting"> "fragment-duration" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstMP4Mux--fragment-duration"></a><h3>The <code class="literal">“fragment-durationâ€</code> property</h3> +<pre class="programlisting"> “fragment-duration†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Fragment durations in ms (produce a fragmented file if > 0).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--moov-recovery-file"></a><h3>The <code class="literal">"moov-recovery-file"</code> property</h3> -<pre class="programlisting"> "moov-recovery-file" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<a name="GstMP4Mux--moov-recovery-file"></a><h3>The <code class="literal">“moov-recovery-fileâ€</code> property</h3> +<pre class="programlisting"> “moov-recovery-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--movie-timescale"></a><h3>The <code class="literal">"movie-timescale"</code> property</h3> -<pre class="programlisting"> "movie-timescale" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstMP4Mux--movie-timescale"></a><h3>The <code class="literal">“movie-timescaleâ€</code> property</h3> +<pre class="programlisting"> “movie-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Timescale to use in the movie (units per second).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= 1</p> <p>Default value: 1000</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--presentation-time"></a><h3>The <code class="literal">"presentation-time"</code> property</h3> -<pre class="programlisting"> "presentation-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstMP4Mux--presentation-time"></a><h3>The <code class="literal">“presentation-timeâ€</code> property</h3> +<pre class="programlisting"> “presentation-time†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Calculate and include presentation/composition time (in addition to decoding time).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--streamable"></a><h3>The <code class="literal">"streamable"</code> property</h3> -<pre class="programlisting"> "streamable" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstMP4Mux--streamable"></a><h3>The <code class="literal">“streamableâ€</code> property</h3> +<pre class="programlisting"> “streamable†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. (DEPRECATED, only valid for fragmented MP4).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstMP4Mux--trak-timescale"></a><h3>The <code class="literal">"trak-timescale"</code> property</h3> -<pre class="programlisting"> "trak-timescale" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstMP4Mux--trak-timescale"></a><h3>The <code class="literal">“trak-timescaleâ€</code> property</h3> +<pre class="programlisting"> “trak-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Timescale to use for the tracks (units per second, 0 is automatic).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 0</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 5a830f3d3..671f40f8d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>mpegaudioparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: mpegaudioparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-monoscope.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-mp4mux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-mpegaudioparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-mpegaudioparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-mpegaudioparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mpegaudioparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mpegaudioparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-monoscope.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-mp4mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-mpegaudioparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,33 +30,36 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-mpegaudioparse.top_of_page"></a>mpegaudioparse</span></h2> <p>mpegaudioparse — MPEG audio parser</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-mpegaudioparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstMpegAudioParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct" title="struct GstMpegAudioParse">GstMpegAudioParse</a>; -</pre> +<a name="GstMpegAudioParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-mpegaudioparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct" title="struct GstMpegAudioParse">GstMpegAudioParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mpegaudioparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstMpegAudioParse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstMpegAudioParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mpegaudioparse.description"></a><h2>Description</h2> -<p> -Parses and frames mpeg1 audio streams. Provides seeking. -</p> -<p> -</p> +<p>Parses and frames mpeg1 audio streams. Provides seeking.</p> <div class="refsect2"> -<a name="id-1.2.79.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.79.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -74,12 +72,10 @@ Parses and frames mpeg1 audio streams. Provides seeking. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.79.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.79.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -105,7 +101,7 @@ Parses and frames mpeg1 audio streams. Provides seeking. </div> <hr> <div class="refsect2"> -<a name="id-1.2.79.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.79.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -160,22 +156,23 @@ Parses and frames mpeg1 audio streams. Provides seeking. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-mpegaudioparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-mpegaudioparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mpegaudioparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMpegAudioParse-struct"></a><h3>struct GstMpegAudioParse</h3> <pre class="programlisting">struct GstMpegAudioParse;</pre> -<p> -The opaque GstMpegAudioParse object -</p> +<p>The opaque GstMpegAudioParse object</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mpegaudioparse.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span> +<p><a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e644260ad..3a992120a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>mulawdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: mulawdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-mp4mux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-mulawenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-mulawdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-mulawdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-mulawdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mulawdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mulawdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-mp4mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-mulawenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-mulawdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,33 +30,38 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-mulawdec.top_of_page"></a>mulawdec</span></h2> <p>mulawdec — Convert 8bit mu law to 16bit PCM</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-mulawdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstMuLawDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct" title="struct GstMuLawDec">GstMuLawDec</a>; -</pre> +<a name="GstMuLawDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-mulawdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct" title="struct GstMuLawDec">GstMuLawDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mulawdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> - +----GstMuLawDec +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> + <span class="lineart">╰──</span> GstMuLawDec </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mulawdec.description"></a><h2>Description</h2> -<p> -This element decodes mulaw audio. Mulaw coding is also known as G.711. -</p> +<p>This element decodes mulaw audio. Mulaw coding is also known as G.711.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.81.5.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.81.6.2.1.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="id-1.2.81.5.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.81.6.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -142,7 +142,10 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-mulawdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-mulawdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mulawdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMuLawDec-struct"></a><h3>struct GstMuLawDec</h3> <pre class="programlisting">struct GstMuLawDec;</pre> @@ -153,6 +156,6 @@ This element decodes mulaw audio. Mulaw coding is also known as G.711. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 055b6562b..f1f779234 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>mulawenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: mulawenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-mulawdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-multifilesink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-mulawenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-mulawenc.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mulawenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-mulawenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-mulawdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-multifilesink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-mulawenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,23 +30,38 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-mulawenc.top_of_page"></a>mulawenc</span></h2> <p>mulawenc — Convert 16bit PCM to 8bit mu law</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-mulawenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstMuLawDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct" title="struct GstMuLawDec">GstMuLawDec</a>; -struct <a class="link" href="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc" title="struct GstMuLawEnc">GstMuLawEnc</a>; +<a name="GstMuLawDec"></a><a name="GstMuLawEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-mulawenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc-struct" title="struct GstMuLawEnc">GstMuLawEnc</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mulawenc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a> + <span class="lineart">╰──</span> GstMuLawEnc </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-mulawenc.description"></a><h2>Description</h2> -<p> -This element encode mulaw audio. Mulaw coding is also known as G.711. -</p> +<p>This element encode mulaw audio. Mulaw coding is also known as G.711.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.82.4.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.82.7.2.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -75,7 +87,7 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. </div> <hr> <div class="refsect2"> -<a name="id-1.2.82.4.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.82.7.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -130,23 +142,13 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-mulawenc.details"></a><h2>Details</h2> -<div class="refsect2"> -<a name="GstMuLawDec-struct"></a><h3>struct GstMuLawDec</h3> -<pre class="programlisting">struct GstMuLawDec;</pre> -<p> -</p> +<a name="gst-plugins-good-plugins-mulawenc.functions_details"></a><h2>Functions</h2> </div> -<hr> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-mulawenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> -<a name="GstMuLawEnc"></a><h3>struct GstMuLawEnc</h3> -<pre class="programlisting">struct GstMuLawEnc { - GstAudioEncoder element; - - gint channels; - gint rate; -}; -</pre> +<a name="GstMuLawEnc-struct"></a><h3>struct GstMuLawEnc</h3> +<pre class="programlisting">struct GstMuLawEnc;</pre> <p> </p> </div> @@ -154,6 +156,6 @@ This element encode mulaw audio. Mulaw coding is also known as G.711. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0281704b7..aead82c2a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>multifilesink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: multifilesink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-mulawenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-multifilesrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-multifilesink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-multifilesink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-multifilesink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-multifilesink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multifilesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multifilesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multifilesink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-mulawenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-multifilesrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-multifilesink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,54 +31,90 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-multifilesink.top_of_page"></a>multifilesink</span></h2> <p>multifilesink — Write buffers to a sequentially named set of files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-multifilesink.synopsis"></a><h2>Synopsis</h2> -<a name="GstMultiFileSink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct" title="struct GstMultiFileSink">GstMultiFileSink</a>; -enum <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext" title="enum GstMultiFileSinkNext">GstMultiFileSinkNext</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multifilesink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----GstMultiFileSink -</pre> +<a name="gst-plugins-good-plugins-multifilesink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location" title="The “location†property">location</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--index" title="The “index†property">index</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext" title="enum GstMultiFileSinkNext"><span class="type">GstMultiFileSinkNext</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--next-file" title="The “next-file†property">next-file</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages" title="The “post-messages†property">post-messages</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-files" title="The “max-files†property">max-files</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-file-size" title="The “max-file-size†property">max-file-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstMultiFileSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-multifilesink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody> +<tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct" title="struct GstMultiFileSink">GstMultiFileSink</a></td> +</tr> +<tr> +<td class="datatype_keyword">enum</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext" title="enum GstMultiFileSinkNext">GstMultiFileSinkNext</a></td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multifilesink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location" title='The "location" property'>location</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-multifilesink.html#GstMultiFileSink--index" title='The "index" property'>index</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--next-file" title='The "next-file" property'>next-file</a>" <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext" title="enum GstMultiFileSinkNext"><span class="type">GstMultiFileSinkNext</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages" title='The "post-messages" property'>post-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-files" title='The "max-files" property'>max-files</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-file-size" title='The "max-file-size" property'>max-file-size</a>" <span class="type">guint64</span> : Read / Write +<a name="gst-plugins-good-plugins-multifilesink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> GstMultiFileSink </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multifilesink.description"></a><h2>Description</h2> -<p> -Write incoming data to a series of sequentially-named files. -</p> -<p> -The filename property should contain a string with a %d placeholder that will -be substituted with the index for each filename. -</p> -<p> -If the <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages" title='The "post-messages" property'><span class="type">"post-messages"</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, it sends an application -message named +<p>Write incoming data to a series of sequentially-named files.</p> +<p>The filename property should contain a string with a %d placeholder that will +be substituted with the index for each filename.</p> +<p>If the <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--post-messages" title="The “post-messages†property"><span class="type">“post-messagesâ€</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, it sends an application +message named</p> <code class="classname">"GstMultiFileSink"</code> after writing each -buffer. -</p> -<p> -The message's structure contains these fields: -</p> +<p>buffer.</p> +<p>The message's structure contains these fields:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * @@ -127,12 +157,8 @@ The message's structure contains these fields: the offset-end of the buffer that triggered the message. </p></li> </ul></div> -<p> -</p> -<p> -</p> <div class="refsect2"> -<a name="id-1.2.83.6.6.1"></a><h3>Example launch line</h3> +<a name="id-1.2.83.7.9"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -147,15 +173,10 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span </div> </div> -<p> -</p> -<p> -Last reviewed on 2009-09-11 (0.10.17) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.83.6.8.1"></a><h3>Element Information</h3> +<a name="id-1.2.83.7.10.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -181,7 +202,7 @@ Last reviewed on 2009-09-11 (0.10.17) </div> <hr> <div class="refsect2"> -<a name="id-1.2.83.6.8.2"></a><h3>Element Pads</h3> +<a name="id-1.2.83.7.10.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -212,7 +233,10 @@ Last reviewed on 2009-09-11 (0.10.17) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multifilesink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-multifilesink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-multifilesink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMultiFileSink-struct"></a><h3>struct GstMultiFileSink</h3> <pre class="programlisting">struct GstMultiFileSink;</pre> @@ -222,120 +246,118 @@ Last reviewed on 2009-09-11 (0.10.17) <hr> <div class="refsect2"> <a name="GstMultiFileSinkNext"></a><h3>enum GstMultiFileSinkNext</h3> -<pre class="programlisting">typedef enum { - GST_MULTI_FILE_SINK_NEXT_BUFFER, - GST_MULTI_FILE_SINK_NEXT_DISCONT, - GST_MULTI_FILE_SINK_NEXT_KEY_FRAME, - GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT, - GST_MULTI_FILE_SINK_NEXT_MAX_SIZE -} GstMultiFileSinkNext; -</pre> -<p> -File splitting modes. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<p>File splitting modes.</p> +<div class="refsect3"> +<a name="id-1.2.83.9.3.4"></a><h4>Members</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="300px" class="enum_members_name"> +<col class="enum_members_description"> +<col width="200px" class="enum_members_annotations"> </colgroup> <tbody> <tr> -<td><p><a name="GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS"></a><span class="term"><code class="literal">GST_MULTI_FILE_SINK_NEXT_BUFFER</code></span></p></td> -<td>New file for each buffer +<td class="enum_member_name"><p><a name="GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS"></a>GST_MULTI_FILE_SINK_NEXT_BUFFER</p></td> +<td class="enum_member_description"> +<p>New file for each buffer</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-MULTI-FILE-SINK-NEXT-DISCONT:CAPS"></a><span class="term"><code class="literal">GST_MULTI_FILE_SINK_NEXT_DISCONT</code></span></p></td> -<td>New file after each discontinuity +<td class="enum_member_name"><p><a name="GST-MULTI-FILE-SINK-NEXT-DISCONT:CAPS"></a>GST_MULTI_FILE_SINK_NEXT_DISCONT</p></td> +<td class="enum_member_description"> +<p>New file after each discontinuity</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-MULTI-FILE-SINK-NEXT-KEY-FRAME:CAPS"></a><span class="term"><code class="literal">GST_MULTI_FILE_SINK_NEXT_KEY_FRAME</code></span></p></td> -<td>New file at each key frame - (Useful for MPEG-TS segmenting) +<td class="enum_member_name"><p><a name="GST-MULTI-FILE-SINK-NEXT-KEY-FRAME:CAPS"></a>GST_MULTI_FILE_SINK_NEXT_KEY_FRAME</p></td> +<td class="enum_member_description"> +<p>New file at each key frame + (Useful for MPEG-TS segmenting)</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-MULTI-FILE-SINK-NEXT-KEY-UNIT-EVENT:CAPS"></a><span class="term"><code class="literal">GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT</code></span></p></td> -<td>New file after a force key unit - event (Since: 0.10.31) +<td class="enum_member_name"><p><a name="GST-MULTI-FILE-SINK-NEXT-KEY-UNIT-EVENT:CAPS"></a>GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT</p></td> +<td class="enum_member_description"> +<p>New file after a force key unit + event</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-MULTI-FILE-SINK-NEXT-MAX-SIZE:CAPS"></a><span class="term"><code class="literal">GST_MULTI_FILE_SINK_NEXT_MAX_SIZE</code></span></p></td> -<td>New file when the configured maximum file - size would be exceeded with the next buffer or buffer list (Since: 0.10.31) +<td class="enum_member_name"><p><a name="GST-MULTI-FILE-SINK-NEXT-MAX-SIZE:CAPS"></a>GST_MULTI_FILE_SINK_NEXT_MAX_SIZE</p></td> +<td class="enum_member_description"> +<p>New file when the configured maximum file + size would be exceeded with the next buffer or buffer list</p> </td> +<td class="enum_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> +</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multifilesink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMultiFileSink--location"></a><h3>The <code class="literal">"location"</code> property</h3> -<pre class="programlisting"> "location" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstMultiFileSink--location"></a><h3>The <code class="literal">“locationâ€</code> property</h3> +<pre class="programlisting"> “location†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Location of the file to write.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSink--index"></a><h3>The <code class="literal">"index"</code> property</h3> -<pre class="programlisting"> "index" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiFileSink--index"></a><h3>The <code class="literal">“indexâ€</code> property</h3> +<pre class="programlisting"> “index†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Index to use with location property to create file names. The index is incremented by one for each buffer written.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSink--next-file"></a><h3>The <code class="literal">"next-file"</code> property</h3> -<pre class="programlisting"> "next-file" <a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext" title="enum GstMultiFileSinkNext"><span class="type">GstMultiFileSinkNext</span></a> : Read / Write</pre> -<p> -When to start a new file. -</p> +<a name="GstMultiFileSink--next-file"></a><h3>The <code class="literal">“next-fileâ€</code> property</h3> +<pre class="programlisting"> “next-file†<a class="link" href="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext" title="enum GstMultiFileSinkNext"><span class="type">GstMultiFileSinkNext</span></a></pre> +<p>When to start a new file.</p> +<p>Flags: Read / Write</p> <p>Default value: New file for each buffer</p> -<p class="since">Since 0.10.17</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSink--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3> -<pre class="programlisting"> "post-messages" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Post a message on the GstBus for each file. -</p> +<a name="GstMultiFileSink--post-messages"></a><h3>The <code class="literal">“post-messagesâ€</code> property</h3> +<pre class="programlisting"> “post-messages†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Post a message on the GstBus for each file.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> -<p class="since">Since 0.10.17</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSink--max-files"></a><h3>The <code class="literal">"max-files"</code> property</h3> -<pre class="programlisting"> "max-files" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> -<p> -Maximum number of files to keep on disk. Once the maximum is reached, old -files start to be deleted to make room for new ones. -</p> +<a name="GstMultiFileSink--max-files"></a><h3>The <code class="literal">“max-filesâ€</code> property</h3> +<pre class="programlisting"> “max-files†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Maximum number of files to keep on disk. Once the maximum is reached, old +files start to be deleted to make room for new ones.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> -<p class="since">Since 0.10.31</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSink--max-file-size"></a><h3>The <code class="literal">"max-file-size"</code> property</h3> -<pre class="programlisting"> "max-file-size" <span class="type">guint64</span> : Read / Write</pre> -<p> -Maximum file size before starting a new file in max-size mode. -</p> +<a name="GstMultiFileSink--max-file-size"></a><h3>The <code class="literal">“max-file-sizeâ€</code> property</h3> +<pre class="programlisting"> “max-file-size†<span class="type">guint64</span></pre> +<p>Maximum file size before starting a new file in max-size mode.</p> +<p>Flags: Read / Write</p> <p>Default value: 2147483648</p> -<p class="since">Since 0.10.31</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multifilesink.see-also"></a><h2>See Also</h2> -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a> +<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 8f9926ef6..ed8111617 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>multifilesrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: multifilesrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-multifilesink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-multipartdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-multifilesrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-multifilesrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-multifilesrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-multifilesrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multifilesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multifilesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multifilesrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-multifilesink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-multipartdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-multifilesrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,52 +31,86 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-multifilesrc.top_of_page"></a>multifilesrc</span></h2> <p>multifilesrc — Read a sequentially named set of files into buffers</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-multifilesrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstMultiFileSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc-struct" title="struct GstMultiFileSrc">GstMultiFileSrc</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multifilesrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----GstMultiFileSrc -</pre> +<a name="gst-plugins-good-plugins-multifilesrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps" title="The “caps†property">caps</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--index" title="The “index†property">index</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--location" title="The “location†property">location</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--loop" title="The “loop†property">loop</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--start-index" title="The “start-index†property">start-index</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index" title="The “stop-index†property">stop-index</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstMultiFileSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-multifilesrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc-struct" title="struct GstMultiFileSrc">GstMultiFileSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multifilesrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps" title='The "caps" property'>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-multifilesrc.html#GstMultiFileSrc--index" title='The "index" property'>index</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--location" title='The "location" property'>location</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-multifilesrc.html#GstMultiFileSrc--loop" title='The "loop" property'>loop</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--start-index" title='The "start-index" property'>start-index</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index" title='The "stop-index" property'>stop-index</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-multifilesrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> GstMultiFileSrc </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multifilesrc.description"></a><h2>Description</h2> -<p> -Reads buffers from sequentially named files. If used together with an image -decoder, one needs to use the <a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps" title='The "caps" property'><span class="type">"caps"</span></a> property or a capsfilter +<p>Reads buffers from sequentially named files. If used together with an image +decoder, one needs to use the <a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps" title="The “caps†property"><span class="type">“capsâ€</span></a> property or a capsfilter to force to caps containing a framerate. Otherwise image decoders send EOS after the first picture. We also need a videorate element to set timestamps -on all buffers after the first one in accordance with the framerate. -</p> -<p> -File names are created by replacing "%d" with the index using <code class="function">printf()</code>. -</p> -<p> -</p> +on all buffers after the first one in accordance with the framerate.</p> +<p>File names are created by replacing "%d" with the index using <code class="function">printf()</code>.</p> <div class="refsect2"> -<a name="id-1.2.84.6.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.84.7.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -100,12 +128,10 @@ File names are created by replacing "%d" with the index using <code class="funct This pipeline creates a video file "images.ogg" by joining multiple PNG files named img.0000.png, img.0001.png, etc. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.84.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.84.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -131,7 +157,7 @@ files named img.0000.png, img.0001.png, etc. </div> <hr> <div class="refsect2"> -<a name="id-1.2.84.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.84.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -162,7 +188,10 @@ files named img.0000.png, img.0001.png, etc. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multifilesrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-multifilesrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-multifilesrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMultiFileSrc-struct"></a><h3>struct GstMultiFileSrc</h3> <pre class="programlisting">struct GstMultiFileSrc;</pre> @@ -173,56 +202,62 @@ files named img.0000.png, img.0001.png, etc. <div class="refsect1"> <a name="gst-plugins-good-plugins-multifilesrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMultiFileSrc--caps"></a><h3>The <code class="literal">"caps"</code> property</h3> -<pre class="programlisting"> "caps" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write</pre> +<a name="GstMultiFileSrc--caps"></a><h3>The <code class="literal">“capsâ€</code> property</h3> +<pre class="programlisting"> “caps†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre> <p>Caps describing the format of the data.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSrc--index"></a><h3>The <code class="literal">"index"</code> property</h3> -<pre class="programlisting"> "index" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiFileSrc--index"></a><h3>The <code class="literal">“indexâ€</code> property</h3> +<pre class="programlisting"> “index†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Index to use with location property to create file names. The index is incremented by one for each buffer read.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSrc--location"></a><h3>The <code class="literal">"location"</code> property</h3> -<pre class="programlisting"> "location" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstMultiFileSrc--location"></a><h3>The <code class="literal">“locationâ€</code> property</h3> +<pre class="programlisting"> “location†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Pattern to create file names of input files. File names are created by calling sprintf() with the pattern and the current index.</p> +<p>Flags: Read / Write</p> <p>Default value: "%05d"</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSrc--loop"></a><h3>The <code class="literal">"loop"</code> property</h3> -<pre class="programlisting"> "loop" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultiFileSrc--loop"></a><h3>The <code class="literal">“loopâ€</code> property</h3> +<pre class="programlisting"> “loop†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether to repeat from the beginning when all files have been read.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSrc--start-index"></a><h3>The <code class="literal">"start-index"</code> property</h3> -<pre class="programlisting"> "start-index" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiFileSrc--start-index"></a><h3>The <code class="literal">“start-indexâ€</code> property</h3> +<pre class="programlisting"> “start-index†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Start value of index. The initial value of index can be set either by setting index or start-index. When the end of the loop is reached, the index will be set to the value start-index.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiFileSrc--stop-index"></a><h3>The <code class="literal">"stop-index"</code> property</h3> -<pre class="programlisting"> "stop-index" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiFileSrc--stop-index"></a><h3>The <code class="literal">“stop-indexâ€</code> property</h3> +<pre class="programlisting"> “stop-index†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Stop value of index. The special value -1 means no stop.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multifilesrc.see-also"></a><h2>See Also</h2> -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a> +<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f874cdd4b..a3c1ee227 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>multipartdemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: multipartdemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-multifilesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-multipartmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-multipartdemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-multipartdemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-multipartdemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-multipartdemux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multipartdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multipartdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multipartdemux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-multifilesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-multipartmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-multipartdemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,53 +31,72 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-multipartdemux.top_of_page"></a>multipartdemux</span></h2> <p>multipartdemux — demux multipart streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-multipartdemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstMultipartDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux-struct" title="struct GstMultipartDemux">GstMultipartDemux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multipartdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstMultipartDemux -</pre> +<a name="gst-plugins-good-plugins-multipartdemux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan" title="The “autoscan†property">autoscan</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary" title="The “boundary†property">boundary</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream" title="The “single-stream†property">single-stream</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstMultipartDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-multipartdemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux-struct" title="struct GstMultipartDemux">GstMultipartDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multipartdemux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan" title='The "autoscan" property'>autoscan</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary" title='The "boundary" property'>boundary</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream" title='The "single-stream" property'>single-stream</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-multipartdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstMultipartDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multipartdemux.description"></a><h2>Description</h2> -<p> -MultipartDemux uses the Content-type field of incoming buffers to demux and +<p>MultipartDemux uses the Content-type field of incoming buffers to demux and push data to dynamic source pads. Most of the time multipart streams are sequential JPEG frames generated from a live source such as a network source -or a camera. -</p> -<p> -The output buffers of the multipartdemux typically have no timestamps and are +or a camera.</p> +<p>The output buffers of the multipartdemux typically have no timestamps and are usually played as fast as possible (at the rate that the source provides the -data). -</p> -<p> -the content in multipart files is separated with a boundary string that can -be configured specifically with the <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary" title='The "boundary" property'><span class="type">"boundary"</span></a> property -otherwise it will be autodetected. -</p> -<p> -</p> +data).</p> +<p>the content in multipart files is separated with a boundary string that can +be configured specifically with the <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary" title="The “boundary†property"><span class="type">“boundaryâ€</span></a> property +otherwise it will be autodetected.</p> <div class="refsect2"> -<a name="id-1.2.85.6.5.1"></a><h3>Sample pipelines</h3> +<a name="id-1.2.85.7.5"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -97,12 +110,10 @@ otherwise it will be autodetected. a simple pipeline to demux a multipart file muxed with <a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux"><span class="type">GstMultipartMux</span></a> containing JPEG frames. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.85.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.85.7.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -128,7 +139,7 @@ containing JPEG frames. </div> <hr> <div class="refsect2"> -<a name="id-1.2.85.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.85.7.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -183,45 +194,51 @@ containing JPEG frames. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multipartdemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-multipartdemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-multipartdemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMultipartDemux-struct"></a><h3>struct GstMultipartDemux</h3> <pre class="programlisting">struct GstMultipartDemux;</pre> -<p> -The opaque <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux"><span class="type">GstMultipartDemux</span></a> structure. -</p> +<p>The opaque <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux"><span class="type">GstMultipartDemux</span></a> structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multipartdemux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMultipartDemux--autoscan"></a><h3>The <code class="literal">"autoscan"</code> property</h3> -<pre class="programlisting"> "autoscan" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultipartDemux--autoscan"></a><h3>The <code class="literal">“autoscanâ€</code> property</h3> +<pre class="programlisting"> “autoscan†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Try to autofind the prefix (deprecated unused, see boundary).</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultipartDemux--boundary"></a><h3>The <code class="literal">"boundary"</code> property</h3> -<pre class="programlisting"> "boundary" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<a name="GstMultipartDemux--boundary"></a><h3>The <code class="literal">“boundaryâ€</code> property</h3> +<pre class="programlisting"> “boundary†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The boundary string separating data, automatic if NULL.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMultipartDemux--single-stream"></a><h3>The <code class="literal">"single-stream"</code> property</h3> -<pre class="programlisting"> "single-stream" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Assume that there is only one stream whose content-type will not change and emit no-more-pads as soon as the first boundary content is parsed, decoded, and pads are linked.</p> +<a name="GstMultipartDemux--single-stream"></a><h3>The <code class="literal">“single-streamâ€</code> property</h3> +<pre class="programlisting"> “single-stream†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Assume that there is only one stream whose content-type will +not change and emit no-more-pads as soon as the first boundary +content is parsed, decoded, and pads are linked.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multipartdemux.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux"><span class="type">GstMultipartMux</span></a> +<p><a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux"><span class="type">GstMultipartMux</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 bb4326333..88dba8756 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>multipartmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: multipartmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-multipartdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-multiudpsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-multipartmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-multipartmux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-multipartmux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-multipartmux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multipartmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multipartmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multipartmux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-multipartdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-multiudpsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-multipartmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,40 +31,53 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-multipartmux.top_of_page"></a>multipartmux</span></h2> <p>multipartmux — mux multipart streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-multipartmux.synopsis"></a><h2>Synopsis</h2> -<a name="GstMultipartMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux-struct" title="struct GstMultipartMux">GstMultipartMux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multipartmux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstMultipartMux -</pre> +<a name="gst-plugins-good-plugins-multipartmux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary" title="The “boundary†property">boundary</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstMultipartMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-multipartmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux-struct" title="struct GstMultipartMux">GstMultipartMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multipartmux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary" title='The "boundary" property'>boundary</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write +<a name="gst-plugins-good-plugins-multipartmux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstMultipartMux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multipartmux.description"></a><h2>Description</h2> -<p> -MultipartMux uses the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> of the sink pad as the Content-type field for +<p>MultipartMux uses the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> of the sink pad as the Content-type field for incoming buffers when muxing them to a multipart stream. Most of the time -multipart streams are sequential JPEG frames. -</p> -<p> -</p> +multipart streams are sequential JPEG frames.</p> <div class="refsect2"> -<a name="id-1.2.86.6.3.1"></a><h3>Sample pipelines</h3> +<a name="id-1.2.86.7.3"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -84,12 +91,10 @@ multipart streams are sequential JPEG frames. a pipeline to mux 5 JPEG frames per second into a multipart stream stored to a file. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.86.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.86.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -115,7 +120,7 @@ stored to a file. </div> <hr> <div class="refsect2"> -<a name="id-1.2.86.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.86.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -170,27 +175,29 @@ stored to a file. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multipartmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-multipartmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-multipartmux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMultipartMux-struct"></a><h3>struct GstMultipartMux</h3> <pre class="programlisting">struct GstMultipartMux;</pre> -<p> -The opaque <a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux"><span class="type">GstMultipartMux</span></a> structure. -</p> +<p>The opaque <a class="link" href="gst-plugins-good-plugins-multipartmux.html#GstMultipartMux"><span class="type">GstMultipartMux</span></a> structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multipartmux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMultipartMux--boundary"></a><h3>The <code class="literal">"boundary"</code> property</h3> -<pre class="programlisting"> "boundary" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstMultipartMux--boundary"></a><h3>The <code class="literal">“boundaryâ€</code> property</h3> +<pre class="programlisting"> “boundary†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Boundary string.</p> +<p>Flags: Read / Write</p> <p>Default value: "ThisRandomString"</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 2e8308fdb..b95f59783 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>multiudpsink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: multiudpsink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-multipartmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-optv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-multiudpsink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-multiudpsink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-multiudpsink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-multiudpsink.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-multiudpsink.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multiudpsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multiudpsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multiudpsink.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-multiudpsink.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-multipartmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-optv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-multiudpsink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,74 +32,213 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-multiudpsink.top_of_page"></a>multiudpsink</span></h2> <p>multiudpsink — Send data over the network via UDP</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-multiudpsink.synopsis"></a><h2>Synopsis</h2> -<a name="GstMultiUDPSink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-struct" title="struct GstMultiUDPSink">GstMultiUDPSink</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-multiudpsink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----GstMultiUDPSink - +----<a class="link" href="gst-plugins-good-plugins-udpsink.html#GstUDPSink">GstUDPSink</a> -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multiudpsink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served" title='The "bytes-served" property'>bytes-served</a>" <span class="type">guint64</span> : Read - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-to-serve" title='The "bytes-to-serve" property'>bytes-to-serve</a>" <span class="type">guint64</span> : Read - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--clients" title='The "clients" property'>clients</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-multiudpsink.html#GstMultiUDPSink--closefd" title='The "closefd" property'>closefd</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sock" title='The "sock" property'>sock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sockfd" title='The "sockfd" property'>sockfd</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--auto-multicast" title='The "auto-multicast" property'>auto-multicast</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--loop" title='The "loop" property'>loop</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--qos-dscp" title='The "qos-dscp" property'>qos-dscp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl" title='The "ttl" property'>ttl</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl-mc" title='The "ttl-mc" property'>ttl-mc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--send-duplicates" title='The "send-duplicates" property'>send-duplicates</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--buffer-size" title='The "buffer-size" property'>buffer-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--close-socket" title='The "close-socket" property'>close-socket</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--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-multiudpsink.html#GstMultiUDPSink--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-multiudpsink.html#GstMultiUDPSink--force-ipv4" title='The "force-ipv4" property'>force-ipv4</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface" title='The "multicast-iface" property'>multicast-iface</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-multiudpsink.html#GstMultiUDPSink--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-multiudpsink.html#GstMultiUDPSink--bind-port" title='The "bind-port" property'>bind-port</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6" title='The "socket-v6" property'>socket-v6</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-multiudpsink.html#GstMultiUDPSink--used-socket-v6" title='The "used-socket-v6" property'>used-socket-v6</a>" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served" title="The “bytes-served†property">bytes-served</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-to-serve" title="The “bytes-to-serve†property">bytes-to-serve</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--clients" title="The “clients†property">clients</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--closefd" title="The “closefd†property">closefd</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sock" title="The “sock†property">sock</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--sockfd" title="The “sockfd†property">sockfd</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--auto-multicast" title="The “auto-multicast†property">auto-multicast</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--loop" title="The “loop†property">loop</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--qos-dscp" title="The “qos-dscp†property">qos-dscp</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl" title="The “ttl†property">ttl</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--ttl-mc" title="The “ttl-mc†property">ttl-mc</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--send-duplicates" title="The “send-duplicates†property">send-duplicates</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--buffer-size" title="The “buffer-size†property">buffer-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--close-socket" title="The “close-socket†property">close-socket</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket" title="The “socket†property">socket</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket" title="The “used-socket†property">used-socket</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--force-ipv4" title="The “force-ipv4†property">force-ipv4</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--multicast-iface" title="The “multicast-iface†property">multicast-iface</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-address" title="The “bind-address†property">bind-address</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bind-port" title="The “bind-port†property">bind-port</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--socket-v6" title="The “socket-v6†property">socket-v6</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--used-socket-v6" title="The “used-socket-v6†property">used-socket-v6</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multiudpsink.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add" title='The "add" signal'>add</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear" title='The "clear" signal'>clear</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-added" title='The "client-added" signal'>client-added</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed" title='The "client-removed" signal'>client-removed</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats" title='The "get-stats" signal'>get-stats</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove" title='The "remove" signal'>remove</a>" : <code class="literal">Action</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-add" title="The “add†signal">add</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-clear" title="The “clear†signal">clear</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-added" title="The “client-added†signal">client-added</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed" title="The “client-removed†signal">client-removed</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats" title="The “get-stats†signal">get-stats</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove" title="The “remove†signal">remove</a></td> +<td class="signal_flags">Action</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstMultiUDPSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-multiudpsink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-struct" title="struct GstMultiUDPSink">GstMultiUDPSink</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-multiudpsink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> GstMultiUDPSink + <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-udpsink.html#GstUDPSink">GstUDPSink</a> </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multiudpsink.description"></a><h2>Description</h2> -<p> -multiudpsink is a network sink that sends UDP packets to multiple +<p>multiudpsink is a network sink that sends UDP packets to multiple clients. -It can be combined with rtp payload encoders to implement RTP streaming. -</p> +It can be combined with rtp payload encoders to implement RTP streaming.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.87.7.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.87.8.2.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -132,7 +264,7 @@ It can be combined with rtp payload encoders to implement RTP streaming. </div> <hr> <div class="refsect2"> -<a name="id-1.2.87.7.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.87.8.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -163,7 +295,10 @@ It can be combined with rtp payload encoders to implement RTP streaming. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-multiudpsink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-multiudpsink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-multiudpsink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstMultiUDPSink-struct"></a><h3>struct GstMultiUDPSink</h3> <pre class="programlisting">struct GstMultiUDPSink;</pre> @@ -174,387 +309,460 @@ It can be combined with rtp payload encoders to implement RTP streaming. <div class="refsect1"> <a name="gst-plugins-good-plugins-multiudpsink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstMultiUDPSink--bytes-served"></a><h3>The <code class="literal">"bytes-served"</code> property</h3> -<pre class="programlisting"> "bytes-served" <span class="type">guint64</span> : Read</pre> +<a name="GstMultiUDPSink--bytes-served"></a><h3>The <code class="literal">“bytes-servedâ€</code> property</h3> +<pre class="programlisting"> “bytes-served†<span class="type">guint64</span></pre> <p>Total number of bytes sent to all clients.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--bytes-to-serve"></a><h3>The <code class="literal">"bytes-to-serve"</code> property</h3> -<pre class="programlisting"> "bytes-to-serve" <span class="type">guint64</span> : Read</pre> +<a name="GstMultiUDPSink--bytes-to-serve"></a><h3>The <code class="literal">“bytes-to-serveâ€</code> property</h3> +<pre class="programlisting"> “bytes-to-serve†<span class="type">guint64</span></pre> <p>Number of bytes received to serve to clients.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--clients"></a><h3>The <code class="literal">"clients"</code> property</h3> -<pre class="programlisting"> "clients" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstMultiUDPSink--clients"></a><h3>The <code class="literal">“clientsâ€</code> property</h3> +<pre class="programlisting"> “clients†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>A comma separated list of host:port pairs with destinations.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--closefd"></a><h3>The <code class="literal">"closefd"</code> property</h3> -<pre class="programlisting"> "closefd" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--closefd"></a><h3>The <code class="literal">“closefdâ€</code> property</h3> +<pre class="programlisting"> “closefd†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Close sockfd if passed as property on state change.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--sock"></a><h3>The <code class="literal">"sock"</code> property</h3> -<pre class="programlisting"> "sock" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstMultiUDPSink--sock"></a><h3>The <code class="literal">“sockâ€</code> property</h3> +<pre class="programlisting"> “sock†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Socket currently in use for UDP sending. (-1 == no socket).</p> +<p>Flags: Read</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--sockfd"></a><h3>The <code class="literal">"sockfd"</code> property</h3> -<pre class="programlisting"> "sockfd" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--sockfd"></a><h3>The <code class="literal">“sockfdâ€</code> property</h3> +<pre class="programlisting"> “sockfd†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Socket to use for UDP sending. (-1 == allocate).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--auto-multicast"></a><h3>The <code class="literal">"auto-multicast"</code> property</h3> -<pre class="programlisting"> "auto-multicast" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--auto-multicast"></a><h3>The <code class="literal">“auto-multicastâ€</code> property</h3> +<pre class="programlisting"> “auto-multicast†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Automatically join/leave the multicast groups, FALSE means user has to do it himself.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--loop"></a><h3>The <code class="literal">"loop"</code> property</h3> -<pre class="programlisting"> "loop" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--loop"></a><h3>The <code class="literal">“loopâ€</code> property</h3> +<pre class="programlisting"> “loop†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Used for setting the multicast loop parameter. TRUE = enable, FALSE = disable.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--qos-dscp"></a><h3>The <code class="literal">"qos-dscp"</code> property</h3> -<pre class="programlisting"> "qos-dscp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--qos-dscp"></a><h3>The <code class="literal">“qos-dscpâ€</code> property</h3> +<pre class="programlisting"> “qos-dscp†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Quality of Service, differentiated services code point (-1 default).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [G_MAXULONG,63]</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--ttl"></a><h3>The <code class="literal">"ttl"</code> property</h3> -<pre class="programlisting"> "ttl" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--ttl"></a><h3>The <code class="literal">“ttlâ€</code> property</h3> +<pre class="programlisting"> “ttl†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Used for setting the unicast TTL parameter.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,255]</p> <p>Default value: 64</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--ttl-mc"></a><h3>The <code class="literal">"ttl-mc"</code> property</h3> -<pre class="programlisting"> "ttl-mc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--ttl-mc"></a><h3>The <code class="literal">“ttl-mcâ€</code> property</h3> +<pre class="programlisting"> “ttl-mc†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Used for setting the multicast TTL parameter.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,255]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--send-duplicates"></a><h3>The <code class="literal">"send-duplicates"</code> property</h3> -<pre class="programlisting"> "send-duplicates" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--send-duplicates"></a><h3>The <code class="literal">“send-duplicatesâ€</code> property</h3> +<pre class="programlisting"> “send-duplicates†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>When a distination/port pair is added multiple times, send packets multiple times as well.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--buffer-size"></a><h3>The <code class="literal">"buffer-size"</code> property</h3> -<pre class="programlisting"> "buffer-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--buffer-size"></a><h3>The <code class="literal">“buffer-sizeâ€</code> property</h3> +<pre class="programlisting"> “buffer-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Size of the kernel send buffer in bytes, 0=default.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--close-socket"></a><h3>The <code class="literal">"close-socket"</code> property</h3> -<pre class="programlisting"> "close-socket" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--close-socket"></a><h3>The <code class="literal">“close-socketâ€</code> property</h3> +<pre class="programlisting"> “close-socket†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Close socket if passed as property on state change.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--socket"></a><h3>The <code class="literal">"socket"</code> property</h3> -<pre class="programlisting"> "socket" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read / Write</pre> +<a name="GstMultiUDPSink--socket"></a><h3>The <code class="literal">“socketâ€</code> property</h3> +<pre class="programlisting"> “socket†<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</pre> <p>Socket to use for UDP sending. (NULL == allocate).</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--used-socket"></a><h3>The <code class="literal">"used-socket"</code> property</h3> -<pre class="programlisting"> "used-socket" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read</pre> +<a name="GstMultiUDPSink--used-socket"></a><h3>The <code class="literal">“used-socketâ€</code> property</h3> +<pre class="programlisting"> “used-socket†<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</pre> <p>Socket currently in use for UDP sending. (NULL == no socket).</p> +<p>Flags: Read</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--force-ipv4"></a><h3>The <code class="literal">"force-ipv4"</code> property</h3> -<pre class="programlisting"> "force-ipv4" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--force-ipv4"></a><h3>The <code class="literal">“force-ipv4â€</code> property</h3> +<pre class="programlisting"> “force-ipv4†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore).</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--multicast-iface"></a><h3>The <code class="literal">"multicast-iface"</code> property</h3> -<pre class="programlisting"> "multicast-iface" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstMultiUDPSink--multicast-iface"></a><h3>The <code class="literal">“multicast-ifaceâ€</code> property</h3> +<pre class="programlisting"> “multicast-iface†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The network interface on which to join the multicast group.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--bind-address"></a><h3>The <code class="literal">"bind-address"</code> property</h3> -<pre class="programlisting"> "bind-address" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstMultiUDPSink--bind-address"></a><h3>The <code class="literal">“bind-addressâ€</code> property</h3> +<pre class="programlisting"> “bind-address†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Address to bind the socket to.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--bind-port"></a><h3>The <code class="literal">"bind-port"</code> property</h3> -<pre class="programlisting"> "bind-port" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstMultiUDPSink--bind-port"></a><h3>The <code class="literal">“bind-portâ€</code> property</h3> +<pre class="programlisting"> “bind-port†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Port to bind the socket to.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,65535]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--socket-v6"></a><h3>The <code class="literal">"socket-v6"</code> property</h3> -<pre class="programlisting"> "socket-v6" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read / Write</pre> +<a name="GstMultiUDPSink--socket-v6"></a><h3>The <code class="literal">“socket-v6â€</code> property</h3> +<pre class="programlisting"> “socket-v6†<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</pre> <p>Socket to use for UDPv6 sending. (NULL == allocate).</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink--used-socket-v6"></a><h3>The <code class="literal">"used-socket-v6"</code> property</h3> -<pre class="programlisting"> "used-socket-v6" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read</pre> +<a name="GstMultiUDPSink--used-socket-v6"></a><h3>The <code class="literal">“used-socket-v6â€</code> property</h3> +<pre class="programlisting"> “used-socket-v6†<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</pre> <p>Socket currently in use for UDPv6 sending. (NULL == no socket).</p> +<p>Flags: Read</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multiudpsink.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstMultiUDPSink-add"></a><h3>The <code class="literal">"add"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Add a client with destination <em class="parameter"><code>host</code></em> and <em class="parameter"><code>port</code></em> to the list of +<a name="GstMultiUDPSink-add"></a><h3>The <code class="literal">“addâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Add a client with destination <em class="parameter"><code>host</code></em> + and <em class="parameter"><code>port</code></em> + to the list of clients. When the same host/port pair is added multiple times, the send-duplicates property defines if the packets are sent multiple times to -the same host/port pair or not. -</p> -<p> -When a host/port pair is added multiple times, an equal amount of remove +the same host/port pair or not.</p> +<p>When a host/port pair is added multiple times, an equal amount of remove calls must be performed to actually remove the host/port pair from the list -of destinations. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +of destinations.</p> +<div class="refsect3"> +<a name="id-1.2.87.12.2.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> -<td>the sink on which the signal is emitted</td> +<td class="parameter_name"><p>gstmultiudpsink</p></td> +<td class="parameter_description"><p>the sink on which the signal is emitted</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>host</code></em> :</span></p></td> -<td>the hostname/IP address of the client to add</td> +<td class="parameter_name"><p>host</p></td> +<td class="parameter_description"><p>the hostname/IP address of the client to add</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td> -<td>the port of the client to add</td> +<td class="parameter_name"><p>port</p></td> +<td class="parameter_description"><p>the port of the client to add</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink-clear"></a><h3>The <code class="literal">"clear"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Clear the list of clients. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstMultiUDPSink-clear"></a><h3>The <code class="literal">“clearâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Clear the list of clients.</p> +<div class="refsect3"> +<a name="id-1.2.87.12.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> -<td>the sink on which the signal is emitted</td> +<td class="parameter_name"><p>gstmultiudpsink</p></td> +<td class="parameter_description"><p>the sink on which the signal is emitted</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink-client-added"></a><h3>The <code class="literal">"client-added"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Signal emited when a new client is added to the list of -clients. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstMultiUDPSink-client-added"></a><h3>The <code class="literal">“client-addedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Signal emited when a new client is added to the list of +clients.</p> +<div class="refsect3"> +<a name="id-1.2.87.12.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> -<td>the sink emitting the signal</td> +<td class="parameter_name"><p>gstmultiudpsink</p></td> +<td class="parameter_description"><p>the sink emitting the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>host</code></em> :</span></p></td> -<td>the hostname/IP address of the added client</td> +<td class="parameter_name"><p>host</p></td> +<td class="parameter_description"><p>the hostname/IP address of the added client</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td> -<td>the port of the added client</td> +<td class="parameter_name"><p>port</p></td> +<td class="parameter_description"><p>the port of the added client</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink-client-removed"></a><h3>The <code class="literal">"client-removed"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Signal emited when a client is removed from the list of -clients. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstMultiUDPSink-client-removed"></a><h3>The <code class="literal">“client-removedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Signal emited when a client is removed from the list of +clients.</p> +<div class="refsect3"> +<a name="id-1.2.87.12.5.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> -<td>the sink emitting the signal</td> +<td class="parameter_name"><p>gstmultiudpsink</p></td> +<td class="parameter_description"><p>the sink emitting the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>host</code></em> :</span></p></td> -<td>the hostname/IP address of the removed client</td> +<td class="parameter_name"><p>host</p></td> +<td class="parameter_description"><p>the hostname/IP address of the removed client</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td> -<td>the port of the removed client</td> +<td class="parameter_name"><p>port</p></td> +<td class="parameter_description"><p>the port of the removed client</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink-get-stats"></a><h3>The <code class="literal">"get-stats"</code> signal</h3> -<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a>* user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Get the statistics of the client with destination <em class="parameter"><code>host</code></em> and <em class="parameter"><code>port</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstMultiUDPSink-get-stats"></a><h3>The <code class="literal">“get-statsâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Get the statistics of the client with destination <em class="parameter"><code>host</code></em> + and <em class="parameter"><code>port</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.87.12.6.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> -<td>the sink on which the signal is emitted</td> -</tr> -<tr> -<td><p><span class="term"><em class="parameter"><code>host</code></em> :</span></p></td> -<td>the hostname/IP address of the client to get stats on</td> +<td class="parameter_name"><p>gstmultiudpsink</p></td> +<td class="parameter_description"><p>the sink on which the signal is emitted</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td> -<td>the port of the client to get stats on</td> +<td class="parameter_name"><p>host</p></td> +<td class="parameter_description"><p>the hostname/IP address of the client to get stats on</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>port</p></td> +<td class="parameter_description"><p>the port of the client to get stats on</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>a GstStructure: bytes_sent, packets_sent, -connect_time (in epoch seconds), disconnect_time (in epoch seconds)</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<div class="refsect3"> +<a name="id-1.2.87.12.6.6"></a><h4>Returns</h4> +<p> a GstStructure: bytes_sent, packets_sent, +connect_time (in epoch seconds), disconnect_time (in epoch seconds)</p> +<p></p> +</div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstMultiUDPSink-remove"></a><h3>The <code class="literal">"remove"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Remove the client with destination <em class="parameter"><code>host</code></em> and <em class="parameter"><code>port</code></em> from the list of -clients. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstMultiUDPSink-remove"></a><h3>The <code class="literal">“removeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"><span class="type">GstMultiUDPSink</span></a> *gstmultiudpsink, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Remove the client with destination <em class="parameter"><code>host</code></em> + and <em class="parameter"><code>port</code></em> + from the list of +clients.</p> +<div class="refsect3"> +<a name="id-1.2.87.12.7.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstmultiudpsink</code></em> :</span></p></td> -<td>the sink on which the signal is emitted</td> +<td class="parameter_name"><p>gstmultiudpsink</p></td> +<td class="parameter_description"><p>the sink on which the signal is emitted</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>host</code></em> :</span></p></td> -<td>the hostname/IP address of the client to remove</td> +<td class="parameter_name"><p>host</p></td> +<td class="parameter_description"><p>the hostname/IP address of the client to remove</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td> -<td>the port of the client to remove</td> +<td class="parameter_name"><p>port</p></td> +<td class="parameter_description"><p>the port of the client to remove</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-multiudpsink.see-also"></a><h2>See Also</h2> -udpsink, multifdsink +<p>udpsink, multifdsink</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a174221d1..b453f94c6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-optv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>optv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: optv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-multiudpsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-oss4sink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-optv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-optv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-optv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-optv.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-optv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-optv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-optv.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-multiudpsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-oss4sink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-optv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,44 +31,66 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-optv.top_of_page"></a>optv</span></h2> <p>optv — Optical art meets real-time video effect</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-optv.synopsis"></a><h2>Synopsis</h2> -<a name="GstOpTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV-struct" title="struct GstOpTV">GstOpTV</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-optv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstOpTV -</pre> +<a name="gst-plugins-good-plugins-optv.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstOpTVMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV--speed" title="The “speed†property">speed</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV--threshold" title="The “threshold†property">threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstOpTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-optv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV-struct" title="struct GstOpTV">GstOpTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-optv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV--mode" title='The "mode" property'>mode</a>" <span class="type">GstOpTVMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV--speed" title='The "speed" property'>speed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-optv.html#GstOpTV--threshold" title='The "threshold" property'>threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-optv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstOpTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-optv.description"></a><h2>Description</h2> -<p> -Traditional black-white optical animation is now resurrected as a +<p>Traditional black-white optical animation is now resurrected as a real-time video effect. Input images are binarized and combined with -various optical pattern. -</p> -<p> -</p> +various optical pattern.</p> <div class="refsect2"> -<a name="id-1.2.88.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.88.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -87,12 +103,10 @@ various optical pattern. </div> This pipeline shows the effect of optv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.88.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.88.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -118,7 +132,7 @@ various optical pattern. </div> <hr> <div class="refsect2"> -<a name="id-1.2.88.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.88.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,7 +187,10 @@ various optical pattern. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-optv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-optv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-optv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOpTV-struct"></a><h3>struct GstOpTV</h3> <pre class="programlisting">struct GstOpTV;</pre> @@ -184,23 +201,26 @@ various optical pattern. <div class="refsect1"> <a name="gst-plugins-good-plugins-optv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOpTV--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstOpTVMode</span> : Read / Write</pre> +<a name="GstOpTV--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstOpTVMode</span></pre> <p>Mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Maelstrom</p> </div> <hr> <div class="refsect2"> -<a name="GstOpTV--speed"></a><h3>The <code class="literal">"speed"</code> property</h3> -<pre class="programlisting"> "speed" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstOpTV--speed"></a><h3>The <code class="literal">“speedâ€</code> property</h3> +<pre class="programlisting"> “speed†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Effect speed.</p> +<p>Flags: Read / Write</p> <p>Default value: 16</p> </div> <hr> <div class="refsect2"> -<a name="GstOpTV--threshold"></a><h3>The <code class="literal">"threshold"</code> property</h3> -<pre class="programlisting"> "threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstOpTV--threshold"></a><h3>The <code class="literal">“thresholdâ€</code> property</h3> +<pre class="programlisting"> “threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Luma threshold.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= G_MAXINT</p> <p>Default value: 60</p> </div> @@ -208,6 +228,6 @@ various optical pattern. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c8ef645cc..a08fb75d0 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>oss4sink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: oss4sink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-optv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-oss4src.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-oss4sink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-oss4sink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-oss4sink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-oss4sink.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-oss4sink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4sink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4sink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4sink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4sink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-optv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-oss4src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-oss4sink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,24 +32,65 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-oss4sink.top_of_page"></a>oss4sink</span></h2> <p>oss4sink — Output to a sound card via OSS version 4</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-oss4sink.synopsis"></a><h2>Synopsis</h2> -<a name="GstOss4Sink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink-struct" title="struct GstOss4Sink">GstOss4Sink</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-oss4sink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute" title="The “mute†property">mute</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume" title="The “volume†property">volume</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstOss4Sink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-oss4sink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink-struct" title="struct GstOss4Sink">GstOss4Sink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-oss4sink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosink.html#GstAudioSink">GstAudioSink</a> - +----GstOss4Sink +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosink.html#GstAudioSink">GstAudioSink</a> + <span class="lineart">╰──</span> GstOss4Sink </pre> </div> <div class="refsect1"> @@ -66,20 +100,11 @@ GstOss4Sink implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-oss4sink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device" title='The "device" property'>device</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-oss4sink.html#GstOss4Sink--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute" title='The "mute" property'>mute</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume" title='The "volume" property'>volume</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-oss4sink.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.89.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.89.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -105,7 +130,7 @@ GstOss4Sink implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.89.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.89.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -144,7 +169,10 @@ GstOss4Sink implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-oss4sink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-oss4sink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-oss4sink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOss4Sink-struct"></a><h3>struct GstOss4Sink</h3> <pre class="programlisting">struct GstOss4Sink;</pre> @@ -155,30 +183,34 @@ GstOss4Sink implements <div class="refsect1"> <a name="gst-plugins-good-plugins-oss4sink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOss4Sink--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstOss4Sink--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>OSS4 device (e.g. /dev/oss/hdaudio0/pcm0 or /dev/dspN) (NULL = use first available playback device).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstOss4Sink--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstOss4Sink--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Human-readable name of the sound device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstOss4Sink--mute"></a><h3>The <code class="literal">"mute"</code> property</h3> -<pre class="programlisting"> "mute" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstOss4Sink--mute"></a><h3>The <code class="literal">“muteâ€</code> property</h3> +<pre class="programlisting"> “mute†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Mute state of this stream.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstOss4Sink--volume"></a><h3>The <code class="literal">"volume"</code> property</h3> -<pre class="programlisting"> "volume" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstOss4Sink--volume"></a><h3>The <code class="literal">“volumeâ€</code> property</h3> +<pre class="programlisting"> “volume†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Linear volume of this stream, 1.0=100%.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,10]</p> <p>Default value: 1</p> </div> @@ -186,6 +218,6 @@ GstOss4Sink implements </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 b71a9d3a7..9cf866c37 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>oss4src</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: oss4src</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-oss4sink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-osssink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-oss4src.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-oss4src.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-oss4src.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-oss4src.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-oss4src.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4src.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4src.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4src.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-oss4src.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-oss4sink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-osssink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-oss4src"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,25 +32,56 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-oss4src.top_of_page"></a>oss4src</span></h2> <p>oss4src — Capture from a sound card via OSS version 4</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-oss4src.synopsis"></a><h2>Synopsis</h2> -<a name="GstOss4Source"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-oss4src.html#GstOss4Source-struct" title="struct GstOss4Source">GstOss4Source</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-oss4src.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstOss4Source"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-oss4src.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-oss4src.html#GstOss4Source-struct" title="struct GstOss4Source">GstOss4Source</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-oss4src.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc">GstAudioSrc</a> - +----GstOss4Source +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc">GstAudioSrc</a> + <span class="lineart">╰──</span> GstOss4Source </pre> </div> <div class="refsect1"> @@ -67,18 +91,11 @@ GstOss4Source implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-oss4src.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-oss4src.html#GstOss4Source--device" title='The "device" property'>device</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-oss4src.html#GstOss4Source--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-oss4src.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.90.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.90.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -104,7 +121,7 @@ GstOss4Source implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.90.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.90.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -143,7 +160,10 @@ GstOss4Source implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-oss4src.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-oss4src.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-oss4src.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOss4Source-struct"></a><h3>struct GstOss4Source</h3> <pre class="programlisting">struct GstOss4Source;</pre> @@ -154,22 +174,24 @@ GstOss4Source implements <div class="refsect1"> <a name="gst-plugins-good-plugins-oss4src.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOss4Source--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstOss4Source--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>OSS4 device (e.g. /dev/oss/hdaudio0/pcm0 or /dev/dspN) (NULL = use first available device).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstOss4Source--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstOss4Source--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Human-readable name of the sound device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 87e9e73f1..409c8d897 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>osssink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: osssink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-oss4src.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-osssrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-osssink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-osssink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-osssink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-osssink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osssink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osssink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osssink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-oss4src.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-osssrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-osssink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,30 +31,47 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-osssink.top_of_page"></a>osssink</span></h2> <p>osssink — Output to a sound card via OSS</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-osssink.synopsis"></a><h2>Synopsis</h2> -<a name="GstOssSink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-osssink.html#GstOssSink-struct" title="struct GstOssSink">GstOssSink</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osssink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosink.html#GstAudioSink">GstAudioSink</a> - +----GstOssSink -</pre> +<a name="gst-plugins-good-plugins-osssink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-osssink.html#GstOssSink--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstOssSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-osssink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-osssink.html#GstOssSink-struct" title="struct GstOssSink">GstOssSink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osssink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-osssink.html#GstOssSink--device" title='The "device" property'>device</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write +<a name="gst-plugins-good-plugins-osssink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosink.html#GstAudioSink">GstAudioSink</a> + <span class="lineart">╰──</span> GstOssSink </pre> </div> <div class="refsect1"> @@ -68,7 +79,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.91.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.91.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -94,7 +105,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.91.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.91.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -129,7 +140,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osssink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-osssink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osssink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOssSink-struct"></a><h3>struct GstOssSink</h3> <pre class="programlisting">struct GstOssSink;</pre> @@ -140,15 +154,16 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-osssink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOssSink--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstOssSink--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>OSS device (usually /dev/dspN).</p> +<p>Flags: Read / Write</p> <p>Default value: "/dev/dsp"</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 823f24a3b..8c6d9d75e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>osssrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: osssrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-osssink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-osxaudiosink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-osssrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-osssrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-osssrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-osssrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-osssrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osssrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osssrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osssrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osssrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-osssink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-osxaudiosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-osssrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,25 +32,56 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-osssrc.top_of_page"></a>osssrc</span></h2> <p>osssrc — Capture from a sound card via OSS</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-osssrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstOssSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-osssrc.html#GstOssSrc-struct" title="struct GstOssSrc">GstOssSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osssrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstOssSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-osssrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-osssrc.html#GstOssSrc-struct" title="struct GstOssSrc">GstOssSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-osssrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc">GstAudioSrc</a> - +----GstOssSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc">GstAudioSrc</a> + <span class="lineart">╰──</span> GstOssSrc </pre> </div> <div class="refsect1"> @@ -67,18 +91,11 @@ GstOssSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osssrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-osssrc.html#GstOssSrc--device" title='The "device" property'>device</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-osssrc.html#GstOssSrc--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-osssrc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.92.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.92.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -104,7 +121,7 @@ GstOssSrc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.92.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.92.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -139,7 +156,10 @@ GstOssSrc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osssrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-osssrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osssrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOssSrc-struct"></a><h3>struct GstOssSrc</h3> <pre class="programlisting">struct GstOssSrc;</pre> @@ -150,22 +170,24 @@ GstOssSrc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-osssrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOssSrc--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstOssSrc--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>OSS device (usually /dev/dspN).</p> +<p>Flags: Read / Write</p> <p>Default value: "/dev/dsp"</p> </div> <hr> <div class="refsect2"> -<a name="GstOssSrc--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstOssSrc--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Human-readable name of the sound device.</p> +<p>Flags: Read</p> <p>Default value: ""</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 6d3649abb..cc573f38a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html @@ -2,32 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>osxaudiosink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: osxaudiosink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-osssrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-osxaudiosrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-osxaudiosink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-osxaudiosink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-osxaudiosink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxaudiosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxaudiosink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-osssrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-osxaudiosrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-osxaudiosink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,17 +31,39 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-osxaudiosink.top_of_page"></a>osxaudiosink</span></h2> <p>osxaudiosink — Output to a sound card in OS X</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-osxaudiosink.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink" title="struct GstOsxAudioSink">GstOsxAudioSink</a>; -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-osxaudiosink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device" title='The "device" property'>device</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxaudiosink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink" title="struct GstOsxAudioSink">GstOsxAudioSink</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxaudiosink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> </pre> </div> <div class="refsect1"> @@ -53,7 +71,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.93.5.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.93.6.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -79,14 +97,17 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.93.5.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.93.6.2.2"></a><h3>Element Pads</h3> </div> </div> <p> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osxaudiosink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-osxaudiosink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxaudiosink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOsxAudioSink"></a><h3>struct GstOsxAudioSink</h3> <pre class="programlisting">struct GstOsxAudioSink { @@ -109,9 +130,10 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-osxaudiosink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOsxAudioSink--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstOsxAudioSink--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Device ID of output device.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> @@ -119,6 +141,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 83c7088d7..7a8efe3ca 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html @@ -2,32 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>osxaudiosrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: osxaudiosrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-osxaudiosink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-osxvideosink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-osxaudiosrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-osxaudiosrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-osxaudiosrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxaudiosrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxaudiosrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxaudiosrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-osxaudiosink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-osxvideosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-osxaudiosrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,17 +31,39 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-osxaudiosrc.top_of_page"></a>osxaudiosrc</span></h2> <p>osxaudiosrc — Input from a sound card in OS X</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-osxaudiosrc.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc" title="struct GstOsxAudioSrc">GstOsxAudioSrc</a>; -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-osxaudiosrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device" title='The "device" property'>device</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxaudiosrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc" title="struct GstOsxAudioSrc">GstOsxAudioSrc</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxaudiosrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> </pre> </div> <div class="refsect1"> @@ -53,7 +71,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.94.5.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.94.6.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -79,14 +97,17 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.94.5.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.94.6.2.2"></a><h3>Element Pads</h3> </div> </div> <p> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osxaudiosrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-osxaudiosrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxaudiosrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOsxAudioSrc"></a><h3>struct GstOsxAudioSrc</h3> <pre class="programlisting">struct GstOsxAudioSrc { @@ -105,9 +126,10 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-osxaudiosrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOsxAudioSrc--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstOsxAudioSrc--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Device ID of input device.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> @@ -115,6 +137,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 355516e3e..252a79157 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html @@ -2,32 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>osxvideosink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: osxvideosink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-osxaudiosrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-pngdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-osxvideosink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-osxvideosink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-osxvideosink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxvideosink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxvideosink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-osxvideosink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-osxaudiosrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-pngdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-osxvideosink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,18 +31,46 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-osxvideosink.top_of_page"></a>osxvideosink</span></h2> <p>osxvideosink — OSX native videosink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-osxvideosink.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink" title="struct GstOSXVideoSink">GstOSXVideoSink</a>; -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-osxvideosink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed" title='The "embed" property'>embed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen" title='The "fullscreen" property'>fullscreen</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed" title="The “embed†property">embed</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen" title="The “fullscreen†property">fullscreen</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxvideosink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink" title="struct GstOSXVideoSink">GstOSXVideoSink</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxvideosink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> </pre> </div> <div class="refsect1"> @@ -54,7 +78,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.95.5.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.95.6.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -80,14 +104,17 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.95.5.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.95.6.2.2"></a><h3>Element Pads</h3> </div> </div> <p> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-osxvideosink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-osxvideosink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-osxvideosink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstOSXVideoSink"></a><h3>struct GstOSXVideoSink</h3> <pre class="programlisting">struct GstOSXVideoSink { @@ -98,6 +125,7 @@ NSView *superview; gboolean keep_par; gboolean embed; + GstVideoInfo info; }; </pre> <p> @@ -107,22 +135,24 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-osxvideosink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstOSXVideoSink--embed"></a><h3>The <code class="literal">"embed"</code> property</h3> -<pre class="programlisting"> "embed" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstOSXVideoSink--embed"></a><h3>The <code class="literal">“embedâ€</code> property</h3> +<pre class="programlisting"> “embed†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>When enabled, it can be embedded.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstOSXVideoSink--fullscreen"></a><h3>The <code class="literal">"fullscreen"</code> property</h3> -<pre class="programlisting"> "fullscreen" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstOSXVideoSink--fullscreen"></a><h3>The <code class="literal">“fullscreenâ€</code> property</h3> +<pre class="programlisting"> “fullscreen†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>When enabled, the view is fullscreen.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 d38aaecad..a0b439850 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>1394</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: 1394</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="ch02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-aasink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="ch02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-aasink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-1394"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">1394</span></h2> <p>1394 — <a name="plugin-1394"></a>Source for video data via IEEE1394 interface</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.2.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a3767603d..92cdca0c7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>aasink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: aasink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-1394.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alaw.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-1394.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alaw.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-aasink"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">aasink</span></h2> <p>aasink — <a name="plugin-aasink"></a>ASCII Art video sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.3.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 961154441..105e9f0ff 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>alaw</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: alaw</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-aasink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-aasink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-alaw"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">alaw</span></h2> <p>alaw — <a name="plugin-alaw"></a>ALaw audio conversion routines</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.4.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 cb5419c4d..4fbcd378d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>alpha</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: alpha</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alaw.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alaw.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-alpha"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">alpha</span></h2> <p>alpha — <a name="plugin-alpha"></a>adds an alpha channel to video - constant or via chroma-keying</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.5.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 bfaa02aa1..af0684484 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>alphacolor</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: alphacolor</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-apetag.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-apetag.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-alphacolor"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">alphacolor</span></h2> <p>alphacolor — <a name="plugin-alphacolor"></a>RGBA from/to AYUV colorspace conversion preserving the alpha channel</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.6.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 90fcd693c..0cf723cb9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>apetag</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: apetag</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-audiofx.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-audiofx.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-apetag"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">apetag</span></h2> <p>apetag — <a name="plugin-apetag"></a>APEv1/2 tag reader</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.7.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 941c4a5bf..815621290 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>audiofx</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: audiofx</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-apetag.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-auparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-apetag.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-auparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-audiofx"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">audiofx</span></h2> <p>audiofx — <a name="plugin-audiofx"></a>Audio effects plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.8.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -125,6 +125,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e8962610f..0bcb675d6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>auparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: auparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-audiofx.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-autodetect.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-audiofx.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-autodetect.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-auparse"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">auparse</span></h2> <p>auparse — <a name="plugin-auparse"></a>parses au streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.9.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 35497371b..7f6e5d071 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>autodetect</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: autodetect</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-auparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-avi.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-auparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-avi.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-autodetect"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">autodetect</span></h2> <p>autodetect — <a name="plugin-autodetect"></a>Plugin contains auto-detection plugins for video/audio in- and outputs</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.10.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -89,6 +89,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 25632dbf7..1a98a2c55 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>avi</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: avi</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-autodetect.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-cacasink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-autodetect.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-cacasink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-avi"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">avi</span></h2> <p>avi — <a name="plugin-avi"></a>AVI stream handling</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.11.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 39e218f6e..f97116f81 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>cacasink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: cacasink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-avi.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-cairo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-avi.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-cairo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-cacasink"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">cacasink</span></h2> <p>cacasink — <a name="plugin-cacasink"></a>Colored ASCII Art video sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.12.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f8140f4ed..b72c54930 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>cairo</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: cairo</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-cacasink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-cutter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-cacasink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-cutter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-cairo"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">cairo</span></h2> <p>cairo — <a name="plugin-cairo"></a>Cairo-based elements</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.13.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a731c19d0..50c96fa9d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>cutter</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: cutter</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-cairo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-debug.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-cairo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-debug.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-cutter"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">cutter</span></h2> <p>cutter — <a name="plugin-cutter"></a>Audio Cutter to split audio into non-silent bits</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.14.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 5088d8236..27c1ac973 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>debug</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: debug</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-cutter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-deinterlace.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-cutter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-deinterlace.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-debug"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">debug</span></h2> <p>debug — <a name="plugin-debug"></a>elements for testing and debugging</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.15.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -109,6 +109,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 504d15bcb..9341ad9e1 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>deinterlace</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: deinterlace</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-debug.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-directsound.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-debug.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-directsound.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-deinterlace"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">deinterlace</span></h2> <p>deinterlace — <a name="plugin-deinterlace"></a>Deinterlacer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.16.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 328cbd40f..523870851 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>directsound</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: directsound</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-deinterlace.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-deinterlace.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-directsound"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">directsound</span></h2> <p>directsound — <a name="plugin-directsound"></a>DirectSound plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.17.3"></a><h2>Plugin Information</h2> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a9d7114b5..ed5a4f5b7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dtmf</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dtmf</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-directsound.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-directsound.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-dv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-dtmf"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">dtmf</span></h2> <p>dtmf — <a name="plugin-dtmf"></a>DTMF plugins</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.18.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 2e1fa8c4a..8742ebbeb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>dv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: dv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-dv"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">dv</span></h2> <p>dv — <a name="plugin-dv"></a>DV demuxer and decoder based on libdv (libdv.sf.net)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.19.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 2cc219eee..25872f455 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>effectv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: effectv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flac.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flac.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-effectv"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">effectv</span></h2> <p>effectv — <a name="plugin-effectv"></a>effect plugins from the effectv project</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.21.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -121,6 +121,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 b027c6eba..4187720bd 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>equalizer</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: equalizer</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-equalizer"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">equalizer</span></h2> <p>equalizer — <a name="plugin-equalizer"></a>GStreamer audio equalizers</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.20.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a4e9d3d2e..8250a2ee6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flac</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flac</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-flac"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">flac</span></h2> <p>flac — <a name="plugin-flac"></a>The FLAC Lossless compressor Codec</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.22.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 1ec7bba7b..bb28a2ea8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-flac.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flxdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-flac.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flxdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-flv"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">flv</span></h2> <p>flv — <a name="plugin-flv"></a>FLV muxing and demuxing plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.23.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 649d02da7..67005ffaa 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>flxdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: flxdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-flv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-flv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-flxdec"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">flxdec</span></h2> <p>flxdec — <a name="plugin-flxdec"></a>FLC/FLI/FLX video decoder</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.24.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f9e61a8fe..72496a630 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>gdkpixbuf</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: gdkpixbuf</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-flxdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-flxdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-gdkpixbuf"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">gdkpixbuf</span></h2> <p>gdkpixbuf — <a name="plugin-gdkpixbuf"></a>GdkPixbuf-based image decoder, overlay and sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.25.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3c964066a..7f8aee8c3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>goom</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: goom</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-goom"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">goom</span></h2> <p>goom — <a name="plugin-goom"></a>GOOM visualization filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.26.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e502a23d8..2a702aa02 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>goom2k1</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: goom2k1</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-goom2k1"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">goom2k1</span></h2> <p>goom2k1 — <a name="plugin-goom2k1"></a>GOOM 2k1 visualization filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.27.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0ef2b85f9..a5ee98465 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>icydemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: icydemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-id3demux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-id3demux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-icydemux"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">icydemux</span></h2> <p>icydemux — <a name="plugin-icydemux"></a>Demux ICY tags from a stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.28.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3200f78d4..7e9db7e80 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>id3demux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: id3demux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-imagefreeze.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-imagefreeze.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-id3demux"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">id3demux</span></h2> <p>id3demux — <a name="plugin-id3demux"></a>Demux ID3v1 and ID3v2 tags from a file</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.29.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3555ab1e7..c975f7b85 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>imagefreeze</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: imagefreeze</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-id3demux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-interleave.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-id3demux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-interleave.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-imagefreeze"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">imagefreeze</span></h2> <p>imagefreeze — <a name="plugin-imagefreeze"></a>Still frame stream generator</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.30.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3c31626e5..725ba74d5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>interleave</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: interleave</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-imagefreeze.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-isomp4.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-imagefreeze.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-isomp4.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-interleave"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">interleave</span></h2> <p>interleave — <a name="plugin-interleave"></a>Audio interleaver/deinterleaver</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.31.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 656b65988..dac89672e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>isomp4</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: isomp4</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-interleave.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-jack.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-interleave.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-jack.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-isomp4"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">isomp4</span></h2> <p>isomp4 — <a name="plugin-isomp4"></a>ISO base media file format support (mp4, 3gpp, qt, mj2)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.32.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -105,6 +105,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 ac040e459..d90c1b052 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>jack</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: jack</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-isomp4.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-jpeg.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-isomp4.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-jpeg.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-jack"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">jack</span></h2> <p>jack — <a name="plugin-jack"></a>JACK audio elements</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.33.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 2da7373b7..44cbf7f06 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>jpeg</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: jpeg</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-jack.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-level.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-jack.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-level.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-jpeg"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">jpeg</span></h2> <p>jpeg — <a name="plugin-jpeg"></a>JPeg plugin library</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.34.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 afe33ea20..f65c5ad1e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>level</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: level</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-jpeg.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-matroska.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-jpeg.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-matroska.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-level"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">level</span></h2> <p>level — <a name="plugin-level"></a>Audio level plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.35.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a0f370518..f73f04e66 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>matroska</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: matroska</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-level.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-monoscope.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-level.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-monoscope.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-matroska"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">matroska</span></h2> <p>matroska — <a name="plugin-matroska"></a>Matroska and WebM stream handling</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.36.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -89,6 +89,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 042892322..98cc0579c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>monoscope</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: monoscope</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-matroska.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-mulaw.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-matroska.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-mulaw.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-monoscope"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">monoscope</span></h2> <p>monoscope — <a name="plugin-monoscope"></a>Monoscope visualization</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.37.3"></a><h2>Plugin Information</h2> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 9ec8f2cf9..262c8d9ff 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>mulaw</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: mulaw</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-monoscope.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-multifile.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-monoscope.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-multifile.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-mulaw"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">mulaw</span></h2> <p>mulaw — <a name="plugin-mulaw"></a>MuLaw audio conversion routines</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.38.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3776d6b69..1eb4482f8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>multifile</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: multifile</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-mulaw.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-multipart.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-mulaw.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-multipart.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-multifile"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">multifile</span></h2> <p>multifile — <a name="plugin-multifile"></a>Reads/Writes buffers from/to sequentially named files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.39.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e093d5275..d9072adb8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>multipart</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: multipart</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-multifile.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-navigationtest.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-multifile.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-navigationtest.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-multipart"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">multipart</span></h2> <p>multipart — <a name="plugin-multipart"></a>multipart stream manipulation</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.40.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 db56681d6..def87fbe3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>navigationtest</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: navigationtest</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-multipart.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-oss4.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-multipart.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-oss4.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-navigationtest"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">navigationtest</span></h2> <p>navigationtest — <a name="plugin-navigationtest"></a>Template for a video filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.41.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 82563e578..5f9db0d73 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>oss4</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: oss4</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-navigationtest.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-ossaudio.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-navigationtest.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-ossaudio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-oss4"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">oss4</span></h2> <p>oss4 — <a name="plugin-oss4"></a>Open Sound System (OSS) version 4 support for GStreamer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.42.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 6c6725d74..0ff5ab28e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>ossaudio</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: ossaudio</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-oss4.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-osxaudio.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-oss4.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-osxaudio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-ossaudio"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">ossaudio</span></h2> <p>ossaudio — <a name="plugin-ossaudio"></a>OSS (Open Sound System) support for GStreamer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.43.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3395e818f..3812e85d2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>osxaudio</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: osxaudio</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-ossaudio.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-osxvideo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-ossaudio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-osxvideo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-osxaudio"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">osxaudio</span></h2> <p>osxaudio — <a name="plugin-osxaudio"></a>OSX (Mac OS X) audio support for GStreamer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.44.3"></a><h2>Plugin Information</h2> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 98243b3f3..2b6881ec7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>osxvideo</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: osxvideo</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-osxaudio.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-png.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-osxaudio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-png.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-osxvideo"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">osxvideo</span></h2> <p>osxvideo — <a name="plugin-osxvideo"></a>OSX native video output plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.45.3"></a><h2>Plugin Information</h2> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 134476eb7..833e2ee79 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>png</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: png</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-osxvideo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-pulseaudio.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-osxvideo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-pulseaudio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-png"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">png</span></h2> <p>png — <a name="plugin-png"></a>PNG plugin library</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.46.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 bfa2db4fe..3443a87ef 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>pulseaudio</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: pulseaudio</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-png.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-png.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-pulseaudio"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">pulseaudio</span></h2> <p>pulseaudio — <a name="plugin-pulseaudio"></a>PulseAudio plugin library</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.47.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0bf28330b..0e2a2b6bf 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>replaygain</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: replaygain</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-pulseaudio.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-pulseaudio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-replaygain"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">replaygain</span></h2> <p>replaygain — <a name="plugin-replaygain"></a>ReplayGain volume normalization</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.48.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 da0a1e8d2..4f58e14be 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtp</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtp</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-rtp"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">rtp</span></h2> <p>rtp — <a name="plugin-rtp"></a>Real-time protocol plugins</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.49.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -328,6 +328,14 @@ <td>Payload-encodes Speex audio into a RTP packet</td> </tr> <tr> +<td><p><span class="term">rtpstreamdepay</span></p></td> +<td>Depayloads RTP/RTCP packets for streaming protocols according to RFC4571</td> +</tr> +<tr> +<td><p><span class="term">rtpstreampay</span></p></td> +<td>Payloads RTP/RTCP packets for streaming protocols according to RFC4571</td> +</tr> +<tr> <td><p><span class="term">rtpsv3vdepay</span></p></td> <td>Extracts SVQ3 video from RTP packets (no RFC)</td> </tr> @@ -369,6 +377,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 873f79922..d8222e40b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpmanager</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpmanager</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtsp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtsp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-rtpmanager"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">rtpmanager</span></h2> <p>rtpmanager — <a name="plugin-rtpmanager"></a>RTP session management plugin library</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.50.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -92,6 +92,14 @@ <td>Keep RTP packets in a queue for retransmission</td> </tr> <tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">rtprtxreceive</a></span></p></td> +<td>Receive retransmitted RTP packets according to RFC4588</td> +</tr> +<tr> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">rtprtxsend</a></span></p></td> +<td>Retransmit RTP packets when needed, according to RFC4588</td> +</tr> +<tr> <td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">rtpsession</a></span></p></td> <td>Implement an RTP session</td> </tr> @@ -105,6 +113,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 278e5125e..0488126f3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtsp</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtsp</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-shapewipe.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-shapewipe.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-rtsp"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">rtsp</span></h2> <p>rtsp — <a name="plugin-rtsp"></a>transfer data via RTSP</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.51.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 63fee133b..db60d1faf 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>shapewipe</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: shapewipe</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtsp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-shout2send.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtsp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-shout2send.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-shapewipe"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">shapewipe</span></h2> <p>shapewipe — <a name="plugin-shapewipe"></a>Shape Wipe transition filter</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.52.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 bc272d37c..cb2a76cd5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>shout2send</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: shout2send</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-shapewipe.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-smpte.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-shapewipe.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-smpte.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-shout2send"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">shout2send</span></h2> <p>shout2send — <a name="plugin-shout2send"></a>Sends data to an icecast server using libshout2</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.53.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -67,7 +67,7 @@ <col> </colgroup> <tbody><tr> -<td><p><span class="term">shout2send</span></p></td> +<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-shout2send.html" title="shout2send">shout2send</a></span></p></td> <td>Sends data to an icecast server</td> </tr></tbody> </table></div> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 fa0b65c6e..8f89301a6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>smpte</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: smpte</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-shout2send.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-soup.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-shout2send.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-soup.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-smpte"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">smpte</span></h2> <p>smpte — <a name="plugin-smpte"></a>Apply the standard SMPTE transitions on video images</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.54.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 baf47304a..a1da43d85 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>soup</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: soup</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-smpte.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-spectrum.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-smpte.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-spectrum.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-soup"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">soup</span></h2> <p>soup — <a name="plugin-soup"></a>libsoup HTTP client src/sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.55.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 7a35b99f0..68cf1ce65 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>spectrum</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: spectrum</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-soup.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-speex.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-soup.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-speex.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-spectrum"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">spectrum</span></h2> <p>spectrum — <a name="plugin-spectrum"></a>Run an FFT on the audio signal, output spectrum data</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.56.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e2cce23cc..c753741f7 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>speex</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: speex</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-spectrum.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-taglib.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-spectrum.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-taglib.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-speex"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">speex</span></h2> <p>speex — <a name="plugin-speex"></a>Speex plugin library</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.57.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 90e3a6824..acd62cb45 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>taglib</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: taglib</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-speex.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-udp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-speex.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-udp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-taglib"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">taglib</span></h2> <p>taglib — <a name="plugin-taglib"></a>Tag writing plug-in based on taglib</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.58.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a65924f8a..e3323d9e4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>udp</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: udp</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-taglib.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-video4linux2.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-taglib.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-video4linux2.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-udp"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">udp</span></h2> <p>udp — <a name="plugin-udp"></a>transfer data via UDP</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.59.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -89,6 +89,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 04d344026..195267907 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>video4linux2</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: video4linux2</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-udp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videobox.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-udp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videobox.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-video4linux2"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">video4linux2</span></h2> <p>video4linux2 — <a name="plugin-video4linux2"></a>elements for Video 4 Linux</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.60.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -85,6 +85,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c0f56b65e..e6441a26c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videobox</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videobox</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-video4linux2.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videocrop.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-video4linux2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videocrop.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-videobox"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">videobox</span></h2> <p>videobox — <a name="plugin-videobox"></a>resizes a video by adding borders or cropping</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.61.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 810d8412b..4641104e2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videocrop</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videocrop</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videobox.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videobox.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videofilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-videocrop"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">videocrop</span></h2> <p>videocrop — <a name="plugin-videocrop"></a>Crops video into a user-defined region</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.62.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 5f4904ece..11faec2e8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videofilter</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videofilter</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videocrop.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videomixer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videocrop.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-videomixer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-videofilter"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">videofilter</span></h2> <p>videofilter — <a name="plugin-videofilter"></a>Video filters plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.63.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -89,6 +89,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f15598fe4..88d260dc6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videomixer</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videomixer</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videofilter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-vpx.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videofilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-vpx.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-videomixer"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">videomixer</span></h2> <p>videomixer — <a name="plugin-videomixer"></a>Video mixer</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.64.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 d168c3d36..098951c3e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>vpx</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: vpx</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videomixer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-waveform.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-videomixer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-waveform.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-vpx"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">vpx</span></h2> <p>vpx — <a name="plugin-vpx"></a>VP8 plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.65.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -89,6 +89,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 868c485d7..59a87a4d2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>waveform</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: waveform</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-vpx.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-wavenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-vpx.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-wavenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-waveform"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">waveform</span></h2> <p>waveform — <a name="plugin-waveform"></a>WaveForm API based plugin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.66.3"></a><h2>Plugin Information</h2> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e6a0fdea6..a092e7bed 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-waveform.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-wavpack.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-waveform.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-wavpack.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-wavenc"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">wavenc</span></h2> <p>wavenc — <a name="plugin-wavenc"></a>Encode raw audio into WAV</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.67.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0c94f5760..bc045a387 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavpack</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavpack</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-wavenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-wavparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-wavenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-wavparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-wavpack"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">wavpack</span></h2> <p>wavpack — <a name="plugin-wavpack"></a>Wavpack lossless/lossy audio format handling</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.68.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -81,6 +81,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 37bf82976..872ff60bc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-wavpack.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-ximagesrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-wavpack.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-ximagesrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-wavparse"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">wavparse</span></h2> <p>wavparse — <a name="plugin-wavparse"></a>Parse a .wav file into raw audio</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.69.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c0b933155..dd4ffd97c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>ximagesrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: ximagesrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-wavparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-y4menc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-wavparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-y4menc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-ximagesrc"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">ximagesrc</span></h2> <p>ximagesrc — <a name="plugin-ximagesrc"></a>X11 video input plugin using standard Xlib calls</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.70.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 910e0723f..c1b2d5164 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html @@ -2,22 +2,22 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>y4menc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: y4menc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-ximagesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="ch03.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-ximagesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-plugin-y4menc"></a><div class="titlepage"></div> @@ -26,7 +26,7 @@ <h2><span class="refentrytitle">y4menc</span></h2> <p>y4menc — <a name="plugin-y4menc"></a>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="id-1.3.71.3"></a><h2>Plugin Information</h2> @@ -42,7 +42,7 @@ </tr> <tr> <td><p><span class="term">version</span></p></td> -<td>1.2.4</td> +<td>1.3.1</td> </tr> <tr> <td><p><span class="term">run-time license</span></p></td> @@ -75,6 +75,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 5f6772750..04af8c560 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>pngdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: pngdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-osxvideosink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-pngenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-pngdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-pngdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-pngdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pngdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pngdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-osxvideosink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-pngenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-pngdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,22 +30,29 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-pngdec.top_of_page"></a>pngdec</span></h2> <p>pngdec — Decode a png video frame to a raw image</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-pngdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstPngDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-pngdec.html#GstPngDec-struct" title="struct GstPngDec">GstPngDec</a>; -</pre> +<a name="GstPngDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-pngdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-pngdec.html#GstPngDec-struct" title="struct GstPngDec">GstPngDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-pngdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a> - +----GstPngDec +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a> + <span class="lineart">╰──</span> GstPngDec </pre> </div> <div class="refsect1"> @@ -58,7 +60,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.96.5.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.96.6.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -84,7 +86,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.96.5.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.96.6.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -139,7 +141,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-pngdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-pngdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-pngdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstPngDec-struct"></a><h3>struct GstPngDec</h3> <pre class="programlisting">struct GstPngDec;</pre> @@ -150,6 +155,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 41f803a59..dab3ba0b8 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>pngenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: pngenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-pngdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-progressreport.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-pngenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-pngenc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-pngenc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-pngenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-pngenc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pngenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pngenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pngenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pngenc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-pngdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-progressreport.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-pngenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,51 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-pngenc.top_of_page"></a>pngenc</span></h2> <p>pngenc — Encode a video frame to a .png image</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-pngenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstPngEnc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-pngenc.html#GstPngEnc-struct" title="struct GstPngEnc">GstPngEnc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-pngenc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level" title="The “compression-level†property">compression-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot" title="The “snapshot†property">snapshot</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstPngEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-pngenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-pngenc.html#GstPngEnc-struct" title="struct GstPngEnc">GstPngEnc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-pngenc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a> - +----GstPngEnc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a> + <span class="lineart">╰──</span> GstPngEnc </pre> </div> <div class="refsect1"> @@ -64,18 +86,11 @@ GstPngEnc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-pngenc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level" title='The "compression-level" property'>compression-level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot" title='The "snapshot" property'>snapshot</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"> <a name="gst-plugins-good-plugins-pngenc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.97.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.97.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -101,7 +116,7 @@ GstPngEnc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.97.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.97.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -156,7 +171,10 @@ GstPngEnc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-pngenc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-pngenc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-pngenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstPngEnc-struct"></a><h3>struct GstPngEnc</h3> <pre class="programlisting">struct GstPngEnc;</pre> @@ -167,23 +185,25 @@ GstPngEnc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-pngenc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstPngEnc--compression-level"></a><h3>The <code class="literal">"compression-level"</code> property</h3> -<pre class="programlisting"> "compression-level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstPngEnc--compression-level"></a><h3>The <code class="literal">“compression-levelâ€</code> property</h3> +<pre class="programlisting"> “compression-level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>PNG compression level.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 9</p> <p>Default value: 6</p> </div> <hr> <div class="refsect2"> -<a name="GstPngEnc--snapshot"></a><h3>The <code class="literal">"snapshot"</code> property</h3> -<pre class="programlisting"> "snapshot" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstPngEnc--snapshot"></a><h3>The <code class="literal">“snapshotâ€</code> property</h3> +<pre class="programlisting"> “snapshot†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Send EOS after encoding a frame, useful for snapshots.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 54e417147..140bda38e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html +++ b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>progressreport</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: progressreport</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-pngenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-pulsesink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-progressreport.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-progressreport.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-progressreport.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-progressreport.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-progressreport.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-progressreport.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-progressreport.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-pngenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-pulsesink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-progressreport"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,60 +31,82 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-progressreport.top_of_page"></a>progressreport</span></h2> <p>progressreport — Periodically query and report on processing progress</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-progressreport.synopsis"></a><h2>Synopsis</h2> -<a name="GstProgressReport"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport-struct" title="struct GstProgressReport">GstProgressReport</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-progressreport.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstProgressReport -</pre> +<a name="gst-plugins-good-plugins-progressreport.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent" title="The “silent†property">silent</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq" title="The “update-freq†property">update-freq</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format" title="The “format†property">format</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--do-query" title="The “do-query†property">do-query</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstProgressReport"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-progressreport.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport-struct" title="struct GstProgressReport">GstProgressReport</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-progressreport.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent" title='The "silent" property'>silent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq" title='The "update-freq" property'>update-freq</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format" title='The "format" property'>format</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-progressreport.html#GstProgressReport--do-query" title='The "do-query" property'>do-query</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-progressreport.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstProgressReport </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-progressreport.description"></a><h2>Description</h2> -<p> -The progressreport element can be put into a pipeline to report progress, +<p>The progressreport element can be put into a pipeline to report progress, which is done by doing upstream duration and position queries in regular (real-time) intervals. Both the interval and the prefered query format -can be specified via the <a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq" title='The "update-freq" property'><span class="type">"update-freq"</span></a> and the -<a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format" title='The "format" property'><span class="type">"format"</span></a> property. -</p> -<p> -Element messages containing a "progress" structure are posted on the bus -whenever progress has been queried (since gst-plugins-good 0.10.6 only). -</p> -<p> -Since the element was originally designed for debugging purposes, it will +can be specified via the <a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--update-freq" title="The “update-freq†property"><span class="type">“update-freqâ€</span></a> and the +<a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--format" title="The “format†property"><span class="type">“formatâ€</span></a> property.</p> +<p>Element messages containing a "progress" structure are posted on the bus +whenever progress has been queried (since gst-plugins-good 0.10.6 only).</p> +<p>Since the element was originally designed for debugging purposes, it will by default also print information about the current progress to the -terminal. This can be prevented by setting the <a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent" title='The "silent" property'><span class="type">"silent"</span></a> -property to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. -</p> -<p> -This element is most useful in transcoding pipelines or other situations +terminal. This can be prevented by setting the <a class="link" href="gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent" title="The “silent†property"><span class="type">“silentâ€</span></a> +property to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p> +<p>This element is most useful in transcoding pipelines or other situations where just querying the pipeline might not lead to the wanted result. For progress in TIME format, the element is best placed in a 'raw stream' -section of the pipeline (or after any demuxers/decoders/parsers). -</p> -<p> -Three more things should be pointed out: firstly, the element will only +section of the pipeline (or after any demuxers/decoders/parsers).</p> +<p>Three more things should be pointed out: firstly, the element will only query progress when data flow happens. If data flow is stalled for some reason, no progress messages will be posted. Secondly, there are other elements (like qtdemux, for example) that may also post "progress" element @@ -99,12 +115,9 @@ messages they receive, if needed. Finally, applications should not take action on receiving notification of progress being 100%, they should only take action when they receive an EOS message (since the progress reported is in reference to an internal point of a pipeline and not the pipeline as -a whole). -</p> -<p> -</p> +a whole).</p> <div class="refsect2"> -<a name="id-1.2.98.6.7.1"></a><h3>Example launch line</h3> +<a name="id-1.2.98.7.7"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -128,12 +141,10 @@ a whole). </div> This shows a progress query where no duration is available. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.98.6.8.1"></a><h3>Element Information</h3> +<a name="id-1.2.98.7.8.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -159,7 +170,7 @@ a whole). </div> <hr> <div class="refsect2"> -<a name="id-1.2.98.6.8.2"></a><h3>Element Pads</h3> +<a name="id-1.2.98.7.8.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -214,7 +225,10 @@ a whole). </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-progressreport.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-progressreport.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-progressreport.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstProgressReport-struct"></a><h3>struct GstProgressReport</h3> <pre class="programlisting">struct GstProgressReport;</pre> @@ -225,37 +239,41 @@ a whole). <div class="refsect1"> <a name="gst-plugins-good-plugins-progressreport.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstProgressReport--silent"></a><h3>The <code class="literal">"silent"</code> property</h3> -<pre class="programlisting"> "silent" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstProgressReport--silent"></a><h3>The <code class="literal">“silentâ€</code> property</h3> +<pre class="programlisting"> “silent†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Do not print output to stdout.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstProgressReport--update-freq"></a><h3>The <code class="literal">"update-freq"</code> property</h3> -<pre class="programlisting"> "update-freq" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstProgressReport--update-freq"></a><h3>The <code class="literal">“update-freqâ€</code> property</h3> +<pre class="programlisting"> “update-freq†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of seconds between reports when data is flowing.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 5</p> </div> <hr> <div class="refsect2"> -<a name="GstProgressReport--format"></a><h3>The <code class="literal">"format"</code> property</h3> -<pre class="programlisting"> "format" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstProgressReport--format"></a><h3>The <code class="literal">“formatâ€</code> property</h3> +<pre class="programlisting"> “format†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Format to use for the querying.</p> +<p>Flags: Read / Write</p> <p>Default value: "auto"</p> </div> <hr> <div class="refsect2"> -<a name="GstProgressReport--do-query"></a><h3>The <code class="literal">"do-query"</code> property</h3> -<pre class="programlisting"> "do-query" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstProgressReport--do-query"></a><h3>The <code class="literal">“do-queryâ€</code> property</h3> +<pre class="programlisting"> “do-query†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use a query instead of buffer metadata to determine stream position.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 26ebe9bdc..e099011b5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>pulsesink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: pulsesink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-progressreport.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-pulsesrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-pulsesink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-pulsesink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-pulsesink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-pulsesink.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-pulsesink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-progressreport.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-pulsesrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-pulsesink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,23 +32,94 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-pulsesink.top_of_page"></a>pulsesink</span></h2> <p>pulsesink — Plays audio to a PulseAudio server</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-pulsesink.synopsis"></a><h2>Synopsis</h2> -<a name="GstPulseSink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink-struct" title="struct GstPulseSink">GstPulseSink</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-pulsesink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--server" title="The “server†property">server</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--volume" title="The “volume†property">volume</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--mute" title="The “mute†property">mute</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client" title="The “client†property">client</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--stream-properties" title="The “stream-properties†property">stream-properties</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name" title="The “client-name†property">client-name</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--current-device" title="The “current-device†property">current-device</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstPulseSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-pulsesink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink-struct" title="struct GstPulseSink">GstPulseSink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> - +----GstPulseSink +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a> + <span class="lineart">╰──</span> GstPulseSink </pre> </div> <div class="refsect1"> @@ -65,25 +129,11 @@ GstPulseSink implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-pulsesink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device" title='The "device" property'>device</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-pulsesink.html#GstPulseSink--server" title='The "server" property'>server</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-pulsesink.html#GstPulseSink--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--volume" title='The "volume" property'>volume</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--mute" title='The "mute" property'>mute</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client" title='The "client" property'>client</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-pulsesink.html#GstPulseSink--stream-properties" title='The "stream-properties" property'>stream-properties</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name" title='The "client-name" property'>client-name</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-pulsesink.html#GstPulseSink--current-device" title='The "current-device" property'>current-device</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesink.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.99.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.99.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -109,7 +159,7 @@ GstPulseSink implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.99.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.99.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -168,7 +218,10 @@ GstPulseSink implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-pulsesink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-pulsesink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-pulsesink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstPulseSink-struct"></a><h3>struct GstPulseSink</h3> <pre class="programlisting">struct GstPulseSink;</pre> @@ -179,71 +232,80 @@ GstPulseSink implements <div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstPulseSink--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSink--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio sink device to connect to.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--server"></a><h3>The <code class="literal">"server"</code> property</h3> -<pre class="programlisting"> "server" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSink--server"></a><h3>The <code class="literal">“serverâ€</code> property</h3> +<pre class="programlisting"> “server†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio server to connect to.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstPulseSink--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Human-readable name of the sound device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--volume"></a><h3>The <code class="literal">"volume"</code> property</h3> -<pre class="programlisting"> "volume" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstPulseSink--volume"></a><h3>The <code class="literal">“volumeâ€</code> property</h3> +<pre class="programlisting"> “volume†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Linear volume of this stream, 1.0=100%.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,10]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--mute"></a><h3>The <code class="literal">"mute"</code> property</h3> -<pre class="programlisting"> "mute" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstPulseSink--mute"></a><h3>The <code class="literal">“muteâ€</code> property</h3> +<pre class="programlisting"> “mute†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Mute state of this stream.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--client"></a><h3>The <code class="literal">"client"</code> property</h3> -<pre class="programlisting"> "client" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSink--client"></a><h3>The <code class="literal">“clientâ€</code> property</h3> +<pre class="programlisting"> “client†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio client name to use.</p> +<p>Flags: Read / Write</p> <p>Default value: "<unknown>"</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--stream-properties"></a><h3>The <code class="literal">"stream-properties"</code> property</h3> -<pre class="programlisting"> "stream-properties" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstPulseSink--stream-properties"></a><h3>The <code class="literal">“stream-propertiesâ€</code> property</h3> +<pre class="programlisting"> “stream-properties†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>list of pulseaudio stream properties.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3> -<pre class="programlisting"> "client-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSink--client-name"></a><h3>The <code class="literal">“client-nameâ€</code> property</h3> +<pre class="programlisting"> “client-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio client name to use.</p> +<p>Flags: Read / Write</p> <p>Default value: "lt-gst-plugins-good-plugins-scan"</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSink--current-device"></a><h3>The <code class="literal">"current-device"</code> property</h3> -<pre class="programlisting"> "current-device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstPulseSink--current-device"></a><h3>The <code class="literal">“current-deviceâ€</code> property</h3> +<pre class="programlisting"> “current-device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The current PulseAudio sink device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 2e2d24b6e..d215f9c86 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>pulsesrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: pulsesrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-pulsesink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-quarktv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-pulsesrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-pulsesrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-pulsesrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-pulsesrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-pulsesrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-pulsesrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-pulsesink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-quarktv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-pulsesrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,25 +32,101 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-pulsesrc.top_of_page"></a>pulsesrc</span></h2> <p>pulsesrc — Captures audio from a PulseAudio server</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-pulsesrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstPulseSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc-struct" title="struct GstPulseSrc">GstPulseSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-pulsesrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--server" title="The “server†property">server</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--stream-properties" title="The “stream-properties†property">stream-properties</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client" title="The “client†property">client</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--mute" title="The “mute†property">mute</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--source-output-index" title="The “source-output-index†property">source-output-index</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume" title="The “volume†property">volume</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name" title="The “client-name†property">client-name</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--current-device" title="The “current-device†property">current-device</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstPulseSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-pulsesrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc-struct" title="struct GstPulseSrc">GstPulseSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc">GstAudioSrc</a> - +----GstPulseSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc">GstAudioSrc</a> + <span class="lineart">╰──</span> GstPulseSrc </pre> </div> <div class="refsect1"> @@ -67,26 +136,11 @@ GstPulseSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe">GstPropertyProbe</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-pulsesrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device" title='The "device" property'>device</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-pulsesrc.html#GstPulseSrc--server" title='The "server" property'>server</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-pulsesrc.html#GstPulseSrc--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--stream-properties" title='The "stream-properties" property'>stream-properties</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client" title='The "client" property'>client</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-pulsesrc.html#GstPulseSrc--mute" title='The "mute" property'>mute</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--source-output-index" title='The "source-output-index" property'>source-output-index</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume" title='The "volume" property'>volume</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name" title='The "client-name" property'>client-name</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-pulsesrc.html#GstPulseSrc--current-device" title='The "current-device" property'>current-device</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesrc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.100.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.100.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -112,7 +166,7 @@ GstPulseSrc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.100.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.100.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -151,7 +205,10 @@ GstPulseSrc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-pulsesrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-pulsesrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-pulsesrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstPulseSrc-struct"></a><h3>struct GstPulseSrc</h3> <pre class="programlisting">struct GstPulseSrc;</pre> @@ -162,78 +219,88 @@ GstPulseSrc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-pulsesrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstPulseSrc--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSrc--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio source device to connect to.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--server"></a><h3>The <code class="literal">"server"</code> property</h3> -<pre class="programlisting"> "server" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSrc--server"></a><h3>The <code class="literal">“serverâ€</code> property</h3> +<pre class="programlisting"> “server†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio server to connect to.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstPulseSrc--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Human-readable name of the sound device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--stream-properties"></a><h3>The <code class="literal">"stream-properties"</code> property</h3> -<pre class="programlisting"> "stream-properties" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstPulseSrc--stream-properties"></a><h3>The <code class="literal">“stream-propertiesâ€</code> property</h3> +<pre class="programlisting"> “stream-properties†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>list of pulseaudio stream properties.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--client"></a><h3>The <code class="literal">"client"</code> property</h3> -<pre class="programlisting"> "client" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSrc--client"></a><h3>The <code class="literal">“clientâ€</code> property</h3> +<pre class="programlisting"> “client†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio client_name_to_use.</p> +<p>Flags: Read / Write</p> <p>Default value: "<unknown>"</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--mute"></a><h3>The <code class="literal">"mute"</code> property</h3> -<pre class="programlisting"> "mute" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstPulseSrc--mute"></a><h3>The <code class="literal">“muteâ€</code> property</h3> +<pre class="programlisting"> “mute†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Mute state of this stream.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--source-output-index"></a><h3>The <code class="literal">"source-output-index"</code> property</h3> -<pre class="programlisting"> "source-output-index" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<a name="GstPulseSrc--source-output-index"></a><h3>The <code class="literal">“source-output-indexâ€</code> property</h3> +<pre class="programlisting"> “source-output-index†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The index of the PulseAudio source output corresponding to this record stream.</p> +<p>Flags: Read</p> <p>Default value: 4294967295</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--volume"></a><h3>The <code class="literal">"volume"</code> property</h3> -<pre class="programlisting"> "volume" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstPulseSrc--volume"></a><h3>The <code class="literal">“volumeâ€</code> property</h3> +<pre class="programlisting"> “volume†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Linear volume of this stream, 1.0=100%.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,10]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--client-name"></a><h3>The <code class="literal">"client-name"</code> property</h3> -<pre class="programlisting"> "client-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstPulseSrc--client-name"></a><h3>The <code class="literal">“client-nameâ€</code> property</h3> +<pre class="programlisting"> “client-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The PulseAudio client_name_to_use.</p> +<p>Flags: Read / Write</p> <p>Default value: "lt-gst-plugins-good-plugins-scan"</p> </div> <hr> <div class="refsect2"> -<a name="GstPulseSrc--current-device"></a><h3>The <code class="literal">"current-device"</code> property</h3> -<pre class="programlisting"> "current-device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstPulseSrc--current-device"></a><h3>The <code class="literal">“current-deviceâ€</code> property</h3> +<pre class="programlisting"> “current-device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The current PulseAudio source device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 df36fb3ae..b864805e9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>qtdemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: qtdemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-quarktv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-qtmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-qtdemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-qtdemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-qtdemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-qtdemux.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtdemux.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-quarktv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-qtmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-qtdemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,42 +31,52 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-qtdemux.top_of_page"></a>qtdemux</span></h2> <p>qtdemux — Demultiplex a QuickTime file into audio and video streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-qtdemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstQTDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct" title="struct GstQTDemux">GstQTDemux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-qtdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstQTDemux -</pre> +<a name="gst-plugins-good-plugins-qtdemux.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect" title="The “got-redirect†signal">got-redirect</a></td> +<td class="signal_flags"> </td> +</tr></tbody> +</table></div> +</div> +<a name="GstQTDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-qtdemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct" title="struct GstQTDemux">GstQTDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-qtdemux.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect" title='The "got-redirect" signal'>got-redirect</a>" +<a name="gst-plugins-good-plugins-qtdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstQTDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-qtdemux.description"></a><h2>Description</h2> -<p> -Demuxes a .mov file into raw or compressed audio and/or video streams. -</p> -<p> -This element supports both push and pull-based scheduling, depending on the -capabilities of the upstream elements. -</p> -<p> -</p> +<p>Demuxes a .mov file into raw or compressed audio and/or video streams.</p> +<p>This element supports both push and pull-based scheduling, depending on the +capabilities of the upstream elements.</p> <div class="refsect2"> -<a name="id-1.2.102.6.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.102.7.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -88,15 +92,10 @@ an automatically detected soundcard and videosink. If the MOV file contains compressed audio or video data, this will only work if you have the right decoder elements/plugins installed. </div> -<p> -</p> -<p> -Last reviewed on 2006-12-29 (0.10.5) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.102.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.102.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -122,7 +121,7 @@ Last reviewed on 2006-12-29 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="id-1.2.102.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.102.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -237,7 +236,10 @@ Last reviewed on 2006-12-29 (0.10.5) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-qtdemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-qtdemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-qtdemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstQTDemux-struct"></a><h3>struct GstQTDemux</h3> <pre class="programlisting">struct GstQTDemux;</pre> @@ -248,33 +250,40 @@ Last reviewed on 2006-12-29 (0.10.5) <div class="refsect1"> <a name="gst-plugins-good-plugins-qtdemux.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstQTDemux-got-redirect"></a><h3>The <code class="literal">"got-redirect"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-qtdemux.html#GstQTDemux"><span class="type">GstQTDemux</span></a> *gstqtdemux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<a name="GstQTDemux-got-redirect"></a><h3>The <code class="literal">“got-redirectâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-qtdemux.html#GstQTDemux"><span class="type">GstQTDemux</span></a> *gstqtdemux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.102.10.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstqtdemux</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstqtdemux</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> </div> +</div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 957247f49..c50ab4ee6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>qtmoovrecover</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: qtmoovrecover</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-qtmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-radioactv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-qtmoovrecover.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-qtmoovrecover.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-qtmoovrecover.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-qtmoovrecover.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmoovrecover.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmoovrecover.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmoovrecover.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-qtmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-radioactv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-qtmoovrecover"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,26 +32,98 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-qtmoovrecover.top_of_page"></a>qtmoovrecover</span></h2> <p>qtmoovrecover — Utility element for recovering unfinished quicktime files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-qtmoovrecover.synopsis"></a><h2>Synopsis</h2> -<a name="GstQTMoovRecover"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct" title="struct GstQTMoovRecover">GstQTMoovRecover</a>; -struct <a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass" title="struct GstQTMoovRecoverClass">GstQTMoovRecoverClass</a>; -<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type" title="gst_qt_moov_recover_get_type ()">gst_qt_moov_recover_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>); -<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register" title="gst_qt_moov_recover_register ()">gst_qt_moov_recover_register</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPlugin.html"><span class="type">GstPlugin</span></a> *plugin</code></em>); -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-qtmoovrecover.functions"></a><h2>Functions</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="functions_return"> +<col class="functions_name"> +</colgroup> +<tbody> +<tr> +<td class="function_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> +</td> +<td class="function_name"> +<a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type" title="gst_qt_moov_recover_get_type ()">gst_qt_moov_recover_get_type</a> <span class="c_punctuation">()</span> +</td> +</tr> +<tr> +<td class="function_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> +</td> +<td class="function_name"> +<a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register" title="gst_qt_moov_recover_register ()">gst_qt_moov_recover_register</a> <span class="c_punctuation">()</span> +</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-qtmoovrecover.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input" title="The “broken-input†property">broken-input</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode" title="The “faststart-mode†property">faststart-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output" title="The “fixed-output†property">fixed-output</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input" title="The “recovery-input†property">recovery-input</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstQTMoovRecover"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-qtmoovrecover.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody> +<tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct" title="struct GstQTMoovRecover">GstQTMoovRecover</a></td> +</tr> +<tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass" title="struct GstQTMoovRecoverClass">GstQTMoovRecoverClass</a></td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-qtmoovrecover.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html">GstPipeline</a> - +----GstQTMoovRecover +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html">GstPipeline</a> + <span class="lineart">╰──</span> GstQTMoovRecover </pre> </div> <div class="refsect1"> @@ -68,20 +133,9 @@ GstQTMoovRecover implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-qtmoovrecover.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input" title='The "broken-input" property'>broken-input</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-qtmoovrecover.html#GstQTMoovRecover--faststart-mode" title='The "faststart-mode" property'>faststart-mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output" title='The "fixed-output" property'>fixed-output</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-qtmoovrecover.html#GstQTMoovRecover--recovery-input" title='The "recovery-input" property'>recovery-input</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"> <a name="gst-plugins-good-plugins-qtmoovrecover.description"></a><h2>Description</h2> -<p> -</p> <div class="refsect2"> -<a name="id-1.2.104.7.2.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.104.9.2"></a><h3>Example pipelines</h3> <p> This element recovers quicktime files created with qtmux using the moov recovery feature. @@ -94,15 +148,10 @@ TODO <p> </p> </div> -<p> -</p> -<p> -Documentation last reviewed on 2011-04-21 -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.104.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.104.9.3.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -128,41 +177,53 @@ Documentation last reviewed on 2011-04-21 </div> <hr> <div class="refsect2"> -<a name="id-1.2.104.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.104.9.3.2"></a><h3>Element Pads</h3> </div> </div> <p> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-qtmoovrecover.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-qtmoovrecover.functions_details"></a><h2>Functions</h2> <div class="refsect2"> -<a name="GstQTMoovRecover-struct"></a><h3>struct GstQTMoovRecover</h3> -<pre class="programlisting">struct GstQTMoovRecover;</pre> +<a name="gst-qt-moov-recover-get-type"></a><h3>gst_qt_moov_recover_get_type ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> +gst_qt_moov_recover_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p> </p> +<div class="refsect3"> +<a name="id-1.2.104.10.2.5"></a><h4>Returns</h4> +<p></p> +</div> </div> <hr> <div class="refsect2"> -<a name="GstQTMoovRecoverClass"></a><h3>struct GstQTMoovRecoverClass</h3> -<pre class="programlisting">struct GstQTMoovRecoverClass { - GstPipelineClass parent_class; -}; -</pre> +<a name="gst-qt-moov-recover-register"></a><h3>gst_qt_moov_recover_register ()</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> +gst_qt_moov_recover_register (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPlugin.html"><span class="type">GstPlugin</span></a> *plugin</code></em>);</pre> <p> </p> +<div class="refsect3"> +<a name="id-1.2.104.10.3.5"></a><h4>Returns</h4> +<p></p> </div> -<hr> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-qtmoovrecover.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> -<a name="gst-qt-moov-recover-get-type"></a><h3>gst_qt_moov_recover_get_type ()</h3> -<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> gst_qt_moov_recover_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> +<a name="GstQTMoovRecover-struct"></a><h3>struct GstQTMoovRecover</h3> +<pre class="programlisting">struct GstQTMoovRecover;</pre> <p> </p> </div> <hr> <div class="refsect2"> -<a name="gst-qt-moov-recover-register"></a><h3>gst_qt_moov_recover_register ()</h3> -<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_qt_moov_recover_register (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPlugin.html"><span class="type">GstPlugin</span></a> *plugin</code></em>);</pre> +<a name="GstQTMoovRecoverClass"></a><h3>struct GstQTMoovRecoverClass</h3> +<pre class="programlisting">struct GstQTMoovRecoverClass { + GstPipelineClass parent_class; +}; +</pre> <p> </p> </div> @@ -170,36 +231,40 @@ Documentation last reviewed on 2011-04-21 <div class="refsect1"> <a name="gst-plugins-good-plugins-qtmoovrecover.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstQTMoovRecover--broken-input"></a><h3>The <code class="literal">"broken-input"</code> property</h3> -<pre class="programlisting"> "broken-input" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstQTMoovRecover--broken-input"></a><h3>The <code class="literal">“broken-inputâ€</code> property</h3> +<pre class="programlisting"> “broken-input†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Path to broken input file. (If qtmux was on faststart mode, this file is the faststart file).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMoovRecover--faststart-mode"></a><h3>The <code class="literal">"faststart-mode"</code> property</h3> -<pre class="programlisting"> "faststart-mode" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstQTMoovRecover--faststart-mode"></a><h3>The <code class="literal">“faststart-modeâ€</code> property</h3> +<pre class="programlisting"> “faststart-mode†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If the broken input is from faststart mode.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMoovRecover--fixed-output"></a><h3>The <code class="literal">"fixed-output"</code> property</h3> -<pre class="programlisting"> "fixed-output" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstQTMoovRecover--fixed-output"></a><h3>The <code class="literal">“fixed-outputâ€</code> property</h3> +<pre class="programlisting"> “fixed-output†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Path to write the fixed file to (used as output).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMoovRecover--recovery-input"></a><h3>The <code class="literal">"recovery-input"</code> property</h3> -<pre class="programlisting"> "recovery-input" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstQTMoovRecover--recovery-input"></a><h3>The <code class="literal">“recovery-inputâ€</code> property</h3> +<pre class="programlisting"> “recovery-input†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Path to recovery file (used as input).</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 bcdd89f62..ef18b2c9a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>qtmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: qtmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-qtdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-qtmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-qtmux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-qtmux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-qtmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-qtmux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-qtmux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-qtdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-qtmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,21 +32,87 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-qtmux.top_of_page"></a>qtmux</span></h2> <p>qtmux — Muxer for quicktime(.mov) files</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-qtmux.synopsis"></a><h2>Synopsis</h2> -<a name="GstQTMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux-struct" title="struct GstQTMux">GstQTMux</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-qtmux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstQTMuxDtsMethods</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method" title="The “dts-method†property">dts-method</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart" title="The “faststart†property">faststart</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart-file" title="The “faststart-file†property">faststart-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--fragment-duration" title="The “fragment-duration†property">fragment-duration</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--moov-recovery-file" title="The “moov-recovery-file†property">moov-recovery-file</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale" title="The “movie-timescale†property">movie-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--presentation-time" title="The “presentation-time†property">presentation-time</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable" title="The “streamable†property">streamable</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale" title="The “trak-timescale†property">trak-timescale</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstQTMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-qtmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux-struct" title="struct GstQTMux">GstQTMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-qtmux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstQTMux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstQTMux </pre> </div> <div class="refsect1"> @@ -63,30 +122,11 @@ GstQTMux implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and GstTagXmpWriter.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-qtmux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method" title='The "dts-method" property'>dts-method</a>" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart" title='The "faststart" property'>faststart</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart-file" title='The "faststart-file" property'>faststart-file</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--fragment-duration" title='The "fragment-duration" property'>fragment-duration</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--moov-recovery-file" title='The "moov-recovery-file" property'>moov-recovery-file</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale" title='The "movie-timescale" property'>movie-timescale</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--presentation-time" title='The "presentation-time" property'>presentation-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable" title='The "streamable" property'>streamable</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale" title='The "trak-timescale" property'>trak-timescale</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-qtmux.description"></a><h2>Description</h2> -<p> -This element merges streams (audio and video) into QuickTime(.mov) files. -</p> -<p> -The following background intends to explain why various similar muxers -are present in this plugin. -</p> -<p> -The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> +<p>This element merges streams (audio and video) into QuickTime(.mov) files.</p> +<p>The following background intends to explain why various similar muxers +are present in this plugin.</p> +<p>The <a class="ulink" href="http://www.apple.com/quicktime/resources/qtfileformat.pdf" target="_top"> QuickTime file format specification</a> served as basis for the MP4 file format specification (mp4mux), and as such the QuickTime file structure is nearly identical to the so-called ISO Base Media file format defined in @@ -95,32 +135,23 @@ In turn, the latter ISO Base Media format was further specialized as a Motion JPEG-2000 file format in ISO 15444-3 (mj2mux) and in various 3GPP(2) specs (gppmux). The fragmented file features defined (only) in ISO Base Media are used by -ISMV files making up (a.o.) Smooth Streaming (ismlmux). -</p> -<p> -A few properties (<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale" title='The "movie-timescale" property'>movie-timescale</a>, -<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale" title='The "trak-timescale" property'>trak-timescale</a>) allow adjusting -some technical parameters, which might be useful in (rare) cases to resolve -compatibility issues in some situations. -</p> -<p> -Some other properties influence the result more fundamentally. -A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, -somewhat contrary to this usually being called "the header". -However, a <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart" title='The "faststart" property'>faststart</a> file will -(with some effort) arrange this to be located near start of the file, -which then allows it e.g. to be played while downloading. -Alternatively, rather than having one chunk of metadata at start (or end), -there can be some metadata at start and most of the other data can be spread -out into fragments of <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--fragment-duration" title='The "fragment-duration" property'>fragment-duration</a>. +ISMV files making up (a.o.) Smooth Streaming (ismlmux).</p> +<p>A few properties (<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--movie-timescale" title="The “movie-timescale†property"><span class="type">“movie-timescaleâ€</span></a>, <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale" title="The “trak-timescale†property"><span class="type">“trak-timescaleâ€</span></a>) allow +adjusting some technical parameters, which might be useful in (rare) cases to +resolve compatibility issues in some situations.</p> +<p>Some other properties influence the result more fundamentally. +A typical mov/mp4 file's metadata (aka moov) is located at the end of the +file, somewhat contrary to this usually being called "the header". +However, a <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart" title="The “faststart†property"><span class="type">“faststartâ€</span></a> file will (with some effort) arrange this to +be located near start of the file, which then allows it e.g. to be played +while downloading. Alternatively, rather than having one chunk of metadata at +start (or end), there can be some metadata at start and most of the other +data can be spread out into fragments of <a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--fragment-duration" title="The “fragment-duration†property"><span class="type">“fragment-durationâ€</span></a>. If such fragmented layout is intended for streaming purposes, then -<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable" title='The "streamable" property'>streamable</a> allows foregoing to add -index metadata (at the end of file). -</p> -<p> -</p> +<a class="link" href="gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable" title="The “streamable†property"><span class="type">“streamableâ€</span></a> allows foregoing to add index metadata (at the end of +file).</p> <div class="refsect2"> -<a name="id-1.2.103.7.7.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.103.8.7"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -134,15 +165,10 @@ index metadata (at the end of file). Records a video stream captured from a v4l2 device and muxes it into a qt file. </div> -<p> -</p> -<p> -Last reviewed on 2010-12-03 -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.103.7.9.1"></a><h3>Element Information</h3> +<a name="id-1.2.103.8.8.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -168,7 +194,7 @@ Last reviewed on 2010-12-03 </div> <hr> <div class="refsect2"> -<a name="id-1.2.103.7.9.2"></a><h3>Element Pads</h3> +<a name="id-1.2.103.8.8.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -245,6 +271,30 @@ Last reviewed on 2010-12-03 <tbody> <tr> <td><p><span class="term">name</span></p></td> +<td>subtitle_%u</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>request</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>text/x-raw, format=(string)utf8</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> <td>video_%u</td> </tr> <tr> @@ -335,10 +385,14 @@ Last reviewed on 2010-12-03 </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-qtmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-qtmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-qtmux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstQTMux-struct"></a><h3>struct GstQTMux</h3> <pre class="programlisting">struct GstQTMux;</pre> +<div class="warning"><p><code class="literal">GstQTMux</code> is deprecated and should not be used in newly-written code.</p></div> <p> </p> </div> @@ -346,72 +400,81 @@ Last reviewed on 2010-12-03 <div class="refsect1"> <a name="gst-plugins-good-plugins-qtmux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstQTMux--dts-method"></a><h3>The <code class="literal">"dts-method"</code> property</h3> -<pre class="programlisting"> "dts-method" <span class="type">GstQTMuxDtsMethods</span> : Read / Write / Construct</pre> +<a name="GstQTMux--dts-method"></a><h3>The <code class="literal">“dts-methodâ€</code> property</h3> +<pre class="programlisting"> “dts-method†<span class="type">GstQTMuxDtsMethods</span></pre> <p>(DEPRECATED) Method to determine DTS time.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: reorder</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--faststart"></a><h3>The <code class="literal">"faststart"</code> property</h3> -<pre class="programlisting"> "faststart" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstQTMux--faststart"></a><h3>The <code class="literal">“faststartâ€</code> property</h3> +<pre class="programlisting"> “faststart†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If the file should be formatted for faststart (headers first).</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--faststart-file"></a><h3>The <code class="literal">"faststart-file"</code> property</h3> -<pre class="programlisting"> "faststart-file" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<a name="GstQTMux--faststart-file"></a><h3>The <code class="literal">“faststart-fileâ€</code> property</h3> +<pre class="programlisting"> “faststart-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--fragment-duration"></a><h3>The <code class="literal">"fragment-duration"</code> property</h3> -<pre class="programlisting"> "fragment-duration" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstQTMux--fragment-duration"></a><h3>The <code class="literal">“fragment-durationâ€</code> property</h3> +<pre class="programlisting"> “fragment-duration†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Fragment durations in ms (produce a fragmented file if > 0).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--moov-recovery-file"></a><h3>The <code class="literal">"moov-recovery-file"</code> property</h3> -<pre class="programlisting"> "moov-recovery-file" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct</pre> +<a name="GstQTMux--moov-recovery-file"></a><h3>The <code class="literal">“moov-recovery-fileâ€</code> property</h3> +<pre class="programlisting"> “moov-recovery-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--movie-timescale"></a><h3>The <code class="literal">"movie-timescale"</code> property</h3> -<pre class="programlisting"> "movie-timescale" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstQTMux--movie-timescale"></a><h3>The <code class="literal">“movie-timescaleâ€</code> property</h3> +<pre class="programlisting"> “movie-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Timescale to use in the movie (units per second).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= 1</p> <p>Default value: 1000</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--presentation-time"></a><h3>The <code class="literal">"presentation-time"</code> property</h3> -<pre class="programlisting"> "presentation-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstQTMux--presentation-time"></a><h3>The <code class="literal">“presentation-timeâ€</code> property</h3> +<pre class="programlisting"> “presentation-time†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Calculate and include presentation/composition time (in addition to decoding time).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--streamable"></a><h3>The <code class="literal">"streamable"</code> property</h3> -<pre class="programlisting"> "streamable" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstQTMux--streamable"></a><h3>The <code class="literal">“streamableâ€</code> property</h3> +<pre class="programlisting"> “streamable†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. (DEPRECATED, only valid for fragmented MP4).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstQTMux--trak-timescale"></a><h3>The <code class="literal">"trak-timescale"</code> property</h3> -<pre class="programlisting"> "trak-timescale" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre> +<a name="GstQTMux--trak-timescale"></a><h3>The <code class="literal">“trak-timescaleâ€</code> property</h3> +<pre class="programlisting"> “trak-timescale†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Timescale to use for the tracks (units per second, 0 is automatic).</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: 0</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 73da1a555..688771e74 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>quarktv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: quarktv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-pulsesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-qtdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-quarktv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-quarktv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-quarktv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-quarktv.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-quarktv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-quarktv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-quarktv.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-pulsesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-qtdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-quarktv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,41 +31,53 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-quarktv.top_of_page"></a>quarktv</span></h2> <p>quarktv — Motion dissolver</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-quarktv.synopsis"></a><h2>Synopsis</h2> -<a name="GstQuarkTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct" title="struct GstQuarkTV">GstQuarkTV</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-quarktv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstQuarkTV -</pre> +<a name="gst-plugins-good-plugins-quarktv.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes" title="The “planes†property">planes</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstQuarkTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-quarktv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct" title="struct GstQuarkTV">GstQuarkTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-quarktv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes" title='The "planes" property'>planes</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-quarktv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstQuarkTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-quarktv.description"></a><h2>Description</h2> -<p> -QuarkTV disolves moving objects. It picks up pixels from -the last frames randomly. -</p> -<p> -</p> +<p>QuarkTV disolves moving objects. It picks up pixels from +the last frames randomly.</p> <div class="refsect2"> -<a name="id-1.2.101.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.101.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -84,12 +90,10 @@ the last frames randomly. </div> This pipeline shows the effect of quarktv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.101.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.101.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -115,7 +119,7 @@ the last frames randomly. </div> <hr> <div class="refsect2"> -<a name="id-1.2.101.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.101.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -170,7 +174,10 @@ the last frames randomly. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-quarktv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-quarktv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-quarktv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstQuarkTV-struct"></a><h3>struct GstQuarkTV</h3> <pre class="programlisting">struct GstQuarkTV;</pre> @@ -181,9 +188,10 @@ the last frames randomly. <div class="refsect1"> <a name="gst-plugins-good-plugins-quarktv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstQuarkTV--planes"></a><h3>The <code class="literal">"planes"</code> property</h3> -<pre class="programlisting"> "planes" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstQuarkTV--planes"></a><h3>The <code class="literal">“planesâ€</code> property</h3> +<pre class="programlisting"> “planes†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of planes.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,64]</p> <p>Default value: 16</p> </div> @@ -191,6 +199,6 @@ the last frames randomly. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e54e066cd..3f9d99f15 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>radioactv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: radioactv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-revtv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-radioactv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-radioactv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-radioactv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-radioactv.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-radioactv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-radioactv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-radioactv.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-revtv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-radioactv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,53 +31,75 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-radioactv.top_of_page"></a>radioactv</span></h2> <p>radioactv — motion-enlightment effect</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-radioactv.synopsis"></a><h2>Synopsis</h2> -<a name="GstRadioacTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct" title="struct GstRadioacTV">GstRadioacTV</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-radioactv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstRadioacTV -</pre> +<a name="gst-plugins-good-plugins-radioactv.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstRadioacTVColor</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color" title="The “color†property">color</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval" title="The “interval†property">interval</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstRadioacTVMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger" title="The “trigger†property">trigger</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRadioacTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-radioactv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct" title="struct GstRadioacTV">GstRadioacTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-radioactv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color" title='The "color" property'>color</a>" <span class="type">GstRadioacTVColor</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval" title='The "interval" property'>interval</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode" title='The "mode" property'>mode</a>" <span class="type">GstRadioacTVMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger" title='The "trigger" property'>trigger</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-radioactv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstRadioacTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-radioactv.description"></a><h2>Description</h2> -<p> -RadioacTV does *NOT* detect a radioactivity. It detects a difference -from previous frame and blurs it. -</p> -<p> -RadioacTV has 4 mode, normal, strobe1, strobe2 and trigger. -In trigger mode, effect appears only when the trigger property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. -</p> -<p> -strobe1 and strobe2 mode drops some frames. strobe1 mode uses the difference between +<p>RadioacTV does *NOT* detect a radioactivity. It detects a difference +from previous frame and blurs it.</p> +<p>RadioacTV has 4 mode, normal, strobe1, strobe2 and trigger. +In trigger mode, effect appears only when the trigger property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p> +<p>strobe1 and strobe2 mode drops some frames. strobe1 mode uses the difference between current frame and previous frame dropped, while strobe2 mode uses the difference from -previous frame displayed. The effect of strobe2 is stronger than strobe1. -</p> -<p> -</p> +previous frame displayed. The effect of strobe2 is stronger than strobe1.</p> <div class="refsect2"> -<a name="id-1.2.105.6.5.1"></a><h3>Example launch line</h3> +<a name="id-1.2.105.7.5"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -96,12 +112,10 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. </div> This pipeline shows the effect of radioactv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.105.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.105.7.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -127,7 +141,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. </div> <hr> <div class="refsect2"> -<a name="id-1.2.105.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.105.7.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -182,7 +196,10 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-radioactv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-radioactv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-radioactv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRadioacTV-struct"></a><h3>struct GstRadioacTV</h3> <pre class="programlisting">struct GstRadioacTV;</pre> @@ -193,37 +210,41 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1. <div class="refsect1"> <a name="gst-plugins-good-plugins-radioactv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRadioacTV--color"></a><h3>The <code class="literal">"color"</code> property</h3> -<pre class="programlisting"> "color" <span class="type">GstRadioacTVColor</span> : Read / Write</pre> +<a name="GstRadioacTV--color"></a><h3>The <code class="literal">“colorâ€</code> property</h3> +<pre class="programlisting"> “color†<span class="type">GstRadioacTVColor</span></pre> <p>Color.</p> +<p>Flags: Read / Write</p> <p>Default value: White</p> </div> <hr> <div class="refsect2"> -<a name="GstRadioacTV--interval"></a><h3>The <code class="literal">"interval"</code> property</h3> -<pre class="programlisting"> "interval" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRadioacTV--interval"></a><h3>The <code class="literal">“intervalâ€</code> property</h3> +<pre class="programlisting"> “interval†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Snapshot interval (in strobe mode).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= G_MAXINT</p> <p>Default value: 3</p> </div> <hr> <div class="refsect2"> -<a name="GstRadioacTV--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstRadioacTVMode</span> : Read / Write</pre> +<a name="GstRadioacTV--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstRadioacTVMode</span></pre> <p>Mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Normal</p> </div> <hr> <div class="refsect2"> -<a name="GstRadioacTV--trigger"></a><h3>The <code class="literal">"trigger"</code> property</h3> -<pre class="programlisting"> "trigger" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRadioacTV--trigger"></a><h3>The <code class="literal">“triggerâ€</code> property</h3> +<pre class="programlisting"> “trigger†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Trigger (in trigger mode).</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 21359fbf4..84ff9b33c 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-revtv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-revtv.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>revtv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: revtv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-radioactv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rganalysis.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-revtv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-revtv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-revtv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-revtv.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-revtv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-revtv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-revtv.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-radioactv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rganalysis.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-revtv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,44 +31,66 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-revtv.top_of_page"></a>revtv</span></h2> <p>revtv — A video waveform monitor for each line of video processed</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-revtv.synopsis"></a><h2>Synopsis</h2> -<a name="GstRevTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV-struct" title="struct GstRevTV">GstRevTV</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-revtv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstRevTV -</pre> +<a name="gst-plugins-good-plugins-revtv.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV--delay" title="The “delay†property">delay</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV--gain" title="The “gain†property">gain</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV--linespace" title="The “linespace†property">linespace</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRevTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-revtv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV-struct" title="struct GstRevTV">GstRevTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-revtv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV--delay" title='The "delay" property'>delay</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV--gain" title='The "gain" property'>gain</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-revtv.html#GstRevTV--linespace" title='The "linespace" property'>linespace</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-revtv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstRevTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-revtv.description"></a><h2>Description</h2> -<p> -RevTV acts like a video waveform monitor for each line of video +<p>RevTV acts like a video waveform monitor for each line of video processed. This creates a pseudo 3D effect based on the brightness -of the video along each line. -</p> -<p> -</p> +of the video along each line.</p> <div class="refsect2"> -<a name="id-1.2.106.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.106.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -87,12 +103,10 @@ of the video along each line. </div> This pipeline shows the effect of revtv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.106.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.106.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -118,7 +132,7 @@ of the video along each line. </div> <hr> <div class="refsect2"> -<a name="id-1.2.106.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.106.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,7 +187,10 @@ of the video along each line. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-revtv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-revtv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-revtv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRevTV-struct"></a><h3>struct GstRevTV</h3> <pre class="programlisting">struct GstRevTV;</pre> @@ -184,25 +201,28 @@ of the video along each line. <div class="refsect1"> <a name="gst-plugins-good-plugins-revtv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRevTV--delay"></a><h3>The <code class="literal">"delay"</code> property</h3> -<pre class="programlisting"> "delay" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRevTV--delay"></a><h3>The <code class="literal">“delayâ€</code> property</h3> +<pre class="programlisting"> “delay†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Delay in frames between updates.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,100]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstRevTV--gain"></a><h3>The <code class="literal">"gain"</code> property</h3> -<pre class="programlisting"> "gain" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRevTV--gain"></a><h3>The <code class="literal">“gainâ€</code> property</h3> +<pre class="programlisting"> “gain†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Control gain.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,200]</p> <p>Default value: 50</p> </div> <hr> <div class="refsect2"> -<a name="GstRevTV--linespace"></a><h3>The <code class="literal">"linespace"</code> property</h3> -<pre class="programlisting"> "linespace" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRevTV--linespace"></a><h3>The <code class="literal">“linespaceâ€</code> property</h3> +<pre class="programlisting"> “linespace†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Control line spacing.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,100]</p> <p>Default value: 6</p> </div> @@ -210,6 +230,6 @@ of the video along each line. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 58f8db034..e4c60b24b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rganalysis</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rganalysis</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-revtv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rglimiter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rganalysis.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rganalysis.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rganalysis.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rganalysis.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rganalysis.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rganalysis.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rganalysis.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-revtv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rglimiter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rganalysis"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,60 +31,84 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rganalysis.top_of_page"></a>rganalysis</span></h2> <p>rganalysis — Perform the ReplayGain analysis</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rganalysis.synopsis"></a><h2>Synopsis</h2> -<a name="GstRgAnalysis"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis-struct" title="struct GstRgAnalysis">GstRgAnalysis</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rganalysis.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstRgAnalysis -</pre> +<a name="gst-plugins-good-plugins-rganalysis.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced" title="The “forced†property">forced</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks" title="The “num-tracks†property">num-tracks</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level" title="The “reference-level†property">reference-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message" title="The “message†property">message</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRgAnalysis"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rganalysis.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis-struct" title="struct GstRgAnalysis">GstRgAnalysis</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rganalysis.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced" title='The "forced" property'>forced</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks" title='The "num-tracks" property'>num-tracks</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level" title='The "reference-level" property'>reference-level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message" title='The "message" property'>message</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct +<a name="gst-plugins-good-plugins-rganalysis.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstRgAnalysis </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rganalysis.description"></a><h2>Description</h2> -<p> -This element analyzes raw audio sample data in accordance with the proposed +<p>This element analyzes raw audio sample data in accordance with the proposed</p> <a class="ulink" href="http://replaygain.org" target="_top">ReplayGain standard</a> for -calculating the ideal replay gain for music tracks and albums. The element +<p>calculating the ideal replay gain for music tracks and albums. The element is designed as a pass-through filter that never modifies any data. As it receives an EOS event, it finalizes the ongoing analysis and generates a tag list containing the results. It is sent downstream with a tag event and posted on the message bus with a tag message. The EOS event is forwarded as normal afterwards. Result tag lists at least contain the tags -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-GAIN:CAPS"><span class="type">GST_TAG_TRACK_GAIN</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS"><span class="type">GST_TAG_TRACK_PEAK</span></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS"><span class="type">GST_TAG_REFERENCE_LEVEL</span></a>. -</p> -<p> -Because the generated metadata tags become available at the end of streams, +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-GAIN:CAPS"><span class="type">GST_TAG_TRACK_GAIN</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS"><span class="type">GST_TAG_TRACK_PEAK</span></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS"><span class="type">GST_TAG_REFERENCE_LEVEL</span></a>.</p> +<p>Because the generated metadata tags become available at the end of streams, downstream muxer and encoder elements are normally unable to save them in their output since they generally save metadata in the file header. Therefore, it is often necessary that applications read the results in a bus event handler for the tag message. Obtaining the values this way is always -needed for <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks" title='The "num-tracks" property'>album processing</a> -since the album gain and peak values need to be associated with all tracks of -an album, not just the last one. -</p> -<p> -</p> +needed for album processing (see <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks" title="The “num-tracks†property"><span class="type">“num-tracksâ€</span></a> property) since +the album gain and peak values need to be associated with all tracks of an +album, not just the last one.</p> <div class="refsect2"> -<a name="id-1.2.107.6.4.1"></a><h3>Example launch lines</h3> +<a name="id-1.2.107.7.6"></a><h3>Example launch lines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -130,27 +148,23 @@ an album, not just the last one. Analyze the pink noise reference file <p> The above launch line yields a result gain of +6 dB (instead of the expected -+0 dB). This is not in error, refer to the <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level" title='The "reference-level" property'><span class="type">"reference-level"</span></a> ++0 dB). This is not in error, refer to the <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--reference-level" title="The “reference-level†property"><span class="type">“reference-levelâ€</span></a> property documentation for more information. </p> </div> -<p> -</p> <hr> <div class="refsect2"> -<a name="id-1.2.107.6.4.2"></a><h3>Acknowledgements</h3> +<a name="id-1.2.107.7.7"></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 and Frank Klemm. </p> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.107.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.107.7.8.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -176,7 +190,7 @@ and Frank Klemm. </div> <hr> <div class="refsect2"> -<a name="id-1.2.107.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.107.7.8.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -239,129 +253,108 @@ and Frank Klemm. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rganalysis.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rganalysis.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rganalysis.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRgAnalysis-struct"></a><h3>struct GstRgAnalysis</h3> <pre class="programlisting">struct GstRgAnalysis;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rganalysis.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRgAnalysis--forced"></a><h3>The <code class="literal">"forced"</code> property</h3> -<pre class="programlisting"> "forced" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Whether to analyze streams even when ReplayGain tags exist. -</p> -<p> -For assisting transcoder/converter applications, the element can silently +<a name="GstRgAnalysis--forced"></a><h3>The <code class="literal">“forcedâ€</code> property</h3> +<pre class="programlisting"> “forced†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Whether to analyze streams even when ReplayGain tags exist.</p> +<p>For assisting transcoder/converter applications, the element can silently skip the processing of streams that already contain the necessary tags. Data will flow as usual but the element will not consume CPU time and will not generate result tags. To enable possible skipping, set this property -to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. -</p> -<p> -If used in conjunction with <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks" title='The "num-tracks" property'>album +to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p> +<p>If used in conjunction with <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--num-tracks" title="The “num-tracks†property">album processing</a>, the element will skip the number of remaining album tracks if a full set of tags is found for the first track. If a subsequent track of the album is missing tags, processing cannot start again. If this is undesired, the application has to scan all files beforehand and enable -forcing of processing if needed. -</p> +forcing of processing if needed.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstRgAnalysis--num-tracks"></a><h3>The <code class="literal">"num-tracks"</code> property</h3> -<pre class="programlisting"> "num-tracks" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p> -Number of remaining album tracks. -</p> -<p> -Analyzing several streams sequentially and assigning them a common result +<a name="GstRgAnalysis--num-tracks"></a><h3>The <code class="literal">“num-tracksâ€</code> property</h3> +<pre class="programlisting"> “num-tracks†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>Number of remaining album tracks.</p> +<p>Analyzing several streams sequentially and assigning them a common result gain is known as "album processing". If this gain is used during playback (by switching to "album mode"), all tracks of an album receive the same amplification. This keeps the relative volume levels between the tracks intact. To enable this, set this property to the number of streams that -will be processed as album tracks. -</p> -<p> -Every time an EOS event is received, the value of this property is +will be processed as album tracks.</p> +<p>Every time an EOS event is received, the value of this property is decremented by one. As it reaches zero, it is assumed that the last track of the album finished. The tag list for the final stream will contain the additional tags <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-ALBUM-GAIN:CAPS"><span class="type">GST_TAG_ALBUM_GAIN</span></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-ALBUM-PEAK:CAPS"><span class="type">GST_TAG_ALBUM_PEAK</span></a>. All other streams just get the two track tags posted because the values for the album tags are not known before all tracks are analyzed. Applications need to ensure that the album gain and peak values are also associated with the -other tracks when storing the results. -</p> -<p> -If the total number of album tracks is unknown beforehand, just ensure that +other tracks when storing the results.</p> +<p>If the total number of album tracks is unknown beforehand, just ensure that the value is greater than 1 before each track starts. Then before the end -of the last track, set it to the value 1. -</p> -<p> -To perform album processing, the element has to preserve data between +of the last track, set it to the value 1.</p> +<p>To perform album processing, the element has to preserve data between streams. This cannot survive a state change to the NULL or READY state. If you change your pipeline's state to NULL or READY between tracks, lock the element's state using <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-set-locked-state"><code class="function">gst_element_set_locked_state()</code></a> when it is in -PAUSED or PLAYING. -</p> +PAUSED or PLAYING.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRgAnalysis--reference-level"></a><h3>The <code class="literal">"reference-level"</code> property</h3> -<pre class="programlisting"> "reference-level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> -<p> -Reference level [dB]. -</p> -<p> -Analyzing the ReplayGain pink noise reference waveform computes a result of +<a name="GstRgAnalysis--reference-level"></a><h3>The <code class="literal">“reference-levelâ€</code> property</h3> +<pre class="programlisting"> “reference-level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> +<p>Reference level [dB].</p> +<p>Analyzing the ReplayGain pink noise reference waveform computes a result of +6 dB instead of the expected 0 dB. This is because the default reference level is 89 dB. To obtain values as lined out in the original proposal of -ReplayGain, set this property to 83. -</p> -<p> -Almost all software uses 89 dB as a reference however, and this value has +ReplayGain, set this property to 83.</p> +<p>Almost all software uses 89 dB as a reference however, and this value has become the new official value. That is to say, while the change has been acclaimed by the author of the ReplayGain proposal, the <a class="ulink" href="http://replaygain.org" target="_top">webpage</a> is still outdated at the time -of this writing. -</p> -<p> -The value was changed because the original proposal recommends a default +of this writing.</p> +<p>The value was changed because the original proposal recommends a default pre-amp value of +6 dB for playback. This seemed a bit odd, as it means that the algorithm has the general tendency to produce adjustment values that are 6 dB too low. Bumping the reference level by 6 dB compensated for -this. -</p> -<p> -The problem of the reference level being ambiguous for lack of concise +this.</p> +<p>The problem of the reference level being ambiguous for lack of concise standardization is to be solved by adopting the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS"><span class="type">GST_TAG_REFERENCE_LEVEL</span></a> -tag, which allows to store the used value alongside the gain values. -</p> +tag, which allows to store the used value alongside the gain values.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,150]</p> <p>Default value: 89</p> </div> <hr> <div class="refsect2"> -<a name="GstRgAnalysis--message"></a><h3>The <code class="literal">"message"</code> property</h3> -<pre class="programlisting"> "message" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstRgAnalysis--message"></a><h3>The <code class="literal">“messageâ€</code> property</h3> +<pre class="programlisting"> “message†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Post statics messages.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rganalysis.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume"><span class="type">GstRgVolume</span></a> +<p><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume"><span class="type">GstRgVolume</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 6699eca2f..6874c5d1b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rglimiter</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rglimiter</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rganalysis.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rgvolume.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rglimiter.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rglimiter.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rglimiter.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rglimiter.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rglimiter.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rglimiter.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rglimiter.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rganalysis.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rgvolume.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rglimiter"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,41 +31,53 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rglimiter.top_of_page"></a>rglimiter</span></h2> <p>rglimiter — Apply signal compression to raw audio data</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rglimiter.synopsis"></a><h2>Synopsis</h2> -<a name="GstRgLimiter"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter-struct" title="struct GstRgLimiter">GstRgLimiter</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rglimiter.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstRgLimiter -</pre> +<a name="gst-plugins-good-plugins-rglimiter.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled" title="The “enabled†property">enabled</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstRgLimiter"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rglimiter.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter-struct" title="struct GstRgLimiter">GstRgLimiter</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rglimiter.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled" title='The "enabled" property'>enabled</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-rglimiter.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstRgLimiter </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rglimiter.description"></a><h2>Description</h2> -<p> -This element applies signal compression/limiting to raw audio data. It +<p>This element applies signal compression/limiting to raw audio data. It performs strict hard limiting with soft-knee characteristics, using a -threshold of -6 dB. This type of filter is mentioned in the proposed <a class="ulink" href="http://replaygain.org" target="_top">ReplayGain standard</a>. -</p> -<p> -</p> +threshold of -6 dB. This type of filter is mentioned in the proposed <a class="ulink" href="http://replaygain.org" target="_top">ReplayGain standard</a>.</p> <div class="refsect2"> -<a name="id-1.2.108.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.108.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -88,12 +94,10 @@ threshold of -6 dB. This type of filter is mentioned in the proposed <a class=" </div> Playback of a file </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.108.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.108.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -119,7 +123,7 @@ Playback of a file </div> <hr> <div class="refsect2"> -<a name="id-1.2.108.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.108.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -174,31 +178,33 @@ Playback of a file </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rglimiter.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rglimiter.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rglimiter.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRgLimiter-struct"></a><h3>struct GstRgLimiter</h3> <pre class="programlisting">struct GstRgLimiter;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rglimiter.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRgLimiter--enabled"></a><h3>The <code class="literal">"enabled"</code> property</h3> -<pre class="programlisting"> "enabled" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRgLimiter--enabled"></a><h3>The <code class="literal">“enabledâ€</code> property</h3> +<pre class="programlisting"> “enabled†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable processing.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rglimiter.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume"><span class="type">GstRgVolume</span></a> +<p><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume"><span class="type">GstRgVolume</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 3c2ee7039..0bfaba1d4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rgvolume</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rgvolume</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rglimiter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rippletv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rgvolume.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rgvolume.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rgvolume.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rgvolume.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-rgvolume.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rgvolume.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rgvolume.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rgvolume.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rgvolume.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rglimiter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rippletv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rgvolume"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,71 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rgvolume.top_of_page"></a>rgvolume</span></h2> <p>rgvolume — Apply ReplayGain volume adjustment</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rgvolume.synopsis"></a><h2>Synopsis</h2> -<a name="GstRgVolume"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume-struct" title="struct GstRgVolume">GstRgVolume</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rgvolume.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode" title="The “album-mode†property">album-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain" title="The “fallback-gain†property">fallback-gain</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--headroom" title="The “headroom†property">headroom</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title="The “pre-amp†property">pre-amp</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--result-gain" title="The “result-gain†property">result-gain</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain" title="The “target-gain†property">target-gain</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRgVolume"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rgvolume.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume-struct" title="struct GstRgVolume">GstRgVolume</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rgvolume.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstRgVolume +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstRgVolume </pre> </div> <div class="refsect1"> @@ -64,24 +106,11 @@ GstRgVolume implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rgvolume.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode" title='The "album-mode" property'>album-mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain" title='The "fallback-gain" property'>fallback-gain</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--headroom" title='The "headroom" property'>headroom</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--result-gain" title='The "result-gain" property'>result-gain</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain" title='The "target-gain" property'>target-gain</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-rgvolume.description"></a><h2>Description</h2> -<p> -This element applies volume changes to streams as lined out in the proposed +<p>This element applies volume changes to streams as lined out in the proposed</p> <a class="ulink" href="http://replaygain.org" target="_top">ReplayGain standard</a>. It -interprets the ReplayGain meta data tags and carries out the adjustment (by -using a volume element internally). The relevant tags are: -</p> +<p>interprets the ReplayGain meta data tags and carries out the adjustment (by +using a volume element internally). The relevant tags are:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-GAIN:CAPS"><span class="type">GST_TAG_TRACK_GAIN</span></a></li> <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS"><span class="type">GST_TAG_TRACK_PEAK</span></a></li> @@ -89,22 +118,16 @@ using a volume element internally). The relevant tags are: <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-ALBUM-PEAK:CAPS"><span class="type">GST_TAG_ALBUM_PEAK</span></a></li> <li class="listitem"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS"><span class="type">GST_TAG_REFERENCE_LEVEL</span></a></li> </ul></div> -<p> -The information carried by these tags must have been calculated beforehand by -performing the ReplayGain analysis. This is implemented by the <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis">rganalysis</a> element. -</p> -<p> -The signal compression/limiting recommendations outlined in the proposed +<p>The information carried by these tags must have been calculated beforehand by +performing the ReplayGain analysis. This is implemented by the <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis">rganalysis</a> element.</p> +<p>The signal compression/limiting recommendations outlined in the proposed standard are not implemented by this element. This has to be handled by separate elements because applications might want to have additional filters between the volume adjustment and the limiting stage. A basic limiter is included with this plugin: The <a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter">rglimiter</a> -element applies -6 dB hard limiting as mentioned in the ReplayGain standard. -</p> -<p> -</p> +element applies -6 dB hard limiting as mentioned in the ReplayGain standard.</p> <div class="refsect2"> -<a name="id-1.2.109.7.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.109.8.8"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -119,12 +142,10 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard. </div> Playback of a file </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.109.7.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.109.8.9.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -150,7 +171,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard. </div> <hr> <div class="refsect2"> -<a name="id-1.2.109.7.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.109.8.9.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -205,164 +226,130 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rgvolume.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rgvolume.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rgvolume.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRgVolume-struct"></a><h3>struct GstRgVolume</h3> <pre class="programlisting">struct GstRgVolume;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rgvolume.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRgVolume--album-mode"></a><h3>The <code class="literal">"album-mode"</code> property</h3> -<pre class="programlisting"> "album-mode" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Whether to prefer album gain over track gain. -</p> -<p> -If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, use album gain instead of track gain if both are +<a name="GstRgVolume--album-mode"></a><h3>The <code class="literal">“album-modeâ€</code> property</h3> +<pre class="programlisting"> “album-mode†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Whether to prefer album gain over track gain.</p> +<p>If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, use album gain instead of track gain if both are available. This keeps the relative loudness levels of tracks from the same -album intact. -</p> -<p> -If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, track mode is used instead. This effectively leads to -more extensive normalization. -</p> -<p> -If album mode is enabled but the album gain tag is absent in the stream, +album intact.</p> +<p>If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, track mode is used instead. This effectively leads to +more extensive normalization.</p> +<p>If album mode is enabled but the album gain tag is absent in the stream, the track gain is used instead. If both gain tags are missing, the value -of the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain" title='The "fallback-gain" property'>fallback-gain</a> -property is used instead. -</p> +of the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain" title="The “fallback-gain†property"><span class="type">“fallback-gainâ€</span></a> property is used instead.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstRgVolume--fallback-gain"></a><h3>The <code class="literal">"fallback-gain"</code> property</h3> -<pre class="programlisting"> "fallback-gain" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> -<p> -Fallback gain [dB] for streams missing ReplayGain tags. -</p> +<a name="GstRgVolume--fallback-gain"></a><h3>The <code class="literal">“fallback-gainâ€</code> property</h3> +<pre class="programlisting"> “fallback-gain†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> +<p>Fallback gain [dB] for streams missing ReplayGain tags.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-60,60]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRgVolume--headroom"></a><h3>The <code class="literal">"headroom"</code> property</h3> -<pre class="programlisting"> "headroom" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> -<p> -Extra headroom [dB]. This controls the amount by which the output can -exceed digital full scale. -</p> -<p> -Only set this to a value greater than 0.0 if signal compression/limiting of +<a name="GstRgVolume--headroom"></a><h3>The <code class="literal">“headroomâ€</code> property</h3> +<pre class="programlisting"> “headroom†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> +<p>Extra headroom [dB]. This controls the amount by which the output can +exceed digital full scale.</p> +<p>Only set this to a value greater than 0.0 if signal compression/limiting of a suitable form is applied to the output (or output is brought into the -correct range by some other transformation). -</p> -<p> -This element internally uses a volume element, which also supports +correct range by some other transformation).</p> +<p>This element internally uses a volume element, which also supports operating on integer audio formats. These formats do not allow exceeding digital full scale. If extra headroom is used, make sure that the raw audio data format is floating point (F32). Otherwise, clipping distortion might be introduced as part of the volume adjustment -itself. -</p> +itself.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,60]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRgVolume--pre-amp"></a><h3>The <code class="literal">"pre-amp"</code> property</h3> -<pre class="programlisting"> "pre-amp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> -<p> -Additional gain to apply globally [dB]. This controls the trade-off +<a name="GstRgVolume--pre-amp"></a><h3>The <code class="literal">“pre-ampâ€</code> property</h3> +<pre class="programlisting"> “pre-amp†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> +<p>Additional gain to apply globally [dB]. This controls the trade-off between uniformity of normalization and utilization of available dynamic -range. -</p> -<p> -Note that the default value is 0 dB because the ReplayGain reference value -was adjusted by +6 dB (from 83 to 89 dB). At the time of this writing, the +range.</p> +<p>Note that the default value is 0 dB because the ReplayGain reference value +was adjusted by +6 dB (from 83 to 89 dB). At the time of this writing, the</p> <a class="ulink" href="http://replaygain.org" target="_top">webpage</a> is still outdated and -does not reflect this change however. Where the original proposal states +<p>does not reflect this change however. Where the original proposal states that a proper default pre-amp value is +6 dB, this translates to the used 0 -dB. -</p> +dB.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-60,60]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRgVolume--result-gain"></a><h3>The <code class="literal">"result-gain"</code> property</h3> -<pre class="programlisting"> "result-gain" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read</pre> -<p> -Applied gain [dB]. This gain is applied to processed buffer data. -</p> -<p> -This is set to the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain" title='The "target-gain" property'>target -gain</a> if amplification by that amount can be applied safely. -"Safely" means that the volume adjustment does not inflict clipping -distortion. Should this not be the case, the result gain is set to an -appropriately reduced value (by applying peak normalization). The proposed -standard calls this "clipping prevention". -</p> -<p> -The difference between target and result gain reflects the necessary amount +<a name="GstRgVolume--result-gain"></a><h3>The <code class="literal">“result-gainâ€</code> property</h3> +<pre class="programlisting"> “result-gain†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> +<p>Applied gain [dB]. This gain is applied to processed buffer data.</p> +<p>This is set to the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain" title="The “target-gain†property"><span class="type">“target-gainâ€</span></a> if amplification by that amount +can be applied safely. "Safely" means that the volume adjustment does not +inflict clipping distortion. Should this not be the case, the result gain +is set to an appropriately reduced value (by applying peak normalization). +The proposed standard calls this "clipping prevention".</p> +<p>The difference between target and result gain reflects the necessary amount of reduction. Applications can make use of this information to temporarily -reduce the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a> for -subsequent streams, as recommended by the ReplayGain standard. -</p> -<p> -Note that target and result gain differing for a great majority of streams +reduce the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title="The “pre-amp†property"><span class="type">“pre-ampâ€</span></a> for subsequent streams, as recommended by +the ReplayGain standard.</p> +<p>Note that target and result gain differing for a great majority of streams indicates a problem: What happens in this case is that most streams receive peak normalization instead of amplification by the ideal replay gain. To -prevent this, the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a> has -to be lowered and/or a limiter has to be used which facilitates the use of -<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--headroom" title='The "headroom" property'>headroom</a>. -</p> +prevent this, the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title="The “pre-amp†property"><span class="type">“pre-ampâ€</span></a> has to be lowered and/or a limiter +has to be used which facilitates the use of <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--headroom" title="The “headroom†property"><span class="type">“headroomâ€</span></a>.</p> +<p>Flags: Read</p> <p>Allowed values: [-120,120]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRgVolume--target-gain"></a><h3>The <code class="literal">"target-gain"</code> property</h3> -<pre class="programlisting"> "target-gain" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read</pre> -<p> -Applicable gain [dB]. This gain is supposed to be applied. -</p> -<p> -Depending on the value of the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode" title='The "album-mode" property'>album-mode</a> property and the +<a name="GstRgVolume--target-gain"></a><h3>The <code class="literal">“target-gainâ€</code> property</h3> +<pre class="programlisting"> “target-gain†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> +<p>Applicable gain [dB]. This gain is supposed to be applied.</p> +<p>Depending on the value of the <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode" title="The “album-mode†property"><span class="type">“album-modeâ€</span></a> property and the presence of ReplayGain tags in the stream, this is set according to one of -these simple formulas: -</p> -<p> -</p> +these simple formulas:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"> -<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a> + album gain -of the stream</li> +<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title="The “pre-amp†property"><span class="type">“pre-ampâ€</span></a> + album gain of the stream</li> <li class="listitem"> -<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a> + track gain -of the stream</li> +<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title="The “pre-amp†property"><span class="type">“pre-ampâ€</span></a> + track gain of the stream</li> <li class="listitem"> -<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title='The "pre-amp" property'>pre-amp</a> + <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain" title='The "fallback-gain" property'>fallback gain</a> +<a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--pre-amp" title="The “pre-amp†property"><span class="type">“pre-ampâ€</span></a> + <a class="link" href="gst-plugins-good-plugins-rgvolume.html#GstRgVolume--fallback-gain" title="The “fallback-gain†property"><span class="type">“fallback-gainâ€</span></a> </li> </ul></div> -<p> -</p> +<p>Flags: Read</p> <p>Allowed values: [-120,120]</p> <p>Default value: 0</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rgvolume.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter"><span class="type">GstRgLimiter</span></a>, <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis"><span class="type">GstRgAnalysis</span></a> +<p><a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter"><span class="type">GstRgLimiter</span></a>, <a class="link" href="gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis"><span class="type">GstRgAnalysis</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 ae0e23de7..75bd3d862 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rippletv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rippletv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rgvolume.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rippletv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rippletv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rippletv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rippletv.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rippletv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rippletv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rippletv.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rgvolume.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rippletv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,42 +31,60 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rippletv.top_of_page"></a>rippletv</span></h2> <p>rippletv — RippleTV does ripple mark effect on the video input</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rippletv.synopsis"></a><h2>Synopsis</h2> -<a name="GstRippleTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct" title="struct GstRippleTV">GstRippleTV</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rippletv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstRippleTV -</pre> +<a name="gst-plugins-good-plugins-rippletv.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">GstRippleTVMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset" title="The “reset†property">reset</a></td> +<td class="property_flags">Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRippleTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rippletv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct" title="struct GstRippleTV">GstRippleTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rippletv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode" title='The "mode" property'>mode</a>" <span class="type">GstRippleTVMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset" title='The "reset" property'>reset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Write +<a name="gst-plugins-good-plugins-rippletv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstRippleTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rippletv.description"></a><h2>Description</h2> -<p> -RippleTV does ripple mark effect on the video input. The ripple is caused -by motion or random rain drops. -</p> -<p> -</p> +<p>RippleTV does ripple mark effect on the video input. The ripple is caused +by motion or random rain drops.</p> <div class="refsect2"> -<a name="id-1.2.110.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.110.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -85,12 +97,10 @@ by motion or random rain drops. </div> This pipeline shows the effect of rippletv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.110.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.110.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -116,7 +126,7 @@ by motion or random rain drops. </div> <hr> <div class="refsect2"> -<a name="id-1.2.110.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.110.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -171,7 +181,10 @@ by motion or random rain drops. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rippletv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rippletv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rippletv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRippleTV-struct"></a><h3>struct GstRippleTV</h3> <pre class="programlisting">struct GstRippleTV;</pre> @@ -182,22 +195,24 @@ by motion or random rain drops. <div class="refsect1"> <a name="gst-plugins-good-plugins-rippletv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRippleTV--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstRippleTVMode</span> : Read / Write</pre> +<a name="GstRippleTV--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstRippleTVMode</span></pre> <p>Mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Motion Detection</p> </div> <hr> <div class="refsect2"> -<a name="GstRippleTV--reset"></a><h3>The <code class="literal">"reset"</code> property</h3> -<pre class="programlisting"> "reset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Write</pre> +<a name="GstRippleTV--reset"></a><h3>The <code class="literal">“resetâ€</code> property</h3> +<pre class="programlisting"> “reset†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Reset all current ripples.</p> +<p>Flags: Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 12fe53738..b8f7a10bb 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpL16depay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpL16depay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpL16depay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpL16depay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpL16depay.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpL16depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpL16depay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpL16depay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpL16depay.top_of_page"></a>rtpL16depay</span></h2> <p>rtpL16depay — Extracts raw audio from RTP packets</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpL16depay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpL16Depay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct" title="struct GstRtpL16Depay">GstRtpL16Depay</a>; -</pre> +<a name="GstRtpL16Depay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16depay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct" title="struct GstRtpL16Depay">GstRtpL16Depay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpL16depay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> - +----GstRtpL16Depay +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> + <span class="lineart">╰──</span> GstRtpL16Depay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpL16depay.description"></a><h2>Description</h2> -<p> -Extract raw audio from RTP packets according to RFC 3551. -For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt -</p> -<p> -</p> +<p>Extract raw audio from RTP packets according to RFC 3551. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt</p> <div class="refsect2"> -<a name="id-1.2.118.5.3.1"></a><h3>Example pipeline</h3> +<a name="id-1.2.118.6.3"></a><h3>Example pipeline</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -76,15 +74,10 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt This example pipeline will depayload an RTP raw audio stream. Refer to the rtpL16pay example to create the RTP stream. </div> -<p> -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.118.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.118.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -110,7 +103,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.118.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.118.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -169,7 +162,10 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpL16depay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpL16depay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16depay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpL16Depay-struct"></a><h3>struct GstRtpL16Depay</h3> <pre class="programlisting">struct GstRtpL16Depay;</pre> @@ -179,11 +175,11 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpL16depay.see-also"></a><h2>See Also</h2> -rtpL16pay +<p>rtpL16pay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 01ca2ad52..75f4de3c9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpL16pay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpL16pay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpL16pay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpL16pay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpL16pay.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpL16pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpL16pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpL16pay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,35 +30,38 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpL16pay.top_of_page"></a>rtpL16pay</span></h2> <p>rtpL16pay — Payload-encode Raw audio into RTP packets (RFC 3551)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpL16pay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpL16Pay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct" title="struct GstRtpL16Pay">GstRtpL16Pay</a>; -</pre> +<a name="GstRtpL16Pay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16pay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct" title="struct GstRtpL16Pay">GstRtpL16Pay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpL16pay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload">GstRTPBaseAudioPayload</a> - +----GstRtpL16Pay +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload">GstRTPBaseAudioPayload</a> + <span class="lineart">╰──</span> GstRtpL16Pay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpL16pay.description"></a><h2>Description</h2> -<p> -Payload raw audio into RTP packets according to RFC 3551. -For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt -</p> -<p> -</p> +<p>Payload raw audio into RTP packets according to RFC 3551. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt</p> <div class="refsect2"> -<a name="id-1.2.119.5.3.1"></a><h3>Example pipeline</h3> +<a name="id-1.2.119.6.3"></a><h3>Example pipeline</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -77,15 +75,10 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt This example pipeline will payload raw audio. Refer to the rtpL16depay example to depayload and play the RTP stream. </div> -<p> -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.119.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.119.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -111,7 +104,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.119.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.119.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -174,7 +167,10 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpL16pay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpL16pay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpL16pay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpL16Pay-struct"></a><h3>struct GstRtpL16Pay</h3> <pre class="programlisting">struct GstRtpL16Pay;</pre> @@ -184,11 +180,11 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpL16pay.see-also"></a><h2>See Also</h2> -rtpL16depay +<p>rtpL16depay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 52b65281d..4ca286d49 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpac3depay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpac3depay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3pay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpac3depay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpac3depay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpac3depay.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpac3depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpac3depay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3pay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpac3depay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpac3depay.top_of_page"></a>rtpac3depay</span></h2> <p>rtpac3depay — Extracts AC3 audio from RTP packets (RFC 4184)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpac3depay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpAC3Depay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct" title="struct GstRtpAC3Depay">GstRtpAC3Depay</a>; -</pre> +<a name="GstRtpAC3Depay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3depay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct" title="struct GstRtpAC3Depay">GstRtpAC3Depay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpac3depay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> - +----GstRtpAC3Depay +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> + <span class="lineart">╰──</span> GstRtpAC3Depay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpac3depay.description"></a><h2>Description</h2> -<p> -Extract AC3 audio from RTP packets according to RFC 4184. -For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt -</p> -<p> -</p> +<p>Extract AC3 audio from RTP packets according to RFC 4184. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt</p> <div class="refsect2"> -<a name="id-1.2.112.5.3.1"></a><h3>Example pipeline</h3> +<a name="id-1.2.112.6.3"></a><h3>Example pipeline</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -76,15 +74,10 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt This example pipeline will depayload and decode an RTP AC3 stream. Refer to the rtpac3pay example to create the RTP stream. </div> -<p> -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.112.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.112.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -110,7 +103,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.112.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.112.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -165,7 +158,10 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpac3depay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpac3depay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3depay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpAC3Depay-struct"></a><h3>struct GstRtpAC3Depay</h3> <pre class="programlisting">struct GstRtpAC3Depay;</pre> @@ -175,11 +171,11 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpac3depay.see-also"></a><h2>See Also</h2> -rtpac3pay +<p>rtpac3pay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c570cbf4e..92dc6038b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpac3pay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpac3pay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrdepay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpac3pay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpac3pay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpac3pay.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpac3pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpac3pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrdepay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpac3pay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpac3pay.top_of_page"></a>rtpac3pay</span></h2> <p>rtpac3pay — Payload AC3 audio as RTP packets (RFC 4184)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpac3pay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpAC3Pay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct" title="struct GstRtpAC3Pay">GstRtpAC3Pay</a>; -</pre> +<a name="GstRtpAC3Pay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3pay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct" title="struct GstRtpAC3Pay">GstRtpAC3Pay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpac3pay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> - +----GstRtpAC3Pay +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + <span class="lineart">╰──</span> GstRtpAC3Pay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpac3pay.description"></a><h2>Description</h2> -<p> -Payload AC3 audio into RTP packets according to RFC 4184. -For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt -</p> -<p> -</p> +<p>Payload AC3 audio into RTP packets according to RFC 4184. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt</p> <div class="refsect2"> -<a name="id-1.2.113.5.3.1"></a><h3>Example pipeline</h3> +<a name="id-1.2.113.6.3"></a><h3>Example pipeline</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -76,15 +74,10 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt This example pipeline will encode and payload AC3 stream. Refer to the rtpac3depay example to depayload and decode the RTP stream. </div> -<p> -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.113.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.113.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -110,7 +103,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.113.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.113.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -169,7 +162,10 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpac3pay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpac3pay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpac3pay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpAC3Pay-struct"></a><h3>struct GstRtpAC3Pay</h3> <pre class="programlisting">struct GstRtpAC3Pay;</pre> @@ -179,11 +175,11 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpac3pay.see-also"></a><h2>See Also</h2> -rtpac3depay +<p>rtpac3depay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 9325c6ecc..7c3910d20 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpamrdepay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpamrdepay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpac3pay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpamrdepay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpamrdepay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpamrdepay.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpamrdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpamrdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpac3pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpamrpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpamrdepay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpamrdepay.top_of_page"></a>rtpamrdepay</span></h2> <p>rtpamrdepay — Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpamrdepay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpAMRDepay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct" title="struct GstRtpAMRDepay">GstRtpAMRDepay</a>; -</pre> +<a name="GstRtpAMRDepay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrdepay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct" title="struct GstRtpAMRDepay">GstRtpAMRDepay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpamrdepay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> - +----GstRtpAMRDepay +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a> + <span class="lineart">╰──</span> GstRtpAMRDepay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpamrdepay.description"></a><h2>Description</h2> -<p> -Extract AMR audio from RTP packets according to RFC 3267. -For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt -</p> -<p> -</p> +<p>Extract AMR audio from RTP packets according to RFC 3267. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt</p> <div class="refsect2"> -<a name="id-1.2.114.5.3.1"></a><h3>Example pipeline</h3> +<a name="id-1.2.114.6.3"></a><h3>Example pipeline</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -76,15 +74,10 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt This example pipeline will depayload and decode an RTP AMR stream. Refer to the rtpamrpay example to create the RTP stream. </div> -<p> -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.114.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.114.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -110,7 +103,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.114.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.114.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,7 +166,10 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpamrdepay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpamrdepay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrdepay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpAMRDepay-struct"></a><h3>struct GstRtpAMRDepay</h3> <pre class="programlisting">struct GstRtpAMRDepay;</pre> @@ -183,11 +179,11 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpamrdepay.see-also"></a><h2>See Also</h2> -rtpamrpay +<p>rtpamrpay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 1459bbc21..6de03f6c6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpamrpay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpamrpay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrdepay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpamrpay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpamrpay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpamrpay.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpamrpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpamrpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpamrpay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpamrpay.top_of_page"></a>rtpamrpay</span></h2> <p>rtpamrpay — Payload-encode AMR or AMR-WB audio into RTP packets (RFC 3267)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpamrpay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpAMRPay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct" title="struct GstRtpAMRPay">GstRtpAMRPay</a>; -</pre> +<a name="GstRtpAMRPay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrpay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct" title="struct GstRtpAMRPay">GstRtpAMRPay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpamrpay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> - +----GstRtpAMRPay +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + <span class="lineart">╰──</span> GstRtpAMRPay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpamrpay.description"></a><h2>Description</h2> -<p> -Payload AMR audio into RTP packets according to RFC 3267. -For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt -</p> -<p> -</p> +<p>Payload AMR audio into RTP packets according to RFC 3267. +For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt</p> <div class="refsect2"> -<a name="id-1.2.115.5.3.1"></a><h3>Example pipeline</h3> +<a name="id-1.2.115.6.3"></a><h3>Example pipeline</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -76,15 +74,10 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt This example pipeline will encode and payload an AMR stream. Refer to the rtpamrdepay example to depayload and decode the RTP stream. </div> -<p> -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.115.5.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.115.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -110,7 +103,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.115.5.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.115.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,7 +166,10 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpamrpay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpamrpay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpamrpay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpAMRPay-struct"></a><h3>struct GstRtpAMRPay</h3> <pre class="programlisting">struct GstRtpAMRPay;</pre> @@ -183,11 +179,11 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpamrpay.see-also"></a><h2>See Also</h2> -rtpamrdepay +<p>rtpamrdepay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 1de812f79..36b5d1dd9 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html @@ -2,38 +2,30 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpbin</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpbin</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtspsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpbin.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpbin.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpbin.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpbin.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-rtpbin.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-rtpbin.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbin.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbin.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbin.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbin.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbin.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtspsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpbin"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -41,22 +33,237 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpbin.top_of_page"></a>rtpbin</span></h2> <p>rtpbin — Real-Time Transport Protocol bin</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpbin.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpBin"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct" title="struct GstRtpBin">GstRtpBin</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbin.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost" title="The “do-lost†property">do-lost</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency" title="The “latency†property">latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--sdes" title="The “sdes†property">sdes</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ignore-pt" title="The “ignore-pt†property">ignore-pt</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--autoremove" title="The “autoremove†property">autoremove</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">RTPJitterBufferMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--buffer-mode" title="The “buffer-mode†property">buffer-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-sync" title="The “ntp-sync†property">ntp-sync</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--use-pipeline-clock" title="The “use-pipeline-clock†property">use-pipeline-clock</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstRTCPSync</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync" title="The “rtcp-sync†property">rtcp-sync</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-interval" title="The “rtcp-sync-interval†property">rtcp-sync-interval</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--drop-on-latency" title="The “drop-on-latency†property">drop-on-latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-sync-event" title="The “do-sync-event†property">do-sync-event</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-retransmission" title="The “do-retransmission†property">do-retransmission</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbin.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-clear-pt-map" title="The “clear-pt-map†signal">clear-pt-map</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"> +<span class="returnvalue">RTPSession</span>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-internal-session" title="The “get-internal-session†signal">get-internal-session</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-ssrc" title="The “on-bye-ssrc†signal">on-bye-ssrc</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-timeout" title="The “on-bye-timeout†signal">on-bye-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-ssrc" title="The “on-new-ssrc†signal">on-new-ssrc</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-npt-stop" title="The “on-npt-stop†signal">on-npt-stop</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-timeout" title="The “on-sender-timeout†signal">on-sender-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-active" title="The “on-ssrc-active†signal">on-ssrc-active</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-collision" title="The “on-ssrc-collision†signal">on-ssrc-collision</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-sdes" title="The “on-ssrc-sdes†signal">on-ssrc-sdes</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-validated" title="The “on-ssrc-validated†signal">on-ssrc-validated</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-timeout" title="The “on-timeout†signal">on-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map" title="The “request-pt-map†signal">request-pt-map</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync" title="The “reset-sync†signal">reset-sync</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change" title="The “payload-type-change†signal">payload-type-change</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-new-jitterbuffer" title="The “new-jitterbuffer†signal">new-jitterbuffer</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver" title="The “request-aux-receiver†signal">request-aux-receiver</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender" title="The “request-aux-sender†signal">request-aux-sender</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-decoder" title="The “request-rtcp-decoder†signal">request-rtcp-decoder</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-encoder" title="The “request-rtcp-encoder†signal">request-rtcp-encoder</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder" title="The “request-rtp-decoder†signal">request-rtp-decoder</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder" title="The “request-rtp-encoder†signal">request-rtp-encoder</a></td> +<td class="signal_flags">Run Last</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpBin"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbin.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct" title="struct GstRtpBin">GstRtpBin</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbin.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstRtpBin +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstRtpBin </pre> </div> <div class="refsect1"> @@ -66,56 +273,13 @@ GstRtpBin implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpbin.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost" title='The "do-lost" property'>do-lost</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency" title='The "latency" property'>latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--sdes" title='The "sdes" property'>sdes</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ignore-pt" title='The "ignore-pt" property'>ignore-pt</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--autoremove" title='The "autoremove" property'>autoremove</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--buffer-mode" title='The "buffer-mode" property'>buffer-mode</a>" <span class="type">RTPJitterBufferMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-sync" title='The "ntp-sync" property'>ntp-sync</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--use-pipeline-clock" title='The "use-pipeline-clock" property'>use-pipeline-clock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync" title='The "rtcp-sync" property'>rtcp-sync</a>" <span class="type">GstRTCPSync</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-interval" title='The "rtcp-sync-interval" property'>rtcp-sync-interval</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--drop-on-latency" title='The "drop-on-latency" property'>drop-on-latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-sync-event" title='The "do-sync-event" property'>do-sync-event</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-retransmission" title='The "do-retransmission" property'>do-retransmission</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"> -<a name="gst-plugins-good-plugins-rtpbin.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-clear-pt-map" title='The "clear-pt-map" signal'>clear-pt-map</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-internal-session" title='The "get-internal-session" signal'>get-internal-session</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-ssrc" title='The "on-bye-ssrc" signal'>on-bye-ssrc</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-timeout" title='The "on-bye-timeout" signal'>on-bye-timeout</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-ssrc" title='The "on-new-ssrc" signal'>on-new-ssrc</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-npt-stop" title='The "on-npt-stop" signal'>on-npt-stop</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-timeout" title='The "on-sender-timeout" signal'>on-sender-timeout</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-active" title='The "on-ssrc-active" signal'>on-ssrc-active</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-collision" title='The "on-ssrc-collision" signal'>on-ssrc-collision</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-sdes" title='The "on-ssrc-sdes" signal'>on-ssrc-sdes</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-validated" title='The "on-ssrc-validated" signal'>on-ssrc-validated</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-timeout" title='The "on-timeout" signal'>on-timeout</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map" title='The "request-pt-map" signal'>request-pt-map</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync" title='The "reset-sync" signal'>reset-sync</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change" title='The "payload-type-change" signal'>payload-type-change</a>" : <code class="literal">Run Last</code> -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbin.description"></a><h2>Description</h2> -<p> -RTP bin combines the functions of <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a>, <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a>, +<p>RTP bin combines the functions of <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a>, <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a>, <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> and <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> in one element. It allows for multiple -RTP sessions that will be synchronized together using RTCP SR packets. -</p> -<p> -<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> is configured with a number of request pads that define the -functionality that is activated, similar to the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> element. -</p> -<p> -To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTP receiver, request a recv_rtp_sink_%u pad. The session +RTP sessions that will be synchronized together using RTCP SR packets.</p> +<p><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> is configured with a number of request pads that define the +functionality that is activated, similar to the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> element.</p> +<p>To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTP receiver, request a recv_rtp_sink_%u pad. The session number must be specified in the pad name. Data received on the recv_rtp_sink_%u pad will be processed in the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> manager and after being validated forwarded on <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> element. Each @@ -124,41 +288,48 @@ the packets are released from the jitterbuffer, they will be forwarded to a <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> element. The <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> element will demux the packets based on the payload type and will create a unique pad recv_rtp_src_%u_%u_%u on rtpbin with the session number, SSRC and payload type respectively as the pad -name. -</p> -<p> -To also use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTCP receiver, request a recv_rtcp_sink_%u pad. The -session number must be specified in the pad name. -</p> -<p> -If you want the session manager to generate and send RTCP packets, request +name.</p> +<p>To also use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as an RTCP receiver, request a recv_rtcp_sink_%u pad. The +session number must be specified in the pad name.</p> +<p>If you want the session manager to generate and send RTCP packets, request the send_rtcp_src_%u pad with the session number in the pad name. Packet pushed on this pad contain SR/RR RTCP reports that should be sent to all participants -in the session. -</p> -<p> -To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as a sender, request a send_rtp_sink_%u pad, which will +in the session.</p> +<p>To use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> as a sender, request a send_rtp_sink_%u pad, which will automatically create a send_rtp_src_%u pad. If the session number is not provided, the pad from the lowest available session will be returned. The session manager will modify the SSRC in the RTP packets to its own SSRC and wil forward the packets on the -send_rtp_src_%u pad after updating its internal state. -</p> -<p> -The session manager needs the clock-rate of the payload types it is handling -and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal when it needs such a -mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title='The "clear-pt-map" signal'><span class="type">"clear-pt-map"</span></a> -signal. -</p> -<p> -Access to the internal statistics of rtpbin is provided with the +send_rtp_src_%u pad after updating its internal state.</p> +<p>The session manager needs the clock-rate of the payload types it is handling +and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map†signal"><span class="type">“request-pt-mapâ€</span></a> signal when it needs such a +mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title="The “clear-pt-map†signal"><span class="type">“clear-pt-mapâ€</span></a> +signal.</p> +<p>Access to the internal statistics of rtpbin is provided with the get-internal-session property. This action signal gives access to the RTPSession object which further provides action signals to retrieve the -internal source and other sources. -</p> -<p> -</p> +internal source and other sources.</p> +<p><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> also has signals (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder" title="The “request-rtp-encoder†signal"><span class="type">“request-rtp-encoderâ€</span></a>, +<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder" title="The “request-rtp-decoder†signal"><span class="type">“request-rtp-decoderâ€</span></a>, <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-encoder" title="The “request-rtcp-encoder†signal"><span class="type">“request-rtcp-encoderâ€</span></a> and +<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder" title="The “request-rtp-decoder†signal"><span class="type">“request-rtp-decoderâ€</span></a>) to dynamically request for RTP and RTCP encoders +and decoders in order to support SRTP. The encoders must provide the pads +rtp_sink_%d and rtp_src_%d for RTP and rtcp_sink_%d and rtcp_src_%d for +RTCP. The session number will be used in the pad name. The decoders must provide +rtp_sink and rtp_src for RTP and rtcp_sink and rtcp_src for RTCP. The decoders will +be placed before the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> element, thus they must support SSRC demuxing +internally.</p> +<p><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> has signals (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender" title="The “request-aux-sender†signal"><span class="type">“request-aux-senderâ€</span></a> and +<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver" title="The “request-aux-receiver†signal"><span class="type">“request-aux-receiverâ€</span></a> to dynamically request an element that can be +used to create or merge additional RTP streams. AUX elements are needed to +implement FEC or retransmission (such as RFC 4588). An AUX sender must have one +sink_%u pad that matches the sessionid in the signal and it should have 1 or +more src_%u pads. For each src_%\u pad, a session will be made (if needed) +and the pad will be linked to the session send_rtp_sink pad. Each session will +then expose its source pad ad send_rtp_src_%u on <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>. +An AUX receiver has 1 src_%u pad that much match the sessionid in the signal +and 1 or more sink_%u pads. A session will be made for each sink_%u pad +when the corresponding recv_rtp_sink_%u pad is requested on <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>.</p> <div class="refsect2"> -<a name="id-1.2.124.8.10.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.124.9.12"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -247,15 +418,10 @@ synchronisation. Send RTCP reports for session 0 on port 5005 and RTCP reports for session 1 on port 5007. </div> -<p> -</p> -<p> -Last reviewed on 2007-08-30 (0.10.6) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.124.8.12.1"></a><h3>Element Information</h3> +<a name="id-1.2.124.9.13.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -281,7 +447,7 @@ Last reviewed on 2007-08-30 (0.10.6) </div> <hr> <div class="refsect2"> -<a name="id-1.2.124.8.12.2"></a><h3>Element Pads</h3> +<a name="id-1.2.124.9.13.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -304,6 +470,10 @@ Last reviewed on 2007-08-30 (0.10.6) <td><p><span class="term">details</span></p></td> <td>application/x-rtcp</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-srtcp</td> +</tr> </tbody> </table></div> <div class="variablelist"><table border="0" class="variablelist"> @@ -328,6 +498,10 @@ Last reviewed on 2007-08-30 (0.10.6) <td><p><span class="term">details</span></p></td> <td>application/x-rtp</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-srtp</td> +</tr> </tbody> </table></div> <div class="variablelist"><table border="0" class="variablelist"> @@ -400,6 +574,10 @@ Last reviewed on 2007-08-30 (0.10.6) <td><p><span class="term">details</span></p></td> <td>application/x-rtp</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-srtp</td> +</tr> </tbody> </table></div> <div class="variablelist"><table border="0" class="variablelist"> @@ -424,6 +602,10 @@ Last reviewed on 2007-08-30 (0.10.6) <td><p><span class="term">details</span></p></td> <td>application/x-rtcp</td> </tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> application/x-srtcp</td> +</tr> </tbody> </table></div> </div> @@ -432,7 +614,10 @@ Last reviewed on 2007-08-30 (0.10.6) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpbin.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpbin.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbin.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpBin-struct"></a><h3>struct GstRtpBin</h3> <pre class="programlisting">struct GstRtpBin;</pre> @@ -443,607 +628,1046 @@ Last reviewed on 2007-08-30 (0.10.6) <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbin.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRtpBin--do-lost"></a><h3>The <code class="literal">"do-lost"</code> property</h3> -<pre class="programlisting"> "do-lost" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpBin--do-lost"></a><h3>The <code class="literal">“do-lostâ€</code> property</h3> +<pre class="programlisting"> “do-lost†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Send an event downstream when a packet is lost.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--latency"></a><h3>The <code class="literal">"latency"</code> property</h3> -<pre class="programlisting"> "latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRtpBin--latency"></a><h3>The <code class="literal">“latencyâ€</code> property</h3> +<pre class="programlisting"> “latency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Default amount of ms to buffer in the jitterbuffers.</p> +<p>Flags: Read / Write</p> <p>Default value: 200</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--sdes"></a><h3>The <code class="literal">"sdes"</code> property</h3> -<pre class="programlisting"> "sdes" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstRtpBin--sdes"></a><h3>The <code class="literal">“sdesâ€</code> property</h3> +<pre class="programlisting"> “sdes†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>The SDES items of this session.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--ignore-pt"></a><h3>The <code class="literal">"ignore-pt"</code> property</h3> -<pre class="programlisting"> "ignore-pt" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpBin--ignore-pt"></a><h3>The <code class="literal">“ignore-ptâ€</code> property</h3> +<pre class="programlisting"> “ignore-pt†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Do not demultiplex based on PT values.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--autoremove"></a><h3>The <code class="literal">"autoremove"</code> property</h3> -<pre class="programlisting"> "autoremove" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpBin--autoremove"></a><h3>The <code class="literal">“autoremoveâ€</code> property</h3> +<pre class="programlisting"> “autoremove†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Automatically remove timed out sources.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--buffer-mode"></a><h3>The <code class="literal">"buffer-mode"</code> property</h3> -<pre class="programlisting"> "buffer-mode" <span class="type">RTPJitterBufferMode</span> : Read / Write</pre> -<p>Control the buffering algorithm in use.</p> +<a name="GstRtpBin--buffer-mode"></a><h3>The <code class="literal">“buffer-modeâ€</code> property</h3> +<pre class="programlisting"> “buffer-mode†<span class="type">RTPJitterBufferMode</span></pre> +<p>Control the buffering and timestamping mode used by the jitterbuffer.</p> +<p>Flags: Read / Write</p> <p>Default value: Slave receiver to sender clock</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--ntp-sync"></a><h3>The <code class="literal">"ntp-sync"</code> property</h3> -<pre class="programlisting"> "ntp-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>Synchronize received streams to the NTP clock.</p> +<a name="GstRtpBin--ntp-sync"></a><h3>The <code class="literal">“ntp-syncâ€</code> property</h3> +<pre class="programlisting"> “ntp-sync†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Set the NTP time from the sender reports as the running-time on the +buffers. When both the sender and receiver have sychronized +running-time, i.e. when the clock and base-time is shared +between the receivers and the and the senders, this option can be +used to synchronize receivers on multiple machines.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--use-pipeline-clock"></a><h3>The <code class="literal">"use-pipeline-clock"</code> property</h3> -<pre class="programlisting"> "use-pipeline-clock" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpBin--use-pipeline-clock"></a><h3>The <code class="literal">“use-pipeline-clockâ€</code> property</h3> +<pre class="programlisting"> “use-pipeline-clock†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--rtcp-sync"></a><h3>The <code class="literal">"rtcp-sync"</code> property</h3> -<pre class="programlisting"> "rtcp-sync" <span class="type">GstRTCPSync</span> : Read / Write</pre> -<p>Use of RTCP SR in synchronization.</p> +<a name="GstRtpBin--rtcp-sync"></a><h3>The <code class="literal">“rtcp-syncâ€</code> property</h3> +<pre class="programlisting"> “rtcp-sync†<span class="type">GstRTCPSync</span></pre> +<p>If not synchronizing (directly) to the NTP clock, determines how to sync +the various streams.</p> +<p>Flags: Read / Write</p> <p>Default value: always</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--rtcp-sync-interval"></a><h3>The <code class="literal">"rtcp-sync-interval"</code> property</h3> -<pre class="programlisting"> "rtcp-sync-interval" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> -<p>RTCP SR interval synchronization (ms) (0 = always).</p> +<a name="GstRtpBin--rtcp-sync-interval"></a><h3>The <code class="literal">“rtcp-sync-intervalâ€</code> property</h3> +<pre class="programlisting"> “rtcp-sync-interval†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Determines how often to sync streams using RTCP data.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--drop-on-latency"></a><h3>The <code class="literal">"drop-on-latency"</code> property</h3> -<pre class="programlisting"> "drop-on-latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpBin--drop-on-latency"></a><h3>The <code class="literal">“drop-on-latencyâ€</code> property</h3> +<pre class="programlisting"> “drop-on-latency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Tells the jitterbuffer to never exceed the given latency in size.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--do-sync-event"></a><h3>The <code class="literal">"do-sync-event"</code> property</h3> -<pre class="programlisting"> "do-sync-event" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpBin--do-sync-event"></a><h3>The <code class="literal">“do-sync-eventâ€</code> property</h3> +<pre class="programlisting"> “do-sync-event†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Send event downstream when a stream is synchronized to the sender.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpBin--do-retransmission"></a><h3>The <code class="literal">"do-retransmission"</code> property</h3> -<pre class="programlisting"> "do-retransmission" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpBin--do-retransmission"></a><h3>The <code class="literal">“do-retransmissionâ€</code> property</h3> +<pre class="programlisting"> “do-retransmission†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Send an event downstream to request packet retransmission.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbin.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstRtpBin-clear-pt-map"></a><h3>The <code class="literal">"clear-pt-map"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Clear all previously cached pt-mapping obtained with -<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-clear-pt-map"></a><h3>The <code class="literal">“clear-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Clear all previously cached pt-mapping obtained with +<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map" title="The “request-pt-map†signal"><span class="type">“request-pt-mapâ€</span></a>.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-get-internal-session"></a><h3>The <code class="literal">"get-internal-session"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">RTPSession</span>* user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Request the internal RTPSession object as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> in session <em class="parameter"><code>id</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-get-internal-session"></a><h3>The <code class="literal">“get-internal-sessionâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">RTPSession</span>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request the internal RTPSession object as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> in session <em class="parameter"><code>id</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td> -<td>the session id</td> +<td class="parameter_name"><p>id</p></td> +<td class="parameter_description"><p>the session id</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-bye-ssrc"></a><h3>The <code class="literal">"on-bye-ssrc"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that became inactive because of a BYE packet. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-bye-ssrc"></a><h3>The <code class="literal">“on-bye-ssrcâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that became inactive because of a BYE packet.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-bye-timeout"></a><h3>The <code class="literal">"on-bye-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that has timed out because of BYE -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-bye-timeout"></a><h3>The <code class="literal">“on-bye-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that has timed out because of BYE</p> +<div class="refsect3"> +<a name="id-1.2.124.13.5.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-new-ssrc"></a><h3>The <code class="literal">"on-new-ssrc"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-new-ssrc"></a><h3>The <code class="literal">“on-new-ssrcâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a new SSRC that entered <em class="parameter"><code>session</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.6.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-npt-stop"></a><h3>The <code class="literal">"on-npt-stop"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify that SSRC sender has sent data up to the configured NPT stop time. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-npt-stop"></a><h3>The <code class="literal">“on-npt-stopâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify that SSRC sender has sent data up to the configured NPT stop time.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.7.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-sender-timeout"></a><h3>The <code class="literal">"on-sender-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a sender SSRC that has timed out and became a receiver -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-sender-timeout"></a><h3>The <code class="literal">“on-sender-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a sender SSRC that has timed out and became a receiver</p> +<div class="refsect3"> +<a name="id-1.2.124.13.8.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-ssrc-active"></a><h3>The <code class="literal">"on-ssrc-active"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a SSRC that is active, i.e., sending RTCP. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-ssrc-active"></a><h3>The <code class="literal">“on-ssrc-activeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a SSRC that is active, i.e., sending RTCP.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.9.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-ssrc-collision"></a><h3>The <code class="literal">"on-ssrc-collision"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify when we have an SSRC collision -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-ssrc-collision"></a><h3>The <code class="literal">“on-ssrc-collisionâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify when we have an SSRC collision</p> +<div class="refsect3"> +<a name="id-1.2.124.13.10.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-ssrc-sdes"></a><h3>The <code class="literal">"on-ssrc-sdes"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a SSRC that is active, i.e., sending RTCP. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-ssrc-sdes"></a><h3>The <code class="literal">“on-ssrc-sdesâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a SSRC that is active, i.e., sending RTCP.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.11.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-ssrc-validated"></a><h3>The <code class="literal">"on-ssrc-validated"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a new SSRC that became validated. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-ssrc-validated"></a><h3>The <code class="literal">“on-ssrc-validatedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a new SSRC that became validated.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.12.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-on-timeout"></a><h3>The <code class="literal">"on-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that has timed out -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-on-timeout"></a><h3>The <code class="literal">“on-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that has timed out</p> +<div class="refsect3"> +<a name="id-1.2.124.13.13.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-request-pt-map"></a><h3>The <code class="literal">"request-pt-map"</code> signal</h3> -<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-request-pt-map"></a><h3>The <code class="literal">“request-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> + in <em class="parameter"><code>session</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.14.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the pt</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the pt</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-reset-sync"></a><h3>The <code class="literal">"reset-sync"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Reset all currently configured lip-sync parameters and require new SR -packets for all streams before lip-sync is attempted again. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-reset-sync"></a><h3>The <code class="literal">“reset-syncâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Reset all currently configured lip-sync parameters and require new SR +packets for all streams before lip-sync is attempted again.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.15.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpBin-payload-type-change"></a><h3>The <code class="literal">"payload-type-change"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Signal that the current payload type changed to <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpBin-payload-type-change"></a><h3>The <code class="literal">“payload-type-changeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Signal that the current payload type changed to <em class="parameter"><code>pt</code></em> + in <em class="parameter"><code>session</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.16.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the pt</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the pt</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> -<p class="since">Since 0.10.17</p> +</div> +<p>Flags: Run Last</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpBin-new-jitterbuffer"></a><h3>The <code class="literal">“new-jitterbufferâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *jitterbuffer, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify that a new <em class="parameter"><code>jitterbuffer</code></em> + was created for <em class="parameter"><code>session</code></em> + and <em class="parameter"><code>ssrc</code></em> +. +This signal can, for example, be used to configure <em class="parameter"><code>jitterbuffer</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.17.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>jitterbuffer</p></td> +<td class="parameter_description"><p>the new jitterbuffer</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Run Last</p> +<p class="since">Since 1.4</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpBin-request-aux-receiver"></a><h3>The <code class="literal">“request-aux-receiverâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request an AUX receiver element for the given <em class="parameter"><code>session</code></em> +. The AUX +element will be added to the bin.</p> +<p>If no handler is connected, no AUX element will be used.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.18.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Run Last</p> +<p class="since">Since 1.4</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpBin-request-aux-sender"></a><h3>The <code class="literal">“request-aux-senderâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request an AUX sender element for the given <em class="parameter"><code>session</code></em> +. The AUX +element will be added to the bin.</p> +<p>If no handler is connected, no AUX element will be used.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.19.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Run Last</p> +<p class="since">Since 1.4</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpBin-request-rtcp-decoder"></a><h3>The <code class="literal">“request-rtcp-decoderâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request an RTCP decoder element for the given <em class="parameter"><code>session</code></em> +. The decoder +element will be added to the bin if not previously added.</p> +<p>If no handler is connected, no encoder will be used.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.20.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Run Last</p> +<p class="since">Since 1.4</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpBin-request-rtcp-encoder"></a><h3>The <code class="literal">“request-rtcp-encoderâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request an RTCP encoder element for the given <em class="parameter"><code>session</code></em> +. The encoder +element will be added to the bin if not previously added.</p> +<p>If no handler is connected, no encoder will be used.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.21.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Run Last</p> +<p class="since">Since 1.4</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpBin-request-rtp-decoder"></a><h3>The <code class="literal">“request-rtp-decoderâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request an RTP decoder element for the given <em class="parameter"><code>session</code></em> +. The decoder +element will be added to the bin if not previously added.</p> +<p>If no handler is connected, no encoder will be used.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.22.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Run Last</p> +<p class="since">Since 1.4</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpBin-request-rtp-encoder"></a><h3>The <code class="literal">“request-rtp-encoderâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request an RTP encoder element for the given <em class="parameter"><code>session</code></em> +. The encoder +element will be added to the bin if not previously added.</p> +<p>If no handler is connected, no encoder will be used.</p> +<div class="refsect3"> +<a name="id-1.2.124.13.23.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Run Last</p> +<p class="since">Since 1.4</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbin.see-also"></a><h2>See Also</h2> -rtpjitterbuffer, rtpsession, rtpptdemux, rtpssrcdemux +<p>rtpjitterbuffer, rtpsession, rtpptdemux, rtpssrcdemux</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f1ffc7c80..b4fe16787 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpbvdepay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpbvdepay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpbvdepay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpbvdepay.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbvdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbvdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpbvdepay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,25 +30,21 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpbvdepay.top_of_page"></a>rtpbvdepay</span></h2> <p>rtpbvdepay — Extracts BroadcomVoice audio from RTP packets (RFC 4298)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpbvdepay.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis"></pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvdepay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> +</pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbvdepay.description"></a><h2>Description</h2> -<p> -Extract BroadcomVoice audio from RTP packets according to RFC 4298. -For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> +<p>Extract BroadcomVoice audio from RTP packets according to RFC 4298. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.116.4.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.116.4.2.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -77,7 +70,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.116.4.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.116.4.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -136,15 +129,18 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpbvdepay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpbvdepay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvdepay.other_details"></a><h2>Types and Values</h2> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbvdepay.see-also"></a><h2>See Also</h2> -rtpbvpay +<p>rtpbvpay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 28e2749bc..107275656 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpbvpay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpbvpay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpbvpay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpbvpay.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbvpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpbvpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpbvpay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,25 +30,21 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpbvpay.top_of_page"></a>rtpbvpay</span></h2> <p>rtpbvpay — Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpbvpay.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis"></pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvpay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> +</pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbvpay.description"></a><h2>Description</h2> -<p> -Payload BroadcomVoice audio into RTP packets according to RFC 4298. -For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt -</p> -<p> -Last reviewed on 2013-04-25 (1.1.0) -</p> +<p>Payload BroadcomVoice audio into RTP packets according to RFC 4298. +For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.117.4.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.117.4.2.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -77,7 +70,7 @@ Last reviewed on 2013-04-25 (1.1.0) </div> <hr> <div class="refsect2"> -<a name="id-1.2.117.4.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.117.4.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -136,15 +129,18 @@ Last reviewed on 2013-04-25 (1.1.0) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpbvpay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpbvpay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpbvpay.other_details"></a><h2>Types and Values</h2> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpbvpay.see-also"></a><h2>See Also</h2> -rtpbvdepay +<p>rtpbvdepay</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 57bb172c5..5823a28ec 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rippletv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpdec.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-rtpdec.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdec.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdec.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rippletv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,55 +32,112 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdec.top_of_page"></a>rtpdec</span></h2> <p>rtpdec — Accepts raw RTP and RTCP packets and sends them forward</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstRTPDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct" title="struct GstRTPDec">GstRTPDec</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstRTPDec -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdec.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip" title='The "skip" property'>skip</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency" title='The "latency" property'>latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip" title="The “skip†property">skip</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency" title="The “latency†property">latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdec.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map" title='The "clear-pt-map" signal'>clear-pt-map</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map" title='The "request-pt-map" signal'>request-pt-map</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc" title='The "on-bye-ssrc" signal'>on-bye-ssrc</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout" title='The "on-bye-timeout" signal'>on-bye-timeout</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc" title='The "on-new-ssrc" signal'>on-new-ssrc</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision" title='The "on-ssrc-collision" signal'>on-ssrc-collision</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated" title='The "on-ssrc-validated" signal'>on-ssrc-validated</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout" title='The "on-timeout" signal'>on-timeout</a>" : <code class="literal">Run Last</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map" title="The “clear-pt-map†signal">clear-pt-map</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map" title="The “request-pt-map†signal">request-pt-map</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc" title="The “on-bye-ssrc†signal">on-bye-ssrc</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout" title="The “on-bye-timeout†signal">on-bye-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc" title="The “on-new-ssrc†signal">on-new-ssrc</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision" title="The “on-ssrc-collision†signal">on-ssrc-collision</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated" title="The “on-ssrc-validated†signal">on-ssrc-validated</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout" title="The “on-timeout†signal">on-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRTPDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct" title="struct GstRTPDec">GstRTPDec</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdec.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRTPDec </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdec.description"></a><h2>Description</h2> -<p> -A simple RTP session manager used internally by rtspsrc. -</p> -<p> -Last reviewed on 2006-06-20 (0.10.4) -</p> +<p>A simple RTP session manager used internally by rtspsrc.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.111.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.111.8.2.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -113,7 +163,7 @@ Last reviewed on 2006-06-20 (0.10.4) </div> <hr> <div class="refsect2"> -<a name="id-1.2.111.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.111.8.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -216,7 +266,10 @@ Last reviewed on 2006-06-20 (0.10.4) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRTPDec-struct"></a><h3>struct GstRTPDec</h3> <pre class="programlisting">struct GstRTPDec;</pre> @@ -227,275 +280,344 @@ Last reviewed on 2006-06-20 (0.10.4) <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdec.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRTPDec--skip"></a><h3>The <code class="literal">"skip"</code> property</h3> -<pre class="programlisting"> "skip" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRTPDec--skip"></a><h3>The <code class="literal">“skipâ€</code> property</h3> +<pre class="programlisting"> “skip†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>skip (unused).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDec--latency"></a><h3>The <code class="literal">"latency"</code> property</h3> -<pre class="programlisting"> "latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTPDec--latency"></a><h3>The <code class="literal">“latencyâ€</code> property</h3> +<pre class="programlisting"> “latency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Amount of ms to buffer.</p> +<p>Flags: Read / Write</p> <p>Default value: 200</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdec.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstRTPDec-clear-pt-map"></a><h3>The <code class="literal">"clear-pt-map"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *gstrtpdec, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstRTPDec-clear-pt-map"></a><h3>The <code class="literal">“clear-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *gstrtpdec, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.111.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstrtpdec</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRTPDec-request-pt-map"></a><h3>The <code class="literal">"request-pt-map"</code> signal</h3> -<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpdec, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> in <em class="parameter"><code>session</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRTPDec-request-pt-map"></a><h3>The <code class="literal">“request-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpdec, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> + in <em class="parameter"><code>session</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.111.12.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpdec</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpdec</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the pt</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the pt</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRTPDec-on-bye-ssrc"></a><h3>The <code class="literal">"on-bye-ssrc"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that became inactive because of a BYE packet. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRTPDec-on-bye-ssrc"></a><h3>The <code class="literal">“on-bye-ssrcâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that became inactive because of a BYE packet.</p> +<div class="refsect3"> +<a name="id-1.2.111.12.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC </p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRTPDec-on-bye-timeout"></a><h3>The <code class="literal">"on-bye-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that has timed out because of BYE -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRTPDec-on-bye-timeout"></a><h3>The <code class="literal">“on-bye-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that has timed out because of BYE</p> +<div class="refsect3"> +<a name="id-1.2.111.12.5.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC </p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRTPDec-on-new-ssrc"></a><h3>The <code class="literal">"on-new-ssrc"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRTPDec-on-new-ssrc"></a><h3>The <code class="literal">“on-new-ssrcâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a new SSRC that entered <em class="parameter"><code>session</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.111.12.6.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC </p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRTPDec-on-ssrc-collision"></a><h3>The <code class="literal">"on-ssrc-collision"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *gstrtpdec, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstRTPDec-on-ssrc-collision"></a><h3>The <code class="literal">“on-ssrc-collisionâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *gstrtpdec, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.111.12.7.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstrtpdec</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRTPDec-on-ssrc-validated"></a><h3>The <code class="literal">"on-ssrc-validated"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *gstrtpdec, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstRTPDec-on-ssrc-validated"></a><h3>The <code class="literal">“on-ssrc-validatedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *gstrtpdec, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.111.12.8.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstrtpdec</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstrtpdec</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRTPDec-on-timeout"></a><h3>The <code class="literal">"on-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that has timed out -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRTPDec-on-timeout"></a><h3>The <code class="literal">“on-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTPDec"><span class="type">GstRTPDec</span></a> *rtpbin, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that has timed out</p> +<div class="refsect3"> +<a name="id-1.2.111.12.9.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtpbin</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>rtpbin</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the session</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the session</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC </p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 1dfdfb149..2fcec084e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpdtmfmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpdtmfmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbin.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpdtmfmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpdtmfmux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdtmfmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpdtmfmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,41 +30,44 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdtmfmux.top_of_page"></a>rtpdtmfmux</span></h2> <p>rtpdtmfmux — mixes RTP DTMF streams into other RTP streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpdtmfmux.synopsis"></a><h2>Synopsis</h2> -<a name="GstRTPDTMFMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct" title="struct GstRTPDTMFMux">GstRTPDTMFMux</a>; -</pre> +<a name="GstRTPDTMFMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct" title="struct GstRTPDTMFMux">GstRTPDTMFMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux">GstRTPMux</a> - +----GstRTPDTMFMux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux">GstRTPMux</a> + <span class="lineart">╰──</span> GstRTPDTMFMux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdtmfmux.description"></a><h2>Description</h2> -<p> -The RTP "DTMF" Muxer muxes multiple RTP streams into a valid RTP +<p>The RTP "DTMF" Muxer muxes multiple RTP streams into a valid RTP stream. It does exactly what its parent (<span class="type">rtpmux</span>) does, except that it prevent buffers coming over a regular sink_%<code class="literal">u</code> pad from going through -for the duration of buffers that came in a priority_sink_%<code class="literal">u</code> pad. -</p> -<p> -This is especially useful if a discontinuous source like dtmfsrc or +for the duration of buffers that came in a priority_sink_%<code class="literal">u</code> pad.</p> +<p>This is especially useful if a discontinuous source like dtmfsrc or rtpdtmfsrc are connected to the priority sink pads. This way, the generated -DTMF signal can replace the recorded audio while the tone is being sent. -</p> +DTMF signal can replace the recorded audio while the tone is being sent.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.125.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.125.6.3.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -95,7 +93,7 @@ DTMF signal can replace the recorded audio while the tone is being sent. </div> <hr> <div class="refsect2"> -<a name="id-1.2.125.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.125.6.3.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -174,22 +172,23 @@ DTMF signal can replace the recorded audio while the tone is being sent. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpdtmfmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpdtmfmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfmux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRTPDTMFMux-struct"></a><h3>struct GstRTPDTMFMux</h3> <pre class="programlisting">struct GstRTPDTMFMux;</pre> -<p> -The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux"><span class="type">GstRTPDTMFMux</span></a> structure. -</p> +<p>The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux"><span class="type">GstRTPDTMFMux</span></a> structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdtmfmux.see-also"></a><h2>See Also</h2> -rtpdtmfsrc, dtmfsrc, rtpmux +<p>rtpdtmfsrc, dtmfsrc, rtpmux</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 41b67e157..8c17f3adc 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpdtmfsrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpdtmfsrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpdtmfsrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpdtmfsrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpdtmfsrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdtmfsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpdtmfsrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpdtmfsrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,49 +31,91 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdtmfsrc.top_of_page"></a>rtpdtmfsrc</span></h2> <p>rtpdtmfsrc — Generates RTP DTMF packets</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpdtmfsrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstRTPDTMFSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct" title="struct GstRTPDTMFSrc">GstRTPDTMFSrc</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----GstRTPDTMFSrc -</pre> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate" title="The “clock-rate†property">clock-rate</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy" title="The “packet-redundancy†property">packet-redundancy</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt" title="The “pt†property">pt</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum" title="The “seqnum†property">seqnum</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset" title="The “seqnum-offset†property">seqnum-offset</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc" title="The “ssrc†property">ssrc</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp" title="The “timestamp†property">timestamp</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset" title="The “timestamp-offset†property">timestamp-offset</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRTPDTMFSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct" title="struct GstRTPDTMFSrc">GstRTPDTMFSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpdtmfsrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate" title='The "clock-rate" property'>clock-rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--packet-redundancy" title='The "packet-redundancy" property'>packet-redundancy</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--pt" title='The "pt" property'>pt</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum" title='The "seqnum" property'>seqnum</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--seqnum-offset" title='The "seqnum-offset" property'>seqnum-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc" title='The "ssrc" property'>ssrc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp" title='The "timestamp" property'>timestamp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> GstRTPDTMFSrc </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdtmfsrc.description"></a><h2>Description</h2> -<p> -The RTPDTMFSrc element generates RTP DTMF (RFC 2833) event packets on request +<p>The RTPDTMFSrc element generates RTP DTMF (RFC 2833) event packets on request from application. The application communicates the beginning and end of a DTMF event using custom upstream gstreamer events. To report a DTMF event, an application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a structure of name "dtmf-event" with fields set according to the following -table: -</p> -<p> -</p> +table:</p> <div class="informaltable"><table border="1"> <colgroup> <col class="Name"> @@ -136,15 +172,9 @@ field is absent or 1. </tr> </tbody> </table></div> -<p> -</p> -<p> -For example, the following code informs the pipeline (and in turn, the +<p>For example, the following code informs the pipeline (and in turn, the RTPDTMFSrc element inside the pipeline) about the start of an RTP DTMF named -event '1' of volume -25 dBm0: -</p> -<p> -</p> +event '1' of volume -25 dBm0:</p> <pre class="programlisting"> structure = gst_structure_new ("dtmf-event", "type", G_TYPE_INT, 1, @@ -155,20 +185,16 @@ structure = gst_structure_new ("dtmf-event", event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure); gst_element_send_event (pipeline, event); </pre> -<p> -</p> -<p> -When a DTMF tone actually starts or stop, a "dtmf-event-processed" +<p>When a DTMF tone actually starts or stop, a "dtmf-event-processed" element <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> with the same fields as the "dtmf-event" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> that was used to request the event. Also, if any event has not been processed when the element goes from the PAUSED to the READY state, then a "dtmf-event-dropped" message is posted on the -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received. -</p> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> in the order that they were received.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.126.6.7.1"></a><h3>Element Information</h3> +<a name="id-1.2.126.7.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -194,7 +220,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the </div> <hr> <div class="refsect2"> -<a name="id-1.2.126.6.7.2"></a><h3>Element Pads</h3> +<a name="id-1.2.126.7.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -225,91 +251,104 @@ READY state, then a "dtmf-event-dropped" message is posted on the </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpdtmfsrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpdtmfsrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRTPDTMFSrc-struct"></a><h3>struct GstRTPDTMFSrc</h3> <pre class="programlisting">struct GstRTPDTMFSrc;</pre> -<p> -The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc"><span class="type">GstRTPDTMFSrc</span></a> data structure. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<p>The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc"><span class="type">GstRTPDTMFSrc</span></a> data structure.</p> +<div class="refsect3"> +<a name="id-1.2.126.9.2.5"></a><h4>Members</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="300px" class="struct_members_name"> +<col class="struct_members_description"> +<col width="200px" class="struct_members_annotations"> </colgroup> <tbody></tbody> </table></div> </div> </div> +</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdtmfsrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRTPDTMFSrc--clock-rate"></a><h3>The <code class="literal">"clock-rate"</code> property</h3> -<pre class="programlisting"> "clock-rate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTPDTMFSrc--clock-rate"></a><h3>The <code class="literal">“clock-rateâ€</code> property</h3> +<pre class="programlisting"> “clock-rate†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The clock-rate at which to generate the dtmf packets.</p> +<p>Flags: Read / Write</p> <p>Default value: 8000</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDTMFSrc--packet-redundancy"></a><h3>The <code class="literal">"packet-redundancy"</code> property</h3> -<pre class="programlisting"> "packet-redundancy" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTPDTMFSrc--packet-redundancy"></a><h3>The <code class="literal">“packet-redundancyâ€</code> property</h3> +<pre class="programlisting"> “packet-redundancy†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Number of packets to send to indicate start and stop dtmf events.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,5]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDTMFSrc--pt"></a><h3>The <code class="literal">"pt"</code> property</h3> -<pre class="programlisting"> "pt" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTPDTMFSrc--pt"></a><h3>The <code class="literal">“ptâ€</code> property</h3> +<pre class="programlisting"> “pt†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The payload type of the packets.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 128</p> <p>Default value: 96</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDTMFSrc--seqnum"></a><h3>The <code class="literal">"seqnum"</code> property</h3> -<pre class="programlisting"> "seqnum" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<a name="GstRTPDTMFSrc--seqnum"></a><h3>The <code class="literal">“seqnumâ€</code> property</h3> +<pre class="programlisting"> “seqnum†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The RTP sequence number of the last processed packet.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDTMFSrc--seqnum-offset"></a><h3>The <code class="literal">"seqnum-offset"</code> property</h3> -<pre class="programlisting"> "seqnum-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRTPDTMFSrc--seqnum-offset"></a><h3>The <code class="literal">“seqnum-offsetâ€</code> property</h3> +<pre class="programlisting"> “seqnum-offset†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Offset to add to all outgoing seqnum (-1 = random).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDTMFSrc--ssrc"></a><h3>The <code class="literal">"ssrc"</code> property</h3> -<pre class="programlisting"> "ssrc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTPDTMFSrc--ssrc"></a><h3>The <code class="literal">“ssrcâ€</code> property</h3> +<pre class="programlisting"> “ssrc†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The SSRC of the packets (-1 == random).</p> +<p>Flags: Read / Write</p> <p>Default value: 4294967295</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDTMFSrc--timestamp"></a><h3>The <code class="literal">"timestamp"</code> property</h3> -<pre class="programlisting"> "timestamp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<a name="GstRTPDTMFSrc--timestamp"></a><h3>The <code class="literal">“timestampâ€</code> property</h3> +<pre class="programlisting"> “timestamp†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The RTP timestamp of the last processed packet.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPDTMFSrc--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3> -<pre class="programlisting"> "timestamp-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRTPDTMFSrc--timestamp-offset"></a><h3>The <code class="literal">“timestamp-offsetâ€</code> property</h3> +<pre class="programlisting"> “timestamp-offset†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Offset to add to all outgoing timestamps (-1 = random).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpdtmfsrc.see-also"></a><h2>See Also</h2> -dtmfsrc, rtpdtmfdepay, rtpdtmfmux +<p>dtmfsrc, rtpdtmfdepay, rtpdtmfmux</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 1945651d4..dbc81417a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpj2kpay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpj2kpay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpj2kpay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpj2kpay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpj2kpay.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpj2kpay.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpj2kpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpj2kpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpj2kpay.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpj2kpay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,45 +31,57 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpj2kpay.top_of_page"></a>rtpj2kpay</span></h2> <p>rtpj2kpay — Payload-encodes JPEG 2000 pictures into RTP packets (RFC 5371)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpj2kpay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpJ2KPay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct" title="struct GstRtpJ2KPay">GstRtpJ2KPay</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpj2kpay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> - +----GstRtpJ2KPay -</pre> +<a name="gst-plugins-good-plugins-rtpj2kpay.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list" title="The “buffer-list†property">buffer-list</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstRtpJ2KPay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpj2kpay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct" title="struct GstRtpJ2KPay">GstRtpJ2KPay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpj2kpay.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list" title='The "buffer-list" property'>buffer-list</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-rtpj2kpay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + <span class="lineart">╰──</span> GstRtpJ2KPay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpj2kpay.description"></a><h2>Description</h2> -<p> -Payload encode JPEG 2000 pictures into RTP packets according to RFC 5371. -For detailed information see: http://www.rfc-editor.org/rfc/rfc5371.txt -</p> -<p> -The payloader takes a JPEG 2000 picture, scans the header for packetization +<p>Payload encode JPEG 2000 pictures into RTP packets according to RFC 5371. +For detailed information see: http://www.rfc-editor.org/rfc/rfc5371.txt</p> +<p>The payloader takes a JPEG 2000 picture, scans the header for packetization units and constructs the RTP packet header followed by the actual JPEG 2000 -codestream. -</p> +codestream.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.120.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.120.7.3.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -101,7 +107,7 @@ codestream. </div> <hr> <div class="refsect2"> -<a name="id-1.2.120.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.120.7.3.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -156,7 +162,10 @@ codestream. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpj2kpay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpj2kpay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpj2kpay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpJ2KPay-struct"></a><h3>struct GstRtpJ2KPay</h3> <pre class="programlisting">struct GstRtpJ2KPay;</pre> @@ -167,15 +176,16 @@ codestream. <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpj2kpay.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRtpJ2KPay--buffer-list"></a><h3>The <code class="literal">"buffer-list"</code> property</h3> -<pre class="programlisting"> "buffer-list" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpJ2KPay--buffer-list"></a><h3>The <code class="literal">“buffer-listâ€</code> property</h3> +<pre class="programlisting"> “buffer-list†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use Buffer Lists.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 8459f63ff..bd00445ef 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpjitterbuffer</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpjitterbuffer</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpjitterbuffer.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpjitterbuffer.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpjitterbuffer.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-rtpjitterbuffer.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpjitterbuffer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpjitterbuffer.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpjitterbuffer.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpjitterbuffer"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,129 +32,193 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpjitterbuffer.top_of_page"></a>rtpjitterbuffer</span></h2> <p>rtpjitterbuffer — A buffer that deals with network jitter and other transmission faults</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpjitterbuffer.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpJitterBuffer"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct" title="struct GstRtpJitterBuffer">GstRtpJitterBuffer</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstRtpJitterBuffer -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpjitterbuffer.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost" title='The "do-lost" property'>do-lost</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency" title='The "drop-on-latency" property'>drop-on-latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title='The "latency" property'>latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--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-rtpjitterbuffer.html#GstRtpJitterBuffer--mode" title='The "mode" property'>mode</a>" <span class="type">RTPJitterBufferMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--percent" title='The "percent" property'>percent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission" title='The "do-retransmission" property'>do-retransmission</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay" title='The "rtx-delay" property'>rtx-delay</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder" title='The "rtx-delay-reorder" property'>rtx-delay-reorder</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period" title='The "rtx-retry-period" property'>rtx-retry-period</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title='The "rtx-retry-timeout" property'>rtx-retry-timeout</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost" title="The “do-lost†property">do-lost</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency" title="The “drop-on-latency†property">drop-on-latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title="The “latency†property">latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">gint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--ts-offset" title="The “ts-offset†property">ts-offset</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">RTPJitterBufferMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--percent" title="The “percent†property">percent</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission" title="The “do-retransmission†property">do-retransmission</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay" title="The “rtx-delay†property">rtx-delay</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder" title="The “rtx-delay-reorder†property">rtx-delay-reorder</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period" title="The “rtx-retry-period†property">rtx-retry-period</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout†property">rtx-retry-timeout</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--stats" title="The “stats†property">stats</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpjitterbuffer.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map" title='The "clear-pt-map" signal'>clear-pt-map</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync" title='The "handle-sync" signal'>handle-sync</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop" title='The "on-npt-stop" signal'>on-npt-stop</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title='The "request-pt-map" signal'>request-pt-map</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active" title='The "set-active" signal'>set-active</a>" : <code class="literal">Action</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map" title="The “clear-pt-map†signal">clear-pt-map</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync" title="The “handle-sync†signal">handle-sync</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop" title="The “on-npt-stop†signal">on-npt-stop</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title="The “request-pt-map†signal">request-pt-map</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">guint64</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active" title="The “set-active†signal">set-active</a></td> +<td class="signal_flags">Action</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpJitterBuffer"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpjitterbuffer.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct" title="struct GstRtpJitterBuffer">GstRtpJitterBuffer</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRtpJitterBuffer </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpjitterbuffer.description"></a><h2>Description</h2> -<p> -This element reorders and removes duplicate RTP packets as they are received -from a network source. -</p> -<p> -The element needs the clock-rate of the RTP payload in order to estimate the +<p>This element reorders and removes duplicate RTP packets as they are received +from a network source.</p> +<p>The element needs the clock-rate of the RTP payload in order to estimate the delay. This information is obtained either from the caps on the sink pad or, -when no caps are present, from the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal. -To clear the previous pt-map use the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map" title='The "clear-pt-map" signal'><span class="type">"clear-pt-map"</span></a> signal. -</p> -<p> -The rtpjitterbuffer will wait for missing packets up to a configurable time -limit using the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title='The "latency" property'><span class="type">"latency"</span></a> property. Packets arriving too -late are considered to be lost packets. If the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost" title='The "do-lost" property'><span class="type">"do-lost"</span></a> +when no caps are present, from the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title="The “request-pt-map†signal"><span class="type">“request-pt-mapâ€</span></a> signal. +To clear the previous pt-map use the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map" title="The “clear-pt-map†signal"><span class="type">“clear-pt-mapâ€</span></a> signal.</p> +<p>The rtpjitterbuffer will wait for missing packets up to a configurable time +limit using the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title="The “latency†property"><span class="type">“latencyâ€</span></a> property. Packets arriving too +late are considered to be lost packets. If the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost" title="The “do-lost†property"><span class="type">“do-lostâ€</span></a> property is set, lost packets will result in a custom serialized downstream event of name GstRTPPacketLost. The lost packet events are usually used by a depayloader or other element to create concealment data or some other logic -to gracefully handle the missing packets. -</p> -<p> -The jitterbuffer will use the DTS (or PTS if no DTS is set) of the incomming +to gracefully handle the missing packets.</p> +<p>The jitterbuffer will use the DTS (or PTS if no DTS is set) of the incomming buffer and the rtptime inside the RTP packet to create a PTS on the outgoing -buffer. -</p> -<p> -The jitterbuffer can also be configured to send early retransmission events -upstream by setting the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission" title='The "do-retransmission" property'><span class="type">"do-retransmission"</span></a> property. In +buffer.</p> +<p>The jitterbuffer can also be configured to send early retransmission events +upstream by setting the <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-retransmission" title="The “do-retransmission†property"><span class="type">“do-retransmissionâ€</span></a> property. In this mode, the jitterbuffer tries to estimate when a packet should arrive and sends a custom upstream event named GstRTPRetransmissionRequest when the packet is considered late. The initial expected packet arrival time is -calculated as follows: -</p> -<p> -</p> -<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>If seqnum N arrived at time T, seqnum N+1 is expected to arrive at - T + packet-spacing + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay" title='The "rtx-delay" property'><span class="type">"rtx-delay"</span></a>. The packet spacing is - calculated from the DTS (or PTS is no DTS) of two consecutive RTP - packets with different rtptime.</p></li></ul></div> -<p> -</p> -<p> -</p> -<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>If seqnum N0 arrived at time T0 and seqnum Nm arrived at time Tm, - seqnum Ni is expected at time Ti = T0 + i*(Tm - T0)/(Nm - N0). Any - previously scheduled timeout is overwritten.</p></li></ul></div> -<p> -</p> -<p> -</p> -<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>If seqnum N arrived, all seqnum older than - N - <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder" title='The "rtx-delay-reorder" property'><span class="type">"rtx-delay-reorder"</span></a> are considered late - immediately. This is to request fast feedback for abonormally reorder - packets before any of the previous timeouts is triggered.</p></li></ul></div> -<p> -</p> -<p> -A late packet triggers the GstRTPRetransmissionRequest custom upstream +calculated as follows:</p> +<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> +<li class="listitem"><p>If seqnum N arrived at time T, seqnum N+1 is expected to arrive at +T + packet-spacing + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay" title="The “rtx-delay†property"><span class="type">“rtx-delayâ€</span></a>. The packet spacing is +calculated from the DTS (or PTS is no DTS) of two consecutive RTP +packets with different rtptime.</p></li> +<li class="listitem"><p>If seqnum N0 arrived at time T0 and seqnum Nm arrived at time Tm, +seqnum Ni is expected at time Ti = T0 + i*(Tm - T0)/(Nm - N0). Any +previously scheduled timeout is overwritten.</p></li> +<li class="listitem"><p>If seqnum N arrived, all seqnum older than +N - <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder" title="The “rtx-delay-reorder†property"><span class="type">“rtx-delay-reorderâ€</span></a> are considered late +immediately. This is to request fast feedback for abonormally reorder +packets before any of the previous timeouts is triggered.</p></li> +</ul></div> +<p>A late packet triggers the GstRTPRetransmissionRequest custom upstream event. After the initial timeout expires and the retransmission event is sent, the timeout is scheduled for -T + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title='The "rtx-retry-timeout" property'><span class="type">"rtx-retry-timeout"</span></a>. If the missing packet did not -arrive after <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title='The "rtx-retry-timeout" property'><span class="type">"rtx-retry-timeout"</span></a>, a new +T + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout†property"><span class="type">“rtx-retry-timeoutâ€</span></a>. If the missing packet did not +arrive after <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout†property"><span class="type">“rtx-retry-timeoutâ€</span></a>, a new GstRTPRetransmissionRequest is sent upstream and the timeout is rescheduled -again for T + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title='The "rtx-retry-timeout" property'><span class="type">"rtx-retry-timeout"</span></a>. This repeats until -<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period" title='The "rtx-retry-period" property'><span class="type">"rtx-retry-period"</span></a> elapsed, at which point no further +again for T + <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout" title="The “rtx-retry-timeout†property"><span class="type">“rtx-retry-timeoutâ€</span></a>. This repeats until +<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period" title="The “rtx-retry-period†property"><span class="type">“rtx-retry-periodâ€</span></a> elapsed, at which point no further retransmission requests are sent and the regular logic is performed to -schedule a lost packet as discussed above. -</p> -<p> -This element acts as a live element and so adds <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title='The "latency" property'><span class="type">"latency"</span></a> -to the pipeline. -</p> -<p> -This element will automatically be used inside rtpbin. -</p> -<p> -</p> +schedule a lost packet as discussed above.</p> +<p>This element acts as a live element and so adds <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--latency" title="The “latency†property"><span class="type">“latencyâ€</span></a> +to the pipeline.</p> +<p>This element will automatically be used inside rtpbin.</p> <div class="refsect2"> -<a name="id-1.2.127.7.13.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.127.8.11"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -176,15 +233,10 @@ This element will automatically be used inside rtpbin. inserted into the pipeline to smooth out network jitter and to reorder the out-of-order RTP packets. </div> -<p> -</p> -<p> -Last reviewed on 2007-05-28 (0.10.5) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.127.7.15.1"></a><h3>Element Information</h3> +<a name="id-1.2.127.8.12.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -210,7 +262,7 @@ Last reviewed on 2007-05-28 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="id-1.2.127.7.15.2"></a><h3>Element Pads</h3> +<a name="id-1.2.127.8.12.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -289,249 +341,322 @@ Last reviewed on 2007-05-28 (0.10.5) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpjitterbuffer.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpjitterbuffer.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpjitterbuffer.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpJitterBuffer-struct"></a><h3>struct GstRtpJitterBuffer</h3> <pre class="programlisting">struct GstRtpJitterBuffer;</pre> -<p> -Opaque jitterbuffer structure. -</p> +<p>Opaque jitterbuffer structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpjitterbuffer.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRtpJitterBuffer--do-lost"></a><h3>The <code class="literal">"do-lost"</code> property</h3> -<pre class="programlisting"> "do-lost" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Send an event downstream when a packet is lost.</p> +<a name="GstRtpJitterBuffer--do-lost"></a><h3>The <code class="literal">“do-lostâ€</code> property</h3> +<pre class="programlisting"> “do-lost†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Send out a GstRTPPacketLost event downstream when a packet is considered +lost.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--drop-on-latency"></a><h3>The <code class="literal">"drop-on-latency"</code> property</h3> -<pre class="programlisting"> "drop-on-latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Tells the jitterbuffer to never exceed the given latency in size.</p> +<a name="GstRtpJitterBuffer--drop-on-latency"></a><h3>The <code class="literal">“drop-on-latencyâ€</code> property</h3> +<pre class="programlisting"> “drop-on-latency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Drop oldest buffers when the queue is completely filled.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--latency"></a><h3>The <code class="literal">"latency"</code> property</h3> -<pre class="programlisting"> "latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> -<p>Amount of ms to buffer.</p> +<a name="GstRtpJitterBuffer--latency"></a><h3>The <code class="literal">“latencyâ€</code> property</h3> +<pre class="programlisting"> “latency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>The maximum latency of the jitterbuffer. Packets will be kept in the buffer +for at most this time.</p> +<p>Flags: Read / Write</p> <p>Default value: 200</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--ts-offset"></a><h3>The <code class="literal">"ts-offset"</code> property</h3> -<pre class="programlisting"> "ts-offset" <span class="type">gint64</span> : Read / Write</pre> -<p>Adjust buffer timestamps with offset in nanoseconds.</p> +<a name="GstRtpJitterBuffer--ts-offset"></a><h3>The <code class="literal">“ts-offsetâ€</code> property</h3> +<pre class="programlisting"> “ts-offset†<span class="type">gint64</span></pre> +<p>Adjust GStreamer output buffer timestamps in the jitterbuffer with offset. +This is mainly used to ensure interstream synchronisation.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">RTPJitterBufferMode</span> : Read / Write</pre> -<p>Control the buffering algorithm in use.</p> +<a name="GstRtpJitterBuffer--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">RTPJitterBufferMode</span></pre> +<p>Control the buffering and timestamping mode used by the jitterbuffer.</p> +<p>Flags: Read / Write</p> <p>Default value: Slave receiver to sender clock</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--percent"></a><h3>The <code class="literal">"percent"</code> property</h3> -<pre class="programlisting"> "percent" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> -<p>The buffer filled percent.</p> +<a name="GstRtpJitterBuffer--percent"></a><h3>The <code class="literal">“percentâ€</code> property</h3> +<pre class="programlisting"> “percent†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>The percent of the jitterbuffer that is filled.</p> +<p>Flags: Read</p> <p>Allowed values: [0,100]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--do-retransmission"></a><h3>The <code class="literal">"do-retransmission"</code> property</h3> -<pre class="programlisting"> "do-retransmission" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Send retransmission events upstream when a packet is late.</p> +<a name="GstRtpJitterBuffer--do-retransmission"></a><h3>The <code class="literal">“do-retransmissionâ€</code> property</h3> +<pre class="programlisting"> “do-retransmission†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Send out a GstRTPRetransmission event upstream when a packet is considered +late and should be retransmitted.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> +<p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--rtx-delay"></a><h3>The <code class="literal">"rtx-delay"</code> property</h3> -<pre class="programlisting"> "rtx-delay" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Extra time in ms to wait before sending retransmission event (-1 automatic).</p> +<a name="GstRtpJitterBuffer--rtx-delay"></a><h3>The <code class="literal">“rtx-delayâ€</code> property</h3> +<pre class="programlisting"> “rtx-delay†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>When a packet did not arrive at the expected time, wait this extra amount +of time before sending a retransmission event.</p> +<p>When -1 is used, the max jitter will be used as extra delay.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> -<p>Default value: 20</p> +<p>Default value: -1</p> +<p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--rtx-delay-reorder"></a><h3>The <code class="literal">"rtx-delay-reorder"</code> property</h3> -<pre class="programlisting"> "rtx-delay-reorder" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Sending retransmission event when this much reordering (-1 automatic).</p> +<a name="GstRtpJitterBuffer--rtx-delay-reorder"></a><h3>The <code class="literal">“rtx-delay-reorderâ€</code> property</h3> +<pre class="programlisting"> “rtx-delay-reorder†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>Assume that a retransmission event should be sent when we see +this much packet reordering.</p> +<p>When -1 is used, the value will be estimated based on observed packet +reordering.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 3</p> +<p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--rtx-retry-period"></a><h3>The <code class="literal">"rtx-retry-period"</code> property</h3> -<pre class="programlisting"> "rtx-retry-period" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Try to get a retransmission for this many ms (-1 automatic).</p> +<a name="GstRtpJitterBuffer--rtx-retry-period"></a><h3>The <code class="literal">“rtx-retry-periodâ€</code> property</h3> +<pre class="programlisting"> “rtx-retry-period†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>The amount of time to try to get a retransmission.</p> +<p>When -1 is used, the value will be estimated based on the jitterbuffer +latency and the observed round trip time.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> -<p>Default value: 160</p> +<p>Default value: -1</p> +<p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer--rtx-retry-timeout"></a><h3>The <code class="literal">"rtx-retry-timeout"</code> property</h3> -<pre class="programlisting"> "rtx-retry-timeout" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRtpJitterBuffer--rtx-retry-timeout"></a><h3>The <code class="literal">“rtx-retry-timeoutâ€</code> property</h3> +<pre class="programlisting"> “rtx-retry-timeout†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Retry sending a transmission event after this timeout in ms (-1 automatic).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> -<p>Default value: 40</p> +<p>Default value: -1</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpJitterBuffer--stats"></a><h3>The <code class="literal">“statsâ€</code> property</h3> +<pre class="programlisting"> “stats†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> +<p>Various jitterbuffer statistics. This property returns a GstStructure +with name application/x-rtp-jitterbuffer-stats with the following fields:</p> +<p> "rtx-count" G_TYPE_UINT64 The number of retransmissions requested + "rtx-success-count" G_TYPE_UINT64 The number of successful retransmissions + "rtx-per-packet" G_TYPE_DOUBLE Average number of RTX per packet + "rtx-rtt" G_TYPE_UINT64 Average round trip time per RTX</p> +<p>Flags: Read</p> +<p class="since">Since 1.4</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpjitterbuffer.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstRtpJitterBuffer-clear-pt-map"></a><h3>The <code class="literal">"clear-pt-map"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Invalidate the clock-rate as obtained with the -<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpJitterBuffer-clear-pt-map"></a><h3>The <code class="literal">“clear-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Invalidate the clock-rate as obtained with the +<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title="The “request-pt-map†signal"><span class="type">“request-pt-mapâ€</span></a> signal.</p> +<div class="refsect3"> +<a name="id-1.2.127.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>buffer</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer-handle-sync"></a><h3>The <code class="literal">"handle-sync"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *struct, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Be notified of new sync values. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpJitterBuffer-handle-sync"></a><h3>The <code class="literal">“handle-syncâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *struct, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Be notified of new sync values.</p> +<div class="refsect3"> +<a name="id-1.2.127.12.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>buffer</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>struct</code></em> :</span></p></td> -<td>a GstStructure containing sync values.</td> +<td class="parameter_name"><p>struct</p></td> +<td class="parameter_description"><p>a GstStructure containing sync values.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer-on-npt-stop"></a><h3>The <code class="literal">"on-npt-stop"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Signal that the jitterbufer has pushed the RTP packet that corresponds to -the npt-stop position. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpJitterBuffer-on-npt-stop"></a><h3>The <code class="literal">“on-npt-stopâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Signal that the jitterbufer has pushed the RTP packet that corresponds to +the npt-stop position.</p> +<div class="refsect3"> +<a name="id-1.2.127.12.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>buffer</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer-request-pt-map"></a><h3>The <code class="literal">"request-pt-map"</code> signal</h3> -<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpJitterBuffer-request-pt-map"></a><h3>The <code class="literal">“request-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.127.12.5.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>buffer</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the pt</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the pt</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpJitterBuffer-set-active"></a><h3>The <code class="literal">"set-active"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">guint64</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> Returns, - <span class="type">guint64</span> arg2, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Start pushing out packets with the given base time. This signal is only -useful in buffering mode. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpJitterBuffer-set-active"></a><h3>The <code class="literal">“set-activeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">guint64</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"><span class="type">GstRtpJitterBuffer</span></a> *buffer, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> Returns, + <span class="type">guint64</span> arg2, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Start pushing out packets with the given base time. This signal is only +useful in buffering mode.</p> +<div class="refsect3"> +<a name="id-1.2.127.12.6.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>buffer</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> -</tr> -<tr> -<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>the time of the last pushed packet.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> -<p class="since">Since 0.10.19</p> +</div> +<div class="refsect3"> +<a name="id-1.2.127.12.6.6"></a><h4>Returns</h4> +<p> the time of the last pushed packet.</p> +<p></p> +</div> +<p>Flags: Action</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 66a74a6a3..8e653677f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpjpegpay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpjpegpay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpjpegpay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpjpegpay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpjpegpay.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpjpegpay.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpjpegpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpjpegpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpjpegpay.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpjpegpay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,50 +31,70 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpjpegpay.top_of_page"></a>rtpjpegpay</span></h2> <p>rtpjpegpay — Payload-encodes JPEG pictures into RTP packets (RFC 2435)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpjpegpay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpJPEGPay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct" title="struct GstRtpJPEGPay">GstRtpJPEGPay</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpjpegpay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> - +----GstRtpJPEGPay -</pre> +<a name="gst-plugins-good-plugins-rtpjpegpay.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality" title="The “quality†property">quality</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type" title="The “type†property">type</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list" title="The “buffer-list†property">buffer-list</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpJPEGPay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpjpegpay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct" title="struct GstRtpJPEGPay">GstRtpJPEGPay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpjpegpay.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality" title='The "quality" property'>quality</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type" title='The "type" property'>type</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list" title='The "buffer-list" property'>buffer-list</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-rtpjpegpay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + <span class="lineart">╰──</span> GstRtpJPEGPay </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpjpegpay.description"></a><h2>Description</h2> -<p> -Payload encode JPEG pictures into RTP packets according to RFC 2435. -For detailed information see: http://www.rfc-editor.org/rfc/rfc2435.txt -</p> -<p> -The payloader takes a JPEG picture, scans the header for quantization +<p>Payload encode JPEG pictures into RTP packets according to RFC 2435. +For detailed information see: http://www.rfc-editor.org/rfc/rfc2435.txt</p> +<p>The payloader takes a JPEG picture, scans the header for quantization tables (if needed) and constructs the RTP packet header followed by -the actual JPEG entropy scan. -</p> -<p> -The payloader assumes that correct width and height is found in the caps. -</p> +the actual JPEG entropy scan.</p> +<p>The payloader assumes that correct width and height is found in the caps.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.121.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.121.7.4.1.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -106,7 +120,7 @@ The payloader assumes that correct width and height is found in the caps. </div> <hr> <div class="refsect2"> -<a name="id-1.2.121.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.121.7.4.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -165,7 +179,10 @@ The payloader assumes that correct width and height is found in the caps. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpjpegpay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpjpegpay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpjpegpay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpJPEGPay-struct"></a><h3>struct GstRtpJPEGPay</h3> <pre class="programlisting">struct GstRtpJPEGPay;</pre> @@ -176,31 +193,34 @@ The payloader assumes that correct width and height is found in the caps. <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpjpegpay.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRtpJPEGPay--quality"></a><h3>The <code class="literal">"quality"</code> property</h3> -<pre class="programlisting"> "quality" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRtpJPEGPay--quality"></a><h3>The <code class="literal">“qualityâ€</code> property</h3> +<pre class="programlisting"> “quality†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Quality factor on JPEG data (unused).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,255]</p> <p>Default value: 255</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJPEGPay--type"></a><h3>The <code class="literal">"type"</code> property</h3> -<pre class="programlisting"> "type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRtpJPEGPay--type"></a><h3>The <code class="literal">“typeâ€</code> property</h3> +<pre class="programlisting"> “type†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Default JPEG Type, overwritten by SOF when present.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,255]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpJPEGPay--buffer-list"></a><h3>The <code class="literal">"buffer-list"</code> property</h3> -<pre class="programlisting"> "buffer-list" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpJPEGPay--buffer-list"></a><h3>The <code class="literal">“buffer-listâ€</code> property</h3> +<pre class="programlisting"> “buffer-list†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use Buffer Lists.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 b9ffccc5b..3abd17cbf 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpmux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpmux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpmux.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpmux.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,43 +31,69 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpmux.top_of_page"></a>rtpmux</span></h2> <p>rtpmux — multiplex N rtp streams into one</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpmux.synopsis"></a><h2>Synopsis</h2> -<a name="GstRTPMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct" title="struct GstRTPMux">GstRTPMux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpmux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstRTPMux - +----<a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux">GstRTPDTMFMux</a> -</pre> +<a name="gst-plugins-good-plugins-rtpmux.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum" title="The “seqnum†property">seqnum</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset" title="The “seqnum-offset†property">seqnum-offset</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc" title="The “ssrc†property">ssrc</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset" title="The “timestamp-offset†property">timestamp-offset</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRTPMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct" title="struct GstRTPMux">GstRTPMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpmux.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum" title='The "seqnum" property'>seqnum</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset" title='The "seqnum-offset" property'>seqnum-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc" title='The "ssrc" property'>ssrc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-rtpmux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRTPMux + <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux">GstRTPDTMFMux</a> </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpmux.description"></a><h2>Description</h2> -<p> -The rtp muxer takes multiple RTP streams having the same clock-rate and -muxes into a single stream with a single SSRC. -</p> -<p> -</p> +<p>The rtp muxer takes multiple RTP streams having the same clock-rate and +muxes into a single stream with a single SSRC.</p> <div class="refsect2"> -<a name="id-1.2.128.6.3.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.128.7.3"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -99,15 +119,10 @@ In this example, an audio stream is captured from ALSA and another is generated, both are encoded into different payload types and muxed together so they can be sent on the same port. </div> -<p> -</p> -<p> -Last reviewed on 2010-09-30 (0.10.21) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.128.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.128.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -133,7 +148,7 @@ Last reviewed on 2010-09-30 (0.10.21) </div> <hr> <div class="refsect2"> -<a name="id-1.2.128.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.128.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -188,54 +203,59 @@ Last reviewed on 2010-09-30 (0.10.21) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpmux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRTPMux-struct"></a><h3>struct GstRTPMux</h3> <pre class="programlisting">struct GstRTPMux;</pre> -<p> -The opaque <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux"><span class="type">GstRTPMux</span></a> structure. -</p> +<p>The opaque <a class="link" href="gst-plugins-good-plugins-rtpmux.html#GstRTPMux"><span class="type">GstRTPMux</span></a> structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpmux.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRTPMux--seqnum"></a><h3>The <code class="literal">"seqnum"</code> property</h3> -<pre class="programlisting"> "seqnum" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<a name="GstRTPMux--seqnum"></a><h3>The <code class="literal">“seqnumâ€</code> property</h3> +<pre class="programlisting"> “seqnum†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The RTP sequence number of the last processed packet.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPMux--seqnum-offset"></a><h3>The <code class="literal">"seqnum-offset"</code> property</h3> -<pre class="programlisting"> "seqnum-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRTPMux--seqnum-offset"></a><h3>The <code class="literal">“seqnum-offsetâ€</code> property</h3> +<pre class="programlisting"> “seqnum-offset†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Offset to add to all outgoing seqnum (-1 = random).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPMux--ssrc"></a><h3>The <code class="literal">"ssrc"</code> property</h3> -<pre class="programlisting"> "ssrc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTPMux--ssrc"></a><h3>The <code class="literal">“ssrcâ€</code> property</h3> +<pre class="programlisting"> “ssrc†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The SSRC of the packets (-1 == random).</p> +<p>Flags: Read / Write</p> <p>Default value: 4294967295</p> </div> <hr> <div class="refsect2"> -<a name="GstRTPMux--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3> -<pre class="programlisting"> "timestamp-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRTPMux--timestamp-offset"></a><h3>The <code class="literal">“timestamp-offsetâ€</code> property</h3> +<pre class="programlisting"> “timestamp-offset†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Offset to add to all outgoing timestamps (-1 = random).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpmux.see-also"></a><h2>See Also</h2> -rtpdtmfmux +<p>rtpdtmfmux</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e2f0416be..5010881e3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpptdemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpptdemux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsession.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpptdemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpptdemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpptdemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpptdemux.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpptdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpptdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpptdemux.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsession.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpptdemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,54 +31,77 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpptdemux.top_of_page"></a>rtpptdemux</span></h2> <p>rtpptdemux — Parses codec streams transmitted in the same RTP session</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpptdemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpPtDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct" title="struct GstRtpPtDemux">GstRtpPtDemux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpptdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstRtpPtDemux -</pre> +<a name="gst-plugins-good-plugins-rtpptdemux.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map" title="The “clear-pt-map†signal">clear-pt-map</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type" title="The “new-payload-type†signal">new-payload-type</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change" title="The “payload-type-change†signal">payload-type-change</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map" title="The “request-pt-map†signal">request-pt-map</a></td> +<td class="signal_flags">Run Last</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpPtDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpptdemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct" title="struct GstRtpPtDemux">GstRtpPtDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpptdemux.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map" title='The "clear-pt-map" signal'>clear-pt-map</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type" title='The "new-payload-type" signal'>new-payload-type</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change" title='The "payload-type-change" signal'>payload-type-change</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map" title='The "request-pt-map" signal'>request-pt-map</a>" : <code class="literal">Run Last</code> +<a name="gst-plugins-good-plugins-rtpptdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRtpPtDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpptdemux.description"></a><h2>Description</h2> -<p> -rtpptdemux acts as a demuxer for RTP packets based on the payload type of +<p>rtpptdemux acts as a demuxer for RTP packets based on the payload type of the packets. Its main purpose is to allow an application to easily receive -and decode an RTP stream with multiple payload types. -</p> -<p> -For each payload type that is detected, a new pad will be created and the -<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type" title='The "new-payload-type" signal'><span class="type">"new-payload-type"</span></a> signal will be emitted. When the payload for -the RTP stream changes, the <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change" title='The "payload-type-change" signal'><span class="type">"payload-type-change"</span></a> signal will be -emitted. -</p> -<p> -The element will try to set complete and unique application/x-rtp caps on the +and decode an RTP stream with multiple payload types.</p> +<p>For each payload type that is detected, a new pad will be created and the +<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type" title="The “new-payload-type†signal"><span class="type">“new-payload-typeâ€</span></a> signal will be emitted. When the payload for +the RTP stream changes, the <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change" title="The “payload-type-change†signal"><span class="type">“payload-type-changeâ€</span></a> signal will be +emitted.</p> +<p>The element will try to set complete and unique application/x-rtp caps on the outgoing buffers and pads based on the result of the -<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal. -</p> -<p> -</p> +<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map" title="The “request-pt-map†signal"><span class="type">“request-pt-mapâ€</span></a> signal.</p> <div class="refsect2"> -<a name="id-1.2.129.6.5.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.129.7.5"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -98,15 +115,10 @@ outgoing buffers and pads based on the result of the Takes an RTP stream and send the RTP packets with the first detected payload type to fakesink, discarding the other payload types. </div> -<p> -</p> -<p> -Last reviewed on 2007-05-28 (0.10.5) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.129.6.7.1"></a><h3>Element Information</h3> +<a name="id-1.2.129.7.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -132,7 +144,7 @@ Last reviewed on 2007-05-28 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="id-1.2.129.6.7.2"></a><h3>Element Pads</h3> +<a name="id-1.2.129.7.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -187,7 +199,10 @@ Last reviewed on 2007-05-28 (0.10.5) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpptdemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpptdemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpptdemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpPtDemux-struct"></a><h3>struct GstRtpPtDemux</h3> <pre class="programlisting">struct GstRtpPtDemux;</pre> @@ -198,129 +213,159 @@ Last reviewed on 2007-05-28 (0.10.5) <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpptdemux.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstRtpPtDemux-clear-pt-map"></a><h3>The <code class="literal">"clear-pt-map"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -The application can call this signal to instruct the element to discard the -currently cached payload type map. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpPtDemux-clear-pt-map"></a><h3>The <code class="literal">“clear-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>The application can call this signal to instruct the element to discard the +currently cached payload type map.</p> +<div class="refsect3"> +<a name="id-1.2.129.10.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>demux</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpPtDemux-new-payload-type"></a><h3>The <code class="literal">"new-payload-type"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Emited when a new payload type pad has been created in <em class="parameter"><code>demux</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpPtDemux-new-payload-type"></a><h3>The <code class="literal">“new-payload-typeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Emited when a new payload type pad has been created in <em class="parameter"><code>demux</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.129.10.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>demux</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the payload type</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the payload type</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td> -<td>the pad with the new payload</td> +<td class="parameter_name"><p>pad</p></td> +<td class="parameter_description"><p>the pad with the new payload</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpPtDemux-payload-type-change"></a><h3>The <code class="literal">"payload-type-change"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Emited when the payload type changed. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpPtDemux-payload-type-change"></a><h3>The <code class="literal">“payload-type-changeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Emited when the payload type changed.</p> +<div class="refsect3"> +<a name="id-1.2.129.10.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>demux</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the new payload type</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the new payload type</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpPtDemux-request-pt-map"></a><h3>The <code class="literal">"request-pt-map"</code> signal</h3> -<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpPtDemux-request-pt-map"></a><h3>The <code class="literal">“request-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> *demux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.129.10.5.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>demux</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the payload type</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the payload type</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</div> </body> </html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html new file mode 100644 index 000000000..652316955 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html @@ -0,0 +1,387 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtprtxreceive</title> +<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="up" href="ch01.html" title="gst-plugins-good Elements"> +<link rel="prev" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend"> +<link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtprtxreceive.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtprtxreceive.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtprtxreceive.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtprtxsend.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-sbcparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtprtxreceive"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtprtxreceive.top_of_page"></a>rtprtxreceive</span></h2> +<p>rtprtxreceive — Receive retransmitted RTP packets according to RFC4588</p> +</td> +<td class="gallery_image" valign="top" align="right"></td> +</tr></table></div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><span class="type">string</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--rtx-payload-types" title="The “rtx-payload-types†property">rtx-payload-types</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests" title="The “num-rtx-requests†property">num-rtx-requests</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets" title="The “num-rtx-packets†property">num-rtx-packets</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets" title="The “num-rtx-assoc-packets†property">num-rtx-assoc-packets</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map" title="The “payload-type-map†property">payload-type-map</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpRtxReceive"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct" title="struct GstRtpRtxReceive">GstRtpRtxReceive</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRtpRtxReceive +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.description"></a><h2>Description</h2> +<p>The receiver will listen to the custom retransmission events from the +downstream jitterbuffer and will remember the SSRC1 of the stream and +seqnum that was requested. When it sees a packet with one of the stored +seqnum, it associates the SSRC2 of the stream with the SSRC1 of the +master stream. From then it knows that SSRC2 is the retransmission +stream of SSRC1. This algorithm is stated in RFC 4588. For this +algorithm to work, RFC4588 also states that no two pending retransmission +requests can exist for the same seqnum and different SSRCs or else it +would be impossible to associate the retransmission with the original +requester SSRC. +When the RTX receiver has associated the retransmission packets, +it can depayload and forward them to the source pad of the element. +RTX is SSRC-multiplexed. See <a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"><span class="type">GstRtpRtxSend</span></a></p> +<div class="refsect2"> +<a name="id-1.2.133.7.3"></a><h3>Example pipelines</h3> +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3 +4 +5 +6</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> rtpsession name<span class="gtkdoc opt">=</span>rtpsession \ + audiotestsrc <span class="gtkdoc opt">!</span> speexenc <span class="gtkdoc opt">!</span> rtpspeexpay pt<span class="gtkdoc opt">=</span><span class="number">97</span> <span class="gtkdoc opt">!</span> rtprtxsend rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">=</span><span class="number">99</span> <span class="gtkdoc opt">!</span> \ + identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>send_rtp_sink \ + rtpsession<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>recv_rtcp_sink \ + rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> + </tr> + </tbody> + </table> +</div> + Send audio stream through port 5000. (5001 and 5002 are just the rtcp link with the receiver) +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3 +4 +5 +6 +7</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> rtpsession name<span class="gtkdoc opt">=</span>rtpsession \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp,media=(string)audio,clock-rate=(int)44100,encoding-name=(string)SPEEX,encoding-params=(string)1,octet-align=(string)1"</span> <span class="gtkdoc opt">!</span> \ + rtpsession<span class="gtkdoc opt">.</span>recv_rtp_sink \ + rtpsession<span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> rtprtxreceive rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>types<span class="gtkdoc opt">=</span><span class="string">"99"</span> <span class="gtkdoc opt">!</span> rtpjitterbuffer <span class="keyword">do</span><span class="gtkdoc opt">-</span>retransmission<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> rtpspeexdepay <span class="gtkdoc opt">!</span> \ + speexdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \ + rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5001</span> \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5002</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>recv_rtcp_sink sync<span class="gtkdoc opt">=</span>fakse async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> + </tr> + </tbody> + </table> +</div> + Receive audio stream from port 5000. (5001 and 5002 are just the rtcp link with the sender) +On sender side make sure to use a different payload type for the stream and +its associated retransmission stream (see <a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"><span class="type">GstRtpRtxSend</span></a>). Note that several retransmission streams can +have the same payload type so this is not deterministic. Actually the +rtprtxreceiver element does the association using seqnum values. +On receiver side set all the retransmission payload types (Those informations are retrieve +through SDP). +You should still hear a clear sound when setting drop-probability to something greater than 0. +The rtpjitterbuffer will generate a custom upstream event GstRTPRetransmissionRequest when +it assumes that one packet is missing. Then this request is translated to a FB NACK in the rtcp link +Finally the rtpsession of the sender side re-convert it in a GstRTPRetransmissionRequest that will +be handle by rtprtxsend. +When increasing this value it may be possible that even the retransmission stream would be dropped +so the receiver will ask to resend the packets again and again until it actually receive them. +If the value is too high the rtprtxsend will not be able to retrieve the packet in its list of +stored packets. For learning purpose you could try to increase the max-size-packets or max-size-time +rtprtxsender's properties. +Also note that you should use rtprtxsend through rtpbin and its set-aux-send property. See <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>. +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> rtpsession name<span class="gtkdoc opt">=</span>rtpsession0 \ + audiotestsrc wave<span class="gtkdoc opt">=</span><span class="number">0</span> <span class="gtkdoc opt">!</span> speexenc <span class="gtkdoc opt">!</span> rtpspeexpay pt<span class="gtkdoc opt">=</span><span class="number">97</span> <span class="gtkdoc opt">!</span> rtprtxsend rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">=</span><span class="number">99</span> seqnum<span class="gtkdoc opt">-</span>offset<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> \ + identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> rtpsession0<span class="gtkdoc opt">.</span>send_rtp_sink \ + rtpsession0<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5001</span> <span class="gtkdoc opt">!</span> rtpsession0<span class="gtkdoc opt">.</span>recv_rtcp_sink \ + rtpsession0<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span> \ + rtpsession name<span class="gtkdoc opt">=</span>rtpsession1 \ + audiotestsrc wave<span class="gtkdoc opt">=</span><span class="number">0</span> <span class="gtkdoc opt">!</span> speexenc <span class="gtkdoc opt">!</span> rtpspeexpay pt<span class="gtkdoc opt">=</span><span class="number">97</span> <span class="gtkdoc opt">!</span> rtprtxsend rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>type<span class="gtkdoc opt">=</span><span class="number">99</span> seqnum<span class="gtkdoc opt">-</span>offset<span class="gtkdoc opt">=</span><span class="number">10</span> <span class="gtkdoc opt">!</span> \ + identity drop<span class="gtkdoc opt">-</span>probability<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> rtpsession1<span class="gtkdoc opt">.</span>send_rtp_sink \ + rtpsession1<span class="gtkdoc opt">.</span>send_rtp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5000</span> \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5004</span> <span class="gtkdoc opt">!</span> rtpsession1<span class="gtkdoc opt">.</span>recv_rtcp_sink \ + rtpsession1<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5002</span> sync<span class="gtkdoc opt">=</span><span class="keyword">false</span> async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> + </tr> + </tbody> + </table> +</div> + Send two audio streams to port 5000. +<div class="informalexample"> + <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td class="listing_lines" align="right"><pre>1 +2 +3 +4 +5 +6 +7 +8</pre></td> + <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> rtpsession name<span class="gtkdoc opt">=</span>rtpsession + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5000</span> caps<span class="gtkdoc opt">=</span><span class="string">"application/x-rtp,media=(string)audio,clock-rate=(int)44100,encoding-name=(string)SPEEX,encoding-params=(string)1,octet-align=(string)1"</span> <span class="gtkdoc opt">!</span> \ + rtpsession<span class="gtkdoc opt">.</span>recv_rtp_sink \ + rtpsession<span class="gtkdoc opt">.</span>recv_rtp_src <span class="gtkdoc opt">!</span> rtprtxreceive rtx<span class="gtkdoc opt">-</span>payload<span class="gtkdoc opt">-</span>types<span class="gtkdoc opt">=</span><span class="string">"99"</span> <span class="gtkdoc opt">!</span> rtpssrcdemux name<span class="gtkdoc opt">=</span>demux \ + demux<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> rtpjitterbuffer <span class="keyword">do</span><span class="gtkdoc opt">-</span>retransmission<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> rtpspeexdepay <span class="gtkdoc opt">!</span> speexdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \ + demux<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> rtpjitterbuffer <span class="keyword">do</span><span class="gtkdoc opt">-</span>retransmission<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> rtpspeexdepay <span class="gtkdoc opt">!</span> speexdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink \ + rtpsession<span class="gtkdoc opt">.</span>send_rtcp_src <span class="gtkdoc opt">! !</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5001</span> t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> udpsink host<span class="gtkdoc opt">=</span><span class="string">"127.0.0.1"</span> port<span class="gtkdoc opt">=</span><span class="number">5004</span> \ + udpsrc port<span class="gtkdoc opt">=</span><span class="number">5002</span> <span class="gtkdoc opt">!</span> rtpsession<span class="gtkdoc opt">.</span>recv_rtcp_sink sync<span class="gtkdoc opt">=</span>fakse async<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td> + </tr> + </tbody> + </table> +</div> + Receive audio stream from port 5000. +On sender side the two streams have the same payload type for master streams, Same about retransmission streams. +The streams are sent to the network through two distincts sessions. +But we need to set a different seqnum-offset to make sure their seqnum navigate at a different rate like in concrete cases. +We could also choose the same seqnum offset but we would require to set a different initial seqnum value. +This is also why the rtprtxreceive can succeed to do the association between master and retransmission stream. +On receiver side the same session is used to receive the two streams. So the rtpssrcdemux is here to demultiplex +those two streams. The rtprtxreceive is responsible for reconstructing the original packets from the two retransmission streams. +You can play with the drop-probability value for one or both streams. +You should hear a clear sound. (after a few seconds the two streams wave feel synchronized) +</div> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="id-1.2.133.7.4.1"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Julien Isorce <julien.isorce@collabora.co.uk></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="id-1.2.133.7.4.2"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.other_details"></a><h2>Types and Values</h2> +<div class="refsect2"> +<a name="GstRtpRtxReceive-struct"></a><h3>struct GstRtpRtxReceive</h3> +<pre class="programlisting">struct GstRtpRtxReceive;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstRtpRtxReceive--rtx-payload-types"></a><h3>The <code class="literal">“rtx-payload-typesâ€</code> property</h3> +<pre class="programlisting"> “rtx-payload-types†<span class="type">string</span></pre> +<p>Set through SDP (fmtp), it helps to detect restransmission streams.</p> +<p>Flags: Read / Write</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxReceive--num-rtx-requests"></a><h3>The <code class="literal">“num-rtx-requestsâ€</code> property</h3> +<pre class="programlisting"> “num-rtx-requests†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Number of retransmission events received.</p> +<p>Flags: Read</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxReceive--num-rtx-packets"></a><h3>The <code class="literal">“num-rtx-packetsâ€</code> property</h3> +<pre class="programlisting"> “num-rtx-packets†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p> Number of retransmission packets received.</p> +<p>Flags: Read</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxReceive--num-rtx-assoc-packets"></a><h3>The <code class="literal">“num-rtx-assoc-packetsâ€</code> property</h3> +<pre class="programlisting"> “num-rtx-assoc-packets†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Number of retransmission packets correctly associated with retransmission requests.</p> +<p>Flags: Read</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxReceive--payload-type-map"></a><h3>The <code class="literal">“payload-type-mapâ€</code> property</h3> +<pre class="programlisting"> “payload-type-map†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> +<p>Map of original payload types to their retransmission payload types.</p> +<p>Flags: Read / Write</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxreceive.see-also"></a><h2>See Also</h2> +<p>rtprtxsend, rtpsession, rtpjitterbuffer</p> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.20</div> +</body> +</html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html new file mode 100644 index 000000000..1b56c9b6e --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html @@ -0,0 +1,274 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtprtxsend</title> +<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="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-rtprtxreceive.html" title="rtprtxreceive"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtprtxsend.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtprtxsend.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtprtxsend.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxreceive.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-rtprtxsend"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtprtxsend.top_of_page"></a>rtprtxsend</span></h2> +<p>rtprtxsend — Retransmit RTP packets when needed, according to RFC4588</p> +</td> +<td class="gallery_image" valign="top" align="right"></td> +</tr></table></div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxsend.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--rtx-payload-type" title="The “rtx-payload-type†property">rtx-payload-type</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-time" title="The “max-size-time†property">max-size-time</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-packets" title="The “max-size-packets†property">max-size-packets</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-requests" title="The “num-rtx-requests†property">num-rtx-requests</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-packets" title="The “num-rtx-packets†property">num-rtx-packets</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--payload-type-map" title="The “payload-type-map†property">payload-type-map</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--ssrc-map" title="The “ssrc-map†property">ssrc-map</a></td> +<td class="property_flags">Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpRtxSend"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxsend.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend-struct" title="struct GstRtpRtxSend">GstRtpRtxSend</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxsend.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRtpRtxSend +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxsend.description"></a><h2>Description</h2> +<p>See <a class="link" href="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive"><span class="type">GstRtpRtxReceive</span></a> for examples</p> +<p>The purpose of the sender RTX object is to keep a history of RTP packets up +to a configurable limit (max-size-time or max-size-packets). It will listen +for upstream custom retransmission events (GstRTPRetransmissionRequest) that +comes from downstream (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a>). When receiving a request it will +look up the requested seqnum in its list of stored packets. If the packet +is available, it will create a RTX packet according to RFC 4588 and send +this as an auxiliary stream. RTX is SSRC-multiplexed</p> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="id-1.2.132.7.3.2.1"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">rtpmanager</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Julien Isorce <julien.isorce@collabora.co.uk></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Codec</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="id-1.2.132.7.3.2.2"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp, clock-rate=(int)[ 1, 2147483647 ]</td> +</tr> +</tbody> +</table></div> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>src</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>source</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/x-rtp</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxsend.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxsend.other_details"></a><h2>Types and Values</h2> +<div class="refsect2"> +<a name="GstRtpRtxSend-struct"></a><h3>struct GstRtpRtxSend</h3> +<pre class="programlisting">struct GstRtpRtxSend;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtprtxsend.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstRtpRtxSend--rtx-payload-type"></a><h3>The <code class="literal">“rtx-payload-typeâ€</code> property</h3> +<pre class="programlisting"> “rtx-payload-type†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Payload type of the retransmission stream (fmtp in SDP).</p> +<p>Flags: Read / Write</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxSend--max-size-time"></a><h3>The <code class="literal">“max-size-timeâ€</code> property</h3> +<pre class="programlisting"> “max-size-time†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Amount of ms to queue (0 = unlimited).</p> +<p>Flags: Read / Write</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxSend--max-size-packets"></a><h3>The <code class="literal">“max-size-packetsâ€</code> property</h3> +<pre class="programlisting"> “max-size-packets†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Amount of packets to queue (0 = unlimited).</p> +<p>Flags: Read / Write</p> +<p>Allowed values: <= 32767</p> +<p>Default value: 100</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxSend--num-rtx-requests"></a><h3>The <code class="literal">“num-rtx-requestsâ€</code> property</h3> +<pre class="programlisting"> “num-rtx-requests†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>Number of retransmission events received.</p> +<p>Flags: Read</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxSend--num-rtx-packets"></a><h3>The <code class="literal">“num-rtx-packetsâ€</code> property</h3> +<pre class="programlisting"> “num-rtx-packets†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p> Number of retransmission packets sent.</p> +<p>Flags: Read</p> +<p>Default value: 0</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxSend--payload-type-map"></a><h3>The <code class="literal">“payload-type-mapâ€</code> property</h3> +<pre class="programlisting"> “payload-type-map†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> +<p>Map of original payload types to their retransmission payload types.</p> +<p>Flags: Read / Write</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRtpRtxSend--ssrc-map"></a><h3>The <code class="literal">“ssrc-mapâ€</code> property</h3> +<pre class="programlisting"> “ssrc-map†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> +<p>Map of SSRCs to their retransmission SSRCs for SSRC-multiplexed mode (default = random).</p> +<p>Flags: Write</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.20</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 13460815a..f41522d69 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpsbcpay</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpsbcpay</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpsbcpay.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpsbcpay.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpsbcpay.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpsbcpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpsbcpay.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpsbcpay"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,28 +31,44 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpsbcpay.top_of_page"></a>rtpsbcpay</span></h2> <p>rtpsbcpay — Payload SBC audio as RTP packets</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpsbcpay.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpSBCPay"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct" title="struct GstRtpSBCPay">GstRtpSBCPay</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpsbcpay.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> - +----GstRtpSBCPay -</pre> +<a name="gst-plugins-good-plugins-rtpsbcpay.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames" title="The “min-frames†property">min-frames</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstRtpSBCPay"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsbcpay.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct" title="struct GstRtpSBCPay">GstRtpSBCPay</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpsbcpay.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames" title='The "min-frames" property'>min-frames</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-rtpsbcpay.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a> + <span class="lineart">╰──</span> GstRtpSBCPay </pre> </div> <div class="refsect1"> @@ -66,7 +76,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.122.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.122.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -92,7 +102,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.122.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.122.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -147,7 +157,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpsbcpay.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpsbcpay.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsbcpay.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpSBCPay-struct"></a><h3>struct GstRtpSBCPay</h3> <pre class="programlisting">struct GstRtpSBCPay;</pre> @@ -158,9 +171,10 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpsbcpay.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRtpSBCPay--min-frames"></a><h3>The <code class="literal">"min-frames"</code> property</h3> -<pre class="programlisting"> "min-frames" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRtpSBCPay--min-frames"></a><h3>The <code class="literal">“min-framesâ€</code> property</h3> +<pre class="programlisting"> “min-frames†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Minimum quantity of frames to send in one packet (-1 for maximum allowed by the mtu).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> @@ -168,6 +182,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a847c9174..46c88948d 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpsession</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpsession</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpsession.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpsession.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpsession.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpsession.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-rtpsession.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpsession.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpsession.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpsession.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpsession.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpsession"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,67 +32,185 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpsession.top_of_page"></a>rtpsession</span></h2> <p>rtpsession — Implement an RTP session</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpsession.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpSession"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct" title="struct GstRtpSession">GstRtpSession</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpsession.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstRtpSession -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpsession.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth" title='The "bandwidth" property'>bandwidth</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session" title='The "internal-session" property'>internal-session</a>" <span class="type">RTPSession</span>* : Read - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-ns-base" title='The "ntp-ns-base" property'>ntp-ns-base</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-active-sources" title='The "num-active-sources" property'>num-active-sources</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-sources" title='The "num-sources" property'>num-sources</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-fraction" title='The "rtcp-fraction" property'>rtcp-fraction</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--sdes" title='The "sdes" property'>sdes</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rr-bandwidth" title='The "rtcp-rr-bandwidth" property'>rtcp-rr-bandwidth</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rs-bandwidth" title='The "rtcp-rs-bandwidth" property'>rtcp-rs-bandwidth</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock" title='The "use-pipeline-clock" property'>use-pipeline-clock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval" title='The "rtcp-min-interval" property'>rtcp-min-interval</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation" title='The "probation" property'>probation</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth" title="The “bandwidth†property">bandwidth</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<span class="type">RTPSession</span> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session" title="The “internal-session†property">internal-session</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-ns-base" title="The “ntp-ns-base†property">ntp-ns-base</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-active-sources" title="The “num-active-sources†property">num-active-sources</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-sources" title="The “num-sources†property">num-sources</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-fraction" title="The “rtcp-fraction†property">rtcp-fraction</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--sdes" title="The “sdes†property">sdes</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rr-bandwidth" title="The “rtcp-rr-bandwidth†property">rtcp-rr-bandwidth</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rs-bandwidth" title="The “rtcp-rs-bandwidth†property">rtcp-rs-bandwidth</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock" title="The “use-pipeline-clock†property">use-pipeline-clock</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval" title="The “rtcp-min-interval†property">rtcp-min-interval</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation" title="The “probation†property">probation</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--stats" title="The “stats†property">stats</a></td> +<td class="property_flags">Read</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpsession.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title='The "clear-pt-map" signal'>clear-pt-map</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc" title='The "on-bye-ssrc" signal'>on-bye-ssrc</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-timeout" title='The "on-bye-timeout" signal'>on-bye-timeout</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-ssrc" title='The "on-new-ssrc" signal'>on-new-ssrc</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-timeout" title='The "on-sender-timeout" signal'>on-sender-timeout</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-active" title='The "on-ssrc-active" signal'>on-ssrc-active</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-collision" title='The "on-ssrc-collision" signal'>on-ssrc-collision</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-sdes" title='The "on-ssrc-sdes" signal'>on-ssrc-sdes</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated" title='The "on-ssrc-validated" signal'>on-ssrc-validated</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout" title='The "on-timeout" signal'>on-timeout</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'>request-pt-map</a>" : <code class="literal">Run Last</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title="The “clear-pt-map†signal">clear-pt-map</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc" title="The “on-bye-ssrc†signal">on-bye-ssrc</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-timeout" title="The “on-bye-timeout†signal">on-bye-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-ssrc" title="The “on-new-ssrc†signal">on-new-ssrc</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-timeout" title="The “on-sender-timeout†signal">on-sender-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-active" title="The “on-ssrc-active†signal">on-ssrc-active</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-collision" title="The “on-ssrc-collision†signal">on-ssrc-collision</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-sdes" title="The “on-ssrc-sdes†signal">on-ssrc-sdes</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated" title="The “on-ssrc-validated†signal">on-ssrc-validated</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout" title="The “on-timeout†signal">on-timeout</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>*</td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map†signal">request-pt-map</a></td> +<td class="signal_flags">Run Last</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpSession"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsession.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct" title="struct GstRtpSession">GstRtpSession</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsession.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRtpSession </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpsession.description"></a><h2>Description</h2> -<p> -The RTP session manager models participants with unique SSRC in an RTP +<p>The RTP session manager models participants with unique SSRC in an RTP session. This session can be used to send and receive RTP and RTCP packets. Based on what REQUEST pads are requested from the session manager, specific -functionality can be activated. -</p> -<p> -The session manager currently implements RFC 3550 including: -</p> +functionality can be activated.</p> +<p>The session manager currently implements RFC 3550 including:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p>RTP packet validation based on consecutive sequence numbers.</p></li> <li class="listitem"><p>Maintainance of the SSRC participant database.</p></li> @@ -107,48 +218,32 @@ The session manager currently implements RFC 3550 including: <li class="listitem"><p>Scheduling of RR/SR RTCP packets.</p></li> <li class="listitem"><p>Support for multiple sender SSRC.</p></li> </ul></div> -<p> -</p> -<p> -The rtpsession will not demux packets based on SSRC or payload type, nor will +<p>The rtpsession will not demux packets based on SSRC or payload type, nor will it correct for packet reordering and jitter. Use <span class="type">GstRtpsSrcDemux</span>, <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"><span class="type">GstRtpPtDemux</span></a> and GstRtpJitterBuffer in addition to <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> to perform these tasks. It is usually a good idea to use <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>, which -combines all these features in one element. -</p> -<p> -To use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as an RTP receiver, request a recv_rtp_sink pad, which will +combines all these features in one element.</p> +<p>To use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as an RTP receiver, request a recv_rtp_sink pad, which will automatically create recv_rtp_src pad. Data received on the recv_rtp_sink pad will be processed in the session and after being validated forwarded on the -recv_rtp_src pad. -</p> -<p> -To also use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as an RTCP receiver, request a recv_rtcp_sink pad, +recv_rtp_src pad.</p> +<p>To also use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as an RTCP receiver, request a recv_rtcp_sink pad, which will automatically create a sync_src pad. Packets received on the RTCP pad will be used by the session manager to update the stats and database of the other participants. SR packets will be forwarded on the sync_src pad -so that they can be used to perform inter-stream synchronisation when needed. -</p> -<p> -If you want the session manager to generate and send RTCP packets, request +so that they can be used to perform inter-stream synchronisation when needed.</p> +<p>If you want the session manager to generate and send RTCP packets, request the send_rtcp_src pad. Packet pushed on this pad contain SR/RR RTCP reports -that should be sent to all participants in the session. -</p> -<p> -To use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as a sender, request a send_rtp_sink pad, which will +that should be sent to all participants in the session.</p> +<p>To use <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> as a sender, request a send_rtp_sink pad, which will automatically create a send_rtp_src pad. The session manager will -forward the packets on the send_rtp_src pad after updating its internal state. -</p> -<p> -The session manager needs the clock-rate of the payload types it is handling -and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a> signal when it needs such a -mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title='The "clear-pt-map" signal'><span class="type">"clear-pt-map"</span></a> -signal. -</p> -<p> -</p> +forward the packets on the send_rtp_src pad after updating its internal state.</p> +<p>The session manager needs the clock-rate of the payload types it is handling +and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map†signal"><span class="type">“request-pt-mapâ€</span></a> signal when it needs such a +mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title="The “clear-pt-map†signal"><span class="type">“clear-pt-mapâ€</span></a> +signal.</p> <div class="refsect2"> -<a name="id-1.2.130.7.10.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.130.8.11"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -213,15 +308,10 @@ correctly because the second udpsink will not preroll correctly (no RTCP packets are sent in the PAUSED state). Applications should manually set and keep (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-set-locked-state"><code class="function">gst_element_set_locked_state()</code></a>) the RTCP udpsink to the PLAYING state. </div> -<p> -</p> -<p> -Last reviewed on 2007-05-28 (0.10.5) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.130.7.12.1"></a><h3>Element Information</h3> +<a name="id-1.2.130.8.12.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -247,7 +337,7 @@ Last reviewed on 2007-05-28 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="id-1.2.130.7.12.2"></a><h3>Element Pads</h3> +<a name="id-1.2.130.8.12.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -422,7 +512,10 @@ Last reviewed on 2007-05-28 (0.10.5) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpsession.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpsession.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpsession.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpSession-struct"></a><h3>struct GstRtpSession</h3> <pre class="programlisting">struct GstRtpSession;</pre> @@ -433,410 +526,510 @@ Last reviewed on 2007-05-28 (0.10.5) <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpsession.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRtpSession--bandwidth"></a><h3>The <code class="literal">"bandwidth"</code> property</h3> -<pre class="programlisting"> "bandwidth" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstRtpSession--bandwidth"></a><h3>The <code class="literal">“bandwidthâ€</code> property</h3> +<pre class="programlisting"> “bandwidth†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>The bandwidth of the session in bytes per second (0 for auto-discover).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 64000</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--internal-session"></a><h3>The <code class="literal">"internal-session"</code> property</h3> -<pre class="programlisting"> "internal-session" <span class="type">RTPSession</span>* : Read</pre> +<a name="GstRtpSession--internal-session"></a><h3>The <code class="literal">“internal-sessionâ€</code> property</h3> +<pre class="programlisting"> “internal-session†<span class="type">RTPSession</span> *</pre> <p>The internal RTPSession object.</p> +<p>Flags: Read</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--ntp-ns-base"></a><h3>The <code class="literal">"ntp-ns-base"</code> property</h3> -<pre class="programlisting"> "ntp-ns-base" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstRtpSession--ntp-ns-base"></a><h3>The <code class="literal">“ntp-ns-baseâ€</code> property</h3> +<pre class="programlisting"> “ntp-ns-base†<span class="type">guint64</span></pre> <p>The NTP base time corresponding to running_time 0 (deprecated).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--num-active-sources"></a><h3>The <code class="literal">"num-active-sources"</code> property</h3> -<pre class="programlisting"> "num-active-sources" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<a name="GstRtpSession--num-active-sources"></a><h3>The <code class="literal">“num-active-sourcesâ€</code> property</h3> +<pre class="programlisting"> “num-active-sources†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The number of active sources in the session.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--num-sources"></a><h3>The <code class="literal">"num-sources"</code> property</h3> -<pre class="programlisting"> "num-sources" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre> +<a name="GstRtpSession--num-sources"></a><h3>The <code class="literal">“num-sourcesâ€</code> property</h3> +<pre class="programlisting"> “num-sources†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The number of sources in the session.</p> +<p>Flags: Read</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--rtcp-fraction"></a><h3>The <code class="literal">"rtcp-fraction"</code> property</h3> -<pre class="programlisting"> "rtcp-fraction" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstRtpSession--rtcp-fraction"></a><h3>The <code class="literal">“rtcp-fractionâ€</code> property</h3> +<pre class="programlisting"> “rtcp-fraction†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>The RTCP bandwidth of the session in bytes per second (or as a real fraction of the RTP bandwidth if < 1.0).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 3200</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--sdes"></a><h3>The <code class="literal">"sdes"</code> property</h3> -<pre class="programlisting"> "sdes" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstRtpSession--sdes"></a><h3>The <code class="literal">“sdesâ€</code> property</h3> +<pre class="programlisting"> “sdes†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>The SDES items of this session.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--rtcp-rr-bandwidth"></a><h3>The <code class="literal">"rtcp-rr-bandwidth"</code> property</h3> -<pre class="programlisting"> "rtcp-rr-bandwidth" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRtpSession--rtcp-rr-bandwidth"></a><h3>The <code class="literal">“rtcp-rr-bandwidthâ€</code> property</h3> +<pre class="programlisting"> “rtcp-rr-bandwidth†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The RTCP bandwidth used for receivers in bytes per second (-1 = default).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--rtcp-rs-bandwidth"></a><h3>The <code class="literal">"rtcp-rs-bandwidth"</code> property</h3> -<pre class="programlisting"> "rtcp-rs-bandwidth" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstRtpSession--rtcp-rs-bandwidth"></a><h3>The <code class="literal">“rtcp-rs-bandwidthâ€</code> property</h3> +<pre class="programlisting"> “rtcp-rs-bandwidth†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The RTCP bandwidth used for senders in bytes per second (-1 = default).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--use-pipeline-clock"></a><h3>The <code class="literal">"use-pipeline-clock"</code> property</h3> -<pre class="programlisting"> "use-pipeline-clock" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRtpSession--use-pipeline-clock"></a><h3>The <code class="literal">“use-pipeline-clockâ€</code> property</h3> +<pre class="programlisting"> “use-pipeline-clock†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--rtcp-min-interval"></a><h3>The <code class="literal">"rtcp-min-interval"</code> property</h3> -<pre class="programlisting"> "rtcp-min-interval" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstRtpSession--rtcp-min-interval"></a><h3>The <code class="literal">“rtcp-min-intervalâ€</code> property</h3> +<pre class="programlisting"> “rtcp-min-interval†<span class="type">guint64</span></pre> <p>Minimum interval between Regular RTCP packet (in ns).</p> +<p>Flags: Read / Write</p> <p>Default value: 5000000000</p> </div> <hr> <div class="refsect2"> -<a name="GstRtpSession--probation"></a><h3>The <code class="literal">"probation"</code> property</h3> -<pre class="programlisting"> "probation" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRtpSession--probation"></a><h3>The <code class="literal">“probationâ€</code> property</h3> +<pre class="programlisting"> “probation†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Consecutive packet sequence numbers to accept the source.</p> +<p>Flags: Read / Write</p> <p>Default value: 2</p> </div> +<hr> +<div class="refsect2"> +<a name="GstRtpSession--stats"></a><h3>The <code class="literal">“statsâ€</code> property</h3> +<pre class="programlisting"> “stats†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> +<p>Various statistics.</p> +<p>Flags: Read</p> +</div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpsession.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstRtpSession-clear-pt-map"></a><h3>The <code class="literal">"clear-pt-map"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title='The "request-pt-map" signal'><span class="type">"request-pt-map"</span></a>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-clear-pt-map"></a><h3>The <code class="literal">“clear-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map†signal"><span class="type">“request-pt-mapâ€</span></a>.</p> +<div class="refsect3"> +<a name="id-1.2.130.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>sess</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-bye-ssrc"></a><h3>The <code class="literal">"on-bye-ssrc"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that became inactive because of a BYE packet. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-on-bye-ssrc"></a><h3>The <code class="literal">“on-bye-ssrcâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that became inactive because of a BYE packet.</p> +<div class="refsect3"> +<a name="id-1.2.130.12.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>sess</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-bye-timeout"></a><h3>The <code class="literal">"on-bye-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that has timed out because of BYE -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-on-bye-timeout"></a><h3>The <code class="literal">“on-bye-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that has timed out because of BYE</p> +<div class="refsect3"> +<a name="id-1.2.130.12.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>sess</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-new-ssrc"></a><h3>The <code class="literal">"on-new-ssrc"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-on-new-ssrc"></a><h3>The <code class="literal">“on-new-ssrcâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a new SSRC that entered <em class="parameter"><code>session</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.130.12.5.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>sess</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-sender-timeout"></a><h3>The <code class="literal">"on-sender-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of a sender SSRC that has timed out and became a receiver -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-on-sender-timeout"></a><h3>The <code class="literal">“on-sender-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of a sender SSRC that has timed out and became a receiver</p> +<div class="refsect3"> +<a name="id-1.2.130.12.6.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>sess</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-ssrc-active"></a><h3>The <code class="literal">"on-ssrc-active"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstRtpSession-on-ssrc-active"></a><h3>The <code class="literal">“on-ssrc-activeâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.130.12.7.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstrtpsession</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-ssrc-collision"></a><h3>The <code class="literal">"on-ssrc-collision"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstRtpSession-on-ssrc-collision"></a><h3>The <code class="literal">“on-ssrc-collisionâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.130.12.8.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstrtpsession</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-ssrc-sdes"></a><h3>The <code class="literal">"on-ssrc-sdes"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *session, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify that a new SDES was received for SSRC. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-on-ssrc-sdes"></a><h3>The <code class="literal">“on-ssrc-sdesâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *session, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify that a new SDES was received for SSRC.</p> +<div class="refsect3"> +<a name="id-1.2.130.12.9.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>session</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>src</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-ssrc-validated"></a><h3>The <code class="literal">"on-ssrc-validated"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstRtpSession-on-ssrc-validated"></a><h3>The <code class="literal">“on-ssrc-validatedâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *gstrtpsession, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.130.12.10.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstrtpsession</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstrtpsession</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-on-timeout"></a><h3>The <code class="literal">"on-timeout"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Notify of an SSRC that has timed out -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-on-timeout"></a><h3>The <code class="literal">“on-timeoutâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Notify of an SSRC that has timed out</p> +<div class="refsect3"> +<a name="id-1.2.130.12.11.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>sess</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSession-request-pt-map"></a><h3>The <code class="literal">"request-pt-map"</code> signal</h3> -<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSession-request-pt-map"></a><h3>The <code class="literal">“request-pt-mapâ€</code> signal</h3> +<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a>* +user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession"><span class="type">GstRtpSession</span></a> *sess, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pt, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.130.12.12.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>sess</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>sess</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pt</code></em> :</span></p></td> -<td>the pt</td> +<td class="parameter_name"><p>pt</p></td> +<td class="parameter_description"><p>the pt</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpsession.see-also"></a><h2>See Also</h2> -rtpjitterbuffer, rtpbin, rtpptdemux, rtpssrcdemux +<p>rtpjitterbuffer, rtpbin, rtpptdemux, rtpssrcdemux</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 40b57b2a6..6f087d79a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtpssrcdemux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtpssrcdemux</title> <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="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.19 (XML mode)"> +<link rel="next" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsession.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-sbcparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtpssrcdemux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtpssrcdemux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtpssrcdemux.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpssrcdemux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtpssrcdemux.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsession.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxsend.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtpssrcdemux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,46 +31,66 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpssrcdemux.top_of_page"></a>rtpssrcdemux</span></h2> <p>rtpssrcdemux — Splits RTP streams based on the SSRC</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtpssrcdemux.synopsis"></a><h2>Synopsis</h2> -<a name="GstRtpSsrcDemux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct" title="struct GstRtpSsrcDemux">GstRtpSsrcDemux</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstRtpSsrcDemux -</pre> +<a name="gst-plugins-good-plugins-rtpssrcdemux.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc" title="The “clear-ssrc†signal">clear-ssrc</a></td> +<td class="signal_flags">Action</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad" title="The “new-ssrc-pad†signal">new-ssrc-pad</a></td> +<td class="signal_flags">Run Last</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad" title="The “removed-ssrc-pad†signal">removed-ssrc-pad</a></td> +<td class="signal_flags">Run Last</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRtpSsrcDemux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpssrcdemux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct" title="struct GstRtpSsrcDemux">GstRtpSsrcDemux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpssrcdemux.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc" title='The "clear-ssrc" signal'>clear-ssrc</a>" : <code class="literal">Action</code> - "<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad" title='The "new-ssrc-pad" signal'>new-ssrc-pad</a>" : <code class="literal">Run Last</code> - "<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad" title='The "removed-ssrc-pad" signal'>removed-ssrc-pad</a>" : <code class="literal">Run Last</code> +<a name="gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstRtpSsrcDemux </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpssrcdemux.description"></a><h2>Description</h2> -<p> -rtpssrcdemux acts as a demuxer for RTP packets based on the SSRC of the +<p>rtpssrcdemux acts as a demuxer for RTP packets based on the SSRC of the packets. Its main purpose is to allow an application to easily receive and -decode an RTP stream with multiple SSRCs. -</p> -<p> -For each SSRC that is detected, a new pad will be created and the -<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad" title='The "new-ssrc-pad" signal'><span class="type">"new-ssrc-pad"</span></a> signal will be emitted. -</p> -<p> -</p> +decode an RTP stream with multiple SSRCs.</p> +<p>For each SSRC that is detected, a new pad will be created and the +<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad" title="The “new-ssrc-pad†signal"><span class="type">“new-ssrc-padâ€</span></a> signal will be emitted. </p> <div class="refsect2"> -<a name="id-1.2.131.6.4.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.131.7.4"></a><h3>Example pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -90,15 +104,10 @@ For each SSRC that is detected, a new pad will be created and the Takes an RTP stream and send the RTP packets with the first detected SSRC to fakesink, discarding the other SSRCs. </div> -<p> -</p> -<p> -Last reviewed on 2007-05-28 (0.10.5) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.131.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.131.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -124,7 +133,7 @@ Last reviewed on 2007-05-28 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="id-1.2.131.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.131.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -227,7 +236,10 @@ Last reviewed on 2007-05-28 (0.10.5) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtpssrcdemux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtpssrcdemux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtpssrcdemux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRtpSsrcDemux-struct"></a><h3>struct GstRtpSsrcDemux</h3> <pre class="programlisting">struct GstRtpSsrcDemux;</pre> @@ -238,108 +250,131 @@ Last reviewed on 2007-05-28 (0.10.5) <div class="refsect1"> <a name="gst-plugins-good-plugins-rtpssrcdemux.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstRtpSsrcDemux-clear-ssrc"></a><h3>The <code class="literal">"clear-ssrc"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> *demux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> -<p> -Action signal to remove the pad for SSRC. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSsrcDemux-clear-ssrc"></a><h3>The <code class="literal">“clear-ssrcâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> *demux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Action signal to remove the pad for SSRC.</p> +<div class="refsect3"> +<a name="id-1.2.131.10.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>demux</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC of the pad</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC of the pad</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSsrcDemux-new-ssrc-pad"></a><h3>The <code class="literal">"new-ssrc-pad"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> *demux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Emited when a new SSRC pad has been created. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSsrcDemux-new-ssrc-pad"></a><h3>The <code class="literal">“new-ssrc-padâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> *demux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Emited when a new SSRC pad has been created.</p> +<div class="refsect3"> +<a name="id-1.2.131.10.3.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>demux</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC of the pad</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC of the pad</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td> -<td>the new pad.</td> +<td class="parameter_name"><p>pad</p></td> +<td class="parameter_description"><p>the new pad.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> <hr> <div class="refsect2"> -<a name="GstRtpSsrcDemux-removed-ssrc-pad"></a><h3>The <code class="literal">"removed-ssrc-pad"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> *demux, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> -<p> -Emited when a SSRC pad has been removed. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRtpSsrcDemux-removed-ssrc-pad"></a><h3>The <code class="literal">“removed-ssrc-padâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"><span class="type">GstRtpSsrcDemux</span></a> *demux, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ssrc, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Emited when a SSRC pad has been removed.</p> +<div class="refsect3"> +<a name="id-1.2.131.10.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>demux</code></em> :</span></p></td> -<td>the object which received the signal</td> +<td class="parameter_name"><p>demux</p></td> +<td class="parameter_description"><p>the object which received the signal</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>ssrc</code></em> :</span></p></td> -<td>the SSRC of the pad</td> +<td class="parameter_name"><p>ssrc</p></td> +<td class="parameter_description"><p>the SSRC of the pad</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td> -<td>the removed pad.</td> +<td class="parameter_name"><p>pad</p></td> +<td class="parameter_description"><p>the removed pad.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 6dd6fe95b..eca468227 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html @@ -2,38 +2,30 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>rtspsrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: rtspsrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbin.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-rtspsrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-rtspsrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-rtspsrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-rtspsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-rtspsrc.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-rtspsrc.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtspsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtspsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtspsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtspsrc.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-rtspsrc.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-rtspsrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -41,22 +33,233 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtspsrc.top_of_page"></a>rtspsrc</span></h2> <p>rtspsrc — Receive data over the network via RTSP (RFC 2326)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-rtspsrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstRTSPSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct" title="struct GstRTSPSrc">GstRTSPSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtspsrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug" title="The “debug†property">debug</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location" title="The “location†property">location</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans"><span class="type">GstRTSPLowerTrans</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--protocols" title="The “protocols†property">protocols</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--retry" title="The “retry†property">retry</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--timeout" title="The “timeout†property">timeout</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--latency" title="The “latency†property">latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tcp-timeout" title="The “tcp-timeout†property">tcp-timeout</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--connection-speed" title="The “connection-speed†property">connection-speed</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstRTSPNatMethod</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--nat-method" title="The “nat-method†property">nat-method</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtcp" title="The “do-rtcp†property">do-rtcp</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy" title="The “proxy†property">proxy</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rtp-blocksize" title="The “rtp-blocksize†property">rtp-blocksize</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-id" title="The “user-id†property">user-id</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-pw" title="The “user-pw†property">user-pw</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstRTSPSrcBufferMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--buffer-mode" title="The “buffer-mode†property">buffer-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--port-range" title="The “port-range†property">port-range</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-buffer-size" title="The “udp-buffer-size†property">udp-buffer-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--short-header" title="The “short-header†property">short-header</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive" title="The “do-rtsp-keep-alive†property">do-rtsp-keep-alive</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency" title="The “drop-on-latency†property">drop-on-latency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation" title="The “probation†property">probation</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect" title="The “udp-reconnect†property">udp-reconnect</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id" title="The “proxy-id†property">proxy-id</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw" title="The “proxy-pw†property">proxy-pw</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface" title="The “multicast-iface†property">multicast-iface</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync" title="The “ntp-sync†property">ntp-sync</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock" title="The “use-pipeline-clock†property">use-pipeline-clock</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes" title="The “sdes†property">sdes</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gio/unstable/GTlsDatabase.html"><span class="type">GTlsDatabase</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-database" title="The “tls-database†property">tls-database</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags" title="The “tls-validation-flags†property">tls-validation-flags</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtspsrc.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request" title="The “handle-request†signal">handle-request</a></td> +<td class="signal_flags"> </td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp" title="The “on-sdp†signal">on-sdp</a></td> +<td class="signal_flags"> </td> +</tr> +<tr> +<td class="signal_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream" title="The “select-stream†signal">select-stream</a></td> +<td class="signal_flags">Run First</td> +</tr> +<tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-new-manager" title="The “new-manager†signal">new-manager</a></td> +<td class="signal_flags">Run First</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstRTSPSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-rtspsrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct" title="struct GstRTSPSrc">GstRTSPSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtspsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> - +----GstRTSPSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html">GstBin</a> + <span class="lineart">╰──</span> GstRTSPSrc </pre> </div> <div class="refsect1"> @@ -66,81 +269,27 @@ GstRTSPSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtspsrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug" title='The "debug" property'>debug</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location" title='The "location" property'>location</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-rtspsrc.html#GstRTSPSrc--protocols" title='The "protocols" property'>protocols</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans"><span class="type">GstRTSPLowerTrans</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--retry" title='The "retry" property'>retry</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--timeout" title='The "timeout" property'>timeout</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--latency" title='The "latency" property'>latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tcp-timeout" title='The "tcp-timeout" property'>tcp-timeout</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--connection-speed" title='The "connection-speed" property'>connection-speed</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--nat-method" title='The "nat-method" property'>nat-method</a>" <span class="type">GstRTSPNatMethod</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtcp" title='The "do-rtcp" property'>do-rtcp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy" title='The "proxy" property'>proxy</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-rtspsrc.html#GstRTSPSrc--rtp-blocksize" title='The "rtp-blocksize" property'>rtp-blocksize</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-id" title='The "user-id" property'>user-id</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-rtspsrc.html#GstRTSPSrc--user-pw" title='The "user-pw" property'>user-pw</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-rtspsrc.html#GstRTSPSrc--buffer-mode" title='The "buffer-mode" property'>buffer-mode</a>" <span class="type">GstRTSPSrcBufferMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--port-range" title='The "port-range" property'>port-range</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-rtspsrc.html#GstRTSPSrc--udp-buffer-size" title='The "udp-buffer-size" property'>udp-buffer-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--short-header" title='The "short-header" property'>short-header</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive" title='The "do-rtsp-keep-alive" property'>do-rtsp-keep-alive</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency" title='The "drop-on-latency" property'>drop-on-latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation" title='The "probation" property'>probation</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect" title='The "udp-reconnect" property'>udp-reconnect</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id" title='The "proxy-id" property'>proxy-id</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-rtspsrc.html#GstRTSPSrc--proxy-pw" title='The "proxy-pw" property'>proxy-pw</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-rtspsrc.html#GstRTSPSrc--multicast-iface" title='The "multicast-iface" property'>multicast-iface</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-rtspsrc.html#GstRTSPSrc--ntp-sync" title='The "ntp-sync" property'>ntp-sync</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock" title='The "use-pipeline-clock" property'>use-pipeline-clock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes" title='The "sdes" property'>sdes</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags" title='The "tls-validation-flags" property'>tls-validation-flags</a>" <a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-rtspsrc.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request" title='The "handle-request" signal'>handle-request</a>" - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp" title='The "on-sdp" signal'>on-sdp</a>" - "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream" title='The "select-stream" signal'>select-stream</a>" : <code class="literal">Run First</code> -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-rtspsrc.description"></a><h2>Description</h2> -<p> -Makes a connection to an RTSP server and read the data. +<p>Makes a connection to an RTSP server and read the data. rtspsrc strictly follows RFC 2326 and therefore does not (yet) support -RealMedia/Quicktime/Microsoft extensions. -</p> -<p> -RTSP supports transport over TCP or UDP in unicast or multicast mode. By +RealMedia/Quicktime/Microsoft extensions.</p> +<p>RTSP supports transport over TCP or UDP in unicast or multicast mode. By default rtspsrc will negotiate a connection in the following order: UDP unicast/UDP multicast/TCP. The order cannot be changed but the allowed -protocols can be controlled with the <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--protocols" title='The "protocols" property'><span class="type">"protocols"</span></a> property. -</p> -<p> -rtspsrc currently understands SDP as the format of the session description. +protocols can be controlled with the <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--protocols" title="The “protocols†property"><span class="type">“protocolsâ€</span></a> property.</p> +<p>rtspsrc currently understands SDP as the format of the session description. For each stream listed in the SDP a new rtp_stream<code class="literal">d</code> pad will be created with caps derived from the SDP media description. This is a caps of mime type "application/x-rtp" that can be connected to any available RTP depayloader -element. -</p> -<p> -rtspsrc will internally instantiate an RTP session manager element +element.</p> +<p>rtspsrc will internally instantiate an RTP session manager element that will handle the RTCP messages to and from the server, jitter removal, packet reordering along with providing a clock for the pipeline. -This feature is implemented using the gstrtpbin element. -</p> -<p> -rtspsrc acts like a live source and will therefore only generate data in the -PLAYING state. -</p> -<p> -</p> +This feature is implemented using the gstrtpbin element.</p> +<p>rtspsrc acts like a live source and will therefore only generate data in the +PLAYING state.</p> <div class="refsect2"> -<a name="id-1.2.123.8.7.1"></a><h3>Example launch line</h3> +<a name="id-1.2.123.9.7"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -154,15 +303,10 @@ PLAYING state. Establish a connection to an RTSP server and send the raw RTP packets to a fakesink. </div> -<p> -</p> -<p> -Last reviewed on 2006-08-18 (0.10.5) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.123.8.9.1"></a><h3>Element Information</h3> +<a name="id-1.2.123.9.8.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -188,7 +332,7 @@ Last reviewed on 2006-08-18 (0.10.5) </div> <hr> <div class="refsect2"> -<a name="id-1.2.123.8.9.2"></a><h3>Element Pads</h3> +<a name="id-1.2.123.9.8.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -223,7 +367,10 @@ Last reviewed on 2006-08-18 (0.10.5) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-rtspsrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-rtspsrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-rtspsrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstRTSPSrc-struct"></a><h3>struct GstRTSPSrc</h3> <pre class="programlisting">struct GstRTSPSrc;</pre> @@ -234,347 +381,448 @@ Last reviewed on 2006-08-18 (0.10.5) <div class="refsect1"> <a name="gst-plugins-good-plugins-rtspsrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstRTSPSrc--debug"></a><h3>The <code class="literal">"debug"</code> property</h3> -<pre class="programlisting"> "debug" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--debug"></a><h3>The <code class="literal">“debugâ€</code> property</h3> +<pre class="programlisting"> “debug†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Dump request and response messages to stdout.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--location"></a><h3>The <code class="literal">"location"</code> property</h3> -<pre class="programlisting"> "location" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstRTSPSrc--location"></a><h3>The <code class="literal">“locationâ€</code> property</h3> +<pre class="programlisting"> “location†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Location of the RTSP url to read.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--protocols"></a><h3>The <code class="literal">"protocols"</code> property</h3> -<pre class="programlisting"> "protocols" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans"><span class="type">GstRTSPLowerTrans</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--protocols"></a><h3>The <code class="literal">“protocolsâ€</code> property</h3> +<pre class="programlisting"> “protocols†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans"><span class="type">GstRTSPLowerTrans</span></a></pre> <p>Allowed lower transport protocols.</p> +<p>Flags: Read / Write</p> <p>Default value: GST_RTSP_LOWER_TRANS_UDP|GST_RTSP_LOWER_TRANS_UDP_MCAST|GST_RTSP_LOWER_TRANS_TCP</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--retry"></a><h3>The <code class="literal">"retry"</code> property</h3> -<pre class="programlisting"> "retry" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--retry"></a><h3>The <code class="literal">“retryâ€</code> property</h3> +<pre class="programlisting"> “retry†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Max number of retries when allocating RTP ports.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 65535</p> <p>Default value: 20</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3> -<pre class="programlisting"> "timeout" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstRTSPSrc--timeout"></a><h3>The <code class="literal">“timeoutâ€</code> property</h3> +<pre class="programlisting"> “timeout†<span class="type">guint64</span></pre> <p>Retry TCP transport after UDP timeout microseconds (0 = disabled).</p> +<p>Flags: Read / Write</p> <p>Default value: 5000000</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--latency"></a><h3>The <code class="literal">"latency"</code> property</h3> -<pre class="programlisting"> "latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--latency"></a><h3>The <code class="literal">“latencyâ€</code> property</h3> +<pre class="programlisting"> “latency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Amount of ms to buffer.</p> +<p>Flags: Read / Write</p> <p>Default value: 2000</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--tcp-timeout"></a><h3>The <code class="literal">"tcp-timeout"</code> property</h3> -<pre class="programlisting"> "tcp-timeout" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstRTSPSrc--tcp-timeout"></a><h3>The <code class="literal">“tcp-timeoutâ€</code> property</h3> +<pre class="programlisting"> “tcp-timeout†<span class="type">guint64</span></pre> <p>Fail after timeout microseconds on TCP connections (0 = disabled).</p> +<p>Flags: Read / Write</p> <p>Default value: 20000000</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--connection-speed"></a><h3>The <code class="literal">"connection-speed"</code> property</h3> -<pre class="programlisting"> "connection-speed" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstRTSPSrc--connection-speed"></a><h3>The <code class="literal">“connection-speedâ€</code> property</h3> +<pre class="programlisting"> “connection-speed†<span class="type">guint64</span></pre> <p>Network connection speed in kbps (0 = unknown).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 18446744073709551</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--nat-method"></a><h3>The <code class="literal">"nat-method"</code> property</h3> -<pre class="programlisting"> "nat-method" <span class="type">GstRTSPNatMethod</span> : Read / Write</pre> +<a name="GstRTSPSrc--nat-method"></a><h3>The <code class="literal">“nat-methodâ€</code> property</h3> +<pre class="programlisting"> “nat-method†<span class="type">GstRTSPNatMethod</span></pre> <p>Method to use for traversing firewalls and NAT.</p> +<p>Flags: Read / Write</p> <p>Default value: Send Dummy packets</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--do-rtcp"></a><h3>The <code class="literal">"do-rtcp"</code> property</h3> -<pre class="programlisting"> "do-rtcp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Send RTCP packets, disable for old incompatible server.</p> +<a name="GstRTSPSrc--do-rtcp"></a><h3>The <code class="literal">“do-rtcpâ€</code> property</h3> +<pre class="programlisting"> “do-rtcp†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Enable RTCP support. Some old server don't like RTCP and then this property +needs to be set to FALSE.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--proxy"></a><h3>The <code class="literal">"proxy"</code> property</h3> -<pre class="programlisting"> "proxy" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> -<p>Proxy settings for HTTP tunneling. Format: [http://][user:passwd@]host[:port].</p> +<a name="GstRTSPSrc--proxy"></a><h3>The <code class="literal">“proxyâ€</code> property</h3> +<pre class="programlisting"> “proxy†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>Set the proxy parameters. This has to be a string of the format +http://host[:port].</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--rtp-blocksize"></a><h3>The <code class="literal">"rtp-blocksize"</code> property</h3> -<pre class="programlisting"> "rtp-blocksize" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> -<p>RTP package size to suggest to server (0 = disabled).</p> +<a name="GstRTSPSrc--rtp-blocksize"></a><h3>The <code class="literal">“rtp-blocksizeâ€</code> property</h3> +<pre class="programlisting"> “rtp-blocksize†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> +<p>RTP package size to suggest to server.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 65536</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--user-id"></a><h3>The <code class="literal">"user-id"</code> property</h3> -<pre class="programlisting"> "user-id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstRTSPSrc--user-id"></a><h3>The <code class="literal">“user-idâ€</code> property</h3> +<pre class="programlisting"> “user-id†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>RTSP location URI user id for authentication.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--user-pw"></a><h3>The <code class="literal">"user-pw"</code> property</h3> -<pre class="programlisting"> "user-pw" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstRTSPSrc--user-pw"></a><h3>The <code class="literal">“user-pwâ€</code> property</h3> +<pre class="programlisting"> “user-pw†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>RTSP location URI user password for authentication.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--buffer-mode"></a><h3>The <code class="literal">"buffer-mode"</code> property</h3> -<pre class="programlisting"> "buffer-mode" <span class="type">GstRTSPSrcBufferMode</span> : Read / Write</pre> -<p>Control the buffering algorithm in use.</p> +<a name="GstRTSPSrc--buffer-mode"></a><h3>The <code class="literal">“buffer-modeâ€</code> property</h3> +<pre class="programlisting"> “buffer-mode†<span class="type">GstRTSPSrcBufferMode</span></pre> +<p>Control the buffering and timestamping mode used by the jitterbuffer.</p> +<p>Flags: Read / Write</p> <p>Default value: Choose mode depending on stream live</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--port-range"></a><h3>The <code class="literal">"port-range"</code> property</h3> -<pre class="programlisting"> "port-range" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> -<p>Client port range that can be used to receive RTP and RTCP data, eg. 3000-3005 (NULL = no restrictions).</p> +<a name="GstRTSPSrc--port-range"></a><h3>The <code class="literal">“port-rangeâ€</code> property</h3> +<pre class="programlisting"> “port-range†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>Configure the client port numbers that can be used to recieve RTP and +RTCP.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--udp-buffer-size"></a><h3>The <code class="literal">"udp-buffer-size"</code> property</h3> -<pre class="programlisting"> "udp-buffer-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> -<p>Size of the kernel UDP receive buffer in bytes, 0=default.</p> +<a name="GstRTSPSrc--udp-buffer-size"></a><h3>The <code class="literal">“udp-buffer-sizeâ€</code> property</h3> +<pre class="programlisting"> “udp-buffer-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>Size of the kernel UDP receive buffer in bytes.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 524288</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--short-header"></a><h3>The <code class="literal">"short-header"</code> property</h3> -<pre class="programlisting"> "short-header" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--short-header"></a><h3>The <code class="literal">“short-headerâ€</code> property</h3> +<pre class="programlisting"> “short-header†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Only send the basic RTSP headers for broken encoders.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--do-rtsp-keep-alive"></a><h3>The <code class="literal">"do-rtsp-keep-alive"</code> property</h3> -<pre class="programlisting"> "do-rtsp-keep-alive" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p>Send RTSP keep alive packets, disable for old incompatible server.</p> +<a name="GstRTSPSrc--do-rtsp-keep-alive"></a><h3>The <code class="literal">“do-rtsp-keep-aliveâ€</code> property</h3> +<pre class="programlisting"> “do-rtsp-keep-alive†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Enable RTSP keep alive support. Some old server don't like RTSP +keep alive and then this property needs to be set to FALSE.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--drop-on-latency"></a><h3>The <code class="literal">"drop-on-latency"</code> property</h3> -<pre class="programlisting"> "drop-on-latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--drop-on-latency"></a><h3>The <code class="literal">“drop-on-latencyâ€</code> property</h3> +<pre class="programlisting"> “drop-on-latency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Tells the jitterbuffer to never exceed the given latency in size.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--probation"></a><h3>The <code class="literal">"probation"</code> property</h3> -<pre class="programlisting"> "probation" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--probation"></a><h3>The <code class="literal">“probationâ€</code> property</h3> +<pre class="programlisting"> “probation†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Consecutive packet sequence numbers to accept the source.</p> +<p>Flags: Read / Write</p> <p>Default value: 2</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--udp-reconnect"></a><h3>The <code class="literal">"udp-reconnect"</code> property</h3> -<pre class="programlisting"> "udp-reconnect" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--udp-reconnect"></a><h3>The <code class="literal">“udp-reconnectâ€</code> property</h3> +<pre class="programlisting"> “udp-reconnect†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Reconnect to the server if RTSP connection is closed when doing UDP.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--proxy-id"></a><h3>The <code class="literal">"proxy-id"</code> property</h3> -<pre class="programlisting"> "proxy-id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> -<p>HTTP proxy URI user id for authentication.</p> +<a name="GstRTSPSrc--proxy-id"></a><h3>The <code class="literal">“proxy-idâ€</code> property</h3> +<pre class="programlisting"> “proxy-id†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>Sets the proxy URI user id for authentication. If the URI set via the +"proxy" property contains a user-id already, that will take precedence.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> +<p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--proxy-pw"></a><h3>The <code class="literal">"proxy-pw"</code> property</h3> -<pre class="programlisting"> "proxy-pw" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> -<p>HTTP proxy URI user password for authentication.</p> +<a name="GstRTSPSrc--proxy-pw"></a><h3>The <code class="literal">“proxy-pwâ€</code> property</h3> +<pre class="programlisting"> “proxy-pw†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>Sets the proxy URI password for authentication. If the URI set via the +"proxy" property contains a password already, that will take precedence.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> +<p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--multicast-iface"></a><h3>The <code class="literal">"multicast-iface"</code> property</h3> -<pre class="programlisting"> "multicast-iface" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstRTSPSrc--multicast-iface"></a><h3>The <code class="literal">“multicast-ifaceâ€</code> property</h3> +<pre class="programlisting"> “multicast-iface†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The network interface on which to join the multicast group.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--ntp-sync"></a><h3>The <code class="literal">"ntp-sync"</code> property</h3> -<pre class="programlisting"> "ntp-sync" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--ntp-sync"></a><h3>The <code class="literal">“ntp-syncâ€</code> property</h3> +<pre class="programlisting"> “ntp-sync†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Synchronize received streams to the NTP clock.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--use-pipeline-clock"></a><h3>The <code class="literal">"use-pipeline-clock"</code> property</h3> -<pre class="programlisting"> "use-pipeline-clock" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--use-pipeline-clock"></a><h3>The <code class="literal">“use-pipeline-clockâ€</code> property</h3> +<pre class="programlisting"> “use-pipeline-clock†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--sdes"></a><h3>The <code class="literal">"sdes"</code> property</h3> -<pre class="programlisting"> "sdes" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstRTSPSrc--sdes"></a><h3>The <code class="literal">“sdesâ€</code> property</h3> +<pre class="programlisting"> “sdes†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>The SDES items of this session.</p> +<p>Flags: Read / Write</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc--tls-database"></a><h3>The <code class="literal">“tls-databaseâ€</code> property</h3> +<pre class="programlisting"> “tls-database†<a href="http://library.gnome.org/devel/gio/unstable/GTlsDatabase.html"><span class="type">GTlsDatabase</span></a> *</pre> +<p>TLS database with anchor certificate authorities used to validate the server certificate.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc--tls-validation-flags"></a><h3>The <code class="literal">"tls-validation-flags"</code> property</h3> -<pre class="programlisting"> "tls-validation-flags" <a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a> : Read / Write</pre> +<a name="GstRTSPSrc--tls-validation-flags"></a><h3>The <code class="literal">“tls-validation-flagsâ€</code> property</h3> +<pre class="programlisting"> “tls-validation-flags†<a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a></pre> <p>TLS certificate validation flags used to validate the server certificate.</p> +<p>Flags: Read / Write</p> <p>Default value: G_TLS_CERTIFICATE_UNKNOWN_CA|G_TLS_CERTIFICATE_BAD_IDENTITY|G_TLS_CERTIFICATE_NOT_ACTIVATED|G_TLS_CERTIFICATE_EXPIRED|G_TLS_CERTIFICATE_REVOKED|G_TLS_CERTIFICATE_INSECURE|G_TLS_CERTIFICATE_GENERIC_ERROR</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-rtspsrc.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstRTSPSrc-handle-request"></a><h3>The <code class="literal">"handle-request"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> request, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> response, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> -<p> -Handle a server request in <em class="parameter"><code>request</code></em> and prepare <em class="parameter"><code>response</code></em>. -</p> -<p> -This signal is called from the streaming thread, you should therefore not -do any state changes on <em class="parameter"><code>rtspsrc</code></em> because this might deadlock. If you want +<a name="GstRTSPSrc-handle-request"></a><h3>The <code class="literal">“handle-requestâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> request, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> response, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Handle a server request in <em class="parameter"><code>request</code></em> + and prepare <em class="parameter"><code>response</code></em> +.</p> +<p>This signal is called from the streaming thread, you should therefore not +do any state changes on <em class="parameter"><code>rtspsrc</code></em> + because this might deadlock. If you want to modify the state as a result of this signal, post a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread -in some other way. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +in some other way.</p> +<div class="refsect3"> +<a name="id-1.2.123.13.2.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td> -<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> -</td> +<td class="parameter_name"><p>rtspsrc</p></td> +<td class="parameter_description"><p>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a></p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>request</code></em> :</span></p></td> -<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> -</td> +<td class="parameter_name"><p>request</p></td> +<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>response</code></em> :</span></p></td> -<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> -</td> +<td class="parameter_name"><p>response</p></td> +<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> +</div> <p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc-on-sdp"></a><h3>The <code class="literal">"on-sdp"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a> *sdp, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> -<p> -Emited when the client has retrieved the SDP and before it configures the -streams in the SDP. <em class="parameter"><code>sdp</code></em> can be inspected and modified. -</p> -<p> -This signal is called from the streaming thread, you should therefore not -do any state changes on <em class="parameter"><code>rtspsrc</code></em> because this might deadlock. If you want +<a name="GstRTSPSrc-on-sdp"></a><h3>The <code class="literal">“on-sdpâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a> *sdp, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Emited when the client has retrieved the SDP and before it configures the +streams in the SDP. <em class="parameter"><code>sdp</code></em> + can be inspected and modified.</p> +<p>This signal is called from the streaming thread, you should therefore not +do any state changes on <em class="parameter"><code>rtspsrc</code></em> + because this might deadlock. If you want to modify the state as a result of this signal, post a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread -in some other way. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +in some other way.</p> +<div class="refsect3"> +<a name="id-1.2.123.13.3.6"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td> -<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> -</td> +<td class="parameter_name"><p>rtspsrc</p></td> +<td class="parameter_description"><p>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a></p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>sdp</code></em> :</span></p></td> -<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a> -</td> +<td class="parameter_name"><p>sdp</p></td> +<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> +</div> <p class="since">Since 1.2</p> </div> <hr> <div class="refsect2"> -<a name="GstRTSPSrc-select-stream"></a><h3>The <code class="literal">"select-stream"</code> signal</h3> -<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run First</code></pre> -<p> -Emited before the client decides to configure the stream <em class="parameter"><code>num</code></em> with -<em class="parameter"><code>caps</code></em>. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<a name="GstRTSPSrc-select-stream"></a><h3>The <code class="literal">“select-streamâ€</code> signal</h3> +<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> +user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Emited before the client decides to configure the stream <em class="parameter"><code>num</code></em> + with +<em class="parameter"><code>caps</code></em> +.</p> +<div class="refsect3"> +<a name="id-1.2.123.13.4.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>rtspsrc</code></em> :</span></p></td> -<td>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> -</td> +<td class="parameter_name"><p>rtspsrc</p></td> +<td class="parameter_description"><p>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a></p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>num</p></td> +<td class="parameter_description"><p>the stream number</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>caps</p></td> +<td class="parameter_description"><p>the stream caps</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td> -<td>the stream number</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> +</tbody> +</table></div> +</div> +<div class="refsect3"> +<a name="id-1.2.123.13.4.6"></a><h4>Returns</h4> +<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the stream should be selected, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when the stream +is to be ignored.</p> +<p></p> +</div> +<p>Flags: Run First</p> +<p class="since">Since 1.2</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstRTSPSrc-new-manager"></a><h3>The <code class="literal">“new-managerâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a> *rtspsrc, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *manager, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p>Emited after a new manager (like rtpbin) was created and the default +properties were configured.</p> +<div class="refsect3"> +<a name="id-1.2.123.13.5.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td> -<td>the stream caps</td> +<td class="parameter_name"><p>rtspsrc</p></td> +<td class="parameter_description"><p>a <a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"><span class="type">GstRTSPSrc</span></a></p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>manager</p></td> +<td class="parameter_description"><p>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a></p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> -<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the stream should be selected, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when the stream -is to be ignored.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> -<p class="since">Since 1.2</p> +</div> +<p>Flags: Run First</p> +<p class="since">Since 1.4</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 d8d9a2270..70bb56a53 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>sbcparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: sbcparse</title> <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="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux"> +<link rel="prev" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive"> <link rel="next" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo"> -<meta name="generator" content="GTK-Doc V1.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-scaletempo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-sbcparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-sbcparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-sbcparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-sbcparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-sbcparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-rtprtxreceive.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-scaletempo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-sbcparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,39 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-sbcparse.top_of_page"></a>sbcparse</span></h2> <p>sbcparse — Parses an SBC bluetooth audio stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-sbcparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstSbcParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct" title="struct GstSbcParse">GstSbcParse</a>; -</pre> +<a name="GstSbcParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-sbcparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct" title="struct GstSbcParse">GstSbcParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-sbcparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstSbcParse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstSbcParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-sbcparse.description"></a><h2>Description</h2> -<p> -The sbcparse element will parse a bluetooth SBC audio stream into -frames and timestamp them properly. -</p> +<p>The sbcparse element will parse a bluetooth SBC audio stream into +frames and timestamp them properly.</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.132.5.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.134.6.2.1.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="id-1.2.132.5.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.134.6.2.1.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -143,7 +143,10 @@ frames and timestamp them properly. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-sbcparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-sbcparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-sbcparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSbcParse-struct"></a><h3>struct GstSbcParse</h3> <pre class="programlisting">struct GstSbcParse;</pre> @@ -153,11 +156,11 @@ frames and timestamp them properly. </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-sbcparse.see-also"></a><h2>See Also</h2> -sbcdec, sbcenc +<p>sbcdec, sbcenc</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 5aaaf0482..bfbf15f09 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html +++ b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>scaletempo</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: scaletempo</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-sbcparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-shagadelictv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-scaletempo.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-scaletempo.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-scaletempo.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-scaletempo.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-scaletempo.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-scaletempo.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-scaletempo.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-sbcparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-shagadelictv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-scaletempo"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,47 +31,71 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-scaletempo.top_of_page"></a>scaletempo</span></h2> <p>scaletempo — Sync audio tempo with playback rate</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-scaletempo.synopsis"></a><h2>Synopsis</h2> -<a name="GstScaletempo"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct" title="struct GstScaletempo">GstScaletempo</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-scaletempo.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstScaletempo -</pre> +<a name="gst-plugins-good-plugins-scaletempo.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title="The “overlap†property">overlap</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate" title="The “rate†property">rate</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title="The “search†property">search</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride" title="The “stride†property">stride</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstScaletempo"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-scaletempo.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct" title="struct GstScaletempo">GstScaletempo</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-scaletempo.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title='The "overlap" property'>overlap</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--rate" title='The "rate" property'>rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title='The "search" property'>search</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride" title='The "stride" property'>stride</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-scaletempo.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstScaletempo </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-scaletempo.description"></a><h2>Description</h2> -<p> -Scale tempo while maintaining pitch +<p>Scale tempo while maintaining pitch (WSOLA-like technique with cross correlation) -Inspired by SoundTouch library by Olli Parviainen -</p> -<p> -Use Sceletempo to apply playback rates without the chipmunk effect. -</p> -<p> -</p> +Inspired by SoundTouch library by Olli Parviainen</p> +<p>Use Sceletempo to apply playback rates without the chipmunk effect.</p> <div class="refsect2"> -<a name="id-1.2.133.6.4.1"></a><h3>Example pipelines</h3> +<a name="id-1.2.135.7.4"></a><h3>Example pipelines</h3> <p> </p> <div class="informalexample"> @@ -112,30 +130,25 @@ OR <p> When an application sends a seek event with rate != 1.0, Scaletempo applies the rate change by scaling the tempo without scaling the pitch. -</p> -<p> + Scaletempo works by producing audio in constant sized chunks -(<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride" title='The "stride" property'><span class="type">"stride"</span></a>) but consuming chunks proportional to the playback +(<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride" title="The “stride†property"><span class="type">“strideâ€</span></a>) but consuming chunks proportional to the playback rate. -</p> -<p> + Scaletempo then smooths the output by blending the end of one stride with -the next (<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title='The "overlap" property'><span class="type">"overlap"</span></a>). -</p> -<p> +the next (<a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap" title="The “overlap†property"><span class="type">“overlapâ€</span></a>). + Scaletempo smooths the overlap further by searching within the input buffer for the best overlap position. Scaletempo uses a statistical cross correlation (roughly a dot-product). Scaletempo consumes most of its CPU -cycles here. One can use the <a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title='The "search" property'><span class="type">"search"</span></a> propery to tune how far +cycles here. One can use the <a class="link" href="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search" title="The “search†property"><span class="type">“searchâ€</span></a> propery to tune how far the algoritm looks. </p> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.133.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.135.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -161,7 +174,7 @@ the algoritm looks. </div> <hr> <div class="refsect2"> -<a name="id-1.2.133.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.135.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -224,7 +237,10 @@ the algoritm looks. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-scaletempo.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-scaletempo.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-scaletempo.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstScaletempo-struct"></a><h3>struct GstScaletempo</h3> <pre class="programlisting">struct GstScaletempo;</pre> @@ -235,33 +251,37 @@ the algoritm looks. <div class="refsect1"> <a name="gst-plugins-good-plugins-scaletempo.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstScaletempo--overlap"></a><h3>The <code class="literal">"overlap"</code> property</h3> -<pre class="programlisting"> "overlap" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstScaletempo--overlap"></a><h3>The <code class="literal">“overlapâ€</code> property</h3> +<pre class="programlisting"> “overlap†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Percentage of stride to overlap.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0.2</p> </div> <hr> <div class="refsect2"> -<a name="GstScaletempo--rate"></a><h3>The <code class="literal">"rate"</code> property</h3> -<pre class="programlisting"> "rate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read</pre> +<a name="GstScaletempo--rate"></a><h3>The <code class="literal">“rateâ€</code> property</h3> +<pre class="programlisting"> “rate†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Current playback rate.</p> +<p>Flags: Read</p> <p>Allowed values: [-2.14748e+09,2.14748e+09]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstScaletempo--search"></a><h3>The <code class="literal">"search"</code> property</h3> -<pre class="programlisting"> "search" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstScaletempo--search"></a><h3>The <code class="literal">“searchâ€</code> property</h3> +<pre class="programlisting"> “search†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Length in milliseconds to search for best overlap position.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 500</p> <p>Default value: 14</p> </div> <hr> <div class="refsect2"> -<a name="GstScaletempo--stride"></a><h3>The <code class="literal">"stride"</code> property</h3> -<pre class="programlisting"> "stride" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstScaletempo--stride"></a><h3>The <code class="literal">“strideâ€</code> property</h3> +<pre class="programlisting"> “stride†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Length in milliseconds to output each stride.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,5000]</p> <p>Default value: 30</p> </div> @@ -269,6 +289,6 @@ the algoritm looks. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c9af1a0cf..873addd27 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>shagadelictv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: shagadelictv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-scaletempo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-shapewipe.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-shagadelictv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-shagadelictv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-shagadelictv.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shagadelictv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shagadelictv.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-scaletempo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-shapewipe.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-shagadelictv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-shagadelictv.top_of_page"></a>shagadelictv</span></h2> <p>shagadelictv — Oh behave, ShagedelicTV makes images shagadelic!</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-shagadelictv.synopsis"></a><h2>Synopsis</h2> -<a name="GstShagadelicTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV-struct" title="struct GstShagadelicTV">GstShagadelicTV</a>; -</pre> +<a name="GstShagadelicTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-shagadelictv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV-struct" title="struct GstShagadelicTV">GstShagadelicTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-shagadelictv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstShagadelicTV +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstShagadelicTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-shagadelictv.description"></a><h2>Description</h2> -<p> -Oh behave, ShagedelicTV makes images shagadelic! -</p> -<p> -</p> +<p>Oh behave, ShagedelicTV makes images shagadelic!</p> <div class="refsect2"> -<a name="id-1.2.134.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.136.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -75,12 +73,10 @@ Oh behave, ShagedelicTV makes images shagadelic! </div> This pipeline shows the effect of shagadelictv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.134.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.136.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -106,7 +102,7 @@ Oh behave, ShagedelicTV makes images shagadelic! </div> <hr> <div class="refsect2"> -<a name="id-1.2.134.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.136.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -161,7 +157,10 @@ Oh behave, ShagedelicTV makes images shagadelic! </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-shagadelictv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-shagadelictv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shagadelictv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstShagadelicTV-struct"></a><h3>struct GstShagadelicTV</h3> <pre class="programlisting">struct GstShagadelicTV;</pre> @@ -172,6 +171,6 @@ Oh behave, ShagedelicTV makes images shagadelic! </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 524f5b7bd..8c780bd26 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html +++ b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>shapewipe</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: shapewipe</title> <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="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.19 (XML mode)"> +<link rel="next" href="gst-plugins-good-plugins-shout2send.html" title="shout2send"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-shagadelictv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-smpte.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-shapewipe.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-shapewipe.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-shapewipe.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-shapewipe.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shapewipe.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shapewipe.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shapewipe.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-shagadelictv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-shout2send.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-shapewipe"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,47 +31,62 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-shapewipe.top_of_page"></a>shapewipe</span></h2> <p>shapewipe — Adds a shape wipe transition to a video stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-shapewipe.synopsis"></a><h2>Synopsis</h2> -<a name="GstShapeWipe"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct" title="struct GstShapeWipe">GstShapeWipe</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-shapewipe.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstShapeWipe -</pre> +<a name="gst-plugins-good-plugins-shapewipe.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border" title="The “border†property">border</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position" title="The “position†property">position</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstShapeWipe"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-shapewipe.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct" title="struct GstShapeWipe">GstShapeWipe</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-shapewipe.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border" title='The "border" property'>border</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position" title='The "position" property'>position</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write +<a name="gst-plugins-good-plugins-shapewipe.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstShapeWipe </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-shapewipe.description"></a><h2>Description</h2> -<p> -The shapewipe element provides custom transitions on video streams +<p>The shapewipe element provides custom transitions on video streams based on a grayscale bitmap. The state of the transition can be controlled by the position property and an optional blended border -can be added by the border property. -</p> -<p> -Transition bitmaps can be downloaded from the -<a class="ulink" href="http://cinelerra.org/transitions.php" target="_top">Cinelerra transition</a> -page. -</p> -<p> -</p> +can be added by the border property.</p> +<p>Transition bitmaps can be downloaded from the</p> +<a class="ulink" href="http://cinelerra.org/transitions.php" target="_top">Cinelerra transition</a><p>page.</p> <div class="refsect2"> -<a name="id-1.2.135.6.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.137.7.6"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -90,12 +99,10 @@ page. </div> This pipeline adds the transition from mask.png with position 0.5 to an SMPTE test screen and snow. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.135.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.137.7.7.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -121,7 +128,7 @@ page. </div> <hr> <div class="refsect2"> -<a name="id-1.2.135.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.137.7.7.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -204,7 +211,10 @@ page. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-shapewipe.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-shapewipe.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shapewipe.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstShapeWipe-struct"></a><h3>struct GstShapeWipe</h3> <pre class="programlisting">struct GstShapeWipe;</pre> @@ -215,17 +225,19 @@ page. <div class="refsect1"> <a name="gst-plugins-good-plugins-shapewipe.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstShapeWipe--border"></a><h3>The <code class="literal">"border"</code> property</h3> -<pre class="programlisting"> "border" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstShapeWipe--border"></a><h3>The <code class="literal">“borderâ€</code> property</h3> +<pre class="programlisting"> “border†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Border of the mask.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstShapeWipe--position"></a><h3>The <code class="literal">"position"</code> property</h3> -<pre class="programlisting"> "position" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstShapeWipe--position"></a><h3>The <code class="literal">“positionâ€</code> property</h3> +<pre class="programlisting"> “position†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Position of the mask.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0</p> </div> @@ -233,6 +245,6 @@ page. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</div> </body> </html> \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-good-plugins-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-shout2send.html new file mode 100644 index 000000000..94a990572 --- /dev/null +++ b/docs/plugins/html/gst-plugins-good-plugins-shout2send.html @@ -0,0 +1,394 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: shout2send</title> +<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="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-smpte.html" title="smpte"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shout2send.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shout2send.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shout2send.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shout2send.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-shout2send.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-shapewipe.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-smpte.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> +<div class="refentry"> +<a name="gst-plugins-good-plugins-shout2send"></a><div class="titlepage"></div> +<div class="refnamediv"><table width="100%"><tr> +<td valign="top"> +<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-shout2send.top_of_page"></a>shout2send</span></h2> +<p>shout2send — Sends data to an icecast server</p> +</td> +<td class="gallery_image" valign="top" align="right"></td> +</tr></table></div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--description" title="The “description†property">description</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--genre" title="The “genre†property">genre</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--ip" title="The “ip†property">ip</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--mount" title="The “mount†property">mount</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--password" title="The “password†property">password</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--port" title="The “port†property">port</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstShout2SendProtocol</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--protocol" title="The “protocol†property">protocol</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--streamname" title="The “streamname†property">streamname</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--sync" title="The “sync†property">sync</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--url" title="The “url†property">url</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--username" title="The “username†property">username</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send--public" title="The “public†property">public</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send-connection-problem" title="The “connection-problem†signal">connection-problem</a></td> +<td class="signal_flags">Cleanup</td> +</tr></tbody> +</table></div> +</div> +<a name="GstShout2send"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send-struct" title="struct GstShout2send">GstShout2send</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> GstShout2send +</pre> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.implemented-interfaces"></a><h2>Implemented Interfaces</h2> +<p> +GstShout2send implements + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a>.</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.description"></a><h2>Description</h2> +<div class="refsynopsisdiv"> +<h2>Synopsis</h2> +<div class="refsect2"> +<a name="id-1.2.138.9.2.1"></a><h3>Element Information</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">plugin</span></p></td> +<td> + <a class="link" href="gst-plugins-good-plugins-plugin-shout2send.html#plugin-shout2send">shout2send</a> + </td> +</tr> +<tr> +<td><p><span class="term">author</span></p></td> +<td>Wim Taymans <wim.taymans@chello.be>, Pedro Corte-Real <typo@netcabo.pt>, Zaheer Abbas Merali <zaheerabbas at merali dot org></td> +</tr> +<tr> +<td><p><span class="term">class</span></p></td> +<td>Sink/Network</td> +</tr> +</tbody> +</table></div> +</div> +<hr> +<div class="refsect2"> +<a name="id-1.2.138.9.2.2"></a><h3>Element Pads</h3> +<div class="variablelist"><table border="0" class="variablelist"> +<colgroup> +<col align="left" valign="top"> +<col> +</colgroup> +<tbody> +<tr> +<td><p><span class="term">name</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">direction</span></p></td> +<td>sink</td> +</tr> +<tr> +<td><p><span class="term">presence</span></p></td> +<td>always</td> +</tr> +<tr> +<td><p><span class="term">details</span></p></td> +<td>application/ogg</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/ogg</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> video/ogg</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> video/webm</td> +</tr> +<tr> +<td><p><span class="term"></span></p></td> +<td> audio/webm</td> +</tr> +</tbody> +</table></div> +</div> +</div> +<p> +</p> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.other_details"></a><h2>Types and Values</h2> +<div class="refsect2"> +<a name="GstShout2send-struct"></a><h3>struct GstShout2send</h3> +<pre class="programlisting">struct GstShout2send;</pre> +<p> +</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.property-details"></a><h2>Property Details</h2> +<div class="refsect2"> +<a name="GstShout2send--description"></a><h3>The <code class="literal">“descriptionâ€</code> property</h3> +<pre class="programlisting"> “description†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>description.</p> +<p>Flags: Read / Write</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--genre"></a><h3>The <code class="literal">“genreâ€</code> property</h3> +<pre class="programlisting"> “genre†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>genre.</p> +<p>Flags: Read / Write</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--ip"></a><h3>The <code class="literal">“ipâ€</code> property</h3> +<pre class="programlisting"> “ip†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>IP address or hostname.</p> +<p>Flags: Read / Write</p> +<p>Default value: "127.0.0.1"</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--mount"></a><h3>The <code class="literal">“mountâ€</code> property</h3> +<pre class="programlisting"> “mount†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>mount.</p> +<p>Flags: Read / Write</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--password"></a><h3>The <code class="literal">“passwordâ€</code> property</h3> +<pre class="programlisting"> “password†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>password.</p> +<p>Flags: Read / Write</p> +<p>Default value: "hackme"</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--port"></a><h3>The <code class="literal">“portâ€</code> property</h3> +<pre class="programlisting"> “port†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>port.</p> +<p>Flags: Read / Write</p> +<p>Allowed values: [1,65535]</p> +<p>Default value: 8000</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--protocol"></a><h3>The <code class="literal">“protocolâ€</code> property</h3> +<pre class="programlisting"> “protocol†<span class="type">GstShout2SendProtocol</span></pre> +<p>Connection Protocol to use.</p> +<p>Flags: Read / Write</p> +<p>Default value: Http Protocol (icecast 2.x)</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--streamname"></a><h3>The <code class="literal">“streamnameâ€</code> property</h3> +<pre class="programlisting"> “streamname†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>name of the stream.</p> +<p>Flags: Read / Write</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--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></pre> +<p>Sync on the clock.</p> +<p>Flags: Read / Write</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--url"></a><h3>The <code class="literal">“urlâ€</code> property</h3> +<pre class="programlisting"> “url†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>the stream's homepage URL.</p> +<p>Flags: Read / Write</p> +<p>Default value: ""</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--username"></a><h3>The <code class="literal">“usernameâ€</code> property</h3> +<pre class="programlisting"> “username†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>username.</p> +<p>Flags: Read / Write</p> +<p>Default value: "source"</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstShout2send--public"></a><h3>The <code class="literal">“publicâ€</code> property</h3> +<pre class="programlisting"> “public†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>If the stream should be listed on the server's stream directory.</p> +<p>Flags: Read / Write</p> +<p>Default value: FALSE</p> +</div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-shout2send.signal-details"></a><h2>Signal Details</h2> +<div class="refsect2"> +<a name="GstShout2send-connection-problem"></a><h3>The <code class="literal">“connection-problemâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-shout2send.html#GstShout2send"><span class="type">GstShout2send</span></a> *gstshout2send, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg1, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> +<p> +</p> +<div class="refsect3"> +<a name="id-1.2.138.13.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> +</colgroup> +<tbody> +<tr> +<td class="parameter_name"><p>gstshout2send</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> +</tr> +<tr> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> +</tr> +</tbody> +</table></div> +</div> +<p>Flags: Cleanup</p> +</div> +</div> +</div> +<div class="footer"> +<hr> + Generated by GTK-Doc V1.20</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 969c6ef58..44277bcf1 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>smpte</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: smpte</title> <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="up" href="ch01.html" title="gst-plugins-good Elements"> -<link rel="prev" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe"> +<link rel="prev" href="gst-plugins-good-plugins-shout2send.html" title="shout2send"> <link rel="next" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha"> -<meta name="generator" content="GTK-Doc V1.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-shapewipe.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-smptealpha.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-smpte.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-smpte.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-smpte.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-smpte.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-smpte.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-smpte.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-smpte.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-shout2send.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-smptealpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-smpte"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,50 +31,82 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-smpte.top_of_page"></a>smpte</span></h2> <p>smpte — Apply the standard SMPTE transitions on video images</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-smpte.synopsis"></a><h2>Synopsis</h2> -<a name="GstSMPTE"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE-struct" title="struct GstSMPTE">GstSMPTE</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-smpte.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstSMPTE -</pre> +<a name="gst-plugins-good-plugins-smpte.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--border" title="The “border†property">border</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth" title="The “depth†property">depth</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--fps" title="The “fps†property">fps</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstSMPTETransitionType</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--type" title="The “type†property">type</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration" title="The “duration†property">duration</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert" title="The “invert†property">invert</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstSMPTE"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-smpte.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE-struct" title="struct GstSMPTE">GstSMPTE</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-smpte.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--border" title='The "border" property'>border</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth" title='The "depth" property'>depth</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--fps" title='The "fps" property'>fps</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--type" title='The "type" property'>type</a>" <span class="type">GstSMPTETransitionType</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration" title='The "duration" property'>duration</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert" title='The "invert" property'>invert</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-smpte.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstSMPTE </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-smpte.description"></a><h2>Description</h2> -<p> -smpte can accept I420 video streams with the same width, height and +<p>smpte can accept I420 video streams with the same width, height and framerate. The two incomming buffers are blended together using an effect -specific alpha mask. -</p> -<p> -The <span class="type">"depth"</span> property defines the presision in bits of the mask. A +specific alpha mask. </p> +<p>The <span class="type">“depthâ€</span> property defines the presision in bits of the mask. A higher presision will create a mask with smoother gradients in order to avoid -banding. -</p> -<p> -</p> +banding.</p> <div class="refsect2"> -<a name="id-1.2.136.6.4.1"></a><h3>Sample pipelines</h3> +<a name="id-1.2.139.7.4"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -96,12 +122,10 @@ It shows a pinwheel transition a from a snow videotestsrc to an smpte pattern videotestsrc. The transition will take 2 seconds to complete. The edges of the transition are smoothed with a 20000 big border. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.136.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.139.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -127,7 +151,7 @@ edges of the transition are smoothed with a 20000 big border. </div> <hr> <div class="refsect2"> -<a name="id-1.2.136.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.139.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -206,7 +230,10 @@ edges of the transition are smoothed with a 20000 big border. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-smpte.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-smpte.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-smpte.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSMPTE-struct"></a><h3>struct GstSMPTE</h3> <pre class="programlisting">struct GstSMPTE;</pre> @@ -217,53 +244,59 @@ edges of the transition are smoothed with a 20000 big border. <div class="refsect1"> <a name="gst-plugins-good-plugins-smpte.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstSMPTE--border"></a><h3>The <code class="literal">"border"</code> property</h3> -<pre class="programlisting"> "border" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstSMPTE--border"></a><h3>The <code class="literal">“borderâ€</code> property</h3> +<pre class="programlisting"> “border†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The border width of the transition.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTE--depth"></a><h3>The <code class="literal">"depth"</code> property</h3> -<pre class="programlisting"> "depth" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstSMPTE--depth"></a><h3>The <code class="literal">“depthâ€</code> property</h3> +<pre class="programlisting"> “depth†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Depth of the mask in bits.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,24]</p> <p>Default value: 16</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTE--fps"></a><h3>The <code class="literal">"fps"</code> property</h3> -<pre class="programlisting"> "fps" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstSMPTE--fps"></a><h3>The <code class="literal">“fpsâ€</code> property</h3> +<pre class="programlisting"> “fps†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Frames per second if no input files are given (deprecated).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTE--type"></a><h3>The <code class="literal">"type"</code> property</h3> -<pre class="programlisting"> "type" <span class="type">GstSMPTETransitionType</span> : Read / Write</pre> +<a name="GstSMPTE--type"></a><h3>The <code class="literal">“typeâ€</code> property</h3> +<pre class="programlisting"> “type†<span class="type">GstSMPTETransitionType</span></pre> <p>The type of transition to use.</p> +<p>Flags: Read / Write</p> <p>Default value: A bar moves from left to right</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTE--duration"></a><h3>The <code class="literal">"duration"</code> property</h3> -<pre class="programlisting"> "duration" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstSMPTE--duration"></a><h3>The <code class="literal">“durationâ€</code> property</h3> +<pre class="programlisting"> “duration†<span class="type">guint64</span></pre> <p>Duration of the transition effect in nanoseconds.</p> +<p>Flags: Read / Write</p> <p>Default value: 1000000000</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTE--invert"></a><h3>The <code class="literal">"invert"</code> property</h3> -<pre class="programlisting"> "invert" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSMPTE--invert"></a><h3>The <code class="literal">“invertâ€</code> property</h3> +<pre class="programlisting"> “invert†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Invert transition mask.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 510b46def..1789dd5f4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html +++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>smptealpha</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: smptealpha</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-smpte.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-souphttpsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-smptealpha.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-smptealpha.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-smptealpha.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-smptealpha.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-smptealpha.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-smptealpha.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-smptealpha.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-smpte.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-souphttpsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-smptealpha"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,57 +31,83 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-smptealpha.top_of_page"></a>smptealpha</span></h2> <p>smptealpha — Apply the standard SMPTE transitions as alpha on video images</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-smptealpha.synopsis"></a><h2>Synopsis</h2> -<a name="GstSMPTEAlpha"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct" title="struct GstSMPTEAlpha">GstSMPTEAlpha</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-smptealpha.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstSMPTEAlpha -</pre> +<a name="gst-plugins-good-plugins-smptealpha.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border" title="The “border†property">border</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth" title="The “depth†property">depth</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position" title="The “position†property">position</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstSMPTEAlphaTransitionType</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type" title="The “type†property">type</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert" title="The “invert†property">invert</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstSMPTEAlpha"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-smptealpha.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct" title="struct GstSMPTEAlpha">GstSMPTEAlpha</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-smptealpha.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border" title='The "border" property'>border</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth" title='The "depth" property'>depth</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position" title='The "position" property'>position</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type" title='The "type" property'>type</a>" <span class="type">GstSMPTEAlphaTransitionType</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert" title='The "invert" property'>invert</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-smptealpha.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstSMPTEAlpha </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-smptealpha.description"></a><h2>Description</h2> -<p> -smptealpha can accept an I420 or AYUV video stream. An alpha channel is added +<p>smptealpha can accept an I420 or AYUV video stream. An alpha channel is added using an effect specific SMPTE mask in the I420 input case. In the AYUV case, -the alpha channel is modified using the effect specific SMPTE mask. -</p> -<p> -The <span class="type">"position"</span> property is a controllabe double between 0.0 and +the alpha channel is modified using the effect specific SMPTE mask.</p> +<p>The <span class="type">“positionâ€</span> property is a controllabe double between 0.0 and 1.0 that specifies the position in the transition. 0.0 is the start of the transition with the alpha channel to complete opaque where 1.0 has the alpha -channel set to completely transparent. -</p> -<p> -The <span class="type">"depth"</span> property defines the precision in bits of the mask. +channel set to completely transparent.</p> +<p>The <span class="type">“depthâ€</span> property defines the precision in bits of the mask. A higher presision will create a mask with smoother gradients in order to -avoid banding. -</p> -<p> -</p> +avoid banding.</p> <div class="refsect2"> -<a name="id-1.2.137.6.5.1"></a><h3>Sample pipelines</h3> +<a name="id-1.2.140.7.5"></a><h3>Sample pipelines</h3> <p> Here is a pipeline to demonstrate the smpte transition : </p> @@ -101,12 +121,10 @@ transparent image. The edges of the transition are smoothed with a 20000 big border. </p> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.137.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.140.7.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -132,7 +150,7 @@ transparent image. The edges of the transition are smoothed with a </div> <hr> <div class="refsect2"> -<a name="id-1.2.137.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.140.7.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -227,7 +245,10 @@ transparent image. The edges of the transition are smoothed with a </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-smptealpha.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-smptealpha.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-smptealpha.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSMPTEAlpha-struct"></a><h3>struct GstSMPTEAlpha</h3> <pre class="programlisting">struct GstSMPTEAlpha;</pre> @@ -238,49 +259,51 @@ transparent image. The edges of the transition are smoothed with a <div class="refsect1"> <a name="gst-plugins-good-plugins-smptealpha.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstSMPTEAlpha--border"></a><h3>The <code class="literal">"border"</code> property</h3> -<pre class="programlisting"> "border" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstSMPTEAlpha--border"></a><h3>The <code class="literal">“borderâ€</code> property</h3> +<pre class="programlisting"> “border†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The border width of the transition.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTEAlpha--depth"></a><h3>The <code class="literal">"depth"</code> property</h3> -<pre class="programlisting"> "depth" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstSMPTEAlpha--depth"></a><h3>The <code class="literal">“depthâ€</code> property</h3> +<pre class="programlisting"> “depth†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Depth of the mask in bits.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,24]</p> <p>Default value: 16</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTEAlpha--position"></a><h3>The <code class="literal">"position"</code> property</h3> -<pre class="programlisting"> "position" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstSMPTEAlpha--position"></a><h3>The <code class="literal">“positionâ€</code> property</h3> +<pre class="programlisting"> “position†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Position of the transition effect.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTEAlpha--type"></a><h3>The <code class="literal">"type"</code> property</h3> -<pre class="programlisting"> "type" <span class="type">GstSMPTEAlphaTransitionType</span> : Read / Write</pre> +<a name="GstSMPTEAlpha--type"></a><h3>The <code class="literal">“typeâ€</code> property</h3> +<pre class="programlisting"> “type†<span class="type">GstSMPTEAlphaTransitionType</span></pre> <p>The type of transition to use.</p> +<p>Flags: Read / Write</p> <p>Default value: A bar moves from left to right</p> </div> <hr> <div class="refsect2"> -<a name="GstSMPTEAlpha--invert"></a><h3>The <code class="literal">"invert"</code> property</h3> -<pre class="programlisting"> "invert" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -Set to TRUE to invert the transition mask (ie. flip it horizontally). -</p> +<a name="GstSMPTEAlpha--invert"></a><h3>The <code class="literal">“invertâ€</code> property</h3> +<pre class="programlisting"> “invert†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Set to TRUE to invert the transition mask (ie. flip it horizontally).</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> -<p class="since">Since 0.10.23</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e156a6105..8560eee42 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>souphttpsrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: souphttpsrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-smptealpha.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-spectrum.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-souphttpsrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-souphttpsrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-souphttpsrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-souphttpsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-souphttpsrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-souphttpsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-souphttpsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-souphttpsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-souphttpsrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-smptealpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-spectrum.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-souphttpsrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,23 +32,175 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-souphttpsrc.top_of_page"></a>souphttpsrc</span></h2> <p>souphttpsrc — Receive data as a client over the network via HTTP using SOUP</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-souphttpsrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstSoupHTTPSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct" title="struct GstSoupHTTPSrc">GstSoupHTTPSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-souphttpsrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect" title="The “automatic-redirect†property">automatic-redirect</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies" title="The “cookies†property">cookies</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-genre" title="The “iradio-genre†property">iradio-genre</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-mode" title="The “iradio-mode†property">iradio-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-name" title="The “iradio-name†property">iradio-name</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-title" title="The “iradio-title†property">iradio-title</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-url" title="The “iradio-url†property">iradio-url</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--location" title="The “location†property">location</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy" title="The “proxy†property">proxy</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-agent" title="The “user-agent†property">user-agent</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--is-live" title="The “is-live†property">is-live</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy-id" title="The “proxy-id†property">proxy-id</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy-pw" title="The “proxy-pw†property">proxy-pw</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-id" title="The “user-id†property">user-id</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-pw" title="The “user-pw†property">user-pw</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--extra-headers" title="The “extra-headers†property">extra-headers</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout" title="The “timeout†property">timeout</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--compress" title="The “compress†property">compress</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupLogger.html#SoupLoggerLogLevel"><span class="type">SoupLoggerLogLevel</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--http-log-level" title="The “http-log-level†property">http-log-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--keep-alive" title="The “keep-alive†property">keep-alive</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--retries" title="The “retries†property">retries</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-ca-file" title="The “ssl-ca-file†property">ssl-ca-file</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-strict" title="The “ssl-strict†property">ssl-strict</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-use-system-ca-file" title="The “ssl-use-system-ca-file†property">ssl-use-system-ca-file</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstSoupHTTPSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-souphttpsrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct" title="struct GstSoupHTTPSrc">GstSoupHTTPSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-souphttpsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----GstSoupHTTPSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> GstSoupHTTPSrc </pre> </div> <div class="refsect1"> @@ -65,33 +210,11 @@ GstSoupHTTPSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-souphttpsrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect" title='The "automatic-redirect" property'>automatic-redirect</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies" title='The "cookies" property'>cookies</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-genre" title='The "iradio-genre" property'>iradio-genre</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-mode" title='The "iradio-mode" property'>iradio-mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-name" title='The "iradio-name" property'>iradio-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-title" title='The "iradio-title" property'>iradio-title</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-url" title='The "iradio-url" property'>iradio-url</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--location" title='The "location" property'>location</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-souphttpsrc.html#GstSoupHTTPSrc--proxy" title='The "proxy" property'>proxy</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-souphttpsrc.html#GstSoupHTTPSrc--user-agent" title='The "user-agent" property'>user-agent</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-souphttpsrc.html#GstSoupHTTPSrc--is-live" title='The "is-live" property'>is-live</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy-id" title='The "proxy-id" property'>proxy-id</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-souphttpsrc.html#GstSoupHTTPSrc--proxy-pw" title='The "proxy-pw" property'>proxy-pw</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-souphttpsrc.html#GstSoupHTTPSrc--user-id" title='The "user-id" property'>user-id</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-souphttpsrc.html#GstSoupHTTPSrc--user-pw" title='The "user-pw" property'>user-pw</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-souphttpsrc.html#GstSoupHTTPSrc--extra-headers" title='The "extra-headers" property'>extra-headers</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout" title='The "timeout" property'>timeout</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-souphttpsrc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.138.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.141.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -117,7 +240,7 @@ GstSoupHTTPSrc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.138.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.141.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -148,7 +271,10 @@ GstSoupHTTPSrc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-souphttpsrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-souphttpsrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-souphttpsrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSoupHTTPSrc-struct"></a><h3>struct GstSoupHTTPSrc</h3> <pre class="programlisting">struct GstSoupHTTPSrc;</pre> @@ -159,126 +285,200 @@ GstSoupHTTPSrc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-souphttpsrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstSoupHTTPSrc--automatic-redirect"></a><h3>The <code class="literal">"automatic-redirect"</code> property</h3> -<pre class="programlisting"> "automatic-redirect" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSoupHTTPSrc--automatic-redirect"></a><h3>The <code class="literal">“automatic-redirectâ€</code> property</h3> +<pre class="programlisting"> “automatic-redirect†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Automatically follow HTTP redirects (HTTP Status Code 3xx).</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--cookies"></a><h3>The <code class="literal">"cookies"</code> property</h3> -<pre class="programlisting"> "cookies" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a> : Read / Write</pre> +<a name="GstSoupHTTPSrc--cookies"></a><h3>The <code class="literal">“cookiesâ€</code> property</h3> +<pre class="programlisting"> “cookies†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a></pre> <p>HTTP request cookies.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--iradio-genre"></a><h3>The <code class="literal">"iradio-genre"</code> property</h3> -<pre class="programlisting"> "iradio-genre" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstSoupHTTPSrc--iradio-genre"></a><h3>The <code class="literal">“iradio-genreâ€</code> property</h3> +<pre class="programlisting"> “iradio-genre†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Genre of the stream.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--iradio-mode"></a><h3>The <code class="literal">"iradio-mode"</code> property</h3> -<pre class="programlisting"> "iradio-mode" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSoupHTTPSrc--iradio-mode"></a><h3>The <code class="literal">“iradio-modeâ€</code> property</h3> +<pre class="programlisting"> “iradio-mode†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable internet radio mode (ask server to send shoutcast/icecast metadata interleaved with the actual stream data).</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--iradio-name"></a><h3>The <code class="literal">"iradio-name"</code> property</h3> -<pre class="programlisting"> "iradio-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstSoupHTTPSrc--iradio-name"></a><h3>The <code class="literal">“iradio-nameâ€</code> property</h3> +<pre class="programlisting"> “iradio-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Name of the stream.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--iradio-title"></a><h3>The <code class="literal">"iradio-title"</code> property</h3> -<pre class="programlisting"> "iradio-title" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstSoupHTTPSrc--iradio-title"></a><h3>The <code class="literal">“iradio-titleâ€</code> property</h3> +<pre class="programlisting"> “iradio-title†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Name of currently playing song.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--iradio-url"></a><h3>The <code class="literal">"iradio-url"</code> property</h3> -<pre class="programlisting"> "iradio-url" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstSoupHTTPSrc--iradio-url"></a><h3>The <code class="literal">“iradio-urlâ€</code> property</h3> +<pre class="programlisting"> “iradio-url†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Homepage URL for radio stream.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--location"></a><h3>The <code class="literal">"location"</code> property</h3> -<pre class="programlisting"> "location" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--location"></a><h3>The <code class="literal">“locationâ€</code> property</h3> +<pre class="programlisting"> “location†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Location to read from.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--proxy"></a><h3>The <code class="literal">"proxy"</code> property</h3> -<pre class="programlisting"> "proxy" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--proxy"></a><h3>The <code class="literal">“proxyâ€</code> property</h3> +<pre class="programlisting"> “proxy†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>HTTP proxy server URI.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--user-agent"></a><h3>The <code class="literal">"user-agent"</code> property</h3> -<pre class="programlisting"> "user-agent" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--user-agent"></a><h3>The <code class="literal">“user-agentâ€</code> property</h3> +<pre class="programlisting"> “user-agent†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Value of the User-Agent HTTP request header field.</p> +<p>Flags: Read / Write</p> <p>Default value: "GStreamer souphttpsrc "</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--is-live"></a><h3>The <code class="literal">"is-live"</code> property</h3> -<pre class="programlisting"> "is-live" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSoupHTTPSrc--is-live"></a><h3>The <code class="literal">“is-liveâ€</code> property</h3> +<pre class="programlisting"> “is-live†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Act like a live source.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--proxy-id"></a><h3>The <code class="literal">"proxy-id"</code> property</h3> -<pre class="programlisting"> "proxy-id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--proxy-id"></a><h3>The <code class="literal">“proxy-idâ€</code> property</h3> +<pre class="programlisting"> “proxy-id†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>HTTP proxy URI user id for authentication.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--proxy-pw"></a><h3>The <code class="literal">"proxy-pw"</code> property</h3> -<pre class="programlisting"> "proxy-pw" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--proxy-pw"></a><h3>The <code class="literal">“proxy-pwâ€</code> property</h3> +<pre class="programlisting"> “proxy-pw†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>HTTP proxy URI user password for authentication.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--user-id"></a><h3>The <code class="literal">"user-id"</code> property</h3> -<pre class="programlisting"> "user-id" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--user-id"></a><h3>The <code class="literal">“user-idâ€</code> property</h3> +<pre class="programlisting"> “user-id†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>HTTP location URI user id for authentication.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--user-pw"></a><h3>The <code class="literal">"user-pw"</code> property</h3> -<pre class="programlisting"> "user-pw" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--user-pw"></a><h3>The <code class="literal">“user-pwâ€</code> property</h3> +<pre class="programlisting"> “user-pw†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>HTTP location URI user password for authentication.</p> +<p>Flags: Read / Write</p> <p>Default value: ""</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--extra-headers"></a><h3>The <code class="literal">"extra-headers"</code> property</h3> -<pre class="programlisting"> "extra-headers" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstSoupHTTPSrc--extra-headers"></a><h3>The <code class="literal">“extra-headersâ€</code> property</h3> +<pre class="programlisting"> “extra-headers†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>Extra headers to append to the HTTP request.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstSoupHTTPSrc--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3> -<pre class="programlisting"> "timeout" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstSoupHTTPSrc--timeout"></a><h3>The <code class="literal">“timeoutâ€</code> property</h3> +<pre class="programlisting"> “timeout†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Value in seconds to timeout a blocking I/O (0 = No timeout).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 3600</p> -<p>Default value: 0</p> +<p>Default value: 15</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstSoupHTTPSrc--compress"></a><h3>The <code class="literal">“compressâ€</code> property</h3> +<pre class="programlisting"> “compress†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Allow compressed content encodings.</p> +<p>Flags: Read / Write</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstSoupHTTPSrc--http-log-level"></a><h3>The <code class="literal">“http-log-levelâ€</code> property</h3> +<pre class="programlisting"> “http-log-level†<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupLogger.html#SoupLoggerLogLevel"><span class="type">SoupLoggerLogLevel</span></a></pre> +<p>Set log level for soup's HTTP session log.</p> +<p>Flags: Read / Write</p> +<p>Default value: SOUP_LOGGER_LOG_HEADERS</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstSoupHTTPSrc--keep-alive"></a><h3>The <code class="literal">“keep-aliveâ€</code> property</h3> +<pre class="programlisting"> “keep-alive†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Use HTTP persistent connections.</p> +<p>Flags: Read / Write</p> +<p>Default value: FALSE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstSoupHTTPSrc--retries"></a><h3>The <code class="literal">“retriesâ€</code> property</h3> +<pre class="programlisting"> “retries†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> +<p>Maximum number of retries until giving up (-1=infinite).</p> +<p>Flags: Read / Write</p> +<p>Allowed values: >= G_MAXULONG</p> +<p>Default value: 3</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstSoupHTTPSrc--ssl-ca-file"></a><h3>The <code class="literal">“ssl-ca-fileâ€</code> property</h3> +<pre class="programlisting"> “ssl-ca-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> +<p>Location of a SSL anchor CA file to use.</p> +<p>Flags: Read / Write</p> +<p>Default value: NULL</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstSoupHTTPSrc--ssl-strict"></a><h3>The <code class="literal">“ssl-strictâ€</code> property</h3> +<pre class="programlisting"> “ssl-strict†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Strict SSL certificate checking.</p> +<p>Flags: Read / Write</p> +<p>Default value: TRUE</p> +</div> +<hr> +<div class="refsect2"> +<a name="GstSoupHTTPSrc--ssl-use-system-ca-file"></a><h3>The <code class="literal">“ssl-use-system-ca-fileâ€</code> property</h3> +<pre class="programlisting"> “ssl-use-system-ca-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>Use system CA file.</p> +<p>Flags: Read / Write</p> +<p>Default value: TRUE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 ac00d3b16..000766b4f 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html +++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>spectrum</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: spectrum</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-souphttpsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-speexenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-spectrum.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-spectrum.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-spectrum.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-spectrum.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-spectrum.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-spectrum.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-spectrum.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-souphttpsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-speexenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-spectrum"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,50 +31,92 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-spectrum.top_of_page"></a>spectrum</span></h2> <p>spectrum — Run an FFT on the audio signal, output spectrum data</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-spectrum.synopsis"></a><h2>Synopsis</h2> -<a name="GstSpectrum"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct" title="struct GstSpectrum">GstSpectrum</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-spectrum.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> - +----GstSpectrum -</pre> +<a name="gst-plugins-good-plugins-spectrum.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands" title="The “bands†property">bands</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval" title="The “interval†property">interval</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message" title="The “message†property">message</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--threshold" title="The “threshold†property">threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-magnitude" title="The “message-magnitude†property">message-magnitude</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase" title="The “message-phase†property">message-phase</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages" title="The “post-messages†property">post-messages</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel" title="The “multi-channel†property">multi-channel</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstSpectrum"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-spectrum.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct" title="struct GstSpectrum">GstSpectrum</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-spectrum.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands" title='The "bands" property'>bands</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval" title='The "interval" property'>interval</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message" title='The "message" property'>message</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--threshold" title='The "threshold" property'>threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-magnitude" title='The "message-magnitude" property'>message-magnitude</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase" title='The "message-phase" property'>message-phase</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages" title='The "post-messages" property'>post-messages</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel" title='The "multi-channel" property'>multi-channel</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-spectrum.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a> + <span class="lineart">╰──</span> GstSpectrum </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-spectrum.description"></a><h2>Description</h2> -<p> -The Spectrum element analyzes the frequency spectrum of an audio signal. -If the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages" title='The "post-messages" property'><span class="type">"post-messages"</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, it sends analysis results -as element messages named +<p>The Spectrum element analyzes the frequency spectrum of an audio signal. +If the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages" title="The “post-messages†property"><span class="type">“post-messagesâ€</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, it sends analysis results +as element messages named</p> <code class="classname">"spectrum"</code> after each interval of time given -by the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval" title='The "interval" property'><span class="type">"interval"</span></a> property. -</p> -<p> -The message's structure contains some combination of these fields: -</p> +<p>by the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval" title="The “interval†property"><span class="type">“intervalâ€</span></a> property.</p> +<p>The message's structure contains some combination of these fields:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem"><p> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> @@ -112,27 +148,21 @@ The message's structure contains some combination of these fields: <span class="type">GstValueList</span> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <code class="classname">"magnitude"</code>: the level for each frequency band in dB. All values below the value of the - <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--threshold" title='The "threshold" property'><span class="type">"threshold"</span></a> property will be set to the threshold. Only present - if the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-magnitude" title='The "message-magnitude" property'><span class="type">"message-magnitude"</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. + <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--threshold" title="The “threshold†property"><span class="type">“thresholdâ€</span></a> property will be set to the threshold. Only present + if the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-magnitude" title="The “message-magnitude†property"><span class="type">“message-magnitudeâ€</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. </p></li> <li class="listitem"><p> <span class="type">GstValueList</span> of <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <code class="classname">"phase"</code>: The phase for each frequency band. The value is between -pi and pi. Only - present if the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase" title='The "message-phase" property'><span class="type">"message-phase"</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. + present if the <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase" title="The “message-phase†property"><span class="type">“message-phaseâ€</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. </p></li> </ul></div> -<p> -</p> -<p> -If <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel" title='The "multi-channel" property'><span class="type">"multi-channel"</span></a> property is set to true. magnitude and phase +<p>If <a class="link" href="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel" title="The “multi-channel†property"><span class="type">“multi-channelâ€</span></a> property is set to true. magnitude and phase fields will be each a nested <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstControlSource.html#GstValueArray"><span class="type">GstValueArray</span></a>. The first dimension are the -channels and the second dimension are the values. -</p> -<p> -</p> +channels and the second dimension are the values.</p> <div class="refsect2"> -<a name="id-1.2.139.6.5.1"></a><h3>Example application</h3> +<a name="id-1.2.142.7.8"></a><h3>Example application</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -391,15 +421,10 @@ channels and the second dimension are the values. </div> </div> -<p> -</p> -<p> -Last reviewed on 2011-03-10 (0.10.29) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.139.6.7.1"></a><h3>Element Information</h3> +<a name="id-1.2.142.7.9.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -425,7 +450,7 @@ Last reviewed on 2011-03-10 (0.10.29) </div> <hr> <div class="refsect2"> -<a name="id-1.2.139.6.7.2"></a><h3>Element Pads</h3> +<a name="id-1.2.142.7.9.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -480,7 +505,10 @@ Last reviewed on 2011-03-10 (0.10.29) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-spectrum.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-spectrum.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-spectrum.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSpectrum-struct"></a><h3>struct GstSpectrum</h3> <pre class="programlisting">struct GstSpectrum;</pre> @@ -491,66 +519,74 @@ Last reviewed on 2011-03-10 (0.10.29) <div class="refsect1"> <a name="gst-plugins-good-plugins-spectrum.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstSpectrum--bands"></a><h3>The <code class="literal">"bands"</code> property</h3> -<pre class="programlisting"> "bands" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstSpectrum--bands"></a><h3>The <code class="literal">“bandsâ€</code> property</h3> +<pre class="programlisting"> “bands†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Number of frequency bands.</p> +<p>Flags: Read / Write</p> <p>Default value: 128</p> </div> <hr> <div class="refsect2"> -<a name="GstSpectrum--interval"></a><h3>The <code class="literal">"interval"</code> property</h3> -<pre class="programlisting"> "interval" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstSpectrum--interval"></a><h3>The <code class="literal">“intervalâ€</code> property</h3> +<pre class="programlisting"> “interval†<span class="type">guint64</span></pre> <p>Interval of time between message posts (in nanoseconds).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 100000000</p> </div> <hr> <div class="refsect2"> -<a name="GstSpectrum--message"></a><h3>The <code class="literal">"message"</code> property</h3> -<pre class="programlisting"> "message" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSpectrum--message"></a><h3>The <code class="literal">“messageâ€</code> property</h3> +<pre class="programlisting"> “message†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether to post a 'spectrum' element message on the bus for each passed interval (deprecated, use post-messages).</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstSpectrum--threshold"></a><h3>The <code class="literal">"threshold"</code> property</h3> -<pre class="programlisting"> "threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstSpectrum--threshold"></a><h3>The <code class="literal">“thresholdâ€</code> property</h3> +<pre class="programlisting"> “threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>dB threshold for result. All lower values will be set to this.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 0</p> <p>Default value: -60</p> </div> <hr> <div class="refsect2"> -<a name="GstSpectrum--message-magnitude"></a><h3>The <code class="literal">"message-magnitude"</code> property</h3> -<pre class="programlisting"> "message-magnitude" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSpectrum--message-magnitude"></a><h3>The <code class="literal">“message-magnitudeâ€</code> property</h3> +<pre class="programlisting"> “message-magnitude†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether to add a 'magnitude' field to the structure of any 'spectrum' element messages posted on the bus.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstSpectrum--message-phase"></a><h3>The <code class="literal">"message-phase"</code> property</h3> -<pre class="programlisting"> "message-phase" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSpectrum--message-phase"></a><h3>The <code class="literal">“message-phaseâ€</code> property</h3> +<pre class="programlisting"> “message-phase†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether to add a 'phase' field to the structure of any 'spectrum' element messages posted on the bus.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstSpectrum--post-messages"></a><h3>The <code class="literal">"post-messages"</code> property</h3> -<pre class="programlisting"> "post-messages" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSpectrum--post-messages"></a><h3>The <code class="literal">“post-messagesâ€</code> property</h3> +<pre class="programlisting"> “post-messages†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether to post a 'spectrum' element message on the bus for each passed interval.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstSpectrum--multi-channel"></a><h3>The <code class="literal">"multi-channel"</code> property</h3> -<pre class="programlisting"> "multi-channel" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSpectrum--multi-channel"></a><h3>The <code class="literal">“multi-channelâ€</code> property</h3> +<pre class="programlisting"> “multi-channel†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Send separate results for each channel.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f963b2b5d..2e022736e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>speexdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: speexdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-speexenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-speexdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-speexdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-speexdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-speexdec.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-speexdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-speexdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-speexdec.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-speexenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-speexdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,28 +31,44 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-speexdec.top_of_page"></a>speexdec</span></h2> <p>speexdec — decode speex streams to audio</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-speexdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstSpeexDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct" title="struct GstSpeexDec">GstSpeexDec</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-speexdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> - +----GstSpeexDec -</pre> +<a name="gst-plugins-good-plugins-speexdec.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh" title="The “enh†property">enh</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstSpeexDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-speexdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct" title="struct GstSpeexDec">GstSpeexDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-speexdec.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh" title='The "enh" property'>enh</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-speexdec.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> + <span class="lineart">╰──</span> GstSpeexDec </pre> </div> <div class="refsect1"> @@ -66,7 +76,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.141.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.144.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -92,7 +102,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.141.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.144.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -147,7 +157,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-speexdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-speexdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-speexdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSpeexDec-struct"></a><h3>struct GstSpeexDec</h3> <pre class="programlisting">struct GstSpeexDec;</pre> @@ -158,15 +171,16 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-speexdec.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstSpeexDec--enh"></a><h3>The <code class="literal">"enh"</code> property</h3> -<pre class="programlisting"> "enh" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstSpeexDec--enh"></a><h3>The <code class="literal">“enhâ€</code> property</h3> +<pre class="programlisting"> “enh†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable perceptual enhancement.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 6704265da..46958166e 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>speexenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: speexenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-spectrum.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-speexdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-speexenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-speexenc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-speexenc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-speexenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-speexenc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-speexenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-speexenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-speexenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-speexenc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-spectrum.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-speexdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-speexenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,92 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-speexenc.top_of_page"></a>speexenc</span></h2> <p>speexenc — Encodes audio in Speex format</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-speexenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstSpeexEnc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct" title="struct GstSpeexEnc">GstSpeexEnc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-speexenc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr" title="The “abr†property">abr</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate" title="The “bitrate†property">bitrate</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--complexity" title="The “complexity†property">complexity</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--dtx" title="The “dtx†property">dtx</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--last-message" title="The “last-message†property">last-message</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--nframes" title="The “nframes†property">nframes</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--quality" title="The “quality†property">quality</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad" title="The “vad†property">vad</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr" title="The “vbr†property">vbr</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstSpeexEncMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstSpeexEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-speexenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct" title="struct GstSpeexEnc">GstSpeexEnc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-speexenc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a> - +----GstSpeexEnc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a> + <span class="lineart">╰──</span> GstSpeexEnc </pre> </div> <div class="refsect1"> @@ -64,26 +127,11 @@ GstSpeexEnc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-speexenc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr" title='The "abr" property'>abr</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate" title='The "bitrate" property'>bitrate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--complexity" title='The "complexity" property'>complexity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--dtx" title='The "dtx" property'>dtx</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--last-message" title='The "last-message" property'>last-message</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--nframes" title='The "nframes" property'>nframes</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--quality" title='The "quality" property'>quality</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad" title='The "vad" property'>vad</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr" title='The "vbr" property'>vbr</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct - "<a class="link" href="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode" title='The "mode" property'>mode</a>" <span class="type">GstSpeexEncMode</span> : Read / Write / Construct -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-speexenc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.140.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.143.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -109,7 +157,7 @@ GstSpeexEnc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.140.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.143.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -168,7 +216,10 @@ GstSpeexEnc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-speexenc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-speexenc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-speexenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSpeexEnc-struct"></a><h3>struct GstSpeexEnc</h3> <pre class="programlisting">struct GstSpeexEnc;</pre> @@ -179,83 +230,93 @@ GstSpeexEnc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-speexenc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstSpeexEnc--abr"></a><h3>The <code class="literal">"abr"</code> property</h3> -<pre class="programlisting"> "abr" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--abr"></a><h3>The <code class="literal">“abrâ€</code> property</h3> +<pre class="programlisting"> “abr†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Enable average bit-rate (0 = disabled).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--bitrate"></a><h3>The <code class="literal">"bitrate"</code> property</h3> -<pre class="programlisting"> "bitrate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--bitrate"></a><h3>The <code class="literal">“bitrateâ€</code> property</h3> +<pre class="programlisting"> “bitrate†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Specify an encoding bit-rate (in bps). (0 = automatic).</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--complexity"></a><h3>The <code class="literal">"complexity"</code> property</h3> -<pre class="programlisting"> "complexity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--complexity"></a><h3>The <code class="literal">“complexityâ€</code> property</h3> +<pre class="programlisting"> “complexity†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Set encoding complexity.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= 0</p> <p>Default value: 3</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--dtx"></a><h3>The <code class="literal">"dtx"</code> property</h3> -<pre class="programlisting"> "dtx" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--dtx"></a><h3>The <code class="literal">“dtxâ€</code> property</h3> +<pre class="programlisting"> “dtx†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable discontinuous transmission.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--last-message"></a><h3>The <code class="literal">"last-message"</code> property</h3> -<pre class="programlisting"> "last-message" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstSpeexEnc--last-message"></a><h3>The <code class="literal">“last-messageâ€</code> property</h3> +<pre class="programlisting"> “last-message†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The last status message.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--nframes"></a><h3>The <code class="literal">"nframes"</code> property</h3> -<pre class="programlisting"> "nframes" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--nframes"></a><h3>The <code class="literal">“nframesâ€</code> property</h3> +<pre class="programlisting"> “nframes†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of frames per buffer.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: >= 0</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--quality"></a><h3>The <code class="literal">"quality"</code> property</h3> -<pre class="programlisting"> "quality" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--quality"></a><h3>The <code class="literal">“qualityâ€</code> property</h3> +<pre class="programlisting"> “quality†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Encoding quality.</p> +<p>Flags: Read / Write / Construct</p> <p>Allowed values: [0,10]</p> <p>Default value: 8</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--vad"></a><h3>The <code class="literal">"vad"</code> property</h3> -<pre class="programlisting"> "vad" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--vad"></a><h3>The <code class="literal">“vadâ€</code> property</h3> +<pre class="programlisting"> “vad†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable voice activity detection.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--vbr"></a><h3>The <code class="literal">"vbr"</code> property</h3> -<pre class="programlisting"> "vbr" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--vbr"></a><h3>The <code class="literal">“vbrâ€</code> property</h3> +<pre class="programlisting"> “vbr†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable variable bit-rate.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstSpeexEnc--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstSpeexEncMode</span> : Read / Write / Construct</pre> +<a name="GstSpeexEnc--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstSpeexEncMode</span></pre> <p>The encoding mode.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: Auto</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 68cdce8d1..bfc5b6bc6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>splitfilesrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: splitfilesrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-speexdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-streaktv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-splitfilesrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-splitfilesrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-splitfilesrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-splitfilesrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-splitfilesrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-splitfilesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-splitfilesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-splitfilesrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-splitfilesrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-speexdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-streaktv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-splitfilesrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,45 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-splitfilesrc.top_of_page"></a>splitfilesrc</span></h2> <p>splitfilesrc — Read a sequentially named set of files as if it was one large file</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-splitfilesrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstSplitFileSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct" title="struct GstSplitFileSrc">GstSplitFileSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-splitfilesrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location" title="The “location†property">location</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstSplitFileSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-splitfilesrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct" title="struct GstSplitFileSrc">GstSplitFileSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-splitfilesrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----GstSplitFileSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> GstSplitFileSrc </pre> </div> <div class="refsect1"> @@ -64,28 +80,16 @@ GstSplitFileSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-splitfilesrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location" title='The "location" property'>location</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"> <a name="gst-plugins-good-plugins-splitfilesrc.description"></a><h2>Description</h2> -<p> -Reads data from multiple files, presenting those files as one continuous +<p>Reads data from multiple files, presenting those files as one continuous file to downstream elements. This is useful for reading a large file that had to be split into multiple parts due to filesystem file size limitations, -for example. -</p> -<p> -The files to select are chosen via the location property, which supports +for example.</p> +<p>The files to select are chosen via the location property, which supports (and expects) shell-style wildcards (but only for the filename, not for -directories). The results will be sorted. -</p> -<p> -</p> +directories). The results will be sorted.</p> <div class="refsect2"> -<a name="id-1.2.142.7.4.1"></a><h3>Example launch lines</h3> +<a name="id-1.2.145.8.4"></a><h3>Example launch lines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -109,12 +113,10 @@ directories). The results will be sorted. </div> Plays the different parts as if they were one single AVI file. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.142.7.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.145.8.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -140,7 +142,7 @@ directories). The results will be sorted. </div> <hr> <div class="refsect2"> -<a name="id-1.2.142.7.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.145.8.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -171,7 +173,10 @@ directories). The results will be sorted. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-splitfilesrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-splitfilesrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-splitfilesrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstSplitFileSrc-struct"></a><h3>struct GstSplitFileSrc</h3> <pre class="programlisting">struct GstSplitFileSrc;</pre> @@ -182,19 +187,20 @@ directories). The results will be sorted. <div class="refsect1"> <a name="gst-plugins-good-plugins-splitfilesrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstSplitFileSrc--location"></a><h3>The <code class="literal">"location"</code> property</h3> -<pre class="programlisting"> "location" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstSplitFileSrc--location"></a><h3>The <code class="literal">“locationâ€</code> property</h3> +<pre class="programlisting"> “location†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Wildcard pattern to match file names of the input files. If the location is an absolute path or contains directory components, only the base file name part will be considered for pattern matching. The results will be sorted.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-splitfilesrc.see-also"></a><h2>See Also</h2> -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc"><span class="type">GstMultiFileSrc</span></a> +<p><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a class="link" href="gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc"><span class="type">GstMultiFileSrc</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 890eb5fa3..7b7d2715a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>streaktv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: streaktv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-taginject.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-streaktv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-streaktv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-streaktv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-streaktv.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-streaktv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-streaktv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-streaktv.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-taginject.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-streaktv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,40 +31,52 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-streaktv.top_of_page"></a>streaktv</span></h2> <p>streaktv — StreakTV makes after images of moving objects</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-streaktv.synopsis"></a><h2>Synopsis</h2> -<a name="GstStreakTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct" title="struct GstStreakTV">GstStreakTV</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-streaktv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstStreakTV -</pre> +<a name="gst-plugins-good-plugins-streaktv.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback" title="The “feedback†property">feedback</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstStreakTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-streaktv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct" title="struct GstStreakTV">GstStreakTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-streaktv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback" title='The "feedback" property'>feedback</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-streaktv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstStreakTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-streaktv.description"></a><h2>Description</h2> -<p> -StreakTV makes after images of moving objects. -</p> -<p> -</p> +<p>StreakTV makes after images of moving objects.</p> <div class="refsect2"> -<a name="id-1.2.143.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.146.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -83,12 +89,10 @@ StreakTV makes after images of moving objects. </div> This pipeline shows the effect of streaktv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.143.6.4.1"></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"> @@ -114,7 +118,7 @@ StreakTV makes after images of moving objects. </div> <hr> <div class="refsect2"> -<a name="id-1.2.143.6.4.2"></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"> @@ -169,7 +173,10 @@ StreakTV makes after images of moving objects. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-streaktv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-streaktv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-streaktv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstStreakTV-struct"></a><h3>struct GstStreakTV</h3> <pre class="programlisting">struct GstStreakTV;</pre> @@ -180,15 +187,16 @@ StreakTV makes after images of moving objects. <div class="refsect1"> <a name="gst-plugins-good-plugins-streaktv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstStreakTV--feedback"></a><h3>The <code class="literal">"feedback"</code> property</h3> -<pre class="programlisting"> "feedback" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstStreakTV--feedback"></a><h3>The <code class="literal">“feedbackâ€</code> property</h3> +<pre class="programlisting"> “feedback†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Feedback.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 aed0a926b..10efaa87b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-taginject.html +++ b/docs/plugins/html/gst-plugins-good-plugins-taginject.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>taginject</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: taginject</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-streaktv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-udpsrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-taginject.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-taginject.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-taginject.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-taginject.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-taginject.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-taginject.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-taginject.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-streaktv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-udpsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-taginject"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,40 +31,53 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-taginject.top_of_page"></a>taginject</span></h2> <p>taginject — inject metadata tags</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-taginject.synopsis"></a><h2>Synopsis</h2> -<a name="GstTagInject"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-taginject.html#GstTagInject-struct" title="struct GstTagInject">GstTagInject</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-taginject.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----GstTagInject -</pre> +<a name="gst-plugins-good-plugins-taginject.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-taginject.html#GstTagInject--tags" title="The “tags†property">tags</a></td> +<td class="property_flags">Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstTagInject"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-taginject.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-taginject.html#GstTagInject-struct" title="struct GstTagInject">GstTagInject</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-taginject.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-taginject.html#GstTagInject--tags" title='The "tags" property'>tags</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Write +<a name="gst-plugins-good-plugins-taginject.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> GstTagInject </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-taginject.description"></a><h2>Description</h2> -<p> -Element that injects new metadata tags, but passes incomming data through -unmodified. -</p> -<p> -</p> +<p>Element that injects new metadata tags, but passes incomming data through +unmodified.</p> <div class="refsect2"> -<a name="id-1.2.144.6.3.1"></a><h3>Example launch lines</h3> +<a name="id-1.2.147.7.3"></a><h3>Example launch lines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -94,12 +101,10 @@ unmodified. </div> set keywords and title demonstrating quoting of special chars and handling lists </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.144.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.147.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -125,7 +130,7 @@ unmodified. </div> <hr> <div class="refsect2"> -<a name="id-1.2.144.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.147.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -180,27 +185,29 @@ unmodified. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-taginject.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-taginject.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-taginject.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstTagInject-struct"></a><h3>struct GstTagInject</h3> <pre class="programlisting">struct GstTagInject;</pre> -<p> -Opaque <a class="link" href="gst-plugins-good-plugins-taginject.html#GstTagInject"><span class="type">GstTagInject</span></a> data structure -</p> +<p>Opaque <a class="link" href="gst-plugins-good-plugins-taginject.html#GstTagInject"><span class="type">GstTagInject</span></a> data structure</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-taginject.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstTagInject--tags"></a><h3>The <code class="literal">"tags"</code> property</h3> -<pre class="programlisting"> "tags" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Write</pre> +<a name="GstTagInject--tags"></a><h3>The <code class="literal">“tagsâ€</code> property</h3> +<pre class="programlisting"> “tags†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>List of tags to inject into the target file.</p> +<p>Flags: Write</p> <p>Default value: NULL</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 d6b6de23f..859c72f8a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>udpsink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: udpsink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-udpsrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2src.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-udpsink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-udpsink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-udpsink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-udpsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-udpsink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-udpsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-udpsink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,23 +32,53 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-udpsink.top_of_page"></a>udpsink</span></h2> <p>udpsink — Send data over the network via UDP</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-udpsink.synopsis"></a><h2>Synopsis</h2> -<a name="GstUDPSink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct" title="struct GstUDPSink">GstUDPSink</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-udpsink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host" title="The “host†property">host</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port" title="The “port†property">port</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstUDPSink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-udpsink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct" title="struct GstUDPSink">GstUDPSink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-udpsink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink">GstMultiUDPSink</a> - +----GstUDPSink +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink">GstMultiUDPSink</a> + <span class="lineart">╰──</span> GstUDPSink </pre> </div> <div class="refsect1"> @@ -65,22 +88,11 @@ GstUDPSink implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-udpsink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host" title='The "host" property'>host</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-udpsink.html#GstUDPSink--port" title='The "port" property'>port</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-udpsink.description"></a><h2>Description</h2> -<p> -udpsink is a network sink that sends UDP packets to the network. -It can be combined with RTP payloaders to implement RTP streaming. -</p> -<p> -</p> +<p>udpsink is a network sink that sends UDP packets to the network. +It can be combined with RTP payloaders to implement RTP streaming.</p> <div class="refsect2"> -<a name="id-1.2.146.7.3.1"></a><h3>Examples</h3> +<a name="id-1.2.149.8.3"></a><h3>Examples</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -93,12 +105,10 @@ It can be combined with RTP payloaders to implement RTP streaming. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.146.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.149.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -124,7 +134,7 @@ It can be combined with RTP payloaders to implement RTP streaming. </div> <hr> <div class="refsect2"> -<a name="id-1.2.146.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.149.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -155,7 +165,10 @@ It can be combined with RTP payloaders to implement RTP streaming. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-udpsink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-udpsink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-udpsink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstUDPSink-struct"></a><h3>struct GstUDPSink</h3> <pre class="programlisting">struct GstUDPSink;</pre> @@ -166,27 +179,29 @@ It can be combined with RTP payloaders to implement RTP streaming. <div class="refsect1"> <a name="gst-plugins-good-plugins-udpsink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstUDPSink--host"></a><h3>The <code class="literal">"host"</code> property</h3> -<pre class="programlisting"> "host" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstUDPSink--host"></a><h3>The <code class="literal">“hostâ€</code> property</h3> +<pre class="programlisting"> “host†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The host/IP/Multicast group to send the packets to.</p> +<p>Flags: Read / Write</p> <p>Default value: "localhost"</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSink--port"></a><h3>The <code class="literal">"port"</code> property</h3> -<pre class="programlisting"> "port" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstUDPSink--port"></a><h3>The <code class="literal">“portâ€</code> property</h3> +<pre class="programlisting"> “port†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The port to send the packets to.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,65535]</p> <p>Default value: 5004</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-udpsink.see-also"></a><h2>See Also</h2> -udpsrc, multifdsink +<p>udpsrc, multifdsink</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 38a7fccfd..7f243c249 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>udpsrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: udpsrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-taginject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-udpsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-udpsrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-udpsrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-udpsrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-udpsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-udpsrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-udpsrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-taginject.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-udpsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-udpsrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,23 +32,140 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-udpsrc.top_of_page"></a>udpsrc</span></h2> <p>udpsrc — Receive data over the network via UDP</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-udpsrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstUDPSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct" title="struct GstUDPSrc">GstUDPSrc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-udpsrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps" title="The “caps†property">caps</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group" title="The “multicast-group†property">multicast-group</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--port" title="The “port†property">port</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--uri" title="The “uri†property">uri</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sockfd" title="The “sockfd†property">sockfd</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--buffer-size" title="The “buffer-size†property">buffer-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--timeout" title="The “timeout†property">timeout</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--closefd" title="The “closefd†property">closefd</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--skip-first-bytes" title="The “skip-first-bytes†property">skip-first-bytes</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sock" title="The “sock†property">sock</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--auto-multicast" title="The “auto-multicast†property">auto-multicast</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-iface" title="The “multicast-iface†property">multicast-iface</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--reuse" title="The “reuse†property">reuse</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket" title="The “close-socket†property">close-socket</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--socket" title="The “socket†property">socket</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket" title="The “used-socket†property">used-socket</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address" title="The “bind-address†property">bind-address</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address" title="The “address†property">address</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstUDPSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-udpsrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct" title="struct GstUDPSrc">GstUDPSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-udpsrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----GstUDPSrc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> GstUDPSrc </pre> </div> <div class="refsect1"> @@ -65,104 +175,54 @@ GstUDPSrc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-udpsrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps" title='The "caps" property'>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-udpsrc.html#GstUDPSrc--multicast-group" title='The "multicast-group" property'>multicast-group</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--port" title='The "port" property'>port</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--uri" title='The "uri" property'>uri</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--sockfd" title='The "sockfd" property'>sockfd</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--buffer-size" title='The "buffer-size" property'>buffer-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--timeout" title='The "timeout" property'>timeout</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--closefd" title='The "closefd" property'>closefd</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--skip-first-bytes" title='The "skip-first-bytes" property'>skip-first-bytes</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sock" title='The "sock" property'>sock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--auto-multicast" title='The "auto-multicast" property'>auto-multicast</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-iface" title='The "multicast-iface" property'>multicast-iface</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--reuse" title='The "reuse" property'>reuse</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket" title='The "close-socket" property'>close-socket</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<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"> <a name="gst-plugins-good-plugins-udpsrc.description"></a><h2>Description</h2> -<p> -udpsrc is a network source that reads UDP packets from the network. -It can be combined with RTP depayloaders to implement RTP streaming. -</p> -<p> -The udpsrc element supports automatic port allocation by setting the -<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--port" title='The "port" property'><span class="type">"port"</span></a> property to 0. After setting the udpsrc to PAUSED, the -allocated port can be obtained by reading the port property. -</p> -<p> -udpsrc can read from multicast groups by setting the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group" title='The "multicast-group" property'><span class="type">"multicast-group"</span></a> -property to the IP address of the multicast group. -</p> -<p> -Alternatively one can provide a custom socket to udpsrc with the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sockfd" title='The "sockfd" property'><span class="type">"sockfd"</span></a> +<p>udpsrc is a network source that reads UDP packets from the network. +It can be combined with RTP depayloaders to implement RTP streaming.</p> +<p>The udpsrc element supports automatic port allocation by setting the +<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--port" title="The “port†property"><span class="type">“portâ€</span></a> property to 0. After setting the udpsrc to PAUSED, the +allocated port can be obtained by reading the port property.</p> +<p>udpsrc can read from multicast groups by setting the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group" title="The “multicast-group†property"><span class="type">“multicast-groupâ€</span></a> +property to the IP address of the multicast group.</p> +<p>Alternatively one can provide a custom socket to udpsrc with the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sockfd" title="The “sockfd†property"><span class="type">“sockfdâ€</span></a> property, udpsrc will then not allocate a socket itself but use the provided -one. -</p> -<p> -The <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps" title='The "caps" property'><span class="type">"caps"</span></a> property is mainly used to give a type to the UDP packet +one.</p> +<p>The <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps" title="The “caps†property"><span class="type">“capsâ€</span></a> property is mainly used to give a type to the UDP packet so that they can be autoplugged in GStreamer pipelines. This is very usefull for RTP implementations where the contents of the UDP packets is transfered -out-of-bounds using SDP or other means. -</p> -<p> -The <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--buffer-size" title='The "buffer-size" property'><span class="type">"buffer-size"</span></a> property is used to change the default kernel +out-of-bounds using SDP or other means.</p> +<p>The <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--buffer-size" title="The “buffer-size†property"><span class="type">“buffer-sizeâ€</span></a> property is used to change the default kernel buffersizes used for receiving packets. The buffer size may be increased for high-volume connections, or may be decreased to limit the possible backlog of incoming data. The system places an absolute limit on these values, on Linux, for example, the default buffer size is typically 50K and can be increased to -maximally 100K. -</p> -<p> -The <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--skip-first-bytes" title='The "skip-first-bytes" property'><span class="type">"skip-first-bytes"</span></a> property is used to strip off an arbitrary +maximally 100K.</p> +<p>The <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--skip-first-bytes" title="The “skip-first-bytes†property"><span class="type">“skip-first-bytesâ€</span></a> property is used to strip off an arbitrary number of bytes from the start of the raw udp packet and can be used to strip -off proprietary header, for example. -</p> -<p> -The udpsrc is always a live source. It does however not provide a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>, +off proprietary header, for example.</p> +<p>The udpsrc is always a live source. It does however not provide a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>, this is left for upstream elements such as an RTP session manager or demuxer (such as an MPEG demuxer). As with all live sources, the captured buffers -will have their timestamp set to the current running time of the pipeline. -</p> -<p> -udpsrc implements a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> interface that handles udp://host:port -type URIs. -</p> -<p> -If the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--timeout" title='The "timeout" property'><span class="type">"timeout"</span></a> property is set to a value bigger than 0, udpsrc -will generate an element message named -<code class="classname">"GstUDPSrcTimeout"</code> -if no data was recieved in the given timeout. -The message's structure contains one field: -</p> +will have their timestamp set to the current running time of the pipeline.</p> +<p>udpsrc implements a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> interface that handles udp://host:port +type URIs.</p> +<p>If the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--timeout" title="The “timeout†property"><span class="type">“timeoutâ€</span></a> property is set to a value bigger than 0, udpsrc +will generate an element message named</p> +<code class="classname">"GstUDPSrcTimeout"</code><p>if no data was recieved in the given timeout. +The message's structure contains one field:</p> <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> <span class="type">guint64</span> <code class="classname">"timeout"</code>: the timeout in microseconds that expired when waiting for data. </p></li></ul></div> -<p> -The message is typically used to detect that no UDP arrives in the receiver -because it is blocked by a firewall. -</p> -<p> -A custom file descriptor can be configured with the -<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sockfd" title='The "sockfd" property'><span class="type">"sockfd"</span></a> property. The socket will be closed when setting the +<p>The message is typically used to detect that no UDP arrives in the receiver +because it is blocked by a firewall.</p> +<p>A custom file descriptor can be configured with the +<a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--sockfd" title="The “sockfd†property"><span class="type">“sockfdâ€</span></a> property. The socket will be closed when setting the element to READY by default. This behaviour can be -overriden with the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--closefd" title='The "closefd" property'><span class="type">"closefd"</span></a> property, in which case the application -is responsible for closing the file descriptor. -</p> -<p> -</p> +overriden with the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--closefd" title="The “closefd†property"><span class="type">“closefdâ€</span></a> property, in which case the application +is responsible for closing the file descriptor.</p> <div class="refsect2"> -<a name="id-1.2.145.7.13.1"></a><h3>Examples</h3> +<a name="id-1.2.148.8.17"></a><h3>Examples</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -200,15 +260,10 @@ above mentioned pipeline should dump data packets to the console. </div> read udp packets from a free port. </div> -<p> -</p> -<p> -Last reviewed on 2007-09-20 (0.10.7) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.145.7.15.1"></a><h3>Element Information</h3> +<a name="id-1.2.148.8.18.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -234,7 +289,7 @@ Last reviewed on 2007-09-20 (0.10.7) </div> <hr> <div class="refsect2"> -<a name="id-1.2.145.7.15.2"></a><h3>Element Pads</h3> +<a name="id-1.2.148.8.18.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -265,7 +320,10 @@ Last reviewed on 2007-09-20 (0.10.7) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-udpsrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-udpsrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-udpsrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstUDPSrc-struct"></a><h3>struct GstUDPSrc</h3> <pre class="programlisting">struct GstUDPSrc;</pre> @@ -276,140 +334,158 @@ Last reviewed on 2007-09-20 (0.10.7) <div class="refsect1"> <a name="gst-plugins-good-plugins-udpsrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstUDPSrc--caps"></a><h3>The <code class="literal">"caps"</code> property</h3> -<pre class="programlisting"> "caps" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write</pre> +<a name="GstUDPSrc--caps"></a><h3>The <code class="literal">“capsâ€</code> property</h3> +<pre class="programlisting"> “caps†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *</pre> <p>The caps of the source pad.</p> +<p>Flags: Read / Write</p> </div> <hr> <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> +<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> *</pre> <p>The Address of multicast group to join. DEPRECATED: Use address property instead.</p> +<p>Flags: Read / Write</p> <p>Default value: "0.0.0.0"</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--port"></a><h3>The <code class="literal">"port"</code> property</h3> -<pre class="programlisting"> "port" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstUDPSrc--port"></a><h3>The <code class="literal">“portâ€</code> property</h3> +<pre class="programlisting"> “port†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The port to receive the packets from, 0=allocate.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,65535]</p> <p>Default value: 5004</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--uri"></a><h3>The <code class="literal">"uri"</code> property</h3> -<pre class="programlisting"> "uri" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstUDPSrc--uri"></a><h3>The <code class="literal">“uriâ€</code> property</h3> +<pre class="programlisting"> “uri†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>URI in the form of udp://multicast_group:port.</p> +<p>Flags: Read / Write</p> <p>Default value: "udp://0.0.0.0:5004"</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--sockfd"></a><h3>The <code class="literal">"sockfd"</code> property</h3> -<pre class="programlisting"> "sockfd" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstUDPSrc--sockfd"></a><h3>The <code class="literal">“sockfdâ€</code> property</h3> +<pre class="programlisting"> “sockfd†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Socket to use for UDP reception. (-1 == allocate).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--buffer-size"></a><h3>The <code class="literal">"buffer-size"</code> property</h3> -<pre class="programlisting"> "buffer-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstUDPSrc--buffer-size"></a><h3>The <code class="literal">“buffer-sizeâ€</code> property</h3> +<pre class="programlisting"> “buffer-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Size of the kernel receive buffer in bytes, 0=default.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3> -<pre class="programlisting"> "timeout" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstUDPSrc--timeout"></a><h3>The <code class="literal">“timeoutâ€</code> property</h3> +<pre class="programlisting"> “timeout†<span class="type">guint64</span></pre> <p>Post a message after timeout nanoseconds (0 = disabled).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--closefd"></a><h3>The <code class="literal">"closefd"</code> property</h3> -<pre class="programlisting"> "closefd" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstUDPSrc--closefd"></a><h3>The <code class="literal">“closefdâ€</code> property</h3> +<pre class="programlisting"> “closefd†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Close sockfd if passed as property on state change.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--skip-first-bytes"></a><h3>The <code class="literal">"skip-first-bytes"</code> property</h3> -<pre class="programlisting"> "skip-first-bytes" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstUDPSrc--skip-first-bytes"></a><h3>The <code class="literal">“skip-first-bytesâ€</code> property</h3> +<pre class="programlisting"> “skip-first-bytes†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>number of bytes to skip for each udp packet.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--sock"></a><h3>The <code class="literal">"sock"</code> property</h3> -<pre class="programlisting"> "sock" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstUDPSrc--sock"></a><h3>The <code class="literal">“sockâ€</code> property</h3> +<pre class="programlisting"> “sock†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Socket currently in use for UDP reception. (-1 = no socket).</p> +<p>Flags: Read</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--auto-multicast"></a><h3>The <code class="literal">"auto-multicast"</code> property</h3> -<pre class="programlisting"> "auto-multicast" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstUDPSrc--auto-multicast"></a><h3>The <code class="literal">“auto-multicastâ€</code> property</h3> +<pre class="programlisting"> “auto-multicast†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Automatically join/leave multicast groups.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--multicast-iface"></a><h3>The <code class="literal">"multicast-iface"</code> property</h3> -<pre class="programlisting"> "multicast-iface" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstUDPSrc--multicast-iface"></a><h3>The <code class="literal">“multicast-ifaceâ€</code> property</h3> +<pre class="programlisting"> “multicast-iface†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>The network interface on which to join the multicast group.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--reuse"></a><h3>The <code class="literal">"reuse"</code> property</h3> -<pre class="programlisting"> "reuse" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstUDPSrc--reuse"></a><h3>The <code class="literal">“reuseâ€</code> property</h3> +<pre class="programlisting"> “reuse†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable reuse of the port.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--close-socket"></a><h3>The <code class="literal">"close-socket"</code> property</h3> -<pre class="programlisting"> "close-socket" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstUDPSrc--close-socket"></a><h3>The <code class="literal">“close-socketâ€</code> property</h3> +<pre class="programlisting"> “close-socket†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Close socket if passed as property on state change.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--socket"></a><h3>The <code class="literal">"socket"</code> property</h3> -<pre class="programlisting"> "socket" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read / Write</pre> +<a name="GstUDPSrc--socket"></a><h3>The <code class="literal">“socketâ€</code> property</h3> +<pre class="programlisting"> “socket†<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</pre> <p>Socket to use for UDP reception. (NULL == allocate).</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--used-socket"></a><h3>The <code class="literal">"used-socket"</code> property</h3> -<pre class="programlisting"> "used-socket" <a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a>* : Read</pre> +<a name="GstUDPSrc--used-socket"></a><h3>The <code class="literal">“used-socketâ€</code> property</h3> +<pre class="programlisting"> “used-socket†<a href="http://library.gnome.org/devel/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *</pre> <p>Socket currently in use for UDP reception. (NULL = no socket).</p> +<p>Flags: Read</p> </div> <hr> <div class="refsect2"> -<a name="GstUDPSrc--bind-address"></a><h3>The <code class="literal">"bind-address"</code> property</h3> -<pre class="programlisting"> "bind-address" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstUDPSrc--bind-address"></a><h3>The <code class="literal">“bind-addressâ€</code> property</h3> +<pre class="programlisting"> “bind-address†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Address to bind the socket to. This is equivalent to the multicast-group property.</p> +<p>Flags: Read / Write</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> +<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> *</pre> <p>Address to receive packets for. This is equivalent to the multicast-group property for now.</p> +<p>Flags: Read / Write</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> -udpsink, multifdsink +<p>udpsink, multifdsink</p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 d449fbffc..2d95d7e25 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>v4l2radio</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: v4l2radio</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2sink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-vertigotv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-v4l2radio.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-v4l2radio.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-v4l2radio.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-v4l2radio.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-v4l2radio.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2radio.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2radio.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2radio.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2radio.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2sink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-vertigotv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-v4l2radio"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,21 +32,51 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-v4l2radio.top_of_page"></a>v4l2radio</span></h2> <p>v4l2radio — Controls a Video4Linux2 radio device</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-v4l2radio.synopsis"></a><h2>Synopsis</h2> -<a name="GstV4l2Radio"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct" title="struct GstV4l2Radio">GstV4l2Radio</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2radio.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency" title="The “frequency†property">frequency</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstV4l2Radio"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2radio.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct" title="struct GstV4l2Radio">GstV4l2Radio</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2radio.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstV4l2Radio +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstV4l2Radio </pre> </div> <div class="refsect1"> @@ -63,18 +86,11 @@ GstV4l2Radio implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-v4l2radio.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device" title='The "device" property'>device</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-v4l2radio.html#GstV4l2Radio--frequency" title='The "frequency" property'>frequency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2radio.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.149.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.152.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -100,14 +116,17 @@ GstV4l2Radio implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.149.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.152.8.2.2"></a><h3>Element Pads</h3> </div> </div> <p> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-v4l2radio.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-v4l2radio.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2radio.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstV4l2Radio-struct"></a><h3>struct GstV4l2Radio</h3> <pre class="programlisting">struct GstV4l2Radio;</pre> @@ -118,16 +137,18 @@ GstV4l2Radio implements <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2radio.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstV4l2Radio--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstV4l2Radio--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Video4Linux2 radio device location.</p> +<p>Flags: Read / Write</p> <p>Default value: "/dev/radio0"</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Radio--frequency"></a><h3>The <code class="literal">"frequency"</code> property</h3> -<pre class="programlisting"> "frequency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Radio--frequency"></a><h3>The <code class="literal">“frequencyâ€</code> property</h3> +<pre class="programlisting"> “frequency†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Station frequency in Hz.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [87500000,108000000]</p> <p>Default value: 100000000</p> </div> @@ -135,6 +156,6 @@ GstV4l2Radio implements </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 ec878beac..1cb0524b2 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>v4l2sink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: v4l2sink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2src.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2radio.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-v4l2sink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-v4l2sink.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-v4l2sink.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-v4l2sink.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-v4l2sink.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2sink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2sink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2sink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2sink.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2src.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2radio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-v4l2sink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,23 +32,161 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-v4l2sink.top_of_page"></a>v4l2sink</span></h2> <p>v4l2sink — Displays frames on a video4linux2 device</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-v4l2sink.synopsis"></a><h2>Synopsis</h2> -<a name="GstV4l2Sink"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct" title="struct GstV4l2Sink">GstV4l2Sink</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2sink.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-fd" title="The “device-fd†property">device-fd</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstV4l2DeviceTypeFlags</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--flags" title="The “flags†property">flags</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-height" title="The “overlay-height†property">overlay-height</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-left" title="The “overlay-left†property">overlay-left</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-top" title="The “overlay-top†property">overlay-top</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-width" title="The “overlay-width†property">overlay-width</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--queue-size" title="The “queue-size†property">queue-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--brightness" title="The “brightness†property">brightness</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--contrast" title="The “contrast†property">contrast</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--hue" title="The “hue†property">hue</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--saturation" title="The “saturation†property">saturation</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-height" title="The “crop-height†property">crop-height</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-left" title="The “crop-left†property">crop-left</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-top" title="The “crop-top†property">crop-top</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-width" title="The “crop-width†property">crop-width</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs" title="The “min-queued-bufs†property">min-queued-bufs</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstV4l2IOMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode" title="The “io-mode†property">io-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">V4L2_TV_norms</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm" title="The “norm†property">norm</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls" title="The “extra-controls†property">extra-controls</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio" title="The “force-aspect-ratio†property">force-aspect-ratio</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio" title="The “pixel-aspect-ratio†property">pixel-aspect-ratio</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstV4l2Sink"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2sink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct" title="struct GstV4l2Sink">GstV4l2Sink</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2sink.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</a> - +----GstV4l2Sink +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</a> + <span class="lineart">╰──</span> GstV4l2Sink </pre> </div> <div class="refsect1"> @@ -65,39 +196,11 @@ GstV4l2Sink implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-v4l2sink.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device" title='The "device" property'>device</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-v4l2sink.html#GstV4l2Sink--device-fd" title='The "device-fd" property'>device-fd</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--flags" title='The "flags" property'>flags</a>" <span class="type">GstV4l2DeviceTypeFlags</span> : Read - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-height" title='The "overlay-height" property'>overlay-height</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-left" title='The "overlay-left" property'>overlay-left</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-top" title='The "overlay-top" property'>overlay-top</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--overlay-width" title='The "overlay-width" property'>overlay-width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--queue-size" title='The "queue-size" property'>queue-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--brightness" title='The "brightness" property'>brightness</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--contrast" title='The "contrast" property'>contrast</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--hue" title='The "hue" property'>hue</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--saturation" title='The "saturation" property'>saturation</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-height" title='The "crop-height" property'>crop-height</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-left" title='The "crop-left" property'>crop-left</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-top" title='The "crop-top" property'>crop-top</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--crop-width" title='The "crop-width" property'>crop-width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--min-queued-bufs" title='The "min-queued-bufs" property'>min-queued-bufs</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--io-mode" title='The "io-mode" property'>io-mode</a>" <span class="type">GstV4l2IOMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--norm" title='The "norm" property'>norm</a>" <span class="type">V4L2_TV_norms</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls" title='The "extra-controls" property'>extra-controls</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio" title='The "force-aspect-ratio" property'>force-aspect-ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'>pixel-aspect-ratio</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"> <a name="gst-plugins-good-plugins-v4l2sink.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.148.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.151.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -123,7 +226,7 @@ GstV4l2Sink implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.148.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.151.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -144,71 +247,19 @@ GstV4l2Sink implements </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td>image/jpeg</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/mpeg, mpegversion=(int)2</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/mpegts, systemstream=(boolean)true</td> </tr> <tr> <td><p><span class="term"></span></p></td> @@ -216,35 +267,27 @@ GstV4l2Sink implements </tr> <tr> <td><p><span class="term"></span></p></td> -<td> image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-dv, systemstream=(boolean)true</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-h263, variant=(string)itu</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/mpegts, systemstream=(boolean)true</td> +<td> video/x-h264, stream-format=(string)byte-stream, alignment=(string)au</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, xRGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> @@ -252,15 +295,7 @@ GstV4l2Sink implements </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-vp8</td> </tr> </tbody> </table></div> @@ -270,7 +305,10 @@ GstV4l2Sink implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-v4l2sink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-v4l2sink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2sink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstV4l2Sink-struct"></a><h3>struct GstV4l2Sink</h3> <pre class="programlisting">struct GstV4l2Sink;</pre> @@ -281,170 +319,193 @@ GstV4l2Sink implements <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2sink.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstV4l2Sink--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstV4l2Sink--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Device location.</p> +<p>Flags: Read / Write</p> <p>Default value: "/dev/video1"</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--device-fd"></a><h3>The <code class="literal">"device-fd"</code> property</h3> -<pre class="programlisting"> "device-fd" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstV4l2Sink--device-fd"></a><h3>The <code class="literal">“device-fdâ€</code> property</h3> +<pre class="programlisting"> “device-fd†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>File descriptor of the device.</p> +<p>Flags: Read</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstV4l2Sink--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Name of the device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--flags"></a><h3>The <code class="literal">"flags"</code> property</h3> -<pre class="programlisting"> "flags" <span class="type">GstV4l2DeviceTypeFlags</span> : Read</pre> +<a name="GstV4l2Sink--flags"></a><h3>The <code class="literal">“flagsâ€</code> property</h3> +<pre class="programlisting"> “flags†<span class="type">GstV4l2DeviceTypeFlags</span></pre> <p>Device type flags.</p> +<p>Flags: Read</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--overlay-height"></a><h3>The <code class="literal">"overlay-height"</code> property</h3> -<pre class="programlisting"> "overlay-height" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--overlay-height"></a><h3>The <code class="literal">“overlay-heightâ€</code> property</h3> +<pre class="programlisting"> “overlay-height†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The height of the video overlay; default is equal to negotiated image height.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--overlay-left"></a><h3>The <code class="literal">"overlay-left"</code> property</h3> -<pre class="programlisting"> "overlay-left" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--overlay-left"></a><h3>The <code class="literal">“overlay-leftâ€</code> property</h3> +<pre class="programlisting"> “overlay-left†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The leftmost (x) coordinate of the video overlay; top left corner of screen is 0,0.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--overlay-top"></a><h3>The <code class="literal">"overlay-top"</code> property</h3> -<pre class="programlisting"> "overlay-top" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--overlay-top"></a><h3>The <code class="literal">“overlay-topâ€</code> property</h3> +<pre class="programlisting"> “overlay-top†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The topmost (y) coordinate of the video overlay; top left corner of screen is 0,0.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--overlay-width"></a><h3>The <code class="literal">"overlay-width"</code> property</h3> -<pre class="programlisting"> "overlay-width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--overlay-width"></a><h3>The <code class="literal">“overlay-widthâ€</code> property</h3> +<pre class="programlisting"> “overlay-width†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The width of the video overlay; default is equal to negotiated image width.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--queue-size"></a><h3>The <code class="literal">"queue-size"</code> property</h3> -<pre class="programlisting"> "queue-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--queue-size"></a><h3>The <code class="literal">“queue-sizeâ€</code> property</h3> +<pre class="programlisting"> “queue-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Number of buffers to be enqueud in the driver in streaming mode.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,16]</p> <p>Default value: 12</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--brightness"></a><h3>The <code class="literal">"brightness"</code> property</h3> -<pre class="programlisting"> "brightness" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--brightness"></a><h3>The <code class="literal">“brightnessâ€</code> property</h3> +<pre class="programlisting"> “brightness†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Picture brightness, or more precisely, the black level.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--contrast"></a><h3>The <code class="literal">"contrast"</code> property</h3> -<pre class="programlisting"> "contrast" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--contrast"></a><h3>The <code class="literal">“contrastâ€</code> property</h3> +<pre class="programlisting"> “contrast†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Picture contrast or luma gain.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--hue"></a><h3>The <code class="literal">"hue"</code> property</h3> -<pre class="programlisting"> "hue" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--hue"></a><h3>The <code class="literal">“hueâ€</code> property</h3> +<pre class="programlisting"> “hue†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Hue or color balance.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--saturation"></a><h3>The <code class="literal">"saturation"</code> property</h3> -<pre class="programlisting"> "saturation" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--saturation"></a><h3>The <code class="literal">“saturationâ€</code> property</h3> +<pre class="programlisting"> “saturation†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Picture color saturation or chroma gain.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--crop-height"></a><h3>The <code class="literal">"crop-height"</code> property</h3> -<pre class="programlisting"> "crop-height" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--crop-height"></a><h3>The <code class="literal">“crop-heightâ€</code> property</h3> +<pre class="programlisting"> “crop-height†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The height of the video crop; default is equal to negotiated image height.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--crop-left"></a><h3>The <code class="literal">"crop-left"</code> property</h3> -<pre class="programlisting"> "crop-left" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--crop-left"></a><h3>The <code class="literal">“crop-leftâ€</code> property</h3> +<pre class="programlisting"> “crop-left†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The leftmost (x) coordinate of the video crop; top left corner of image is 0,0.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--crop-top"></a><h3>The <code class="literal">"crop-top"</code> property</h3> -<pre class="programlisting"> "crop-top" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--crop-top"></a><h3>The <code class="literal">“crop-topâ€</code> property</h3> +<pre class="programlisting"> “crop-top†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>The topmost (y) coordinate of the video crop; top left corner of image is 0,0.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--crop-width"></a><h3>The <code class="literal">"crop-width"</code> property</h3> -<pre class="programlisting"> "crop-width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--crop-width"></a><h3>The <code class="literal">“crop-widthâ€</code> property</h3> +<pre class="programlisting"> “crop-width†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>The width of the video crop; default is equal to negotiated image width.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--min-queued-bufs"></a><h3>The <code class="literal">"min-queued-bufs"</code> property</h3> -<pre class="programlisting"> "min-queued-bufs" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--min-queued-bufs"></a><h3>The <code class="literal">“min-queued-bufsâ€</code> property</h3> +<pre class="programlisting"> “min-queued-bufs†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Minimum number of queued bufs; v4l2sink won't dqbuf if the driver doesn't have more than this number (which normally you shouldn't change).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 16</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--io-mode"></a><h3>The <code class="literal">"io-mode"</code> property</h3> -<pre class="programlisting"> "io-mode" <span class="type">GstV4l2IOMode</span> : Read / Write</pre> +<a name="GstV4l2Sink--io-mode"></a><h3>The <code class="literal">“io-modeâ€</code> property</h3> +<pre class="programlisting"> “io-mode†<span class="type">GstV4l2IOMode</span></pre> <p>I/O mode.</p> +<p>Flags: Read / Write</p> <p>Default value: GST_V4L2_IO_AUTO</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--norm"></a><h3>The <code class="literal">"norm"</code> property</h3> -<pre class="programlisting"> "norm" <span class="type">V4L2_TV_norms</span> : Read / Write</pre> +<a name="GstV4l2Sink--norm"></a><h3>The <code class="literal">“normâ€</code> property</h3> +<pre class="programlisting"> “norm†<span class="type">V4L2_TV_norms</span></pre> <p>video standard.</p> +<p>Flags: Read / Write</p> <p>Default value: none</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--extra-controls"></a><h3>The <code class="literal">"extra-controls"</code> property</h3> -<pre class="programlisting"> "extra-controls" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstV4l2Sink--extra-controls"></a><h3>The <code class="literal">“extra-controlsâ€</code> property</h3> +<pre class="programlisting"> “extra-controls†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>Extra v4l2 controls (CIDs) for the device.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--force-aspect-ratio"></a><h3>The <code class="literal">"force-aspect-ratio"</code> property</h3> -<pre class="programlisting"> "force-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstV4l2Sink--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratioâ€</code> property</h3> +<pre class="programlisting"> “force-aspect-ratio†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>When enabled, the pixel aspect ratio will be enforced.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Sink--pixel-aspect-ratio"></a><h3>The <code class="literal">"pixel-aspect-ratio"</code> property</h3> -<pre class="programlisting"> "pixel-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstV4l2Sink--pixel-aspect-ratio"></a><h3>The <code class="literal">“pixel-aspect-ratioâ€</code> property</h3> +<pre class="programlisting"> “pixel-aspect-ratio†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Overwrite the pixel aspect ratio of the device.</p> +<p>Flags: Read / Write</p> <p>Default value: "1/1"</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 632d3bfee..0087ace8b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html +++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html @@ -2,38 +2,30 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>v4l2src</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: v4l2src</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-udpsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2sink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-v4l2src.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-v4l2src.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-v4l2src.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-v4l2src.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-v4l2src.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-v4l2src.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2src.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2src.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2src.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2src.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-v4l2src.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-udpsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2sink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-v4l2src"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -41,23 +33,141 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-v4l2src.top_of_page"></a>v4l2src</span></h2> <p>v4l2src — Reads frames from a Video4Linux2 device</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-v4l2src.synopsis"></a><h2>Synopsis</h2> -<a name="GstV4l2Src"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct" title="struct GstV4l2Src">GstV4l2Src</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2src.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device" title="The “device†property">device</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name" title="The “device-name†property">device-name</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstV4l2DeviceTypeFlags</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags" title="The “flags†property">flags</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size" title="The “queue-size†property">queue-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy" title="The “always-copy†property">always-copy</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd" title="The “device-fd†property">device-fd</a></td> +<td class="property_flags">Read</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness" title="The “brightness†property">brightness</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast" title="The “contrast†property">contrast</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate" title="The “decimate†property">decimate</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue" title="The “hue†property">hue</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation" title="The “saturation†property">saturation</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">V4L2_TV_norms</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm" title="The “norm†property">norm</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstV4l2IOMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode" title="The “io-mode†property">io-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls" title="The “extra-controls†property">extra-controls</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio" title="The “force-aspect-ratio†property">force-aspect-ratio</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio" title="The “pixel-aspect-ratio†property">pixel-aspect-ratio</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2src.signals"></a><h2>Signals</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format" title="The “prepare-format†signal">prepare-format</a></td> +<td class="signal_flags">Run Last</td> +</tr></tbody> +</table></div> +</div> +<a name="GstV4l2Src"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2src.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct" title="struct GstV4l2Src">GstV4l2Src</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2src.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----GstV4l2Src +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> GstV4l2Src </pre> </div> <div class="refsect1"> @@ -67,38 +177,11 @@ GstV4l2Src implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html#GstTuner">GstTuner</a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-v4l2src.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device" title='The "device" property'>device</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-v4l2src.html#GstV4l2Src--device-name" title='The "device-name" property'>device-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags" title='The "flags" property'>flags</a>" <span class="type">GstV4l2DeviceTypeFlags</span> : Read - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size" title='The "queue-size" property'>queue-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy" title='The "always-copy" property'>always-copy</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd" title='The "device-fd" property'>device-fd</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness" title='The "brightness" property'>brightness</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast" title='The "contrast" property'>contrast</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate" title='The "decimate" property'>decimate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue" title='The "hue" property'>hue</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation" title='The "saturation" property'>saturation</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm" title='The "norm" property'>norm</a>" <span class="type">V4L2_TV_norms</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode" title='The "io-mode" property'>io-mode</a>" <span class="type">GstV4l2IOMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls" title='The "extra-controls" property'>extra-controls</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio" title='The "force-aspect-ratio" property'>force-aspect-ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'>pixel-aspect-ratio</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"> -<a name="gst-plugins-good-plugins-v4l2src.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format" title='The "prepare-format" signal'>prepare-format</a>" : <code class="literal">Run Last</code> -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2src.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.147.8.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.150.9.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -124,7 +207,7 @@ GstV4l2Src implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.147.8.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.150.9.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -145,71 +228,19 @@ GstV4l2Src implements </tr> <tr> <td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td>image/jpeg</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/mpeg, mpegversion=(int)2</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/mpegts, systemstream=(boolean)true</td> </tr> <tr> <td><p><span class="term"></span></p></td> @@ -217,35 +248,27 @@ GstV4l2Src implements </tr> <tr> <td><p><span class="term"></span></p></td> -<td> image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-dv, systemstream=(boolean)true</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-h263, variant=(string)itu</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-h264, stream-format=(string)byte-stream, alignment=(string)au</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/mpegts, systemstream=(boolean)true</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, xRGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> </tr> <tr> <td><p><span class="term"></span></p></td> @@ -253,15 +276,7 @@ GstV4l2Src implements </tr> <tr> <td><p><span class="term"></span></p></td> -<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> -</tr> -<tr> -<td><p><span class="term"></span></p></td> -<td> video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td> +<td> video/x-vp8</td> </tr> </tbody> </table></div> @@ -271,7 +286,10 @@ GstV4l2Src implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-v4l2src.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-v4l2src.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-v4l2src.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstV4l2Src-struct"></a><h3>struct GstV4l2Src</h3> <pre class="programlisting">struct GstV4l2Src;</pre> @@ -282,149 +300,173 @@ GstV4l2Src implements <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2src.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstV4l2Src--device"></a><h3>The <code class="literal">"device"</code> property</h3> -<pre class="programlisting"> "device" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstV4l2Src--device"></a><h3>The <code class="literal">“deviceâ€</code> property</h3> +<pre class="programlisting"> “device†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Device location.</p> +<p>Flags: Read / Write</p> <p>Default value: "/dev/video0"</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--device-name"></a><h3>The <code class="literal">"device-name"</code> property</h3> -<pre class="programlisting"> "device-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre> +<a name="GstV4l2Src--device-name"></a><h3>The <code class="literal">“device-nameâ€</code> property</h3> +<pre class="programlisting"> “device-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Name of the device.</p> +<p>Flags: Read</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--flags"></a><h3>The <code class="literal">"flags"</code> property</h3> -<pre class="programlisting"> "flags" <span class="type">GstV4l2DeviceTypeFlags</span> : Read</pre> +<a name="GstV4l2Src--flags"></a><h3>The <code class="literal">“flagsâ€</code> property</h3> +<pre class="programlisting"> “flags†<span class="type">GstV4l2DeviceTypeFlags</span></pre> <p>Device type flags.</p> +<p>Flags: Read</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--queue-size"></a><h3>The <code class="literal">"queue-size"</code> property</h3> -<pre class="programlisting"> "queue-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstV4l2Src--queue-size"></a><h3>The <code class="literal">“queue-sizeâ€</code> property</h3> +<pre class="programlisting"> “queue-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Number of buffers to be enqueud in the driver in streaming mode.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,16]</p> <p>Default value: 2</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--always-copy"></a><h3>The <code class="literal">"always-copy"</code> property</h3> -<pre class="programlisting"> "always-copy" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstV4l2Src--always-copy"></a><h3>The <code class="literal">“always-copyâ€</code> property</h3> +<pre class="programlisting"> “always-copy†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>If the buffer will or not be used directly from mmap.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--device-fd"></a><h3>The <code class="literal">"device-fd"</code> property</h3> -<pre class="programlisting"> "device-fd" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre> +<a name="GstV4l2Src--device-fd"></a><h3>The <code class="literal">“device-fdâ€</code> property</h3> +<pre class="programlisting"> “device-fd†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>File descriptor of the device.</p> +<p>Flags: Read</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: -1</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--brightness"></a><h3>The <code class="literal">"brightness"</code> property</h3> -<pre class="programlisting"> "brightness" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Src--brightness"></a><h3>The <code class="literal">“brightnessâ€</code> property</h3> +<pre class="programlisting"> “brightness†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Picture brightness, or more precisely, the black level.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--contrast"></a><h3>The <code class="literal">"contrast"</code> property</h3> -<pre class="programlisting"> "contrast" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Src--contrast"></a><h3>The <code class="literal">“contrastâ€</code> property</h3> +<pre class="programlisting"> “contrast†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Picture contrast or luma gain.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--decimate"></a><h3>The <code class="literal">"decimate"</code> property</h3> -<pre class="programlisting"> "decimate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Src--decimate"></a><h3>The <code class="literal">“decimateâ€</code> property</h3> +<pre class="programlisting"> “decimate†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Only use every nth frame.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 1</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--hue"></a><h3>The <code class="literal">"hue"</code> property</h3> -<pre class="programlisting"> "hue" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Src--hue"></a><h3>The <code class="literal">“hueâ€</code> property</h3> +<pre class="programlisting"> “hue†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Hue or color balance.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--saturation"></a><h3>The <code class="literal">"saturation"</code> property</h3> -<pre class="programlisting"> "saturation" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstV4l2Src--saturation"></a><h3>The <code class="literal">“saturationâ€</code> property</h3> +<pre class="programlisting"> “saturation†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Picture color saturation or chroma gain.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--norm"></a><h3>The <code class="literal">"norm"</code> property</h3> -<pre class="programlisting"> "norm" <span class="type">V4L2_TV_norms</span> : Read / Write</pre> +<a name="GstV4l2Src--norm"></a><h3>The <code class="literal">“normâ€</code> property</h3> +<pre class="programlisting"> “norm†<span class="type">V4L2_TV_norms</span></pre> <p>video standard.</p> +<p>Flags: Read / Write</p> <p>Default value: none</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--io-mode"></a><h3>The <code class="literal">"io-mode"</code> property</h3> -<pre class="programlisting"> "io-mode" <span class="type">GstV4l2IOMode</span> : Read / Write</pre> +<a name="GstV4l2Src--io-mode"></a><h3>The <code class="literal">“io-modeâ€</code> property</h3> +<pre class="programlisting"> “io-mode†<span class="type">GstV4l2IOMode</span></pre> <p>I/O mode.</p> +<p>Flags: Read / Write</p> <p>Default value: GST_V4L2_IO_AUTO</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--extra-controls"></a><h3>The <code class="literal">"extra-controls"</code> property</h3> -<pre class="programlisting"> "extra-controls" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>* : Read / Write</pre> +<a name="GstV4l2Src--extra-controls"></a><h3>The <code class="literal">“extra-controlsâ€</code> property</h3> +<pre class="programlisting"> “extra-controls†<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *</pre> <p>Extra v4l2 controls (CIDs) for the device.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--force-aspect-ratio"></a><h3>The <code class="literal">"force-aspect-ratio"</code> property</h3> -<pre class="programlisting"> "force-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstV4l2Src--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratioâ€</code> property</h3> +<pre class="programlisting"> “force-aspect-ratio†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>When enabled, the pixel aspect ratio will be enforced.</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstV4l2Src--pixel-aspect-ratio"></a><h3>The <code class="literal">"pixel-aspect-ratio"</code> property</h3> -<pre class="programlisting"> "pixel-aspect-ratio" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstV4l2Src--pixel-aspect-ratio"></a><h3>The <code class="literal">“pixel-aspect-ratioâ€</code> property</h3> +<pre class="programlisting"> “pixel-aspect-ratio†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Overwrite the pixel aspect ratio of the device.</p> +<p>Flags: Read / Write</p> <p>Default value: "1/1"</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-v4l2src.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstV4l2Src-prepare-format"></a><h3>The <code class="literal">"prepare-format"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src"><span class="type">GstV4l2Src</span></a> *gstv4l2src, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg1, - <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *arg2, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Run Last</code></pre> +<a name="GstV4l2Src-prepare-format"></a><h3>The <code class="literal">“prepare-formatâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src"><span class="type">GstV4l2Src</span></a> *gstv4l2src, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg1, + <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *arg2, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.150.13.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstv4l2src</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstv4l2src</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Run Last</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a40b72ccb..7b7c73d30 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>vertigotv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: vertigotv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2radio.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-videobalance.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-vertigotv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-vertigotv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-vertigotv.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-vertigotv.properties" class="shortcut">Properties</a> -  | - <a href="#gst-plugins-good-plugins-vertigotv.signals" class="shortcut">Signals</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vertigotv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vertigotv.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vertigotv.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vertigotv.signals" class="shortcut">Signals</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2radio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-videobalance.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-vertigotv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,47 +32,74 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-vertigotv.top_of_page"></a>vertigotv</span></h2> <p>vertigotv — A loopback alpha blending effector with rotating and scaling</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-vertigotv.synopsis"></a><h2>Synopsis</h2> -<a name="GstVertigoTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct" title="struct GstVertigoTV">GstVertigoTV</a>; -</pre> -</div> -<div class="refsect1"> -<a name="gst-plugins-good-plugins-vertigotv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstVertigoTV -</pre> -</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-vertigotv.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed" title='The "speed" property'>speed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed" title='The "zoom-speed" property'>zoom-speed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write -</pre> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed" title="The “speed†property">speed</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed" title="The “zoom-speed†property">zoom-speed</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-vertigotv.signals"></a><h2>Signals</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms" title='The "reset-parms" signal'>reset-parms</a>" : <code class="literal">Action</code> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="signals_return"> +<col width="300px" class="signals_name"> +<col width="200px" class="signals_flags"> +</colgroup> +<tbody><tr> +<td class="signal_type"><span class="returnvalue">void</span></td> +<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms" title="The “reset-parms†signal">reset-parms</a></td> +<td class="signal_flags">Action</td> +</tr></tbody> +</table></div> +</div> +<a name="GstVertigoTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-vertigotv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct" title="struct GstVertigoTV">GstVertigoTV</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-vertigotv.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstVertigoTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-vertigotv.description"></a><h2>Description</h2> -<p> -VertigoTV is a loopback alpha blending effector with rotating and scaling. -</p> -<p> -</p> +<p>VertigoTV is a loopback alpha blending effector with rotating and scaling.</p> <div class="refsect2"> -<a name="id-1.2.150.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.153.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -92,12 +112,10 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. </div> This pipeline shows the effect of vertigotv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.150.7.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.153.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -123,7 +141,7 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. </div> <hr> <div class="refsect2"> -<a name="id-1.2.150.7.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.153.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -178,7 +196,10 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-vertigotv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-vertigotv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-vertigotv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstVertigoTV-struct"></a><h3>struct GstVertigoTV</h3> <pre class="programlisting">struct GstVertigoTV;</pre> @@ -189,17 +210,19 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. <div class="refsect1"> <a name="gst-plugins-good-plugins-vertigotv.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstVertigoTV--speed"></a><h3>The <code class="literal">"speed"</code> property</h3> -<pre class="programlisting"> "speed" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstVertigoTV--speed"></a><h3>The <code class="literal">“speedâ€</code> property</h3> +<pre class="programlisting"> “speed†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Control the speed of movement.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0.01,100]</p> <p>Default value: 0.02</p> </div> <hr> <div class="refsect2"> -<a name="GstVertigoTV--zoom-speed"></a><h3>The <code class="literal">"zoom-speed"</code> property</h3> -<pre class="programlisting"> "zoom-speed" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> : Read / Write</pre> +<a name="GstVertigoTV--zoom-speed"></a><h3>The <code class="literal">“zoom-speedâ€</code> property</h3> +<pre class="programlisting"> “zoom-speed†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a></pre> <p>Control the rate of zooming.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1.01,1.1]</p> <p>Default value: 1.01</p> </div> @@ -207,32 +230,40 @@ VertigoTV is a loopback alpha blending effector with rotating and scaling. <div class="refsect1"> <a name="gst-plugins-good-plugins-vertigotv.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> -<a name="GstVertigoTV-reset-parms"></a><h3>The <code class="literal">"reset-parms"</code> signal</h3> -<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV"><span class="type">GstVertigoTV</span></a> *gstvertigotv, - <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <code class="literal">Action</code></pre> +<a name="GstVertigoTV-reset-parms"></a><h3>The <code class="literal">“reset-parmsâ€</code> signal</h3> +<pre class="programlisting"><span class="returnvalue">void</span> +user_function (<a class="link" href="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV"><span class="type">GstVertigoTV</span></a> *gstvertigotv, + <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> <p> </p> -<div class="variablelist"><table border="0" class="variablelist"> +<div class="refsect3"> +<a name="id-1.2.153.12.2.5"></a><h4>Parameters</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="150px" class="parameters_name"> +<col class="parameters_description"> +<col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> -<td><p><span class="term"><em class="parameter"><code>gstvertigotv</code></em> :</span></p></td> -<td>the object which received the signal.</td> +<td class="parameter_name"><p>gstvertigotv</p></td> +<td class="parameter_description"><p>the object which received the signal.</p></td> +<td class="parameter_annotations"> </td> </tr> <tr> -<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> -<td>user data set when the signal handler was connected.</td> +<td class="parameter_name"><p>user_data</p></td> +<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> +<td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> +<p>Flags: Action</p> +</div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f14e7bfe3..0f0347f01 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videobalance</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videobalance</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-vertigotv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-videobox.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-videobalance.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-videobalance.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-videobalance.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-videobalance.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-videobalance.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videobalance.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videobalance.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videobalance.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videobalance.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-vertigotv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-videobox.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-videobalance"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,23 +32,62 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-videobalance.top_of_page"></a>videobalance</span></h2> <p>videobalance — Adjusts brightness, contrast, hue, saturation on a video stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-videobalance.synopsis"></a><h2>Synopsis</h2> -<a name="GstVideoBalance"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance-struct" title="struct GstVideoBalance">GstVideoBalance</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-videobalance.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness" title="The “brightness†property">brightness</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--contrast" title="The “contrast†property">contrast</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue" title="The “hue†property">hue</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation" title="The “saturation†property">saturation</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstVideoBalance"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-videobalance.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance-struct" title="struct GstVideoBalance">GstVideoBalance</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videobalance.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstVideoBalance +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstVideoBalance </pre> </div> <div class="refsect1"> @@ -65,23 +97,10 @@ GstVideoBalance implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstImplementsInterface.html">GstImplementsInterface</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videobalance.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness" title='The "brightness" property'>brightness</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--contrast" title='The "contrast" property'>contrast</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue" title='The "hue" property'>hue</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation" title='The "saturation" property'>saturation</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-videobalance.description"></a><h2>Description</h2> -<p> -Adjusts brightness, contrast, hue, saturation on a video stream. -</p> -<p> -</p> +<p>Adjusts brightness, contrast, hue, saturation on a video stream.</p> <div class="refsect2"> -<a name="id-1.2.151.7.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.154.8.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -95,15 +114,10 @@ Adjusts brightness, contrast, hue, saturation on a video stream. This pipeline converts the image to black and white by setting the saturation to 0.0. </div> -<p> -</p> -<p> -Last reviewed on 2010-04-18 (0.10.22) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.151.7.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.154.8.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -129,7 +143,7 @@ Last reviewed on 2010-04-18 (0.10.22) </div> <hr> <div class="refsect2"> -<a name="id-1.2.151.7.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.154.8.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -184,45 +198,50 @@ Last reviewed on 2010-04-18 (0.10.22) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videobalance.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-videobalance.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-videobalance.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstVideoBalance-struct"></a><h3>struct GstVideoBalance</h3> <pre class="programlisting">struct GstVideoBalance;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videobalance.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstVideoBalance--brightness"></a><h3>The <code class="literal">"brightness"</code> property</h3> -<pre class="programlisting"> "brightness" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstVideoBalance--brightness"></a><h3>The <code class="literal">“brightnessâ€</code> property</h3> +<pre class="programlisting"> “brightness†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>brightness.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-1,1]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBalance--contrast"></a><h3>The <code class="literal">"contrast"</code> property</h3> -<pre class="programlisting"> "contrast" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstVideoBalance--contrast"></a><h3>The <code class="literal">“contrastâ€</code> property</h3> +<pre class="programlisting"> “contrast†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>contrast.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,2]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBalance--hue"></a><h3>The <code class="literal">"hue"</code> property</h3> -<pre class="programlisting"> "hue" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstVideoBalance--hue"></a><h3>The <code class="literal">“hueâ€</code> property</h3> +<pre class="programlisting"> “hue†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>hue.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-1,1]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBalance--saturation"></a><h3>The <code class="literal">"saturation"</code> property</h3> -<pre class="programlisting"> "saturation" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstVideoBalance--saturation"></a><h3>The <code class="literal">“saturationâ€</code> property</h3> +<pre class="programlisting"> “saturation†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>saturation.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,2]</p> <p>Default value: 1</p> </div> @@ -230,6 +249,6 @@ Opaque data structure. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 273bb7b36..7d3c246fe 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videobox</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videobox</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-videobalance.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-videocrop.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-videobox.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-videobox.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-videobox.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-videobox.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videobox.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videobox.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videobox.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-videobalance.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-videocrop.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-videobox"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,73 +31,107 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-videobox.top_of_page"></a>videobox</span></h2> <p>videobox — Resizes a video by adding borders or cropping</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-videobox.synopsis"></a><h2>Synopsis</h2> -<a name="GstVideoBox"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct" title="struct GstVideoBox">GstVideoBox</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videobox.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstVideoBox -</pre> +<a name="gst-plugins-good-plugins-videobox.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha" title="The “alpha†property">alpha</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha" title="The “border-alpha†property">border-alpha</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--bottom" title="The “bottom†property">bottom</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVideoBoxFill</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--fill" title="The “fill†property">fill</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--left" title="The “left†property">left</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--right" title="The “right†property">right</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--top" title="The “top†property">top</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop" title="The “autocrop†property">autocrop</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstVideoBox"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-videobox.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct" title="struct GstVideoBox">GstVideoBox</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videobox.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha" title='The "alpha" property'>alpha</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha" title='The "border-alpha" property'>border-alpha</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--bottom" title='The "bottom" property'>bottom</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--fill" title='The "fill" property'>fill</a>" <span class="type">GstVideoBoxFill</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--left" title='The "left" property'>left</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--right" title='The "right" property'>right</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--top" title='The "top" property'>top</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop" title='The "autocrop" property'>autocrop</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-videobox.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstVideoBox </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videobox.description"></a><h2>Description</h2> -<p> -This plugin crops or enlarges the image. It takes 4 values as input, a +<p>This plugin crops or enlarges the image. It takes 4 values as input, a top, bottom, left and right offset. Positive values will crop that much pixels from the respective border of the image, negative values will add that much pixels. When pixels are added, you can specify their color. -Some predefined colors are usable with an enum property. -</p> -<p> -The plugin is alpha channel aware and will try to negotiate with a format +Some predefined colors are usable with an enum property.</p> +<p>The plugin is alpha channel aware and will try to negotiate with a format that supports alpha channels first. When alpha channel is active two other properties, alpha and border_alpha can be used to set the alpha values of the inner picture and the border respectively. an alpha value of -0.0 means total transparency, 1.0 is opaque. -</p> -<p> -The videobox plugin has many uses such as doing a mosaic of pictures, -letterboxing video, cutting out pieces of video, picture in picture, etc.. -</p> -<p> -Setting autocrop to true changes the behavior of the plugin so that +0.0 means total transparency, 1.0 is opaque.</p> +<p>The videobox plugin has many uses such as doing a mosaic of pictures, +letterboxing video, cutting out pieces of video, picture in picture, etc..</p> +<p>Setting autocrop to true changes the behavior of the plugin so that caps determine crop properties rather than the other way around: given input and output dimensions, the crop values are selected so that the smaller frame is effectively centered in the larger frame. This -involves either cropping or padding. -</p> -<p> -If you use autocrop there is little point in setting the other +involves either cropping or padding.</p> +<p>If you use autocrop there is little point in setting the other properties manually because they will be overriden if the caps change, -but nothing stops you from doing so. -</p> -<p> -Sample pipeline: -</p> +but nothing stops you from doing so.</p> +<p>Sample pipeline:</p> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -117,93 +145,15 @@ Sample pipeline: </table> </div> +<p></p> <p> </p> -<div class="refsynopsisdiv"> -<h2>Synopsis</h2> -<div class="refsect2"> -<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"> -<col> -</colgroup> -<tbody> -<tr> -<td><p><span class="term">plugin</span></p></td> -<td> - <a class="link" href="gst-plugins-good-plugins-plugin-videobox.html#plugin-videobox">videobox</a> - </td> -</tr> -<tr> -<td><p><span class="term">author</span></p></td> -<td>Wim Taymans <wim@fluendo.com></td> -</tr> -<tr> -<td><p><span class="term">class</span></p></td> -<td>Filter/Effect/Video</td> -</tr> -</tbody> -</table></div> -</div> -<hr> -<div class="refsect2"> -<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"> -<col> -</colgroup> -<tbody> -<tr> -<td><p><span class="term">name</span></p></td> -<td>sink</td> -</tr> -<tr> -<td><p><span class="term">direction</span></p></td> -<td>sink</td> -</tr> -<tr> -<td><p><span class="term">presence</span></p></td> -<td>always</td> -</tr> -<tr> -<td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, xRGB, BGRx, xBGR, RGBx, RGB, BGR, Y444, Y42B, YUY2, YVYU, UYVY, I420, YV12, Y41B, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> -</tr> -</tbody> -</table></div> -<div class="variablelist"><table border="0" class="variablelist"> -<colgroup> -<col align="left" valign="top"> -<col> -</colgroup> -<tbody> -<tr> -<td><p><span class="term">name</span></p></td> -<td>src</td> -</tr> -<tr> -<td><p><span class="term">direction</span></p></td> -<td>source</td> -</tr> -<tr> -<td><p><span class="term">presence</span></p></td> -<td>always</td> -</tr> -<tr> -<td><p><span class="term">details</span></p></td> -<td>video/x-raw, format=(string){ AYUV, ARGB, BGRA, ABGR, RGBA, xRGB, BGRx, xBGR, RGBx, RGB, BGR, Y444, Y42B, YUY2, YVYU, UYVY, I420, YV12, Y41B, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td> -</tr> -</tbody> -</table></div> -</div> </div> -<p> -</p> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-videobox.functions_details"></a><h2>Functions</h2> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videobox.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-videobox.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstVideoBox-struct"></a><h3>struct GstVideoBox</h3> <pre class="programlisting">struct GstVideoBox;</pre> @@ -214,74 +164,79 @@ Sample pipeline: <div class="refsect1"> <a name="gst-plugins-good-plugins-videobox.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstVideoBox--alpha"></a><h3>The <code class="literal">"alpha"</code> property</h3> -<pre class="programlisting"> "alpha" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstVideoBox--alpha"></a><h3>The <code class="literal">“alphaâ€</code> property</h3> +<pre class="programlisting"> “alpha†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Alpha value picture.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBox--border-alpha"></a><h3>The <code class="literal">"border-alpha"</code> property</h3> -<pre class="programlisting"> "border-alpha" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstVideoBox--border-alpha"></a><h3>The <code class="literal">“border-alphaâ€</code> property</h3> +<pre class="programlisting"> “border-alpha†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Alpha value of the border.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBox--bottom"></a><h3>The <code class="literal">"bottom"</code> property</h3> -<pre class="programlisting"> "bottom" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoBox--bottom"></a><h3>The <code class="literal">“bottomâ€</code> property</h3> +<pre class="programlisting"> “bottom†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to box at bottom (<0 = add a border).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBox--fill"></a><h3>The <code class="literal">"fill"</code> property</h3> -<pre class="programlisting"> "fill" <span class="type">GstVideoBoxFill</span> : Read / Write</pre> +<a name="GstVideoBox--fill"></a><h3>The <code class="literal">“fillâ€</code> property</h3> +<pre class="programlisting"> “fill†<span class="type">GstVideoBoxFill</span></pre> <p>How to fill the borders.</p> +<p>Flags: Read / Write</p> <p>Default value: Black</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBox--left"></a><h3>The <code class="literal">"left"</code> property</h3> -<pre class="programlisting"> "left" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoBox--left"></a><h3>The <code class="literal">“leftâ€</code> property</h3> +<pre class="programlisting"> “left†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to box at left (<0 = add a border).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBox--right"></a><h3>The <code class="literal">"right"</code> property</h3> -<pre class="programlisting"> "right" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoBox--right"></a><h3>The <code class="literal">“rightâ€</code> property</h3> +<pre class="programlisting"> “right†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to box at right (<0 = add a border).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBox--top"></a><h3>The <code class="literal">"top"</code> property</h3> -<pre class="programlisting"> "top" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoBox--top"></a><h3>The <code class="literal">“topâ€</code> property</h3> +<pre class="programlisting"> “top†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to box at top (<0 = add a border).</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoBox--autocrop"></a><h3>The <code class="literal">"autocrop"</code> property</h3> -<pre class="programlisting"> "autocrop" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> videobox will automatically crop/pad the input -video to be centered in the output. -</p> +<a name="GstVideoBox--autocrop"></a><h3>The <code class="literal">“autocropâ€</code> property</h3> +<pre class="programlisting"> “autocrop†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> videobox will automatically crop/pad the input +video to be centered in the output.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> -<p class="since">Since 0.10.16</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videobox.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop"><span class="type">GstVideoCrop</span></a> +<p><a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop"><span class="type">GstVideoCrop</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 19b97c638..e13077362 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videocrop</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videocrop</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-videobox.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-videoflip.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-videocrop.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-videocrop.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-videocrop.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-videocrop.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videocrop.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videocrop.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videocrop.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-videobox.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-videoflip.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-videocrop"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,62 +31,82 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-videocrop.top_of_page"></a>videocrop</span></h2> <p>videocrop — Crops video into a user-defined region</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-videocrop.synopsis"></a><h2>Synopsis</h2> -<a name="GstVideoCrop"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop-struct" title="struct GstVideoCrop">GstVideoCrop</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videocrop.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstVideoCrop -</pre> +<a name="gst-plugins-good-plugins-videocrop.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom" title="The “bottom†property">bottom</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left" title="The “left†property">left</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--right" title="The “right†property">right</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top" title="The “top†property">top</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstVideoCrop"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-videocrop.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop-struct" title="struct GstVideoCrop">GstVideoCrop</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videocrop.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom" title='The "bottom" property'>bottom</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left" title='The "left" property'>left</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--right" title='The "right" property'>right</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top" title='The "top" property'>top</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-videocrop.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstVideoCrop </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videocrop.description"></a><h2>Description</h2> -<p> -This element crops video frames, meaning it can remove parts of the +<p>This element crops video frames, meaning it can remove parts of the picture on the left, right, top or bottom of the picture and output a smaller picture than the input picture, with the unwanted parts at the -border removed. -</p> -<p> -The videocrop element is similar to the videobox element, but its main +border removed.</p> +<p>The videocrop element is similar to the videobox element, but its main goal is to support a multitude of formats as efficiently as possible. Unlike videbox, it cannot add borders to the picture and unlike videbox -it will always output images in exactly the same format as the input image. -</p> -<p> -If there is nothing to crop, the element will operate in pass-through mode. -</p> -<p> -Note that no special efforts are made to handle chroma-subsampled formats +it will always output images in exactly the same format as the input image.</p> +<p>If there is nothing to crop, the element will operate in pass-through mode.</p> +<p>Note that no special efforts are made to handle chroma-subsampled formats in the case of odd-valued cropping and compensate for sub-unit chroma plane -shifts for such formats in the case where the <a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left" title='The "left" property'><span class="type">"left"</span></a> or -<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top" title='The "top" property'><span class="type">"top"</span></a> property is set to an odd number. This doesn't matter for -most use cases, but it might matter for yours. -</p> -<p> -</p> +shifts for such formats in the case where the <a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--left" title="The “left†property"><span class="type">“leftâ€</span></a> or +<a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top" title="The “top†property"><span class="type">“topâ€</span></a> property is set to an odd number. This doesn't matter for +most use cases, but it might matter for yours.</p> <div class="refsect2"> -<a name="id-1.2.153.6.6.1"></a><h3>Example launch line</h3> +<a name="id-1.2.156.7.6"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -105,12 +119,10 @@ most use cases, but it might matter for yours. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.153.6.7.1"></a><h3>Element Information</h3> +<a name="id-1.2.156.7.7.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -136,7 +148,7 @@ most use cases, but it might matter for yours. </div> <hr> <div class="refsect2"> -<a name="id-1.2.153.6.7.2"></a><h3>Element Pads</h3> +<a name="id-1.2.156.7.7.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -191,7 +203,10 @@ most use cases, but it might matter for yours. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videocrop.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-videocrop.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-videocrop.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstVideoCrop-struct"></a><h3>struct GstVideoCrop</h3> <pre class="programlisting">struct GstVideoCrop;</pre> @@ -202,44 +217,48 @@ most use cases, but it might matter for yours. <div class="refsect1"> <a name="gst-plugins-good-plugins-videocrop.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstVideoCrop--bottom"></a><h3>The <code class="literal">"bottom"</code> property</h3> -<pre class="programlisting"> "bottom" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoCrop--bottom"></a><h3>The <code class="literal">“bottomâ€</code> property</h3> +<pre class="programlisting"> “bottom†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to crop at bottom (-1 to auto-crop).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoCrop--left"></a><h3>The <code class="literal">"left"</code> property</h3> -<pre class="programlisting"> "left" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoCrop--left"></a><h3>The <code class="literal">“leftâ€</code> property</h3> +<pre class="programlisting"> “left†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to crop at left (-1 to auto-crop).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoCrop--right"></a><h3>The <code class="literal">"right"</code> property</h3> -<pre class="programlisting"> "right" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoCrop--right"></a><h3>The <code class="literal">“rightâ€</code> property</h3> +<pre class="programlisting"> “right†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to crop at right (-1 to auto-crop).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVideoCrop--top"></a><h3>The <code class="literal">"top"</code> property</h3> -<pre class="programlisting"> "top" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVideoCrop--top"></a><h3>The <code class="literal">“topâ€</code> property</h3> +<pre class="programlisting"> “top†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Pixels to crop at top (-1 to auto-crop).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= G_MAXULONG</p> <p>Default value: 0</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videocrop.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox"><span class="type">GstVideoBox</span></a> +<p><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox"><span class="type">GstVideoBox</span></a></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 67eb534d1..502b0b0a4 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videoflip</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videoflip</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-videocrop.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-videomixer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-videoflip.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-videoflip.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-videoflip.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-videoflip.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videoflip.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videoflip.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videoflip.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-videocrop.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-videomixer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-videoflip"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,41 +31,58 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-videoflip.top_of_page"></a>videoflip</span></h2> <p>videoflip — Flips and rotates video</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-videoflip.synopsis"></a><h2>Synopsis</h2> -<a name="GstVideoFlip"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlip-struct" title="struct GstVideoFlip">GstVideoFlip</a>; -enum <a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod" title="enum GstVideoFlipMethod">GstVideoFlipMethod</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videoflip.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstVideoFlip -</pre> +<a name="gst-plugins-good-plugins-videoflip.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod" title="enum GstVideoFlipMethod"><span class="type">GstVideoFlipMethod</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method" title="The “method†property">method</a></td> +<td class="property_flags">Read / Write / Construct</td> +</tr></tbody> +</table></div> +</div> +<a name="GstVideoFlip"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-videoflip.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody> +<tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlip-struct" title="struct GstVideoFlip">GstVideoFlip</a></td> +</tr> +<tr> +<td class="datatype_keyword">enum</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod" title="enum GstVideoFlipMethod">GstVideoFlipMethod</a></td> +</tr> +</tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videoflip.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method" title='The "method" property'>method</a>" <a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod" title="enum GstVideoFlipMethod"><span class="type">GstVideoFlipMethod</span></a> : Read / Write +<a name="gst-plugins-good-plugins-videoflip.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstVideoFlip </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videoflip.description"></a><h2>Description</h2> -<p> -Flips and rotates video. -</p> -<p> -</p> +<p>Flips and rotates video.</p> <div class="refsect2"> -<a name="id-1.2.154.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.157.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -84,15 +95,10 @@ Flips and rotates video. </div> This pipeline flips the test image 90 degrees clockwise. </div> -<p> -</p> -<p> -Last reviewed on 2010-04-18 (0.10.22) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.154.6.5.1"></a><h3>Element Information</h3> +<a name="id-1.2.157.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -118,7 +124,7 @@ Last reviewed on 2010-04-18 (0.10.22) </div> <hr> <div class="refsect2"> -<a name="id-1.2.154.6.5.2"></a><h3>Element Pads</h3> +<a name="id-1.2.157.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -173,93 +179,109 @@ Last reviewed on 2010-04-18 (0.10.22) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videoflip.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-videoflip.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-videoflip.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstVideoFlip-struct"></a><h3>struct GstVideoFlip</h3> <pre class="programlisting">struct GstVideoFlip;</pre> -<p> -Opaque datastructure. -</p> +<p>Opaque datastructure.</p> </div> <hr> <div class="refsect2"> <a name="GstVideoFlipMethod"></a><h3>enum GstVideoFlipMethod</h3> -<pre class="programlisting">typedef enum { - GST_VIDEO_FLIP_METHOD_IDENTITY, - GST_VIDEO_FLIP_METHOD_90R, - GST_VIDEO_FLIP_METHOD_180, - GST_VIDEO_FLIP_METHOD_90L, - GST_VIDEO_FLIP_METHOD_HORIZ, - GST_VIDEO_FLIP_METHOD_VERT, - GST_VIDEO_FLIP_METHOD_TRANS, - GST_VIDEO_FLIP_METHOD_OTHER -} GstVideoFlipMethod; -</pre> -<p> -The different flip methods. -</p> -<div class="variablelist"><table border="0" class="variablelist"> +<p>The different flip methods.</p> +<div class="refsect3"> +<a name="id-1.2.157.9.3.4"></a><h4>Members</h4> +<div class="informaltable"><table width="100%" border="0"> <colgroup> -<col align="left" valign="top"> -<col> +<col width="300px" class="enum_members_name"> +<col class="enum_members_description"> +<col width="200px" class="enum_members_annotations"> </colgroup> <tbody> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_IDENTITY</code></span></p></td> -<td>Identity (no rotation) +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS"></a>GST_VIDEO_FLIP_METHOD_IDENTITY</p></td> +<td class="enum_member_description"> +<p>Identity (no rotation)</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-90R:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_90R</code></span></p></td> -<td>Rotate clockwise 90 degrees +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-90R:CAPS"></a>GST_VIDEO_FLIP_METHOD_90R</p></td> +<td class="enum_member_description"> +<p>Rotate clockwise 90 degrees</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-180:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_180</code></span></p></td> -<td>Rotate 180 degrees +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-180:CAPS"></a>GST_VIDEO_FLIP_METHOD_180</p></td> +<td class="enum_member_description"> +<p>Rotate 180 degrees</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-90L:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_90L</code></span></p></td> -<td>Rotate counter-clockwise 90 degrees +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-90L:CAPS"></a>GST_VIDEO_FLIP_METHOD_90L</p></td> +<td class="enum_member_description"> +<p>Rotate counter-clockwise 90 degrees</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-HORIZ:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_HORIZ</code></span></p></td> -<td>Flip horizontally +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-HORIZ:CAPS"></a>GST_VIDEO_FLIP_METHOD_HORIZ</p></td> +<td class="enum_member_description"> +<p>Flip horizontally</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-VERT:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_VERT</code></span></p></td> -<td>Flip vertically +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-VERT:CAPS"></a>GST_VIDEO_FLIP_METHOD_VERT</p></td> +<td class="enum_member_description"> +<p>Flip vertically</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-TRANS:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_TRANS</code></span></p></td> -<td>Flip across upper left/lower right diagonal +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-TRANS:CAPS"></a>GST_VIDEO_FLIP_METHOD_TRANS</p></td> +<td class="enum_member_description"> +<p>Flip across upper left/lower right diagonal</p> </td> +<td class="enum_member_annotations"> </td> </tr> <tr> -<td><p><a name="GST-VIDEO-FLIP-METHOD-OTHER:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLIP_METHOD_OTHER</code></span></p></td> -<td>Flip across upper right/lower left diagonal +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-OTHER:CAPS"></a>GST_VIDEO_FLIP_METHOD_OTHER</p></td> +<td class="enum_member_description"> +<p>Flip across upper right/lower left diagonal</p> </td> +<td class="enum_member_annotations"> </td> +</tr> +<tr> +<td class="enum_member_name"><p><a name="GST-VIDEO-FLIP-METHOD-AUTO:CAPS"></a>GST_VIDEO_FLIP_METHOD_AUTO</p></td> +<td class="enum_member_description"> +<p>Select flip method based on image-orientation tag</p> +</td> +<td class="enum_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> +</div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videoflip.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstVideoFlip--method"></a><h3>The <code class="literal">"method"</code> property</h3> -<pre class="programlisting"> "method" <a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod" title="enum GstVideoFlipMethod"><span class="type">GstVideoFlipMethod</span></a> : Read / Write</pre> +<a name="GstVideoFlip--method"></a><h3>The <code class="literal">“methodâ€</code> property</h3> +<pre class="programlisting"> “method†<a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod" title="enum GstVideoFlipMethod"><span class="type">GstVideoFlipMethod</span></a></pre> <p>method.</p> +<p>Flags: Read / Write / Construct</p> <p>Default value: Identity (no rotation)</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 0cdd88442..8edbd67d6 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html +++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>videomixer</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: videomixer</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-videoflip.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-vp8dec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-videomixer.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-videomixer.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videomixer.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-videomixer.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-videoflip.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-vp8dec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-videomixer"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,31 +30,24 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-videomixer.top_of_page"></a>videomixer</span></h2> <p>videomixer — Mix multiple video streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-videomixer.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis"></pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-videomixer.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> +</pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-videomixer.description"></a><h2>Description</h2> -<p> -Videomixer2 can accept AYUV, ARGB and BGRA video streams. For each of the requested +<p>Videomixer2 can accept AYUV, ARGB and BGRA video streams. For each of the requested sink pads it will compare the incoming geometry and framerate to define the 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> -Videomixer will do colorspace conversion. -</p> -<p> -Individual parameters for each input stream can be configured on the -<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/GstVideoMixer2Pad.html"><span class="type">GstVideoMixer2Pad</span></a>. -</p> -<p> -</p> +biggest incoming video stream and the framerate of the fastest incoming one.</p> +<p>Videomixer will do colorspace conversion.</p> +<p>Individual parameters for each input stream can be configured on the +<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/GstVideoMixer2Pad.html"><span class="type">GstVideoMixer2Pad</span></a>.</p> <div class="refsect2"> -<a name="id-1.2.155.4.5.1"></a><h3>Sample pipelines</h3> +<a name="id-1.2.158.4.5"></a><h3>Sample pipelines</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -153,12 +143,10 @@ framerate of the output video is 10 frames per second. </div> A pipeline to demonstrate synchronized mixing (the second stream starts after 3 seconds) </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.155.4.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.158.4.6.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -184,7 +172,7 @@ framerate of the output video is 10 frames per second. </div> <hr> <div class="refsect2"> -<a name="id-1.2.155.4.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.158.4.6.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -239,11 +227,14 @@ framerate of the output video is 10 frames per second. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-videomixer.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-videomixer.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-videomixer.other_details"></a><h2>Types and Values</h2> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 4934f24be..a4bd108f3 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>vp8dec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: vp8dec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-videomixer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-vp8enc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-vp8dec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-vp8dec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-vp8dec.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-vp8dec.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vp8dec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vp8dec.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vp8dec.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-videomixer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-vp8enc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-vp8dec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,32 +31,66 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-vp8dec.top_of_page"></a>vp8dec</span></h2> <p>vp8dec — Decode VP8 video streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-vp8dec.synopsis"></a><h2>Synopsis</h2> -<a name="GstVP8Dec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct" title="struct GstVP8Dec">GstVP8Dec</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-vp8dec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a> - +----GstVP8Dec -</pre> +<a name="gst-plugins-good-plugins-vp8dec.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level" title="The “deblocking-level†property">deblocking-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level" title="The “noise-level†property">noise-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing" title="The “post-processing†property">post-processing</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8DecPostProcessingFlags</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags" title="The “post-processing-flags†property">post-processing-flags</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads" title="The “threads†property">threads</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstVP8Dec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-vp8dec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct" title="struct GstVP8Dec">GstVP8Dec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-vp8dec.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level" title='The "deblocking-level" property'>deblocking-level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level" title='The "noise-level" property'>noise-level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing" title='The "post-processing" property'>post-processing</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags" title='The "post-processing-flags" property'>post-processing-flags</a>" <span class="type">GstVP8DecPostProcessingFlags</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads" title='The "threads" property'>threads</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write +<a name="gst-plugins-good-plugins-vp8dec.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a> + <span class="lineart">╰──</span> GstVP8Dec </pre> </div> <div class="refsect1"> @@ -70,7 +98,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.156.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.159.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -96,7 +124,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.156.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.159.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -151,7 +179,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-vp8dec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-vp8dec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-vp8dec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstVP8Dec-struct"></a><h3>struct GstVP8Dec</h3> <pre class="programlisting">struct GstVP8Dec;</pre> @@ -162,39 +193,44 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-vp8dec.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstVP8Dec--deblocking-level"></a><h3>The <code class="literal">"deblocking-level"</code> property</h3> -<pre class="programlisting"> "deblocking-level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstVP8Dec--deblocking-level"></a><h3>The <code class="literal">“deblocking-levelâ€</code> property</h3> +<pre class="programlisting"> “deblocking-level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Deblocking level.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 16</p> <p>Default value: 4</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Dec--noise-level"></a><h3>The <code class="literal">"noise-level"</code> property</h3> -<pre class="programlisting"> "noise-level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstVP8Dec--noise-level"></a><h3>The <code class="literal">“noise-levelâ€</code> property</h3> +<pre class="programlisting"> “noise-level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Noise level.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 16</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Dec--post-processing"></a><h3>The <code class="literal">"post-processing"</code> property</h3> -<pre class="programlisting"> "post-processing" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstVP8Dec--post-processing"></a><h3>The <code class="literal">“post-processingâ€</code> property</h3> +<pre class="programlisting"> “post-processing†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Enable post processing.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Dec--post-processing-flags"></a><h3>The <code class="literal">"post-processing-flags"</code> property</h3> -<pre class="programlisting"> "post-processing-flags" <span class="type">GstVP8DecPostProcessingFlags</span> : Read / Write</pre> +<a name="GstVP8Dec--post-processing-flags"></a><h3>The <code class="literal">“post-processing-flagsâ€</code> property</h3> +<pre class="programlisting"> “post-processing-flags†<span class="type">GstVP8DecPostProcessingFlags</span></pre> <p>Flags to control post processing.</p> +<p>Flags: Read / Write</p> <p>Default value: Deblock|Demacroblock|Multi-frame quality enhancement</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Dec--threads"></a><h3>The <code class="literal">"threads"</code> property</h3> -<pre class="programlisting"> "threads" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstVP8Dec--threads"></a><h3>The <code class="literal">“threadsâ€</code> property</h3> +<pre class="programlisting"> “threads†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Maximum number of decoding threads.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,16]</p> <p>Default value: 1</p> </div> @@ -202,6 +238,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 f5087b3dc..24577ea13 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>vp8enc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: vp8enc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-vp8dec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-warptv.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-vp8enc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-vp8enc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-vp8enc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-vp8enc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-vp8enc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vp8enc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vp8enc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vp8enc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-vp8enc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-vp8dec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-warptv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-vp8enc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,343 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-vp8enc.top_of_page"></a>vp8enc</span></h2> <p>vp8enc — Encode VP8 video streams</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-vp8enc.synopsis"></a><h2>Synopsis</h2> -<a name="GstVP8Enc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc-struct" title="struct GstVP8Enc">GstVP8Enc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-vp8enc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes" title="The “arnr-maxframes†property">arnr-maxframes</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-strength" title="The “arnr-strength†property">arnr-strength</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-type" title="The “arnr-type†property">arnr-type</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--auto-alt-ref" title="The “auto-alt-ref†property">auto-alt-ref</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-initial-size" title="The “buffer-initial-size†property">buffer-initial-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-optimal-size" title="The “buffer-optimal-size†property">buffer-optimal-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-size" title="The “buffer-size†property">buffer-size</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cpu-used" title="The “cpu-used†property">cpu-used</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cq-level" title="The “cq-level†property">cq-level</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">gint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--deadline" title="The “deadline†property">deadline</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--dropframe-threshold" title="The “dropframe-threshold†property">dropframe-threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncEndUsage</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--end-usage" title="The “end-usage†property">end-usage</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncErFlags</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--error-resilient" title="The “error-resilient†property">error-resilient</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncScalingMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--h-scaling-mode" title="The “h-scaling-mode†property">h-scaling-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-max-dist" title="The “kf-max-dist†property">kf-max-dist</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncKfMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-mode" title="The “kf-mode†property">kf-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--lag-in-frames" title="The “lag-in-frames†property">lag-in-frames</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate-pct" title="The “max-intra-bitrate-pct†property">max-intra-bitrate-pct</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-quantizer" title="The “max-quantizer†property">max-quantizer</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--min-quantizer" title="The “min-quantizer†property">min-quantizer</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--multipass-cache-file" title="The “multipass-cache-file†property">multipass-cache-file</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncMultipassMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--multipass-mode" title="The “multipass-mode†property">multipass-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--noise-sensitivity" title="The “noise-sensitivity†property">noise-sensitivity</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot-pct" title="The “overshoot-pct†property">overshoot-pct</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-allowed" title="The “resize-allowed†property">resize-allowed</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-down-threshold" title="The “resize-down-threshold†property">resize-down-threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-up-threshold" title="The “resize-up-threshold†property">resize-up-threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--sharpness" title="The “sharpness†property">sharpness</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--static-threshold" title="The “static-threshold†property">static-threshold</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--target-bitrate" title="The “target-bitrate†property">target-bitrate</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--threads" title="The “threads†property">threads</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncTokenPartitions</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--token-partitions" title="The “token-partitions†property">token-partitions</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-layer-id" title="The “ts-layer-id†property">ts-layer-id</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-number-layers" title="The “ts-number-layers†property">ts-number-layers</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-periodicity" title="The “ts-periodicity†property">ts-periodicity</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-rate-decimator" title="The “ts-rate-decimator†property">ts-rate-decimator</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-target-bitrate" title="The “ts-target-bitrate†property">ts-target-bitrate</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncTuning</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--tuning" title="The “tuning†property">tuning</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias-pct" title="The “twopass-vbr-bias-pct†property">twopass-vbr-bias-pct</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection-pct" title="The “twopass-vbr-maxsection-pct†property">twopass-vbr-maxsection-pct</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection-pct" title="The “twopass-vbr-minsection-pct†property">twopass-vbr-minsection-pct</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot-pct" title="The “undershoot-pct†property">undershoot-pct</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncScalingMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--v-scaling-mode" title="The “v-scaling-mode†property">v-scaling-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncScalingMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--horizontal-scaling-mode" title="The “horizontal-scaling-mode†property">horizontal-scaling-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-max-dist" title="The “keyframe-max-dist†property">keyframe-max-dist</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncKfMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-mode" title="The “keyframe-mode†property">keyframe-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate" title="The “max-intra-bitrate†property">max-intra-bitrate</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot" title="The “overshoot†property">overshoot</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-layer-id" title="The “temporal-scalability-layer-id†property">temporal-scalability-layer-id</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-number-layers" title="The “temporal-scalability-number-layers†property">temporal-scalability-number-layers</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-periodicity" title="The “temporal-scalability-periodicity†property">temporal-scalability-periodicity</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-rate-decimator" title="The “temporal-scalability-rate-decimator†property">temporal-scalability-rate-decimator</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-target-bitrate" title="The “temporal-scalability-target-bitrate†property">temporal-scalability-target-bitrate</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias" title="The “twopass-vbr-bias†property">twopass-vbr-bias</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection" title="The “twopass-vbr-maxsection†property">twopass-vbr-maxsection</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection" title="The “twopass-vbr-minsection†property">twopass-vbr-minsection</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot" title="The “undershoot†property">undershoot</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstVP8EncScalingMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode" title="The “vertical-scaling-mode†property">vertical-scaling-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstFraction</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase" title="The “timebase†property">timebase</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstVP8Enc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-vp8enc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc-struct" title="struct GstVP8Enc">GstVP8Enc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-vp8enc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a> - +----GstVP8Enc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a> + <span class="lineart">╰──</span> GstVP8Enc </pre> </div> <div class="refsect1"> @@ -64,75 +378,11 @@ GstVP8Enc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-vp8enc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes" title='The "arnr-maxframes" property'>arnr-maxframes</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-strength" title='The "arnr-strength" property'>arnr-strength</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-type" title='The "arnr-type" property'>arnr-type</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--auto-alt-ref" title='The "auto-alt-ref" property'>auto-alt-ref</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-initial-size" title='The "buffer-initial-size" property'>buffer-initial-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-optimal-size" title='The "buffer-optimal-size" property'>buffer-optimal-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--buffer-size" title='The "buffer-size" property'>buffer-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cpu-used" title='The "cpu-used" property'>cpu-used</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--cq-level" title='The "cq-level" property'>cq-level</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--deadline" title='The "deadline" property'>deadline</a>" <span class="type">gint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--dropframe-threshold" title='The "dropframe-threshold" property'>dropframe-threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--end-usage" title='The "end-usage" property'>end-usage</a>" <span class="type">GstVP8EncEndUsage</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--error-resilient" title='The "error-resilient" property'>error-resilient</a>" <span class="type">GstVP8EncErFlags</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--h-scaling-mode" title='The "h-scaling-mode" property'>h-scaling-mode</a>" <span class="type">GstVP8EncScalingMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-max-dist" title='The "kf-max-dist" property'>kf-max-dist</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--kf-mode" title='The "kf-mode" property'>kf-mode</a>" <span class="type">GstVP8EncKfMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--lag-in-frames" title='The "lag-in-frames" property'>lag-in-frames</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate-pct" title='The "max-intra-bitrate-pct" property'>max-intra-bitrate-pct</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-quantizer" title='The "max-quantizer" property'>max-quantizer</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--min-quantizer" title='The "min-quantizer" property'>min-quantizer</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--multipass-cache-file" title='The "multipass-cache-file" property'>multipass-cache-file</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-vp8enc.html#GstVP8Enc--multipass-mode" title='The "multipass-mode" property'>multipass-mode</a>" <span class="type">GstVP8EncMultipassMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--noise-sensitivity" title='The "noise-sensitivity" property'>noise-sensitivity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot-pct" title='The "overshoot-pct" property'>overshoot-pct</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-allowed" title='The "resize-allowed" property'>resize-allowed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-down-threshold" title='The "resize-down-threshold" property'>resize-down-threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--resize-up-threshold" title='The "resize-up-threshold" property'>resize-up-threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--sharpness" title='The "sharpness" property'>sharpness</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--static-threshold" title='The "static-threshold" property'>static-threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--target-bitrate" title='The "target-bitrate" property'>target-bitrate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--threads" title='The "threads" property'>threads</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--token-partitions" title='The "token-partitions" property'>token-partitions</a>" <span class="type">GstVP8EncTokenPartitions</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-layer-id" title='The "ts-layer-id" property'>ts-layer-id</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-number-layers" title='The "ts-number-layers" property'>ts-number-layers</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-periodicity" title='The "ts-periodicity" property'>ts-periodicity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-rate-decimator" title='The "ts-rate-decimator" property'>ts-rate-decimator</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--ts-target-bitrate" title='The "ts-target-bitrate" property'>ts-target-bitrate</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--tuning" title='The "tuning" property'>tuning</a>" <span class="type">GstVP8EncTuning</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias-pct" title='The "twopass-vbr-bias-pct" property'>twopass-vbr-bias-pct</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection-pct" title='The "twopass-vbr-maxsection-pct" property'>twopass-vbr-maxsection-pct</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection-pct" title='The "twopass-vbr-minsection-pct" property'>twopass-vbr-minsection-pct</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot-pct" title='The "undershoot-pct" property'>undershoot-pct</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--v-scaling-mode" title='The "v-scaling-mode" property'>v-scaling-mode</a>" <span class="type">GstVP8EncScalingMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--horizontal-scaling-mode" title='The "horizontal-scaling-mode" property'>horizontal-scaling-mode</a>" <span class="type">GstVP8EncScalingMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-max-dist" title='The "keyframe-max-dist" property'>keyframe-max-dist</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--keyframe-mode" title='The "keyframe-mode" property'>keyframe-mode</a>" <span class="type">GstVP8EncKfMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--max-intra-bitrate" title='The "max-intra-bitrate" property'>max-intra-bitrate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--overshoot" title='The "overshoot" property'>overshoot</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-layer-id" title='The "temporal-scalability-layer-id" property'>temporal-scalability-layer-id</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-number-layers" title='The "temporal-scalability-number-layers" property'>temporal-scalability-number-layers</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-periodicity" title='The "temporal-scalability-periodicity" property'>temporal-scalability-periodicity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-rate-decimator" title='The "temporal-scalability-rate-decimator" property'>temporal-scalability-rate-decimator</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--temporal-scalability-target-bitrate" title='The "temporal-scalability-target-bitrate" property'>temporal-scalability-target-bitrate</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-bias" title='The "twopass-vbr-bias" property'>twopass-vbr-bias</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-maxsection" title='The "twopass-vbr-maxsection" property'>twopass-vbr-maxsection</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--twopass-vbr-minsection" title='The "twopass-vbr-minsection" property'>twopass-vbr-minsection</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot" title='The "undershoot" property'>undershoot</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode" title='The "vertical-scaling-mode" property'>vertical-scaling-mode</a>" <span class="type">GstVP8EncScalingMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase" title='The "timebase" property'>timebase</a>" <span class="type">GstFraction</span> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-vp8enc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.157.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.160.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -158,7 +408,7 @@ GstVP8Enc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.157.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.160.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -213,7 +463,10 @@ GstVP8Enc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-vp8enc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-vp8enc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-vp8enc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstVP8Enc-struct"></a><h3>struct GstVP8Enc</h3> <pre class="programlisting">struct GstVP8Enc;</pre> @@ -224,451 +477,510 @@ GstVP8Enc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-vp8enc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstVP8Enc--arnr-maxframes"></a><h3>The <code class="literal">"arnr-maxframes"</code> property</h3> -<pre class="programlisting"> "arnr-maxframes" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--arnr-maxframes"></a><h3>The <code class="literal">“arnr-maxframesâ€</code> property</h3> +<pre class="programlisting"> “arnr-maxframes†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>AltRef maximum number of frames.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,15]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--arnr-strength"></a><h3>The <code class="literal">"arnr-strength"</code> property</h3> -<pre class="programlisting"> "arnr-strength" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--arnr-strength"></a><h3>The <code class="literal">“arnr-strengthâ€</code> property</h3> +<pre class="programlisting"> “arnr-strength†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>AltRef strength.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,6]</p> <p>Default value: 3</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--arnr-type"></a><h3>The <code class="literal">"arnr-type"</code> property</h3> -<pre class="programlisting"> "arnr-type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--arnr-type"></a><h3>The <code class="literal">“arnr-typeâ€</code> property</h3> +<pre class="programlisting"> “arnr-type†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>AltRef type.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,3]</p> <p>Default value: 3</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--auto-alt-ref"></a><h3>The <code class="literal">"auto-alt-ref"</code> property</h3> -<pre class="programlisting"> "auto-alt-ref" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstVP8Enc--auto-alt-ref"></a><h3>The <code class="literal">“auto-alt-refâ€</code> property</h3> +<pre class="programlisting"> “auto-alt-ref†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Automatically generate AltRef frames.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--buffer-initial-size"></a><h3>The <code class="literal">"buffer-initial-size"</code> property</h3> -<pre class="programlisting"> "buffer-initial-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--buffer-initial-size"></a><h3>The <code class="literal">“buffer-initial-sizeâ€</code> property</h3> +<pre class="programlisting"> “buffer-initial-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Initial client buffer size (ms).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 4000</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--buffer-optimal-size"></a><h3>The <code class="literal">"buffer-optimal-size"</code> property</h3> -<pre class="programlisting"> "buffer-optimal-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--buffer-optimal-size"></a><h3>The <code class="literal">“buffer-optimal-sizeâ€</code> property</h3> +<pre class="programlisting"> “buffer-optimal-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Optimal client buffer size (ms).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 5000</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--buffer-size"></a><h3>The <code class="literal">"buffer-size"</code> property</h3> -<pre class="programlisting"> "buffer-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--buffer-size"></a><h3>The <code class="literal">“buffer-sizeâ€</code> property</h3> +<pre class="programlisting"> “buffer-size†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Client buffer size (ms).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 6000</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--cpu-used"></a><h3>The <code class="literal">"cpu-used"</code> property</h3> -<pre class="programlisting"> "cpu-used" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--cpu-used"></a><h3>The <code class="literal">“cpu-usedâ€</code> property</h3> +<pre class="programlisting"> “cpu-used†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>CPU used.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [-16,16]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--cq-level"></a><h3>The <code class="literal">"cq-level"</code> property</h3> -<pre class="programlisting"> "cq-level" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--cq-level"></a><h3>The <code class="literal">“cq-levelâ€</code> property</h3> +<pre class="programlisting"> “cq-level†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Constrained quality level.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,63]</p> <p>Default value: 10</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--deadline"></a><h3>The <code class="literal">"deadline"</code> property</h3> -<pre class="programlisting"> "deadline" <span class="type">gint64</span> : Read / Write</pre> +<a name="GstVP8Enc--deadline"></a><h3>The <code class="literal">“deadlineâ€</code> property</h3> +<pre class="programlisting"> “deadline†<span class="type">gint64</span></pre> <p>Deadline per frame (usec, 0=disabled).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--dropframe-threshold"></a><h3>The <code class="literal">"dropframe-threshold"</code> property</h3> -<pre class="programlisting"> "dropframe-threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--dropframe-threshold"></a><h3>The <code class="literal">“dropframe-thresholdâ€</code> property</h3> +<pre class="programlisting"> “dropframe-threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Temporal resampling threshold (buf %).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--end-usage"></a><h3>The <code class="literal">"end-usage"</code> property</h3> -<pre class="programlisting"> "end-usage" <span class="type">GstVP8EncEndUsage</span> : Read / Write</pre> +<a name="GstVP8Enc--end-usage"></a><h3>The <code class="literal">“end-usageâ€</code> property</h3> +<pre class="programlisting"> “end-usage†<span class="type">GstVP8EncEndUsage</span></pre> <p>Rate control mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Variable Bit Rate (VBR) mode</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--error-resilient"></a><h3>The <code class="literal">"error-resilient"</code> property</h3> -<pre class="programlisting"> "error-resilient" <span class="type">GstVP8EncErFlags</span> : Read / Write</pre> +<a name="GstVP8Enc--error-resilient"></a><h3>The <code class="literal">“error-resilientâ€</code> property</h3> +<pre class="programlisting"> “error-resilient†<span class="type">GstVP8EncErFlags</span></pre> <p>Error resilience flags.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--h-scaling-mode"></a><h3>The <code class="literal">"h-scaling-mode"</code> property</h3> -<pre class="programlisting"> "h-scaling-mode" <span class="type">GstVP8EncScalingMode</span> : Read / Write</pre> +<a name="GstVP8Enc--h-scaling-mode"></a><h3>The <code class="literal">“h-scaling-modeâ€</code> property</h3> +<pre class="programlisting"> “h-scaling-mode†<span class="type">GstVP8EncScalingMode</span></pre> <p>Horizontal scaling mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Normal</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--kf-max-dist"></a><h3>The <code class="literal">"kf-max-dist"</code> property</h3> -<pre class="programlisting"> "kf-max-dist" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--kf-max-dist"></a><h3>The <code class="literal">“kf-max-distâ€</code> property</h3> +<pre class="programlisting"> “kf-max-dist†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Maximum distance between keyframes (number of frames).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 128</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--kf-mode"></a><h3>The <code class="literal">"kf-mode"</code> property</h3> -<pre class="programlisting"> "kf-mode" <span class="type">GstVP8EncKfMode</span> : Read / Write</pre> +<a name="GstVP8Enc--kf-mode"></a><h3>The <code class="literal">“kf-modeâ€</code> property</h3> +<pre class="programlisting"> “kf-mode†<span class="type">GstVP8EncKfMode</span></pre> <p>Keyframe placement.</p> +<p>Flags: Read / Write</p> <p>Default value: Determine optimal placement automatically</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--lag-in-frames"></a><h3>The <code class="literal">"lag-in-frames"</code> property</h3> -<pre class="programlisting"> "lag-in-frames" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--lag-in-frames"></a><h3>The <code class="literal">“lag-in-framesâ€</code> property</h3> +<pre class="programlisting"> “lag-in-frames†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Maximum number of frames to lag.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,25]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--max-intra-bitrate-pct"></a><h3>The <code class="literal">"max-intra-bitrate-pct"</code> property</h3> -<pre class="programlisting"> "max-intra-bitrate-pct" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--max-intra-bitrate-pct"></a><h3>The <code class="literal">“max-intra-bitrate-pctâ€</code> property</h3> +<pre class="programlisting"> “max-intra-bitrate-pct†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Maximum Intra frame bitrate.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--max-quantizer"></a><h3>The <code class="literal">"max-quantizer"</code> property</h3> -<pre class="programlisting"> "max-quantizer" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--max-quantizer"></a><h3>The <code class="literal">“max-quantizerâ€</code> property</h3> +<pre class="programlisting"> “max-quantizer†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Maximum Quantizer (worst).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,63]</p> <p>Default value: 63</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--min-quantizer"></a><h3>The <code class="literal">"min-quantizer"</code> property</h3> -<pre class="programlisting"> "min-quantizer" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--min-quantizer"></a><h3>The <code class="literal">“min-quantizerâ€</code> property</h3> +<pre class="programlisting"> “min-quantizer†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Minimum Quantizer (best).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,63]</p> <p>Default value: 4</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--multipass-cache-file"></a><h3>The <code class="literal">"multipass-cache-file"</code> property</h3> -<pre class="programlisting"> "multipass-cache-file" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstVP8Enc--multipass-cache-file"></a><h3>The <code class="literal">“multipass-cache-fileâ€</code> property</h3> +<pre class="programlisting"> “multipass-cache-file†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Multipass cache file.</p> +<p>Flags: Read / Write</p> <p>Default value: "multipass.cache"</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--multipass-mode"></a><h3>The <code class="literal">"multipass-mode"</code> property</h3> -<pre class="programlisting"> "multipass-mode" <span class="type">GstVP8EncMultipassMode</span> : Read / Write</pre> +<a name="GstVP8Enc--multipass-mode"></a><h3>The <code class="literal">“multipass-modeâ€</code> property</h3> +<pre class="programlisting"> “multipass-mode†<span class="type">GstVP8EncMultipassMode</span></pre> <p>Multipass encode mode.</p> +<p>Flags: Read / Write</p> <p>Default value: One pass encoding (default)</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--noise-sensitivity"></a><h3>The <code class="literal">"noise-sensitivity"</code> property</h3> -<pre class="programlisting"> "noise-sensitivity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--noise-sensitivity"></a><h3>The <code class="literal">“noise-sensitivityâ€</code> property</h3> +<pre class="programlisting"> “noise-sensitivity†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Noise sensisivity (frames to blur).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,6]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--overshoot-pct"></a><h3>The <code class="literal">"overshoot-pct"</code> property</h3> -<pre class="programlisting"> "overshoot-pct" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--overshoot-pct"></a><h3>The <code class="literal">“overshoot-pctâ€</code> property</h3> +<pre class="programlisting"> “overshoot-pct†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Datarate overshoot (max) target (%).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1000]</p> <p>Default value: 100</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--resize-allowed"></a><h3>The <code class="literal">"resize-allowed"</code> property</h3> -<pre class="programlisting"> "resize-allowed" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstVP8Enc--resize-allowed"></a><h3>The <code class="literal">“resize-allowedâ€</code> property</h3> +<pre class="programlisting"> “resize-allowed†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Allow spatial resampling.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--resize-down-threshold"></a><h3>The <code class="literal">"resize-down-threshold"</code> property</h3> -<pre class="programlisting"> "resize-down-threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--resize-down-threshold"></a><h3>The <code class="literal">“resize-down-thresholdâ€</code> property</h3> +<pre class="programlisting"> “resize-down-threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Downscale threshold (buf %).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100]</p> <p>Default value: 60</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--resize-up-threshold"></a><h3>The <code class="literal">"resize-up-threshold"</code> property</h3> -<pre class="programlisting"> "resize-up-threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--resize-up-threshold"></a><h3>The <code class="literal">“resize-up-thresholdâ€</code> property</h3> +<pre class="programlisting"> “resize-up-threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Upscale threshold (buf %).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100]</p> <p>Default value: 30</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--sharpness"></a><h3>The <code class="literal">"sharpness"</code> property</h3> -<pre class="programlisting"> "sharpness" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--sharpness"></a><h3>The <code class="literal">“sharpnessâ€</code> property</h3> +<pre class="programlisting"> “sharpness†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Filter sharpness.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,7]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--static-threshold"></a><h3>The <code class="literal">"static-threshold"</code> property</h3> -<pre class="programlisting"> "static-threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--static-threshold"></a><h3>The <code class="literal">“static-thresholdâ€</code> property</h3> +<pre class="programlisting"> “static-threshold†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Motion detection threshold.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--target-bitrate"></a><h3>The <code class="literal">"target-bitrate"</code> property</h3> -<pre class="programlisting"> "target-bitrate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--target-bitrate"></a><h3>The <code class="literal">“target-bitrateâ€</code> property</h3> +<pre class="programlisting"> “target-bitrate†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Target bitrate (in bits/sec).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 256000</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--threads"></a><h3>The <code class="literal">"threads"</code> property</h3> -<pre class="programlisting"> "threads" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--threads"></a><h3>The <code class="literal">“threadsâ€</code> property</h3> +<pre class="programlisting"> “threads†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of threads to use.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,64]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--token-partitions"></a><h3>The <code class="literal">"token-partitions"</code> property</h3> -<pre class="programlisting"> "token-partitions" <span class="type">GstVP8EncTokenPartitions</span> : Read / Write</pre> +<a name="GstVP8Enc--token-partitions"></a><h3>The <code class="literal">“token-partitionsâ€</code> property</h3> +<pre class="programlisting"> “token-partitions†<span class="type">GstVP8EncTokenPartitions</span></pre> <p>Number of token partitions.</p> +<p>Flags: Read / Write</p> <p>Default value: One token partition</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--ts-layer-id"></a><h3>The <code class="literal">"ts-layer-id"</code> property</h3> -<pre class="programlisting"> "ts-layer-id" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstVP8Enc--ts-layer-id"></a><h3>The <code class="literal">“ts-layer-idâ€</code> property</h3> +<pre class="programlisting"> “ts-layer-id†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Sequence defining coding layer membership.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--ts-number-layers"></a><h3>The <code class="literal">"ts-number-layers"</code> property</h3> -<pre class="programlisting"> "ts-number-layers" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--ts-number-layers"></a><h3>The <code class="literal">“ts-number-layersâ€</code> property</h3> +<pre class="programlisting"> “ts-number-layers†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of coding layers to use.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,5]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--ts-periodicity"></a><h3>The <code class="literal">"ts-periodicity"</code> property</h3> -<pre class="programlisting"> "ts-periodicity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--ts-periodicity"></a><h3>The <code class="literal">“ts-periodicityâ€</code> property</h3> +<pre class="programlisting"> “ts-periodicity†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Length of sequence that defines layer membership periodicity.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,16]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--ts-rate-decimator"></a><h3>The <code class="literal">"ts-rate-decimator"</code> property</h3> -<pre class="programlisting"> "ts-rate-decimator" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstVP8Enc--ts-rate-decimator"></a><h3>The <code class="literal">“ts-rate-decimatorâ€</code> property</h3> +<pre class="programlisting"> “ts-rate-decimator†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Rate decimation factors for each layer.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--ts-target-bitrate"></a><h3>The <code class="literal">"ts-target-bitrate"</code> property</h3> -<pre class="programlisting"> "ts-target-bitrate" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstVP8Enc--ts-target-bitrate"></a><h3>The <code class="literal">“ts-target-bitrateâ€</code> property</h3> +<pre class="programlisting"> “ts-target-bitrate†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Target bitrates for coding layers (one per layer, decreasing).</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--tuning"></a><h3>The <code class="literal">"tuning"</code> property</h3> -<pre class="programlisting"> "tuning" <span class="type">GstVP8EncTuning</span> : Read / Write</pre> +<a name="GstVP8Enc--tuning"></a><h3>The <code class="literal">“tuningâ€</code> property</h3> +<pre class="programlisting"> “tuning†<span class="type">GstVP8EncTuning</span></pre> <p>Tuning.</p> +<p>Flags: Read / Write</p> <p>Default value: Tune for PSNR</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--twopass-vbr-bias-pct"></a><h3>The <code class="literal">"twopass-vbr-bias-pct"</code> property</h3> -<pre class="programlisting"> "twopass-vbr-bias-pct" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--twopass-vbr-bias-pct"></a><h3>The <code class="literal">“twopass-vbr-bias-pctâ€</code> property</h3> +<pre class="programlisting"> “twopass-vbr-bias-pct†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>CBR/VBR bias (0=CBR, 100=VBR).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100]</p> <p>Default value: 50</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--twopass-vbr-maxsection-pct"></a><h3>The <code class="literal">"twopass-vbr-maxsection-pct"</code> property</h3> -<pre class="programlisting"> "twopass-vbr-maxsection-pct" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--twopass-vbr-maxsection-pct"></a><h3>The <code class="literal">“twopass-vbr-maxsection-pctâ€</code> property</h3> +<pre class="programlisting"> “twopass-vbr-maxsection-pct†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>GOP maximum bitrate (% target).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--twopass-vbr-minsection-pct"></a><h3>The <code class="literal">"twopass-vbr-minsection-pct"</code> property</h3> -<pre class="programlisting"> "twopass-vbr-minsection-pct" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--twopass-vbr-minsection-pct"></a><h3>The <code class="literal">“twopass-vbr-minsection-pctâ€</code> property</h3> +<pre class="programlisting"> “twopass-vbr-minsection-pct†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>GOP minimum bitrate (% target).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--undershoot-pct"></a><h3>The <code class="literal">"undershoot-pct"</code> property</h3> -<pre class="programlisting"> "undershoot-pct" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--undershoot-pct"></a><h3>The <code class="literal">“undershoot-pctâ€</code> property</h3> +<pre class="programlisting"> “undershoot-pct†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Datarate undershoot (min) target (%).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1000]</p> <p>Default value: 100</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--v-scaling-mode"></a><h3>The <code class="literal">"v-scaling-mode"</code> property</h3> -<pre class="programlisting"> "v-scaling-mode" <span class="type">GstVP8EncScalingMode</span> : Read / Write</pre> +<a name="GstVP8Enc--v-scaling-mode"></a><h3>The <code class="literal">“v-scaling-modeâ€</code> property</h3> +<pre class="programlisting"> “v-scaling-mode†<span class="type">GstVP8EncScalingMode</span></pre> <p>Vertical scaling mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Normal</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--horizontal-scaling-mode"></a><h3>The <code class="literal">"horizontal-scaling-mode"</code> property</h3> -<pre class="programlisting"> "horizontal-scaling-mode" <span class="type">GstVP8EncScalingMode</span> : Read / Write</pre> +<a name="GstVP8Enc--horizontal-scaling-mode"></a><h3>The <code class="literal">“horizontal-scaling-modeâ€</code> property</h3> +<pre class="programlisting"> “horizontal-scaling-mode†<span class="type">GstVP8EncScalingMode</span></pre> <p>Horizontal scaling mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Normal</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--keyframe-max-dist"></a><h3>The <code class="literal">"keyframe-max-dist"</code> property</h3> -<pre class="programlisting"> "keyframe-max-dist" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--keyframe-max-dist"></a><h3>The <code class="literal">“keyframe-max-distâ€</code> property</h3> +<pre class="programlisting"> “keyframe-max-dist†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Maximum distance between keyframes (number of frames).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 128</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--keyframe-mode"></a><h3>The <code class="literal">"keyframe-mode"</code> property</h3> -<pre class="programlisting"> "keyframe-mode" <span class="type">GstVP8EncKfMode</span> : Read / Write</pre> +<a name="GstVP8Enc--keyframe-mode"></a><h3>The <code class="literal">“keyframe-modeâ€</code> property</h3> +<pre class="programlisting"> “keyframe-mode†<span class="type">GstVP8EncKfMode</span></pre> <p>Keyframe placement.</p> +<p>Flags: Read / Write</p> <p>Default value: Determine optimal placement automatically</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--max-intra-bitrate"></a><h3>The <code class="literal">"max-intra-bitrate"</code> property</h3> -<pre class="programlisting"> "max-intra-bitrate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--max-intra-bitrate"></a><h3>The <code class="literal">“max-intra-bitrateâ€</code> property</h3> +<pre class="programlisting"> “max-intra-bitrate†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Maximum Intra frame bitrate.</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--overshoot"></a><h3>The <code class="literal">"overshoot"</code> property</h3> -<pre class="programlisting"> "overshoot" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--overshoot"></a><h3>The <code class="literal">“overshootâ€</code> property</h3> +<pre class="programlisting"> “overshoot†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Datarate overshoot (max) target (%).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1000]</p> <p>Default value: 100</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--temporal-scalability-layer-id"></a><h3>The <code class="literal">"temporal-scalability-layer-id"</code> property</h3> -<pre class="programlisting"> "temporal-scalability-layer-id" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstVP8Enc--temporal-scalability-layer-id"></a><h3>The <code class="literal">“temporal-scalability-layer-idâ€</code> property</h3> +<pre class="programlisting"> “temporal-scalability-layer-id†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Sequence defining coding layer membership.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--temporal-scalability-number-layers"></a><h3>The <code class="literal">"temporal-scalability-number-layers"</code> property</h3> -<pre class="programlisting"> "temporal-scalability-number-layers" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--temporal-scalability-number-layers"></a><h3>The <code class="literal">“temporal-scalability-number-layersâ€</code> property</h3> +<pre class="programlisting"> “temporal-scalability-number-layers†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Number of coding layers to use.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [1,5]</p> <p>Default value: 1</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--temporal-scalability-periodicity"></a><h3>The <code class="literal">"temporal-scalability-periodicity"</code> property</h3> -<pre class="programlisting"> "temporal-scalability-periodicity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--temporal-scalability-periodicity"></a><h3>The <code class="literal">“temporal-scalability-periodicityâ€</code> property</h3> +<pre class="programlisting"> “temporal-scalability-periodicity†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Length of sequence that defines layer membership periodicity.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,16]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--temporal-scalability-rate-decimator"></a><h3>The <code class="literal">"temporal-scalability-rate-decimator"</code> property</h3> -<pre class="programlisting"> "temporal-scalability-rate-decimator" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstVP8Enc--temporal-scalability-rate-decimator"></a><h3>The <code class="literal">“temporal-scalability-rate-decimatorâ€</code> property</h3> +<pre class="programlisting"> “temporal-scalability-rate-decimator†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Rate decimation factors for each layer.</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--temporal-scalability-target-bitrate"></a><h3>The <code class="literal">"temporal-scalability-target-bitrate"</code> property</h3> -<pre class="programlisting"> "temporal-scalability-target-bitrate" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read / Write</pre> +<a name="GstVP8Enc--temporal-scalability-target-bitrate"></a><h3>The <code class="literal">“temporal-scalability-target-bitrateâ€</code> property</h3> +<pre class="programlisting"> “temporal-scalability-target-bitrate†<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre> <p>Target bitrates for coding layers (one per layer, decreasing).</p> +<p>Flags: Read / Write</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--twopass-vbr-bias"></a><h3>The <code class="literal">"twopass-vbr-bias"</code> property</h3> -<pre class="programlisting"> "twopass-vbr-bias" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--twopass-vbr-bias"></a><h3>The <code class="literal">“twopass-vbr-biasâ€</code> property</h3> +<pre class="programlisting"> “twopass-vbr-bias†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>CBR/VBR bias (0=CBR, 100=VBR).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,100]</p> <p>Default value: 50</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--twopass-vbr-maxsection"></a><h3>The <code class="literal">"twopass-vbr-maxsection"</code> property</h3> -<pre class="programlisting"> "twopass-vbr-maxsection" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--twopass-vbr-maxsection"></a><h3>The <code class="literal">“twopass-vbr-maxsectionâ€</code> property</h3> +<pre class="programlisting"> “twopass-vbr-maxsection†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>GOP maximum bitrate (% target).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--twopass-vbr-minsection"></a><h3>The <code class="literal">"twopass-vbr-minsection"</code> property</h3> -<pre class="programlisting"> "twopass-vbr-minsection" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--twopass-vbr-minsection"></a><h3>The <code class="literal">“twopass-vbr-minsectionâ€</code> property</h3> +<pre class="programlisting"> “twopass-vbr-minsection†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>GOP minimum bitrate (% target).</p> +<p>Flags: Read / Write</p> <p>Allowed values: >= 0</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--undershoot"></a><h3>The <code class="literal">"undershoot"</code> property</h3> -<pre class="programlisting"> "undershoot" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre> +<a name="GstVP8Enc--undershoot"></a><h3>The <code class="literal">“undershootâ€</code> property</h3> +<pre class="programlisting"> “undershoot†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre> <p>Datarate undershoot (min) target (%).</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,1000]</p> <p>Default value: 100</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--vertical-scaling-mode"></a><h3>The <code class="literal">"vertical-scaling-mode"</code> property</h3> -<pre class="programlisting"> "vertical-scaling-mode" <span class="type">GstVP8EncScalingMode</span> : Read / Write</pre> +<a name="GstVP8Enc--vertical-scaling-mode"></a><h3>The <code class="literal">“vertical-scaling-modeâ€</code> property</h3> +<pre class="programlisting"> “vertical-scaling-mode†<span class="type">GstVP8EncScalingMode</span></pre> <p>Vertical scaling mode.</p> +<p>Flags: Read / Write</p> <p>Default value: Normal</p> </div> <hr> <div class="refsect2"> -<a name="GstVP8Enc--timebase"></a><h3>The <code class="literal">"timebase"</code> property</h3> -<pre class="programlisting"> "timebase" <span class="type">GstFraction</span> : Read / Write</pre> +<a name="GstVP8Enc--timebase"></a><h3>The <code class="literal">“timebaseâ€</code> property</h3> +<pre class="programlisting"> “timebase†<span class="type">GstFraction</span></pre> <p>Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate.</p> +<p>Flags: Read / Write</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 94176cab4..15ec37084 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html +++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>warptv</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: warptv</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-vp8enc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-wavenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-warptv.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-warptv.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-warptv.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-warptv.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-warptv.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-vp8enc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-wavenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-warptv"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,34 +30,37 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-warptv.top_of_page"></a>warptv</span></h2> <p>warptv — WarpTV does realtime goo'ing of the video input</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-warptv.synopsis"></a><h2>Synopsis</h2> -<a name="GstWarpTV"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-warptv.html#GstWarpTV-struct" title="struct GstWarpTV">GstWarpTV</a>; -</pre> +<a name="GstWarpTV"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-warptv.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-warptv.html#GstWarpTV-struct" title="struct GstWarpTV">GstWarpTV</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-warptv.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> - +----GstWarpTV +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a> + <span class="lineart">╰──</span> GstWarpTV </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-warptv.description"></a><h2>Description</h2> -<p> -WarpTV does realtime goo'ing of the video input. -</p> -<p> -</p> +<p>WarpTV does realtime goo'ing of the video input.</p> <div class="refsect2"> -<a name="id-1.2.158.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.161.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -75,12 +73,10 @@ WarpTV does realtime goo'ing of the video input. </div> This pipeline shows the effect of warptv on a test stream. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.158.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.161.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -106,7 +102,7 @@ WarpTV does realtime goo'ing of the video input. </div> <hr> <div class="refsect2"> -<a name="id-1.2.158.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.161.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -161,7 +157,10 @@ WarpTV does realtime goo'ing of the video input. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-warptv.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-warptv.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-warptv.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWarpTV-struct"></a><h3>struct GstWarpTV</h3> <pre class="programlisting">struct GstWarpTV;</pre> @@ -172,6 +171,6 @@ WarpTV does realtime goo'ing of the video input. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 a9b12cfa9..90deb332a 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html +++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html @@ -2,30 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>waveformsink</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: waveformsink</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-wavenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackdec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-waveformsink.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-waveformsink.description" class="shortcut">Description</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-waveformsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-waveformsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-wavenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-waveformsink"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -33,11 +30,24 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-waveformsink.top_of_page"></a>waveformsink</span></h2> <p>waveformsink — WaveForm audio sink</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-waveformsink.synopsis"></a><h2>Synopsis</h2> -<pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink" title="struct GstWaveFormSink">GstWaveFormSink</a>; +<div class="refsect1"> +<a name="gst-plugins-good-plugins-waveformsink.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink" title="struct GstWaveFormSink">GstWaveFormSink</a></td> +</tr></tbody> +</table></div> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-waveformsink.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> </pre> </div> <div class="refsect1"> @@ -45,7 +55,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.160.4.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.163.5.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -71,14 +81,17 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.160.4.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.163.5.2.2"></a><h3>Element Pads</h3> </div> </div> <p> </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-waveformsink.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-waveformsink.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-waveformsink.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWaveFormSink"></a><h3>struct GstWaveFormSink</h3> <pre class="programlisting">struct GstWaveFormSink { @@ -126,6 +139,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 028debee4..15557beae 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-warptv.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-waveformsink.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-wavenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-wavenc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-wavenc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-wavenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-warptv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-waveformsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-wavenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,21 +31,28 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-wavenc.top_of_page"></a>wavenc</span></h2> <p>wavenc — Encode raw audio into WAV</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-wavenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstWavEnc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct" title="struct GstWavEnc">GstWavEnc</a>; -</pre> +<a name="GstWavEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-wavenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct" title="struct GstWavEnc">GstWavEnc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavenc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstWavEnc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstWavEnc </pre> </div> <div class="refsect1"> @@ -62,13 +63,9 @@ GstWavEnc implements </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavenc.description"></a><h2>Description</h2> -<p> -Format an audio stream into the wav format. -</p> -<p> -</p> +<p>Format an audio stream into the wav format.</p> <div class="refsect2"> -<a name="id-1.2.159.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.162.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -92,12 +89,10 @@ Format an audio stream into the wav format. </div> Rip track 5 of an audio CD into a single wav file containing unencoded raw audio samples. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.159.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.162.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -123,7 +118,7 @@ Format an audio stream into the wav format. </div> <hr> <div class="refsect2"> -<a name="id-1.2.159.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.162.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -190,7 +185,10 @@ Format an audio stream into the wav format. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavenc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-wavenc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-wavenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWavEnc-struct"></a><h3>struct GstWavEnc</h3> <pre class="programlisting">struct GstWavEnc;</pre> @@ -201,6 +199,6 @@ Format an audio stream into the wav format. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 8f4f18d82..3dfdc594b 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavpackdec</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavpackdec</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-waveformsink.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-wavpackdec.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-wavpackdec.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-wavpackdec.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackdec.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-waveformsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-wavpackdec"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,22 +30,29 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-wavpackdec.top_of_page"></a>wavpackdec</span></h2> <p>wavpackdec — Decodes Wavpack audio data</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-wavpackdec.synopsis"></a><h2>Synopsis</h2> -<a name="GstWavpackDec"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec-struct" title="struct GstWavpackDec">GstWavpackDec</a>; -</pre> +<a name="GstWavpackDec"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-wavpackdec.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec-struct" title="struct GstWavpackDec">GstWavpackDec</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavpackdec.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> - +----GstWavpackDec +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a> + <span class="lineart">╰──</span> GstWavpackDec </pre> </div> <div class="refsect1"> @@ -58,7 +60,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.161.5.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.164.6.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -84,7 +86,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.161.5.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.164.6.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -147,7 +149,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavpackdec.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-wavpackdec.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-wavpackdec.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWavpackDec-struct"></a><h3>struct GstWavpackDec</h3> <pre class="programlisting">struct GstWavpackDec;</pre> @@ -158,6 +163,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 6ca4756bf..9b4c1f6df 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html @@ -2,36 +2,29 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavpackenc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavpackenc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-wavpackdec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-wavpackenc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-wavpackenc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-wavpackenc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-wavpackenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -  | - <a href="#gst-plugins-good-plugins-wavpackenc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackenc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-wavpackdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-wavpackenc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -39,22 +32,76 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-wavpackenc.top_of_page"></a>wavpackenc</span></h2> <p>wavpackenc — Encodes audio with the Wavpack lossless/lossy audio codec</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-wavpackenc.synopsis"></a><h2>Synopsis</h2> -<a name="GstWavpackEnc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct" title="struct GstWavpackEnc">GstWavpackEnc</a>; -</pre> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-wavpackenc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate" title="The “bitrate†property">bitrate</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bits-per-sample" title="The “bits-per-sample†property">bits-per-sample</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstWavpackEncCorrectionMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--correction-mode" title="The “correction-mode†property">correction-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--extra-processing" title="The “extra-processing†property">extra-processing</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstWavpackEncJSMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--joint-stereo-mode" title="The “joint-stereo-mode†property">joint-stereo-mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5" title="The “md5†property">md5</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">GstWavpackEncMode</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode" title="The “mode†property">mode</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstWavpackEnc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-wavpackenc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct" title="struct GstWavpackEnc">GstWavpackEnc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavpackenc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a> - +----GstWavpackEnc +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a> + <span class="lineart">╰──</span> GstWavpackEnc </pre> </div> <div class="refsect1"> @@ -64,23 +111,11 @@ GstWavpackEnc implements <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavpackenc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate" title='The "bitrate" property'>bitrate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bits-per-sample" title='The "bits-per-sample" property'>bits-per-sample</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--correction-mode" title='The "correction-mode" property'>correction-mode</a>" <span class="type">GstWavpackEncCorrectionMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--extra-processing" title='The "extra-processing" property'>extra-processing</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--joint-stereo-mode" title='The "joint-stereo-mode" property'>joint-stereo-mode</a>" <span class="type">GstWavpackEncJSMode</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5" title='The "md5" property'>md5</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode" title='The "mode" property'>mode</a>" <span class="type">GstWavpackEncMode</span> : Read / Write -</pre> -</div> -<div class="refsect1"> <a name="gst-plugins-good-plugins-wavpackenc.description"></a><h2>Description</h2> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.162.7.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.165.8.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -106,7 +141,7 @@ GstWavpackEnc implements </div> <hr> <div class="refsect2"> -<a name="id-1.2.162.7.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.165.8.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -185,7 +220,10 @@ GstWavpackEnc implements </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavpackenc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-wavpackenc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-wavpackenc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWavpackEnc-struct"></a><h3>struct GstWavpackEnc</h3> <pre class="programlisting">struct GstWavpackEnc;</pre> @@ -196,60 +234,67 @@ GstWavpackEnc implements <div class="refsect1"> <a name="gst-plugins-good-plugins-wavpackenc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstWavpackEnc--bitrate"></a><h3>The <code class="literal">"bitrate"</code> property</h3> -<pre class="programlisting"> "bitrate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstWavpackEnc--bitrate"></a><h3>The <code class="literal">“bitrateâ€</code> property</h3> +<pre class="programlisting"> “bitrate†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Try to encode with this average bitrate (bits/sec). This enables lossy encoding, values smaller than 24000 disable it again.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 9600000</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstWavpackEnc--bits-per-sample"></a><h3>The <code class="literal">"bits-per-sample"</code> property</h3> -<pre class="programlisting"> "bits-per-sample" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre> +<a name="GstWavpackEnc--bits-per-sample"></a><h3>The <code class="literal">“bits-per-sampleâ€</code> property</h3> +<pre class="programlisting"> “bits-per-sample†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre> <p>Try to encode with this amount of bits per sample. This enables lossy encoding, values smaller than 2.0 disable it again.</p> +<p>Flags: Read / Write</p> <p>Allowed values: [0,24]</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstWavpackEnc--correction-mode"></a><h3>The <code class="literal">"correction-mode"</code> property</h3> -<pre class="programlisting"> "correction-mode" <span class="type">GstWavpackEncCorrectionMode</span> : Read / Write</pre> +<a name="GstWavpackEnc--correction-mode"></a><h3>The <code class="literal">“correction-modeâ€</code> property</h3> +<pre class="programlisting"> “correction-mode†<span class="type">GstWavpackEncCorrectionMode</span></pre> <p>Use this mode for the correction stream. Only works in lossy mode!.</p> +<p>Flags: Read / Write</p> <p>Default value: Create no correction file</p> </div> <hr> <div class="refsect2"> -<a name="GstWavpackEnc--extra-processing"></a><h3>The <code class="literal">"extra-processing"</code> property</h3> -<pre class="programlisting"> "extra-processing" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstWavpackEnc--extra-processing"></a><h3>The <code class="literal">“extra-processingâ€</code> property</h3> +<pre class="programlisting"> “extra-processing†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Use better but slower filters for better compression/quality.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= 6</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstWavpackEnc--joint-stereo-mode"></a><h3>The <code class="literal">"joint-stereo-mode"</code> property</h3> -<pre class="programlisting"> "joint-stereo-mode" <span class="type">GstWavpackEncJSMode</span> : Read / Write</pre> +<a name="GstWavpackEnc--joint-stereo-mode"></a><h3>The <code class="literal">“joint-stereo-modeâ€</code> property</h3> +<pre class="programlisting"> “joint-stereo-mode†<span class="type">GstWavpackEncJSMode</span></pre> <p>Use this joint-stereo mode.</p> +<p>Flags: Read / Write</p> <p>Default value: auto</p> </div> <hr> <div class="refsect2"> -<a name="GstWavpackEnc--md5"></a><h3>The <code class="literal">"md5"</code> property</h3> -<pre class="programlisting"> "md5" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstWavpackEnc--md5"></a><h3>The <code class="literal">“md5â€</code> property</h3> +<pre class="programlisting"> “md5†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Store MD5 hash of raw samples within the file.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstWavpackEnc--mode"></a><h3>The <code class="literal">"mode"</code> property</h3> -<pre class="programlisting"> "mode" <span class="type">GstWavpackEncMode</span> : Read / Write</pre> +<a name="GstWavpackEnc--mode"></a><h3>The <code class="literal">“modeâ€</code> property</h3> +<pre class="programlisting"> “mode†<span class="type">GstWavpackEncMode</span></pre> <p>Speed versus compression tradeoff.</p> +<p>Flags: Read / Write</p> <p>Default value: Normal Compression</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 df752aeb4..0a11dc246 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavpackparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavpackparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-wavpackenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-wavparse.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-wavpackparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-wavpackparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-wavpackparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavpackparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-wavpackenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-wavparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-wavpackparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,33 +30,36 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-wavpackparse.top_of_page"></a>wavpackparse</span></h2> <p>wavpackparse — Wavpack parser</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-wavpackparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstWavpackParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-wavpackparse.html#GstWavpackParse-struct" title="struct GstWavpackParse">GstWavpackParse</a>; -</pre> +<a name="GstWavpackParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-wavpackparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-wavpackparse.html#GstWavpackParse-struct" title="struct GstWavpackParse">GstWavpackParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavpackparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> - +----GstWavpackParse +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/gstreamer-libs-GstBaseParse.html#GstBaseParse">GstBaseParse</a> + <span class="lineart">╰──</span> GstWavpackParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavpackparse.description"></a><h2>Description</h2> -<p> -This is an Wavpack parser. -</p> -<p> -</p> +<p>This is an Wavpack parser.</p> <div class="refsect2"> -<a name="id-1.2.163.5.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.166.6.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -74,12 +72,10 @@ This is an Wavpack parser. </div> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.163.5.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.166.6.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -105,7 +101,7 @@ This is an Wavpack parser. </div> <hr> <div class="refsect2"> -<a name="id-1.2.163.5.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.166.6.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -164,22 +160,23 @@ This is an Wavpack parser. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavpackparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-wavpackparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-wavpackparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWavpackParse-struct"></a><h3>struct GstWavpackParse</h3> <pre class="programlisting">struct GstWavpackParse;</pre> -<p> -The opaque GstWavpackParse object -</p> +<p>The opaque GstWavpackParse object</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavpackparse.see-also"></a><h2>See Also</h2> -<a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span> +<p><a class="link" href="gst-plugins-good-plugins-amrparse.html#GstAmrParse"><span class="type">GstAmrParse</span></a>, <span class="type">GstAACParse</span></p> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c0b20040a..5d90b6050 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html +++ b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>wavparse</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: wavparse</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-wavpackparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-webmmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-wavparse.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-wavparse.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-wavparse.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-wavparse.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-wavparse.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-wavpackparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-webmmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-wavparse"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,42 +31,52 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-wavparse.top_of_page"></a>wavparse</span></h2> <p>wavparse — Parse a .wav file into raw audio</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-wavparse.synopsis"></a><h2>Synopsis</h2> -<a name="GstWavParse"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-wavparse.html#GstWavParse-struct" title="struct GstWavParse">GstWavParse</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavparse.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstWavParse -</pre> +<a name="gst-plugins-good-plugins-wavparse.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody><tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length" title="The “ignore-length†property">ignore-length</a></td> +<td class="property_flags">Read / Write</td> +</tr></tbody> +</table></div> +</div> +<a name="GstWavParse"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-wavparse.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-wavparse.html#GstWavParse-struct" title="struct GstWavParse">GstWavParse</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavparse.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length" title='The "ignore-length" property'>ignore-length</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write +<a name="gst-plugins-good-plugins-wavparse.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstWavParse </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavparse.description"></a><h2>Description</h2> -<p> -Parse a .wav file into raw or compressed audio. -</p> -<p> -Wavparse supports both push and pull mode operations, making it possible to -stream from a network source. -</p> -<p> -</p> +<p>Parse a .wav file into raw or compressed audio.</p> +<p>Wavparse supports both push and pull mode operations, making it possible to +stream from a network source.</p> <div class="refsect2"> -<a name="id-1.2.164.6.4.1"></a><h3>Example launch line</h3> +<a name="id-1.2.167.7.4"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -97,15 +101,10 @@ wav file is assumed to contain raw uncompressed samples. </div> Stream data from a network url. </div> -<p> -</p> -<p> -Last reviewed on 2007-02-14 (0.10.6) -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.164.6.6.1"></a><h3>Element Information</h3> +<a name="id-1.2.167.7.5.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -131,7 +130,7 @@ Last reviewed on 2007-02-14 (0.10.6) </div> <hr> <div class="refsect2"> -<a name="id-1.2.164.6.6.2"></a><h3>Element Pads</h3> +<a name="id-1.2.167.7.5.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -290,34 +289,33 @@ Last reviewed on 2007-02-14 (0.10.6) </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-wavparse.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-wavparse.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-wavparse.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWavParse-struct"></a><h3>struct GstWavParse</h3> <pre class="programlisting">struct GstWavParse;</pre> -<p> -Opaque data structure. -</p> +<p>Opaque data structure.</p> </div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-wavparse.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstWavParse--ignore-length"></a><h3>The <code class="literal">"ignore-length"</code> property</h3> -<pre class="programlisting"> "ignore-length" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> -<p> -This selects whether the length found in a data chunk +<a name="GstWavParse--ignore-length"></a><h3>The <code class="literal">“ignore-lengthâ€</code> property</h3> +<pre class="programlisting"> “ignore-length†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> +<p>This selects whether the length found in a data chunk should be ignored. This may be useful for streamed audio where the length is unknown until the end of streaming, and various software/hardware just puts some random value -in there and hopes it doesn't break too much. -</p> +in there and hopes it doesn't break too much.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> -<p class="since">Since 0.10.36</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 db2fbe610..eecc31068 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html +++ b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>webmmux</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: webmmux</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-wavparse.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-ximagesrc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-webmmux.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-webmmux.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-webmmux.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-webmmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-webmmux.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-webmmux.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-webmmux.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-wavparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-ximagesrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-webmmux"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,22 +31,29 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-webmmux.top_of_page"></a>webmmux</span></h2> <p>webmmux — Muxes video and audio streams into a WebM stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-webmmux.synopsis"></a><h2>Synopsis</h2> -<a name="GstWebMMux"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-webmmux.html#GstWebMMux-struct" title="struct GstWebMMux">GstWebMMux</a>; -</pre> +<a name="GstWebMMux"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-webmmux.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-webmmux.html#GstWebMMux-struct" title="struct GstWebMMux">GstWebMMux</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-webmmux.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux">GstMatroskaMux</a> - +----GstWebMMux +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux">GstMatroskaMux</a> + <span class="lineart">╰──</span> GstWebMMux </pre> </div> <div class="refsect1"> @@ -63,13 +64,9 @@ GstWebMMux implements </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-webmmux.description"></a><h2>Description</h2> -<p> -webmmux muxes VP8 video and Vorbis audio streams into a WebM file. -</p> -<p> -</p> +<p>webmmux muxes VP8 video and Vorbis audio streams into a WebM file.</p> <div class="refsect2"> -<a name="id-1.2.165.6.3.1"></a><h3>Example launch line</h3> +<a name="id-1.2.168.7.3"></a><h3>Example launch line</h3> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> @@ -103,12 +100,10 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. </div> This pipeline muxes a test video and a sine wave into a WebM file. </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.165.6.4.1"></a><h3>Element Information</h3> +<a name="id-1.2.168.7.4.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -134,7 +129,7 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. </div> <hr> <div class="refsect2"> -<a name="id-1.2.165.6.4.2"></a><h3>Element Pads</h3> +<a name="id-1.2.168.7.4.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -269,7 +264,10 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-webmmux.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-webmmux.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-webmmux.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstWebMMux-struct"></a><h3>struct GstWebMMux</h3> <pre class="programlisting">struct GstWebMMux;</pre> @@ -280,6 +278,6 @@ webmmux muxes VP8 video and Vorbis audio streams into a WebM file. </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 e31b31221..313a29496 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html @@ -2,34 +2,28 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>ximagesrc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: ximagesrc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-webmmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="gst-plugins-good-plugins-y4menc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-ximagesrc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-ximagesrc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-ximagesrc.object-hierarchy" class="shortcut">Object Hierarchy</a> -  | - <a href="#gst-plugins-good-plugins-ximagesrc.properties" class="shortcut">Properties</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ximagesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ximagesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-ximagesrc.properties" class="shortcut">Properties</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-webmmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="gst-plugins-good-plugins-y4menc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-ximagesrc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -37,39 +31,99 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-ximagesrc.top_of_page"></a>ximagesrc</span></h2> <p>ximagesrc — Creates a screenshot video stream</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-ximagesrc.synopsis"></a><h2>Synopsis</h2> -<a name="GstXImageSrc"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc-struct" title="struct GstXImageSrc">GstXImageSrc</a>; -</pre> -</div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-ximagesrc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> - +----GstXImageSrc -</pre> +<a name="gst-plugins-good-plugins-ximagesrc.properties"></a><h2>Properties</h2> +<div class="informaltable"><table border="0"> +<colgroup> +<col width="150px" class="properties_type"> +<col width="300px" class="properties_name"> +<col width="200px" class="properties_flags"> +</colgroup> +<tbody> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name" title="The “display-name†property">display-name</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--screen-num" title="The “screen-num†property">screen-num</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--show-pointer" title="The “show-pointer†property">show-pointer</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endx" title="The “endx†property">endx</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endy" title="The “endy†property">endy</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--startx" title="The “startx†property">startx</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--starty" title="The “starty†property">starty</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--use-damage" title="The “use-damage†property">use-damage</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--remote" title="The “remote†property">remote</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"><span class="type">guint64</span></td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid" title="The “xid†property">xid</a></td> +<td class="property_flags">Read / Write</td> +</tr> +<tr> +<td class="property_type"> +<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td> +<td class="property_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname" title="The “xname†property">xname</a></td> +<td class="property_flags">Read / Write</td> +</tr> +</tbody> +</table></div> +</div> +<a name="GstXImageSrc"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-ximagesrc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc-struct" title="struct GstXImageSrc">GstXImageSrc</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-ximagesrc.properties"></a><h2>Properties</h2> -<pre class="synopsis"> - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name" title='The "display-name" property'>display-name</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-ximagesrc.html#GstXImageSrc--screen-num" title='The "screen-num" property'>screen-num</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--show-pointer" title='The "show-pointer" property'>show-pointer</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endx" title='The "endx" property'>endx</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--endy" title='The "endy" property'>endy</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--startx" title='The "startx" property'>startx</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--starty" title='The "starty" property'>starty</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--use-damage" title='The "use-damage" property'>use-damage</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--remote" title='The "remote" property'>remote</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid" title='The "xid" property'>xid</a>" <span class="type">guint64</span> : Read / Write - "<a class="link" href="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname" title='The "xname" property'>xname</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write +<a name="gst-plugins-good-plugins-ximagesrc.object-hierarchy"></a><h2>Object Hierarchy</h2> +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a> + <span class="lineart">╰──</span> GstXImageSrc </pre> </div> <div class="refsect1"> @@ -77,7 +131,7 @@ <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.166.6.2.1"></a><h3>Element Information</h3> +<a name="id-1.2.169.7.2.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -103,7 +157,7 @@ </div> <hr> <div class="refsect2"> -<a name="id-1.2.166.6.2.2"></a><h3>Element Pads</h3> +<a name="id-1.2.169.7.2.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -134,7 +188,10 @@ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-ximagesrc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-ximagesrc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-ximagesrc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstXImageSrc-struct"></a><h3>struct GstXImageSrc</h3> <pre class="programlisting">struct GstXImageSrc;</pre> @@ -145,90 +202,101 @@ <div class="refsect1"> <a name="gst-plugins-good-plugins-ximagesrc.property-details"></a><h2>Property Details</h2> <div class="refsect2"> -<a name="GstXImageSrc--display-name"></a><h3>The <code class="literal">"display-name"</code> property</h3> -<pre class="programlisting"> "display-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstXImageSrc--display-name"></a><h3>The <code class="literal">“display-nameâ€</code> property</h3> +<pre class="programlisting"> “display-name†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>X Display Name.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--screen-num"></a><h3>The <code class="literal">"screen-num"</code> property</h3> -<pre class="programlisting"> "screen-num" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstXImageSrc--screen-num"></a><h3>The <code class="literal">“screen-numâ€</code> property</h3> +<pre class="programlisting"> “screen-num†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>X Screen Number.</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= G_MAXINT</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--show-pointer"></a><h3>The <code class="literal">"show-pointer"</code> property</h3> -<pre class="programlisting"> "show-pointer" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstXImageSrc--show-pointer"></a><h3>The <code class="literal">“show-pointerâ€</code> property</h3> +<pre class="programlisting"> “show-pointer†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Show mouse pointer (if XFixes extension enabled).</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--endx"></a><h3>The <code class="literal">"endx"</code> property</h3> -<pre class="programlisting"> "endx" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstXImageSrc--endx"></a><h3>The <code class="literal">“endxâ€</code> property</h3> +<pre class="programlisting"> “endx†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>X coordinate of bottom right corner of area to be recorded (0 for bottom right of screen).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= G_MAXINT</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--endy"></a><h3>The <code class="literal">"endy"</code> property</h3> -<pre class="programlisting"> "endy" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstXImageSrc--endy"></a><h3>The <code class="literal">“endyâ€</code> property</h3> +<pre class="programlisting"> “endy†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Y coordinate of bottom right corner of area to be recorded (0 for bottom right of screen).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= G_MAXINT</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--startx"></a><h3>The <code class="literal">"startx"</code> property</h3> -<pre class="programlisting"> "startx" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstXImageSrc--startx"></a><h3>The <code class="literal">“startxâ€</code> property</h3> +<pre class="programlisting"> “startx†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>X coordinate of top left corner of area to be recorded (0 for top left of screen).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= G_MAXINT</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--starty"></a><h3>The <code class="literal">"starty"</code> property</h3> -<pre class="programlisting"> "starty" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre> +<a name="GstXImageSrc--starty"></a><h3>The <code class="literal">“startyâ€</code> property</h3> +<pre class="programlisting"> “starty†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre> <p>Y coordinate of top left corner of area to be recorded (0 for top left of screen).</p> +<p>Flags: Read / Write</p> <p>Allowed values: <= G_MAXINT</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--use-damage"></a><h3>The <code class="literal">"use-damage"</code> property</h3> -<pre class="programlisting"> "use-damage" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstXImageSrc--use-damage"></a><h3>The <code class="literal">“use-damageâ€</code> property</h3> +<pre class="programlisting"> “use-damage†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Use XDamage (if XDamage extension enabled).</p> +<p>Flags: Read / Write</p> <p>Default value: TRUE</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--remote"></a><h3>The <code class="literal">"remote"</code> property</h3> -<pre class="programlisting"> "remote" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre> +<a name="GstXImageSrc--remote"></a><h3>The <code class="literal">“remoteâ€</code> property</h3> +<pre class="programlisting"> “remote†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> <p>Whether the display is remote.</p> +<p>Flags: Read / Write</p> <p>Default value: FALSE</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--xid"></a><h3>The <code class="literal">"xid"</code> property</h3> -<pre class="programlisting"> "xid" <span class="type">guint64</span> : Read / Write</pre> +<a name="GstXImageSrc--xid"></a><h3>The <code class="literal">“xidâ€</code> property</h3> +<pre class="programlisting"> “xid†<span class="type">guint64</span></pre> <p>Window XID to capture from.</p> +<p>Flags: Read / Write</p> <p>Default value: 0</p> </div> <hr> <div class="refsect2"> -<a name="GstXImageSrc--xname"></a><h3>The <code class="literal">"xname"</code> property</h3> -<pre class="programlisting"> "xname" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre> +<a name="GstXImageSrc--xname"></a><h3>The <code class="literal">“xnameâ€</code> property</h3> +<pre class="programlisting"> “xname†<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre> <p>Window name to capture from.</p> +<p>Flags: Read / Write</p> <p>Default value: NULL</p> </div> </div> </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</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 c0c1e1fc1..2d860bbe5 100644 --- a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html +++ b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html @@ -2,32 +2,27 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>y4menc</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: y4menc</title> <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="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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> -<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> -<tr valign="middle"> -<td><a accesskey="p" href="gst-plugins-good-plugins-ximagesrc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GStreamer Good Plugins 1.0 Plugins Reference Manual</th> -<td><a accesskey="n" href="ch02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr> -<tr><td colspan="5" class="shortcuts"> -<a href="#gst-plugins-good-plugins-y4menc.synopsis" class="shortcut">Top</a> -  | - <a href="#gst-plugins-good-plugins-y4menc.description" class="shortcut">Description</a> -  | - <a href="#gst-plugins-good-plugins-y4menc.object-hierarchy" class="shortcut">Object Hierarchy</a> -</td></tr> -</table> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"> +<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-y4menc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> + <a href="#gst-plugins-good-plugins-y4menc.object-hierarchy" class="shortcut">Object Hierarchy</a></span> +</td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="gst-plugins-good-plugins-ximagesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="ch02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> <div class="refentry"> <a name="gst-plugins-good-plugins-y4menc"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> @@ -35,29 +30,34 @@ <h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-y4menc.top_of_page"></a>y4menc</span></h2> <p>y4menc — Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</p> </td> -<td valign="top" align="right"></td> +<td class="gallery_image" valign="top" align="right"></td> </tr></table></div> -<div class="refsynopsisdiv"> -<a name="gst-plugins-good-plugins-y4menc.synopsis"></a><h2>Synopsis</h2> -<a name="GstY4mEncode"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-good-plugins-y4menc.html#GstY4mEncode-struct" title="struct GstY4mEncode">GstY4mEncode</a>; -</pre> +<a name="GstY4mEncode"></a><div class="refsect1"> +<a name="gst-plugins-good-plugins-y4menc.other"></a><h2>Types and Values</h2> +<div class="informaltable"><table width="100%" border="0"> +<colgroup> +<col width="150px" class="name"> +<col class="description"> +</colgroup> +<tbody><tr> +<td class="datatype_keyword">struct</td> +<td class="function_name"><a class="link" href="gst-plugins-good-plugins-y4menc.html#GstY4mEncode-struct" title="struct GstY4mEncode">GstY4mEncode</a></td> +</tr></tbody> +</table></div> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-y4menc.object-hierarchy"></a><h2>Object Hierarchy</h2> -<pre class="synopsis"> - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> - +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> - +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> - +----GstY4mEncode +<pre class="screen"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> + <span class="lineart">╰──</span> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> + <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> + <span class="lineart">╰──</span> GstY4mEncode </pre> </div> <div class="refsect1"> <a name="gst-plugins-good-plugins-y4menc.description"></a><h2>Description</h2> -<p> -</p> <div class="refsect2"> -<a name="id-1.2.167.5.2.1"></a><h3>Example launch line</h3> +<a name="id-1.2.170.6.2"></a><h3>Example launch line</h3> <p> Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project. </p> @@ -72,12 +72,10 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ <p> </p> </div> -<p> -</p> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="refsect2"> -<a name="id-1.2.167.5.3.1"></a><h3>Element Information</h3> +<a name="id-1.2.170.6.3.1"></a><h3>Element Information</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -103,7 +101,7 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ </div> <hr> <div class="refsect2"> -<a name="id-1.2.167.5.3.2"></a><h3>Element Pads</h3> +<a name="id-1.2.170.6.3.2"></a><h3>Element Pads</h3> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> @@ -158,7 +156,10 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ </p> </div> <div class="refsect1"> -<a name="gst-plugins-good-plugins-y4menc.details"></a><h2>Details</h2> +<a name="gst-plugins-good-plugins-y4menc.functions_details"></a><h2>Functions</h2> +</div> +<div class="refsect1"> +<a name="gst-plugins-good-plugins-y4menc.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="GstY4mEncode-struct"></a><h3>struct GstY4mEncode</h3> <pre class="programlisting">struct GstY4mEncode;</pre> @@ -169,6 +170,6 @@ gst-launch-0.10 videotestsrc num-buffers=250 \ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</div> </body> </html> \ No newline at end of file diff --git a/docs/plugins/html/home.png b/docs/plugins/html/home.png index 17003611d9df2b066afc682cbde962f3a575002d..9346b336a784463192c7daab5133a3673dd69845 100644 GIT binary patch delta 238 zcmeBUZD3OD4DfU3<&xrJU|`_&^l%9R(gGmN!3HGdKmSjhs3=p<dmSiyozY2Sb_GzB zy~NYkmHjTefRMb<LLN0Spir-;i(`nz>ARQqaxysz9Q}BI-m)~YggoA|1V*z2{cQ=d z;!=?fvu4~`n82RKrk1UubNXTJj1GP|o-=>$A29f{JgJ9K`^t{Q-oWs>M&_hvT&MjX z@T4-&sBW+1^4oCGWij)gZ^F?&4{tD^snshuo_S#H_Z3c6f95eV9?NCU<?hO_f3}@T j&okEiOkDJ@!(W)JRjr=39h3<Jx{Sfo)z4*}Q$iB}RzX!i delta 639 zcmV-_0)YL10*(bCiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u+Np+Dmo-00J9HL_t(|oYj@FYZGxC#XsM2Lx<ns zaKi~5enW%~9d2;Ep+iAIN((MREnFu@hYnpj+@O<xf`dcH3N0vzIJDr941pfhfDj>t zW(Y*EkbnV&=hBmFY+_Q|!3S@7fBbmw`|iu{cW}e7Ne@c81v~;Auy1Bxt}Q^)0`La# z=TaX?fd&wjw9jVNpLFQL{DGuiuh-Ms+M1FiQLEL`2z-<DaN-7%wt#2tb~{*JUMA0T z0HP>jcXyXstwy8K0KhrN=H@2e`!nFSnGMDn2a;Y%QngxD6h#6qFbDzxe_CB#Rhp&> z!%$h46;1p&^GMQ1N!r=j(d_K(ALeBipKEb(@zQ{qA@c>G3MAXx+pMpzGZ>6+3Xo+P z{r&`dEiZFrWo7Kt!;Irt^YioN22Y30w<P^IJv~(%$5WY?>Aly{(NPidQc{4VC*zhm zEuC}P+uJKbULfg1x7(F-f9{{n%RFz=41hD|97{_}bUGbswHlR5g(OM-zPJ+dJSWd{ z;yA{8kM|y+gQUBXdXm&?wFD?l(@{5dB(f|Mpo4>hLi#T0-i(>mfjhvbsYV`;4sgfJ z-p>G-SqJ!fjR6BQYs1h*y9xaN0l{VB;o%`08yiy@)$8@~2PD1gRd&0-pW&-82m&1+ zA4^j6vIcL%FudPvHaR&tnQHn1b8~Z4Diwg&g?8bOcK!-J2Er>Pz!|U)JU6qSSM-<; ZzW@pK;yM<YG7$g(002ovPDHLkV1hUp8=e3F diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html index 851b02ad3..bc272f043 100644 --- a/docs/plugins/html/index.html +++ b/docs/plugins/html/index.html @@ -2,11 +2,11 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>GStreamer Good Plugins 1.0 Plugins Reference Manual</title> +<title>GStreamer Good Plugins 1.0 Plugins Reference Manual: GStreamer Good Plugins 1.0 Plugins Reference Manual</title> <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.19 (XML mode)"> +<meta name="generator" content="GTK-Doc V1.20 (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.2.4) + for GStreamer Good Plugins 1.0 (1.3.1) 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> @@ -416,6 +416,12 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"> — Splits RTP streams based on the SSRC</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxsend.html">rtprtxsend</a></span><span class="refpurpose"> — Retransmit RTP packets when needed, according to RFC4588</span> +</dt> +<dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxreceive.html">rtprtxreceive</a></span><span class="refpurpose"> — Receive retransmitted RTP packets according to RFC4588</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"> — Parses an SBC bluetooth audio stream</span> </dt> <dt> @@ -428,6 +434,9 @@ <span class="refentrytitle"><a href="gst-plugins-good-plugins-shapewipe.html">shapewipe</a></span><span class="refpurpose"> — Adds a shape wipe transition to a video stream</span> </dt> <dt> +<span class="refentrytitle"><a href="gst-plugins-good-plugins-shout2send.html">shout2send</a></span><span class="refpurpose"> — Sends data to an icecast server</span> +</dt> +<dt> <span class="refentrytitle"><a href="gst-plugins-good-plugins-smpte.html">smpte</a></span><span class="refpurpose"> — Apply the standard SMPTE transitions on video images</span> </dt> <dt> @@ -750,6 +759,6 @@ </div> <div class="footer"> <hr> - Generated by GTK-Doc V1.19</div> + Generated by GTK-Doc V1.20</div> </body> </html> \ No newline at end of file diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml index a5e7884fe..7b604622d 100644 --- a/docs/plugins/html/index.sgml +++ b/docs/plugins/html/index.sgml @@ -1,24 +1,42 @@ <ONLINE href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/"> <ANCHOR id="gst-plugins-good-plugins-3gppmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html"> -<ANCHOR id="gst-plugins-good-plugins-3gppmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-3gppmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.properties"> +<ANCHOR id="Gst3GPPMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux"> +<ANCHOR id="gst-plugins-good-plugins-3gppmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.other"> +<ANCHOR id="gst-plugins-good-plugins-3gppmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-3gppmux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-3gppmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.description"> -<ANCHOR id="gst-plugins-good-plugins-3gppmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.details"> +<ANCHOR id="gst-plugins-good-plugins-3gppmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-3gppmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.other_details"> +<ANCHOR id="Gst3GPPMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux-struct"> +<ANCHOR id="gst-plugins-good-plugins-3gppmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#gst-plugins-good-plugins-3gppmux.property-details"> +<ANCHOR id="Gst3GPPMux--dts-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--dts-method"> +<ANCHOR id="Gst3GPPMux--faststart" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--faststart"> +<ANCHOR id="Gst3GPPMux--faststart-file" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--faststart-file"> +<ANCHOR id="Gst3GPPMux--fragment-duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--fragment-duration"> +<ANCHOR id="Gst3GPPMux--moov-recovery-file" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--moov-recovery-file"> +<ANCHOR id="Gst3GPPMux--movie-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--movie-timescale"> +<ANCHOR id="Gst3GPPMux--presentation-time" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--presentation-time"> +<ANCHOR id="Gst3GPPMux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--streamable"> +<ANCHOR id="Gst3GPPMux--trak-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux--trak-timescale"> <ANCHOR id="gst-plugins-good-plugins-aacparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html"> -<ANCHOR id="gst-plugins-good-plugins-aacparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.synopsis"> <ANCHOR id="GstAacParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#GstAacParse"> +<ANCHOR id="gst-plugins-good-plugins-aacparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.other"> <ANCHOR id="gst-plugins-good-plugins-aacparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-aacparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.description"> -<ANCHOR id="gst-plugins-good-plugins-aacparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.details"> +<ANCHOR id="gst-plugins-good-plugins-aacparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-aacparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.other_details"> <ANCHOR id="GstAacParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#GstAacParse-struct"> <ANCHOR id="gst-plugins-good-plugins-aacparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aacparse.html#gst-plugins-good-plugins-aacparse.see-also"> <ANCHOR id="gst-plugins-good-plugins-aasink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html"> -<ANCHOR id="gst-plugins-good-plugins-aasink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.synopsis"> -<ANCHOR id="GstAASink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#GstAASink"> -<ANCHOR id="gst-plugins-good-plugins-aasink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-aasink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.properties"> <ANCHOR id="gst-plugins-good-plugins-aasink.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.signals"> +<ANCHOR id="GstAASink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#GstAASink"> +<ANCHOR id="gst-plugins-good-plugins-aasink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.other"> +<ANCHOR id="gst-plugins-good-plugins-aasink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-aasink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.description"> -<ANCHOR id="gst-plugins-good-plugins-aasink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.details"> +<ANCHOR id="gst-plugins-good-plugins-aasink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-aasink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.other_details"> <ANCHOR id="GstAASink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#GstAASink-struct"> <ANCHOR id="gst-plugins-good-plugins-aasink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#gst-plugins-good-plugins-aasink.property-details"> <ANCHOR id="GstAASink--brightness" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#GstAASink--brightness"> @@ -36,20 +54,22 @@ <ANCHOR id="GstAASink-frame-displayed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#GstAASink-frame-displayed"> <ANCHOR id="GstAASink-have-size" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aasink.html#GstAASink-have-size"> <ANCHOR id="gst-plugins-good-plugins-ac3parse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html"> -<ANCHOR id="gst-plugins-good-plugins-ac3parse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.synopsis"> <ANCHOR id="GstAc3Parse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#GstAc3Parse"> +<ANCHOR id="gst-plugins-good-plugins-ac3parse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.other"> <ANCHOR id="gst-plugins-good-plugins-ac3parse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-ac3parse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.description"> -<ANCHOR id="gst-plugins-good-plugins-ac3parse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.details"> +<ANCHOR id="gst-plugins-good-plugins-ac3parse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-ac3parse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.other_details"> <ANCHOR id="GstAc3Parse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#GstAc3Parse-struct"> <ANCHOR id="gst-plugins-good-plugins-ac3parse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ac3parse.html#gst-plugins-good-plugins-ac3parse.see-also"> <ANCHOR id="gst-plugins-good-plugins-agingtv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html"> -<ANCHOR id="gst-plugins-good-plugins-agingtv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-agingtv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.properties"> <ANCHOR id="GstAgingTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV"> +<ANCHOR id="gst-plugins-good-plugins-agingtv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.other"> <ANCHOR id="gst-plugins-good-plugins-agingtv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-agingtv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.properties"> <ANCHOR id="gst-plugins-good-plugins-agingtv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.description"> -<ANCHOR id="gst-plugins-good-plugins-agingtv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.details"> +<ANCHOR id="gst-plugins-good-plugins-agingtv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-agingtv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.other_details"> <ANCHOR id="GstAgingTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV-struct"> <ANCHOR id="gst-plugins-good-plugins-agingtv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#gst-plugins-good-plugins-agingtv.property-details"> <ANCHOR id="GstAgingTV--color-aging" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV--color-aging"> @@ -57,18 +77,15 @@ <ANCHOR id="GstAgingTV--pits" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits"> <ANCHOR id="GstAgingTV--scratch-lines" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines"> <ANCHOR id="gst-plugins-good-plugins-alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html"> -<ANCHOR id="gst-plugins-good-plugins-alpha.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-alpha.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.properties"> <ANCHOR id="GstAlpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha"> +<ANCHOR id="gst-plugins-good-plugins-alpha.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.other"> <ANCHOR id="gst-plugins-good-plugins-alpha.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-alpha.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.properties"> <ANCHOR id="gst-plugins-good-plugins-alpha.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.description"> -<ANCHOR id="gst-plugins-good-plugins-alpha.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.details"> +<ANCHOR id="gst-plugins-good-plugins-alpha.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-alpha.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.other_details"> <ANCHOR id="GstAlpha-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha-struct"> <ANCHOR id="GstAlphaMethod" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlphaMethod"> -<ANCHOR id="ALPHA-METHOD-SET:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-SET:CAPS"> -<ANCHOR id="ALPHA-METHOD-GREEN:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-GREEN:CAPS"> -<ANCHOR id="ALPHA-METHOD-BLUE:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-BLUE:CAPS"> -<ANCHOR id="ALPHA-METHOD-CUSTOM:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-CUSTOM:CAPS"> <ANCHOR id="gst-plugins-good-plugins-alpha.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.property-details"> <ANCHOR id="GstAlpha--alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha--alpha"> <ANCHOR id="GstAlpha--angle" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha--angle"> @@ -81,79 +98,89 @@ <ANCHOR id="GstAlpha--white-sensitivity" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity"> <ANCHOR id="GstAlpha--prefer-passthrough" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough"> <ANCHOR id="gst-plugins-good-plugins-alphacolor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html"> -<ANCHOR id="gst-plugins-good-plugins-alphacolor.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.synopsis"> <ANCHOR id="GstAlphaColor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#GstAlphaColor"> +<ANCHOR id="gst-plugins-good-plugins-alphacolor.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.other"> <ANCHOR id="gst-plugins-good-plugins-alphacolor.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-alphacolor.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.description"> -<ANCHOR id="gst-plugins-good-plugins-alphacolor.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.details"> +<ANCHOR id="gst-plugins-good-plugins-alphacolor.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-alphacolor.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.other_details"> <ANCHOR id="GstAlphaColor-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct"> <ANCHOR id="gst-plugins-good-plugins-alawdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html"> -<ANCHOR id="gst-plugins-good-plugins-alawdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.synopsis"> <ANCHOR id="GstALawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#GstALawDec"> +<ANCHOR id="gst-plugins-good-plugins-alawdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.other"> <ANCHOR id="gst-plugins-good-plugins-alawdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-alawdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.description"> -<ANCHOR id="gst-plugins-good-plugins-alawdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.details"> +<ANCHOR id="gst-plugins-good-plugins-alawdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-alawdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.other_details"> <ANCHOR id="GstALawDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#GstALawDec-struct"> <ANCHOR id="gst-plugins-good-plugins-alawenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html"> -<ANCHOR id="gst-plugins-good-plugins-alawenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.synopsis"> <ANCHOR id="GstALawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawDec"> -<ANCHOR id="gst-plugins-good-plugins-alawenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.description"> -<ANCHOR id="gst-plugins-good-plugins-alawenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.details"> -<ANCHOR id="GstALawDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawDec-struct"> <ANCHOR id="GstALawEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawEnc"> +<ANCHOR id="gst-plugins-good-plugins-alawenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.other"> +<ANCHOR id="gst-plugins-good-plugins-alawenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-alawenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.description"> +<ANCHOR id="gst-plugins-good-plugins-alawenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-alawenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.other_details"> +<ANCHOR id="GstALawEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-amrparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html"> -<ANCHOR id="gst-plugins-good-plugins-amrparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.synopsis"> <ANCHOR id="GstAmrParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#GstAmrParse"> +<ANCHOR id="gst-plugins-good-plugins-amrparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.other"> <ANCHOR id="gst-plugins-good-plugins-amrparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-amrparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.description"> -<ANCHOR id="gst-plugins-good-plugins-amrparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.details"> +<ANCHOR id="gst-plugins-good-plugins-amrparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-amrparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.other_details"> <ANCHOR id="GstAmrParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct"> <ANCHOR id="gst-plugins-good-plugins-amrparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.see-also"> <ANCHOR id="gst-plugins-good-plugins-apedemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html"> -<ANCHOR id="gst-plugins-good-plugins-apedemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#gst-plugins-good-plugins-apedemux.synopsis"> <ANCHOR id="GstApeDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#GstApeDemux"> +<ANCHOR id="gst-plugins-good-plugins-apedemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#gst-plugins-good-plugins-apedemux.other"> <ANCHOR id="gst-plugins-good-plugins-apedemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#gst-plugins-good-plugins-apedemux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-apedemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#gst-plugins-good-plugins-apedemux.description"> -<ANCHOR id="gst-plugins-good-plugins-apedemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#gst-plugins-good-plugins-apedemux.details"> +<ANCHOR id="gst-plugins-good-plugins-apedemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#gst-plugins-good-plugins-apedemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-apedemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#gst-plugins-good-plugins-apedemux.other_details"> <ANCHOR id="GstApeDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apedemux.html#GstApeDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-apev2mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html"> -<ANCHOR id="gst-plugins-good-plugins-apev2mux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.synopsis"> <ANCHOR id="GstApev2Mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#GstApev2Mux"> +<ANCHOR id="gst-plugins-good-plugins-apev2mux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.other"> <ANCHOR id="gst-plugins-good-plugins-apev2mux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-apev2mux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-apev2mux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.description"> -<ANCHOR id="gst-plugins-good-plugins-apev2mux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.details"> +<ANCHOR id="gst-plugins-good-plugins-apev2mux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-apev2mux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#gst-plugins-good-plugins-apev2mux.other_details"> <ANCHOR id="GstApev2Mux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct"> <ANCHOR id="gst-plugins-good-plugins-aspectratiocrop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html"> -<ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.properties"> <ANCHOR id="GstAspectRatioCrop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop"> +<ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.other"> <ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.properties"> <ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.description"> -<ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.details"> +<ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.other_details"> <ANCHOR id="GstAspectRatioCrop-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct"> <ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.property-details"> <ANCHOR id="GstAspectRatioCrop--aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio"> <ANCHOR id="gst-plugins-good-plugins-aspectratiocrop.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-aspectratiocrop.html#gst-plugins-good-plugins-aspectratiocrop.see-also"> <ANCHOR id="gst-plugins-good-plugins-audioamplify" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html"> -<ANCHOR id="gst-plugins-good-plugins-audioamplify.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audioamplify.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.properties"> <ANCHOR id="GstAudioAmplify" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify"> +<ANCHOR id="gst-plugins-good-plugins-audioamplify.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.other"> <ANCHOR id="gst-plugins-good-plugins-audioamplify.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audioamplify.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.properties"> <ANCHOR id="gst-plugins-good-plugins-audioamplify.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.description"> -<ANCHOR id="gst-plugins-good-plugins-audioamplify.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.details"> +<ANCHOR id="gst-plugins-good-plugins-audioamplify.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audioamplify.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.other_details"> <ANCHOR id="GstAudioAmplify-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct"> <ANCHOR id="gst-plugins-good-plugins-audioamplify.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#gst-plugins-good-plugins-audioamplify.property-details"> <ANCHOR id="GstAudioAmplify--amplification" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification"> <ANCHOR id="GstAudioAmplify--clipping-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method"> <ANCHOR id="gst-plugins-good-plugins-audiochebband" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html"> -<ANCHOR id="gst-plugins-good-plugins-audiochebband.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audiochebband.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.properties"> <ANCHOR id="GstAudioChebBand" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand"> +<ANCHOR id="gst-plugins-good-plugins-audiochebband.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.other"> <ANCHOR id="gst-plugins-good-plugins-audiochebband.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audiochebband.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.properties"> <ANCHOR id="gst-plugins-good-plugins-audiochebband.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.description"> -<ANCHOR id="gst-plugins-good-plugins-audiochebband.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.details"> +<ANCHOR id="gst-plugins-good-plugins-audiochebband.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiochebband.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.other_details"> <ANCHOR id="GstAudioChebBand-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand-struct"> <ANCHOR id="gst-plugins-good-plugins-audiochebband.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#gst-plugins-good-plugins-audiochebband.property-details"> <ANCHOR id="GstAudioChebBand--lower-frequency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--lower-frequency"> @@ -163,12 +190,13 @@ <ANCHOR id="GstAudioChebBand--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--type"> <ANCHOR id="GstAudioChebBand--upper-frequency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiochebband.html#GstAudioChebBand--upper-frequency"> <ANCHOR id="gst-plugins-good-plugins-audiocheblimit" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html"> -<ANCHOR id="gst-plugins-good-plugins-audiocheblimit.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audiocheblimit.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.properties"> <ANCHOR id="GstAudioChebLimit" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit"> +<ANCHOR id="gst-plugins-good-plugins-audiocheblimit.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.other"> <ANCHOR id="gst-plugins-good-plugins-audiocheblimit.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audiocheblimit.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.properties"> <ANCHOR id="gst-plugins-good-plugins-audiocheblimit.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.description"> -<ANCHOR id="gst-plugins-good-plugins-audiocheblimit.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.details"> +<ANCHOR id="gst-plugins-good-plugins-audiocheblimit.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiocheblimit.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.other_details"> <ANCHOR id="GstAudioChebLimit-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit-struct"> <ANCHOR id="gst-plugins-good-plugins-audiocheblimit.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#gst-plugins-good-plugins-audiocheblimit.property-details"> <ANCHOR id="GstAudioChebLimit--cutoff" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--cutoff"> @@ -177,13 +205,14 @@ <ANCHOR id="GstAudioChebLimit--ripple" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple"> <ANCHOR id="GstAudioChebLimit--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type"> <ANCHOR id="gst-plugins-good-plugins-audiofirfilter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html"> -<ANCHOR id="gst-plugins-good-plugins-audiofirfilter.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.synopsis"> -<ANCHOR id="GstAudioFIRFilter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter"> -<ANCHOR id="gst-plugins-good-plugins-audiofirfilter.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-audiofirfilter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.properties"> <ANCHOR id="gst-plugins-good-plugins-audiofirfilter.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.signals"> +<ANCHOR id="GstAudioFIRFilter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter"> +<ANCHOR id="gst-plugins-good-plugins-audiofirfilter.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.other"> +<ANCHOR id="gst-plugins-good-plugins-audiofirfilter.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-audiofirfilter.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.description"> -<ANCHOR id="gst-plugins-good-plugins-audiofirfilter.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.details"> +<ANCHOR id="gst-plugins-good-plugins-audiofirfilter.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiofirfilter.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.other_details"> <ANCHOR id="GstAudioFIRFilter-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct"> <ANCHOR id="gst-plugins-good-plugins-audiofirfilter.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.property-details"> <ANCHOR id="GstAudioFIRFilter--kernel" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel"> @@ -191,13 +220,14 @@ <ANCHOR id="gst-plugins-good-plugins-audiofirfilter.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.signal-details"> <ANCHOR id="GstAudioFIRFilter-rate-changed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-rate-changed"> <ANCHOR id="gst-plugins-good-plugins-audioiirfilter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html"> -<ANCHOR id="gst-plugins-good-plugins-audioiirfilter.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.synopsis"> -<ANCHOR id="GstAudioIIRFilter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter"> -<ANCHOR id="gst-plugins-good-plugins-audioiirfilter.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-audioiirfilter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.properties"> <ANCHOR id="gst-plugins-good-plugins-audioiirfilter.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.signals"> +<ANCHOR id="GstAudioIIRFilter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter"> +<ANCHOR id="gst-plugins-good-plugins-audioiirfilter.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.other"> +<ANCHOR id="gst-plugins-good-plugins-audioiirfilter.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-audioiirfilter.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.description"> -<ANCHOR id="gst-plugins-good-plugins-audioiirfilter.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.details"> +<ANCHOR id="gst-plugins-good-plugins-audioiirfilter.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audioiirfilter.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.other_details"> <ANCHOR id="GstAudioIIRFilter-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-struct"> <ANCHOR id="gst-plugins-good-plugins-audioiirfilter.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.property-details"> <ANCHOR id="GstAudioIIRFilter--a" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a"> @@ -205,12 +235,13 @@ <ANCHOR id="gst-plugins-good-plugins-audioiirfilter.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.signal-details"> <ANCHOR id="GstAudioIIRFilter-rate-changed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed"> <ANCHOR id="gst-plugins-good-plugins-audiowsincband" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html"> -<ANCHOR id="gst-plugins-good-plugins-audiowsincband.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audiowsincband.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.properties"> <ANCHOR id="GstAudioWSincBand" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand"> +<ANCHOR id="gst-plugins-good-plugins-audiowsincband.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.other"> <ANCHOR id="gst-plugins-good-plugins-audiowsincband.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audiowsincband.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.properties"> <ANCHOR id="gst-plugins-good-plugins-audiowsincband.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.description"> -<ANCHOR id="gst-plugins-good-plugins-audiowsincband.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.details"> +<ANCHOR id="gst-plugins-good-plugins-audiowsincband.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiowsincband.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.other_details"> <ANCHOR id="GstAudioWSincBand-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct"> <ANCHOR id="gst-plugins-good-plugins-audiowsincband.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.property-details"> <ANCHOR id="GstAudioWSincBand--lower-frequency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency"> @@ -219,12 +250,13 @@ <ANCHOR id="GstAudioWSincBand--window" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--window"> <ANCHOR id="GstAudioWSincBand--length" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--length"> <ANCHOR id="gst-plugins-good-plugins-audiowsinclimit" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html"> -<ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.properties"> <ANCHOR id="GstAudioWSincLimit" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit"> +<ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.other"> <ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.properties"> <ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.description"> -<ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.details"> +<ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.other_details"> <ANCHOR id="GstAudioWSincLimit-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit-struct"> <ANCHOR id="gst-plugins-good-plugins-audiowsinclimit.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#gst-plugins-good-plugins-audiowsinclimit.property-details"> <ANCHOR id="GstAudioWSincLimit--frequency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--frequency"> @@ -233,12 +265,13 @@ <ANCHOR id="GstAudioWSincLimit--window" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window"> <ANCHOR id="GstAudioWSincLimit--cutoff" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff"> <ANCHOR id="gst-plugins-good-plugins-audioecho" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html"> -<ANCHOR id="gst-plugins-good-plugins-audioecho.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audioecho.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.properties"> <ANCHOR id="GstAudioEcho" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho"> +<ANCHOR id="gst-plugins-good-plugins-audioecho.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.other"> <ANCHOR id="gst-plugins-good-plugins-audioecho.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audioecho.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.properties"> <ANCHOR id="gst-plugins-good-plugins-audioecho.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.description"> -<ANCHOR id="gst-plugins-good-plugins-audioecho.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.details"> +<ANCHOR id="gst-plugins-good-plugins-audioecho.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audioecho.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.other_details"> <ANCHOR id="GstAudioEcho-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct"> <ANCHOR id="gst-plugins-good-plugins-audioecho.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.property-details"> <ANCHOR id="GstAudioEcho--delay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"> @@ -246,12 +279,13 @@ <ANCHOR id="GstAudioEcho--intensity" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"> <ANCHOR id="GstAudioEcho--max-delay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"> <ANCHOR id="gst-plugins-good-plugins-audiodynamic" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html"> -<ANCHOR id="gst-plugins-good-plugins-audiodynamic.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audiodynamic.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.properties"> <ANCHOR id="GstAudioDynamic" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic"> +<ANCHOR id="gst-plugins-good-plugins-audiodynamic.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.other"> <ANCHOR id="gst-plugins-good-plugins-audiodynamic.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audiodynamic.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.properties"> <ANCHOR id="gst-plugins-good-plugins-audiodynamic.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.description"> -<ANCHOR id="gst-plugins-good-plugins-audiodynamic.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.details"> +<ANCHOR id="gst-plugins-good-plugins-audiodynamic.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiodynamic.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.other_details"> <ANCHOR id="GstAudioDynamic-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct"> <ANCHOR id="gst-plugins-good-plugins-audiodynamic.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.property-details"> <ANCHOR id="GstAudioDynamic--characteristics" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"> @@ -259,33 +293,36 @@ <ANCHOR id="GstAudioDynamic--ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"> <ANCHOR id="GstAudioDynamic--threshold" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"> <ANCHOR id="gst-plugins-good-plugins-audioinvert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html"> -<ANCHOR id="gst-plugins-good-plugins-audioinvert.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audioinvert.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.properties"> <ANCHOR id="GstAudioInvert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert"> +<ANCHOR id="gst-plugins-good-plugins-audioinvert.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.other"> <ANCHOR id="gst-plugins-good-plugins-audioinvert.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audioinvert.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.properties"> <ANCHOR id="gst-plugins-good-plugins-audioinvert.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.description"> -<ANCHOR id="gst-plugins-good-plugins-audioinvert.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.details"> +<ANCHOR id="gst-plugins-good-plugins-audioinvert.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audioinvert.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.other_details"> <ANCHOR id="GstAudioInvert-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct"> <ANCHOR id="gst-plugins-good-plugins-audioinvert.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.property-details"> <ANCHOR id="GstAudioInvert--degree" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"> <ANCHOR id="gst-plugins-good-plugins-audiopanorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html"> -<ANCHOR id="gst-plugins-good-plugins-audiopanorama.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audiopanorama.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.properties"> <ANCHOR id="GstAudioPanorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama"> +<ANCHOR id="gst-plugins-good-plugins-audiopanorama.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.other"> <ANCHOR id="gst-plugins-good-plugins-audiopanorama.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audiopanorama.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.properties"> <ANCHOR id="gst-plugins-good-plugins-audiopanorama.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.description"> -<ANCHOR id="gst-plugins-good-plugins-audiopanorama.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.details"> +<ANCHOR id="gst-plugins-good-plugins-audiopanorama.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiopanorama.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.other_details"> <ANCHOR id="GstAudioPanorama-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct"> <ANCHOR id="gst-plugins-good-plugins-audiopanorama.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.property-details"> <ANCHOR id="GstAudioPanorama--panorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"> <ANCHOR id="GstAudioPanorama--method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"> <ANCHOR id="gst-plugins-good-plugins-audiokaraoke" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html"> -<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.properties"> <ANCHOR id="GstAudioKaraoke" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke"> +<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.other"> <ANCHOR id="gst-plugins-good-plugins-audiokaraoke.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.properties"> <ANCHOR id="gst-plugins-good-plugins-audiokaraoke.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.description"> -<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.details"> +<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.other_details"> <ANCHOR id="GstAudioKaraoke-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct"> <ANCHOR id="gst-plugins-good-plugins-audiokaraoke.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.property-details"> <ANCHOR id="GstAudioKaraoke--filter-band" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"> @@ -293,20 +330,22 @@ <ANCHOR id="GstAudioKaraoke--level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"> <ANCHOR id="GstAudioKaraoke--mono-level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"> <ANCHOR id="gst-plugins-good-plugins-auparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html"> -<ANCHOR id="gst-plugins-good-plugins-auparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.synopsis"> <ANCHOR id="GstAuParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#GstAuParse"> +<ANCHOR id="gst-plugins-good-plugins-auparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.other"> <ANCHOR id="gst-plugins-good-plugins-auparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-auparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.description"> -<ANCHOR id="gst-plugins-good-plugins-auparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.details"> +<ANCHOR id="gst-plugins-good-plugins-auparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-auparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.other_details"> <ANCHOR id="GstAuParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#GstAuParse-struct"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html"> -<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.properties"> <ANCHOR id="GstAutoAudioSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.other"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.properties"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.description"> -<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.details"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#gst-plugins-good-plugins-autoaudiosink.other_details"> <ANCHOR id="GstAutoAudioSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct"> <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"> @@ -314,25 +353,27 @@ <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"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.properties"> <ANCHOR id="GstAutoAudioSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.other"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.properties"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.description"> -<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.details"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.other_details"> <ANCHOR id="GstAutoAudioSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.property-details"> <ANCHOR id="GstAutoAudioSrc--filter-caps" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#GstAutoAudioSrc--filter-caps"> <ANCHOR id="gst-plugins-good-plugins-autoaudiosrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autoaudiosrc.html#gst-plugins-good-plugins-autoaudiosrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-autovideosink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html"> -<ANCHOR id="gst-plugins-good-plugins-autovideosink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-autovideosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.properties"> <ANCHOR id="GstAutoVideoSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink"> +<ANCHOR id="gst-plugins-good-plugins-autovideosink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.other"> <ANCHOR id="gst-plugins-good-plugins-autovideosink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-autovideosink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-autovideosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.properties"> <ANCHOR id="gst-plugins-good-plugins-autovideosink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.description"> -<ANCHOR id="gst-plugins-good-plugins-autovideosink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.details"> +<ANCHOR id="gst-plugins-good-plugins-autovideosink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-autovideosink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#gst-plugins-good-plugins-autovideosink.other_details"> <ANCHOR id="GstAutoVideoSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosink.html#GstAutoVideoSink-struct"> <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"> @@ -340,49 +381,54 @@ <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"> +<ANCHOR id="gst-plugins-good-plugins-autovideosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.properties"> <ANCHOR id="GstAutoVideoSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc"> +<ANCHOR id="gst-plugins-good-plugins-autovideosrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.other"> <ANCHOR id="gst-plugins-good-plugins-autovideosrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-autovideosrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-autovideosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.properties"> <ANCHOR id="gst-plugins-good-plugins-autovideosrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.description"> -<ANCHOR id="gst-plugins-good-plugins-autovideosrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.details"> +<ANCHOR id="gst-plugins-good-plugins-autovideosrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-autovideosrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.other_details"> <ANCHOR id="GstAutoVideoSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-autovideosrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.property-details"> <ANCHOR id="GstAutoVideoSrc--filter-caps" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#GstAutoVideoSrc--filter-caps"> <ANCHOR id="gst-plugins-good-plugins-autovideosrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-autovideosrc.html#gst-plugins-good-plugins-autovideosrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-avidemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html"> -<ANCHOR id="gst-plugins-good-plugins-avidemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#gst-plugins-good-plugins-avidemux.synopsis"> <ANCHOR id="GstAviDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#GstAviDemux"> +<ANCHOR id="gst-plugins-good-plugins-avidemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#gst-plugins-good-plugins-avidemux.other"> <ANCHOR id="gst-plugins-good-plugins-avidemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#gst-plugins-good-plugins-avidemux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-avidemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#gst-plugins-good-plugins-avidemux.description"> -<ANCHOR id="gst-plugins-good-plugins-avidemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#gst-plugins-good-plugins-avidemux.details"> +<ANCHOR id="gst-plugins-good-plugins-avidemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#gst-plugins-good-plugins-avidemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-avidemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#gst-plugins-good-plugins-avidemux.other_details"> <ANCHOR id="GstAviDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avidemux.html#GstAviDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-avimux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html"> -<ANCHOR id="gst-plugins-good-plugins-avimux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-avimux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.properties"> <ANCHOR id="GstAviMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#GstAviMux"> +<ANCHOR id="gst-plugins-good-plugins-avimux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.other"> <ANCHOR id="gst-plugins-good-plugins-avimux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-avimux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-avimux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.properties"> <ANCHOR id="gst-plugins-good-plugins-avimux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.description"> -<ANCHOR id="gst-plugins-good-plugins-avimux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.details"> +<ANCHOR id="gst-plugins-good-plugins-avimux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-avimux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.other_details"> <ANCHOR id="GstAviMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#GstAviMux-struct"> <ANCHOR id="gst-plugins-good-plugins-avimux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#gst-plugins-good-plugins-avimux.property-details"> <ANCHOR id="GstAviMux--bigfile" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avimux.html#GstAviMux--bigfile"> <ANCHOR id="gst-plugins-good-plugins-avisubtitle" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html"> -<ANCHOR id="gst-plugins-good-plugins-avisubtitle.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#gst-plugins-good-plugins-avisubtitle.synopsis"> <ANCHOR id="GstAviSubtitle" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#GstAviSubtitle"> +<ANCHOR id="gst-plugins-good-plugins-avisubtitle.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#gst-plugins-good-plugins-avisubtitle.other"> <ANCHOR id="gst-plugins-good-plugins-avisubtitle.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#gst-plugins-good-plugins-avisubtitle.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-avisubtitle.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#gst-plugins-good-plugins-avisubtitle.description"> -<ANCHOR id="gst-plugins-good-plugins-avisubtitle.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#gst-plugins-good-plugins-avisubtitle.details"> +<ANCHOR id="gst-plugins-good-plugins-avisubtitle.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#gst-plugins-good-plugins-avisubtitle.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-avisubtitle.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#gst-plugins-good-plugins-avisubtitle.other_details"> <ANCHOR id="GstAviSubtitle-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-avisubtitle.html#GstAviSubtitle-struct"> <ANCHOR id="gst-plugins-good-plugins-cacasink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html"> -<ANCHOR id="gst-plugins-good-plugins-cacasink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-cacasink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.properties"> <ANCHOR id="GstCACASink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#GstCACASink"> +<ANCHOR id="gst-plugins-good-plugins-cacasink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.other"> <ANCHOR id="gst-plugins-good-plugins-cacasink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-cacasink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.properties"> <ANCHOR id="gst-plugins-good-plugins-cacasink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.description"> -<ANCHOR id="gst-plugins-good-plugins-cacasink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.details"> +<ANCHOR id="gst-plugins-good-plugins-cacasink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-cacasink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.other_details"> <ANCHOR id="GstCACASink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#GstCACASink-struct"> <ANCHOR id="gst-plugins-good-plugins-cacasink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#gst-plugins-good-plugins-cacasink.property-details"> <ANCHOR id="GstCACASink--anti-aliasing" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#GstCACASink--anti-aliasing"> @@ -390,35 +436,38 @@ <ANCHOR id="GstCACASink--screen-height" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-height"> <ANCHOR id="GstCACASink--screen-width" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cacasink.html#GstCACASink--screen-width"> <ANCHOR id="gst-plugins-good-plugins-cairooverlay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html"> -<ANCHOR id="gst-plugins-good-plugins-cairooverlay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-cairooverlay.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.signals"> <ANCHOR id="GstCairoOverlay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"> +<ANCHOR id="gst-plugins-good-plugins-cairooverlay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.other"> <ANCHOR id="gst-plugins-good-plugins-cairooverlay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-cairooverlay.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.signals"> <ANCHOR id="gst-plugins-good-plugins-cairooverlay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.description"> -<ANCHOR id="gst-plugins-good-plugins-cairooverlay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.details"> +<ANCHOR id="gst-plugins-good-plugins-cairooverlay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-cairooverlay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.other_details"> <ANCHOR id="GstCairoOverlay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-struct"> <ANCHOR id="gst-plugins-good-plugins-cairooverlay.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#gst-plugins-good-plugins-cairooverlay.signal-details"> <ANCHOR id="GstCairoOverlay-caps-changed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-caps-changed"> <ANCHOR id="GstCairoOverlay-draw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay-draw"> <ANCHOR id="gst-plugins-good-plugins-capssetter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html"> -<ANCHOR id="gst-plugins-good-plugins-capssetter.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-capssetter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.properties"> <ANCHOR id="GstCapsSetter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#GstCapsSetter"> +<ANCHOR id="gst-plugins-good-plugins-capssetter.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.other"> <ANCHOR id="gst-plugins-good-plugins-capssetter.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-capssetter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.properties"> <ANCHOR id="gst-plugins-good-plugins-capssetter.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.description"> -<ANCHOR id="gst-plugins-good-plugins-capssetter.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.details"> +<ANCHOR id="gst-plugins-good-plugins-capssetter.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-capssetter.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.other_details"> <ANCHOR id="GstCapsSetter-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#GstCapsSetter-struct"> <ANCHOR id="gst-plugins-good-plugins-capssetter.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#gst-plugins-good-plugins-capssetter.property-details"> <ANCHOR id="GstCapsSetter--caps" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps"> <ANCHOR id="GstCapsSetter--join" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join"> <ANCHOR id="GstCapsSetter--replace" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace"> <ANCHOR id="gst-plugins-good-plugins-cutter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html"> -<ANCHOR id="gst-plugins-good-plugins-cutter.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-cutter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.properties"> <ANCHOR id="GstCutter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#GstCutter"> +<ANCHOR id="gst-plugins-good-plugins-cutter.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.other"> <ANCHOR id="gst-plugins-good-plugins-cutter.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-cutter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.properties"> <ANCHOR id="gst-plugins-good-plugins-cutter.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.description"> -<ANCHOR id="gst-plugins-good-plugins-cutter.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.details"> +<ANCHOR id="gst-plugins-good-plugins-cutter.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-cutter.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.other_details"> <ANCHOR id="GstCutter-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#GstCutter-struct"> <ANCHOR id="gst-plugins-good-plugins-cutter.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#gst-plugins-good-plugins-cutter.property-details"> <ANCHOR id="GstCutter--leaky" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#GstCutter--leaky"> @@ -427,21 +476,23 @@ <ANCHOR id="GstCutter--threshold" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#GstCutter--threshold"> <ANCHOR id="GstCutter--threshold-dB" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB"> <ANCHOR id="gst-plugins-good-plugins-dcaparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html"> -<ANCHOR id="gst-plugins-good-plugins-dcaparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.synopsis"> <ANCHOR id="GstDcaParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#GstDcaParse"> +<ANCHOR id="gst-plugins-good-plugins-dcaparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.other"> <ANCHOR id="gst-plugins-good-plugins-dcaparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-dcaparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.description"> -<ANCHOR id="gst-plugins-good-plugins-dcaparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.details"> +<ANCHOR id="gst-plugins-good-plugins-dcaparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-dcaparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.other_details"> <ANCHOR id="GstDcaParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#GstDcaParse-struct"> <ANCHOR id="gst-plugins-good-plugins-dcaparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dcaparse.html#gst-plugins-good-plugins-dcaparse.see-also"> <ANCHOR id="gst-plugins-good-plugins-deinterlace" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html"> -<ANCHOR id="gst-plugins-good-plugins-deinterlace.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-deinterlace.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.properties"> <ANCHOR id="GstDeinterlace" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#GstDeinterlace"> +<ANCHOR id="gst-plugins-good-plugins-deinterlace.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.other"> <ANCHOR id="gst-plugins-good-plugins-deinterlace.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-deinterlace.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-deinterlace.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.properties"> <ANCHOR id="gst-plugins-good-plugins-deinterlace.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.description"> -<ANCHOR id="gst-plugins-good-plugins-deinterlace.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.details"> +<ANCHOR id="gst-plugins-good-plugins-deinterlace.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-deinterlace.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.other_details"> <ANCHOR id="GstDeinterlace-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct"> <ANCHOR id="gst-plugins-good-plugins-deinterlace.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#gst-plugins-good-plugins-deinterlace.property-details"> <ANCHOR id="GstDeinterlace--fields" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields"> @@ -452,54 +503,60 @@ <ANCHOR id="GstDeinterlace--ignore-obscure" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--ignore-obscure"> <ANCHOR id="GstDeinterlace--locking" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking"> <ANCHOR id="gst-plugins-good-plugins-deinterleave" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html"> -<ANCHOR id="gst-plugins-good-plugins-deinterleave.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-deinterleave.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.properties"> <ANCHOR id="GstDeinterleave" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#GstDeinterleave"> +<ANCHOR id="gst-plugins-good-plugins-deinterleave.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.other"> <ANCHOR id="gst-plugins-good-plugins-deinterleave.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-deinterleave.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.properties"> <ANCHOR id="gst-plugins-good-plugins-deinterleave.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.description"> -<ANCHOR id="gst-plugins-good-plugins-deinterleave.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.details"> +<ANCHOR id="gst-plugins-good-plugins-deinterleave.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-deinterleave.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.other_details"> <ANCHOR id="GstDeinterleave-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#GstDeinterleave-struct"> <ANCHOR id="gst-plugins-good-plugins-deinterleave.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.property-details"> <ANCHOR id="GstDeinterleave--keep-positions" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#GstDeinterleave--keep-positions"> <ANCHOR id="gst-plugins-good-plugins-deinterleave.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-deinterleave.html#gst-plugins-good-plugins-deinterleave.see-also"> <ANCHOR id="gst-plugins-good-plugins-dicetv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html"> -<ANCHOR id="gst-plugins-good-plugins-dicetv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.synopsis"> -<ANCHOR id="GstDiceTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#GstDiceTV"> -<ANCHOR id="gst-plugins-good-plugins-dicetv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-dicetv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.properties"> <ANCHOR id="gst-plugins-good-plugins-dicetv.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.signals"> +<ANCHOR id="GstDiceTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#GstDiceTV"> +<ANCHOR id="gst-plugins-good-plugins-dicetv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.other"> +<ANCHOR id="gst-plugins-good-plugins-dicetv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-dicetv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.description"> -<ANCHOR id="gst-plugins-good-plugins-dicetv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.details"> +<ANCHOR id="gst-plugins-good-plugins-dicetv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-dicetv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.other_details"> <ANCHOR id="GstDiceTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#GstDiceTV-struct"> <ANCHOR id="gst-plugins-good-plugins-dicetv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.property-details"> <ANCHOR id="GstDiceTV--square-bits" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#GstDiceTV--square-bits"> <ANCHOR id="gst-plugins-good-plugins-dicetv.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#gst-plugins-good-plugins-dicetv.signal-details"> <ANCHOR id="GstDiceTV-reset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dicetv.html#GstDiceTV-reset"> <ANCHOR id="gst-plugins-good-plugins-directsoundsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html"> -<ANCHOR id="gst-plugins-good-plugins-directsoundsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-directsoundsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.other"> +<ANCHOR id="gst-plugins-good-plugins-directsoundsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-directsoundsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.description"> -<ANCHOR id="gst-plugins-good-plugins-directsoundsink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.details"> +<ANCHOR id="gst-plugins-good-plugins-directsoundsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-directsoundsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#gst-plugins-good-plugins-directsoundsink.other_details"> <ANCHOR id="GstDirectSoundSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-directsoundsink.html#GstDirectSoundSink"> <ANCHOR id="gst-plugins-good-plugins-dtmfsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html"> -<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.properties"> <ANCHOR id="GstDTMFSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.other"> <ANCHOR id="gst-plugins-good-plugins-dtmfsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.properties"> <ANCHOR id="gst-plugins-good-plugins-dtmfsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.description"> -<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.details"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-dtmfsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.other_details"> <ANCHOR id="GstDTMFSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-dtmfsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.property-details"> <ANCHOR id="GstDTMFSrc--interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#GstDTMFSrc--interval"> <ANCHOR id="gst-plugins-good-plugins-dtmfsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dtmfsrc.html#gst-plugins-good-plugins-dtmfsrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-dv1394src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html"> -<ANCHOR id="gst-plugins-good-plugins-dv1394src.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-dv1394src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.properties"> +<ANCHOR id="gst-plugins-good-plugins-dv1394src.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.signals"> <ANCHOR id="GstDV1394Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#GstDV1394Src"> +<ANCHOR id="gst-plugins-good-plugins-dv1394src.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.other"> <ANCHOR id="gst-plugins-good-plugins-dv1394src.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-dv1394src.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-dv1394src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.properties"> -<ANCHOR id="gst-plugins-good-plugins-dv1394src.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.signals"> <ANCHOR id="gst-plugins-good-plugins-dv1394src.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.description"> -<ANCHOR id="gst-plugins-good-plugins-dv1394src.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.details"> +<ANCHOR id="gst-plugins-good-plugins-dv1394src.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-dv1394src.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.other_details"> <ANCHOR id="GstDV1394Src-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-struct"> <ANCHOR id="gst-plugins-good-plugins-dv1394src.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.property-details"> <ANCHOR id="GstDV1394Src--channel" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#GstDV1394Src--channel"> @@ -513,12 +570,13 @@ <ANCHOR id="gst-plugins-good-plugins-dv1394src.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#gst-plugins-good-plugins-dv1394src.signal-details"> <ANCHOR id="GstDV1394Src-frame-dropped" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dv1394src.html#GstDV1394Src-frame-dropped"> <ANCHOR id="gst-plugins-good-plugins-dvdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html"> -<ANCHOR id="gst-plugins-good-plugins-dvdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-dvdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.properties"> <ANCHOR id="GstDVDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#GstDVDec"> +<ANCHOR id="gst-plugins-good-plugins-dvdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.other"> <ANCHOR id="gst-plugins-good-plugins-dvdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-dvdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.properties"> <ANCHOR id="gst-plugins-good-plugins-dvdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.description"> -<ANCHOR id="gst-plugins-good-plugins-dvdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.details"> +<ANCHOR id="gst-plugins-good-plugins-dvdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-dvdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.other_details"> <ANCHOR id="GstDVDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#GstDVDec-struct"> <ANCHOR id="gst-plugins-good-plugins-dvdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#gst-plugins-good-plugins-dvdec.property-details"> <ANCHOR id="GstDVDec--clamp-chroma" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#GstDVDec--clamp-chroma"> @@ -526,27 +584,30 @@ <ANCHOR id="GstDVDec--drop-factor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor"> <ANCHOR id="GstDVDec--quality" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdec.html#GstDVDec--quality"> <ANCHOR id="gst-plugins-good-plugins-dvdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html"> -<ANCHOR id="gst-plugins-good-plugins-dvdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#gst-plugins-good-plugins-dvdemux.synopsis"> <ANCHOR id="GstDVDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#GstDVDemux"> +<ANCHOR id="gst-plugins-good-plugins-dvdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#gst-plugins-good-plugins-dvdemux.other"> <ANCHOR id="gst-plugins-good-plugins-dvdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#gst-plugins-good-plugins-dvdemux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-dvdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#gst-plugins-good-plugins-dvdemux.description"> -<ANCHOR id="gst-plugins-good-plugins-dvdemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#gst-plugins-good-plugins-dvdemux.details"> +<ANCHOR id="gst-plugins-good-plugins-dvdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#gst-plugins-good-plugins-dvdemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-dvdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#gst-plugins-good-plugins-dvdemux.other_details"> <ANCHOR id="GstDVDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-dvdemux.html#GstDVDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-edgetv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html"> -<ANCHOR id="gst-plugins-good-plugins-edgetv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#gst-plugins-good-plugins-edgetv.synopsis"> <ANCHOR id="GstEdgeTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#GstEdgeTV"> +<ANCHOR id="gst-plugins-good-plugins-edgetv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#gst-plugins-good-plugins-edgetv.other"> <ANCHOR id="gst-plugins-good-plugins-edgetv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#gst-plugins-good-plugins-edgetv.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-edgetv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#gst-plugins-good-plugins-edgetv.description"> -<ANCHOR id="gst-plugins-good-plugins-edgetv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#gst-plugins-good-plugins-edgetv.details"> +<ANCHOR id="gst-plugins-good-plugins-edgetv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#gst-plugins-good-plugins-edgetv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-edgetv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#gst-plugins-good-plugins-edgetv.other_details"> <ANCHOR id="GstEdgeTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-edgetv.html#GstEdgeTV-struct"> <ANCHOR id="gst-plugins-good-plugins-equalizer-10bands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.properties"> <ANCHOR id="GstIirEqualizer10Bands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.other"> <ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.properties"> <ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.description"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.details"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.other_details"> <ANCHOR id="GstIirEqualizer10Bands-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct"> <ANCHOR id="gst-plugins-good-plugins-equalizer-10bands.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#gst-plugins-good-plugins-equalizer-10bands.property-details"> <ANCHOR id="GstIirEqualizer10Bands--band0" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0"> @@ -560,44 +621,48 @@ <ANCHOR id="GstIirEqualizer10Bands--band8" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band8"> <ANCHOR id="GstIirEqualizer10Bands--band9" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band9"> <ANCHOR id="gst-plugins-good-plugins-equalizer-3bands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.properties"> <ANCHOR id="GstIirEqualizer3Bands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.other"> <ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.properties"> <ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.description"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.details"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.other_details"> <ANCHOR id="GstIirEqualizer3Bands-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands-struct"> <ANCHOR id="gst-plugins-good-plugins-equalizer-3bands.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#gst-plugins-good-plugins-equalizer-3bands.property-details"> <ANCHOR id="GstIirEqualizer3Bands--band0" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band0"> <ANCHOR id="GstIirEqualizer3Bands--band1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band1"> <ANCHOR id="GstIirEqualizer3Bands--band2" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-3bands.html#GstIirEqualizer3Bands--band2"> <ANCHOR id="gst-plugins-good-plugins-equalizer-nbands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.properties"> <ANCHOR id="GstIirEqualizerNBands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.other"> <ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.properties"> <ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.description"> -<ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.details"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.other_details"> <ANCHOR id="GstIirEqualizerNBands-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands-struct"> <ANCHOR id="gst-plugins-good-plugins-equalizer-nbands.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#gst-plugins-good-plugins-equalizer-nbands.property-details"> <ANCHOR id="GstIirEqualizerNBands--num-bands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-equalizer-nbands.html#GstIirEqualizerNBands--num-bands"> <ANCHOR id="gst-plugins-good-plugins-flacdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html"> -<ANCHOR id="gst-plugins-good-plugins-flacdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#gst-plugins-good-plugins-flacdec.synopsis"> <ANCHOR id="GstFlacDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#GstFlacDec"> +<ANCHOR id="gst-plugins-good-plugins-flacdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#gst-plugins-good-plugins-flacdec.other"> <ANCHOR id="gst-plugins-good-plugins-flacdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#gst-plugins-good-plugins-flacdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-flacdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#gst-plugins-good-plugins-flacdec.description"> -<ANCHOR id="gst-plugins-good-plugins-flacdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#gst-plugins-good-plugins-flacdec.details"> +<ANCHOR id="gst-plugins-good-plugins-flacdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#gst-plugins-good-plugins-flacdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-flacdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#gst-plugins-good-plugins-flacdec.other_details"> <ANCHOR id="GstFlacDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacdec.html#GstFlacDec-struct"> <ANCHOR id="gst-plugins-good-plugins-flacenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html"> -<ANCHOR id="gst-plugins-good-plugins-flacenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-flacenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.properties"> <ANCHOR id="GstFlacEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#GstFlacEnc"> +<ANCHOR id="gst-plugins-good-plugins-flacenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.other"> <ANCHOR id="gst-plugins-good-plugins-flacenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-flacenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-flacenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.properties"> <ANCHOR id="gst-plugins-good-plugins-flacenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.description"> -<ANCHOR id="gst-plugins-good-plugins-flacenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.details"> +<ANCHOR id="gst-plugins-good-plugins-flacenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-flacenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.other_details"> <ANCHOR id="GstFlacEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#GstFlacEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-flacenc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#gst-plugins-good-plugins-flacenc.property-details"> <ANCHOR id="GstFlacEnc--blocksize" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#GstFlacEnc--blocksize"> @@ -616,96 +681,106 @@ <ANCHOR id="GstFlacEnc--padding" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#GstFlacEnc--padding"> <ANCHOR id="GstFlacEnc--seekpoints" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacenc.html#GstFlacEnc--seekpoints"> <ANCHOR id="gst-plugins-good-plugins-flacparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html"> -<ANCHOR id="gst-plugins-good-plugins-flacparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-flacparse.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.properties"> <ANCHOR id="GstFlacParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#GstFlacParse"> +<ANCHOR id="gst-plugins-good-plugins-flacparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.other"> <ANCHOR id="gst-plugins-good-plugins-flacparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-flacparse.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.properties"> <ANCHOR id="gst-plugins-good-plugins-flacparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.description"> -<ANCHOR id="gst-plugins-good-plugins-flacparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.details"> +<ANCHOR id="gst-plugins-good-plugins-flacparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-flacparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.other_details"> <ANCHOR id="GstFlacParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#GstFlacParse-struct"> <ANCHOR id="gst-plugins-good-plugins-flacparse.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.property-details"> <ANCHOR id="GstFlacParse--check-frame-checksums" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#GstFlacParse--check-frame-checksums"> <ANCHOR id="gst-plugins-good-plugins-flacparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flacparse.html#gst-plugins-good-plugins-flacparse.see-also"> <ANCHOR id="gst-plugins-good-plugins-flactag" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html"> -<ANCHOR id="gst-plugins-good-plugins-flactag.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.synopsis"> <ANCHOR id="GstFlacTag" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#GstFlacTag"> +<ANCHOR id="gst-plugins-good-plugins-flactag.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.other"> <ANCHOR id="gst-plugins-good-plugins-flactag.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-flactag.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-flactag.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.description"> -<ANCHOR id="gst-plugins-good-plugins-flactag.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.details"> +<ANCHOR id="gst-plugins-good-plugins-flactag.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-flactag.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#gst-plugins-good-plugins-flactag.other_details"> <ANCHOR id="GstFlacTag-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flactag.html#GstFlacTag-struct"> <ANCHOR id="gst-plugins-good-plugins-flvdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html"> -<ANCHOR id="gst-plugins-good-plugins-flvdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#gst-plugins-good-plugins-flvdemux.synopsis"> <ANCHOR id="GstFlvDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#GstFlvDemux"> +<ANCHOR id="gst-plugins-good-plugins-flvdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#gst-plugins-good-plugins-flvdemux.other"> <ANCHOR id="gst-plugins-good-plugins-flvdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#gst-plugins-good-plugins-flvdemux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-flvdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#gst-plugins-good-plugins-flvdemux.description"> -<ANCHOR id="gst-plugins-good-plugins-flvdemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#gst-plugins-good-plugins-flvdemux.details"> +<ANCHOR id="gst-plugins-good-plugins-flvdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#gst-plugins-good-plugins-flvdemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-flvdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#gst-plugins-good-plugins-flvdemux.other_details"> <ANCHOR id="GstFlvDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvdemux.html#GstFlvDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-flvmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html"> -<ANCHOR id="gst-plugins-good-plugins-flvmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-flvmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.properties"> <ANCHOR id="GstFlvMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#GstFlvMux"> +<ANCHOR id="gst-plugins-good-plugins-flvmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.other"> <ANCHOR id="gst-plugins-good-plugins-flvmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-flvmux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-flvmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.properties"> <ANCHOR id="gst-plugins-good-plugins-flvmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.description"> -<ANCHOR id="gst-plugins-good-plugins-flvmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.details"> +<ANCHOR id="gst-plugins-good-plugins-flvmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-flvmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.other_details"> <ANCHOR id="GstFlvMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#GstFlvMux-struct"> <ANCHOR id="gst-plugins-good-plugins-flvmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#gst-plugins-good-plugins-flvmux.property-details"> <ANCHOR id="GstFlvMux--is-live" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#GstFlvMux--is-live"> <ANCHOR id="GstFlvMux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flvmux.html#GstFlvMux--streamable"> <ANCHOR id="gst-plugins-good-plugins-flxdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html"> -<ANCHOR id="gst-plugins-good-plugins-flxdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#gst-plugins-good-plugins-flxdec.synopsis"> <ANCHOR id="GstFlxDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#GstFlxDec"> +<ANCHOR id="gst-plugins-good-plugins-flxdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#gst-plugins-good-plugins-flxdec.other"> <ANCHOR id="gst-plugins-good-plugins-flxdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#gst-plugins-good-plugins-flxdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-flxdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#gst-plugins-good-plugins-flxdec.description"> -<ANCHOR id="gst-plugins-good-plugins-flxdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#gst-plugins-good-plugins-flxdec.details"> +<ANCHOR id="gst-plugins-good-plugins-flxdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#gst-plugins-good-plugins-flxdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-flxdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#gst-plugins-good-plugins-flxdec.other_details"> <ANCHOR id="GstFlxDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-flxdec.html#GstFlxDec-struct"> <ANCHOR id="gst-plugins-good-plugins-gamma" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html"> -<ANCHOR id="gst-plugins-good-plugins-gamma.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-gamma.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.properties"> <ANCHOR id="GstGamma" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#GstGamma"> +<ANCHOR id="gst-plugins-good-plugins-gamma.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.other"> <ANCHOR id="gst-plugins-good-plugins-gamma.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-gamma.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.properties"> <ANCHOR id="gst-plugins-good-plugins-gamma.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.description"> -<ANCHOR id="gst-plugins-good-plugins-gamma.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.details"> +<ANCHOR id="gst-plugins-good-plugins-gamma.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-gamma.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.other_details"> <ANCHOR id="GstGamma-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#GstGamma-struct"> <ANCHOR id="gst-plugins-good-plugins-gamma.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#gst-plugins-good-plugins-gamma.property-details"> <ANCHOR id="GstGamma--gamma" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gamma.html#GstGamma--gamma"> <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.properties"> <ANCHOR id="GstGdkPixbufSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink"> +<ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.other"> <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.properties"> <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.description"> -<ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.details"> +<ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.other_details"> <ANCHOR id="GstGdkPixbufSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct"> <ANCHOR id="gst-plugins-good-plugins-gdkpixbufsink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#gst-plugins-good-plugins-gdkpixbufsink.property-details"> <ANCHOR id="GstGdkPixbufSink--last-pixbuf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"> <ANCHOR id="GstGdkPixbufSink--send-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages"> <ANCHOR id="GstGdkPixbufSink--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"> <ANCHOR id="gst-plugins-good-plugins-goom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html"> -<ANCHOR id="gst-plugins-good-plugins-goom.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.synopsis"> <ANCHOR id="GstGoom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#GstGoom"> +<ANCHOR id="gst-plugins-good-plugins-goom.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.other"> <ANCHOR id="gst-plugins-good-plugins-goom.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-goom.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.description"> -<ANCHOR id="gst-plugins-good-plugins-goom.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.details"> +<ANCHOR id="gst-plugins-good-plugins-goom.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-goom.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.other_details"> <ANCHOR id="GstGoom-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#GstGoom-struct"> <ANCHOR id="gst-plugins-good-plugins-goom.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.see-also"> <ANCHOR id="gst-plugins-good-plugins-goom2k1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html"> -<ANCHOR id="gst-plugins-good-plugins-goom2k1.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.synopsis"> <ANCHOR id="GstGoom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#GstGoom"> +<ANCHOR id="gst-plugins-good-plugins-goom2k1.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.other"> <ANCHOR id="gst-plugins-good-plugins-goom2k1.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-goom2k1.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.description"> -<ANCHOR id="gst-plugins-good-plugins-goom2k1.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.details"> +<ANCHOR id="gst-plugins-good-plugins-goom2k1.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-goom2k1.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.other_details"> <ANCHOR id="GstGoom-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#GstGoom-struct"> <ANCHOR id="gst-plugins-good-plugins-goom2k1.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.see-also"> <ANCHOR id="gst-plugins-good-plugins-hdv1394src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html"> -<ANCHOR id="gst-plugins-good-plugins-hdv1394src.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-hdv1394src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.properties"> <ANCHOR id="GstHDV1394Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src"> +<ANCHOR id="gst-plugins-good-plugins-hdv1394src.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.other"> <ANCHOR id="gst-plugins-good-plugins-hdv1394src.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-hdv1394src.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-hdv1394src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.properties"> <ANCHOR id="gst-plugins-good-plugins-hdv1394src.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.description"> -<ANCHOR id="gst-plugins-good-plugins-hdv1394src.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.details"> +<ANCHOR id="gst-plugins-good-plugins-hdv1394src.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-hdv1394src.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.other_details"> <ANCHOR id="GstHDV1394Src-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct"> <ANCHOR id="gst-plugins-good-plugins-hdv1394src.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.property-details"> <ANCHOR id="GstHDV1394Src--channel" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"> @@ -714,60 +789,82 @@ <ANCHOR id="GstHDV1394Src--port" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--port"> <ANCHOR id="GstHDV1394Src--use-avc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--use-avc"> <ANCHOR id="gst-plugins-good-plugins-icydemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html"> -<ANCHOR id="gst-plugins-good-plugins-icydemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#gst-plugins-good-plugins-icydemux.synopsis"> <ANCHOR id="GstICYDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#GstICYDemux"> +<ANCHOR id="gst-plugins-good-plugins-icydemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#gst-plugins-good-plugins-icydemux.other"> <ANCHOR id="gst-plugins-good-plugins-icydemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#gst-plugins-good-plugins-icydemux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-icydemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#gst-plugins-good-plugins-icydemux.description"> -<ANCHOR id="gst-plugins-good-plugins-icydemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#gst-plugins-good-plugins-icydemux.details"> +<ANCHOR id="gst-plugins-good-plugins-icydemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#gst-plugins-good-plugins-icydemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-icydemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#gst-plugins-good-plugins-icydemux.other_details"> <ANCHOR id="GstICYDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-icydemux.html#GstICYDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-id3demux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html"> -<ANCHOR id="gst-plugins-good-plugins-id3demux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-id3demux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.properties"> <ANCHOR id="GstID3Demux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#GstID3Demux"> +<ANCHOR id="gst-plugins-good-plugins-id3demux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.other"> <ANCHOR id="gst-plugins-good-plugins-id3demux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-id3demux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.properties"> <ANCHOR id="gst-plugins-good-plugins-id3demux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.description"> -<ANCHOR id="gst-plugins-good-plugins-id3demux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.details"> +<ANCHOR id="gst-plugins-good-plugins-id3demux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-id3demux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.other_details"> <ANCHOR id="GstID3Demux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct"> <ANCHOR id="gst-plugins-good-plugins-id3demux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#gst-plugins-good-plugins-id3demux.property-details"> <ANCHOR id="GstID3Demux--prefer-v1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1"> <ANCHOR id="gst-plugins-good-plugins-id3v2mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html"> -<ANCHOR id="gst-plugins-good-plugins-id3v2mux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.synopsis"> <ANCHOR id="GstId3v2Mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux"> +<ANCHOR id="gst-plugins-good-plugins-id3v2mux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.other"> <ANCHOR id="gst-plugins-good-plugins-id3v2mux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-id3v2mux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-id3v2mux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.description"> -<ANCHOR id="gst-plugins-good-plugins-id3v2mux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.details"> +<ANCHOR id="gst-plugins-good-plugins-id3v2mux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-id3v2mux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#gst-plugins-good-plugins-id3v2mux.other_details"> <ANCHOR id="GstId3v2Mux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux-struct"> <ANCHOR id="gst-plugins-good-plugins-imagefreeze" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html"> -<ANCHOR id="gst-plugins-good-plugins-imagefreeze.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#gst-plugins-good-plugins-imagefreeze.synopsis"> <ANCHOR id="GstImageFreeze" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze"> +<ANCHOR id="gst-plugins-good-plugins-imagefreeze.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#gst-plugins-good-plugins-imagefreeze.other"> <ANCHOR id="gst-plugins-good-plugins-imagefreeze.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#gst-plugins-good-plugins-imagefreeze.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-imagefreeze.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#gst-plugins-good-plugins-imagefreeze.description"> -<ANCHOR id="gst-plugins-good-plugins-imagefreeze.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#gst-plugins-good-plugins-imagefreeze.details"> +<ANCHOR id="gst-plugins-good-plugins-imagefreeze.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#gst-plugins-good-plugins-imagefreeze.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-imagefreeze.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#gst-plugins-good-plugins-imagefreeze.other_details"> <ANCHOR id="GstImageFreeze-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze-struct"> <ANCHOR id="gst-plugins-good-plugins-interleave" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html"> -<ANCHOR id="gst-plugins-good-plugins-interleave.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-interleave.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.properties"> <ANCHOR id="GstInterleave" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#GstInterleave"> +<ANCHOR id="gst-plugins-good-plugins-interleave.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.other"> <ANCHOR id="gst-plugins-good-plugins-interleave.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-interleave.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.properties"> <ANCHOR id="gst-plugins-good-plugins-interleave.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.description"> -<ANCHOR id="gst-plugins-good-plugins-interleave.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.details"> +<ANCHOR id="gst-plugins-good-plugins-interleave.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-interleave.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.other_details"> <ANCHOR id="GstInterleave-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#GstInterleave-struct"> <ANCHOR id="gst-plugins-good-plugins-interleave.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.property-details"> <ANCHOR id="GstInterleave--channel-positions" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions"> <ANCHOR id="GstInterleave--channel-positions-from-input" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions-from-input"> <ANCHOR id="gst-plugins-good-plugins-interleave.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-interleave.html#gst-plugins-good-plugins-interleave.see-also"> <ANCHOR id="gst-plugins-good-plugins-ismlmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html"> -<ANCHOR id="gst-plugins-good-plugins-ismlmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-ismlmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.properties"> +<ANCHOR id="GstISMLMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux"> +<ANCHOR id="gst-plugins-good-plugins-ismlmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.other"> +<ANCHOR id="gst-plugins-good-plugins-ismlmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-ismlmux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-ismlmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.description"> -<ANCHOR id="gst-plugins-good-plugins-ismlmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.details"> +<ANCHOR id="gst-plugins-good-plugins-ismlmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-ismlmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.other_details"> +<ANCHOR id="GstISMLMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux-struct"> +<ANCHOR id="gst-plugins-good-plugins-ismlmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#gst-plugins-good-plugins-ismlmux.property-details"> +<ANCHOR id="GstISMLMux--dts-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--dts-method"> +<ANCHOR id="GstISMLMux--faststart" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--faststart"> +<ANCHOR id="GstISMLMux--faststart-file" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--faststart-file"> +<ANCHOR id="GstISMLMux--fragment-duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--fragment-duration"> +<ANCHOR id="GstISMLMux--moov-recovery-file" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--moov-recovery-file"> +<ANCHOR id="GstISMLMux--movie-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--movie-timescale"> +<ANCHOR id="GstISMLMux--presentation-time" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--presentation-time"> +<ANCHOR id="GstISMLMux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--streamable"> +<ANCHOR id="GstISMLMux--trak-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--trak-timescale"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html"> -<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.properties"> <ANCHOR id="GstJackAudioSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.other"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.properties"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.description"> -<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.details"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.other_details"> <ANCHOR id="GstJackAudioSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.property-details"> <ANCHOR id="GstJackAudioSrc--client" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"> @@ -776,12 +873,13 @@ <ANCHOR id="GstJackAudioSrc--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"> <ANCHOR id="GstJackAudioSrc--transport" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html"> -<ANCHOR id="gst-plugins-good-plugins-jackaudiosink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.properties"> <ANCHOR id="GstJackAudioSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.other"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-jackaudiosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.properties"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.description"> -<ANCHOR id="gst-plugins-good-plugins-jackaudiosink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.details"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-jackaudiosink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.other_details"> <ANCHOR id="GstJackAudioSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct"> <ANCHOR id="gst-plugins-good-plugins-jackaudiosink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.property-details"> <ANCHOR id="GstJackAudioSink--client" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"> @@ -790,25 +888,27 @@ <ANCHOR id="GstJackAudioSink--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name"> <ANCHOR id="GstJackAudioSink--transport" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport"> <ANCHOR id="gst-plugins-good-plugins-jpegdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html"> -<ANCHOR id="gst-plugins-good-plugins-jpegdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-jpegdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.properties"> <ANCHOR id="GstJpegDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#GstJpegDec"> +<ANCHOR id="gst-plugins-good-plugins-jpegdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.other"> <ANCHOR id="gst-plugins-good-plugins-jpegdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-jpegdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.properties"> <ANCHOR id="gst-plugins-good-plugins-jpegdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.description"> -<ANCHOR id="gst-plugins-good-plugins-jpegdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.details"> +<ANCHOR id="gst-plugins-good-plugins-jpegdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-jpegdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.other_details"> <ANCHOR id="GstJpegDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct"> <ANCHOR id="gst-plugins-good-plugins-jpegdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.property-details"> <ANCHOR id="GstJpegDec--idct-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method"> <ANCHOR id="GstJpegDec--max-errors" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors"> <ANCHOR id="gst-plugins-good-plugins-jpegenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html"> -<ANCHOR id="gst-plugins-good-plugins-jpegenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-jpegenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.properties"> +<ANCHOR id="gst-plugins-good-plugins-jpegenc.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.signals"> <ANCHOR id="GstJpegEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#GstJpegEnc"> +<ANCHOR id="gst-plugins-good-plugins-jpegenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.other"> <ANCHOR id="gst-plugins-good-plugins-jpegenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-jpegenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-jpegenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.properties"> -<ANCHOR id="gst-plugins-good-plugins-jpegenc.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.signals"> <ANCHOR id="gst-plugins-good-plugins-jpegenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.description"> -<ANCHOR id="gst-plugins-good-plugins-jpegenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.details"> +<ANCHOR id="gst-plugins-good-plugins-jpegenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-jpegenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.other_details"> <ANCHOR id="GstJpegEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-jpegenc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.property-details"> <ANCHOR id="GstJpegEnc--quality" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#GstJpegEnc--quality"> @@ -816,12 +916,13 @@ <ANCHOR id="gst-plugins-good-plugins-jpegenc.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#gst-plugins-good-plugins-jpegenc.signal-details"> <ANCHOR id="GstJpegEnc-frame-encoded" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegenc.html#GstJpegEnc-frame-encoded"> <ANCHOR id="gst-plugins-good-plugins-level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html"> -<ANCHOR id="gst-plugins-good-plugins-level.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-level.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.properties"> <ANCHOR id="GstLevel" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel"> +<ANCHOR id="gst-plugins-good-plugins-level.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.other"> <ANCHOR id="gst-plugins-good-plugins-level.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-level.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.properties"> <ANCHOR id="gst-plugins-good-plugins-level.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.description"> -<ANCHOR id="gst-plugins-good-plugins-level.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.details"> +<ANCHOR id="gst-plugins-good-plugins-level.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-level.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.other_details"> <ANCHOR id="GstLevel-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel-struct"> <ANCHOR id="gst-plugins-good-plugins-level.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#gst-plugins-good-plugins-level.property-details"> <ANCHOR id="GstLevel--interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--interval"> @@ -830,13 +931,14 @@ <ANCHOR id="GstLevel--peak-ttl" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"> <ANCHOR id="GstLevel--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--post-messages"> <ANCHOR id="gst-plugins-good-plugins-matroskamux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html"> -<ANCHOR id="gst-plugins-good-plugins-matroskamux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-matroskamux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.properties"> <ANCHOR id="GstMatroskaMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux"> +<ANCHOR id="gst-plugins-good-plugins-matroskamux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.other"> <ANCHOR id="gst-plugins-good-plugins-matroskamux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-matroskamux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-matroskamux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.properties"> <ANCHOR id="gst-plugins-good-plugins-matroskamux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.description"> -<ANCHOR id="gst-plugins-good-plugins-matroskamux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.details"> +<ANCHOR id="gst-plugins-good-plugins-matroskamux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-matroskamux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.other_details"> <ANCHOR id="GstMatroskaMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct"> <ANCHOR id="gst-plugins-good-plugins-matroskamux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.property-details"> <ANCHOR id="GstMatroskaMux--writing-app" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app"> @@ -844,23 +946,25 @@ <ANCHOR id="GstMatroskaMux--min-index-interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval"> <ANCHOR id="GstMatroskaMux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable"> <ANCHOR id="gst-plugins-good-plugins-matroskademux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html"> -<ANCHOR id="gst-plugins-good-plugins-matroskademux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-matroskademux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.properties"> <ANCHOR id="GstMatroskaDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux"> +<ANCHOR id="gst-plugins-good-plugins-matroskademux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.other"> <ANCHOR id="gst-plugins-good-plugins-matroskademux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-matroskademux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.properties"> <ANCHOR id="gst-plugins-good-plugins-matroskademux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.description"> -<ANCHOR id="gst-plugins-good-plugins-matroskademux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.details"> +<ANCHOR id="gst-plugins-good-plugins-matroskademux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-matroskademux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.other_details"> <ANCHOR id="GstMatroskaDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-matroskademux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.property-details"> <ANCHOR id="GstMatroskaDemux--max-gap-time" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"> <ANCHOR id="gst-plugins-good-plugins-mj2mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html"> -<ANCHOR id="gst-plugins-good-plugins-mj2mux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-mj2mux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.properties"> <ANCHOR id="GstMJ2Mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux"> +<ANCHOR id="gst-plugins-good-plugins-mj2mux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.other"> <ANCHOR id="gst-plugins-good-plugins-mj2mux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-mj2mux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-mj2mux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.properties"> <ANCHOR id="gst-plugins-good-plugins-mj2mux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.description"> -<ANCHOR id="gst-plugins-good-plugins-mj2mux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.details"> +<ANCHOR id="gst-plugins-good-plugins-mj2mux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-mj2mux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.other_details"> <ANCHOR id="GstMJ2Mux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct"> <ANCHOR id="gst-plugins-good-plugins-mj2mux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.property-details"> <ANCHOR id="GstMJ2Mux--dts-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method"> @@ -873,28 +977,32 @@ <ANCHOR id="GstMJ2Mux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable"> <ANCHOR id="GstMJ2Mux--trak-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--trak-timescale"> <ANCHOR id="gst-plugins-good-plugins-monoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html"> -<ANCHOR id="gst-plugins-good-plugins-monoscope.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-monoscope.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.other"> +<ANCHOR id="gst-plugins-good-plugins-monoscope.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-monoscope.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.description"> -<ANCHOR id="gst-plugins-good-plugins-monoscope.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.details"> +<ANCHOR id="gst-plugins-good-plugins-monoscope.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-monoscope.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.other_details"> <ANCHOR id="GstMonoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope"> <ANCHOR id="gst-plugins-good-plugins-monoscope.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.see-also"> <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html"> -<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.synopsis"> <ANCHOR id="GstMpegAudioParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse"> +<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.other"> <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.description"> -<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.details"> +<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.other_details"> <ANCHOR id="GstMpegAudioParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct"> <ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.see-also"> <ANCHOR id="gst-plugins-good-plugins-mp4mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html"> -<ANCHOR id="gst-plugins-good-plugins-mp4mux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-mp4mux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.properties"> <ANCHOR id="GstMP4Mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux"> +<ANCHOR id="gst-plugins-good-plugins-mp4mux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.other"> <ANCHOR id="gst-plugins-good-plugins-mp4mux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-mp4mux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-mp4mux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.properties"> <ANCHOR id="gst-plugins-good-plugins-mp4mux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.description"> -<ANCHOR id="gst-plugins-good-plugins-mp4mux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.details"> -<ANCHOR id="GstMP4Mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux"> +<ANCHOR id="gst-plugins-good-plugins-mp4mux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-mp4mux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.other_details"> +<ANCHOR id="GstMP4Mux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux-struct"> <ANCHOR id="gst-plugins-good-plugins-mp4mux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.property-details"> <ANCHOR id="GstMP4Mux--dts-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"> <ANCHOR id="GstMP4Mux--faststart" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart"> @@ -906,33 +1014,32 @@ <ANCHOR id="GstMP4Mux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--streamable"> <ANCHOR id="GstMP4Mux--trak-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--trak-timescale"> <ANCHOR id="gst-plugins-good-plugins-mulawdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html"> -<ANCHOR id="gst-plugins-good-plugins-mulawdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.synopsis"> <ANCHOR id="GstMuLawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#GstMuLawDec"> +<ANCHOR id="gst-plugins-good-plugins-mulawdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.other"> <ANCHOR id="gst-plugins-good-plugins-mulawdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-mulawdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.description"> -<ANCHOR id="gst-plugins-good-plugins-mulawdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.details"> +<ANCHOR id="gst-plugins-good-plugins-mulawdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-mulawdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.other_details"> <ANCHOR id="GstMuLawDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct"> <ANCHOR id="gst-plugins-good-plugins-mulawenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html"> -<ANCHOR id="gst-plugins-good-plugins-mulawenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.synopsis"> <ANCHOR id="GstMuLawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#GstMuLawDec"> -<ANCHOR id="gst-plugins-good-plugins-mulawenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.description"> -<ANCHOR id="gst-plugins-good-plugins-mulawenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.details"> -<ANCHOR id="GstMuLawDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#GstMuLawDec-struct"> <ANCHOR id="GstMuLawEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc"> +<ANCHOR id="gst-plugins-good-plugins-mulawenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.other"> +<ANCHOR id="gst-plugins-good-plugins-mulawenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-mulawenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.description"> +<ANCHOR id="gst-plugins-good-plugins-mulawenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-mulawenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#gst-plugins-good-plugins-mulawenc.other_details"> +<ANCHOR id="GstMuLawEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-multifilesink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html"> -<ANCHOR id="gst-plugins-good-plugins-multifilesink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-multifilesink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.properties"> <ANCHOR id="GstMultiFileSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink"> +<ANCHOR id="gst-plugins-good-plugins-multifilesink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.other"> <ANCHOR id="gst-plugins-good-plugins-multifilesink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-multifilesink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.properties"> <ANCHOR id="gst-plugins-good-plugins-multifilesink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.description"> -<ANCHOR id="gst-plugins-good-plugins-multifilesink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.details"> +<ANCHOR id="gst-plugins-good-plugins-multifilesink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-multifilesink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.other_details"> <ANCHOR id="GstMultiFileSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct"> <ANCHOR id="GstMultiFileSinkNext" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GstMultiFileSinkNext"> -<ANCHOR id="GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS"> -<ANCHOR id="GST-MULTI-FILE-SINK-NEXT-DISCONT:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-DISCONT:CAPS"> -<ANCHOR id="GST-MULTI-FILE-SINK-NEXT-KEY-FRAME:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-KEY-FRAME:CAPS"> -<ANCHOR id="GST-MULTI-FILE-SINK-NEXT-KEY-UNIT-EVENT:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-KEY-UNIT-EVENT:CAPS"> -<ANCHOR id="GST-MULTI-FILE-SINK-NEXT-MAX-SIZE:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-MAX-SIZE:CAPS"> <ANCHOR id="gst-plugins-good-plugins-multifilesink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.property-details"> <ANCHOR id="GstMultiFileSink--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--location"> <ANCHOR id="GstMultiFileSink--index" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--index"> @@ -942,12 +1049,13 @@ <ANCHOR id="GstMultiFileSink--max-file-size" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink--max-file-size"> <ANCHOR id="gst-plugins-good-plugins-multifilesink.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesink.html#gst-plugins-good-plugins-multifilesink.see-also"> <ANCHOR id="gst-plugins-good-plugins-multifilesrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html"> -<ANCHOR id="gst-plugins-good-plugins-multifilesrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-multifilesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.properties"> <ANCHOR id="GstMultiFileSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc"> +<ANCHOR id="gst-plugins-good-plugins-multifilesrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.other"> <ANCHOR id="gst-plugins-good-plugins-multifilesrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-multifilesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.properties"> <ANCHOR id="gst-plugins-good-plugins-multifilesrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.description"> -<ANCHOR id="gst-plugins-good-plugins-multifilesrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.details"> +<ANCHOR id="gst-plugins-good-plugins-multifilesrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-multifilesrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.other_details"> <ANCHOR id="GstMultiFileSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-multifilesrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.property-details"> <ANCHOR id="GstMultiFileSrc--caps" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--caps"> @@ -958,12 +1066,13 @@ <ANCHOR id="GstMultiFileSrc--stop-index" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#GstMultiFileSrc--stop-index"> <ANCHOR id="gst-plugins-good-plugins-multifilesrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multifilesrc.html#gst-plugins-good-plugins-multifilesrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-multipartdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html"> -<ANCHOR id="gst-plugins-good-plugins-multipartdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-multipartdemux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.properties"> <ANCHOR id="GstMultipartDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux"> +<ANCHOR id="gst-plugins-good-plugins-multipartdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.other"> <ANCHOR id="gst-plugins-good-plugins-multipartdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-multipartdemux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.properties"> <ANCHOR id="gst-plugins-good-plugins-multipartdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.description"> -<ANCHOR id="gst-plugins-good-plugins-multipartdemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.details"> +<ANCHOR id="gst-plugins-good-plugins-multipartdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-multipartdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.other_details"> <ANCHOR id="GstMultipartDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-multipartdemux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.property-details"> <ANCHOR id="GstMultipartDemux--autoscan" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--autoscan"> @@ -971,23 +1080,25 @@ <ANCHOR id="GstMultipartDemux--single-stream" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--single-stream"> <ANCHOR id="gst-plugins-good-plugins-multipartdemux.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartdemux.html#gst-plugins-good-plugins-multipartdemux.see-also"> <ANCHOR id="gst-plugins-good-plugins-multipartmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html"> -<ANCHOR id="gst-plugins-good-plugins-multipartmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-multipartmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.properties"> <ANCHOR id="GstMultipartMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#GstMultipartMux"> +<ANCHOR id="gst-plugins-good-plugins-multipartmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.other"> <ANCHOR id="gst-plugins-good-plugins-multipartmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-multipartmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.properties"> <ANCHOR id="gst-plugins-good-plugins-multipartmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.description"> -<ANCHOR id="gst-plugins-good-plugins-multipartmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.details"> +<ANCHOR id="gst-plugins-good-plugins-multipartmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-multipartmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.other_details"> <ANCHOR id="GstMultipartMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#GstMultipartMux-struct"> <ANCHOR id="gst-plugins-good-plugins-multipartmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#gst-plugins-good-plugins-multipartmux.property-details"> <ANCHOR id="GstMultipartMux--boundary" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multipartmux.html#GstMultipartMux--boundary"> <ANCHOR id="gst-plugins-good-plugins-multiudpsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html"> -<ANCHOR id="gst-plugins-good-plugins-multiudpsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.synopsis"> -<ANCHOR id="GstMultiUDPSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"> -<ANCHOR id="gst-plugins-good-plugins-multiudpsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-multiudpsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.properties"> <ANCHOR id="gst-plugins-good-plugins-multiudpsink.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.signals"> +<ANCHOR id="GstMultiUDPSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink"> +<ANCHOR id="gst-plugins-good-plugins-multiudpsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.other"> +<ANCHOR id="gst-plugins-good-plugins-multiudpsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-multiudpsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.description"> -<ANCHOR id="gst-plugins-good-plugins-multiudpsink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.details"> +<ANCHOR id="gst-plugins-good-plugins-multiudpsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-multiudpsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.other_details"> <ANCHOR id="GstMultiUDPSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-struct"> <ANCHOR id="gst-plugins-good-plugins-multiudpsink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.property-details"> <ANCHOR id="GstMultiUDPSink--bytes-served" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink--bytes-served"> @@ -1021,25 +1132,27 @@ <ANCHOR id="GstMultiUDPSink-remove" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove"> <ANCHOR id="gst-plugins-good-plugins-multiudpsink.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-multiudpsink.html#gst-plugins-good-plugins-multiudpsink.see-also"> <ANCHOR id="gst-plugins-good-plugins-optv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html"> -<ANCHOR id="gst-plugins-good-plugins-optv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-optv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.properties"> <ANCHOR id="GstOpTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#GstOpTV"> +<ANCHOR id="gst-plugins-good-plugins-optv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.other"> <ANCHOR id="gst-plugins-good-plugins-optv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-optv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.properties"> <ANCHOR id="gst-plugins-good-plugins-optv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.description"> -<ANCHOR id="gst-plugins-good-plugins-optv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.details"> +<ANCHOR id="gst-plugins-good-plugins-optv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-optv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.other_details"> <ANCHOR id="GstOpTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#GstOpTV-struct"> <ANCHOR id="gst-plugins-good-plugins-optv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#gst-plugins-good-plugins-optv.property-details"> <ANCHOR id="GstOpTV--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#GstOpTV--mode"> <ANCHOR id="GstOpTV--speed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#GstOpTV--speed"> <ANCHOR id="GstOpTV--threshold" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-optv.html#GstOpTV--threshold"> <ANCHOR id="gst-plugins-good-plugins-oss4sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html"> -<ANCHOR id="gst-plugins-good-plugins-oss4sink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-oss4sink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.properties"> <ANCHOR id="GstOss4Sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#GstOss4Sink"> +<ANCHOR id="gst-plugins-good-plugins-oss4sink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.other"> <ANCHOR id="gst-plugins-good-plugins-oss4sink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-oss4sink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-oss4sink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.properties"> <ANCHOR id="gst-plugins-good-plugins-oss4sink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.description"> -<ANCHOR id="gst-plugins-good-plugins-oss4sink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.details"> +<ANCHOR id="gst-plugins-good-plugins-oss4sink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-oss4sink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.other_details"> <ANCHOR id="GstOss4Sink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#GstOss4Sink-struct"> <ANCHOR id="gst-plugins-good-plugins-oss4sink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#gst-plugins-good-plugins-oss4sink.property-details"> <ANCHOR id="GstOss4Sink--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--device"> @@ -1047,90 +1160,102 @@ <ANCHOR id="GstOss4Sink--mute" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--mute"> <ANCHOR id="GstOss4Sink--volume" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4sink.html#GstOss4Sink--volume"> <ANCHOR id="gst-plugins-good-plugins-oss4src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html"> -<ANCHOR id="gst-plugins-good-plugins-oss4src.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-oss4src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.properties"> <ANCHOR id="GstOss4Source" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#GstOss4Source"> +<ANCHOR id="gst-plugins-good-plugins-oss4src.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.other"> <ANCHOR id="gst-plugins-good-plugins-oss4src.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-oss4src.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-oss4src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.properties"> <ANCHOR id="gst-plugins-good-plugins-oss4src.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.description"> -<ANCHOR id="gst-plugins-good-plugins-oss4src.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.details"> +<ANCHOR id="gst-plugins-good-plugins-oss4src.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-oss4src.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.other_details"> <ANCHOR id="GstOss4Source-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#GstOss4Source-struct"> <ANCHOR id="gst-plugins-good-plugins-oss4src.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#gst-plugins-good-plugins-oss4src.property-details"> <ANCHOR id="GstOss4Source--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#GstOss4Source--device"> <ANCHOR id="GstOss4Source--device-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-oss4src.html#GstOss4Source--device-name"> <ANCHOR id="gst-plugins-good-plugins-osssink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html"> -<ANCHOR id="gst-plugins-good-plugins-osssink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-osssink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.properties"> <ANCHOR id="GstOssSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#GstOssSink"> +<ANCHOR id="gst-plugins-good-plugins-osssink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.other"> <ANCHOR id="gst-plugins-good-plugins-osssink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-osssink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.properties"> <ANCHOR id="gst-plugins-good-plugins-osssink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.description"> -<ANCHOR id="gst-plugins-good-plugins-osssink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.details"> +<ANCHOR id="gst-plugins-good-plugins-osssink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-osssink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.other_details"> <ANCHOR id="GstOssSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#GstOssSink-struct"> <ANCHOR id="gst-plugins-good-plugins-osssink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#gst-plugins-good-plugins-osssink.property-details"> <ANCHOR id="GstOssSink--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssink.html#GstOssSink--device"> <ANCHOR id="gst-plugins-good-plugins-osssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html"> -<ANCHOR id="gst-plugins-good-plugins-osssrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-osssrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.properties"> <ANCHOR id="GstOssSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#GstOssSrc"> +<ANCHOR id="gst-plugins-good-plugins-osssrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.other"> <ANCHOR id="gst-plugins-good-plugins-osssrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-osssrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-osssrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.properties"> <ANCHOR id="gst-plugins-good-plugins-osssrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.description"> -<ANCHOR id="gst-plugins-good-plugins-osssrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.details"> +<ANCHOR id="gst-plugins-good-plugins-osssrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-osssrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.other_details"> <ANCHOR id="GstOssSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#GstOssSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-osssrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#gst-plugins-good-plugins-osssrc.property-details"> <ANCHOR id="GstOssSrc--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#GstOssSrc--device"> <ANCHOR id="GstOssSrc--device-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osssrc.html#GstOssSrc--device-name"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html"> -<ANCHOR id="gst-plugins-good-plugins-osxaudiosink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.synopsis"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.properties"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.other"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.description"> -<ANCHOR id="gst-plugins-good-plugins-osxaudiosink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.details"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.other_details"> <ANCHOR id="GstOsxAudioSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#gst-plugins-good-plugins-osxaudiosink.property-details"> <ANCHOR id="GstOsxAudioSink--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosink.html#GstOsxAudioSink--device"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html"> -<ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.synopsis"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.properties"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.other"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.description"> -<ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.details"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.other_details"> <ANCHOR id="GstOsxAudioSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc"> <ANCHOR id="gst-plugins-good-plugins-osxaudiosrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#gst-plugins-good-plugins-osxaudiosrc.property-details"> <ANCHOR id="GstOsxAudioSrc--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxaudiosrc.html#GstOsxAudioSrc--device"> <ANCHOR id="gst-plugins-good-plugins-osxvideosink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html"> -<ANCHOR id="gst-plugins-good-plugins-osxvideosink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.synopsis"> <ANCHOR id="gst-plugins-good-plugins-osxvideosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.properties"> +<ANCHOR id="gst-plugins-good-plugins-osxvideosink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.other"> +<ANCHOR id="gst-plugins-good-plugins-osxvideosink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-osxvideosink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.description"> -<ANCHOR id="gst-plugins-good-plugins-osxvideosink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.details"> +<ANCHOR id="gst-plugins-good-plugins-osxvideosink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-osxvideosink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.other_details"> <ANCHOR id="GstOSXVideoSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink"> <ANCHOR id="gst-plugins-good-plugins-osxvideosink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#gst-plugins-good-plugins-osxvideosink.property-details"> <ANCHOR id="GstOSXVideoSink--embed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--embed"> <ANCHOR id="GstOSXVideoSink--fullscreen" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-osxvideosink.html#GstOSXVideoSink--fullscreen"> <ANCHOR id="gst-plugins-good-plugins-pngdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html"> -<ANCHOR id="gst-plugins-good-plugins-pngdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#gst-plugins-good-plugins-pngdec.synopsis"> <ANCHOR id="GstPngDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#GstPngDec"> +<ANCHOR id="gst-plugins-good-plugins-pngdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#gst-plugins-good-plugins-pngdec.other"> <ANCHOR id="gst-plugins-good-plugins-pngdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#gst-plugins-good-plugins-pngdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-pngdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#gst-plugins-good-plugins-pngdec.description"> -<ANCHOR id="gst-plugins-good-plugins-pngdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#gst-plugins-good-plugins-pngdec.details"> +<ANCHOR id="gst-plugins-good-plugins-pngdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#gst-plugins-good-plugins-pngdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-pngdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#gst-plugins-good-plugins-pngdec.other_details"> <ANCHOR id="GstPngDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngdec.html#GstPngDec-struct"> <ANCHOR id="gst-plugins-good-plugins-pngenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html"> -<ANCHOR id="gst-plugins-good-plugins-pngenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-pngenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.properties"> <ANCHOR id="GstPngEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#GstPngEnc"> +<ANCHOR id="gst-plugins-good-plugins-pngenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.other"> <ANCHOR id="gst-plugins-good-plugins-pngenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-pngenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-pngenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.properties"> <ANCHOR id="gst-plugins-good-plugins-pngenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.description"> -<ANCHOR id="gst-plugins-good-plugins-pngenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.details"> +<ANCHOR id="gst-plugins-good-plugins-pngenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-pngenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.other_details"> <ANCHOR id="GstPngEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#GstPngEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-pngenc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#gst-plugins-good-plugins-pngenc.property-details"> <ANCHOR id="GstPngEnc--compression-level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#GstPngEnc--compression-level"> <ANCHOR id="GstPngEnc--snapshot" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pngenc.html#GstPngEnc--snapshot"> <ANCHOR id="gst-plugins-good-plugins-progressreport" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html"> -<ANCHOR id="gst-plugins-good-plugins-progressreport.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-progressreport.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.properties"> <ANCHOR id="GstProgressReport" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#GstProgressReport"> +<ANCHOR id="gst-plugins-good-plugins-progressreport.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.other"> <ANCHOR id="gst-plugins-good-plugins-progressreport.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-progressreport.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.properties"> <ANCHOR id="gst-plugins-good-plugins-progressreport.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.description"> -<ANCHOR id="gst-plugins-good-plugins-progressreport.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.details"> +<ANCHOR id="gst-plugins-good-plugins-progressreport.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-progressreport.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.other_details"> <ANCHOR id="GstProgressReport-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#GstProgressReport-struct"> <ANCHOR id="gst-plugins-good-plugins-progressreport.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#gst-plugins-good-plugins-progressreport.property-details"> <ANCHOR id="GstProgressReport--silent" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#GstProgressReport--silent"> @@ -1138,13 +1263,14 @@ <ANCHOR id="GstProgressReport--format" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#GstProgressReport--format"> <ANCHOR id="GstProgressReport--do-query" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-progressreport.html#GstProgressReport--do-query"> <ANCHOR id="gst-plugins-good-plugins-pulsesink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html"> -<ANCHOR id="gst-plugins-good-plugins-pulsesink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-pulsesink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.properties"> <ANCHOR id="GstPulseSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#GstPulseSink"> +<ANCHOR id="gst-plugins-good-plugins-pulsesink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.other"> <ANCHOR id="gst-plugins-good-plugins-pulsesink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-pulsesink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-pulsesink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.properties"> <ANCHOR id="gst-plugins-good-plugins-pulsesink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.description"> -<ANCHOR id="gst-plugins-good-plugins-pulsesink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.details"> +<ANCHOR id="gst-plugins-good-plugins-pulsesink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-pulsesink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.other_details"> <ANCHOR id="GstPulseSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#GstPulseSink-struct"> <ANCHOR id="gst-plugins-good-plugins-pulsesink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#gst-plugins-good-plugins-pulsesink.property-details"> <ANCHOR id="GstPulseSink--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#GstPulseSink--device"> @@ -1157,13 +1283,14 @@ <ANCHOR id="GstPulseSink--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#GstPulseSink--client-name"> <ANCHOR id="GstPulseSink--current-device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesink.html#GstPulseSink--current-device"> <ANCHOR id="gst-plugins-good-plugins-pulsesrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html"> -<ANCHOR id="gst-plugins-good-plugins-pulsesrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-pulsesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.properties"> <ANCHOR id="GstPulseSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc"> +<ANCHOR id="gst-plugins-good-plugins-pulsesrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.other"> <ANCHOR id="gst-plugins-good-plugins-pulsesrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-pulsesrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-pulsesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.properties"> <ANCHOR id="gst-plugins-good-plugins-pulsesrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.description"> -<ANCHOR id="gst-plugins-good-plugins-pulsesrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.details"> +<ANCHOR id="gst-plugins-good-plugins-pulsesrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-pulsesrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.other_details"> <ANCHOR id="GstPulseSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-pulsesrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#gst-plugins-good-plugins-pulsesrc.property-details"> <ANCHOR id="GstPulseSrc--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--device"> @@ -1177,33 +1304,36 @@ <ANCHOR id="GstPulseSrc--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name"> <ANCHOR id="GstPulseSrc--current-device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--current-device"> <ANCHOR id="gst-plugins-good-plugins-quarktv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html"> -<ANCHOR id="gst-plugins-good-plugins-quarktv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-quarktv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.properties"> <ANCHOR id="GstQuarkTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV"> +<ANCHOR id="gst-plugins-good-plugins-quarktv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.other"> <ANCHOR id="gst-plugins-good-plugins-quarktv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-quarktv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.properties"> <ANCHOR id="gst-plugins-good-plugins-quarktv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.description"> -<ANCHOR id="gst-plugins-good-plugins-quarktv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.details"> +<ANCHOR id="gst-plugins-good-plugins-quarktv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-quarktv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.other_details"> <ANCHOR id="GstQuarkTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"> <ANCHOR id="gst-plugins-good-plugins-quarktv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.property-details"> <ANCHOR id="GstQuarkTV--planes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"> <ANCHOR id="gst-plugins-good-plugins-qtdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html"> -<ANCHOR id="gst-plugins-good-plugins-qtdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-qtdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.signals"> <ANCHOR id="GstQTDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#GstQTDemux"> +<ANCHOR id="gst-plugins-good-plugins-qtdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.other"> <ANCHOR id="gst-plugins-good-plugins-qtdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-qtdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.signals"> <ANCHOR id="gst-plugins-good-plugins-qtdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.description"> -<ANCHOR id="gst-plugins-good-plugins-qtdemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.details"> +<ANCHOR id="gst-plugins-good-plugins-qtdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-qtdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.other_details"> <ANCHOR id="GstQTDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-qtdemux.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.signal-details"> <ANCHOR id="GstQTDemux-got-redirect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect"> <ANCHOR id="gst-plugins-good-plugins-qtmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html"> -<ANCHOR id="gst-plugins-good-plugins-qtmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-qtmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.properties"> <ANCHOR id="GstQTMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux"> +<ANCHOR id="gst-plugins-good-plugins-qtmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.other"> <ANCHOR id="gst-plugins-good-plugins-qtmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-qtmux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-qtmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.properties"> <ANCHOR id="gst-plugins-good-plugins-qtmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.description"> -<ANCHOR id="gst-plugins-good-plugins-qtmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.details"> +<ANCHOR id="gst-plugins-good-plugins-qtmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-qtmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.other_details"> <ANCHOR id="GstQTMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux-struct"> <ANCHOR id="gst-plugins-good-plugins-qtmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.property-details"> <ANCHOR id="GstQTMux--dts-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method"> @@ -1216,29 +1346,32 @@ <ANCHOR id="GstQTMux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux--streamable"> <ANCHOR id="GstQTMux--trak-timescale" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux--trak-timescale"> <ANCHOR id="gst-plugins-good-plugins-qtmoovrecover" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html"> -<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.functions" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.functions"> +<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.properties"> <ANCHOR id="GstQTMoovRecover" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover"> +<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.other"> <ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.properties"> <ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.description"> -<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.details"> -<ANCHOR id="GstQTMoovRecover-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"> -<ANCHOR id="GstQTMoovRecoverClass" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass"> +<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.functions_details"> <ANCHOR id="gst-qt-moov-recover-get-type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type"> <ANCHOR id="gst-qt-moov-recover-register" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register"> +<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.other_details"> +<ANCHOR id="GstQTMoovRecover-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"> +<ANCHOR id="GstQTMoovRecoverClass" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass"> <ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.property-details"> <ANCHOR id="GstQTMoovRecover--broken-input" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input"> <ANCHOR id="GstQTMoovRecover--faststart-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"> <ANCHOR id="GstQTMoovRecover--fixed-output" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"> <ANCHOR id="GstQTMoovRecover--recovery-input" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"> <ANCHOR id="gst-plugins-good-plugins-radioactv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html"> -<ANCHOR id="gst-plugins-good-plugins-radioactv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-radioactv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.properties"> <ANCHOR id="GstRadioacTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#GstRadioacTV"> +<ANCHOR id="gst-plugins-good-plugins-radioactv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.other"> <ANCHOR id="gst-plugins-good-plugins-radioactv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-radioactv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.properties"> <ANCHOR id="gst-plugins-good-plugins-radioactv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.description"> -<ANCHOR id="gst-plugins-good-plugins-radioactv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.details"> +<ANCHOR id="gst-plugins-good-plugins-radioactv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-radioactv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.other_details"> <ANCHOR id="GstRadioacTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct"> <ANCHOR id="gst-plugins-good-plugins-radioactv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.property-details"> <ANCHOR id="GstRadioacTV--color" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color"> @@ -1246,24 +1379,26 @@ <ANCHOR id="GstRadioacTV--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#GstRadioacTV--mode"> <ANCHOR id="GstRadioacTV--trigger" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#GstRadioacTV--trigger"> <ANCHOR id="gst-plugins-good-plugins-revtv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html"> -<ANCHOR id="gst-plugins-good-plugins-revtv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-revtv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.properties"> <ANCHOR id="GstRevTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#GstRevTV"> +<ANCHOR id="gst-plugins-good-plugins-revtv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.other"> <ANCHOR id="gst-plugins-good-plugins-revtv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-revtv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.properties"> <ANCHOR id="gst-plugins-good-plugins-revtv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.description"> -<ANCHOR id="gst-plugins-good-plugins-revtv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.details"> +<ANCHOR id="gst-plugins-good-plugins-revtv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-revtv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.other_details"> <ANCHOR id="GstRevTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#GstRevTV-struct"> <ANCHOR id="gst-plugins-good-plugins-revtv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#gst-plugins-good-plugins-revtv.property-details"> <ANCHOR id="GstRevTV--delay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#GstRevTV--delay"> <ANCHOR id="GstRevTV--gain" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#GstRevTV--gain"> <ANCHOR id="GstRevTV--linespace" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-revtv.html#GstRevTV--linespace"> <ANCHOR id="gst-plugins-good-plugins-rganalysis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html"> -<ANCHOR id="gst-plugins-good-plugins-rganalysis.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rganalysis.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.properties"> <ANCHOR id="GstRgAnalysis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis"> +<ANCHOR id="gst-plugins-good-plugins-rganalysis.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.other"> <ANCHOR id="gst-plugins-good-plugins-rganalysis.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rganalysis.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.properties"> <ANCHOR id="gst-plugins-good-plugins-rganalysis.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.description"> -<ANCHOR id="gst-plugins-good-plugins-rganalysis.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.details"> +<ANCHOR id="gst-plugins-good-plugins-rganalysis.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rganalysis.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.other_details"> <ANCHOR id="GstRgAnalysis-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis-struct"> <ANCHOR id="gst-plugins-good-plugins-rganalysis.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.property-details"> <ANCHOR id="GstRgAnalysis--forced" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--forced"> @@ -1272,24 +1407,26 @@ <ANCHOR id="GstRgAnalysis--message" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#GstRgAnalysis--message"> <ANCHOR id="gst-plugins-good-plugins-rganalysis.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rganalysis.html#gst-plugins-good-plugins-rganalysis.see-also"> <ANCHOR id="gst-plugins-good-plugins-rglimiter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html"> -<ANCHOR id="gst-plugins-good-plugins-rglimiter.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rglimiter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.properties"> <ANCHOR id="GstRgLimiter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#GstRgLimiter"> +<ANCHOR id="gst-plugins-good-plugins-rglimiter.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.other"> <ANCHOR id="gst-plugins-good-plugins-rglimiter.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rglimiter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.properties"> <ANCHOR id="gst-plugins-good-plugins-rglimiter.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.description"> -<ANCHOR id="gst-plugins-good-plugins-rglimiter.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.details"> +<ANCHOR id="gst-plugins-good-plugins-rglimiter.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rglimiter.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.other_details"> <ANCHOR id="GstRgLimiter-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#GstRgLimiter-struct"> <ANCHOR id="gst-plugins-good-plugins-rglimiter.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.property-details"> <ANCHOR id="GstRgLimiter--enabled" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#GstRgLimiter--enabled"> <ANCHOR id="gst-plugins-good-plugins-rglimiter.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rglimiter.html#gst-plugins-good-plugins-rglimiter.see-also"> <ANCHOR id="gst-plugins-good-plugins-rgvolume" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html"> -<ANCHOR id="gst-plugins-good-plugins-rgvolume.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rgvolume.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.properties"> <ANCHOR id="GstRgVolume" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#GstRgVolume"> +<ANCHOR id="gst-plugins-good-plugins-rgvolume.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.other"> <ANCHOR id="gst-plugins-good-plugins-rgvolume.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rgvolume.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-rgvolume.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.properties"> <ANCHOR id="gst-plugins-good-plugins-rgvolume.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.description"> -<ANCHOR id="gst-plugins-good-plugins-rgvolume.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.details"> +<ANCHOR id="gst-plugins-good-plugins-rgvolume.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rgvolume.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.other_details"> <ANCHOR id="GstRgVolume-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#GstRgVolume-struct"> <ANCHOR id="gst-plugins-good-plugins-rgvolume.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.property-details"> <ANCHOR id="GstRgVolume--album-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#GstRgVolume--album-mode"> @@ -1300,24 +1437,26 @@ <ANCHOR id="GstRgVolume--target-gain" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#GstRgVolume--target-gain"> <ANCHOR id="gst-plugins-good-plugins-rgvolume.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rgvolume.html#gst-plugins-good-plugins-rgvolume.see-also"> <ANCHOR id="gst-plugins-good-plugins-rippletv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html"> -<ANCHOR id="gst-plugins-good-plugins-rippletv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rippletv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.properties"> <ANCHOR id="GstRippleTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#GstRippleTV"> +<ANCHOR id="gst-plugins-good-plugins-rippletv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.other"> <ANCHOR id="gst-plugins-good-plugins-rippletv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rippletv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.properties"> <ANCHOR id="gst-plugins-good-plugins-rippletv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.description"> -<ANCHOR id="gst-plugins-good-plugins-rippletv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.details"> +<ANCHOR id="gst-plugins-good-plugins-rippletv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rippletv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.other_details"> <ANCHOR id="GstRippleTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct"> <ANCHOR id="gst-plugins-good-plugins-rippletv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.property-details"> <ANCHOR id="GstRippleTV--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode"> <ANCHOR id="GstRippleTV--reset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset"> <ANCHOR id="gst-plugins-good-plugins-rtpdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.synopsis"> -<ANCHOR id="GstRTPDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec"> -<ANCHOR id="gst-plugins-good-plugins-rtpdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpdec.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.signals"> +<ANCHOR id="GstRTPDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec"> +<ANCHOR id="gst-plugins-good-plugins-rtpdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.other"> +<ANCHOR id="gst-plugins-good-plugins-rtpdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.other_details"> <ANCHOR id="GstRTPDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.property-details"> <ANCHOR id="GstRTPDec--skip" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"> @@ -1332,104 +1471,116 @@ <ANCHOR id="GstRTPDec-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"> <ANCHOR id="GstRTPDec-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"> <ANCHOR id="gst-plugins-good-plugins-rtpac3depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.synopsis"> <ANCHOR id="GstRtpAC3Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpac3depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpac3depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3depay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.other_details"> <ANCHOR id="GstRtpAC3Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpac3depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpac3pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.synopsis"> <ANCHOR id="GstRtpAC3Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpac3pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpac3pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpac3pay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.other_details"> <ANCHOR id="GstRtpAC3Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpac3pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3pay.html#gst-plugins-good-plugins-rtpac3pay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpamrdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.synopsis"> <ANCHOR id="GstRtpAMRDepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.other_details"> <ANCHOR id="GstRtpAMRDepay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpamrdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrdepay.html#gst-plugins-good-plugins-rtpamrdepay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpamrpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.synopsis"> <ANCHOR id="GstRtpAMRPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpamrpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpamrpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpamrpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.other_details"> <ANCHOR id="GstRtpAMRPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpamrpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpbvdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.other_details"> <ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpbvpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpbvpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbvpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.other_details"> <ANCHOR id="gst-plugins-good-plugins-rtpbvpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpL16depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.synopsis"> <ANCHOR id="GstRtpL16Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpL16depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpL16depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.other_details"> <ANCHOR id="GstRtpL16Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpL16depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpL16pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.synopsis"> <ANCHOR id="GstRtpL16Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpL16pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpL16pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.other_details"> <ANCHOR id="GstRtpL16Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpL16pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.properties"> <ANCHOR id="GstRtpJ2KPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay"> +<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.other_details"> <ANCHOR id="GstRtpJ2KPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.property-details"> <ANCHOR id="GstRtpJ2KPay--buffer-list" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list"> <ANCHOR id="gst-plugins-good-plugins-rtpjpegpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.properties"> <ANCHOR id="GstRtpJPEGPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay"> +<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.other_details"> <ANCHOR id="GstRtpJPEGPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.property-details"> <ANCHOR id="GstRtpJPEGPay--quality" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"> <ANCHOR id="GstRtpJPEGPay--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"> <ANCHOR id="GstRtpJPEGPay--buffer-list" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"> <ANCHOR id="gst-plugins-good-plugins-rtpsbcpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.properties"> <ANCHOR id="GstRtpSBCPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.other"> <ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.other_details"> <ANCHOR id="GstRtpSBCPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.property-details"> <ANCHOR id="GstRtpSBCPay--min-frames" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html"> -<ANCHOR id="gst-plugins-good-plugins-rtspsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtspsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.properties"> +<ANCHOR id="gst-plugins-good-plugins-rtspsrc.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signals"> <ANCHOR id="GstRTSPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc"> +<ANCHOR id="gst-plugins-good-plugins-rtspsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.other"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-rtspsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.properties"> -<ANCHOR id="gst-plugins-good-plugins-rtspsrc.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signals"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.description"> -<ANCHOR id="gst-plugins-good-plugins-rtspsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.details"> +<ANCHOR id="gst-plugins-good-plugins-rtspsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtspsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.other_details"> <ANCHOR id="GstRTSPSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.property-details"> <ANCHOR id="GstRTSPSrc--debug" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug"> @@ -1460,20 +1611,23 @@ <ANCHOR id="GstRTSPSrc--ntp-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"> <ANCHOR id="GstRTSPSrc--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"> <ANCHOR id="GstRTSPSrc--sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes"> +<ANCHOR id="GstRTSPSrc--tls-database" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-database"> <ANCHOR id="GstRTSPSrc--tls-validation-flags" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags"> <ANCHOR id="gst-plugins-good-plugins-rtspsrc.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signal-details"> <ANCHOR id="GstRTSPSrc-handle-request" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"> <ANCHOR id="GstRTSPSrc-on-sdp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"> <ANCHOR id="GstRTSPSrc-select-stream" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"> +<ANCHOR id="GstRTSPSrc-new-manager" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-new-manager"> <ANCHOR id="gst-plugins-good-plugins-rtpbin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpbin.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpbin.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.properties"> +<ANCHOR id="gst-plugins-good-plugins-rtpbin.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.signals"> <ANCHOR id="GstRtpBin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin"> +<ANCHOR id="gst-plugins-good-plugins-rtpbin.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.other"> <ANCHOR id="gst-plugins-good-plugins-rtpbin.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpbin.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-rtpbin.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.properties"> -<ANCHOR id="gst-plugins-good-plugins-rtpbin.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.signals"> <ANCHOR id="gst-plugins-good-plugins-rtpbin.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpbin.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbin.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpbin.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.other_details"> <ANCHOR id="GstRtpBin-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpbin.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.property-details"> <ANCHOR id="GstRtpBin--do-lost" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost"> @@ -1505,22 +1659,31 @@ <ANCHOR id="GstRtpBin-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"> <ANCHOR id="GstRtpBin-reset-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"> <ANCHOR id="GstRtpBin-payload-type-change" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"> +<ANCHOR id="GstRtpBin-new-jitterbuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-new-jitterbuffer"> +<ANCHOR id="GstRtpBin-request-aux-receiver" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver"> +<ANCHOR id="GstRtpBin-request-aux-sender" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender"> +<ANCHOR id="GstRtpBin-request-rtcp-decoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-decoder"> +<ANCHOR id="GstRtpBin-request-rtcp-encoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-encoder"> +<ANCHOR id="GstRtpBin-request-rtp-decoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder"> +<ANCHOR id="GstRtpBin-request-rtp-encoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder"> <ANCHOR id="gst-plugins-good-plugins-rtpbin.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.synopsis"> <ANCHOR id="GstRTPDTMFMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.other"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.other_details"> <ANCHOR id="GstRTPDTMFMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.properties"> <ANCHOR id="GstRTPDTMFSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.other"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.other_details"> <ANCHOR id="GstRTPDTMFSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.property-details"> <ANCHOR id="GstRTPDTMFSrc--clock-rate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"> @@ -1533,13 +1696,14 @@ <ANCHOR id="GstRTPDTMFSrc--timestamp-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"> <ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.synopsis"> -<ANCHOR id="GstRtpJitterBuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"> -<ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.signals"> +<ANCHOR id="GstRtpJitterBuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer"> +<ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.other"> +<ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.other_details"> <ANCHOR id="GstRtpJitterBuffer-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.property-details"> <ANCHOR id="GstRtpJitterBuffer--do-lost" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost"> @@ -1553,6 +1717,7 @@ <ANCHOR id="GstRtpJitterBuffer--rtx-delay-reorder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-delay-reorder"> <ANCHOR id="GstRtpJitterBuffer--rtx-retry-period" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-period"> <ANCHOR id="GstRtpJitterBuffer--rtx-retry-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-retry-timeout"> +<ANCHOR id="GstRtpJitterBuffer--stats" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--stats"> <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.signal-details"> <ANCHOR id="GstRtpJitterBuffer-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map"> <ANCHOR id="GstRtpJitterBuffer-handle-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync"> @@ -1560,12 +1725,13 @@ <ANCHOR id="GstRtpJitterBuffer-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"> <ANCHOR id="GstRtpJitterBuffer-set-active" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"> <ANCHOR id="gst-plugins-good-plugins-rtpmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.properties"> <ANCHOR id="GstRTPMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.other"> <ANCHOR id="gst-plugins-good-plugins-rtpmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rtpmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.other_details"> <ANCHOR id="GstRTPMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpmux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.property-details"> <ANCHOR id="GstRTPMux--seqnum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"> @@ -1574,12 +1740,13 @@ <ANCHOR id="GstRTPMux--timestamp-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"> <ANCHOR id="gst-plugins-good-plugins-rtpmux.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpptdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpptdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpptdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.signals"> <ANCHOR id="GstRtpPtDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux"> +<ANCHOR id="gst-plugins-good-plugins-rtpptdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.other"> <ANCHOR id="gst-plugins-good-plugins-rtpptdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rtpptdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.signals"> <ANCHOR id="gst-plugins-good-plugins-rtpptdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpptdemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpptdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpptdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.other_details"> <ANCHOR id="GstRtpPtDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpptdemux.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#gst-plugins-good-plugins-rtpptdemux.signal-details"> <ANCHOR id="GstRtpPtDemux-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map"> @@ -1587,13 +1754,14 @@ <ANCHOR id="GstRtpPtDemux-payload-type-change" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change"> <ANCHOR id="GstRtpPtDemux-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map"> <ANCHOR id="gst-plugins-good-plugins-rtpsession" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpsession.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.synopsis"> -<ANCHOR id="GstRtpSession" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession"> -<ANCHOR id="gst-plugins-good-plugins-rtpsession.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpsession.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.properties"> <ANCHOR id="gst-plugins-good-plugins-rtpsession.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.signals"> +<ANCHOR id="GstRtpSession" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession"> +<ANCHOR id="gst-plugins-good-plugins-rtpsession.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.other"> +<ANCHOR id="gst-plugins-good-plugins-rtpsession.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-rtpsession.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpsession.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpsession.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpsession.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.other_details"> <ANCHOR id="GstRtpSession-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpsession.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.property-details"> <ANCHOR id="GstRtpSession--bandwidth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth"> @@ -1608,6 +1776,7 @@ <ANCHOR id="GstRtpSession--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock"> <ANCHOR id="GstRtpSession--rtcp-min-interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval"> <ANCHOR id="GstRtpSession--probation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation"> +<ANCHOR id="GstRtpSession--stats" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--stats"> <ANCHOR id="gst-plugins-good-plugins-rtpsession.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.signal-details"> <ANCHOR id="GstRtpSession-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map"> <ANCHOR id="GstRtpSession-on-bye-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc"> @@ -1622,32 +1791,68 @@ <ANCHOR id="GstRtpSession-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map"> <ANCHOR id="gst-plugins-good-plugins-rtpsession.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.see-also"> <ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html"> -<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.signals"> <ANCHOR id="GstRtpSsrcDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux"> +<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.other"> <ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.signals"> <ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.description"> -<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.details"> +<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.other_details"> <ANCHOR id="GstRtpSsrcDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct"> <ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.signal-details"> <ANCHOR id="GstRtpSsrcDemux-clear-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"> <ANCHOR id="GstRtpSsrcDemux-new-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"> <ANCHOR id="GstRtpSsrcDemux-removed-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.properties"> +<ANCHOR id="GstRtpRtxSend" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.other"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.description"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.other_details"> +<ANCHOR id="GstRtpRtxSend-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxsend.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.property-details"> +<ANCHOR id="GstRtpRtxSend--rtx-payload-type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--rtx-payload-type"> +<ANCHOR id="GstRtpRtxSend--max-size-time" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-time"> +<ANCHOR id="GstRtpRtxSend--max-size-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-packets"> +<ANCHOR id="GstRtpRtxSend--num-rtx-requests" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-requests"> +<ANCHOR id="GstRtpRtxSend--num-rtx-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-packets"> +<ANCHOR id="GstRtpRtxSend--payload-type-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--payload-type-map"> +<ANCHOR id="GstRtpRtxSend--ssrc-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--ssrc-map"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.properties"> +<ANCHOR id="GstRtpRtxReceive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.other"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.description"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.other_details"> +<ANCHOR id="GstRtpRtxReceive-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.property-details"> +<ANCHOR id="GstRtpRtxReceive--rtx-payload-types" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--rtx-payload-types"> +<ANCHOR id="GstRtpRtxReceive--num-rtx-requests" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests"> +<ANCHOR id="GstRtpRtxReceive--num-rtx-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets"> +<ANCHOR id="GstRtpRtxReceive--num-rtx-assoc-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets"> +<ANCHOR id="GstRtpRtxReceive--payload-type-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map"> +<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.see-also"> <ANCHOR id="gst-plugins-good-plugins-sbcparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html"> -<ANCHOR id="gst-plugins-good-plugins-sbcparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.synopsis"> <ANCHOR id="GstSbcParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#GstSbcParse"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.other"> <ANCHOR id="gst-plugins-good-plugins-sbcparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-sbcparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.description"> -<ANCHOR id="gst-plugins-good-plugins-sbcparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.details"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-sbcparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.other_details"> <ANCHOR id="GstSbcParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct"> <ANCHOR id="gst-plugins-good-plugins-sbcparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.see-also"> <ANCHOR id="gst-plugins-good-plugins-scaletempo" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html"> -<ANCHOR id="gst-plugins-good-plugins-scaletempo.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.properties"> <ANCHOR id="GstScaletempo" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.other"> <ANCHOR id="gst-plugins-good-plugins-scaletempo.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-scaletempo.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.properties"> <ANCHOR id="gst-plugins-good-plugins-scaletempo.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.description"> -<ANCHOR id="gst-plugins-good-plugins-scaletempo.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.details"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-scaletempo.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.other_details"> <ANCHOR id="GstScaletempo-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"> <ANCHOR id="gst-plugins-good-plugins-scaletempo.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#gst-plugins-good-plugins-scaletempo.property-details"> <ANCHOR id="GstScaletempo--overlap" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"> @@ -1655,30 +1860,59 @@ <ANCHOR id="GstScaletempo--search" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--search"> <ANCHOR id="GstScaletempo--stride" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-scaletempo.html#GstScaletempo--stride"> <ANCHOR id="gst-plugins-good-plugins-shagadelictv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html"> -<ANCHOR id="gst-plugins-good-plugins-shagadelictv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.synopsis"> <ANCHOR id="GstShagadelicTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV"> +<ANCHOR id="gst-plugins-good-plugins-shagadelictv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.other"> <ANCHOR id="gst-plugins-good-plugins-shagadelictv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-shagadelictv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.description"> -<ANCHOR id="gst-plugins-good-plugins-shagadelictv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.details"> +<ANCHOR id="gst-plugins-good-plugins-shagadelictv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-shagadelictv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#gst-plugins-good-plugins-shagadelictv.other_details"> <ANCHOR id="GstShagadelicTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shagadelictv.html#GstShagadelicTV-struct"> <ANCHOR id="gst-plugins-good-plugins-shapewipe" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html"> -<ANCHOR id="gst-plugins-good-plugins-shapewipe.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-shapewipe.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.properties"> <ANCHOR id="GstShapeWipe" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#GstShapeWipe"> +<ANCHOR id="gst-plugins-good-plugins-shapewipe.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.other"> <ANCHOR id="gst-plugins-good-plugins-shapewipe.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-shapewipe.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.properties"> <ANCHOR id="gst-plugins-good-plugins-shapewipe.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.description"> -<ANCHOR id="gst-plugins-good-plugins-shapewipe.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.details"> +<ANCHOR id="gst-plugins-good-plugins-shapewipe.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-shapewipe.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.other_details"> <ANCHOR id="GstShapeWipe-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#GstShapeWipe-struct"> <ANCHOR id="gst-plugins-good-plugins-shapewipe.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#gst-plugins-good-plugins-shapewipe.property-details"> <ANCHOR id="GstShapeWipe--border" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--border"> <ANCHOR id="GstShapeWipe--position" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shapewipe.html#GstShapeWipe--position"> +<ANCHOR id="gst-plugins-good-plugins-shout2send" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.properties"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.signals"> +<ANCHOR id="GstShout2send" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.other"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.object-hierarchy"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.implemented-interfaces"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.description"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.other_details"> +<ANCHOR id="GstShout2send-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send-struct"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.property-details"> +<ANCHOR id="GstShout2send--description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--description"> +<ANCHOR id="GstShout2send--genre" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--genre"> +<ANCHOR id="GstShout2send--ip" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--ip"> +<ANCHOR id="GstShout2send--mount" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--mount"> +<ANCHOR id="GstShout2send--password" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--password"> +<ANCHOR id="GstShout2send--port" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--port"> +<ANCHOR id="GstShout2send--protocol" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--protocol"> +<ANCHOR id="GstShout2send--streamname" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--streamname"> +<ANCHOR id="GstShout2send--sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--sync"> +<ANCHOR id="GstShout2send--url" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--url"> +<ANCHOR id="GstShout2send--username" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--username"> +<ANCHOR id="GstShout2send--public" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--public"> +<ANCHOR id="gst-plugins-good-plugins-shout2send.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.signal-details"> +<ANCHOR id="GstShout2send-connection-problem" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send-connection-problem"> <ANCHOR id="gst-plugins-good-plugins-smpte" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html"> -<ANCHOR id="gst-plugins-good-plugins-smpte.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-smpte.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.properties"> <ANCHOR id="GstSMPTE" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE"> +<ANCHOR id="gst-plugins-good-plugins-smpte.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.other"> <ANCHOR id="gst-plugins-good-plugins-smpte.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-smpte.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.properties"> <ANCHOR id="gst-plugins-good-plugins-smpte.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.description"> -<ANCHOR id="gst-plugins-good-plugins-smpte.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.details"> +<ANCHOR id="gst-plugins-good-plugins-smpte.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-smpte.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.other_details"> <ANCHOR id="GstSMPTE-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE-struct"> <ANCHOR id="gst-plugins-good-plugins-smpte.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.property-details"> <ANCHOR id="GstSMPTE--border" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE--border"> @@ -1688,12 +1922,13 @@ <ANCHOR id="GstSMPTE--duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE--duration"> <ANCHOR id="GstSMPTE--invert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE--invert"> <ANCHOR id="gst-plugins-good-plugins-smptealpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html"> -<ANCHOR id="gst-plugins-good-plugins-smptealpha.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-smptealpha.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.properties"> <ANCHOR id="GstSMPTEAlpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha"> +<ANCHOR id="gst-plugins-good-plugins-smptealpha.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.other"> <ANCHOR id="gst-plugins-good-plugins-smptealpha.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-smptealpha.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.properties"> <ANCHOR id="gst-plugins-good-plugins-smptealpha.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.description"> -<ANCHOR id="gst-plugins-good-plugins-smptealpha.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.details"> +<ANCHOR id="gst-plugins-good-plugins-smptealpha.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-smptealpha.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.other_details"> <ANCHOR id="GstSMPTEAlpha-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"> <ANCHOR id="gst-plugins-good-plugins-smptealpha.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.property-details"> <ANCHOR id="GstSMPTEAlpha--border" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"> @@ -1702,13 +1937,14 @@ <ANCHOR id="GstSMPTEAlpha--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"> <ANCHOR id="GstSMPTEAlpha--invert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"> <ANCHOR id="gst-plugins-good-plugins-souphttpsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html"> -<ANCHOR id="gst-plugins-good-plugins-souphttpsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-souphttpsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.properties"> <ANCHOR id="GstSoupHTTPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc"> +<ANCHOR id="gst-plugins-good-plugins-souphttpsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.other"> <ANCHOR id="gst-plugins-good-plugins-souphttpsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-souphttpsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-souphttpsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.properties"> <ANCHOR id="gst-plugins-good-plugins-souphttpsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.description"> -<ANCHOR id="gst-plugins-good-plugins-souphttpsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.details"> +<ANCHOR id="gst-plugins-good-plugins-souphttpsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-souphttpsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.other_details"> <ANCHOR id="GstSoupHTTPSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-souphttpsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.property-details"> <ANCHOR id="GstSoupHTTPSrc--automatic-redirect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect"> @@ -1728,13 +1964,21 @@ <ANCHOR id="GstSoupHTTPSrc--user-pw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--user-pw"> <ANCHOR id="GstSoupHTTPSrc--extra-headers" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--extra-headers"> <ANCHOR id="GstSoupHTTPSrc--timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--timeout"> +<ANCHOR id="GstSoupHTTPSrc--compress" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--compress"> +<ANCHOR id="GstSoupHTTPSrc--http-log-level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--http-log-level"> +<ANCHOR id="GstSoupHTTPSrc--keep-alive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--keep-alive"> +<ANCHOR id="GstSoupHTTPSrc--retries" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--retries"> +<ANCHOR id="GstSoupHTTPSrc--ssl-ca-file" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-ca-file"> +<ANCHOR id="GstSoupHTTPSrc--ssl-strict" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-strict"> +<ANCHOR id="GstSoupHTTPSrc--ssl-use-system-ca-file" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-use-system-ca-file"> <ANCHOR id="gst-plugins-good-plugins-spectrum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html"> -<ANCHOR id="gst-plugins-good-plugins-spectrum.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-spectrum.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.properties"> <ANCHOR id="GstSpectrum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum"> +<ANCHOR id="gst-plugins-good-plugins-spectrum.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.other"> <ANCHOR id="gst-plugins-good-plugins-spectrum.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-spectrum.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.properties"> <ANCHOR id="gst-plugins-good-plugins-spectrum.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.description"> -<ANCHOR id="gst-plugins-good-plugins-spectrum.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.details"> +<ANCHOR id="gst-plugins-good-plugins-spectrum.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-spectrum.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.other_details"> <ANCHOR id="GstSpectrum-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct"> <ANCHOR id="gst-plugins-good-plugins-spectrum.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.property-details"> <ANCHOR id="GstSpectrum--bands" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands"> @@ -1746,13 +1990,14 @@ <ANCHOR id="GstSpectrum--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages"> <ANCHOR id="GstSpectrum--multi-channel" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel"> <ANCHOR id="gst-plugins-good-plugins-speexenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html"> -<ANCHOR id="gst-plugins-good-plugins-speexenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-speexenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.properties"> <ANCHOR id="GstSpeexEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc"> +<ANCHOR id="gst-plugins-good-plugins-speexenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.other"> <ANCHOR id="gst-plugins-good-plugins-speexenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-speexenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-speexenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.properties"> <ANCHOR id="gst-plugins-good-plugins-speexenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.description"> -<ANCHOR id="gst-plugins-good-plugins-speexenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.details"> +<ANCHOR id="gst-plugins-good-plugins-speexenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-speexenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.other_details"> <ANCHOR id="GstSpeexEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-speexenc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.property-details"> <ANCHOR id="GstSpeexEnc--abr" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr"> @@ -1766,55 +2011,60 @@ <ANCHOR id="GstSpeexEnc--vbr" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr"> <ANCHOR id="GstSpeexEnc--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode"> <ANCHOR id="gst-plugins-good-plugins-speexdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html"> -<ANCHOR id="gst-plugins-good-plugins-speexdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-speexdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.properties"> <ANCHOR id="GstSpeexDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec"> +<ANCHOR id="gst-plugins-good-plugins-speexdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.other"> <ANCHOR id="gst-plugins-good-plugins-speexdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-speexdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.properties"> <ANCHOR id="gst-plugins-good-plugins-speexdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.description"> -<ANCHOR id="gst-plugins-good-plugins-speexdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.details"> +<ANCHOR id="gst-plugins-good-plugins-speexdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-speexdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.other_details"> <ANCHOR id="GstSpeexDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct"> <ANCHOR id="gst-plugins-good-plugins-speexdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.property-details"> <ANCHOR id="GstSpeexDec--enh" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"> <ANCHOR id="gst-plugins-good-plugins-splitfilesrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html"> -<ANCHOR id="gst-plugins-good-plugins-splitfilesrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-splitfilesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.properties"> <ANCHOR id="GstSplitFileSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc"> +<ANCHOR id="gst-plugins-good-plugins-splitfilesrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.other"> <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-splitfilesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.properties"> <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.description"> -<ANCHOR id="gst-plugins-good-plugins-splitfilesrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.details"> +<ANCHOR id="gst-plugins-good-plugins-splitfilesrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-splitfilesrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.other_details"> <ANCHOR id="GstSplitFileSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.property-details"> <ANCHOR id="GstSplitFileSrc--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location"> <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.see-also"> <ANCHOR id="gst-plugins-good-plugins-streaktv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html"> -<ANCHOR id="gst-plugins-good-plugins-streaktv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-streaktv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.properties"> <ANCHOR id="GstStreakTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#GstStreakTV"> +<ANCHOR id="gst-plugins-good-plugins-streaktv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.other"> <ANCHOR id="gst-plugins-good-plugins-streaktv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-streaktv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.properties"> <ANCHOR id="gst-plugins-good-plugins-streaktv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.description"> -<ANCHOR id="gst-plugins-good-plugins-streaktv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.details"> +<ANCHOR id="gst-plugins-good-plugins-streaktv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-streaktv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.other_details"> <ANCHOR id="GstStreakTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct"> <ANCHOR id="gst-plugins-good-plugins-streaktv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.property-details"> <ANCHOR id="GstStreakTV--feedback" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"> <ANCHOR id="gst-plugins-good-plugins-taginject" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html"> -<ANCHOR id="gst-plugins-good-plugins-taginject.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-taginject.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.properties"> <ANCHOR id="GstTagInject" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#GstTagInject"> +<ANCHOR id="gst-plugins-good-plugins-taginject.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.other"> <ANCHOR id="gst-plugins-good-plugins-taginject.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-taginject.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.properties"> <ANCHOR id="gst-plugins-good-plugins-taginject.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.description"> -<ANCHOR id="gst-plugins-good-plugins-taginject.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.details"> +<ANCHOR id="gst-plugins-good-plugins-taginject.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-taginject.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.other_details"> <ANCHOR id="GstTagInject-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#GstTagInject-struct"> <ANCHOR id="gst-plugins-good-plugins-taginject.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.property-details"> <ANCHOR id="GstTagInject--tags" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#GstTagInject--tags"> <ANCHOR id="gst-plugins-good-plugins-udpsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html"> -<ANCHOR id="gst-plugins-good-plugins-udpsrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-udpsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.properties"> <ANCHOR id="GstUDPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc"> +<ANCHOR id="gst-plugins-good-plugins-udpsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.other"> <ANCHOR id="gst-plugins-good-plugins-udpsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-udpsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-udpsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.properties"> <ANCHOR id="gst-plugins-good-plugins-udpsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.description"> -<ANCHOR id="gst-plugins-good-plugins-udpsrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.details"> +<ANCHOR id="gst-plugins-good-plugins-udpsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-udpsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.other_details"> <ANCHOR id="GstUDPSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-udpsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.property-details"> <ANCHOR id="GstUDPSrc--caps" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps"> @@ -1837,27 +2087,29 @@ <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"> +<ANCHOR id="gst-plugins-good-plugins-udpsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.properties"> <ANCHOR id="GstUDPSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink"> +<ANCHOR id="gst-plugins-good-plugins-udpsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.other"> <ANCHOR id="gst-plugins-good-plugins-udpsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-udpsink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-udpsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.properties"> <ANCHOR id="gst-plugins-good-plugins-udpsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.description"> -<ANCHOR id="gst-plugins-good-plugins-udpsink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.details"> +<ANCHOR id="gst-plugins-good-plugins-udpsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-udpsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.other_details"> <ANCHOR id="GstUDPSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"> <ANCHOR id="gst-plugins-good-plugins-udpsink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.property-details"> <ANCHOR id="GstUDPSink--host" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"> <ANCHOR id="GstUDPSink--port" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"> <ANCHOR id="gst-plugins-good-plugins-udpsink.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.see-also"> <ANCHOR id="gst-plugins-good-plugins-v4l2src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html"> -<ANCHOR id="gst-plugins-good-plugins-v4l2src.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-v4l2src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.properties"> +<ANCHOR id="gst-plugins-good-plugins-v4l2src.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signals"> <ANCHOR id="GstV4l2Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src"> +<ANCHOR id="gst-plugins-good-plugins-v4l2src.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.other"> <ANCHOR id="gst-plugins-good-plugins-v4l2src.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-v4l2src.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-v4l2src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.properties"> -<ANCHOR id="gst-plugins-good-plugins-v4l2src.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signals"> <ANCHOR id="gst-plugins-good-plugins-v4l2src.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.description"> -<ANCHOR id="gst-plugins-good-plugins-v4l2src.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.details"> +<ANCHOR id="gst-plugins-good-plugins-v4l2src.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-v4l2src.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.other_details"> <ANCHOR id="GstV4l2Src-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct"> <ANCHOR id="gst-plugins-good-plugins-v4l2src.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.property-details"> <ANCHOR id="GstV4l2Src--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"> @@ -1879,13 +2131,14 @@ <ANCHOR id="gst-plugins-good-plugins-v4l2src.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signal-details"> <ANCHOR id="GstV4l2Src-prepare-format" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"> <ANCHOR id="gst-plugins-good-plugins-v4l2sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html"> -<ANCHOR id="gst-plugins-good-plugins-v4l2sink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-v4l2sink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.properties"> <ANCHOR id="GstV4l2Sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink"> +<ANCHOR id="gst-plugins-good-plugins-v4l2sink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.other"> <ANCHOR id="gst-plugins-good-plugins-v4l2sink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-v4l2sink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-v4l2sink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.properties"> <ANCHOR id="gst-plugins-good-plugins-v4l2sink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.description"> -<ANCHOR id="gst-plugins-good-plugins-v4l2sink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.details"> +<ANCHOR id="gst-plugins-good-plugins-v4l2sink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-v4l2sink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.other_details"> <ANCHOR id="GstV4l2Sink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct"> <ANCHOR id="gst-plugins-good-plugins-v4l2sink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.property-details"> <ANCHOR id="GstV4l2Sink--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device"> @@ -1912,25 +2165,27 @@ <ANCHOR id="GstV4l2Sink--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"> <ANCHOR id="GstV4l2Sink--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"> <ANCHOR id="gst-plugins-good-plugins-v4l2radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html"> -<ANCHOR id="gst-plugins-good-plugins-v4l2radio.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-v4l2radio.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.properties"> <ANCHOR id="GstV4l2Radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio"> +<ANCHOR id="gst-plugins-good-plugins-v4l2radio.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.other"> <ANCHOR id="gst-plugins-good-plugins-v4l2radio.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-v4l2radio.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-v4l2radio.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.properties"> <ANCHOR id="gst-plugins-good-plugins-v4l2radio.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.description"> -<ANCHOR id="gst-plugins-good-plugins-v4l2radio.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.details"> +<ANCHOR id="gst-plugins-good-plugins-v4l2radio.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-v4l2radio.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.other_details"> <ANCHOR id="GstV4l2Radio-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct"> <ANCHOR id="gst-plugins-good-plugins-v4l2radio.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.property-details"> <ANCHOR id="GstV4l2Radio--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"> <ANCHOR id="GstV4l2Radio--frequency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"> <ANCHOR id="gst-plugins-good-plugins-vertigotv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html"> -<ANCHOR id="gst-plugins-good-plugins-vertigotv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.synopsis"> -<ANCHOR id="GstVertigoTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#GstVertigoTV"> -<ANCHOR id="gst-plugins-good-plugins-vertigotv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-vertigotv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.properties"> <ANCHOR id="gst-plugins-good-plugins-vertigotv.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.signals"> +<ANCHOR id="GstVertigoTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#GstVertigoTV"> +<ANCHOR id="gst-plugins-good-plugins-vertigotv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.other"> +<ANCHOR id="gst-plugins-good-plugins-vertigotv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-vertigotv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.description"> -<ANCHOR id="gst-plugins-good-plugins-vertigotv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.details"> +<ANCHOR id="gst-plugins-good-plugins-vertigotv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-vertigotv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.other_details"> <ANCHOR id="GstVertigoTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct"> <ANCHOR id="gst-plugins-good-plugins-vertigotv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.property-details"> <ANCHOR id="GstVertigoTV--speed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed"> @@ -1938,13 +2193,14 @@ <ANCHOR id="gst-plugins-good-plugins-vertigotv.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.signal-details"> <ANCHOR id="GstVertigoTV-reset-parms" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-reset-parms"> <ANCHOR id="gst-plugins-good-plugins-videobalance" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html"> -<ANCHOR id="gst-plugins-good-plugins-videobalance.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-videobalance.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.properties"> <ANCHOR id="GstVideoBalance" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#GstVideoBalance"> +<ANCHOR id="gst-plugins-good-plugins-videobalance.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.other"> <ANCHOR id="gst-plugins-good-plugins-videobalance.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-videobalance.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-videobalance.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.properties"> <ANCHOR id="gst-plugins-good-plugins-videobalance.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.description"> -<ANCHOR id="gst-plugins-good-plugins-videobalance.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.details"> +<ANCHOR id="gst-plugins-good-plugins-videobalance.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-videobalance.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.other_details"> <ANCHOR id="GstVideoBalance-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#GstVideoBalance-struct"> <ANCHOR id="gst-plugins-good-plugins-videobalance.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#gst-plugins-good-plugins-videobalance.property-details"> <ANCHOR id="GstVideoBalance--brightness" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#GstVideoBalance--brightness"> @@ -1952,12 +2208,13 @@ <ANCHOR id="GstVideoBalance--hue" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue"> <ANCHOR id="GstVideoBalance--saturation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation"> <ANCHOR id="gst-plugins-good-plugins-videobox" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html"> -<ANCHOR id="gst-plugins-good-plugins-videobox.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-videobox.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.properties"> <ANCHOR id="GstVideoBox" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#GstVideoBox"> +<ANCHOR id="gst-plugins-good-plugins-videobox.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.other"> <ANCHOR id="gst-plugins-good-plugins-videobox.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-videobox.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.properties"> <ANCHOR id="gst-plugins-good-plugins-videobox.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.description"> -<ANCHOR id="gst-plugins-good-plugins-videobox.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.details"> +<ANCHOR id="gst-plugins-good-plugins-videobox.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-videobox.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.other_details"> <ANCHOR id="GstVideoBox-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#GstVideoBox-struct"> <ANCHOR id="gst-plugins-good-plugins-videobox.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.property-details"> <ANCHOR id="GstVideoBox--alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha"> @@ -1970,12 +2227,13 @@ <ANCHOR id="GstVideoBox--autocrop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#GstVideoBox--autocrop"> <ANCHOR id="gst-plugins-good-plugins-videobox.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videobox.html#gst-plugins-good-plugins-videobox.see-also"> <ANCHOR id="gst-plugins-good-plugins-videocrop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html"> -<ANCHOR id="gst-plugins-good-plugins-videocrop.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-videocrop.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.properties"> <ANCHOR id="GstVideoCrop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#GstVideoCrop"> +<ANCHOR id="gst-plugins-good-plugins-videocrop.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.other"> <ANCHOR id="gst-plugins-good-plugins-videocrop.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-videocrop.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.properties"> <ANCHOR id="gst-plugins-good-plugins-videocrop.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.description"> -<ANCHOR id="gst-plugins-good-plugins-videocrop.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.details"> +<ANCHOR id="gst-plugins-good-plugins-videocrop.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-videocrop.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.other_details"> <ANCHOR id="GstVideoCrop-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#GstVideoCrop-struct"> <ANCHOR id="gst-plugins-good-plugins-videocrop.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.property-details"> <ANCHOR id="GstVideoCrop--bottom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#GstVideoCrop--bottom"> @@ -1984,35 +2242,30 @@ <ANCHOR id="GstVideoCrop--top" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top"> <ANCHOR id="gst-plugins-good-plugins-videocrop.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videocrop.html#gst-plugins-good-plugins-videocrop.see-also"> <ANCHOR id="gst-plugins-good-plugins-videoflip" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html"> -<ANCHOR id="gst-plugins-good-plugins-videoflip.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-videoflip.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.properties"> <ANCHOR id="GstVideoFlip" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GstVideoFlip"> +<ANCHOR id="gst-plugins-good-plugins-videoflip.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.other"> <ANCHOR id="gst-plugins-good-plugins-videoflip.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-videoflip.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.properties"> <ANCHOR id="gst-plugins-good-plugins-videoflip.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.description"> -<ANCHOR id="gst-plugins-good-plugins-videoflip.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.details"> +<ANCHOR id="gst-plugins-good-plugins-videoflip.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-videoflip.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.other_details"> <ANCHOR id="GstVideoFlip-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GstVideoFlip-struct"> <ANCHOR id="GstVideoFlipMethod" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-90R:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-90R:CAPS"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-180:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-180:CAPS"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-90L:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-90L:CAPS"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-HORIZ:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-HORIZ:CAPS"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-VERT:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-VERT:CAPS"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-TRANS:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-TRANS:CAPS"> -<ANCHOR id="GST-VIDEO-FLIP-METHOD-OTHER:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-OTHER:CAPS"> <ANCHOR id="gst-plugins-good-plugins-videoflip.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#gst-plugins-good-plugins-videoflip.property-details"> <ANCHOR id="GstVideoFlip--method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method"> <ANCHOR id="gst-plugins-good-plugins-videomixer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videomixer.html"> -<ANCHOR id="gst-plugins-good-plugins-videomixer.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videomixer.html#gst-plugins-good-plugins-videomixer.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-videomixer.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videomixer.html#gst-plugins-good-plugins-videomixer.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-videomixer.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videomixer.html#gst-plugins-good-plugins-videomixer.description"> -<ANCHOR id="gst-plugins-good-plugins-videomixer.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videomixer.html#gst-plugins-good-plugins-videomixer.details"> +<ANCHOR id="gst-plugins-good-plugins-videomixer.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videomixer.html#gst-plugins-good-plugins-videomixer.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-videomixer.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-videomixer.html#gst-plugins-good-plugins-videomixer.other_details"> <ANCHOR id="gst-plugins-good-plugins-vp8dec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html"> -<ANCHOR id="gst-plugins-good-plugins-vp8dec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-vp8dec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.properties"> <ANCHOR id="GstVP8Dec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#GstVP8Dec"> +<ANCHOR id="gst-plugins-good-plugins-vp8dec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.other"> <ANCHOR id="gst-plugins-good-plugins-vp8dec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-vp8dec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.properties"> <ANCHOR id="gst-plugins-good-plugins-vp8dec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.description"> -<ANCHOR id="gst-plugins-good-plugins-vp8dec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.details"> +<ANCHOR id="gst-plugins-good-plugins-vp8dec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-vp8dec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.other_details"> <ANCHOR id="GstVP8Dec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct"> <ANCHOR id="gst-plugins-good-plugins-vp8dec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#gst-plugins-good-plugins-vp8dec.property-details"> <ANCHOR id="GstVP8Dec--deblocking-level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level"> @@ -2021,13 +2274,14 @@ <ANCHOR id="GstVP8Dec--post-processing-flags" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--post-processing-flags"> <ANCHOR id="GstVP8Dec--threads" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--threads"> <ANCHOR id="gst-plugins-good-plugins-vp8enc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html"> -<ANCHOR id="gst-plugins-good-plugins-vp8enc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-vp8enc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.properties"> <ANCHOR id="GstVP8Enc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc"> +<ANCHOR id="gst-plugins-good-plugins-vp8enc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.other"> <ANCHOR id="gst-plugins-good-plugins-vp8enc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-vp8enc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-vp8enc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.properties"> <ANCHOR id="gst-plugins-good-plugins-vp8enc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.description"> -<ANCHOR id="gst-plugins-good-plugins-vp8enc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.details"> +<ANCHOR id="gst-plugins-good-plugins-vp8enc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-vp8enc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.other_details"> <ANCHOR id="GstVP8Enc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc-struct"> <ANCHOR id="gst-plugins-good-plugins-vp8enc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#gst-plugins-good-plugins-vp8enc.property-details"> <ANCHOR id="GstVP8Enc--arnr-maxframes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--arnr-maxframes"> @@ -2090,40 +2344,46 @@ <ANCHOR id="GstVP8Enc--vertical-scaling-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"> <ANCHOR id="GstVP8Enc--timebase" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"> <ANCHOR id="gst-plugins-good-plugins-warptv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html"> -<ANCHOR id="gst-plugins-good-plugins-warptv.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.synopsis"> <ANCHOR id="GstWarpTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#GstWarpTV"> +<ANCHOR id="gst-plugins-good-plugins-warptv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.other"> <ANCHOR id="gst-plugins-good-plugins-warptv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-warptv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.description"> -<ANCHOR id="gst-plugins-good-plugins-warptv.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.details"> +<ANCHOR id="gst-plugins-good-plugins-warptv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-warptv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.other_details"> <ANCHOR id="GstWarpTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#GstWarpTV-struct"> <ANCHOR id="gst-plugins-good-plugins-wavenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html"> -<ANCHOR id="gst-plugins-good-plugins-wavenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.synopsis"> <ANCHOR id="GstWavEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc"> +<ANCHOR id="gst-plugins-good-plugins-wavenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.other"> <ANCHOR id="gst-plugins-good-plugins-wavenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-wavenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-wavenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.description"> -<ANCHOR id="gst-plugins-good-plugins-wavenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.details"> +<ANCHOR id="gst-plugins-good-plugins-wavenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-wavenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.other_details"> <ANCHOR id="GstWavEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-waveformsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html"> -<ANCHOR id="gst-plugins-good-plugins-waveformsink.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-waveformsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.other"> +<ANCHOR id="gst-plugins-good-plugins-waveformsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-waveformsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.description"> -<ANCHOR id="gst-plugins-good-plugins-waveformsink.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.details"> +<ANCHOR id="gst-plugins-good-plugins-waveformsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-waveformsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.other_details"> <ANCHOR id="GstWaveFormSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink"> <ANCHOR id="gst-plugins-good-plugins-wavpackdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html"> -<ANCHOR id="gst-plugins-good-plugins-wavpackdec.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.synopsis"> <ANCHOR id="GstWavpackDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec"> +<ANCHOR id="gst-plugins-good-plugins-wavpackdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.other"> <ANCHOR id="gst-plugins-good-plugins-wavpackdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-wavpackdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.description"> -<ANCHOR id="gst-plugins-good-plugins-wavpackdec.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.details"> +<ANCHOR id="gst-plugins-good-plugins-wavpackdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-wavpackdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.other_details"> <ANCHOR id="GstWavpackDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec-struct"> <ANCHOR id="gst-plugins-good-plugins-wavpackenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html"> -<ANCHOR id="gst-plugins-good-plugins-wavpackenc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-wavpackenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.properties"> <ANCHOR id="GstWavpackEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc"> +<ANCHOR id="gst-plugins-good-plugins-wavpackenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.other"> <ANCHOR id="gst-plugins-good-plugins-wavpackenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-wavpackenc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.implemented-interfaces"> -<ANCHOR id="gst-plugins-good-plugins-wavpackenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.properties"> <ANCHOR id="gst-plugins-good-plugins-wavpackenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.description"> -<ANCHOR id="gst-plugins-good-plugins-wavpackenc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.details"> +<ANCHOR id="gst-plugins-good-plugins-wavpackenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-wavpackenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.other_details"> <ANCHOR id="GstWavpackEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct"> <ANCHOR id="gst-plugins-good-plugins-wavpackenc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#gst-plugins-good-plugins-wavpackenc.property-details"> <ANCHOR id="GstWavpackEnc--bitrate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate"> @@ -2134,38 +2394,42 @@ <ANCHOR id="GstWavpackEnc--md5" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--md5"> <ANCHOR id="GstWavpackEnc--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--mode"> <ANCHOR id="gst-plugins-good-plugins-wavpackparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html"> -<ANCHOR id="gst-plugins-good-plugins-wavpackparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.synopsis"> <ANCHOR id="GstWavpackParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#GstWavpackParse"> +<ANCHOR id="gst-plugins-good-plugins-wavpackparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.other"> <ANCHOR id="gst-plugins-good-plugins-wavpackparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-wavpackparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.description"> -<ANCHOR id="gst-plugins-good-plugins-wavpackparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.details"> +<ANCHOR id="gst-plugins-good-plugins-wavpackparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-wavpackparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.other_details"> <ANCHOR id="GstWavpackParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#GstWavpackParse-struct"> <ANCHOR id="gst-plugins-good-plugins-wavpackparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackparse.html#gst-plugins-good-plugins-wavpackparse.see-also"> <ANCHOR id="gst-plugins-good-plugins-wavparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html"> -<ANCHOR id="gst-plugins-good-plugins-wavparse.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-wavparse.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.properties"> <ANCHOR id="GstWavParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#GstWavParse"> +<ANCHOR id="gst-plugins-good-plugins-wavparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.other"> <ANCHOR id="gst-plugins-good-plugins-wavparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-wavparse.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.properties"> <ANCHOR id="gst-plugins-good-plugins-wavparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.description"> -<ANCHOR id="gst-plugins-good-plugins-wavparse.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.details"> +<ANCHOR id="gst-plugins-good-plugins-wavparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-wavparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.other_details"> <ANCHOR id="GstWavParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#GstWavParse-struct"> <ANCHOR id="gst-plugins-good-plugins-wavparse.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#gst-plugins-good-plugins-wavparse.property-details"> <ANCHOR id="GstWavParse--ignore-length" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavparse.html#GstWavParse--ignore-length"> <ANCHOR id="gst-plugins-good-plugins-webmmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html"> -<ANCHOR id="gst-plugins-good-plugins-webmmux.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.synopsis"> <ANCHOR id="GstWebMMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#GstWebMMux"> +<ANCHOR id="gst-plugins-good-plugins-webmmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.other"> <ANCHOR id="gst-plugins-good-plugins-webmmux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-webmmux.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.implemented-interfaces"> <ANCHOR id="gst-plugins-good-plugins-webmmux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.description"> -<ANCHOR id="gst-plugins-good-plugins-webmmux.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.details"> +<ANCHOR id="gst-plugins-good-plugins-webmmux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-webmmux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#gst-plugins-good-plugins-webmmux.other_details"> <ANCHOR id="GstWebMMux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-webmmux.html#GstWebMMux-struct"> <ANCHOR id="gst-plugins-good-plugins-ximagesrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html"> -<ANCHOR id="gst-plugins-good-plugins-ximagesrc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-ximagesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.properties"> <ANCHOR id="GstXImageSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc"> +<ANCHOR id="gst-plugins-good-plugins-ximagesrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.other"> <ANCHOR id="gst-plugins-good-plugins-ximagesrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.object-hierarchy"> -<ANCHOR id="gst-plugins-good-plugins-ximagesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.properties"> <ANCHOR id="gst-plugins-good-plugins-ximagesrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.description"> -<ANCHOR id="gst-plugins-good-plugins-ximagesrc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.details"> +<ANCHOR id="gst-plugins-good-plugins-ximagesrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-ximagesrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.other_details"> <ANCHOR id="GstXImageSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc-struct"> <ANCHOR id="gst-plugins-good-plugins-ximagesrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#gst-plugins-good-plugins-ximagesrc.property-details"> <ANCHOR id="GstXImageSrc--display-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--display-name"> @@ -2180,11 +2444,12 @@ <ANCHOR id="GstXImageSrc--xid" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid"> <ANCHOR id="GstXImageSrc--xname" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname"> <ANCHOR id="gst-plugins-good-plugins-y4menc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html"> -<ANCHOR id="gst-plugins-good-plugins-y4menc.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#gst-plugins-good-plugins-y4menc.synopsis"> <ANCHOR id="GstY4mEncode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#GstY4mEncode"> +<ANCHOR id="gst-plugins-good-plugins-y4menc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#gst-plugins-good-plugins-y4menc.other"> <ANCHOR id="gst-plugins-good-plugins-y4menc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#gst-plugins-good-plugins-y4menc.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-y4menc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#gst-plugins-good-plugins-y4menc.description"> -<ANCHOR id="gst-plugins-good-plugins-y4menc.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#gst-plugins-good-plugins-y4menc.details"> +<ANCHOR id="gst-plugins-good-plugins-y4menc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#gst-plugins-good-plugins-y4menc.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-y4menc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#gst-plugins-good-plugins-y4menc.other_details"> <ANCHOR id="GstY4mEncode-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-y4menc.html#GstY4mEncode-struct"> <ANCHOR id="gst-plugins-good-plugins-plugin-1394" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-1394.html"> <ANCHOR id="plugin-1394" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-1394.html#plugin-1394"> @@ -2327,13 +2592,15 @@ <ANCHOR id="gst-plugins-good-plugins-plugin-y4menc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-y4menc.html"> <ANCHOR id="plugin-y4menc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-y4menc.html#plugin-y4menc"> <ANCHOR id="GstIirEqualizer" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html"> -<ANCHOR id="GstIirEqualizer.synopsis" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.synopsis"> +<ANCHOR id="GstIirEqualizer.other" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.other"> <ANCHOR id="GstIirEqualizer.object-hierarchy" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.object-hierarchy"> <ANCHOR id="GstIirEqualizer.implemented-interfaces" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.implemented-interfaces"> <ANCHOR id="GstIirEqualizer.description" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.description"> -<ANCHOR id="GstIirEqualizer.details" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.details"> +<ANCHOR id="GstIirEqualizer.functions_details" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.functions_details"> +<ANCHOR id="GstIirEqualizer.other_details" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer.other_details"> <ANCHOR id="GstIirEqualizer-struct" href="gst-plugins-good-plugins-1.0/GstIirEqualizer.html#GstIirEqualizer-struct"> <ANCHOR id="gst-plugins-good-plugins-GstVideoMixerPad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-GstVideoMixerPad.html"> -<ANCHOR id="gst-plugins-good-plugins-GstVideoMixerPad.synopsis" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-GstVideoMixerPad.html#gst-plugins-good-plugins-GstVideoMixerPad.synopsis"> +<ANCHOR id="gst-plugins-good-plugins-GstVideoMixerPad.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-GstVideoMixerPad.html#gst-plugins-good-plugins-GstVideoMixerPad.object-hierarchy"> <ANCHOR id="gst-plugins-good-plugins-GstVideoMixerPad.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-GstVideoMixerPad.html#gst-plugins-good-plugins-GstVideoMixerPad.description"> -<ANCHOR id="gst-plugins-good-plugins-GstVideoMixerPad.details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-GstVideoMixerPad.html#gst-plugins-good-plugins-GstVideoMixerPad.details"> +<ANCHOR id="gst-plugins-good-plugins-GstVideoMixerPad.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-GstVideoMixerPad.html#gst-plugins-good-plugins-GstVideoMixerPad.functions_details"> +<ANCHOR id="gst-plugins-good-plugins-GstVideoMixerPad.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-GstVideoMixerPad.html#gst-plugins-good-plugins-GstVideoMixerPad.other_details"> diff --git a/docs/plugins/html/left-insensitive.png b/docs/plugins/html/left-insensitive.png new file mode 100644 index 0000000000000000000000000000000000000000..3269393a7f72af744a772c437bd7b3976c23709d GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHjTefH0HbvDJm`3=E7Co-U3d7N^fnTI<IgDA2n9<+nDL zR)>WJ3j{^~q!iyia4kV=mdU|Jhfgdm;SLIpiYJ7wv^kjFiECCc&8T30!RG0~&BG=X zlu#U4@Z`))V`EG9e^NqDr#{!5k|<uX%G)(C<o4Td-WwdY-=52Ot}*k$vbgo<>)wT* zYTNt0`@q%TAD$){%#eQ?;$^ly<SWw*fr-h2k$Gmb`5l?={pM9*J=U<dZvXv_*X(MK zuk90?Q*6Cz7w?LWoXG6*)A#-qHFoT2+x2-d_r2eyp|%V>8}yZCU%T~u0XM^%t?f#e znB*EuLv2rP%K3BMvFO}YmnR}KSgH;`EHL$)^!tH~iBxZ#h^zJi*#P5Xb6B50U@nx2 mU;T=yfcwnSOsS9SKd{M#MlNkCuvG>I8-u5-pUXO@geCx5`k@p6 literal 0 HcmV?d00001 diff --git a/docs/plugins/html/left.png b/docs/plugins/html/left.png index 2d05b3d5b4aeec9384bbfe404bfc4ed0897051c4..2abde032b0c98b756b12d380da4318205cd78470 100644 GIT binary patch delta 244 zcmX@j+{UEX8Q|y6%O%Cdz`(%k>ERLtqy<2jgAGW^fBv61QBkIz_c~DaI-`@u><XYL zdx@v7EBjq`0U>#vgk0;rK%vQ=E{-7<r>|aG&v!6Ur2S*R{XrMU0M^KfF-<DnyP^vO z7inL(!{m9vbCvIeoU}h0>bKt1`W8I8Svl`*^|^=ft6D|ptypqMR)*=`(nGa#nBx{t zWa2O6t!RwmvN>k^z$-HAohFx!!B3Nzy35)DzrN)t-%&awb5-Uf!}JL{f#)ZFDd0NE qc2>qy{P={N;_^$!?7mN}kJgWkm(MhqXnYvxJ_b)$KbLh*2~7a<>RZ47 delta 443 zcmV;s0Yv_W0?Pv-iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u-VMvs)+t00CG@L_t(|oVAr9Ps30cMeo}x5r~P3 zNkk=n2<nQjn8ej0a0uon_7e~U#gCX^a|qm)kfm}<W|p*qq~aiGmjP{Qm&Zw-dVTlY zuSxr)mH;kr+V)(NU<Y{QiwuZte}_K<Y`0soECWcahp*RbJkKMJV*vgoT#_9@Rd`#0 zQ?oag6mB*f`M$5^a=G8=^?F5#hmvz2lAeq)v%2<^vgXBVKn9$bP5?|K-K1%%Fbuyn zFYtZ8vRo8J8V-k!q)SO}rOlHhVK5l{YTjgxMx$biYf0)HgpZ5nK@ey@f1g*jY(pmx zKa+H8JA5yYbSg=^-A=33%3AndV2pW{H0$^Knog&3UDvK4=StGd^E|7Py}%fg+K_a+ z-TDWB6W|44u~^``?lB)4Kyb9=fVgD61NVQ9S|=%J_}1D>tO=?lRs}yL#a)1{E3-_J lb7xhMOB~=L|93Uw6EjZ$5w{hU-0}bb002ovPDHLkV1idLy?Ouu diff --git a/docs/plugins/html/right-insensitive.png b/docs/plugins/html/right-insensitive.png new file mode 100644 index 0000000000000000000000000000000000000000..4c95785b907b978f36674cd98bf5302669c15c1b GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHjTefG`u!(zUX23=E7+o-U3d7N^fn+URvSL8NuRG*{E) z?#-+97X-^pidQ*u@StO1(S@7g8g>nnA24$?ty?)cmuaa|Y>ez2*_Ia?6HP4j{3LIs zTr!s1ao_Sz^~3e4zRJGAjKZGn=XP#)Wmuo-QN>teTzzI!&R*jMI^Oa#7_ukLYdicf zOx;1mb-rt04s-c|uIH8fnX}$)XJa^0_-F3(pA%=sGI<|(n_*&=yY<MjO*+<-OBiP? zDSjSPpV)jX$W(ugx%$rV>t96+n5InXn_GN+EraJI9q(O+n{6MQKErp&KxRvpfn0xh z`sSMqH(2Z%?kaFBTf06W^y=UDA9gR9YrwNS*1pjB((0K%&+SbAx3`XA&dKZ}j*nX7 QfdRze>FVdQ&MBb@09|aA9{>OV literal 0 HcmV?d00001 diff --git a/docs/plugins/html/right.png b/docs/plugins/html/right.png index 92832e3a4566e59d6e4092010e08d28f3be3a68d..76260ec8865f4e13cd269ec62eccd78a33adba3c 100644 GIT binary patch delta 243 zcmcb?+{&cb8Q|y6%O%Cdz`(%k>ERLtqy<2jgAGW^fBv61QBkIz_c~DaI-`@u><XYL zdx@v7EBjq`0U>!sxjXJa5r#>gE{-7<r>|aG&)1kJa{Obz{cPVYdp$){T#MLe>Fm3y zyMz6rXvRCoM@%f9A~}=J@~khK^rTW~`Mlcw&$k!z?T-*Od-06xo1*2S`N}U`nz+P! zid1yhI29dMaldpx$y0@Y%1-N<4?D%5%|H8VdU#{ht0!vH6n7-gV%olu??+c5S4@KR p2g$=%UhHo0mw2-86QgZ?U_NuHd>ZSIPs||qdAj<!taD0e0s!H*TGapm delta 456 zcmV;(0XP1I0@wo~iBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u_gtCBZ!a00Cu5L_t(|oUN20Z^A$rhMz7cDk=~Y z6BA7^BpAd50>LB>zdtd46{2=YWknHnkW6e20m&wo)HE4_<ei|+4z@zO-J6`beD^-@ zm;3IZg(Tg!sc&OEl(f-7siYg%e}Gt$@;omYdT|Polt@y)-&dNZ?jaQ*3_}G$;2vTF zfWJW`-ARf{v(uH^fYuO6L1l7IHlQiQD*<C5S*=#gX0zHLS(dTe?T+?>ARvxoMxznH zD{$|5-ur0>V@XPq<S1d&b*_`E+PE!L6a|yXgvDY3&;w#gzB7Og$+8S!e*jFK0_x-p zP+j(LIE2GxKRE-`Oi}@0>_Xr73B$0~XuI9A-|w54{}|J2NuO;Wnla|$Lo)!L=Y2?; z0*`?IOZWlMIXY+z^ZERI@}`osv^y}yD2k#g`MS|(cLA`j04L^el6wC#w*lR5*S&cO yc$TE)a_Qc@1Uy*7v~g-~9zlBLuiLp?{jD!|Y5)O~pG*G$0000<MNUMnLSTYxZNWnT diff --git a/docs/plugins/html/style.css b/docs/plugins/html/style.css index d6f6c26ec..705a5c9ad 100644 --- a/docs/plugins/html/style.css +++ b/docs/plugins/html/style.css @@ -1,15 +1,23 @@ +body +{ + font-family: cantarell, sans-serif; +} .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; - border: solid 1px #d3d7cf; + background: rgba(238, 238, 236, 0.5); + border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ + /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; + background: rgba(114, 159, 207, 0.1); + border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist @@ -27,7 +35,6 @@ { position: relative; top: 0em ! important; - } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] @@ -46,16 +53,20 @@ */ body { - padding-top: 3.2em; - padding-bottom: 20em; + padding-top: 5em; + padding-bottom: 500px; + max-width: 60em; + } + p + { + max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; - /* tango:scarlet red 0/1 */ - background: #ffe6e6; - border: solid 1px #ef2929; + background: #e2e2e2; + border-bottom: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; @@ -65,21 +76,57 @@ } .navigation a, .navigation a:visited { - /* tango:scarlet red 3 */ - color: #a40000; + /* tango:sky blue 3 */ + color: #204a87; } .navigation a:hover { - /* tango:scarlet red 1 */ - color: #ef2929; + /* tango:sky blue 2 */ + color: #3465a4; } td.shortcuts { - /* tango:scarlet red 1 */ - color: #ef2929; + /* tango:sky blue 2 */ + color: #3465a4; font-size: 80%; white-space: nowrap; } + td.shortcuts .dim + { + color: #babdb6; + } +} +@media screen and (min-width: 60em) { + /* screen larger than 60em */ + body { margin: auto; } +} +@media screen and (max-width: 60em) { + /* screen less than 60em */ + #nav_hierarchy { display: none; } + #nav_interfaces { display: none; } + #nav_prerequisites { display: none; } + #nav_derived_interfaces { display: none; } + #nav_implementations { display: none; } + #nav_child_properties { display: none; } + #nav_style_properties { display: none; } + #nav_index { display: none; } + #nav_glossary { display: none; } + .gallery_image { display: none; } + .property_flags { display: none; } + .signal_flags { display: none; } + .parameter_annotations { display: none; } + .enum_member_annotations { display: none; } + .struct_member_annotations { display: none; } + .union_member_annotations { display: none; } + /* now that a column is hidden, optimize space */ + col.parameters_name { width: auto; } + col.parameters_description { width: auto; } + col.struct_members_name { width: auto; } + col.struct_members_description { width: auto; } + col.enum_members_name { width: auto; } + col.enum_members_description { width: auto; } + col.union_members_name { width: auto; } + col.union_members_description { width: auto; } } @media print { table.navigation { @@ -89,9 +136,8 @@ div.titlepage table.navigation { visibility: visible; display: table; - /* tango:scarlet red 0/1 */ - background: #ffe6e6; - border: solid 1px #ef2929; + background: #e2e2e2; + border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; @@ -102,7 +148,7 @@ .navigation .title { - font-size: 200%; + font-size: 120%; } div.gallery-float @@ -132,6 +178,67 @@ a:hover color: #729fcf; } +div.informaltable table +{ + border-collapse: separate; + border-spacing: 20px 3px; + border: none; +} + +div.informaltable table td, div.informaltable table th +{ + vertical-align: top; +} + +.function_type, +.variable_type, +.property_type, +.signal_type, +.parameter_name, +.struct_member_name, +.union_member_name, +.define_keyword, +.datatype_keyword, +.typedef_keyword +{ + text-align: right; +} + +/* dim non-primary columns */ +.c_punctuation, +.function_type, +.variable_type, +.property_type, +.signal_type, +.define_keyword, +.datatype_keyword, +.typedef_keyword, +.property_flags, +.signal_flags, +.parameter_annotations, +.enum_member_annotations, +.struct_member_annotations, +.union_member_annotations +{ + color: #888a85; +} + +.function_type a, +.function_type a:visited, +.function_type a:hover, +.property_type a, +.property_type a:visited, +.property_type a:hover, +.signal_type a, +.signal_type a:visited, +.signal_type a:hover, +.signal_flags a, +.signal_flags a:visited, +.signal_flags a:hover +{ + color: #729fcf; +} + div.table table { border-collapse: collapse; @@ -154,14 +261,43 @@ div.table table th background-color: #d3d7cf; } +h4 +{ + color: #555753; +} + hr { - /* tango:aluminium 3 */ - color: #babdb6; - background: #babdb6; + /* tango:aluminium 1 */ + color: #d3d7cf; + background: #d3d7cf; border: none 0px; height: 1px; clear: both; + margin: 2.0em 0em 2.0em 0em; +} + +dl.toc dt +{ + padding-bottom: 0.25em; +} + +dl.toc > dd > dl > dt +{ + padding-top: 0.25em; + padding-bottom: 0.25em; +} + +dl.toc > dt +{ + padding-top: 1em; + padding-bottom: 0.5em; + font-weight: bold; +} + +.parameter +{ + font-style: normal; } .footer @@ -173,31 +309,70 @@ hr font-size: 80%; } +.informalfigure, +.figure +{ + margin: 1em; +} + +.informalexample, +.example +{ + margin-top: 1em; + margin-bottom: 1em; +} + .warning { /* tango:orange 0/1 */ background: #ffeed9; + background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; + border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; + background: rgba(138, 226, 52, 0.1); border-color: #abf562; + border-color: rgba(138, 226, 52, 0.2); } -.note, .warning +div.blockquote +{ + border-color: #eeeeec; +} +.note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; + margin: 2em; } -.note h3, .warning h3 +.note p, .warning p { - margin-top: 0.0em + margin: 0; } -.note p, .warning p + +div.warning h3.title, +div.note h3.title { - margin-bottom: 0.0em + display: none; +} + +p + div.section +{ + margin-top: 1em; +} + +div.refnamediv, +div.refsynopsisdiv, +div.refsect1, +div.refsect2, +div.toc, +div.section +{ + margin-bottom: 1em; } /* blob links */ @@ -210,11 +385,22 @@ h2 .extralinks, h3 .extralinks font-weight: normal; } +.lineart +{ + color: #d3d7cf; + font-weight: normal; +} + .annotation { /* tango:aluminium 5 */ color: #555753; - font-size: 80%; + font-weight: normal; +} + +.structfield +{ + font-style: normal; font-weight: normal; } @@ -237,6 +423,7 @@ h2 .extralinks, h3 .extralinks .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; + border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } @@ -245,20 +432,28 @@ h2 .extralinks, h3 .extralinks margin-bottom: 0px; padding: 0.5em; } +.listing_lines { + /* this just adds visual clutter and + takes precious room from small screens */ + display: none; +} .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; + background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; + background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; + background: none; } .listing_lines pre, .listing_code pre { margin: 0px; diff --git a/docs/plugins/html/up-insensitive.png b/docs/plugins/html/up-insensitive.png new file mode 100644 index 0000000000000000000000000000000000000000..f40498606db349a7321cf6b470523e836ee7ac2e GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHjTefG~@Ex#w@70gTL^E{-7<r{7Mp*JlY7IeLDkee|nR zm3<9io8Qg8DENrkBgAEM?+=D4w>zACwHGSRJaopUzr*FR_KPpkxheNzTDP+%{a~ox zRb6~e-_l%s#;V|Jw-)bO$G_X=4F`Y7SBoCz<TEGtGlqt)ow$cdpnYoi)w4RM*ZpUi zlDbpK^&)S>yjAZQ8BPW>ywAP8?pbBsZ|wt?+h6S6&uqY)kkMnwQQEd@7k`4t@sCCO z@7MoiEI4<z`n^2k872$yiMf-w7*=^@zm;szWyn{V?(#&GVG-wo%vq-e_Nni*=4|Kk zDr$e?{2^wA)_w+$a}#U4E|)mF9J`;dtn^sL^BSYg>Q_#IB70vhu7Ab+>SXLxu@LWH Qzz|~aboFyt=akR{08E^fv;Y7A literal 0 HcmV?d00001 diff --git a/docs/plugins/html/up.png b/docs/plugins/html/up.png index 85b3e2a2755fece72d0d09fbf1cf28d51fa71077..80b4b37e997d69b2e128bc3090bc447ccb74bbe9 100644 GIT binary patch delta 242 zcmbQn+`^>T8Q|y6%O%Cdz`(%k>ERLtqy<2jgAGW^fBv61QBkIz_c~DaI-`@u><XYL zdx@v7EBjq`0U-tUDf}-E0)-}ex;TbdoPImWkgM52#AW`}ZPm>cEc}Txn{OPkR*5a* zwDk&N*>b{AhxN3=kKmLRU9sMkwFVo`%)fd5(4liu;t&4h?_}|@%GH%`6r8an@SgvZ z1JSd&Pd<5?{gg){#A8R*Ki_)`d?tvz5Lt6ZXBNBF^;x9{6iW_zH(F0%dB*u6VA)sk pGhYq}7jXNRI4sWD^Z%2+{F$v<!Vj0{)B;_{;OXk;vd$@?2>@5|Tdn{A delta 389 zcmV;00eb#~0+s_IiBL{Q4GJ0x0000DNk~Le0000O0000O2nGNE0N{5$_>mzTe+v=- z01FZU(%pXi00007bV*G`2hs>11u`z2MS$4=00AROL_t(|ob8i6O2j|_M!#=~T?!#9 zq?|H^#THvy%pE*H8ZY4;Jb<00g;?7P+O3c>jWBkxvxtzwh0kg*yKMe;R<Q6vV3-W= z%?t_fmymQSY55!CNYbr-c#sqye^P!YNmW(JIp-r!!I5owmSsxQRApI)M|Q~p2tatG zPaYf@Bi}nRMLs#Qk9>3_MBWoQZU=5c<n736wepcdQUpnJNvi8QNba9Fj#U(ekDU4I z`A`Se+D@4<W@D{$PR=<sP2;DQ5y`cr3jo&u=AEC|2#hg)xCU@V@?{19TO{vEp0EXg z#|iE?ZgNEO5&&i)J08P-V34Ti-6sI#c@Ass&IL)5_~HBHvZQlKUtRyl7I~M41Ca%Q j#lT)(Nj^_L!J+sDt*02Wnm<`W00000NkvXXu0mjf_6?mT diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml index 1ee4b8ea9..4c60e18cd 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.2.4</version> + <version>1.3.1</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 3bf7ce4cf..ab51066d7 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.2.4</version> + <version>1.3.1</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 1ba9117ec..a32dbb81c 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.2.4</version> + <version>1.3.1</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 e7bc97bd7..7f6c5a0ab 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.2.4</version> + <version>1.3.1</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 d8bd6c004..02f284a68 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> diff --git a/docs/plugins/inspect/plugin-apetag.xml b/docs/plugins/inspect/plugin-apetag.xml index 0126e2452..fb04308ec 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.2.4</version> + <version>1.3.1</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 621ccea75..2da24ab13 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.2.4</version> + <version>1.3.1</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 b2408ee38..7a3bf28e2 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.2.4</version> + <version>1.3.1</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 25199feb3..677bfeabd 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.2.4</version> + <version>1.3.1</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 1291ca0de..962b7074b 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.2.4</version> + <version>1.3.1</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 17c60cbfb..f03c50a5c 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -28,6 +28,12 @@ <presence>sometimes</presence> <details>audio/ms-gsm, rate=(int)[ 1, 96000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int)[ 16000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]; audio/x-vorbis, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 2 ]; audio/x-ac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 6 ]; audio/x-dts; audio/mpeg, mpegversion=(int)4, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ]; audio/x-alaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-mulaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-wms, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)microsoft, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-truespeech, rate=(int)8000, channels=(int)[ 1, 2 ]; audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-vnd.sony.atrac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]; audio/x-voxware, voxwaretype=(int)117, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dk4, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dk3, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dvi, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/AMR, rate=(int)8000, channels=(int)1; audio/AMR-WB, rate=(int)16000, channels=(int)1; audio/x-siren; application/x-ogg-avi; audio/x-avi-unknown</details> </caps> + <caps> + <name>subpicture_%u</name> + <direction>source</direction> + <presence>sometimes</presence> + <details>subpicture/x-xsub</details> + </caps> <caps> <name>subtitle_%u</name> <direction>source</direction> diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml index 7ea98987b..7fa81fd0d 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.2.4</version> + <version>1.3.1</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 4a0b12465..599998389 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -20,13 +20,13 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ BGRx, BGRA }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ BGRx, BGRA, RGB16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> <caps> <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ BGRx, BGRA }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ BGRx, BGRA, RGB16 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-cutter.xml b/docs/plugins/inspect/plugin-cutter.xml index a774ff03d..cb9691a1a 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -20,13 +20,13 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>audio/x-raw, format=(string){ S8LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</details> + <details>audio/x-raw, format=(string){ S8, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</details> </caps> <caps> <name>src</name> <direction>source</direction> <presence>always</presence> - <details>audio/x-raw, format=(string){ S8LE, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</details> + <details>audio/x-raw, format=(string){ S8, S16LE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string)interleaved</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-debug.xml b/docs/plugins/inspect/plugin-debug.xml index 19561143f..3f845f46a 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.2.4</version> + <version>1.3.1</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 8847f4adb..3e6d61f67 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -20,13 +20,13 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> <caps> <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> + <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml index cea123b7c..30d1c4fd1 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.2.4</version> + <version>1.3.1</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 e09c70ee4..5a516fb98 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.2.4</version> + <version>1.3.1</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 dd51e5116..a0c087d38 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.2.4</version> + <version>1.3.1</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 b3f1bc41a..013dafe4e 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.2.4</version> + <version>1.3.1</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 a0b670a7a..ab52b4f45 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -26,7 +26,7 @@ <name>src</name> <direction>source</direction> <presence>always</presence> - <details>audio/x-raw, format=(string){ S8LE, S16LE, S24_32LE, S32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</details> + <details>audio/x-raw, format=(string){ S8, S16LE, S24_32LE, S32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</details> </caps> </pads> </element> @@ -41,7 +41,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>audio/x-raw, format=(string){ S8LE, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</details> + <details>audio/x-raw, format=(string){ S24LE, S24_32LE, S16LE, S8 }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</details> </caps> <caps> <name>src</name> diff --git a/docs/plugins/inspect/plugin-flv.xml b/docs/plugins/inspect/plugin-flv.xml index d6863e24e..f0dd215c9 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.2.4</version> + <version>1.3.1</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 87b4a6c56..27602f259 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.2.4</version> + <version>1.3.1</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 7eaaf945b..670429776 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.2.4</version> + <version>1.3.1</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 92991dcbc..0728eff88 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.2.4</version> + <version>1.3.1</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 0b82cf9b3..070ad509a 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.2.4</version> + <version>1.3.1</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 aad97da04..f90866f95 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.2.4</version> + <version>1.3.1</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 bcb62232b..1df22eb37 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.2.4</version> + <version>1.3.1</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 fb44c6230..895f22914 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.2.4</version> + <version>1.3.1</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 c1a49bd6e..eb688cbf4 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.2.4</version> + <version>1.3.1</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 e19df99e2..937eecb85 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -22,6 +22,12 @@ <presence>request</presence> <details>audio/AMR, rate=(int)8000, channels=(int)[ 1, 2 ]; audio/AMR-WB, rate=(int)16000, channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]</details> </caps> + <caps> + <name>subtitle_%u</name> + <direction>sink</direction> + <presence>request</presence> + <details>text/x-raw, format=(string)utf8</details> + </caps> <caps> <name>video_%u</name> <direction>sink</direction> @@ -103,6 +109,12 @@ <presence>request</presence> <details>audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]; audio/x-alac, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</details> </caps> + <caps> + <name>subtitle_%u</name> + <direction>sink</direction> + <presence>request</presence> + <details>text/x-raw, format=(string)utf8</details> + </caps> <caps> <name>video_%u</name> <direction>sink</direction> @@ -172,6 +184,12 @@ <presence>request</presence> <details>audio/x-raw, format=(string){ S8, U8 }, layout=(string)interleaved, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string){ S16LE, S16BE }, layout=(string)interleaved, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string){ S24LE, S24BE }, layout=(string)interleaved, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string){ S32LE, S32BE }, layout=(string)interleaved, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 64, 8096 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-alaw, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-mulaw, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/AMR, rate=(int)8000, channels=(int)[ 1, 2 ]; audio/AMR-WB, rate=(int)16000, channels=(int)[ 1, 2 ]; audio/x-alac, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</details> </caps> + <caps> + <name>subtitle_%u</name> + <direction>sink</direction> + <presence>request</presence> + <details>text/x-raw, format=(string)utf8</details> + </caps> <caps> <name>video_%u</name> <direction>sink</direction> diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml index 5e8799e86..1deb50a32 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.2.4</version> + <version>1.3.1</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 635b8f473..c4412d2c8 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.2.4</version> + <version>1.3.1</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 edc404fc1..6d36d51c2 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.2.4</version> + <version>1.3.1</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 68121631c..93a70a464 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -53,7 +53,7 @@ <name>audio_%u</name> <direction>sink</direction> <presence>request</presence> - <details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int){ 2, 4 }, stream-format=(string)raw, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-ac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-eac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-dts, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-vorbis, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-flac, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-speex, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string){ U8, S16BE, S16LE, S24BE, S24LE, S32BE, S32LE, F32LE, F64LE }, layout=(string)interleaved, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-tta, width=(int){ 8, 16, 24 }, channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]; audio/x-pn-realaudio, raversion=(int){ 1, 2, 8 }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)[ 1, 3 ], block_align=(int)[ 0, 65535 ], bitrate=(int)[ 0, 524288 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]</details> + <details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int){ 2, 4 }, stream-format=(string)raw, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-ac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-eac3, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-dts, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-vorbis, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-flac, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-opus; audio/x-speex, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw, format=(string){ U8, S16BE, S16LE, S24BE, S24LE, S32BE, S32LE, F32LE, F64LE }, layout=(string)interleaved, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-tta, width=(int){ 8, 16, 24 }, channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]; audio/x-pn-realaudio, raversion=(int){ 1, 2, 8 }, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)[ 1, 3 ], block_align=(int)[ 0, 65535 ], bitrate=(int)[ 0, 524288 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int)[ 8000, 192000 ]; audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 64, 8192 ], channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]; audio/x-adpcm, layout=(string)g726, channels=(int)1, rate=(int)8000</details> </caps> <caps> <name>subtitle_%u</name> @@ -65,7 +65,7 @@ <name>video_%u</name> <direction>sink</direction> <presence>request</presence> - <details>video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-dv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-theora; video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-pn-realvideo, rmversion=(int)[ 1, 4 ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string){ YUY2, I420, YV12, UYVY, AYUV }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-wmv, wmvversion=(int)[ 1, 3 ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</details> + <details>video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h265, stream-format=(string)hvc1, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-dv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-theora; video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-pn-realvideo, rmversion=(int)[ 1, 4 ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-raw, format=(string){ YUY2, I420, YV12, UYVY, AYUV, GRAY8, BGR, RGB }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-wmv, wmvversion=(int)[ 1, 3 ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</details> </caps> <caps> <name>src</name> diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml index 832e1f661..5e0e28ead 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.2.4</version> + <version>1.3.1</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 92ee9fb77..c4554e52c 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.2.4</version> + <version>1.3.1</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 0e8ab11ab..82dbf7fa1 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.2.4</version> + <version>1.3.1</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 a3373abce..0af9cd2d1 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.2.4</version> + <version>1.3.1</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 0bf01a3f8..ec1054138 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.2.4</version> + <version>1.3.1</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 a169ddc52..499f3ed41 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.2.4</version> + <version>1.3.1</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 028117926..ca0d4b39b 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.2.4</version> + <version>1.3.1</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 48ab90420..254ad244f 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.2.4</version> + <version>1.3.1</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 a66696192..a9255efde 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.2.4</version> + <version>1.3.1</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 d9e2be3cb..e628c7b06 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -1374,6 +1374,48 @@ </caps> </pads> </element> + <element> + <name>rtpstreamdepay</name> + <longname>RTP Stream Depayloading</longname> + <class>Codec/Depayloader/Network</class> + <description>Depayloads RTP/RTCP packets for streaming protocols according to RFC4571</description> + <author>Sebastian Dröge <sebastian@centricular.com></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>application/x-rtp-stream; application/x-rtcp-stream; application/x-srtp-stream; application/x-srtcp-stream</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp; application/x-rtcp; application/x-srtp; application/x-srtcp</details> + </caps> + </pads> + </element> + <element> + <name>rtpstreampay</name> + <longname>RTP Stream Payloading</longname> + <class>Codec/Payloader/Network</class> + <description>Payloads RTP/RTCP packets for streaming protocols according to RFC4571</description> + <author>Sebastian Dröge <sebastian@centricular.com></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>application/x-rtp; application/x-rtcp; application/x-srtp; application/x-srtcp</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp-stream; application/x-rtcp-stream; application/x-srtp-stream; application/x-srtcp-stream</details> + </caps> + </pads> + </element> <element> <name>rtpsv3vdepay</name> <longname>RTP SVQ3 depayloader</longname> diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml index 9d820f49e..4d4b69e03 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -20,13 +20,13 @@ <name>recv_rtcp_sink_%u</name> <direction>sink</direction> <presence>request</presence> - <details>application/x-rtcp</details> + <details>application/x-rtcp; application/x-srtcp</details> </caps> <caps> <name>recv_rtp_sink_%u</name> <direction>sink</direction> <presence>request</presence> - <details>application/x-rtp</details> + <details>application/x-rtp; application/x-srtp</details> </caps> <caps> <name>send_rtp_sink_%u</name> @@ -44,13 +44,13 @@ <name>send_rtp_src_%u</name> <direction>source</direction> <presence>sometimes</presence> - <details>application/x-rtp</details> + <details>application/x-rtp; application/x-srtp</details> </caps> <caps> <name>send_rtcp_src_%u</name> <direction>source</direction> <presence>request</presence> - <details>application/x-rtcp</details> + <details>application/x-rtcp; application/x-srtcp</details> </caps> </pads> </element> @@ -171,6 +171,48 @@ </caps> </pads> </element> + <element> + <name>rtprtxreceive</name> + <longname>RTP Retransmission receiver</longname> + <class>Codec</class> + <description>Receive retransmitted RTP packets according to RFC4588</description> + <author>Julien Isorce <julien.isorce@collabora.co.uk></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>application/x-rtp</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp</details> + </caps> + </pads> + </element> + <element> + <name>rtprtxsend</name> + <longname>RTP Retransmission Sender</longname> + <class>Codec</class> + <description>Retransmit RTP packets when needed, according to RFC4588</description> + <author>Julien Isorce <julien.isorce@collabora.co.uk></author> + <pads> + <caps> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <details>application/x-rtp, clock-rate=(int)[ 1, 2147483647 ]</details> + </caps> + <caps> + <name>src</name> + <direction>source</direction> + <presence>always</presence> + <details>application/x-rtp</details> + </caps> + </pads> + </element> <element> <name>rtpsession</name> <longname>RTP Session</longname> diff --git a/docs/plugins/inspect/plugin-rtsp.xml b/docs/plugins/inspect/plugin-rtsp.xml index 049369588..431a76c6a 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.2.4</version> + <version>1.3.1</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 d74139dee..ffaa86dbd 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.2.4</version> + <version>1.3.1</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 9e247eb59..ea7de39b9 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.2.4</version> + <version>1.3.1</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 9334668bd..880784c5d 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.2.4</version> + <version>1.3.1</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 4bea9eb68..57025b426 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.2.4</version> + <version>1.3.1</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 34f63e722..731eeae79 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.2.4</version> + <version>1.3.1</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 4490faaf6..f782108d6 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.2.4</version> + <version>1.3.1</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 fdc4d6262..f8bf15c81 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.2.4</version> + <version>1.3.1</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 8ce4a5a6b..114731805 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.2.4</version> + <version>1.3.1</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 490bfc5bb..e74cc81fc 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.2.4</version> + <version>1.3.1</version> <license>LGPL</license> <source>gst-plugins-good</source> <package>GStreamer Good Plug-ins source release</package> @@ -29,7 +29,7 @@ <name>sink</name> <direction>sink</direction> <presence>always</presence> - <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts, systemstream=(boolean)true; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details> + <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, xRGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-vp8</details> </caps> </pads> </element> @@ -44,7 +44,7 @@ <name>src</name> <direction>source</direction> <presence>always</presence> - <details>video/x-raw, format=(string)RGB15, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB16, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGR, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGB, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)BGRx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)RGBx, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)GRAY8, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVU9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUY2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)UYVY, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y42B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)Y41B, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV12, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)NV21, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YUV9, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)I420, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; image/jpeg, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/mpegts, systemstream=(boolean)true; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h263, variant=(string)itu, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-h264, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string)YVYU, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</details> + <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, xRGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-vp8</details> </caps> </pads> </element> diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml index 08ac44e20..490f960b6 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.2.4</version> + <version>1.3.1</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 e4670bdba..f213c189b 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.2.4</version> + <version>1.3.1</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 acc1c19a6..a58165e89 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.2.4</version> + <version>1.3.1</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 f3846c305..0526574dc 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.2.4</version> + <version>1.3.1</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 678cdf822..7338cb6ac 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.2.4</version> + <version>1.3.1</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 23ea72938..59d0e4b57 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.2.4</version> + <version>1.3.1</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 034a78c6c..8a22c04f7 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.2.4</version> + <version>1.3.1</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 06c47bcb5..b6784d564 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.2.4</version> + <version>1.3.1</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 255d6cf82..4b240e184 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.2.4</version> + <version>1.3.1</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 d31443737..e7359a241 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.2.4</version> + <version>1.3.1</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 69a8a8ea9..82643c0df 100644 --- a/ext/Makefile.in +++ b/ext/Makefile.in @@ -92,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -108,7 +107,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -465,7 +463,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in index 9162650d6..6b9cf4fd3 100644 --- a/ext/aalib/Makefile.in +++ b/ext/aalib/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in index 30388533f..1635d8de6 100644 --- a/ext/cairo/Makefile.in +++ b/ext/cairo/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/cairo/gstcairooverlay.c b/ext/cairo/gstcairooverlay.c index af32dfe01..88d74fbff 100644 --- a/ext/cairo/gstcairooverlay.c +++ b/ext/cairo/gstcairooverlay.c @@ -96,11 +96,11 @@ #include <cairo.h> +/* RGB16 is native-endianness in GStreamer */ #if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define TEMPLATE_CAPS GST_VIDEO_CAPS_MAKE("{ BGRx, BGRA }") +#define TEMPLATE_CAPS GST_VIDEO_CAPS_MAKE("{ BGRx, BGRA, RGB16 }") #else -#define TEMPLATE_CAPS GST_VIDEO_CAPS_MAKE("{ xRGB, ARGB }") - +#define TEMPLATE_CAPS GST_VIDEO_CAPS_MAKE("{ xRGB, ARGB, RGB16 }") #endif static GstStaticPadTemplate gst_cairo_overlay_src_template = @@ -149,10 +149,25 @@ gst_cairo_overlay_transform_frame_ip (GstVideoFilter * vfilter, cairo_t *cr; cairo_format_t format; - if (GST_VIDEO_FRAME_N_COMPONENTS (frame) == 4) - format = CAIRO_FORMAT_ARGB32; - else - format = CAIRO_FORMAT_RGB24; + switch (GST_VIDEO_FRAME_FORMAT (frame)) { + case GST_VIDEO_FORMAT_ARGB: + case GST_VIDEO_FORMAT_BGRA: + format = CAIRO_FORMAT_ARGB32; + break; + case GST_VIDEO_FORMAT_xRGB: + case GST_VIDEO_FORMAT_BGRx: + format = CAIRO_FORMAT_RGB24; + break; + case GST_VIDEO_FORMAT_RGB16: + format = CAIRO_FORMAT_RGB16_565; + break; + default: + { + GST_WARNING ("No matching cairo format for %s", + gst_video_format_to_string (GST_VIDEO_FRAME_FORMAT (frame))); + return GST_FLOW_ERROR; + } + } surface = cairo_image_surface_create_for_data (GST_VIDEO_FRAME_PLANE_DATA (frame, diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in index 3d1a71c72..96980447e 100644 --- a/ext/dv/Makefile.in +++ b/ext/dv/Makefile.in @@ -91,7 +91,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -107,7 +106,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -497,7 +495,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/dv/gstdvdec.c b/ext/dv/gstdvdec.c index c84461e63..4fd01c9a2 100644 --- a/ext/dv/gstdvdec.c +++ b/ext/dv/gstdvdec.c @@ -34,8 +34,6 @@ * gst-launch-1.0 filesrc location=test.dv ! dvdemux name=demux ! dvdec ! xvimagesink * ]| This pipeline decodes and renders the raw DV stream to a videosink. * </refsect2> - * - * Last reviewed on 2006-02-28 (0.10.3) */ #ifdef HAVE_CONFIG_H @@ -393,10 +391,9 @@ gst_dvdec_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) GstCaps *caps; gst_event_parse_caps (event, &caps); - gst_dvdec_sink_setcaps (dvdec, caps); + res = gst_dvdec_sink_setcaps (dvdec, caps); gst_event_unref (event); event = NULL; - res = TRUE; break; } @@ -422,7 +419,7 @@ gst_dvdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) GstBuffer *outbuf; GstFlowReturn ret = GST_FLOW_OK; guint length; - guint64 cstart, cstop; + guint64 cstart = GST_CLOCK_TIME_NONE, cstop = GST_CLOCK_TIME_NONE; gboolean PAL, wide; dvdec = GST_DVDEC (parent); @@ -519,8 +516,15 @@ gst_dvdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET (buf); GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET_END (buf); - GST_BUFFER_TIMESTAMP (outbuf) = cstart; - GST_BUFFER_DURATION (outbuf) = cstop - cstart; + + /* FIXME : Compute values when using non-TIME segments, + * but for the moment make sure we at least don't set bogus values + */ + if (GST_CLOCK_TIME_IS_VALID (cstart)) { + GST_BUFFER_TIMESTAMP (outbuf) = cstart; + if (GST_CLOCK_TIME_IS_VALID (cstop)) + GST_BUFFER_DURATION (outbuf) = cstop - cstart; + } ret = gst_pad_push (dvdec->srcpad, outbuf); diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index 01c8a7daf..352283a9a 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -44,8 +44,6 @@ * gst-launch-1.0 filesrc location=test.dv ! dvdemux name=demux ! queue ! audioconvert ! alsasink demux. ! queue ! dvdec ! xvimagesink * ]| This pipeline decodes and renders the raw DV stream to an audio and a videosink. * </refsect2> - * - * Last reviewed on 2006-02-27 (0.10.3) */ /* DV output has two modes, normal and wide. The resolution is the same in both diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in index c27248e29..3d06b3978 100644 --- a/ext/flac/Makefile.in +++ b/ext/flac/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c index 153748543..3537fc250 100644 --- a/ext/flac/gstflacdec.c +++ b/ext/flac/gstflacdec.c @@ -115,9 +115,9 @@ static GstFlowReturn gst_flac_dec_handle_frame (GstAudioDecoder * audio_dec, G_DEFINE_TYPE (GstFlacDec, gst_flac_dec, GST_TYPE_AUDIO_DECODER); #if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define FORMATS "{ S8LE, S16LE, S24_32LE, S32LE } " +#define FORMATS "{ S8, S16LE, S24_32LE, S32LE } " #else -#define FORMATS "{ S8BE, S16BE, S24_32BE, S32BE } " +#define FORMATS "{ S8, S16BE, S24_32BE, S32BE } " #endif #define GST_FLAC_DEC_SRC_CAPS \ @@ -176,7 +176,7 @@ gst_flac_dec_class_init (GstFlacDecClass * klass) static void gst_flac_dec_init (GstFlacDec * flacdec) { - /* nothing to do here */ + gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (flacdec), TRUE); } static gboolean @@ -421,7 +421,7 @@ gst_flac_dec_scan_got_frame (GstFlacDec * flacdec, guint8 * data, guint size, } if (flacdec->min_blocksize == flacdec->max_blocksize) { - *last_sample_num = (val + 1) * flacdec->min_blocksize; + *last_sample_num = ((guint64) val + 1) * flacdec->min_blocksize; } else { *last_sample_num = 0; /* FIXME: + length of last block in samples */ } @@ -670,18 +670,10 @@ gst_flac_dec_write (GstFlacDec * flacdec, const FLAC__Frame * frame, gint8 *outbuffer = (gint8 *) map.data; gint *reorder_map = flacdec->channel_reorder_map; - if (gdepth != depth) { - for (i = 0; i < samples; i++) { - for (j = 0; j < channels; j++) { - *outbuffer++ = - (gint8) (buffer[reorder_map[j]][i] << (gdepth - depth)); - } - } - } else { - for (i = 0; i < samples; i++) { - for (j = 0; j < channels; j++) { - *outbuffer++ = (gint8) buffer[reorder_map[j]][i]; - } + g_assert (gdepth == 8 && depth == 8); + for (i = 0; i < samples; i++) { + for (j = 0; j < channels; j++) { + *outbuffer++ = (gint8) buffer[reorder_map[j]][i]; } } } else if (width == 16) { diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c index e71e5cd2a..e0bffcf24 100644 --- a/ext/flac/gstflacenc.c +++ b/ext/flac/gstflacenc.c @@ -98,9 +98,9 @@ static const GstAudioChannelPosition channel_positions[8][8] = { }; #if G_BYTE_ORDER == G_LITTLE_ENDIAN -#define FORMATS "{ S8LE, S16LE, S24LE, S24_32LE } " +#define FORMATS "{ S24LE, S24_32LE, S16LE, S8 } " #else -#define FORMATS "{ S8BE, S16BE, S24BE, S24_32BE } " +#define FORMATS "{ S24BE, S24_32BE, S16BE, S8 } " #endif #define FLAC_SINK_CAPS \ @@ -734,7 +734,7 @@ gst_flac_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter) g_value_init (&v_list, GST_TYPE_LIST); g_value_init (&v, G_TYPE_STRING); - g_value_set_static_string (&v, GST_AUDIO_NE (S8)); + g_value_set_static_string (&v, "S8"); gst_value_list_append_value (&v_list, &v); g_value_set_static_string (&v, GST_AUDIO_NE (S16)); gst_value_list_append_value (&v_list, &v); diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in index c42a1dc31..b5cb7150b 100644 --- a/ext/gdk_pixbuf/Makefile.in +++ b/ext/gdk_pixbuf/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -490,7 +488,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c index 5689bc037..6d3ba25f3 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c +++ b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c @@ -19,7 +19,6 @@ /** * SECTION:element-gdkpixbufoverlay - * @see_also: * * The gdkpixbufoverlay element overlays an image loaded from file onto * a video stream. @@ -41,8 +40,6 @@ * Overlays the image in image.png onto the test video picture produced by * videotestsrc. * </refsect2> - * - * Since: 0.10.33 */ #ifdef HAVE_CONFIG_H diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.c b/ext/gdk_pixbuf/gstgdkpixbufsink.c index 5a8305d7d..5e7937855 100644 --- a/ext/gdk_pixbuf/gstgdkpixbufsink.c +++ b/ext/gdk_pixbuf/gstgdkpixbufsink.c @@ -19,7 +19,6 @@ /** * SECTION:element-gdkpixbufsink - * @Since: 0.10.8 * * This sink element takes RGB or RGBA images as input and wraps them into * #GdkPixbuf objects, for easy saving to file via the @@ -160,8 +159,6 @@ gst_gdk_pixbuf_sink_class_init (GstGdkPixbufSinkClass * klass) * GstGdkPixbuf:post-messages: * * Post messages on the bus containing pixbufs. - * - * Since: 0.10.17 */ g_object_class_install_property (gobject_class, PROP_POST_MESSAGES, g_param_spec_boolean ("post-messages", "Post Messages", diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in index c7bf45e34..8c8fa6ec4 100644 --- a/ext/jack/Makefile.in +++ b/ext/jack/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/jack/gstjackaudioclient.c b/ext/jack/gstjackaudioclient.c index 525b1c5be..0f06d10b3 100644 --- a/ext/jack/gstjackaudioclient.c +++ b/ext/jack/gstjackaudioclient.c @@ -29,11 +29,26 @@ GST_DEBUG_CATEGORY_STATIC (gst_jack_audio_client_debug); #define GST_CAT_DEFAULT gst_jack_audio_client_debug +static void +jack_log_error (const gchar * msg) +{ + GST_ERROR ("%s", msg); +} + +static void +jack_info_error (const gchar * msg) +{ + GST_INFO ("%s", msg); +} + void gst_jack_audio_client_init (void) { GST_DEBUG_CATEGORY_INIT (gst_jack_audio_client_debug, "jackclient", 0, "jackclient helpers"); + + jack_set_error_function (jack_log_error); + jack_set_info_function (jack_info_error); } /* a list of global connections indexed by id and server. */ diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c index e33ed1813..3a8356784 100644 --- a/ext/jack/gstjackaudiosink.c +++ b/ext/jack/gstjackaudiosink.c @@ -51,8 +51,6 @@ * gst-launch-1.0 audiotestsrc ! jackaudiosink * ]| Play a sine wave to using jack. * </refsect2> - * - * Last reviewed on 2006-11-30 (0.10.4) */ #ifdef HAVE_CONFIG_H @@ -736,11 +734,9 @@ gst_jack_audio_sink_class_init (GstJackAudioSinkClass * klass) DEFAULT_PROP_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstJackAudioSink:client-name + * GstJackAudioSink:client-name: * * The client name to use. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_CLIENT_NAME, g_param_spec_string ("client-name", "Client name", @@ -755,11 +751,9 @@ gst_jack_audio_sink_class_init (GstJackAudioSinkClass * klass) G_PARAM_STATIC_STRINGS)); /** - * GstJackAudioSink:transport + * GstJackAudioSink:transport: * * The jack transport behaviour for the client. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_TRANSPORT, g_param_spec_flags ("transport", "Transport mode", diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c index eb5951a89..5a3bfb5fd 100644 --- a/ext/jack/gstjackaudiosrc.c +++ b/ext/jack/gstjackaudiosrc.c @@ -70,8 +70,6 @@ * gst-launch-1.0 jackaudiosrc connect=0 ! jackaudiosink connect=0 * ]| Get audio input into gstreamer from jack. * </refsect2> - * - * Last reviewed on 2008-07-22 (0.10.4) */ #ifdef HAVE_CONFIG_H @@ -758,11 +756,9 @@ gst_jack_audio_src_class_init (GstJackAudioSrcClass * klass) DEFAULT_PROP_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstJackAudioSrc:client-name + * GstJackAudioSrc:client-name: * * The client name to use. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_CLIENT_NAME, g_param_spec_string ("client-name", "Client name", @@ -777,11 +773,9 @@ gst_jack_audio_src_class_init (GstJackAudioSrcClass * klass) G_PARAM_STATIC_STRINGS)); /** - * GstJackAudioSink:transport + * GstJackAudioSink:transport: * * The jack transport behaviour for the client. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_TRANSPORT, g_param_spec_flags ("transport", "Transport mode", diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in index b7fafca8c..054d1afdf 100644 --- a/ext/jpeg/Makefile.in +++ b/ext/jpeg/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c index 23eff4663..9b1af1c6b 100644 --- a/ext/jpeg/gstjpegdec.c +++ b/ext/jpeg/gstjpegdec.c @@ -144,17 +144,17 @@ gst_jpeg_dec_class_init (GstJpegDecClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstJpegDec:max-errors + * GstJpegDec:max-errors: * * Error out after receiving N consecutive decoding errors * (-1 = never error out, 0 = automatic, 1 = fail on first error, etc.) * - * Since: 0.10.27 - **/ + * Deprecated: 1.3.1: Property wasn't used internally + */ g_object_class_install_property (gobject_class, PROP_MAX_ERRORS, g_param_spec_int ("max-errors", "Maximum Consecutive Decoding Errors", - "Error out after receiving N consecutive decoding errors " - "(-1 = never fail, 0 = automatic, 1 = fail on first error)", + "(Deprecated) Error out after receiving N consecutive decoding errors" + " (-1 = never fail, 0 = automatic, 1 = fail on first error)", -1, G_MAXINT, JPEG_DEFAULT_MAX_ERRORS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); @@ -296,6 +296,8 @@ gst_jpeg_dec_parse (GstVideoDecoder * bdec, GstVideoCodecFrame * frame, gint offset = 0, noffset; GstJpegDec *dec = (GstJpegDec *) bdec; + GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame); + /* FIXME : The overhead of using scan_uint32 is massive */ size = gst_adapter_available (adapter); @@ -376,9 +378,8 @@ gst_jpeg_dec_parse (GstVideoDecoder * bdec, GstVideoCodecFrame * frame, /* Skip this frame if we found another SOI marker */ GST_DEBUG ("0x%08x: SOI marker before EOI, skipping", offset + 2); dec->parse_resync = FALSE; - /* FIXME : Need to skip data */ - toadd -= offset + 2; - goto have_full_frame; + size = offset + 2; + goto drop_frame; } @@ -1187,7 +1188,6 @@ decode_error: need_unmap = FALSE; jpeg_abort_decompress (&dec->cinfo); - ret = GST_FLOW_ERROR; goto done; } decode_direct_failed: diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in index 260d28fac..146933a3c 100644 --- a/ext/libcaca/Makefile.in +++ b/ext/libcaca/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in index bddcf598f..2bba3fb25 100644 --- a/ext/libpng/Makefile.in +++ b/ext/libpng/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c index f51c91af9..d4b8ef1b3 100644 --- a/ext/libpng/gstpngdec.c +++ b/ext/libpng/gstpngdec.c @@ -179,15 +179,12 @@ user_endrow_callback (png_structp png_ptr, png_bytep new_row, pngdec = GST_PNGDEC (png_get_io_ptr (png_ptr)); - /* FIXME: implement interlaced pictures */ - /* If buffer_out doesn't exist, it means buffer_alloc failed, which * will already have set the return code */ - if (GST_IS_BUFFER (pngdec->current_frame->output_buffer)) { + if (new_row && GST_IS_BUFFER (pngdec->current_frame->output_buffer)) { GstVideoFrame frame; GstBuffer *buffer = pngdec->current_frame->output_buffer; size_t offset; - gint width; guint8 *data; if (!gst_video_frame_map (&frame, &pngdec->output_state->info, buffer, @@ -198,13 +195,14 @@ user_endrow_callback (png_structp png_ptr, png_bytep new_row, data = GST_VIDEO_FRAME_COMP_DATA (&frame, 0); offset = row_num * GST_VIDEO_FRAME_COMP_STRIDE (&frame, 0); - GST_LOG ("got row %u, copying in buffer %p at offset %" G_GSIZE_FORMAT, - (guint) row_num, pngdec->current_frame->output_buffer, offset); - width = GST_ROUND_UP_4 (png_get_rowbytes (pngdec->png, pngdec->info)); - memcpy (data + offset, new_row, width); + GST_LOG ("got row %u at pass %d, copying in buffer %p at offset %" + G_GSIZE_FORMAT, (guint) row_num, pass, + pngdec->current_frame->output_buffer, offset); + png_progressive_combine_row (pngdec->png, data + offset, new_row); gst_video_frame_unmap (&frame); pngdec->ret = GST_FLOW_OK; - } + } else + pngdec->ret = GST_FLOW_OK; } static void @@ -286,6 +284,8 @@ gst_pngdec_caps_create_and_set (GstPngDec * pngdec) png_set_palette_to_rgb (pngdec->png); } + png_set_interlace_handling (pngdec->png); + /* Update the info structure */ png_read_update_info (pngdec->png, pngdec->info); @@ -413,6 +413,8 @@ gst_pngdec_parse (GstVideoDecoder * decoder, GstVideoCodecFrame * frame, guint64 signature; gsize size; + GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame); + /* FIXME : The overhead of using scan_uint32 is massive */ size = gst_adapter_available (adapter); diff --git a/ext/pulse/Makefile.am b/ext/pulse/Makefile.am index a7dc7a3e6..e9e564f9f 100644 --- a/ext/pulse/Makefile.am +++ b/ext/pulse/Makefile.am @@ -4,6 +4,7 @@ libgstpulse_la_SOURCES = \ plugin.c \ pulsesink.c \ pulsesrc.c \ + pulsedevicemonitor.c \ pulseutil.c libgstpulse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(PULSE_CFLAGS) @@ -16,5 +17,6 @@ libgstpulse_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = \ pulsesink.h \ pulsesrc.h \ + pulsedevicemonitor.h \ pulseutil.h diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in index 18d2c12bd..c19fb1a02 100644 --- a/ext/pulse/Makefile.in +++ b/ext/pulse/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -159,6 +157,7 @@ libgstpulse_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libgstpulse_la_OBJECTS = libgstpulse_la-plugin.lo \ libgstpulse_la-pulsesink.lo libgstpulse_la-pulsesrc.lo \ + libgstpulse_la-pulsedevicemonitor.lo \ libgstpulse_la-pulseutil.lo libgstpulse_la_OBJECTS = $(am_libgstpulse_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) @@ -489,7 +488,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -563,6 +561,7 @@ libgstpulse_la_SOURCES = \ plugin.c \ pulsesink.c \ pulsesrc.c \ + pulsedevicemonitor.c \ pulseutil.c libgstpulse_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(PULSE_CFLAGS) @@ -575,6 +574,7 @@ libgstpulse_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) noinst_HEADERS = \ pulsesink.h \ pulsesrc.h \ + pulsedevicemonitor.h \ pulseutil.h all: all-am @@ -657,6 +657,7 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-plugin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulsedevicemonitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulsesink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulsesrc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstpulse_la-pulseutil.Plo@am__quote@ @@ -706,6 +707,13 @@ libgstpulse_la-pulsesrc.lo: pulsesrc.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 $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsesrc.lo `test -f 'pulsesrc.c' || echo '$(srcdir)/'`pulsesrc.c +libgstpulse_la-pulsedevicemonitor.lo: pulsedevicemonitor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulsedevicemonitor.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulsedevicemonitor.Tpo -c -o libgstpulse_la-pulsedevicemonitor.lo `test -f 'pulsedevicemonitor.c' || echo '$(srcdir)/'`pulsedevicemonitor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulsedevicemonitor.Tpo $(DEPDIR)/libgstpulse_la-pulsedevicemonitor.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pulsedevicemonitor.c' object='libgstpulse_la-pulsedevicemonitor.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 $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -c -o libgstpulse_la-pulsedevicemonitor.lo `test -f 'pulsedevicemonitor.c' || echo '$(srcdir)/'`pulsedevicemonitor.c + libgstpulse_la-pulseutil.lo: pulseutil.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpulse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpulse_la_CFLAGS) $(CFLAGS) -MT libgstpulse_la-pulseutil.lo -MD -MP -MF $(DEPDIR)/libgstpulse_la-pulseutil.Tpo -c -o libgstpulse_la-pulseutil.lo `test -f 'pulseutil.c' || echo '$(srcdir)/'`pulseutil.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpulse_la-pulseutil.Tpo $(DEPDIR)/libgstpulse_la-pulseutil.Plo diff --git a/ext/pulse/plugin.c b/ext/pulse/plugin.c index 505743b24..ec9c89ff8 100644 --- a/ext/pulse/plugin.c +++ b/ext/pulse/plugin.c @@ -27,6 +27,7 @@ #include "pulsesink.h" #include "pulsesrc.h" +#include "pulsedevicemonitor.h" GST_DEBUG_CATEGORY (pulse_debug); @@ -48,6 +49,10 @@ plugin_init (GstPlugin * plugin) GST_TYPE_PULSESRC)) return FALSE; + if (!gst_device_monitor_register (plugin, "pulsemonitor", + GST_RANK_PRIMARY, GST_TYPE_PULSE_DEVICE_MONITOR)) + return FALSE; + GST_DEBUG_CATEGORY_INIT (pulse_debug, "pulse", 0, "PulseAudio elements"); return TRUE; } diff --git a/ext/pulse/pulsedevicemonitor.c b/ext/pulse/pulsedevicemonitor.c new file mode 100644 index 000000000..83b88029d --- /dev/null +++ b/ext/pulse/pulsedevicemonitor.c @@ -0,0 +1,672 @@ +/* GStreamer + * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com> + * + * gstv4l2devicemonitor.c: V4l2 device probing and monitoring + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "pulsedevicemonitor.h" + +#include <string.h> + +#include <gst/gst.h> + +#include "pulsesrc.h" +#include "pulsesink.h" +#include "pulseutil.h" + + +GST_DEBUG_CATEGORY_EXTERN (pulse_debug); +#define GST_CAT_DEFAULT pulse_debug + + +static GstDevice *gst_pulse_device_new (guint id, + const gchar * device_name, GstCaps * caps, const gchar * internal_name, + GstPulseDeviceType type); + +G_DEFINE_TYPE (GstPulseDeviceMonitor, gst_pulse_device_monitor, + GST_TYPE_DEVICE_MONITOR); + +static void gst_pulse_device_monitor_finalize (GObject * object); +static void gst_pulse_device_monitor_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_pulse_device_monitor_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + + +static GList *gst_pulse_device_monitor_probe (GstDeviceMonitor * monitor); +static gboolean gst_pulse_device_monitor_start (GstDeviceMonitor * monitor); +static void gst_pulse_device_monitor_stop (GstDeviceMonitor * monitor); + +enum +{ + PROP_0, + PROP_SERVER, + PROP_CLIENT_NAME, + PROP_LAST +}; + + +static void +gst_pulse_device_monitor_class_init (GstPulseDeviceMonitorClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstDeviceMonitorClass *dm_class = GST_DEVICE_MONITOR_CLASS (klass); + gchar *client_name; + + gobject_class->set_property = gst_pulse_device_monitor_set_property; + gobject_class->get_property = gst_pulse_device_monitor_get_property; + gobject_class->finalize = gst_pulse_device_monitor_finalize; + + dm_class->probe = gst_pulse_device_monitor_probe; + dm_class->start = gst_pulse_device_monitor_start; + dm_class->stop = gst_pulse_device_monitor_stop; + + g_object_class_install_property (gobject_class, + PROP_SERVER, + g_param_spec_string ("server", "Server", + "The PulseAudio server to connect to", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + client_name = gst_pulse_client_name (); + g_object_class_install_property (gobject_class, + PROP_CLIENT_NAME, + g_param_spec_string ("client-name", "Client Name", + "The PulseAudio client_name_to_use", client_name, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_READY)); + g_free (client_name); + + gst_device_monitor_class_set_static_metadata (dm_class, + "PulseAudio Device Monitor", "Sink/Source/Audio", + "List and monitor PulseAudio source and sink devices", + "Olivier Crete <olivier.crete@collabora.com>"); +} + +static void +gst_pulse_device_monitor_init (GstPulseDeviceMonitor * self) +{ + self->client_name = gst_pulse_client_name (); +} + +static void +gst_pulse_device_monitor_finalize (GObject * object) +{ + GstPulseDeviceMonitor *self = GST_PULSE_DEVICE_MONITOR (object); + + g_free (self->client_name); + g_free (self->server); + + G_OBJECT_CLASS (gst_pulse_device_monitor_parent_class)->finalize (object); +} + + +static void +gst_pulse_device_monitor_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstPulseDeviceMonitor *self = GST_PULSE_DEVICE_MONITOR (object); + + switch (prop_id) { + case PROP_SERVER: + g_free (self->server); + self->server = g_value_dup_string (value); + break; + case PROP_CLIENT_NAME: + g_free (self->client_name); + if (!g_value_get_string (value)) { + GST_WARNING_OBJECT (self, + "Empty PulseAudio client name not allowed. " + "Resetting to default value"); + self->client_name = gst_pulse_client_name (); + } else + self->client_name = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_pulse_device_monitor_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstPulseDeviceMonitor *self = GST_PULSE_DEVICE_MONITOR (object); + + switch (prop_id) { + case PROP_SERVER: + g_value_set_string (value, self->server); + break; + case PROP_CLIENT_NAME: + g_value_set_string (value, self->client_name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +context_state_cb (pa_context * c, void *userdata) +{ + GstPulseDeviceMonitor *self = userdata; + + switch (pa_context_get_state (c)) { + case PA_CONTEXT_READY: + case PA_CONTEXT_TERMINATED: + case PA_CONTEXT_FAILED: + pa_threaded_mainloop_signal (self->mainloop, 0); + break; + + case PA_CONTEXT_UNCONNECTED: + case PA_CONTEXT_CONNECTING: + case PA_CONTEXT_AUTHORIZING: + case PA_CONTEXT_SETTING_NAME: + break; + } +} + +static GstDevice * +new_source (const pa_source_info * info) +{ + GstCaps *caps; + guint i; + + caps = gst_caps_new_empty (); + + for (i = 0; i < info->n_formats; i++) + gst_caps_append (caps, gst_pulse_format_info_to_caps (info->formats[i])); + + return gst_pulse_device_new (info->index, info->description, + caps, info->name, GST_PULSE_DEVICE_TYPE_SOURCE); +} + +static GstDevice * +new_sink (const pa_sink_info * info) +{ + GstCaps *caps; + guint i; + + caps = gst_caps_new_empty (); + + for (i = 0; i < info->n_formats; i++) + gst_caps_append (caps, gst_pulse_format_info_to_caps (info->formats[i])); + + return gst_pulse_device_new (info->index, info->description, + caps, info->name, GST_PULSE_DEVICE_TYPE_SINK); +} + +static void +get_source_info_cb (pa_context * context, + const pa_source_info * info, int eol, void *userdata) +{ + GstPulseDeviceMonitor *self = userdata; + GstDevice *dev; + + if (eol) { + pa_threaded_mainloop_signal (self->mainloop, 0); + return; + } + + dev = new_source (info); + + if (dev) + gst_device_monitor_device_add (GST_DEVICE_MONITOR (self), dev); +} + +static void +get_sink_info_cb (pa_context * context, + const pa_sink_info * info, int eol, void *userdata) +{ + GstPulseDeviceMonitor *self = userdata; + GstDevice *dev; + + if (eol) { + pa_threaded_mainloop_signal (self->mainloop, 0); + return; + } + + dev = new_sink (info); + + if (dev) + gst_device_monitor_device_add (GST_DEVICE_MONITOR (self), dev); +} + +static void +context_subscribe_cb (pa_context * context, pa_subscription_event_type_t type, + uint32_t idx, void *userdata) +{ + GstPulseDeviceMonitor *self = userdata; + GstDeviceMonitor *monitor = userdata; + + + if (!(type & (PA_SUBSCRIPTION_EVENT_SOURCE | PA_SUBSCRIPTION_EVENT_SINK))) + return; + + + if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == PA_SUBSCRIPTION_EVENT_NEW) { + /* Microphone in the source output has changed */ + + if (type & PA_SUBSCRIPTION_EVENT_SOURCE) + pa_context_get_source_info_by_index (context, idx, get_source_info_cb, + self); + else if (type & PA_SUBSCRIPTION_EVENT_SINK) + pa_context_get_sink_info_by_index (context, idx, get_sink_info_cb, self); + } else if ((type & PA_SUBSCRIPTION_EVENT_TYPE_MASK) == + PA_SUBSCRIPTION_EVENT_REMOVE) { + GstPulseDevice *dev = NULL; + GList *item; + + GST_OBJECT_LOCK (self); + for (item = monitor->devices; item; item = item->next) { + dev = item->data; + + if (dev->device_index == idx) { + gst_object_ref (dev); + break; + } + dev = NULL; + } + GST_OBJECT_UNLOCK (self); + + if (dev) { + gst_device_monitor_device_remove (GST_DEVICE_MONITOR (self), + GST_DEVICE (dev)); + gst_object_unref (dev); + } + } +} + +static void +get_source_info_list_cb (pa_context * context, const pa_source_info * info, + int eol, void *userdata) +{ + GList **devices = userdata; + + if (eol) + return; + + *devices = g_list_prepend (*devices, gst_object_ref_sink (new_source (info))); +} + +static void +get_sink_info_list_cb (pa_context * context, const pa_sink_info * info, + int eol, void *userdata) +{ + GList **devices = userdata; + + if (eol) + return; + + *devices = g_list_prepend (*devices, gst_object_ref_sink (new_sink (info))); +} + +static GList * +gst_pulse_device_monitor_probe (GstDeviceMonitor * monitor) +{ + GstPulseDeviceMonitor *self = GST_PULSE_DEVICE_MONITOR (monitor); + GList *devices = NULL; + pa_mainloop *m = NULL; + pa_context *c = NULL; + pa_operation *o; + + if (!(m = pa_mainloop_new ())) + return NULL; + + if (!(c = pa_context_new (pa_mainloop_get_api (m), self->client_name))) { + GST_ERROR_OBJECT (self, "Failed to create context"); + goto failed; + } + + if (pa_context_connect (c, self->server, 0, NULL) < 0) { + GST_ERROR_OBJECT (self, "Failed to connect: %s", + pa_strerror (pa_context_errno (self->context))); + goto failed; + } + + for (;;) { + pa_context_state_t state; + + state = pa_context_get_state (c); + + if (!PA_CONTEXT_IS_GOOD (state)) { + GST_ELEMENT_ERROR (self, RESOURCE, FAILED, ("Failed to connect: %s", + pa_strerror (pa_context_errno (c))), (NULL)); + goto failed; + } + + if (state == PA_CONTEXT_READY) + break; + + /* Wait until the context is ready */ + if (pa_mainloop_iterate (m, TRUE, NULL) < 0) + goto failed; + + } + GST_DEBUG_OBJECT (self, "connected"); + + o = pa_context_get_sink_info_list (c, get_sink_info_list_cb, &devices); + while (pa_operation_get_state (o) == PA_OPERATION_RUNNING && + pa_operation_get_state (o) == PA_OPERATION_RUNNING) { + if (pa_mainloop_iterate (m, TRUE, NULL) < 0) + break; + } + pa_operation_unref (o); + + o = pa_context_get_source_info_list (c, get_source_info_list_cb, &devices); + while (pa_operation_get_state (o) == PA_OPERATION_RUNNING && + pa_operation_get_state (o) == PA_OPERATION_RUNNING) { + if (pa_mainloop_iterate (m, TRUE, NULL) < 0) + break; + } + pa_operation_unref (o); + + pa_context_disconnect (c); + pa_mainloop_free (m); + + return devices; + +failed: + + return NULL; +} + +static gboolean +gst_pulse_device_monitor_start (GstDeviceMonitor * monitor) +{ + GstPulseDeviceMonitor *self = GST_PULSE_DEVICE_MONITOR (monitor); + pa_operation *initial_operation; + + if (!(self->mainloop = pa_threaded_mainloop_new ())) { + GST_ERROR_OBJECT (self, "Could not create pulseaudio mainloop"); + goto mainloop_failed; + } + if (pa_threaded_mainloop_start (self->mainloop) < 0) { + GST_ERROR_OBJECT (self, "Could not start pulseaudio mainloop"); + pa_threaded_mainloop_free (self->mainloop); + self->mainloop = NULL; + goto mainloop_failed; + } + + pa_threaded_mainloop_lock (self->mainloop); + + if (!(self->context = + pa_context_new (pa_threaded_mainloop_get_api (self->mainloop), + self->client_name))) { + GST_ERROR_OBJECT (self, "Failed to create context"); + goto unlock_and_fail; + } + + pa_context_set_state_callback (self->context, context_state_cb, self); + pa_context_set_subscribe_callback (self->context, context_subscribe_cb, self); + + + GST_DEBUG_OBJECT (self, "connect to server %s", GST_STR_NULL (self->server)); + + if (pa_context_connect (self->context, self->server, 0, NULL) < 0) { + GST_ERROR_OBJECT (self, "Failed to connect: %s", + pa_strerror (pa_context_errno (self->context))); + goto unlock_and_fail; + } + + for (;;) { + pa_context_state_t state; + + state = pa_context_get_state (self->context); + + if (!PA_CONTEXT_IS_GOOD (state)) { + GST_ERROR_OBJECT (self, "Failed to connect: %s", + pa_strerror (pa_context_errno (self->context))); + goto unlock_and_fail; + } + + if (state == PA_CONTEXT_READY) + break; + + /* Wait until the context is ready */ + pa_threaded_mainloop_wait (self->mainloop); + } + GST_DEBUG_OBJECT (self, "connected"); + + pa_context_subscribe (self->context, + PA_SUBSCRIPTION_MASK_SOURCE | PA_SUBSCRIPTION_MASK_SINK, NULL, NULL); + + initial_operation = pa_context_get_source_info_list (self->context, + get_source_info_cb, self); + while (pa_operation_get_state (initial_operation) == PA_OPERATION_RUNNING) { + if (!PA_CONTEXT_IS_GOOD (pa_context_get_state ((self->context)))) + goto cancel_and_fail; + + pa_threaded_mainloop_wait (self->mainloop); + } + pa_operation_unref (initial_operation); + + initial_operation = pa_context_get_sink_info_list (self->context, + get_sink_info_cb, self); + if (!initial_operation) + goto unlock_and_fail; + while (pa_operation_get_state (initial_operation) == PA_OPERATION_RUNNING) { + if (!PA_CONTEXT_IS_GOOD (pa_context_get_state ((self->context)))) + goto cancel_and_fail; + + pa_threaded_mainloop_wait (self->mainloop); + } + pa_operation_unref (initial_operation); + + pa_threaded_mainloop_unlock (self->mainloop); + + return TRUE; + +unlock_and_fail: + pa_threaded_mainloop_unlock (self->mainloop); + gst_pulse_device_monitor_stop (monitor); + return FALSE; + +mainloop_failed: + return FALSE; + +cancel_and_fail: + pa_operation_cancel (initial_operation); + pa_operation_unref (initial_operation); + goto unlock_and_fail; +} + +static void +gst_pulse_device_monitor_stop (GstDeviceMonitor * monitor) +{ + GstPulseDeviceMonitor *self = GST_PULSE_DEVICE_MONITOR (monitor); + + pa_threaded_mainloop_stop (self->mainloop); + + if (self->context) { + pa_context_disconnect (self->context); + + /* Make sure we don't get any further callbacks */ + pa_context_set_state_callback (self->context, NULL, NULL); + pa_context_set_subscribe_callback (self->context, NULL, NULL); + + pa_context_unref (self->context); + self->context = NULL; + } + + pa_threaded_mainloop_free (self->mainloop); + self->mainloop = NULL; +} + +enum +{ + PROP_INTERNAL_NAME = 1, +}; + +G_DEFINE_TYPE (GstPulseDevice, gst_pulse_device, GST_TYPE_DEVICE); + +static void gst_pulse_device_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_pulse_device_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_pulse_device_finalize (GObject * object); +static GstElement *gst_pulse_device_create_element (GstDevice * device, + const gchar * name); +static gboolean gst_pulse_device_reconfigure_element (GstDevice * device, + GstElement * element); + +static void +gst_pulse_device_class_init (GstPulseDeviceClass * klass) +{ + GstDeviceClass *dev_class = GST_DEVICE_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + dev_class->create_element = gst_pulse_device_create_element; + dev_class->reconfigure_element = gst_pulse_device_reconfigure_element; + + object_class->get_property = gst_pulse_device_get_property; + object_class->set_property = gst_pulse_device_set_property; + object_class->finalize = gst_pulse_device_finalize; + + g_object_class_install_property (object_class, PROP_INTERNAL_NAME, + g_param_spec_string ("internal-name", "Internal PulseAudio device name", + "The internal name of the PulseAudio device", "", + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); +} + +static void +gst_pulse_device_init (GstPulseDevice * device) +{ +} + +static void +gst_pulse_device_finalize (GObject * object) +{ + GstPulseDevice *device = GST_PULSE_DEVICE (object); + + g_free (device->internal_name); + + G_OBJECT_CLASS (gst_pulse_device_parent_class)->finalize (object); +} + +static GstElement * +gst_pulse_device_create_element (GstDevice * device, const gchar * name) +{ + GstPulseDevice *pulse_dev = GST_PULSE_DEVICE (device); + GstElement *elem; + + elem = gst_element_factory_make (pulse_dev->element, name); + g_object_set (elem, "device", pulse_dev->internal_name, NULL); + + return elem; +} + +static gboolean +gst_pulse_device_reconfigure_element (GstDevice * device, GstElement * element) +{ + GstPulseDevice *pulse_dev = GST_PULSE_DEVICE (device); + + if (!strcmp (pulse_dev->element, "pulsesrc")) { + if (!GST_IS_PULSESRC (element)) + return FALSE; + } else if (!strcmp (pulse_dev->element, "pulsesink")) { + if (!GST_IS_PULSESINK (element)) + return FALSE; + } else { + g_assert_not_reached (); + } + + g_object_set (element, "device", pulse_dev->internal_name, NULL); + + return TRUE; +} + +static GstDevice * +gst_pulse_device_new (guint device_index, const gchar * device_name, + GstCaps * caps, const gchar * internal_name, GstPulseDeviceType type) +{ + GstPulseDevice *gstdev; + const gchar *element; + const gchar *klass; + + g_return_val_if_fail (device_name, NULL); + g_return_val_if_fail (internal_name, NULL); + g_return_val_if_fail (caps, NULL); + + + switch (type) { + case GST_PULSE_DEVICE_TYPE_SOURCE: + element = "pulsesrc"; + klass = "Audio/Source"; + break; + case GST_PULSE_DEVICE_TYPE_SINK: + element = "pulsesink"; + klass = "Audio/Sink"; + break; + default: + g_assert_not_reached (); + break; + } + + + gstdev = g_object_new (GST_TYPE_PULSE_DEVICE, + "display-name", device_name, "caps", caps, "klass", klass, + "internal-name", internal_name, NULL); + + gstdev->device_index = device_index; + gstdev->element = element; + + return GST_DEVICE (gstdev); +} + + +static void +gst_pulse_device_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstPulseDevice *device; + + device = GST_PULSE_DEVICE_CAST (object); + + switch (prop_id) { + case PROP_INTERNAL_NAME: + g_value_set_string (value, device->internal_name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + +static void +gst_pulse_device_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstPulseDevice *device; + + device = GST_PULSE_DEVICE_CAST (object); + + switch (prop_id) { + case PROP_INTERNAL_NAME: + device->internal_name = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} diff --git a/ext/pulse/pulsedevicemonitor.h b/ext/pulse/pulsedevicemonitor.h new file mode 100644 index 000000000..9d9070e23 --- /dev/null +++ b/ext/pulse/pulsedevicemonitor.h @@ -0,0 +1,97 @@ +/* GStreamer + * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com> + * + * pulsedevicemonitor.h: Device probing and monitoring + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_PULSE_DEVICE_MONITOR_H__ +#define __GST_PULSE_DEVICE_MONITOR_H__ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <pulse/pulseaudio.h> +#include <pulse/thread-mainloop.h> + +#include <gst/gst.h> + +G_BEGIN_DECLS + +typedef struct _GstPulseDeviceMonitor GstPulseDeviceMonitor; +typedef struct _GstPulseDeviceMonitorPrivate GstPulseDeviceMonitorPrivate; +typedef struct _GstPulseDeviceMonitorClass GstPulseDeviceMonitorClass; + +#define GST_TYPE_PULSE_DEVICE_MONITOR (gst_pulse_device_monitor_get_type()) +#define GST_IS_PULSE_DEVICE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PULSE_DEVICE_MONITOR)) +#define GST_IS_PULSE_DEVICE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PULSE_DEVICE_MONITOR)) +#define GST_PULSE_DEVICE_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PULSE_DEVICE_MONITOR, GstPulseDeviceMonitorClass)) +#define GST_PULSE_DEVICE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PULSE_DEVICE_MONITOR, GstPulseDeviceMonitor)) +#define GST_PULSE_DEVICE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE_MONITOR, GstPulseDeviceMonitorClass)) +#define GST_PULSE_DEVICE_MONITOR_CAST(obj) ((GstPulseDeviceMonitor *)(obj)) + +struct _GstPulseDeviceMonitor { + GstDeviceMonitor parent; + + gchar *server; + gchar *client_name; + + pa_threaded_mainloop *mainloop; + pa_context *context; +}; + +typedef enum { + GST_PULSE_DEVICE_TYPE_SOURCE, + GST_PULSE_DEVICE_TYPE_SINK +} GstPulseDeviceType; + +struct _GstPulseDeviceMonitorClass { + GstDeviceMonitorClass parent_class; +}; + +GType gst_pulse_device_monitor_get_type (void); + + +typedef struct _GstPulseDevice GstPulseDevice; +typedef struct _GstPulseDevicePrivate GstPulseDevicePrivate; +typedef struct _GstPulseDeviceClass GstPulseDeviceClass; + +#define GST_TYPE_PULSE_DEVICE (gst_pulse_device_get_type()) +#define GST_IS_PULSE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PULSE_DEVICE)) +#define GST_IS_PULSE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PULSE_DEVICE)) +#define GST_PULSE_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PULSE_DEVICE, GstPulseDeviceClass)) +#define GST_PULSE_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PULSE_DEVICE, GstPulseDevice)) +#define GST_PULSE_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE, GstPulseDeviceClass)) +#define GST_PULSE_DEVICE_CAST(obj) ((GstPulseDevice *)(obj)) + +struct _GstPulseDevice { + GstDevice parent; + + guint device_index; + gchar *internal_name; + const gchar *element; +}; + +struct _GstPulseDeviceClass { + GstDeviceClass parent_class; +}; + +GType gst_pulse_device_get_type (void); + +#endif /* __GST_PULSE_DEVICE_MONITOR_H__ */ diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c index d5defeee9..e580afce2 100644 --- a/ext/pulse/pulsesink.c +++ b/ext/pulse/pulsesink.c @@ -1899,7 +1899,7 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstPulseSink:client-name + * GstPulseSink:client-name: * * The PulseAudio client name to use. */ @@ -1913,7 +1913,7 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) g_free (clientname); /** - * GstPulseSink:stream-properties + * GstPulseSink:stream-properties: * * List of pulseaudio stream properties. A list of defined properties can be * found in the <ulink url="http://0pointer.de/lennart/projects/pulseaudio/doxygen/proplist_8h.html">pulseaudio api docs</ulink>. @@ -1926,8 +1926,6 @@ gst_pulsesink_class_init (GstPulseSinkClass * klass) * g_object_set (pulse, "stream-properties", props, NULL); * gst_structure_free * ]| - * - * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_STREAM_PROPERTIES, @@ -2026,116 +2024,6 @@ done: pa_threaded_mainloop_signal (mainloop, 0); } -static gboolean -gst_pulse_format_info_int_prop_to_value (pa_format_info * format, - const char *key, GValue * value) -{ - GValue v = { 0, }; - int i; - int *a, n; - int min, max; - - if (pa_format_info_get_prop_int (format, key, &i) == 0) { - g_value_init (value, G_TYPE_INT); - g_value_set_int (value, i); - - } else if (pa_format_info_get_prop_int_array (format, key, &a, &n) == 0) { - g_value_init (value, GST_TYPE_LIST); - g_value_init (&v, G_TYPE_INT); - - for (i = 0; i < n; i++) { - g_value_set_int (&v, a[i]); - gst_value_list_append_value (value, &v); - } - - pa_xfree (a); - - } else if (pa_format_info_get_prop_int_range (format, key, &min, &max) == 0) { - g_value_init (value, GST_TYPE_INT_RANGE); - gst_value_set_int_range (value, min, max); - - } else { - /* Property not available or is not an int type */ - return FALSE; - } - - return TRUE; -} - -static GstCaps * -gst_pulse_format_info_to_caps (pa_format_info * format) -{ - GstCaps *ret = NULL; - GValue v = { 0, }; - pa_sample_spec ss; - - switch (format->encoding) { - case PA_ENCODING_PCM:{ - char *tmp = NULL; - - pa_format_info_to_sample_spec (format, &ss, NULL); - - if (pa_format_info_get_prop_string (format, - PA_PROP_FORMAT_SAMPLE_FORMAT, &tmp)) { - /* No specific sample format means any sample format */ - ret = gst_caps_from_string (_PULSE_CAPS_PCM); - goto out; - - } else if (ss.format == PA_SAMPLE_ALAW) { - ret = gst_caps_from_string (_PULSE_CAPS_ALAW); - - } else if (ss.format == PA_SAMPLE_ULAW) { - ret = gst_caps_from_string (_PULSE_CAPS_MP3); - - } else { - /* Linear PCM format */ - const char *sformat = - gst_pulse_sample_format_to_caps_format (ss.format); - - ret = gst_caps_from_string (_PULSE_CAPS_LINEAR); - - if (sformat) - gst_caps_set_simple (ret, "format", G_TYPE_STRING, NULL); - } - - pa_xfree (tmp); - break; - } - - case PA_ENCODING_AC3_IEC61937: - ret = gst_caps_from_string (_PULSE_CAPS_AC3); - break; - - case PA_ENCODING_EAC3_IEC61937: - ret = gst_caps_from_string (_PULSE_CAPS_EAC3); - break; - - case PA_ENCODING_DTS_IEC61937: - ret = gst_caps_from_string (_PULSE_CAPS_DTS); - break; - - case PA_ENCODING_MPEG_IEC61937: - ret = gst_caps_from_string (_PULSE_CAPS_MP3); - break; - - default: - GST_WARNING ("Found a PA format that we don't support yet"); - goto out; - } - - if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_RATE, &v)) - gst_caps_set_value (ret, "rate", &v); - - g_value_unset (&v); - - if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_CHANNELS, - &v)) - gst_caps_set_value (ret, "channels", &v); - -out: - return ret; -} - /* Call with mainloop lock held */ static pa_stream * gst_pulsesink_create_probe_stream (GstPulseSink * psink, diff --git a/ext/pulse/pulsesrc.c b/ext/pulse/pulsesrc.c index 278679464..7fc54d90d 100644 --- a/ext/pulse/pulsesrc.c +++ b/ext/pulse/pulsesrc.c @@ -184,7 +184,7 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) g_free (clientname); /** - * GstPulseSrc:stream-properties + * GstPulseSrc:stream-properties: * * List of pulseaudio stream properties. A list of defined properties can be * found in the <ulink href="http://0pointer.de/lennart/projects/pulseaudio/doxygen/proplist_8h.html">pulseaudio api docs</ulink>. @@ -197,8 +197,6 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) * g_object_set (pulse, "stream-properties", props, NULL); * gst_structure_free (props); * ]| - * - * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_STREAM_PROPERTIES, @@ -206,11 +204,9 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) "list of pulseaudio stream properties", GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstPulseSrc:source-output-index + * GstPulseSrc:source-output-index: * * The index of the PulseAudio source output corresponding to this element. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_SOURCE_OUTPUT_INDEX, @@ -227,7 +223,7 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) gst_static_pad_template_get (&pad_template)); /** - * GstPulseSrc:volume + * GstPulseSrc:volume: * * The volume of the record stream. */ @@ -238,7 +234,7 @@ gst_pulsesrc_class_init (GstPulseSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstPulseSrc:mute + * GstPulseSrc:mute: * * Whether the stream is muted or not. */ diff --git a/ext/pulse/pulseutil.c b/ext/pulse/pulseutil.c index 89ed1068f..7bbc70b26 100644 --- a/ext/pulse/pulseutil.c +++ b/ext/pulse/pulseutil.c @@ -375,3 +375,113 @@ gst_pulse_make_proplist (const GstStructure * properties) gst_structure_foreach (properties, make_proplist_item, proplist); return proplist; } + +static gboolean +gst_pulse_format_info_int_prop_to_value (pa_format_info * format, + const char *key, GValue * value) +{ + GValue v = { 0, }; + int i; + int *a, n; + int min, max; + + if (pa_format_info_get_prop_int (format, key, &i) == 0) { + g_value_init (value, G_TYPE_INT); + g_value_set_int (value, i); + + } else if (pa_format_info_get_prop_int_array (format, key, &a, &n) == 0) { + g_value_init (value, GST_TYPE_LIST); + g_value_init (&v, G_TYPE_INT); + + for (i = 0; i < n; i++) { + g_value_set_int (&v, a[i]); + gst_value_list_append_value (value, &v); + } + + pa_xfree (a); + + } else if (pa_format_info_get_prop_int_range (format, key, &min, &max) == 0) { + g_value_init (value, GST_TYPE_INT_RANGE); + gst_value_set_int_range (value, min, max); + + } else { + /* Property not available or is not an int type */ + return FALSE; + } + + return TRUE; +} + +GstCaps * +gst_pulse_format_info_to_caps (pa_format_info * format) +{ + GstCaps *ret = NULL; + GValue v = { 0, }; + pa_sample_spec ss; + + switch (format->encoding) { + case PA_ENCODING_PCM:{ + char *tmp = NULL; + + pa_format_info_to_sample_spec (format, &ss, NULL); + + if (pa_format_info_get_prop_string (format, + PA_PROP_FORMAT_SAMPLE_FORMAT, &tmp)) { + /* No specific sample format means any sample format */ + ret = gst_caps_from_string (_PULSE_CAPS_PCM); + goto out; + + } else if (ss.format == PA_SAMPLE_ALAW) { + ret = gst_caps_from_string (_PULSE_CAPS_ALAW); + + } else if (ss.format == PA_SAMPLE_ULAW) { + ret = gst_caps_from_string (_PULSE_CAPS_MULAW); + + } else { + /* Linear PCM format */ + const char *sformat = + gst_pulse_sample_format_to_caps_format (ss.format); + + ret = gst_caps_from_string (_PULSE_CAPS_LINEAR); + + if (sformat) + gst_caps_set_simple (ret, "format", G_TYPE_STRING, NULL); + } + + pa_xfree (tmp); + break; + } + + case PA_ENCODING_AC3_IEC61937: + ret = gst_caps_from_string (_PULSE_CAPS_AC3); + break; + + case PA_ENCODING_EAC3_IEC61937: + ret = gst_caps_from_string (_PULSE_CAPS_EAC3); + break; + + case PA_ENCODING_DTS_IEC61937: + ret = gst_caps_from_string (_PULSE_CAPS_DTS); + break; + + case PA_ENCODING_MPEG_IEC61937: + ret = gst_caps_from_string (_PULSE_CAPS_MP3); + break; + + default: + GST_WARNING ("Found a PA format that we don't support yet"); + goto out; + } + + if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_RATE, &v)) + gst_caps_set_value (ret, "rate", &v); + + g_value_unset (&v); + + if (gst_pulse_format_info_int_prop_to_value (format, PA_PROP_FORMAT_CHANNELS, + &v)) + gst_caps_set_value (ret, "channels", &v); + +out: + return ret; +} diff --git a/ext/pulse/pulseutil.h b/ext/pulse/pulseutil.h index d558afac2..3b7293f0e 100644 --- a/ext/pulse/pulseutil.h +++ b/ext/pulse/pulseutil.h @@ -88,4 +88,6 @@ void gst_pulse_cvolume_from_linear (pa_cvolume *v, unsigned channels, gdouble vo pa_proplist *gst_pulse_make_proplist (const GstStructure *properties); +GstCaps * gst_pulse_format_info_to_caps (pa_format_info * format); + #endif diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in index 5ceedcec1..61f7c934d 100644 --- a/ext/raw1394/Makefile.in +++ b/ext/raw1394/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -494,7 +492,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c index b9e3232d8..41a57e7f6 100644 --- a/ext/raw1394/gstdv1394src.c +++ b/ext/raw1394/gstdv1394src.c @@ -201,12 +201,10 @@ gst_dv1394src_class_init (GstDV1394SrcClass * klass) "like 0xhhhhhhhhhhhhhhhh. (0 = no guid)", 0, G_MAXUINT64, DEFAULT_GUID, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstDV1394Src:device-name + * GstDV1394Src:device-name: * * Descriptive name of the currently opened device - * - * Since: 0.10.7 - **/ + */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEVICE_NAME, g_param_spec_string ("device-name", "device name", "user-friendly name of the device", "Default", diff --git a/ext/raw1394/gsthdv1394src.c b/ext/raw1394/gsthdv1394src.c index 0bfa485c5..f81f70f9d 100644 --- a/ext/raw1394/gsthdv1394src.c +++ b/ext/raw1394/gsthdv1394src.c @@ -152,12 +152,10 @@ gst_hdv1394src_class_init (GstHDV1394SrcClass * klass) "like 0xhhhhhhhhhhhhhhhh. (0 = no guid)", 0, G_MAXUINT64, DEFAULT_GUID, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstHDV1394Src:device-name + * GstHDV1394Src:device-name: * * Descriptive name of the currently opened device - * - * Since: 0.10.7 - **/ + */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEVICE_NAME, g_param_spec_string ("device-name", "device name", "user-friendly name of the device", "Default", @@ -562,6 +560,22 @@ gst_hdv1394src_start (GstBaseSrc * bsrc) raw1394_set_userdata (src->handle, src); raw1394_set_bus_reset_handler (src->handle, gst_hdv1394src_bus_reset); + { + nodeid_t m_node = (src->avc_node | 0xffc0); + int m_channel = -1; + int m_bandwidth = 0; + int m_outputPort = -1; + int m_inputPort = -1; + + m_channel = iec61883_cmp_connect (src->handle, m_node, &m_outputPort, + raw1394_get_local_id (src->handle), &m_inputPort, &m_bandwidth); + + if (m_channel >= 0) { + src->channel = m_channel; + } + } + + if ((src->iec61883mpeg2 = iec61883_mpeg2_recv_init (src->handle, gst_hdv1394src_iec61883_receive, src)) == NULL) diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in index c71acaa7b..ea32c4be7 100644 --- a/ext/shout2/Makefile.in +++ b/ext/shout2/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c index cc58453ac..613bc7ad6 100644 --- a/ext/shout2/gstshout2.c +++ b/ext/shout2/gstshout2.c @@ -19,6 +19,22 @@ * Boston, MA 02110-1301, USA. */ +/** + * SECTION:element-shout2send + * + * shout2send pushes a media stream to an Icecast server + * + * <refsect2> + * <title>Example launch line</title> + * |[ + * gst-launch uridecodebin uri=file:///path/to/audiofile ! audioconvert ! vorbisenc ! oggmux ! shout2send mount=/stream.ogg port=8000 username=source password=somepassword ip=server_IP_address_or_hostname + * ]| This pipeline demuxes, decodes, re-encodes and re-muxes an audio + * media file into oggvorbis and sends the resulting stream to an Icecast + * server. Properties mount, port, username and password are all server-config + * dependent. + * </refsect2> + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -35,14 +51,14 @@ GST_DEBUG_CATEGORY_STATIC (shout2_debug); enum { - SIGNAL_CONNECTION_PROBLEM, /* 0.11 FIXME: remove this */ + SIGNAL_CONNECTION_PROBLEM, /* FIXME 2.0: remove this */ LAST_SIGNAL }; enum { ARG_0, - ARG_IP, /* the ip of the server */ + ARG_IP, /* the IP address or hostname of the server */ ARG_PORT, /* the encoder port number on the server */ ARG_PASSWORD, /* the encoder password on the server */ ARG_USERNAME, /* the encoder username on the server */ @@ -54,7 +70,7 @@ enum ARG_PROTOCOL, /* Protocol to connect with */ ARG_MOUNT, /* mountpoint of stream (icecast only) */ - ARG_URL /* Url of stream (I'm guessing) */ + ARG_URL /* the stream's homepage URL */ }; #define DEFAULT_IP "127.0.0.1" @@ -142,8 +158,9 @@ gst_shout2send_class_init (GstShout2sendClass * klass) gobject_class->get_property = gst_shout2send_get_property; gobject_class->finalize = (GObjectFinalizeFunc) gst_shout2send_finalize; + /* FIXME: 2.0 Should probably change this prop name to "server" */ g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_IP, - g_param_spec_string ("ip", "ip", "ip", DEFAULT_IP, + g_param_spec_string ("ip", "ip", "IP address or hostname", DEFAULT_IP, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PORT, g_param_spec_int ("port", "port", "port", 1, G_MAXUSHORT, DEFAULT_PORT, @@ -187,8 +204,8 @@ gst_shout2send_class_init (GstShout2sendClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_URL, - g_param_spec_string ("url", "url", "url", DEFAULT_URL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_param_spec_string ("url", "url", "the stream's homepage URL", + DEFAULT_URL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /* signals */ gst_shout2send_signals[SIGNAL_CONNECTION_PROBLEM] = @@ -238,9 +255,9 @@ gst_shout2send_init (GstShout2send * shout2send) shout2send->protocol = DEFAULT_PROTOCOL; shout2send->ispublic = DEFAULT_PUBLIC; + shout2send->format = -1; shout2send->tags = gst_tag_list_new_empty (); shout2send->conn = NULL; - shout2send->audio_format = SHOUT_FORMAT_VORBIS; shout2send->connected = FALSE; shout2send->songmetadata = NULL; shout2send->songartist = NULL; @@ -365,8 +382,8 @@ gst_shout2send_event (GstBaseSink * sink, GstEvent * event) switch (GST_EVENT_TYPE (event)) { case GST_EVENT_TAG:{ - /* vorbis audio doesnt need metadata setting on the icecast level, only mp3 */ - if (shout2send->tags && shout2send->audio_format == SHOUT_FORMAT_MP3) { + /* vorbis audio doesn't need metadata setting on the icecast level, only mp3 */ + if (shout2send->tags && shout2send->format == SHOUT_FORMAT_MP3) { GstTagList *list; gst_event_parse_tag (event, &list); @@ -433,10 +450,8 @@ gst_shout2send_start (GstBaseSink * basesink) if (shout_set_protocol (sink->conn, proto) != SHOUTERR_SUCCESS) goto set_failed; - /* --- FIXME: shout requires an ip, and fails if it is given a host. */ - /* may want to put convert_to_ip(shout2send->ip) here */ cur_prop = "ip"; - GST_DEBUG_OBJECT (sink, "setting ip: %s", sink->ip); + GST_DEBUG_OBJECT (sink, "setting IP/hostname: %s", sink->ip); if (shout_set_host (sink->conn, sink->ip) != SHOUTERR_SUCCESS) goto set_failed; @@ -501,19 +516,15 @@ set_failed: } } -static gboolean +static GstFlowReturn gst_shout2send_connect (GstShout2send * sink) { - const char *format = - (sink->audio_format == SHOUT_FORMAT_VORBIS) ? "vorbis" : - ((sink->audio_format == SHOUT_FORMAT_MP3) ? "mp3" : "unknown"); -#ifdef SHOUT_FORMAT_WEBM - if (sink->audio_format == SHOUT_FORMAT_WEBM) - format = "webm"; -#endif - GST_DEBUG_OBJECT (sink, "Connection format is: %s", format); + GST_DEBUG_OBJECT (sink, "Connection format is: %d", sink->format); - if (shout_set_format (sink->conn, sink->audio_format) != SHOUTERR_SUCCESS) + if (sink->format == -1) + goto no_caps; + + if (shout_set_format (sink->conn, sink->format) != SHOUTERR_SUCCESS) goto could_not_set_format; if (shout_open (sink->conn) != SHOUTERR_SUCCESS) @@ -533,14 +544,21 @@ gst_shout2send_connect (GstShout2send * sink) shout_metadata_free (pmetadata); } - return TRUE; + return GST_FLOW_OK; /* ERRORS */ +no_caps: + { + GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL), + ("No input caps received.")); + return GST_FLOW_NOT_NEGOTIATED; + } + could_not_set_format: { GST_ELEMENT_ERROR (sink, LIBRARY, SETTINGS, (NULL), ("Error setting connection format: %s", shout_get_error (sink->conn))); - return FALSE; + return GST_FLOW_ERROR; } could_not_connect: @@ -550,7 +568,7 @@ could_not_connect: ("shout_open() failed: err=%s", shout_get_error (sink->conn))); g_signal_emit (sink, gst_shout2send_signals[SIGNAL_CONNECTION_PROBLEM], 0, shout_get_errno (sink->conn)); - return FALSE; + return GST_FLOW_ERROR; } } @@ -572,6 +590,7 @@ gst_shout2send_stop (GstBaseSink * basesink) } sink->connected = FALSE; + sink->format = -1; return TRUE; } @@ -608,16 +627,18 @@ gst_shout2send_render (GstBaseSink * basesink, GstBuffer * buf) GstShout2send *sink; glong ret; gint delay; - GstFlowReturn fret; + GstFlowReturn fret = GST_FLOW_OK; GstMapInfo map; sink = GST_SHOUT2SEND (basesink); - /* presumably we connect here because we need to know the format before - * we can set up the connection, which we don't know yet in _start() */ + /* we connect here because we need to know the format before we can set up + * the connection, which we don't know yet in _start(), and also because we + * don't want to block the application thread */ if (!sink->connected) { - if (!gst_shout2send_connect (sink)) - return GST_FLOW_ERROR; + fret = gst_shout2send_connect (sink); + if (fret != GST_FLOW_OK) + goto done; } delay = shout_delay (sink->conn); @@ -629,7 +650,7 @@ gst_shout2send_render (GstBaseSink * basesink, GstBuffer * buf) fret = gst_base_sink_wait_preroll (basesink); if (fret != GST_FLOW_OK) - return fret; + goto done; } } else { GST_LOG_OBJECT (sink, "we're %d msec late", -delay); @@ -642,7 +663,9 @@ gst_shout2send_render (GstBaseSink * basesink, GstBuffer * buf) if (ret != SHOUTERR_SUCCESS) goto send_error; - return GST_FLOW_OK; +done: + + return fret; /* ERRORS */ send_error: @@ -708,7 +731,7 @@ gst_shout2send_set_property (GObject * object, guint prop_id, g_free (shout2send->mount); shout2send->mount = g_strdup (g_value_get_string (value)); break; - case ARG_URL: /* Url of the stream (I'm guessing) */ + case ARG_URL: /* the stream's homepage URL */ if (shout2send->url) g_free (shout2send->url); shout2send->url = g_strdup (g_value_get_string (value)); @@ -758,7 +781,7 @@ gst_shout2send_get_property (GObject * object, guint prop_id, case ARG_MOUNT: /* mountpoint of stream (icecast only) */ g_value_set_string (value, shout2send->mount); break; - case ARG_URL: /* Url of stream (I'm guessing) */ + case ARG_URL: /* the stream's homepage URL */ g_value_set_string (value, shout2send->url); break; default: @@ -781,12 +804,12 @@ gst_shout2send_setcaps (GstBaseSink * basesink, GstCaps * caps) GST_DEBUG_OBJECT (shout2send, "mimetype of caps given is: %s", mimetype); if (!strcmp (mimetype, "audio/mpeg")) { - shout2send->audio_format = SHOUT_FORMAT_MP3; - } else if (!strcmp (mimetype, "application/ogg")) { - shout2send->audio_format = SHOUT_FORMAT_VORBIS; + shout2send->format = SHOUT_FORMAT_MP3; + } else if (g_str_has_suffix (mimetype, "/ogg")) { + shout2send->format = SHOUT_FORMAT_OGG; #ifdef SHOUT_FORMAT_WEBM - } else if (!strcmp (mimetype, "video/webm")) { - shout2send->audio_format = SHOUT_FORMAT_WEBM; + } else if (g_str_has_suffix (mimetype, "/webm")) { + shout2send->format = SHOUT_FORMAT_WEBM; #endif } else { ret = FALSE; diff --git a/ext/shout2/gstshout2.h b/ext/shout2/gstshout2.h index eb7b2d933..2222bacf1 100644 --- a/ext/shout2/gstshout2.h +++ b/ext/shout2/gstshout2.h @@ -60,7 +60,7 @@ struct _GstShout2send { gchar *songmetadata; gchar *songartist; gchar *songtitle; - guint16 audio_format; + int format; GstTagList* tags; }; diff --git a/ext/soup/Makefile.am b/ext/soup/Makefile.am index e34fe8786..c1bd73571 100644 --- a/ext/soup/Makefile.am +++ b/ext/soup/Makefile.am @@ -1,6 +1,6 @@ plugin_LTLIBRARIES = libgstsouphttpsrc.la -libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c +libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsouputils.c gstsoup.c libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) $(SOUP_CFLAGS) \ @@ -10,4 +10,4 @@ libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsouphttpsrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) -noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h +noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h gstsouputils.h diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in index 9017a3fcf..cc397cb07 100644 --- a/ext/soup/Makefile.in +++ b/ext/soup/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -159,6 +157,7 @@ libgstsouphttpsrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ am_libgstsouphttpsrc_la_OBJECTS = \ libgstsouphttpsrc_la-gstsouphttpsrc.lo \ libgstsouphttpsrc_la-gstsouphttpclientsink.lo \ + libgstsouphttpsrc_la-gstsouputils.lo \ libgstsouphttpsrc_la-gstsoup.lo libgstsouphttpsrc_la_OBJECTS = $(am_libgstsouphttpsrc_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) @@ -489,7 +488,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -559,7 +557,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstsouphttpsrc.la -libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsoup.c +libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsouputils.c gstsoup.c libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) $(SOUP_CFLAGS) \ -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_26 \ @@ -568,7 +566,7 @@ libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS) libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstsouphttpsrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) -noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h +noinst_HEADERS = gstsouphttpsrc.h gstsouphttpclientsink.h gstsouputils.h all: all-am .SUFFIXES: @@ -651,6 +649,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpclientsink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsouphttpsrc_la-gstsouphttpsrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstsouphttpsrc_la-gstsouputils.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -690,6 +689,13 @@ libgstsouphttpsrc_la-gstsouphttpclientsink.lo: gstsouphttpclientsink.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 $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstsouphttpsrc_la-gstsouphttpclientsink.lo `test -f 'gstsouphttpclientsink.c' || echo '$(srcdir)/'`gstsouphttpclientsink.c +libgstsouphttpsrc_la-gstsouputils.lo: gstsouputils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -MT libgstsouphttpsrc_la-gstsouputils.lo -MD -MP -MF $(DEPDIR)/libgstsouphttpsrc_la-gstsouputils.Tpo -c -o libgstsouphttpsrc_la-gstsouputils.lo `test -f 'gstsouputils.c' || echo '$(srcdir)/'`gstsouputils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsouphttpsrc_la-gstsouputils.Tpo $(DEPDIR)/libgstsouphttpsrc_la-gstsouputils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsouputils.c' object='libgstsouphttpsrc_la-gstsouputils.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 $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -c -o libgstsouphttpsrc_la-gstsouputils.lo `test -f 'gstsouputils.c' || echo '$(srcdir)/'`gstsouputils.c + libgstsouphttpsrc_la-gstsoup.lo: gstsoup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsouphttpsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsouphttpsrc_la_CFLAGS) $(CFLAGS) -MT libgstsouphttpsrc_la-gstsoup.lo -MD -MP -MF $(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Tpo -c -o libgstsouphttpsrc_la-gstsoup.lo `test -f 'gstsoup.c' || echo '$(srcdir)/'`gstsoup.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Tpo $(DEPDIR)/libgstsouphttpsrc_la-gstsoup.Plo diff --git a/ext/soup/gstsoup.c b/ext/soup/gstsoup.c index e12ca18f4..10bdba748 100644 --- a/ext/soup/gstsoup.c +++ b/ext/soup/gstsoup.c @@ -20,7 +20,9 @@ #include "gstsouphttpsrc.h" #include "gstsouphttpclientsink.h" +#include "gstsouputils.h" +GST_DEBUG_CATEGORY (soup_utils_debug); static gboolean plugin_init (GstPlugin * plugin) @@ -36,6 +38,7 @@ plugin_init (GstPlugin * plugin) GST_TYPE_SOUP_HTTP_SRC); gst_element_register (plugin, "souphttpclientsink", GST_RANK_NONE, GST_TYPE_SOUP_HTTP_CLIENT_SINK); + GST_DEBUG_CATEGORY_INIT (soup_utils_debug, "souputils", 0, "Soup utils"); return TRUE; } diff --git a/ext/soup/gstsouphttpclientsink.c b/ext/soup/gstsouphttpclientsink.c index f1b9c0dee..904d71c4c 100644 --- a/ext/soup/gstsouphttpclientsink.c +++ b/ext/soup/gstsouphttpclientsink.c @@ -41,6 +41,7 @@ #include <gst/gst.h> #include <gst/base/gstbasesink.h> #include "gstsouphttpclientsink.h" +#include "gstsouputils.h" #include <gst/glib-compat-private.h> @@ -93,10 +94,12 @@ enum PROP_PROXY_ID, PROP_PROXY_PW, PROP_COOKIES, - PROP_SESSION + PROP_SESSION, + PROP_SOUP_LOG_LEVEL }; #define DEFAULT_USER_AGENT "GStreamer souphttpclientsink " +#define DEFAULT_SOUP_LOG_LEVEL SOUP_LOGGER_LOG_NONE /* pad templates */ @@ -168,6 +171,19 @@ gst_soup_http_client_sink_class_init (GstSoupHttpClientSinkClass * klass) g_object_class_install_property (gobject_class, PROP_COOKIES, g_param_spec_boxed ("cookies", "Cookies", "HTTP request cookies", G_TYPE_STRV, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstSoupHttpClientSink::http-log-level: + * + * If set and > 0, captures and dumps HTTP session data as + * log messages if log level >= GST_LEVEL_TRACE + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_SOUP_LOG_LEVEL, + g_param_spec_enum ("http-log-level", "HTTP log level", + "Set log level for soup's HTTP session log", + SOUP_TYPE_LOGGER_LOG_LEVEL, DEFAULT_SOUP_LOG_LEVEL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_soup_http_client_sink_sink_template)); @@ -214,6 +230,7 @@ gst_soup_http_client_sink_init (GstSoupHttpClientSink * souphttpsink) souphttpsink->proxy_pw = NULL; souphttpsink->prop_session = NULL; souphttpsink->timeout = 1; + souphttpsink->log_level = DEFAULT_SOUP_LOG_LEVEL; proxy = g_getenv ("http_proxy"); if (proxy && !gst_soup_http_client_sink_set_proxy (souphttpsink, proxy)) { GST_WARNING_OBJECT (souphttpsink, @@ -316,6 +333,9 @@ gst_soup_http_client_sink_set_property (GObject * object, guint property_id, g_strfreev (souphttpsink->cookies); souphttpsink->cookies = g_strdupv (g_value_get_boxed (value)); break; + case PROP_SOUP_LOG_LEVEL: + souphttpsink->log_level = g_value_get_enum (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -368,6 +388,9 @@ gst_soup_http_client_sink_get_property (GObject * object, guint property_id, case PROP_COOKIES: g_value_set_boxed (value, g_strdupv (souphttpsink->cookies)); break; + case PROP_SOUP_LOG_LEVEL: + g_value_set_enum (value, souphttpsink->log_level); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -514,13 +537,14 @@ gst_soup_http_client_sink_start (GstBaseSink * sink) souphttpsink->user_agent, SOUP_SESSION_TIMEOUT, souphttpsink->timeout, NULL); - //soup_session_add_feature (souphttpsink->session, - // SOUP_SESSION_FEATURE (soup_logger_new (SOUP_LOGGER_LOG_BODY, 100))); - g_signal_connect (souphttpsink->session, "authenticate", G_CALLBACK (authenticate), souphttpsink); } + /* Set up logging */ + gst_soup_util_log_setup (souphttpsink->session, souphttpsink->log_level, + GST_ELEMENT (souphttpsink)); + return TRUE; } diff --git a/ext/soup/gstsouphttpclientsink.h b/ext/soup/gstsouphttpclientsink.h index 5c7dda62f..a33027523 100644 --- a/ext/soup/gstsouphttpclientsink.h +++ b/ext/soup/gstsouphttpclientsink.h @@ -66,7 +66,7 @@ struct _GstSoupHttpClientSink char *user_agent; gboolean automatic_redirect; gchar **cookies; - + SoupLoggerLogLevel log_level; }; struct _GstSoupHttpClientSinkClass diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c index 68ef78b00..c1cb5424e 100644 --- a/ext/soup/gstsouphttpsrc.c +++ b/ext/soup/gstsouphttpsrc.c @@ -17,7 +17,7 @@ * * This plugin reads data from a remote location specified by a URI. * Supported protocols are 'http', 'https'. - * + * * An HTTP proxy must be specified by its URL. * If the "http_proxy" environment variable is set, its value is used. * If built with libsoup's GNOME integration features, the GNOME proxy @@ -79,6 +79,7 @@ #include <gst/gst-i18n-plugin.h> #include <libsoup/soup.h> #include "gstsouphttpsrc.h" +#include "gstsouputils.h" #include <gst/tag/tag.h> @@ -105,21 +106,39 @@ enum PROP_COOKIES, PROP_IRADIO_MODE, PROP_TIMEOUT, - PROP_EXTRA_HEADERS + PROP_EXTRA_HEADERS, + PROP_SOUP_LOG_LEVEL, + PROP_COMPRESS, + PROP_KEEP_ALIVE, + PROP_SSL_STRICT, + PROP_SSL_CA_FILE, + PROP_SSL_USE_SYSTEM_CA_FILE, + PROP_RETRIES }; #define DEFAULT_USER_AGENT "GStreamer souphttpsrc " #define DEFAULT_IRADIO_MODE TRUE +#define DEFAULT_SOUP_LOG_LEVEL SOUP_LOGGER_LOG_HEADERS +#define DEFAULT_COMPRESS FALSE +#define DEFAULT_KEEP_ALIVE FALSE +#define DEFAULT_SSL_STRICT TRUE +#define DEFAULT_SSL_CA_FILE NULL +#define DEFAULT_SSL_USE_SYSTEM_CA_FILE TRUE +#define DEFAULT_TIMEOUT 15 +#define DEFAULT_RETRIES 3 static void gst_soup_http_src_uri_handler_init (gpointer g_iface, gpointer iface_data); static void gst_soup_http_src_finalize (GObject * gobject); +static void gst_soup_http_src_dispose (GObject * gobject); static void gst_soup_http_src_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_soup_http_src_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +static GstStateChangeReturn gst_soup_http_src_change_state (GstElement * + element, GstStateChange transition); static GstFlowReturn gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf); static gboolean gst_soup_http_src_start (GstBaseSrc * bsrc); @@ -186,6 +205,7 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass) gobject_class->set_property = gst_soup_http_src_set_property; gobject_class->get_property = gst_soup_http_src_get_property; gobject_class->finalize = gst_soup_http_src_finalize; + gobject_class->dispose = gst_soup_http_src_dispose; g_object_class_install_property (gobject_class, PROP_LOCATION, @@ -233,7 +253,7 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass) g_object_class_install_property (gobject_class, PROP_TIMEOUT, g_param_spec_uint ("timeout", "timeout", "Value in seconds to timeout a blocking I/O (0 = No timeout).", 0, - 3600, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + 3600, DEFAULT_TIMEOUT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_EXTRA_HEADERS, g_param_spec_boxed ("extra-headers", "Extra Headers", "Extra headers to append to the HTTP request", @@ -244,6 +264,101 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass) "metadata interleaved with the actual stream data)", DEFAULT_IRADIO_MODE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstSoupHTTPSrc::http-log-level: + * + * If set and > 0, captures and dumps HTTP session data as + * log messages if log level >= GST_LEVEL_TRACE + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_SOUP_LOG_LEVEL, + g_param_spec_enum ("http-log-level", "HTTP log level", + "Set log level for soup's HTTP session log", + SOUP_TYPE_LOGGER_LOG_LEVEL, DEFAULT_SOUP_LOG_LEVEL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstSoupHTTPSrc::compress: + * + * If set to %TRUE, souphttpsrc will automatically handle gzip + * and deflate Content-Encodings. This does not make much difference + * and causes more load for normal media files, but makes a real + * difference in size for plaintext files. + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_COMPRESS, + g_param_spec_boolean ("compress", "Compress", + "Allow compressed content encodings", + DEFAULT_COMPRESS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstSoupHTTPSrc::keep-alive: + * + * If set to %TRUE, souphttpsrc will keep alive connections when being + * set to READY state and only will close connections when connecting + * to a different server or when going to NULL state.. + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_KEEP_ALIVE, + g_param_spec_boolean ("keep-alive", "keep-alive", + "Use HTTP persistent connections", DEFAULT_KEEP_ALIVE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstSoupHTTPSrc::ssl-strict: + * + * If set to %TRUE, souphttpsrc will reject all SSL certificates that + * are considered invalid. + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_SSL_STRICT, + g_param_spec_boolean ("ssl-strict", "SSL Strict", + "Strict SSL certificate checking", DEFAULT_SSL_STRICT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstSoupHTTPSrc::ssl-ca-file: + * + * A SSL anchor CA file that should be used for checking certificates + * instead of the system CA file. + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_SSL_CA_FILE, + g_param_spec_string ("ssl-ca-file", "SSL CA File", + "Location of a SSL anchor CA file to use", DEFAULT_SSL_CA_FILE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstSoupHTTPSrc::ssl-use-system-ca-file: + * + * If set to %TRUE, souphttpsrc will use the system's CA file for + * checking certificates. + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_SSL_USE_SYSTEM_CA_FILE, + g_param_spec_boolean ("ssl-use-system-ca-file", "Use System CA File", + "Use system CA file", DEFAULT_SSL_USE_SYSTEM_CA_FILE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /** + * GstSoupHTTPSrc::retries: + * + * Maximum number of retries until giving up. + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_RETRIES, + g_param_spec_int ("retries", "Retries", + "Maximum number of retries until giving up (-1=infinite)", -1, + G_MAXINT, DEFAULT_RETRIES, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&srctemplate)); @@ -251,6 +366,8 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass) "Source/Network", "Receive data as a client over the network via HTTP using SOUP", "Wouter Cloetens <wouter@mind.be>"); + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_soup_http_src_change_state); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_soup_http_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_soup_http_src_stop); @@ -274,6 +391,7 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src) { src->interrupted = FALSE; src->retry = FALSE; + src->retry_count = 0; src->have_size = FALSE; src->got_headers = FALSE; src->seekable = FALSE; @@ -283,6 +401,8 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src) src->content_size = 0; src->have_body = FALSE; + src->ret = GST_FLOW_OK; + gst_caps_replace (&src->src_caps, NULL); g_free (src->iradio_name); src->iradio_name = NULL; @@ -313,6 +433,11 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src) src->context = NULL; src->session = NULL; src->msg = NULL; + src->timeout = DEFAULT_TIMEOUT; + src->log_level = DEFAULT_SOUP_LOG_LEVEL; + src->ssl_strict = DEFAULT_SSL_STRICT; + src->ssl_use_system_ca_file = DEFAULT_SSL_USE_SYSTEM_CA_FILE; + src->max_retries = DEFAULT_RETRIES; proxy = g_getenv ("http_proxy"); if (proxy && !gst_soup_http_src_set_proxy (src, proxy)) { GST_WARNING_OBJECT (src, @@ -320,9 +445,23 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src) proxy); } + gst_base_src_set_automatic_eos (GST_BASE_SRC (src), FALSE); + gst_soup_http_src_reset (src); } +static void +gst_soup_http_src_dispose (GObject * gobject) +{ + GstSoupHTTPSrc *src = GST_SOUP_HTTP_SRC (gobject); + + GST_DEBUG_OBJECT (src, "dispose"); + + gst_soup_http_src_session_close (src); + + G_OBJECT_CLASS (parent_class)->dispose (gobject); +} + static void gst_soup_http_src_finalize (GObject * gobject) { @@ -346,6 +485,13 @@ gst_soup_http_src_finalize (GObject * gobject) g_free (src->proxy_pw); g_strfreev (src->cookies); + if (src->extra_headers) { + gst_structure_free (src->extra_headers); + src->extra_headers = NULL; + } + + g_free (src->ssl_ca_file); + G_OBJECT_CLASS (parent_class)->finalize (gobject); } @@ -438,6 +584,29 @@ gst_soup_http_src_set_property (GObject * object, guint prop_id, src->extra_headers = s ? gst_structure_copy (s) : NULL; break; } + case PROP_SOUP_LOG_LEVEL: + src->log_level = g_value_get_enum (value); + break; + case PROP_COMPRESS: + src->compress = g_value_get_boolean (value); + break; + case PROP_KEEP_ALIVE: + src->keep_alive = g_value_get_boolean (value); + break; + case PROP_SSL_STRICT: + src->ssl_strict = g_value_get_boolean (value); + break; + case PROP_SSL_CA_FILE: + if (src->ssl_ca_file) + g_free (src->ssl_ca_file); + src->ssl_ca_file = g_value_dup_string (value); + break; + case PROP_SSL_USE_SYSTEM_CA_FILE: + src->ssl_use_system_ca_file = g_value_get_boolean (value); + break; + case PROP_RETRIES: + src->max_retries = g_value_get_int (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -499,6 +668,27 @@ gst_soup_http_src_get_property (GObject * object, guint prop_id, case PROP_EXTRA_HEADERS: gst_value_set_structure (value, src->extra_headers); break; + case PROP_SOUP_LOG_LEVEL: + g_value_set_enum (value, src->log_level); + break; + case PROP_COMPRESS: + g_value_set_boolean (value, src->compress); + break; + case PROP_KEEP_ALIVE: + g_value_set_boolean (value, src->keep_alive); + break; + case PROP_SSL_STRICT: + g_value_set_boolean (value, src->ssl_strict); + break; + case PROP_SSL_CA_FILE: + g_value_set_string (value, src->ssl_ca_file); + break; + case PROP_SSL_USE_SYSTEM_CA_FILE: + g_value_set_boolean (value, src->ssl_strict); + break; + case PROP_RETRIES: + g_value_set_int (value, src->max_retries); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -519,6 +709,7 @@ static void gst_soup_http_src_cancel_message (GstSoupHTTPSrc * src) { if (src->msg != NULL) { + GST_DEBUG_OBJECT (src, "Cancelling message"); src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_CANCELLED; soup_session_cancel_message (src->session, src->msg, SOUP_STATUS_CANCELLED); } @@ -661,9 +852,11 @@ gst_soup_http_src_session_open (GstSoupHTTPSrc * src) return FALSE; } - src->context = g_main_context_new (); + if (!src->context) + src->context = g_main_context_new (); - src->loop = g_main_loop_new (src->context, TRUE); + if (!src->loop) + src->loop = g_main_loop_new (src->context, TRUE); if (!src->loop) { GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), ("Failed to start GMainLoop")); @@ -671,42 +864,71 @@ gst_soup_http_src_session_open (GstSoupHTTPSrc * src) return FALSE; } - GST_DEBUG_OBJECT (src, "Creating session"); - if (src->proxy == NULL) { - src->session = - soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, - src->context, SOUP_SESSION_USER_AGENT, src->user_agent, - SOUP_SESSION_TIMEOUT, src->timeout, - SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT, - NULL); + if (!src->session) { + GST_DEBUG_OBJECT (src, "Creating session"); + if (src->proxy == NULL) { + src->session = + soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, + src->context, SOUP_SESSION_USER_AGENT, src->user_agent, + SOUP_SESSION_TIMEOUT, src->timeout, + SOUP_SESSION_SSL_STRICT, src->ssl_strict, + SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT, + NULL); + } else { + src->session = + soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, + src->context, SOUP_SESSION_PROXY_URI, src->proxy, + SOUP_SESSION_TIMEOUT, src->timeout, + SOUP_SESSION_SSL_STRICT, src->ssl_strict, + SOUP_SESSION_USER_AGENT, src->user_agent, NULL); + } + + if (!src->session) { + GST_ELEMENT_ERROR (src, LIBRARY, INIT, + (NULL), ("Failed to create async session")); + return FALSE; + } + + g_signal_connect (src->session, "authenticate", + G_CALLBACK (gst_soup_http_src_authenticate_cb), src); + + /* Set up logging */ + gst_soup_util_log_setup (src->session, src->log_level, GST_ELEMENT (src)); + if (src->ssl_ca_file) + g_object_set (src->session, "ssl-ca-file", src->ssl_ca_file, NULL); + else + g_object_set (src->session, "ssl-use-system-ca-file", + src->ssl_use_system_ca_file, NULL); } else { - src->session = - soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT, - src->context, SOUP_SESSION_PROXY_URI, src->proxy, - SOUP_SESSION_TIMEOUT, src->timeout, - SOUP_SESSION_USER_AGENT, src->user_agent, NULL); + GST_DEBUG_OBJECT (src, "Re-using session"); } - if (!src->session) { - GST_ELEMENT_ERROR (src, LIBRARY, INIT, - (NULL), ("Failed to create async session")); - return FALSE; - } + if (src->compress) + soup_session_add_feature_by_type (src->session, SOUP_TYPE_CONTENT_DECODER); + else + soup_session_remove_feature_by_type (src->session, + SOUP_TYPE_CONTENT_DECODER); - g_signal_connect (src->session, "authenticate", - G_CALLBACK (gst_soup_http_src_authenticate_cb), src); return TRUE; } static void gst_soup_http_src_session_close (GstSoupHTTPSrc * src) { + GST_DEBUG_OBJECT (src, "Closing session"); + if (src->session) { soup_session_abort (src->session); /* This unrefs the message. */ g_object_unref (src->session); src->session = NULL; src->msg = NULL; } + if (src->loop) { + g_main_loop_unref (src->loop); + g_main_context_unref (src->context); + src->loop = NULL; + src->context = NULL; + } } static void @@ -725,13 +947,6 @@ gst_soup_http_src_authenticate_cb (SoupSession * session, SoupMessage * msg, } } -static void -gst_soup_http_src_headers_foreach (const gchar * name, const gchar * val, - gpointer src) -{ - GST_DEBUG_OBJECT (src, " %s: %s", name, val); -} - static void gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) { @@ -741,18 +956,19 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src) guint64 newsize; GHashTable *params = NULL; - GST_DEBUG_OBJECT (src, "got headers:"); - soup_message_headers_foreach (msg->response_headers, - gst_soup_http_src_headers_foreach, src); + GST_INFO_OBJECT (src, "got headers"); - if (msg->status_code == 407 && src->proxy_id && src->proxy_pw) + if (msg->status_code == SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED && + src->proxy_id && src->proxy_pw) return; if (src->automatic_redirect && SOUP_STATUS_IS_REDIRECTION (msg->status_code)) { src->redirection_uri = g_strdup (soup_message_headers_get_one (msg->response_headers, "Location")); - GST_DEBUG_OBJECT (src, "%u redirect to \"%s\"", msg->status_code, - src->redirection_uri); + src->redirection_permanent = + (msg->status_code == SOUP_STATUS_MOVED_PERMANENTLY); + GST_DEBUG_OBJECT (src, "%u redirect to \"%s\" (permanent %d)", + msg->status_code, src->redirection_uri, src->redirection_permanent); return; } @@ -941,12 +1157,15 @@ gst_soup_http_src_finished_cb (SoupMessage * msg, GstSoupHTTPSrc * src) /* gst_soup_http_src_cancel_message() triggered this; probably a seek * that occurred in the QUEUEING state; i.e. before the connection setup * was complete. Do nothing */ + GST_DEBUG_OBJECT (src, "cancelled"); } else if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING && src->read_position > 0 && - (src->have_size && src->read_position < src->content_size)) { + (src->have_size && src->read_position < src->content_size) && + (src->max_retries == -1 || src->retry_count < src->max_retries)) { /* The server disconnected while streaming. Reconnect and seeking to the * last location. */ src->retry = TRUE; + src->retry_count++; src->ret = GST_FLOW_CUSTOM_ERROR; } else if (G_UNLIKELY (src->session_io_status != GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING)) { @@ -1051,6 +1270,17 @@ gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk, GST_DEBUG_OBJECT (src, "got chunk, but not for current message"); return; } + if (G_UNLIKELY (!src->outbuf)) { + GST_DEBUG_OBJECT (src, "got chunk but we're not expecting one"); + src->ret = GST_FLOW_OK; + gst_soup_http_src_cancel_message (src); + g_main_loop_quit (src->loop); + return; + } + + /* We got data, reset the retry counter */ + src->retry_count = 0; + src->have_body = FALSE; if (G_UNLIKELY (src->session_io_status != GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING)) { @@ -1075,14 +1305,18 @@ gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk, src->request_position = new_position; src->read_position = new_position; - if (src->content_size != 0 && new_position > src->content_size) { - GST_DEBUG_OBJECT (src, "Got position previous estimated content size " - "(%" G_GINT64_FORMAT " > %" G_GINT64_FORMAT ")", new_position, - src->content_size); - src->content_size = new_position; - basesrc->segment.duration = src->content_size; - gst_element_post_message (GST_ELEMENT (src), - gst_message_new_duration_changed (GST_OBJECT (src))); + if (src->have_size) { + if (new_position > src->content_size) { + GST_DEBUG_OBJECT (src, "Got position previous estimated content size " + "(%" G_GINT64_FORMAT " > %" G_GINT64_FORMAT ")", new_position, + src->content_size); + src->content_size = new_position; + basesrc->segment.duration = src->content_size; + gst_element_post_message (GST_ELEMENT (src), + gst_message_new_duration_changed (GST_OBJECT (src))); + } else if (new_position == src->content_size) { + GST_DEBUG_OBJECT (src, "We're EOS now"); + } } src->ret = GST_FLOW_OK; @@ -1109,12 +1343,15 @@ gst_soup_http_src_response_cb (SoupSession * session, SoupMessage * msg, msg->reason_phrase); if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING && src->read_position > 0 && (src->have_size - && src->read_position < src->content_size)) { + && src->read_position < src->content_size) && + (src->max_retries == -1 || src->retry_count < src->max_retries)) { /* The server disconnected while streaming. Reconnect and seeking to the * last location. */ src->retry = TRUE; - } else + src->retry_count++; + } else { gst_soup_http_src_parse_status (msg, src); + } /* The session's SoupMessage object expires after this callback returns. */ src->msg = NULL; g_main_loop_quit (src->loop); @@ -1152,10 +1389,16 @@ gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src) src->ret = GST_FLOW_ERROR; break; case SOUP_STATUS_IO_ERROR: - SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ, - _("A network error occured, or the server closed the connection " - "unexpectedly.")); - src->ret = GST_FLOW_ERROR; + if (src->max_retries == -1 || src->retry_count < src->max_retries) { + src->retry = TRUE; + src->retry_count++; + src->ret = GST_FLOW_CUSTOM_ERROR; + } else { + SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ, + _("A network error occured, or the server closed the connection " + "unexpectedly.")); + src->ret = GST_FLOW_ERROR; + } break; case SOUP_STATUS_MALFORMED: SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ, @@ -1211,6 +1454,8 @@ gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src) static gboolean gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method) { + g_return_val_if_fail (src->msg == NULL, FALSE); + src->msg = soup_message_new (method, src->location); if (!src->msg) { GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, @@ -1218,8 +1463,10 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method) return FALSE; } src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE; - soup_message_headers_append (src->msg->request_headers, "Connection", - "close"); + if (!src->keep_alive) { + soup_message_headers_append (src->msg->request_headers, "Connection", + "close"); + } if (src->iradio_mode) { soup_message_headers_append (src->msg->request_headers, "icy-metadata", "1"); @@ -1251,10 +1498,6 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method) gst_soup_http_src_add_extra_headers (src); - GST_DEBUG_OBJECT (src, "request headers:"); - soup_message_headers_foreach (src->msg->request_headers, - gst_soup_http_src_headers_foreach, src); - return TRUE; } @@ -1262,6 +1505,13 @@ static GstFlowReturn gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method, GstBuffer ** outbuf) { + /* If we're not OK, just go out of here */ + if (src->ret != GST_FLOW_OK) { + GST_DEBUG_OBJECT (src, "Previous flow return not OK: %s", + gst_flow_get_name (src->ret)); + return src->ret; + } + GST_LOG_OBJECT (src, "Running request for method: %s", method); if (src->msg && (src->request_position != src->read_position)) { if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) { @@ -1284,6 +1534,7 @@ gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method, do { if (src->interrupted) { GST_DEBUG_OBJECT (src, "interrupted"); + src->ret = GST_FLOW_FLUSHING; break; } if (src->retry) { @@ -1316,11 +1567,27 @@ gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method, if (src->ret == GST_FLOW_CUSTOM_ERROR) g_main_loop_run (src->loop); + } while (src->ret == GST_FLOW_CUSTOM_ERROR); + /* Let the request finish if we had a stop position and are there */ + if (src->ret == GST_FLOW_OK && src->stop_position != -1 + && src->read_position >= src->stop_position) { + src->outbuf = NULL; + gst_soup_http_src_session_unpause_message (src); + g_main_loop_run (src->loop); + + g_cond_signal (&src->request_finished_cond); + /* Return OK unconditionally here, src->ret will + * be most likely be EOS now but we want to + * consume the buffer we got above */ + return GST_FLOW_OK; + } + if (src->ret == GST_FLOW_CUSTOM_ERROR) src->ret = GST_FLOW_EOS; g_cond_signal (&src->request_finished_cond); + return src->ret; } @@ -1333,6 +1600,7 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) src = GST_SOUP_HTTP_SRC (psrc); g_mutex_lock (&src->mutex); + *outbuf = NULL; ret = gst_soup_http_src_do_request (src, SOUP_METHOD_GET, outbuf); g_mutex_unlock (&src->mutex); return ret; @@ -1355,22 +1623,36 @@ gst_soup_http_src_stop (GstBaseSrc * bsrc) src = GST_SOUP_HTTP_SRC (bsrc); GST_DEBUG_OBJECT (src, "stop()"); - gst_soup_http_src_session_close (src); - if (src->loop) { - g_main_loop_unref (src->loop); - g_main_context_unref (src->context); - src->loop = NULL; - src->context = NULL; - } - if (src->extra_headers) { - gst_structure_free (src->extra_headers); - src->extra_headers = NULL; - } + if (src->keep_alive && !src->msg) + gst_soup_http_src_cancel_message (src); + else + gst_soup_http_src_session_close (src); gst_soup_http_src_reset (src); return TRUE; } +static GstStateChangeReturn +gst_soup_http_src_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + GstSoupHTTPSrc *src; + + src = GST_SOUP_HTTP_SRC (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_soup_http_src_session_close (src); + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + return ret; +} + /* Interrupt a blocking request. */ static gboolean gst_soup_http_src_unlock (GstBaseSrc * bsrc) @@ -1381,6 +1663,7 @@ gst_soup_http_src_unlock (GstBaseSrc * bsrc) GST_DEBUG_OBJECT (src, "unlock()"); src->interrupted = TRUE; + src->ret = GST_FLOW_FLUSHING; if (src->loop) g_main_loop_quit (src->loop); g_cond_signal (&src->request_finished_cond); @@ -1397,6 +1680,7 @@ gst_soup_http_src_unlock_stop (GstBaseSrc * bsrc) GST_DEBUG_OBJECT (src, "unlock_stop()"); src->interrupted = FALSE; + src->ret = GST_FLOW_OK; return TRUE; } @@ -1447,7 +1731,6 @@ gst_soup_http_src_check_seekable (GstSoupHTTPSrc * src) gst_soup_http_src_cancel_message (src); g_mutex_unlock (&src->mutex); } - } static gboolean @@ -1489,7 +1772,7 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment) return FALSE; } - if (src->content_size != 0 && segment->start >= src->content_size) { + if (src->have_size && segment->start >= src->content_size) { GST_WARNING_OBJECT (src, "Potentially seeking behind end of file, might EOS immediately"); } @@ -1497,6 +1780,7 @@ gst_soup_http_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment) /* Wait for create() to handle the jump in offset. */ src->request_position = segment->start; src->stop_position = segment->stop; + return TRUE; } @@ -1511,8 +1795,11 @@ gst_soup_http_src_query (GstBaseSrc * bsrc, GstQuery * query) switch (GST_QUERY_TYPE (query)) { case GST_QUERY_URI: gst_query_set_uri (query, src->location); - if (src->redirection_uri != NULL) + if (src->redirection_uri != NULL) { gst_query_set_uri_redirection (query, src->redirection_uri); + gst_query_set_uri_redirection_permanent (query, + src->redirection_permanent); + } ret = TRUE; break; default: diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h index 8ebd2b612..77e1000b7 100644 --- a/ext/soup/gstsouphttpsrc.h +++ b/ext/soup/gstsouphttpsrc.h @@ -50,6 +50,7 @@ struct _GstSoupHTTPSrc { gchar *location; /* Full URI. */ gchar *redirection_uri; /* Full URI after redirections. */ + gboolean redirection_permanent; /* Permanent or temporary redirect? */ gchar *user_agent; /* User-Agent HTTP header. */ gboolean automatic_redirect; /* Follow redirects. */ SoupURI *proxy; /* HTTP proxy URI. */ @@ -68,6 +69,8 @@ struct _GstSoupHTTPSrc { GstBuffer **outbuf; /* Return buffer allocated by callback. */ gboolean interrupted; /* Signal unlock(). */ gboolean retry; /* Should attempt to reconnect. */ + gint retry_count; /* Number of retries since we received data */ + gint max_retries; /* Maximum number of retries */ gboolean got_headers; /* Already received headers from the server */ gboolean have_size; /* Received and parsed Content-Length @@ -83,6 +86,10 @@ struct _GstSoupHTTPSrc { * decide if an out of range request should be * handled as an error or EOS when the content * size is unknown */ + gboolean keep_alive; /* Use keep-alive sessions */ + gboolean ssl_strict; + gchar *ssl_ca_file; + gboolean ssl_use_system_ca_file; /* Shoutcast/icecast metadata extraction handling. */ gboolean iradio_mode; @@ -93,6 +100,10 @@ struct _GstSoupHTTPSrc { GstStructure *extra_headers; + SoupLoggerLogLevel log_level;/* Soup HTTP session logger level */ + + gboolean compress; + guint timeout; GMutex mutex; diff --git a/ext/soup/gstsouputils.c b/ext/soup/gstsouputils.c new file mode 100644 index 000000000..72c1ef12b --- /dev/null +++ b/ext/soup/gstsouputils.c @@ -0,0 +1,97 @@ +/* GStreamer + * + * Copyright (C) 2014 Samsung Electronics. All rights reserved. + * @Author: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.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 + */ + + +#include <glib.h> +#include <gst/gst.h> +#include <libsoup/soup.h> +#include "gstsouputils.h" + +/** + * Soup logger funcs + */ + +GST_DEBUG_CATEGORY_EXTERN (soup_utils_debug); +#define GST_CAT_DEFAULT soup_utils_debug + +static inline gchar +gst_soup_util_log_make_level_tag (SoupLoggerLogLevel level) +{ + gchar c; + + if (G_UNLIKELY ((gint) level > 9)) + return '?'; + + switch (level) { + case SOUP_LOGGER_LOG_MINIMAL: + c = 'M'; + break; + case SOUP_LOGGER_LOG_HEADERS: + c = 'H'; + break; + case SOUP_LOGGER_LOG_BODY: + c = 'B'; + break; + default: + /* Unknown level. If this is hit libsoup likely added a new + * log level to SoupLoggerLogLevel and it should be added + * as a case */ + c = level + '0'; + break; + } + return c; +} + +static void +gst_soup_util_log_printer_cb (SoupLogger G_GNUC_UNUSED * logger, + SoupLoggerLogLevel level, char direction, const char *data, + gpointer user_data) +{ + gchar c; + c = gst_soup_util_log_make_level_tag (level); + GST_TRACE_OBJECT (GST_ELEMENT (user_data), "HTTP_SESSION(%c): %c %s", c, + direction, data); +} + +void +gst_soup_util_log_setup (SoupSession * session, SoupLoggerLogLevel level, + GstElement * element) +{ + SoupLogger *logger; + + if (!level) { + GST_INFO_OBJECT (element, "Not attaching a logger with level 0"); + return; + } + + g_assert (session && element); + + if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) + < GST_LEVEL_TRACE) { + GST_INFO_OBJECT (element, "Not setting up HTTP session logger. " + "Need at least GST_LEVEL_TRACE"); + return; + } + + /* Create a new logger and set body_size_limit to -1 (no limit) */ + logger = soup_logger_new (level, -1); + soup_logger_set_printer (logger, gst_soup_util_log_printer_cb, + gst_object_ref (element), (GDestroyNotify) gst_object_unref); + + /* Attach logger to session */ + soup_session_add_feature (session, SOUP_SESSION_FEATURE (logger)); + g_object_unref (logger); +} diff --git a/ext/soup/gstsouputils.h b/ext/soup/gstsouputils.h new file mode 100644 index 000000000..e73525dfb --- /dev/null +++ b/ext/soup/gstsouputils.h @@ -0,0 +1,31 @@ +/* GStreamer + * + * Copyright (C) 2014 Samsung Electronics. All rights reserved. + * @Author: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.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 + */ + +#ifndef __GST_SOUP_UTILS_H__ +#define __GST_SOUP_UTILS_H__ + +#include <glib.h> +#include <gst/gst.h> +#include <libsoup/soup.h> + +G_BEGIN_DECLS + +void gst_soup_util_log_setup (SoupSession * session, SoupLoggerLogLevel level, + GstElement * element); + +G_END_DECLS + +#endif diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in index c2971abe0..4b58dba3b 100644 --- a/ext/speex/Makefile.in +++ b/ext/speex/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c index 8f9da2ade..9b62ebe72 100644 --- a/ext/speex/gstspeexdec.c +++ b/ext/speex/gstspeexdec.c @@ -34,8 +34,6 @@ * ]| Decode an Ogg/Speex file. To create an Ogg/Speex file refer to the * documentation of speexenc. * </refsect2> - * - * Last reviewed on 2006-04-05 (0.10.2) */ #ifdef HAVE_CONFIG_H @@ -156,6 +154,8 @@ gst_speex_dec_reset (GstSpeexDec * dec) static void gst_speex_dec_init (GstSpeexDec * dec) { + gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE); + dec->enh = DEFAULT_ENH; gst_speex_dec_reset (dec); @@ -419,13 +419,7 @@ gst_speex_dec_parse_data (GstSpeexDec * dec, GstBuffer * buf) if (ret == -1) { /* uh? end of stream */ - if (fpp == 0 && speex_bits_remaining (bits) < 8) { - /* if we did not know how many frames to expect, then we get this - at the end if there are leftover bits to pad to the next byte */ - GST_DEBUG_OBJECT (dec, "Discarding leftover bits"); - } else { - GST_WARNING_OBJECT (dec, "Unexpected end of stream found"); - } + GST_WARNING_OBJECT (dec, "Unexpected end of stream found"); corrupted = TRUE; } else if (ret == -2) { GST_WARNING_OBJECT (dec, "Decoding error: corrupted stream?"); diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in index a9a00d366..deab61823 100644 --- a/ext/taglib/Makefile.in +++ b/ext/taglib/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -505,7 +503,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc index 27f4c803f..8651e7782 100644 --- a/ext/taglib/gstid3v2mux.cc +++ b/ext/taglib/gstid3v2mux.cc @@ -461,7 +461,7 @@ add_image_tag (ID3v2::Tag * id3v2tag, const GstTagList * list, if (strcmp (tag, GST_TAG_PREVIEW_IMAGE) == 0) { frame->setType (ID3v2::AttachedPictureFrame::FileIcon); } else { - int image_type; + int image_type = ID3v2::AttachedPictureFrame::Other; if (info_struct) { if (gst_structure_get (info_struct, "image-type", @@ -471,8 +471,6 @@ add_image_tag (ID3v2::Tag * id3v2tag, const GstTagList * list, } else { image_type = ID3v2::AttachedPictureFrame::Other; } - } else { - image_type = ID3v2::AttachedPictureFrame::Other; } } diff --git a/ext/vpx/Makefile.in b/ext/vpx/Makefile.in index 3faa95593..865c59876 100644 --- a/ext/vpx/Makefile.in +++ b/ext/vpx/Makefile.in @@ -90,7 +90,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -106,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -492,7 +490,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/vpx/gstvp8dec.c b/ext/vpx/gstvp8dec.c index d583e1f4e..5efcdd396 100644 --- a/ext/vpx/gstvp8dec.c +++ b/ext/vpx/gstvp8dec.c @@ -205,6 +205,8 @@ gst_vp8_dec_init (GstVP8Dec * gst_vp8_dec) gst_vp8_dec->post_processing_flags = DEFAULT_POST_PROCESSING_FLAGS; gst_vp8_dec->deblocking_level = DEFAULT_DEBLOCKING_LEVEL; gst_vp8_dec->noise_level = DEFAULT_NOISE_LEVEL; + + gst_video_decoder_set_needs_format (decoder, TRUE); } static void diff --git a/ext/vpx/gstvp8enc.c b/ext/vpx/gstvp8enc.c index d68cdff7c..5684e60c7 100644 --- a/ext/vpx/gstvp8enc.c +++ b/ext/vpx/gstvp8enc.c @@ -957,7 +957,7 @@ gst_vp8_enc_set_property (GObject * object, guint prop_id, memset (&gst_vp8_enc->cfg.ts_layer_id, 0, sizeof (gst_vp8_enc->cfg.ts_layer_id)); - if (va->n_values > VPX_TS_MAX_PERIODICITY) { + if (va && va->n_values > VPX_TS_MAX_PERIODICITY) { g_warning ("%s: Only %d sized layer sequences allowed at maximum", GST_ELEMENT_NAME (gst_vp8_enc), VPX_TS_MAX_PERIODICITY); } else if (va) { diff --git a/ext/vpx/gstvp9dec.c b/ext/vpx/gstvp9dec.c index b5babc2cb..e8d5941ff 100644 --- a/ext/vpx/gstvp9dec.c +++ b/ext/vpx/gstvp9dec.c @@ -205,6 +205,8 @@ gst_vp9_dec_init (GstVP9Dec * gst_vp9_dec) gst_vp9_dec->post_processing_flags = DEFAULT_POST_PROCESSING_FLAGS; gst_vp9_dec->deblocking_level = DEFAULT_DEBLOCKING_LEVEL; gst_vp9_dec->noise_level = DEFAULT_NOISE_LEVEL; + + gst_video_decoder_set_needs_format (decoder, TRUE); } static void diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in index def5ed831..bc58205cd 100644 --- a/ext/wavpack/Makefile.in +++ b/ext/wavpack/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -491,7 +489,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/ext/wavpack/gstwavpackcommon.c b/ext/wavpack/gstwavpackcommon.c index 40ffb3af7..7e3e492df 100644 --- a/ext/wavpack/gstwavpackcommon.c +++ b/ext/wavpack/gstwavpackcommon.c @@ -36,7 +36,7 @@ GST_DEBUG_CATEGORY_EXTERN (wavpack_debug); gboolean gst_wavpack_read_header (WavpackHeader * header, guint8 * buf) { - g_memmove (header, buf, sizeof (WavpackHeader)); + memmove (header, buf, sizeof (WavpackHeader)); #ifndef WAVPACK_OLD_API WavpackLittleEndianToNative (header, (char *) WavpackHeaderFormat); diff --git a/ext/wavpack/gstwavpackdec.c b/ext/wavpack/gstwavpackdec.c index 6032b1bf7..10659ec13 100644 --- a/ext/wavpack/gstwavpackdec.c +++ b/ext/wavpack/gstwavpackdec.c @@ -141,6 +141,8 @@ gst_wavpack_dec_init (GstWavpackDec * dec) dec->context = NULL; dec->stream_reader = gst_wavpack_stream_reader_new (); + gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE); + gst_wavpack_dec_reset (dec); } diff --git a/ext/wavpack/gstwavpackstreamreader.c b/ext/wavpack/gstwavpackstreamreader.c index f10cf5840..dd29a3728 100644 --- a/ext/wavpack/gstwavpackstreamreader.c +++ b/ext/wavpack/gstwavpackstreamreader.c @@ -39,7 +39,7 @@ gst_wavpack_stream_reader_read_bytes (void *id, void *data, int32_t bcount) rid->length, rid->position); if (to_read > 0) { - g_memmove (data, rid->buffer + rid->position, to_read); + memmove (data, rid->buffer + rid->position, to_read); rid->position += to_read; return to_read; } else { diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap index fa511be77..460ffae99 100644 --- a/gst-plugins-good.doap +++ b/gst-plugins-good.doap @@ -34,34 +34,14 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library). <release> <Version> - <revision>1.2.4</revision> - <branch>1.2</branch> - <name></name> - <created>2014-04-18</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.2.4.tar.xz" /> - </Version> - </release> - - <release> - <Version> - <revision>1.2.2</revision> - <branch>1.2</branch> + <revision>1.3.1</revision> + <branch>1.3</branch> <name></name> - <created>2013-12-26</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.2.2.tar.xz" /> + <created>2014-05-03</created> + <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.3.1.tar.xz" /> </Version> </release> - <release> - <Version> - <revision>1.2.1</revision> - <branch>1.2</branch> - <name></name> - <created>2013-11-09</created> - <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.2.1.tar.xz" /> - </Version> - </release> - <release> <Version> <revision>1.2.0</revision> diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec index 2dc080a31..e00ed7316 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.2.4 +Version: 1.3.1 Release: 1.gst Summary: GStreamer plug-ins with good code and licensing @@ -78,6 +78,8 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gstreamer-%{majorminor}/presets/GstIirEqualizer3Bands.prs %{_datadir}/gstreamer-%{majorminor}/presets/GstVP8Enc.prs +%{_datadir}/gtk-doc/html/gst-plugins-good-plugins-%{majorminor}/* + # non-core plugins without external dependencies %{_libdir}/gstreamer-%{majorminor}/libgstalaw.so %{_libdir}/gstreamer-%{majorminor}/libgstalpha.so @@ -130,8 +132,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so %{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so %{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so - -# sys plugins %{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so # gstreamer-plugins with external dependencies but in the main package diff --git a/gst-plugins-good.spec.in b/gst-plugins-good.spec.in index 50c02b1bb..c0240fce6 100644 --- a/gst-plugins-good.spec.in +++ b/gst-plugins-good.spec.in @@ -78,6 +78,8 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gstreamer-%{majorminor}/presets/GstIirEqualizer3Bands.prs %{_datadir}/gstreamer-%{majorminor}/presets/GstVP8Enc.prs +%{_datadir}/gtk-doc/html/gst-plugins-good-plugins-%{majorminor}/* + # non-core plugins without external dependencies %{_libdir}/gstreamer-%{majorminor}/libgstalaw.so %{_libdir}/gstreamer-%{majorminor}/libgstalpha.so @@ -130,9 +132,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/gstreamer-%{majorminor}/libgstvideofilter.so %{_libdir}/gstreamer-%{majorminor}/libgstaudioparsers.so %{_libdir}/gstreamer-%{majorminor}/libgstdtmf.so - -# sys plugins -@USE_GST_V4L2_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so +%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux2.so # gstreamer-plugins with external dependencies but in the main package @USE_LIBCACA_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstcacasink.so diff --git a/gst/Makefile.in b/gst/Makefile.in index d2330dc33..be704f80a 100644 --- a/gst/Makefile.in +++ b/gst/Makefile.in @@ -92,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -108,7 +107,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -465,7 +463,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in index 6d4675dc3..77080afda 100644 --- a/gst/alpha/Makefile.in +++ b/gst/alpha/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -496,7 +494,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in index b71a36be9..e84b96616 100644 --- a/gst/apetag/Makefile.in +++ b/gst/apetag/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/apetag/gstapedemux.c b/gst/apetag/gstapedemux.c index 840765441..be0b0e5bb 100644 --- a/gst/apetag/gstapedemux.c +++ b/gst/apetag/gstapedemux.c @@ -214,7 +214,7 @@ ape_demux_parse_tags (const guint8 * data, gint size) while (sp != NULL && (sp2 = strchr (sp + 1, ' ')) != NULL) sp = sp2; if (sp) { - g_memmove (val, sp + 1, strlen (sp + 1) + 1); + memmove (val, sp + 1, strlen (sp + 1) + 1); } } diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in index 0d6fd15a1..3bb7b729f 100644 --- a/gst/audiofx/Makefile.in +++ b/gst/audiofx/Makefile.in @@ -113,7 +113,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -129,7 +128,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -532,7 +530,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/audiofx/audioecho.c b/gst/audiofx/audioecho.c index 60220f02d..464758c7f 100644 --- a/gst/audiofx/audioecho.c +++ b/gst/audiofx/audioecho.c @@ -20,7 +20,6 @@ /** * SECTION:element-audioecho - * @Since: 0.10.14 * * audioecho adds an echo or (simple) reverb effect to an audio stream. The echo * delay, intensity and the percentage of feedback can be configured. diff --git a/gst/audiofx/audiofxbasefirfilter.c b/gst/audiofx/audiofxbasefirfilter.c index dd906b539..dd3d3a02f 100644 --- a/gst/audiofx/audiofxbasefirfilter.c +++ b/gst/audiofx/audiofxbasefirfilter.c @@ -543,12 +543,10 @@ gst_audio_fx_base_fir_filter_class_init (GstAudioFXBaseFIRFilterClass * klass) gobject_class->get_property = gst_audio_fx_base_fir_filter_get_property; /** - * GstAudioFXBaseFIRFilter::low-latency: + * GstAudioFXBaseFIRFilter:low-latency: * * Work in low-latency mode. This mode is much slower for large filter sizes * but the latency is always only the pre-latency of the filter. - * - * Since: 0.10.18 */ g_object_class_install_property (gobject_class, PROP_LOW_LATENCY, g_param_spec_boolean ("low-latency", "Low latency", @@ -558,14 +556,12 @@ gst_audio_fx_base_fir_filter_class_init (GstAudioFXBaseFIRFilterClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstAudioFXBaseFIRFilter::drain-on-changes: + * GstAudioFXBaseFIRFilter:drain-on-changes: * * Whether the filter should be drained when its coeficients change * * Note: Currently this only works if the kernel size is not changed! * Support for drainless kernel size changes will be added in the future. - * - * Since: 0.10.18 */ g_object_class_install_property (gobject_class, PROP_DRAIN_ON_CHANGES, g_param_spec_boolean ("drain-on-changes", "Drain on changes", @@ -835,7 +831,7 @@ gst_audio_fx_base_fir_filter_transform (GstBaseTransform * base, if (GST_BUFFER_IS_DISCONT (inbuf) || (GST_CLOCK_TIME_IS_VALID (expected_timestamp) && (ABS (GST_CLOCK_DIFF (timestamp, - expected_timestamp) > 5 * GST_MSECOND)))) { + expected_timestamp)) > 5 * GST_MSECOND))) { GST_DEBUG_OBJECT (self, "Discontinuity detected - flushing"); if (GST_CLOCK_TIME_IS_VALID (expected_timestamp)) gst_audio_fx_base_fir_filter_push_residue (self); diff --git a/gst/audiofx/audiopanorama.c b/gst/audiofx/audiopanorama.c index 295c1bd4e..af25640fa 100644 --- a/gst/audiofx/audiopanorama.c +++ b/gst/audiofx/audiopanorama.c @@ -181,14 +181,12 @@ gst_audio_panorama_class_init (GstAudioPanoramaClass * klass) 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS)); /** - * GstAudioPanorama:method + * GstAudioPanorama:method: * * Panning method: psychoacoustic mode keeps the same perceived loudness, * while simple mode just controls the volume of one channel. It's merely * a matter of taste which method should be chosen. - * - * Since: 0.10.6 - **/ + */ g_object_class_install_property (gobject_class, PROP_METHOD, g_param_spec_enum ("method", "Panning method", "Psychoacoustic mode keeps same perceived loudness, " diff --git a/gst/audiofx/audiopanoramaorc-dist.c b/gst/audiofx/audiopanoramaorc-dist.c index 438cc4047..12d6aa0e8 100644 --- a/gst/audiofx/audiopanoramaorc-dist.c +++ b/gst/audiofx/audiopanoramaorc-dist.c @@ -156,8 +156,8 @@ void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1, #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_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8)) +#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>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)) @@ -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 921b4dbc5..a7236ac2e 100644 --- a/gst/audioparsers/Makefile.in +++ b/gst/audioparsers/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -495,7 +493,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c index 569cffabe..f693097e3 100644 --- a/gst/audioparsers/gstaacparse.c +++ b/gst/audioparsers/gstaacparse.c @@ -45,7 +45,7 @@ #include <string.h> #include <gst/base/gstbitreader.h> -#include <gst/pbutils/codec-utils.h> +#include <gst/pbutils/pbutils.h> #include "gstaacparse.h" @@ -143,6 +143,7 @@ static void gst_aac_parse_init (GstAacParse * aacparse) { GST_DEBUG ("initialized"); + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (aacparse)); } @@ -386,13 +387,22 @@ gst_aac_parse_check_adts_frame (GstAacParse * aacparse, const guint8 * data, const guint avail, gboolean drain, guint * framesize, guint * needed_data) { + guint crc_size; + *needed_data = 0; - if (G_UNLIKELY (avail < 2)) + /* Absolute minimum to perform the ADTS syncword, + layer and sampling frequency tests */ + if (G_UNLIKELY (avail < 3)) return FALSE; + /* Syncword and layer tests */ if ((data[0] == 0xff) && ((data[1] & 0xf6) == 0xf0)) { + /* Sampling frequency test */ + if (G_UNLIKELY ((data[2] & 0x3C) >> 2 == 15)) + return FALSE; + /* This looks like an ADTS frame header but we need at least 6 bytes to proceed */ if (G_UNLIKELY (avail < 6)) { @@ -402,6 +412,14 @@ gst_aac_parse_check_adts_frame (GstAacParse * aacparse, *framesize = gst_aac_parse_adts_get_frame_len (data); + /* If frame has CRC, it needs 2 bytes + for it at the end of the header */ + crc_size = (data[1] & 0x01) ? 0 : 2; + + /* CRC size test */ + if (*framesize < 7 + crc_size) + return FALSE; + /* In EOS mode this is enough. No need to examine the data further. We also relax the check when we have sync, on the assumption that if we're not looking at random data, we have a much higher chance @@ -1310,6 +1328,25 @@ gst_aac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) { GstAacParse *aacparse = GST_AAC_PARSE (parse); + if (!aacparse->sent_codec_tag) { + GstTagList *taglist; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); + + /* codec tag */ + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (aacparse), + gst_event_new_tag (taglist)); + + /* also signals the end of first-frame processing */ + aacparse->sent_codec_tag = TRUE; + } + /* As a special case, we can remove the ADTS framing and output raw AAC. */ if (aacparse->header_type == DSPAAC_HEADER_ADTS && aacparse->output_header_type == DSPAAC_HEADER_NONE) { @@ -1343,6 +1380,7 @@ gst_aac_parse_start (GstBaseParse * parse) GST_DEBUG ("start"); aacparse->frame_samples = 1024; gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), ADTS_MAX_SIZE); + aacparse->sent_codec_tag = FALSE; return TRUE; } @@ -1362,6 +1400,19 @@ gst_aac_parse_stop (GstBaseParse * parse) return TRUE; } +static void +remove_fields (GstCaps * caps) +{ + guint i, n; + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + gst_structure_remove_field (s, "framed"); + } +} + static GstCaps * gst_aac_parse_sink_getcaps (GstBaseParse * parse, GstCaps * filter) { @@ -1369,28 +1420,24 @@ gst_aac_parse_sink_getcaps (GstBaseParse * parse, GstCaps * filter) GstCaps *res; templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); - peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); - if (peercaps) { - guint i, n; - /* Remove the framed field */ - peercaps = gst_caps_make_writable (peercaps); - n = gst_caps_get_size (peercaps); - for (i = 0; i < n; i++) { - GstStructure *s = gst_caps_get_structure (peercaps, i); + if (filter) { + GstCaps *fcopy = gst_caps_copy (filter); + /* Remove the fields we convert */ + remove_fields (fcopy); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), fcopy); + gst_caps_unref (fcopy); + } else + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), NULL); - gst_structure_remove_field (s, "framed"); - } + if (peercaps) { + peercaps = gst_caps_make_writable (peercaps); + /* Remove the fields we convert */ + remove_fields (peercaps); res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); gst_caps_unref (peercaps); - res = gst_caps_make_writable (res); - - /* Append the template caps because we still want to accept - * caps without any fields in the case upstream does not - * know anything. - */ - gst_caps_append (res, templ); + gst_caps_unref (templ); } else { res = templ; } diff --git a/gst/audioparsers/gstaacparse.h b/gst/audioparsers/gstaacparse.h index 51a2ed15e..1bb7dca6d 100644 --- a/gst/audioparsers/gstaacparse.h +++ b/gst/audioparsers/gstaacparse.h @@ -81,6 +81,8 @@ struct _GstAacParse { GstAacHeaderType header_type; GstAacHeaderType output_header_type; + + gboolean sent_codec_tag; }; /** diff --git a/gst/audioparsers/gstac3parse.c b/gst/audioparsers/gstac3parse.c index 407e662c3..50c676a38 100644 --- a/gst/audioparsers/gstac3parse.c +++ b/gst/audioparsers/gstac3parse.c @@ -46,8 +46,8 @@ #include <string.h> #include "gstac3parse.h" -#include <gst/base/gstbytereader.h> -#include <gst/base/gstbitreader.h> +#include <gst/base/base.h> +#include <gst/pbutils/pbutils.h> GST_DEBUG_CATEGORY_STATIC (ac3_parse_debug); #define GST_CAT_DEFAULT ac3_parse_debug @@ -162,6 +162,8 @@ static gboolean gst_ac3_parse_start (GstBaseParse * parse); static gboolean gst_ac3_parse_stop (GstBaseParse * parse); static GstFlowReturn gst_ac3_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame, gint * skipsize); +static GstFlowReturn gst_ac3_parse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); static gboolean gst_ac3_parse_src_event (GstBaseParse * parse, GstEvent * event); static GstCaps *gst_ac3_parse_get_sink_caps (GstBaseParse * parse, @@ -196,6 +198,8 @@ gst_ac3_parse_class_init (GstAc3ParseClass * klass) parse_class->start = GST_DEBUG_FUNCPTR (gst_ac3_parse_start); parse_class->stop = GST_DEBUG_FUNCPTR (gst_ac3_parse_stop); parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_ac3_parse_handle_frame); + parse_class->pre_push_frame = + GST_DEBUG_FUNCPTR (gst_ac3_parse_pre_push_frame); parse_class->src_event = GST_DEBUG_FUNCPTR (gst_ac3_parse_src_event); parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_ac3_parse_get_sink_caps); parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_ac3_parse_set_sink_caps); @@ -208,6 +212,7 @@ gst_ac3_parse_reset (GstAc3Parse * ac3parse) ac3parse->sample_rate = -1; ac3parse->blocks = -1; ac3parse->eac = FALSE; + ac3parse->sent_codec_tag = FALSE; g_atomic_int_set (&ac3parse->align, GST_AC3_PARSE_ALIGN_NONE); } @@ -218,6 +223,7 @@ gst_ac3_parse_init (GstAc3Parse * ac3parse) gst_ac3_parse_reset (ac3parse); ac3parse->baseparse_chainfunc = GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (ac3parse))->chainfunc; + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (ac3parse)); } static void @@ -769,6 +775,33 @@ bad_first_access_parameter: } } +static GstFlowReturn +gst_ac3_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstAc3Parse *ac3parse = GST_AC3_PARSE (parse); + + if (!ac3parse->sent_codec_tag) { + GstTagList *taglist; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); + + /* codec tag */ + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (ac3parse), + gst_event_new_tag (taglist)); + + /* also signals the end of first-frame processing */ + ac3parse->sent_codec_tag = TRUE; + } + + return GST_FLOW_OK; +} + static gboolean gst_ac3_parse_src_event (GstBaseParse * parse, GstEvent * event) { @@ -799,6 +832,57 @@ gst_ac3_parse_src_event (GstBaseParse * parse, GstEvent * event) return GST_BASE_PARSE_CLASS (parent_class)->src_event (parse, event); } +static void +remove_fields (GstCaps * caps) +{ + guint i, n; + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + gst_structure_remove_field (s, "framed"); + gst_structure_remove_field (s, "alignment"); + } +} + +static GstCaps * +extend_caps (GstCaps * caps, gboolean add_private) +{ + guint i, n; + GstCaps *ncaps = gst_caps_new_empty (); + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + if (add_private && !gst_structure_has_name (s, "audio/x-private1-ac3")) { + GstStructure *ns = gst_structure_copy (s); + gst_structure_set_name (ns, "audio/x-private1-ac3"); + gst_caps_append_structure (ncaps, ns); + } else if (!add_private && + gst_structure_has_name (s, "audio/x-private1-ac3")) { + GstStructure *ns = gst_structure_copy (s); + gst_structure_set_name (ns, "audio/x-ac3"); + gst_caps_append_structure (ncaps, ns); + ns = gst_structure_copy (s); + gst_structure_set_name (ns, "audio/x-eac3"); + gst_caps_append_structure (ncaps, ns); + } else if (!add_private) { + gst_caps_append_structure (ncaps, gst_structure_copy (s)); + } + } + + if (add_private) { + gst_caps_append (caps, ncaps); + } else { + gst_caps_unref (caps); + caps = ncaps; + } + + return caps; +} + static GstCaps * gst_ac3_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { @@ -806,31 +890,28 @@ gst_ac3_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) GstCaps *res; templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); - peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); + if (filter) { + GstCaps *fcopy = gst_caps_copy (filter); + /* Remove the fields we convert */ + remove_fields (fcopy); + /* we do not ask downstream to handle x-private1-ac3 */ + fcopy = extend_caps (fcopy, FALSE); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), fcopy); + gst_caps_unref (fcopy); + } else + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), NULL); if (peercaps) { - guint i, n; - /* Remove the framed and alignment field. We can convert * between different alignments. */ peercaps = gst_caps_make_writable (peercaps); - n = gst_caps_get_size (peercaps); - for (i = 0; i < n; i++) { - GstStructure *s = gst_caps_get_structure (peercaps, i); - - gst_structure_remove_field (s, "framed"); - gst_structure_remove_field (s, "alignment"); - } + remove_fields (peercaps); + /* also allow for x-private1-ac3 input */ + peercaps = extend_caps (peercaps, TRUE); res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); gst_caps_unref (peercaps); - res = gst_caps_make_writable (res); - - /* Append the template caps because we still want to accept - * caps without any fields in the case upstream does not - * know anything. - */ - gst_caps_append (res, templ); + gst_caps_unref (templ); } else { res = templ; } diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h index 0800dca3c..0e7af5acd 100644 --- a/gst/audioparsers/gstac3parse.h +++ b/gst/audioparsers/gstac3parse.h @@ -61,6 +61,7 @@ struct _GstAc3Parse { gint channels; gint blocks; gboolean eac; + gboolean sent_codec_tag; volatile gint align; GstPadChainFunction baseparse_chainfunc; }; diff --git a/gst/audioparsers/gstamrparse.c b/gst/audioparsers/gstamrparse.c index 1a321528d..54e378ff3 100644 --- a/gst/audioparsers/gstamrparse.c +++ b/gst/audioparsers/gstamrparse.c @@ -43,7 +43,7 @@ #include <string.h> #include "gstamrparse.h" - +#include <gst/pbutils/pbutils.h> static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, @@ -81,6 +81,8 @@ static GstCaps *gst_amr_parse_sink_getcaps (GstBaseParse * parse, static GstFlowReturn gst_amr_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame, gint * skipsize); +static GstFlowReturn gst_amr_parse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); G_DEFINE_TYPE (GstAmrParse, gst_amr_parse, GST_TYPE_BASE_PARSE); @@ -113,6 +115,8 @@ gst_amr_parse_class_init (GstAmrParseClass * klass) parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_amr_parse_sink_setcaps); parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_amr_parse_sink_getcaps); parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_amr_parse_handle_frame); + parse_class->pre_push_frame = + GST_DEBUG_FUNCPTR (gst_amr_parse_pre_push_frame); } @@ -128,7 +132,7 @@ gst_amr_parse_init (GstAmrParse * amrparse) /* init rest */ gst_base_parse_set_min_frame_size (GST_BASE_PARSE (amrparse), 62); GST_DEBUG ("initialized"); - + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (amrparse)); } @@ -338,6 +342,7 @@ gst_amr_parse_start (GstBaseParse * parse) GST_DEBUG ("start"); amrparse->need_header = TRUE; amrparse->header = 0; + amrparse->sent_codec_tag = FALSE; return TRUE; } @@ -410,3 +415,30 @@ gst_amr_parse_sink_getcaps (GstBaseParse * parse, GstCaps * filter) return res; } + +static GstFlowReturn +gst_amr_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstAmrParse *amrparse = GST_AMR_PARSE (parse); + + if (!amrparse->sent_codec_tag) { + GstTagList *taglist; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); + + /* codec tag */ + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (amrparse), + gst_event_new_tag (taglist)); + + /* also signals the end of first-frame processing */ + amrparse->sent_codec_tag = TRUE; + } + + return GST_FLOW_OK; +} diff --git a/gst/audioparsers/gstamrparse.h b/gst/audioparsers/gstamrparse.h index 7898b7158..29bc868f0 100644 --- a/gst/audioparsers/gstamrparse.h +++ b/gst/audioparsers/gstamrparse.h @@ -61,6 +61,7 @@ struct _GstAmrParse { GstBaseParse element; const gint *block_size; gboolean need_header; + gboolean sent_codec_tag; gint header; gboolean wide; }; diff --git a/gst/audioparsers/gstdcaparse.c b/gst/audioparsers/gstdcaparse.c index 6df74ea62..4b1a6ea98 100644 --- a/gst/audioparsers/gstdcaparse.c +++ b/gst/audioparsers/gstdcaparse.c @@ -48,8 +48,8 @@ #include <string.h> #include "gstdcaparse.h" -#include <gst/base/gstbytereader.h> -#include <gst/base/gstbitreader.h> +#include <gst/base/base.h> +#include <gst/pbutils/pbutils.h> GST_DEBUG_CATEGORY_STATIC (dca_parse_debug); #define GST_CAT_DEFAULT dca_parse_debug @@ -76,6 +76,8 @@ static gboolean gst_dca_parse_start (GstBaseParse * parse); static gboolean gst_dca_parse_stop (GstBaseParse * parse); static GstFlowReturn gst_dca_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame, gint * skipsize); +static GstFlowReturn gst_dca_parse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); static GstCaps *gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter); static gboolean gst_dca_parse_set_sink_caps (GstBaseParse * parse, @@ -99,6 +101,8 @@ gst_dca_parse_class_init (GstDcaParseClass * klass) parse_class->start = GST_DEBUG_FUNCPTR (gst_dca_parse_start); parse_class->stop = GST_DEBUG_FUNCPTR (gst_dca_parse_stop); parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_dca_parse_handle_frame); + parse_class->pre_push_frame = + GST_DEBUG_FUNCPTR (gst_dca_parse_pre_push_frame); parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_get_sink_caps); parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_set_sink_caps); @@ -122,6 +126,7 @@ gst_dca_parse_reset (GstDcaParse * dcaparse) dcaparse->block_size = -1; dcaparse->frame_size = -1; dcaparse->last_sync = 0; + dcaparse->sent_codec_tag = FALSE; } static void @@ -132,6 +137,8 @@ gst_dca_parse_init (GstDcaParse * dcaparse) gst_dca_parse_reset (dcaparse); dcaparse->baseparse_chainfunc = GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (dcaparse))->chainfunc; + + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (dcaparse)); } static void @@ -474,6 +481,19 @@ gst_dca_parse_chain_priv (GstPad * pad, GstObject * parent, GstBuffer * buffer) return ret; } +static void +remove_fields (GstCaps * caps) +{ + guint i, n; + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + gst_structure_remove_field (s, "framed"); + } +} + static GstCaps * gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { @@ -481,29 +501,23 @@ gst_dca_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) GstCaps *res; templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); - peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); + if (filter) { + GstCaps *fcopy = gst_caps_copy (filter); + /* Remove the fields we convert */ + remove_fields (fcopy); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), fcopy); + gst_caps_unref (fcopy); + } else + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), NULL); if (peercaps) { - guint i, n; - /* Remove the framed field */ peercaps = gst_caps_make_writable (peercaps); - n = gst_caps_get_size (peercaps); - for (i = 0; i < n; i++) { - GstStructure *s = gst_caps_get_structure (peercaps, i); - - gst_structure_remove_field (s, "framed"); - } + remove_fields (peercaps); res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); gst_caps_unref (peercaps); - res = gst_caps_make_writable (res); - - /* Append the template caps because we still want to accept - * caps without any fields in the case upstream does not - * know anything. - */ - gst_caps_append (res, templ); + gst_caps_unref (templ); } else { res = templ; } @@ -534,3 +548,30 @@ gst_dca_parse_set_sink_caps (GstBaseParse * parse, GstCaps * caps) } return TRUE; } + +static GstFlowReturn +gst_dca_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstDcaParse *dcaparse = GST_DCA_PARSE (parse); + + if (!dcaparse->sent_codec_tag) { + GstTagList *taglist; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); + + /* codec tag */ + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (dcaparse), + gst_event_new_tag (taglist)); + + /* also signals the end of first-frame processing */ + dcaparse->sent_codec_tag = TRUE; + } + + return GST_FLOW_OK; +} diff --git a/gst/audioparsers/gstdcaparse.h b/gst/audioparsers/gstdcaparse.h index b1ac76dfa..9198a06b8 100644 --- a/gst/audioparsers/gstdcaparse.h +++ b/gst/audioparsers/gstdcaparse.h @@ -58,6 +58,8 @@ struct _GstDcaParse { gint block_size; gint frame_size; + gboolean sent_codec_tag; + guint32 last_sync; GstPadChainFunction baseparse_chainfunc; diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c index 875694217..cb7a39ec2 100644 --- a/gst/audioparsers/gstflacparse.c +++ b/gst/audioparsers/gstflacparse.c @@ -58,9 +58,8 @@ #include <string.h> #include <gst/tag/tag.h> #include <gst/audio/audio.h> - -#include <gst/base/gstbitreader.h> -#include <gst/base/gstbytereader.h> +#include <gst/base/base.h> +#include <gst/pbutils/pbutils.h> GST_DEBUG_CATEGORY_STATIC (flacparse_debug); #define GST_CAT_DEFAULT flacparse_debug @@ -258,6 +257,7 @@ static void gst_flac_parse_init (GstFlacParse * flacparse) { flacparse->check_frame_checksums = DEFAULT_CHECK_FRAME_CHECKSUMS; + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (flacparse)); } static void @@ -337,6 +337,8 @@ gst_flac_parse_start (GstBaseParse * parse) flacparse->sample_number = 0; flacparse->strategy_checked = FALSE; + flacparse->sent_codec_tag = FALSE; + /* "fLaC" marker */ gst_base_parse_set_min_frame_size (GST_BASE_PARSE (flacparse), 4); @@ -503,9 +505,7 @@ gst_flac_parse_frame_header_is_valid (GstFlacParse * flacparse, } /* calculate real blocksize from the blocksize index */ - if (block_size == 0) { - goto error; - } else if (block_size == 6) { + if (block_size == 6) { if (!gst_bit_reader_get_bits_uint16 (&reader, &block_size, 8)) goto need_more_data; block_size++; @@ -1689,6 +1689,25 @@ gst_flac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) { GstFlacParse *flacparse = GST_FLAC_PARSE (parse); + if (!flacparse->sent_codec_tag) { + GstTagList *taglist; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); + + /* codec tag */ + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse), + gst_event_new_tag (taglist)); + + /* also signals the end of first-frame processing */ + flacparse->sent_codec_tag = TRUE; + } + /* Push tags */ if (flacparse->tags) { gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse), @@ -1793,6 +1812,19 @@ gst_flac_parse_src_event (GstBaseParse * parse, GstEvent * event) return res; } +static void +remove_fields (GstCaps * caps) +{ + guint i, n; + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + gst_structure_remove_field (s, "framed"); + } +} + static GstCaps * gst_flac_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { @@ -1800,29 +1832,23 @@ gst_flac_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) GstCaps *res; templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); - peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); + if (filter) { + GstCaps *fcopy = gst_caps_copy (filter); + /* Remove the fields we convert */ + remove_fields (fcopy); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), fcopy); + gst_caps_unref (fcopy); + } else + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), NULL); if (peercaps) { - guint i, n; - /* Remove the framed field */ peercaps = gst_caps_make_writable (peercaps); - n = gst_caps_get_size (peercaps); - for (i = 0; i < n; i++) { - GstStructure *s = gst_caps_get_structure (peercaps, i); - - gst_structure_remove_field (s, "framed"); - } + remove_fields (peercaps); res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); gst_caps_unref (peercaps); - res = gst_caps_make_writable (res); - - /* Append the template caps because we still want to accept - * caps without any fields in the case upstream does not - * know anything. - */ - gst_caps_append (res, templ); + gst_caps_unref (templ); } else { res = templ; } diff --git a/gst/audioparsers/gstflacparse.h b/gst/audioparsers/gstflacparse.h index 5113abc3c..3bd718e9c 100644 --- a/gst/audioparsers/gstflacparse.h +++ b/gst/audioparsers/gstflacparse.h @@ -76,6 +76,8 @@ struct _GstFlacParse { guint64 sample_number; gboolean strategy_checked; + gboolean sent_codec_tag; + GstTagList *tags; GstToc *toc; diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c index aaa934943..31bbc4cb0 100644 --- a/gst/audioparsers/gstmpegaudioparse.c +++ b/gst/audioparsers/gstmpegaudioparse.c @@ -49,6 +49,7 @@ #include "gstmpegaudioparse.h" #include <gst/base/gstbytereader.h> +#include <gst/pbutils/pbutils.h> GST_DEBUG_CATEGORY_STATIC (mpeg_audio_parse_debug); #define GST_CAT_DEFAULT mpeg_audio_parse_debug @@ -225,6 +226,7 @@ static void gst_mpeg_audio_parse_init (GstMpegAudioParse * mp3parse) { gst_mpeg_audio_parse_reset (mp3parse); + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (mp3parse)); } static void @@ -1086,13 +1088,6 @@ gst_mpeg_audio_parse_handle_first_frame (GstMpegAudioParse * mp3parse, goto out_vbri; } - if (avail < offset_vbri + 26) { - GST_DEBUG_OBJECT (mp3parse, - "Not enough data to read VBRI header (need %d)", - offset_vbri + 26 + nseek_points * seek_bytes); - goto cleanup; - } - data = map.data; data += offset_vbri + 26; @@ -1331,17 +1326,16 @@ gst_mpeg_audio_parse_pre_push_frame (GstBaseParse * parse, * have already been sent */ if (!mp3parse->sent_codec_tag) { - gchar *codec; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); /* codec tag */ - if (mp3parse->layer == 3) { - codec = g_strdup_printf ("MPEG %d Audio, Layer %d (MP3)", - mp3parse->version, mp3parse->layer); - } else { - codec = g_strdup_printf ("MPEG %d Audio, Layer %d", - mp3parse->version, mp3parse->layer); - } - taglist = gst_tag_list_new (GST_TAG_AUDIO_CODEC, codec, NULL); + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + if (mp3parse->hdr_bitrate > 0 && mp3parse->xing_bitrate == 0 && mp3parse->vbri_bitrate == 0) { /* We don't have a VBR bitrate, so post the available bitrate as @@ -1351,7 +1345,6 @@ gst_mpeg_audio_parse_pre_push_frame (GstBaseParse * parse, } gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (mp3parse), gst_event_new_tag (taglist)); - g_free (codec); /* also signals the end of first-frame processing */ mp3parse->sent_codec_tag = TRUE; @@ -1398,6 +1391,19 @@ gst_mpeg_audio_parse_pre_push_frame (GstBaseParse * parse, return GST_FLOW_OK; } +static void +remove_fields (GstCaps * caps) +{ + guint i, n; + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + gst_structure_remove_field (s, "parsed"); + } +} + static GstCaps * gst_mpeg_audio_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { @@ -1405,29 +1411,23 @@ gst_mpeg_audio_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) GstCaps *res; templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); - peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); + if (filter) { + GstCaps *fcopy = gst_caps_copy (filter); + /* Remove the fields we convert */ + remove_fields (fcopy); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), fcopy); + gst_caps_unref (fcopy); + } else + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), NULL); if (peercaps) { - guint i, n; - /* Remove the parsed field */ peercaps = gst_caps_make_writable (peercaps); - n = gst_caps_get_size (peercaps); - for (i = 0; i < n; i++) { - GstStructure *s = gst_caps_get_structure (peercaps, i); - - gst_structure_remove_field (s, "parsed"); - } + remove_fields (peercaps); res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); gst_caps_unref (peercaps); - res = gst_caps_make_writable (res); - - /* Append the template caps because we still want to accept - * caps without any fields in the case upstream does not - * know anything. - */ - gst_caps_append (res, templ); + gst_caps_unref (templ); } else { res = templ; } diff --git a/gst/audioparsers/gstsbcparse.c b/gst/audioparsers/gstsbcparse.c index 5df456ae6..bda6d2ff2 100644 --- a/gst/audioparsers/gstsbcparse.c +++ b/gst/audioparsers/gstsbcparse.c @@ -40,9 +40,8 @@ #include <string.h> #include <gst/tag/tag.h> #include <gst/audio/audio.h> - -#include <gst/base/gstbitreader.h> -#include <gst/base/gstbytereader.h> +#include <gst/base/base.h> +#include <gst/pbutils/pbutils.h> #define SBC_SYNCBYTE 0x9C @@ -67,6 +66,8 @@ static gboolean gst_sbc_parse_start (GstBaseParse * parse); static gboolean gst_sbc_parse_stop (GstBaseParse * parse); static GstFlowReturn gst_sbc_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame, gint * skipsize); +static GstFlowReturn gst_sbc_parse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); static GstCaps *gst_sbc_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter); @@ -90,7 +91,8 @@ gst_sbc_parse_class_init (GstSbcParseClass * klass) baseparse_class->start = GST_DEBUG_FUNCPTR (gst_sbc_parse_start); baseparse_class->stop = GST_DEBUG_FUNCPTR (gst_sbc_parse_stop); - + baseparse_class->pre_push_frame = + GST_DEBUG_FUNCPTR (gst_sbc_parse_pre_push_frame); baseparse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_sbc_parse_handle_frame); baseparse_class->get_sink_caps = @@ -115,12 +117,14 @@ gst_sbc_parse_reset (GstSbcParse * sbcparse) sbcparse->n_blocks = -1; sbcparse->n_subbands = -1; sbcparse->bitpool = -1; + sbcparse->sent_codec_tag = FALSE; } static void gst_sbc_parse_init (GstSbcParse * sbcparse) { gst_sbc_parse_reset (sbcparse); + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (sbcparse)); } static gboolean @@ -299,6 +303,19 @@ need_more_data: } } +static void +remove_fields (GstCaps * caps) +{ + guint i, n; + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + gst_structure_remove_field (s, "parsed"); + } +} + static GstCaps * gst_sbc_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { @@ -306,29 +323,23 @@ gst_sbc_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) GstCaps *res; templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); - peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); + if (filter) { + GstCaps *fcopy = gst_caps_copy (filter); + /* Remove the fields we convert */ + remove_fields (fcopy); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), fcopy); + gst_caps_unref (fcopy); + } else + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), NULL); if (peercaps) { - guint i, n; - /* Remove the parsed field */ peercaps = gst_caps_make_writable (peercaps); - n = gst_caps_get_size (peercaps); - for (i = 0; i < n; i++) { - GstStructure *s = gst_caps_get_structure (peercaps, i); - - gst_structure_remove_field (s, "parsed"); - } + remove_fields (peercaps); res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); gst_caps_unref (peercaps); - res = gst_caps_make_writable (res); - - /* Append the template caps because we still want to accept - * caps without any fields in the case upstream does not - * know anything. - */ - gst_caps_append (res, templ); + gst_caps_unref (templ); } else { res = templ; } @@ -485,3 +496,30 @@ gst_sbc_parse_header (const guint8 * data, guint * rate, guint * n_blocks, return gst_sbc_calc_framelen (*n_subbands, *ch_mode, *n_blocks, *bitpool); } + +static GstFlowReturn +gst_sbc_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame) +{ + GstSbcParse *sbcparse = GST_SBC_PARSE (parse); + + if (!sbcparse->sent_codec_tag) { + GstTagList *taglist; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); + + /* codec tag */ + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (sbcparse), + gst_event_new_tag (taglist)); + + /* also signals the end of first-frame processing */ + sbcparse->sent_codec_tag = TRUE; + } + + return GST_FLOW_OK; +} diff --git a/gst/audioparsers/gstsbcparse.h b/gst/audioparsers/gstsbcparse.h index 2115270e9..1bebbe1ff 100644 --- a/gst/audioparsers/gstsbcparse.h +++ b/gst/audioparsers/gstsbcparse.h @@ -61,6 +61,8 @@ struct _GstSbcParse { gint n_blocks; gint n_subbands; gint bitpool; + + gboolean sent_codec_tag; }; struct _GstSbcParseClass { diff --git a/gst/audioparsers/gstwavpackparse.c b/gst/audioparsers/gstwavpackparse.c index 8f124dd24..9c613f96e 100644 --- a/gst/audioparsers/gstwavpackparse.c +++ b/gst/audioparsers/gstwavpackparse.c @@ -41,7 +41,8 @@ #include "gstwavpackparse.h" -#include <gst/base/gstbytereader.h> +#include <gst/base/base.h> +#include <gst/pbutils/pbutils.h> #include <gst/audio/audio.h> GST_DEBUG_CATEGORY_STATIC (wavpack_parse_debug); @@ -70,6 +71,8 @@ static GstFlowReturn gst_wavpack_parse_handle_frame (GstBaseParse * parse, GstBaseParseFrame * frame, gint * skipsize); static GstCaps *gst_wavpack_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter); +static GstFlowReturn gst_wavpack_parse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame); #define gst_wavpack_parse_parent_class parent_class G_DEFINE_TYPE (GstWavpackParse, gst_wavpack_parse, GST_TYPE_BASE_PARSE); @@ -92,6 +95,8 @@ gst_wavpack_parse_class_init (GstWavpackParseClass * klass) GST_DEBUG_FUNCPTR (gst_wavpack_parse_handle_frame); parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_wavpack_parse_get_sink_caps); + parse_class->pre_push_frame = + GST_DEBUG_FUNCPTR (gst_wavpack_parse_pre_push_frame); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_template)); @@ -111,12 +116,14 @@ gst_wavpack_parse_reset (GstWavpackParse * wvparse) wvparse->sample_rate = -1; wvparse->width = -1; wvparse->total_samples = 0; + wvparse->sent_codec_tag = FALSE; } static void gst_wavpack_parse_init (GstWavpackParse * wvparse) { gst_wavpack_parse_reset (wvparse); + GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (wvparse)); } static void @@ -608,6 +615,19 @@ more: return GST_FLOW_OK; } +static void +remove_fields (GstCaps * caps) +{ + guint i, n; + + n = gst_caps_get_size (caps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (caps, i); + + gst_structure_remove_field (s, "framed"); + } +} + static GstCaps * gst_wavpack_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) { @@ -615,29 +635,23 @@ gst_wavpack_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) GstCaps *res; templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); - peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), filter); + if (filter) { + GstCaps *fcopy = gst_caps_copy (filter); + /* Remove the fields we convert */ + remove_fields (fcopy); + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), fcopy); + gst_caps_unref (fcopy); + } else + peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), NULL); if (peercaps) { - guint i, n; - /* Remove the framed field */ peercaps = gst_caps_make_writable (peercaps); - n = gst_caps_get_size (peercaps); - for (i = 0; i < n; i++) { - GstStructure *s = gst_caps_get_structure (peercaps, i); - - gst_structure_remove_field (s, "framed"); - } + remove_fields (peercaps); res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); gst_caps_unref (peercaps); - res = gst_caps_make_writable (res); - - /* Append the template caps because we still want to accept - * caps without any fields in the case upstream does not - * know anything. - */ - gst_caps_append (res, templ); + gst_caps_unref (templ); } else { res = templ; } @@ -653,3 +667,31 @@ gst_wavpack_parse_get_sink_caps (GstBaseParse * parse, GstCaps * filter) return res; } + +static GstFlowReturn +gst_wavpack_parse_pre_push_frame (GstBaseParse * parse, + GstBaseParseFrame * frame) +{ + GstWavpackParse *wavpackparse = GST_WAVPACK_PARSE (parse); + + if (!wavpackparse->sent_codec_tag) { + GstTagList *taglist; + GstCaps *caps; + + taglist = gst_tag_list_new_empty (); + + /* codec tag */ + caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse)); + gst_pb_utils_add_codec_description_to_tag_list (taglist, + GST_TAG_AUDIO_CODEC, caps); + gst_caps_unref (caps); + + gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (wavpackparse), + gst_event_new_tag (taglist)); + + /* also signals the end of first-frame processing */ + wavpackparse->sent_codec_tag = TRUE; + } + + return GST_FLOW_OK; +} diff --git a/gst/audioparsers/gstwavpackparse.h b/gst/audioparsers/gstwavpackparse.h index 1070f5915..30325aa26 100644 --- a/gst/audioparsers/gstwavpackparse.h +++ b/gst/audioparsers/gstwavpackparse.h @@ -112,6 +112,8 @@ struct _GstWavpackParse { gint channel_mask; guint total_samples; + + gboolean sent_codec_tag; }; /** diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in index 367c6979c..c89bf0c61 100644 --- a/gst/auparse/Makefile.in +++ b/gst/auparse/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in index f6e834048..1db2a5116 100644 --- a/gst/autodetect/Makefile.in +++ b/gst/autodetect/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -490,7 +488,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c index 09306b49e..1dfc4cebd 100644 --- a/gst/autodetect/gstautoaudiosink.c +++ b/gst/autodetect/gstautoaudiosink.c @@ -39,35 +39,25 @@ #include "config.h" #endif -#include <string.h> - #include "gstautoaudiosink.h" -#include "gstautodetect.h" #define DEFAULT_TS_OFFSET 0 -#define DEFAULT_SYNC TRUE /* Properties */ enum { PROP_0, - PROP_CAPS, PROP_TS_OFFSET, - PROP_SYNC, }; -static GstStateChangeReturn -gst_auto_audio_sink_change_state (GstElement * element, - GstStateChange transition); -static void gst_auto_audio_sink_dispose (GstAutoAudioSink * sink); -static void gst_auto_audio_sink_clear_kid (GstAutoAudioSink * sink); static void gst_auto_audio_sink_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_auto_audio_sink_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +static void gst_auto_audio_sink_configure (GstAutoDetect * autodetect, + GstElement * kid); -#define gst_auto_audio_sink_parent_class parent_class -G_DEFINE_TYPE (GstAutoAudioSink, gst_auto_audio_sink, GST_TYPE_BIN); +G_DEFINE_TYPE (GstAutoAudioSink, gst_auto_audio_sink, GST_TYPE_AUTO_DETECT); static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, @@ -77,340 +67,45 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", static void gst_auto_audio_sink_class_init (GstAutoAudioSinkClass * klass) { - GObjectClass *gobject_class; - GstElementClass *eklass; - - gobject_class = G_OBJECT_CLASS (klass); - eklass = GST_ELEMENT_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + GstAutoDetectClass *aklass = GST_AUTO_DETECT_CLASS (klass); - gobject_class->dispose = (GObjectFinalizeFunc) gst_auto_audio_sink_dispose; gobject_class->set_property = gst_auto_audio_sink_set_property; gobject_class->get_property = gst_auto_audio_sink_get_property; - eklass->change_state = GST_DEBUG_FUNCPTR (gst_auto_audio_sink_change_state); - - /** - * GstAutoAudioSink:filter-caps - * - * This property will filter out candidate sinks that can handle the specified - * caps. By default only audio sinks that support raw floating point and - * integer audio are selected. - * - * This property can only be set before the element goes to the READY state. - * - * Since: 0.10.7 - **/ - g_object_class_install_property (gobject_class, PROP_CAPS, - g_param_spec_boxed ("filter-caps", "Filter caps", - "Filter sink candidates using these caps.", GST_TYPE_CAPS, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + aklass->configure = gst_auto_audio_sink_configure; g_object_class_install_property (gobject_class, PROP_TS_OFFSET, g_param_spec_int64 ("ts-offset", "TS Offset", "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 audio sink", "Sink/Audio", "Wrapper audio sink for automatically detected audio sink", "Jan Schmidt <thaytan@noraisin.net>"); } -static void -gst_auto_audio_sink_dispose (GstAutoAudioSink * sink) -{ - gst_auto_audio_sink_clear_kid (sink); - - if (sink->filter_caps) - gst_caps_unref (sink->filter_caps); - sink->filter_caps = NULL; - - G_OBJECT_CLASS (parent_class)->dispose ((GObject *) sink); -} - -static void -gst_auto_audio_sink_clear_kid (GstAutoAudioSink * sink) -{ - if (sink->kid) { - gst_element_set_state (sink->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (sink), sink->kid); - sink->kid = NULL; - /* Don't lose the SINK flag */ - GST_OBJECT_FLAG_SET (sink, GST_ELEMENT_FLAG_SINK); - } -} - -/* - * Hack to make initial linking work; ideally, this'd work even when - * no target has been assigned to the ghostpad yet. - */ -static void -gst_auto_audio_sink_reset (GstAutoAudioSink * sink) -{ - GstPad *targetpad; - - gst_auto_audio_sink_clear_kid (sink); - - /* fakesink placeholder */ - sink->kid = gst_element_factory_make ("fakesink", "tempsink"); - gst_bin_add (GST_BIN (sink), sink->kid); - - /* pad */ - targetpad = gst_element_get_static_pad (sink->kid, "sink"); - gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad); - gst_object_unref (targetpad); -} - -static GstStaticCaps raw_caps = GST_STATIC_CAPS ("audio/x-raw"); - static void gst_auto_audio_sink_init (GstAutoAudioSink * sink) { - sink->pad = gst_ghost_pad_new_no_target ("sink", GST_PAD_SINK); - gst_element_add_pad (GST_ELEMENT (sink), sink->pad); + GstAutoDetect *autodetect = GST_AUTO_DETECT (sink); - gst_auto_audio_sink_reset (sink); + autodetect->media_klass = "Audio"; + autodetect->flag = GST_ELEMENT_FLAG_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); -} - -static gboolean -gst_auto_audio_sink_factory_filter (GstPluginFeature * feature, gpointer data) -{ - guint rank; - const gchar *klass; - - /* we only care about element factories */ - if (!GST_IS_ELEMENT_FACTORY (feature)) - return FALSE; - - /* audio sinks */ - klass = gst_element_factory_get_metadata (GST_ELEMENT_FACTORY (feature), - GST_ELEMENT_METADATA_KLASS); - if (!(strstr (klass, "Sink") && strstr (klass, "Audio"))) - return FALSE; - - /* only select elements with autoplugging rank */ - rank = gst_plugin_feature_get_rank (feature); - if (rank < GST_RANK_MARGINAL) - return FALSE; - - return TRUE; -} - -static GstElement * -gst_auto_audio_sink_create_element_with_pretty_name (GstAutoAudioSink * sink, - GstElementFactory * factory) -{ - GstElement *element; - gchar *name, *marker; - - marker = g_strdup (GST_OBJECT_NAME (factory)); - if (g_str_has_suffix (marker, "sink")) - marker[strlen (marker) - 4] = '\0'; - if (g_str_has_prefix (marker, "gst")) - g_memmove (marker, marker + 3, strlen (marker + 3) + 1); - name = g_strdup_printf ("%s-actual-sink-%s", GST_OBJECT_NAME (sink), marker); - g_free (marker); - - element = gst_element_factory_create (factory, name); - g_free (name); - - return element; -} - -static GstElement * -gst_auto_audio_sink_find_best (GstAutoAudioSink * sink) -{ - GList *list, *item; - GstElement *choice = NULL; - GstMessage *message = NULL; - GSList *errors = NULL; - GstBus *bus = gst_bus_new (); - GstPad *el_pad = NULL; - GstCaps *el_caps = NULL; - gboolean no_match = TRUE; - - list = gst_registry_feature_filter (gst_registry_get (), - (GstPluginFeatureFilter) gst_auto_audio_sink_factory_filter, FALSE, sink); - list = - g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); - - /* We don't treat sound server sinks special. Our policy is that sound - * server sinks that have a rank must not auto-spawn a daemon under any - * circumstances, so there's nothing for us to worry about here */ - GST_LOG_OBJECT (sink, "Trying to find usable audio devices ..."); - - for (item = list; item != NULL; item = item->next) { - GstElementFactory *f = GST_ELEMENT_FACTORY (item->data); - GstElement *el; - - if ((el = gst_auto_audio_sink_create_element_with_pretty_name (sink, f))) { - GstStateChangeReturn ret; - - GST_DEBUG_OBJECT (sink, "Testing %s", GST_OBJECT_NAME (f)); - - /* If autoaudiosink has been provided with filter caps, - * accept only sinks that match with the filter caps */ - if (sink->filter_caps) { - el_pad = gst_element_get_static_pad (GST_ELEMENT (el), "sink"); - el_caps = gst_pad_query_caps (el_pad, NULL); - gst_object_unref (el_pad); - GST_DEBUG_OBJECT (sink, - "Checking caps: %" GST_PTR_FORMAT " vs. %" GST_PTR_FORMAT, - sink->filter_caps, el_caps); - no_match = !gst_caps_can_intersect (sink->filter_caps, el_caps); - gst_caps_unref (el_caps); - - if (no_match) { - GST_DEBUG_OBJECT (sink, "Incompatible caps"); - gst_object_unref (el); - continue; - } else { - GST_DEBUG_OBJECT (sink, "Found compatible caps"); - } - } - - gst_element_set_bus (el, bus); - ret = gst_element_set_state (el, GST_STATE_READY); - if (ret == GST_STATE_CHANGE_SUCCESS) { - GST_DEBUG_OBJECT (sink, "This worked!"); - choice = el; - break; - } - - /* collect all error messages */ - while ((message = gst_bus_pop_filtered (bus, GST_MESSAGE_ERROR))) { - GST_DEBUG_OBJECT (sink, "error message %" GST_PTR_FORMAT, message); - errors = g_slist_append (errors, message); - } - - gst_element_set_state (el, GST_STATE_NULL); - gst_object_unref (el); - } - } - - GST_DEBUG_OBJECT (sink, "done trying"); - if (!choice) { - if (errors) { - /* FIXME: we forward the first error for now; but later on it might make - * sense to actually analyse them */ - gst_message_ref (GST_MESSAGE (errors->data)); - GST_DEBUG_OBJECT (sink, "reposting message %p", errors->data); - gst_element_post_message (GST_ELEMENT (sink), GST_MESSAGE (errors->data)); - } else { - /* send warning message to application and use a fakesink */ - GST_ELEMENT_WARNING (sink, RESOURCE, NOT_FOUND, (NULL), - ("Failed to find a usable audio sink")); - choice = gst_element_factory_make ("fakesink", "fake-audio-sink"); - if (g_object_class_find_property (G_OBJECT_GET_CLASS (choice), "sync")) - g_object_set (choice, "sync", TRUE, NULL); - gst_element_set_state (choice, GST_STATE_READY); - } - } - gst_object_unref (bus); - gst_plugin_feature_list_free (list); - g_slist_foreach (errors, (GFunc) gst_mini_object_unref, NULL); - g_slist_free (errors); - - return choice; } -static gboolean -gst_auto_audio_sink_detect (GstAutoAudioSink * sink) -{ - GstElement *esink; - GstPad *targetpad; - - gst_auto_audio_sink_clear_kid (sink); - - /* find element */ - GST_DEBUG_OBJECT (sink, "Creating new kid"); - if (!(esink = gst_auto_audio_sink_find_best (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 - * although it's currently always in READY and - * we're always doing NULL->READY. */ - if (GST_STATE (sink->kid) < GST_STATE (sink)) - gst_element_set_state (sink->kid, GST_STATE (sink)); - - gst_bin_add (GST_BIN (sink), esink); - - /* attach ghost pad */ - GST_DEBUG_OBJECT (sink, "Re-assigning ghostpad"); - targetpad = gst_element_get_static_pad (sink->kid, "sink"); - if (!gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad)) - goto target_failed; - - gst_object_unref (targetpad); - GST_DEBUG_OBJECT (sink, "done changing auto audio sink"); - - return TRUE; - - /* ERRORS */ -no_sink: - { - GST_ELEMENT_ERROR (sink, LIBRARY, INIT, (NULL), - ("Failed to find a supported audio sink")); - return FALSE; - } -target_failed: - { - GST_ELEMENT_ERROR (sink, LIBRARY, INIT, (NULL), - ("Failed to set target pad")); - gst_object_unref (targetpad); - return FALSE; - } -} - -static GstStateChangeReturn -gst_auto_audio_sink_change_state (GstElement * element, - GstStateChange transition) +static void +gst_auto_audio_sink_configure (GstAutoDetect * autodetect, GstElement * kid) { - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstAutoAudioSink *sink = GST_AUTO_AUDIO_SINK (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - if (!gst_auto_audio_sink_detect (sink)) - return GST_STATE_CHANGE_FAILURE; - break; - default: - break; - } + GstAutoAudioSink *self = GST_AUTO_AUDIO_SINK (autodetect); - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - if (ret == GST_STATE_CHANGE_FAILURE) - return ret; - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: - gst_auto_audio_sink_reset (sink); - break; - default: - break; - } - - return ret; + g_object_set (G_OBJECT (kid), "ts-offset", self->ts_offset, NULL); } static void @@ -418,22 +113,13 @@ gst_auto_audio_sink_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { GstAutoAudioSink *sink = GST_AUTO_AUDIO_SINK (object); + GstAutoDetect *autodetect = (GstAutoDetect *) sink; switch (prop_id) { - case PROP_CAPS: - if (sink->filter_caps) - gst_caps_unref (sink->filter_caps); - sink->filter_caps = gst_caps_copy (gst_value_get_caps (value)); - break; case PROP_TS_OFFSET: sink->ts_offset = g_value_get_int64 (value); - 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); + if (autodetect->kid) + g_object_set_property (G_OBJECT (autodetect->kid), pspec->name, value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -448,16 +134,9 @@ gst_auto_audio_sink_get_property (GObject * object, guint prop_id, GstAutoAudioSink *sink = GST_AUTO_AUDIO_SINK (object); switch (prop_id) { - case PROP_CAPS:{ - gst_value_set_caps (value, sink->filter_caps); - break; - } 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 6a049aee3..24a0b25ed 100644 --- a/gst/autodetect/gstautoaudiosink.h +++ b/gst/autodetect/gstautoaudiosink.h @@ -21,6 +21,7 @@ #define __GST_AUTO_AUDIO_SINK_H__ #include <gst/gst.h> +#include "gstautodetect.h" G_BEGIN_DECLS @@ -38,18 +39,13 @@ G_BEGIN_DECLS (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_AUTO_AUDIO_SINK)) typedef struct _GstAutoAudioSink { - GstBin parent; + GstAutoDetect parent; - /* explicit pointers to stuff used */ - GstPad *pad; - GstElement *kid; - GstCaps *filter_caps; GstClockTimeDiff ts_offset; - gboolean sync; } GstAutoAudioSink; typedef struct _GstAutoAudioSinkClass { - GstBinClass parent_class; + GstAutoDetectClass parent_class; } GstAutoAudioSinkClass; GType gst_auto_audio_sink_get_type (void); diff --git a/gst/autodetect/gstautoaudiosrc.c b/gst/autodetect/gstautoaudiosrc.c index f20cf57e9..e60b24c86 100644 --- a/gst/autodetect/gstautoaudiosrc.c +++ b/gst/autodetect/gstautoaudiosrc.c @@ -40,30 +40,9 @@ #include "config.h" #endif -#include <string.h> - #include "gstautoaudiosrc.h" -#include "gstautodetect.h" - -/* Properties */ -enum -{ - PROP_0, - PROP_CAPS, -}; -static GstStateChangeReturn -gst_auto_audio_src_change_state (GstElement * element, - GstStateChange transition); -static void gst_auto_audio_src_dispose (GstAutoAudioSrc * src); -static void gst_auto_audio_src_clear_kid (GstAutoAudioSrc * src); -static void gst_auto_audio_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_auto_audio_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -#define gst_auto_audio_src_parent_class parent_class -G_DEFINE_TYPE (GstAutoAudioSrc, gst_auto_audio_src, GST_TYPE_BIN); +G_DEFINE_TYPE (GstAutoAudioSrc, gst_auto_audio_src, GST_TYPE_AUTO_DETECT); static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, @@ -73,37 +52,10 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", static void gst_auto_audio_src_class_init (GstAutoAudioSrcClass * klass) { - GObjectClass *gobject_class; - GstElementClass *eklass; - - gobject_class = G_OBJECT_CLASS (klass); - eklass = GST_ELEMENT_CLASS (klass); - - gobject_class->dispose = (GObjectFinalizeFunc) gst_auto_audio_src_dispose; - gobject_class->set_property = gst_auto_audio_src_set_property; - gobject_class->get_property = gst_auto_audio_src_get_property; - - eklass->change_state = GST_DEBUG_FUNCPTR (gst_auto_audio_src_change_state); - - /** - * GstAutoAudioSrc:filter-caps - * - * This property will filter out candidate sinks that can handle the specified - * caps. By default only audio sinks that support raw floating point and - * integer audio are selected. - * - * This property can only be set before the element goes to the READY state. - * - * Since: 0.10.14 - **/ - g_object_class_install_property (gobject_class, PROP_CAPS, - g_param_spec_boxed ("filter-caps", "Filter caps", - "Filter sink candidates using these caps.", GST_TYPE_CAPS, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); gst_element_class_add_pad_template (eklass, gst_static_pad_template_get (&src_template)); - gst_element_class_set_static_metadata (eklass, "Auto audio source", "Source/Audio", "Wrapper audio source for automatically detected audio source", @@ -111,322 +63,11 @@ gst_auto_audio_src_class_init (GstAutoAudioSrcClass * klass) "Stefan Kost <ensonic@users.sf.net>"); } -static void -gst_auto_audio_src_dispose (GstAutoAudioSrc * src) -{ - gst_auto_audio_src_clear_kid (src); - - if (src->filter_caps) - gst_caps_unref (src->filter_caps); - src->filter_caps = NULL; - - G_OBJECT_CLASS (parent_class)->dispose ((GObject *) src); -} - -static void -gst_auto_audio_src_clear_kid (GstAutoAudioSrc * src) -{ - if (src->kid) { - gst_element_set_state (src->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (src), src->kid); - src->kid = NULL; - - /* Don't lose SOURCE flag */ - GST_OBJECT_FLAG_SET (src, GST_ELEMENT_FLAG_SOURCE); - } -} - -/* - * Hack to make initial linking work; ideally, this'd work even when - * no target has been assigned to the ghostpad yet. - */ -static void -gst_auto_audio_src_reset (GstAutoAudioSrc * src) -{ - GstPad *targetpad; - - gst_auto_audio_src_clear_kid (src); - - /* fakesink placeholder */ - src->kid = gst_element_factory_make ("fakesrc", "tempsrc"); - gst_bin_add (GST_BIN (src), src->kid); - - /* pad */ - targetpad = gst_element_get_static_pad (src->kid, "src"); - gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad); - gst_object_unref (targetpad); -} - -static GstStaticCaps raw_caps = GST_STATIC_CAPS ("audio/x-raw"); - static void gst_auto_audio_src_init (GstAutoAudioSrc * src) { - src->pad = gst_ghost_pad_new_no_target ("src", GST_PAD_SRC); - gst_element_add_pad (GST_ELEMENT (src), src->pad); - - gst_auto_audio_src_reset (src); - - /* set the default raw audio caps */ - src->filter_caps = gst_static_caps_get (&raw_caps); - - /* mark as source */ - GST_OBJECT_FLAG_SET (src, GST_ELEMENT_FLAG_SOURCE); -} - -static gboolean -gst_auto_audio_src_factory_filter (GstPluginFeature * feature, gpointer data) -{ - guint rank; - const gchar *klass; - - /* we only care about element factories */ - if (!GST_IS_ELEMENT_FACTORY (feature)) - return FALSE; - - /* audio sinks */ - klass = gst_element_factory_get_metadata (GST_ELEMENT_FACTORY (feature), - GST_ELEMENT_METADATA_KLASS); - if (!(strstr (klass, "Source") && strstr (klass, "Audio"))) - return FALSE; - - /* only select elements with autoplugging rank */ - rank = gst_plugin_feature_get_rank (feature); - if (rank < GST_RANK_MARGINAL) - return FALSE; - - return TRUE; -} - -static GstElement * -gst_auto_audio_src_create_element_with_pretty_name (GstAutoAudioSrc * src, - GstElementFactory * factory) -{ - GstElement *element; - gchar *name, *marker; - - marker = g_strdup (GST_OBJECT_NAME (factory)); - if (g_str_has_suffix (marker, "src")) - marker[strlen (marker) - 4] = '\0'; - if (g_str_has_prefix (marker, "gst")) - g_memmove (marker, marker + 3, strlen (marker + 3) + 1); - name = g_strdup_printf ("%s-actual-src-%s", GST_OBJECT_NAME (src), marker); - g_free (marker); - - element = gst_element_factory_create (factory, name); - g_free (name); - - return element; -} - -static GstElement * -gst_auto_audio_src_find_best (GstAutoAudioSrc * src) -{ - GList *list, *item; - GstElement *choice = NULL; - GstMessage *message = NULL; - GSList *errors = NULL; - GstBus *bus = gst_bus_new (); - GstPad *el_pad = NULL; - GstCaps *el_caps = NULL; - gboolean no_match = TRUE; - - list = gst_registry_feature_filter (gst_registry_get (), - (GstPluginFeatureFilter) gst_auto_audio_src_factory_filter, FALSE, src); - list = - g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); - - /* We don't treat sound server sources special. Our policy is that sound - * server sources that have a rank must not auto-spawn a daemon under any - * circumstances, so there's nothing for us to worry about here */ - GST_LOG_OBJECT (src, "Trying to find usable audio devices ..."); - - for (item = list; item != NULL; item = item->next) { - GstElementFactory *f = GST_ELEMENT_FACTORY (item->data); - GstElement *el; - - if ((el = gst_auto_audio_src_create_element_with_pretty_name (src, f))) { - GstStateChangeReturn ret; - - GST_DEBUG_OBJECT (src, "Testing %s", GST_OBJECT_NAME (f)); - - /* If autoAudioSrc has been provided with filter caps, - * accept only sources that match with the filter caps */ - if (src->filter_caps) { - el_pad = gst_element_get_static_pad (GST_ELEMENT (el), "src"); - el_caps = gst_pad_query_caps (el_pad, NULL); - gst_object_unref (el_pad); - GST_DEBUG_OBJECT (src, - "Checking caps: %" GST_PTR_FORMAT " vs. %" GST_PTR_FORMAT, - src->filter_caps, el_caps); - no_match = !gst_caps_can_intersect (src->filter_caps, el_caps); - gst_caps_unref (el_caps); - - if (no_match) { - GST_DEBUG_OBJECT (src, "Incompatible caps"); - gst_object_unref (el); - continue; - } else { - GST_DEBUG_OBJECT (src, "Found compatible caps"); - } - } - - gst_element_set_bus (el, bus); - ret = gst_element_set_state (el, GST_STATE_READY); - if (ret == GST_STATE_CHANGE_SUCCESS) { - GST_DEBUG_OBJECT (src, "This worked!"); - choice = el; - break; - } - - /* collect all error messages */ - while ((message = gst_bus_pop_filtered (bus, GST_MESSAGE_ERROR))) { - GST_DEBUG_OBJECT (src, "error message %" GST_PTR_FORMAT, message); - errors = g_slist_append (errors, message); - } - - gst_element_set_state (el, GST_STATE_NULL); - gst_object_unref (el); - } - } - - GST_DEBUG_OBJECT (src, "done trying"); - if (!choice) { - if (errors) { - /* FIXME: we forward the first error for now; but later on it might make - * sense to actually analyse them */ - gst_message_ref (GST_MESSAGE (errors->data)); - GST_DEBUG_OBJECT (src, "reposting message %p", errors->data); - gst_element_post_message (GST_ELEMENT (src), GST_MESSAGE (errors->data)); - } else { - /* send warning message to application and use a fakesrc */ - GST_ELEMENT_WARNING (src, RESOURCE, NOT_FOUND, (NULL), - ("Failed to find a usable audio source")); - choice = gst_element_factory_make ("fakesrc", "fake-audio-src"); - if (g_object_class_find_property (G_OBJECT_GET_CLASS (choice), "sync")) - g_object_set (choice, "sync", TRUE, NULL); - gst_element_set_state (choice, GST_STATE_READY); - } - } - gst_object_unref (bus); - gst_plugin_feature_list_free (list); - g_slist_foreach (errors, (GFunc) gst_mini_object_unref, NULL); - g_slist_free (errors); - - return choice; -} - -static gboolean -gst_auto_audio_src_detect (GstAutoAudioSrc * src) -{ - GstElement *esrc; - GstPad *targetpad; - - gst_auto_audio_src_clear_kid (src); - - /* find element */ - GST_DEBUG_OBJECT (src, "Creating new kid"); - if (!(esrc = gst_auto_audio_src_find_best (src))) - goto no_src; - - src->kid = esrc; - /* Ensure the child is brought up to the right state to match the parent - * although it's currently always in READY and - * we're always doing NULL->READY. */ - if (GST_STATE (src->kid) < GST_STATE (src)) - gst_element_set_state (src->kid, GST_STATE (src)); - - gst_bin_add (GST_BIN (src), esrc); - - /* attach ghost pad */ - GST_DEBUG_OBJECT (src, "Re-assigning ghostpad"); - targetpad = gst_element_get_static_pad (src->kid, "src"); - if (!gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad)) - goto target_failed; - - gst_object_unref (targetpad); - GST_DEBUG_OBJECT (src, "done changing auto audio source"); - - return TRUE; - - /* ERRORS */ -no_src: - { - GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), - ("Failed to find a supported audio source")); - return FALSE; - } -target_failed: - { - GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), - ("Failed to set target pad")); - gst_object_unref (targetpad); - return FALSE; - } -} - -static GstStateChangeReturn -gst_auto_audio_src_change_state (GstElement * element, - GstStateChange transition) -{ - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstAutoAudioSrc *src = GST_AUTO_AUDIO_SRC (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - if (!gst_auto_audio_src_detect (src)) - return GST_STATE_CHANGE_FAILURE; - break; - default: - break; - } - - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - if (ret == GST_STATE_CHANGE_FAILURE) - return ret; - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: - gst_auto_audio_src_reset (src); - break; - default: - break; - } - - return ret; -} - -static void -gst_auto_audio_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstAutoAudioSrc *src = GST_AUTO_AUDIO_SRC (object); - - switch (prop_id) { - case PROP_CAPS: - if (src->filter_caps) - gst_caps_unref (src->filter_caps); - src->filter_caps = gst_caps_copy (gst_value_get_caps (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_auto_audio_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstAutoAudioSrc *src = GST_AUTO_AUDIO_SRC (object); + GstAutoDetect *autodetect = GST_AUTO_DETECT (src); - switch (prop_id) { - case PROP_CAPS:{ - gst_value_set_caps (value, src->filter_caps); - break; - } - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + autodetect->media_klass = "Audio"; + autodetect->flag = GST_ELEMENT_FLAG_SOURCE; } diff --git a/gst/autodetect/gstautoaudiosrc.h b/gst/autodetect/gstautoaudiosrc.h index 99b9aa5be..427cdaefb 100644 --- a/gst/autodetect/gstautoaudiosrc.h +++ b/gst/autodetect/gstautoaudiosrc.h @@ -22,6 +22,7 @@ #define __GST_AUTO_AUDIO_SRC_H__ #include <gst/gst.h> +#include "gstautodetect.h" G_BEGIN_DECLS @@ -39,16 +40,11 @@ G_BEGIN_DECLS (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_AUTO_AUDIO_SRC)) typedef struct _GstAutoAudioSrc { - GstBin parent; - - /* explicit pointers to stuff used */ - GstPad *pad; - GstElement *kid; - GstCaps *filter_caps; + GstAutoDetect parent; } GstAutoAudioSrc; typedef struct _GstAutoAudioSrcClass { - GstBinClass parent_class; + GstAutoDetectClass parent_class; } GstAutoAudioSrcClass; GType gst_auto_audio_src_get_type (void); diff --git a/gst/autodetect/gstautodetect.c b/gst/autodetect/gstautodetect.c index 96a8cd739..6970eaa51 100644 --- a/gst/autodetect/gstautodetect.c +++ b/gst/autodetect/gstautodetect.c @@ -21,6 +21,9 @@ #include "config.h" #endif +#include <stdio.h> +#include <string.h> + #include <gst/gst.h> #include "gstautodetect.h" @@ -31,6 +34,442 @@ GST_DEBUG_CATEGORY (autodetect_debug); +#define DEFAULT_SYNC TRUE + +/* Properties */ +enum +{ + PROP_0, + PROP_CAPS, + PROP_SYNC, +}; + +static GstStateChangeReturn gst_auto_detect_change_state (GstElement * element, + GstStateChange transition); +static void gst_auto_detect_constructed (GObject * object); +static void gst_auto_detect_dispose (GObject * self); +static void gst_auto_detect_clear_kid (GstAutoDetect * self); +static void gst_auto_detect_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_auto_detect_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +#define gst_auto_detect_parent_class parent_class +G_DEFINE_ABSTRACT_TYPE (GstAutoDetect, gst_auto_detect, GST_TYPE_BIN); + +static void +gst_auto_detect_class_init (GstAutoDetectClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *eklass; + + gobject_class = G_OBJECT_CLASS (klass); + eklass = GST_ELEMENT_CLASS (klass); + + gobject_class->constructed = gst_auto_detect_constructed; + gobject_class->dispose = gst_auto_detect_dispose; + gobject_class->set_property = gst_auto_detect_set_property; + gobject_class->get_property = gst_auto_detect_get_property; + + eklass->change_state = GST_DEBUG_FUNCPTR (gst_auto_detect_change_state); + + /** + * GstAutoDetect:filter-caps: + * + * This property will filter out candidate sinks that can handle the specified + * caps. By default only elements that support uncompressed data are selected. + * + * This property can only be set before the element goes to the READY state. + */ + g_object_class_install_property (gobject_class, PROP_CAPS, + g_param_spec_boxed ("filter-caps", "Filter caps", + "Filter sink candidates using these caps.", GST_TYPE_CAPS, + 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)); +} + +static void +gst_auto_detect_dispose (GObject * object) +{ + GstAutoDetect *self = GST_AUTO_DETECT (object); + + gst_auto_detect_clear_kid (self); + + if (self->filter_caps) + gst_caps_unref (self->filter_caps); + self->filter_caps = NULL; + + G_OBJECT_CLASS (parent_class)->dispose ((GObject *) self); +} + +static void +gst_auto_detect_clear_kid (GstAutoDetect * self) +{ + if (self->kid) { + gst_element_set_state (self->kid, GST_STATE_NULL); + gst_bin_remove (GST_BIN (self), self->kid); + self->kid = NULL; + /* Don't lose the element type flag */ + GST_OBJECT_FLAG_SET (self, self->flag); + } +} + +static GstElement * +gst_auto_detect_create_fake_element (GstAutoDetect * self) +{ + GstElement *fake; + gchar dummy_factory[10], dummy_name[20]; + + sprintf (dummy_factory, "fake%s", self->type_klass_lc); + sprintf (dummy_name, "fake-%s-%s", self->media_klass_lc, self->type_klass_lc); + fake = gst_element_factory_make (dummy_factory, dummy_name); + g_object_set (fake, "sync", self->sync, NULL); + + return fake; +} + +static gboolean +gst_auto_detect_attach_ghost_pad (GstAutoDetect * self) +{ + GstPad *target = gst_element_get_static_pad (self->kid, self->type_klass_lc); + gboolean res = gst_ghost_pad_set_target (GST_GHOST_PAD (self->pad), target); + gst_object_unref (target); + + return res; +} + +/* Hack to make initial linking work; ideally, this'd work even when + * no target has been assigned to the ghostpad yet. */ +static void +gst_auto_detect_reset (GstAutoDetect * self) +{ + gst_auto_detect_clear_kid (self); + + /* placeholder element */ + self->kid = gst_auto_detect_create_fake_element (self); + gst_bin_add (GST_BIN (self), self->kid); + + gst_auto_detect_attach_ghost_pad (self); +} + +static GstStaticCaps raw_audio_caps = GST_STATIC_CAPS ("audio/x-raw"); +static GstStaticCaps raw_video_caps = GST_STATIC_CAPS ("video/x-raw"); + +static void +gst_auto_detect_init (GstAutoDetect * self) +{ + self->sync = DEFAULT_SYNC; +} + +static void +gst_auto_detect_constructed (GObject * object) +{ + GstAutoDetect *self = GST_AUTO_DETECT (object); + gboolean is_audio; + + if (G_OBJECT_CLASS (parent_class)->constructed) + G_OBJECT_CLASS (parent_class)->constructed (object); + + is_audio = !g_strcmp0 (self->media_klass, "Audio"); + self->type_klass = (self->flag == GST_ELEMENT_FLAG_SINK) ? "Sink" : "Source"; + self->type_klass_lc = (self->flag == GST_ELEMENT_FLAG_SINK) ? "sink" : "src"; + self->media_klass_lc = is_audio ? "audio" : "video"; + /* set the default raw caps */ + self->filter_caps = gst_static_caps_get (is_audio ? &raw_audio_caps : + &raw_video_caps); + + self->pad = gst_ghost_pad_new_no_target (self->type_klass_lc, + (self->flag == GST_ELEMENT_FLAG_SINK) ? GST_PAD_SINK : GST_PAD_SRC); + gst_element_add_pad (GST_ELEMENT (self), self->pad); + + gst_auto_detect_reset (self); + + /* mark element type */ + GST_OBJECT_FLAG_SET (self, self->flag); +} + +static gboolean +gst_auto_detect_factory_filter (GstPluginFeature * feature, gpointer data) +{ + GstAutoDetect *self = (GstAutoDetect *) data; + guint rank; + const gchar *klass; + + /* we only care about element factories */ + if (!GST_IS_ELEMENT_FACTORY (feature)) + return FALSE; + + /* audio sinks */ + klass = gst_element_factory_get_metadata (GST_ELEMENT_FACTORY (feature), + GST_ELEMENT_METADATA_KLASS); + if (!(strstr (klass, self->type_klass) && strstr (klass, self->media_klass))) + return FALSE; + + /* only select elements with autoplugging rank */ + rank = gst_plugin_feature_get_rank (feature); + if (rank < GST_RANK_MARGINAL) + return FALSE; + + return TRUE; +} + +static GstElement * +create_element_with_pretty_name (GstAutoDetect * self, + GstElementFactory * factory) +{ + GstElement *element; + gchar *name, *marker; + + marker = g_strdup (GST_OBJECT_NAME (factory)); + if (g_str_has_suffix (marker, self->type_klass_lc)) + marker[strlen (marker) - 4] = '\0'; + if (g_str_has_prefix (marker, "gst")) + memmove (marker, marker + 3, strlen (marker + 3) + 1); + name = g_strdup_printf ("%s-actual-%s-%s", GST_OBJECT_NAME (self), + self->type_klass_lc, marker); + g_free (marker); + + element = gst_element_factory_create (factory, name); + g_free (name); + + return element; +} + +static GstElement * +gst_auto_detect_find_best (GstAutoDetect * self) +{ + GList *list, *item; + GstElement *choice = NULL; + GstMessage *message = NULL; + GSList *errors = NULL; + GstBus *bus = gst_bus_new (); + GstPad *el_pad = NULL; + GstCaps *el_caps = NULL; + gboolean no_match = TRUE; + + /* We don't treat sound server sinks special. Our policy is that sound + * server sinks that have a rank must not auto-spawn a daemon under any + * circumstances, so there's nothing for us to worry about here */ + list = gst_registry_feature_filter (gst_registry_get (), + (GstPluginFeatureFilter) gst_auto_detect_factory_filter, FALSE, self); + list = + g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); + + GST_LOG_OBJECT (self, "Trying to find usable %s elements ...", + self->media_klass_lc); + + for (item = list; item != NULL; item = item->next) { + GstElementFactory *f = GST_ELEMENT_FACTORY (item->data); + GstElement *el; + + if ((el = create_element_with_pretty_name (self, f))) { + GstStateChangeReturn ret; + + GST_DEBUG_OBJECT (self, "Testing %s", GST_OBJECT_NAME (f)); + + /* If autodetect has been provided with filter caps, + * accept only elements that match with the filter caps */ + if (self->filter_caps) { + el_pad = gst_element_get_static_pad (el, self->type_klass_lc); + el_caps = gst_pad_query_caps (el_pad, NULL); + gst_object_unref (el_pad); + GST_DEBUG_OBJECT (self, + "Checking caps: %" GST_PTR_FORMAT " vs. %" GST_PTR_FORMAT, + self->filter_caps, el_caps); + no_match = !gst_caps_can_intersect (self->filter_caps, el_caps); + gst_caps_unref (el_caps); + + if (no_match) { + GST_DEBUG_OBJECT (self, "Incompatible caps"); + gst_object_unref (el); + continue; + } else { + GST_DEBUG_OBJECT (self, "Found compatible caps"); + } + } + + gst_element_set_bus (el, bus); + ret = gst_element_set_state (el, GST_STATE_READY); + if (ret == GST_STATE_CHANGE_SUCCESS) { + GST_DEBUG_OBJECT (self, "This worked!"); + choice = el; + break; + } + + /* collect all error messages */ + while ((message = gst_bus_pop_filtered (bus, GST_MESSAGE_ERROR))) { + GST_DEBUG_OBJECT (self, "error message %" GST_PTR_FORMAT, message); + errors = g_slist_append (errors, message); + } + + gst_element_set_state (el, GST_STATE_NULL); + gst_object_unref (el); + } + } + + GST_DEBUG_OBJECT (self, "done trying"); + if (!choice) { + /* We post a warning and plug a fake-element. This is convenient for running + * tests without requiring hardware src/sinks. */ + if (errors) { + GError *err = NULL; + gchar *dbg = NULL; + + /* FIXME: we forward the first message for now; but later on it might make + * sense to forward all so that apps can actually analyse them. */ + gst_message_parse_error (GST_MESSAGE (errors->data), &err, &dbg); + gst_element_post_message (GST_ELEMENT_CAST (self), + gst_message_new_warning (GST_OBJECT_CAST (self), err, dbg)); + g_error_free (err); + g_free (dbg); + } else { + /* send warning message to application and use a fakesrc */ + GST_ELEMENT_WARNING (self, RESOURCE, NOT_FOUND, (NULL), + ("Failed to find a usable %s %s", self->media_klass_lc, + self->type_klass_lc)); + } + choice = gst_auto_detect_create_fake_element (self); + gst_element_set_state (choice, GST_STATE_READY); + } + gst_object_unref (bus); + gst_plugin_feature_list_free (list); + g_slist_foreach (errors, (GFunc) gst_mini_object_unref, NULL); + g_slist_free (errors); + + return choice; +} + +static gboolean +gst_auto_detect_detect (GstAutoDetect * self) +{ + GstElement *kid; + GstAutoDetectClass *klass = GST_AUTO_DETECT_GET_CLASS (self); + + gst_auto_detect_clear_kid (self); + + /* find element */ + GST_DEBUG_OBJECT (self, "Creating new kid"); + if (!(kid = gst_auto_detect_find_best (self))) + goto no_sink; + + self->has_sync = + g_object_class_find_property (G_OBJECT_GET_CLASS (kid), "sync") != NULL; + if (self->has_sync) + g_object_set (G_OBJECT (kid), "sync", self->sync, NULL); + if (klass->configure) { + klass->configure (self, kid); + } + + self->kid = kid; + /* Ensure the child is brought up to the right state to match the parent. + * Although it's currently always in READY and we're always doing NULL->READY. + */ + if (GST_STATE (self->kid) < GST_STATE (self)) + gst_element_set_state (self->kid, GST_STATE (self)); + + gst_bin_add (GST_BIN (self), kid); + + /* attach ghost pad */ + GST_DEBUG_OBJECT (self, "Re-assigning ghostpad"); + if (!gst_auto_detect_attach_ghost_pad (self)) + goto target_failed; + + GST_DEBUG_OBJECT (self, "done changing auto %s %s", self->media_klass_lc, + self->type_klass_lc); + + return TRUE; + + /* ERRORS */ +no_sink: + { + GST_ELEMENT_ERROR (self, LIBRARY, INIT, (NULL), + ("Failed to find a supported audio sink")); + return FALSE; + } +target_failed: + { + GST_ELEMENT_ERROR (self, LIBRARY, INIT, (NULL), + ("Failed to set target pad")); + return FALSE; + } +} + +static GstStateChangeReturn +gst_auto_detect_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstAutoDetect *sink = GST_AUTO_DETECT (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_auto_detect_detect (sink)) + return GST_STATE_CHANGE_FAILURE; + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_auto_detect_reset (sink); + break; + default: + break; + } + + return ret; +} + +static void +gst_auto_detect_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstAutoDetect *self = GST_AUTO_DETECT (object); + + switch (prop_id) { + case PROP_CAPS: + if (self->filter_caps) + gst_caps_unref (self->filter_caps); + self->filter_caps = gst_caps_copy (gst_value_get_caps (value)); + break; + case PROP_SYNC: + self->sync = g_value_get_boolean (value); + if (self->kid && self->has_sync) + g_object_set_property (G_OBJECT (self->kid), pspec->name, value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_auto_detect_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstAutoDetect *self = GST_AUTO_DETECT (object); + + switch (prop_id) { + case PROP_CAPS: + gst_value_set_caps (value, self->filter_caps); + break; + case PROP_SYNC: + g_value_set_boolean (value, self->sync); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + static gboolean plugin_init (GstPlugin * plugin) { diff --git a/gst/autodetect/gstautodetect.h b/gst/autodetect/gstautodetect.h index 5e6875c69..03b06aed7 100644 --- a/gst/autodetect/gstautodetect.h +++ b/gst/autodetect/gstautodetect.h @@ -20,7 +20,53 @@ #ifndef __GST_AUTO_DETECT_H__ #define __GST_AUTO_DETECT_H__ +G_BEGIN_DECLS + GST_DEBUG_CATEGORY_EXTERN (autodetect_debug); #define GST_CAT_DEFAULT autodetect_debug +#define GST_TYPE_AUTO_DETECT (gst_auto_detect_get_type ()) +#define GST_AUTO_DETECT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_AUTO_DETECT, GstAutoDetect)) +#define GST_AUTO_DETECT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_AUTO_DETECT, GstAutoDetectClass)) +#define GST_IS_AUTO_DETECT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_AUTO_DETECT)) +#define GST_IS_AUTO_DETECT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_AUTO_DETECT)) +#define GST_AUTO_DETECT_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_AUTO_DETECT, GstAutoDetectClass)) + +typedef struct _GstAutoDetect { + GstBin parent; + + /* configuration for subclasses */ + const gchar *media_klass; /* Audio/Video/... */ + GstElementFlags flag; /* GST_ELEMENT_FLAG_{SINK/SOURCE} */ + + /* explicit pointers to stuff used */ + GstPad *pad; + GstCaps *filter_caps; + gboolean sync; + + /* < private > */ + GstElement *kid; + gboolean has_sync; + const gchar *type_klass; /* Source/Sink */ + const gchar *media_klass_lc, *type_klass_lc; /* lower case versions */ + +} GstAutoDetect; + +typedef struct _GstAutoDetectClass { + GstBinClass parent_class; + + /*< public >*/ + /* virtual methods for subclasses */ + void (*configure)(GstAutoDetect *self, GstElement *kid); +} GstAutoDetectClass; + +GType gst_auto_detect_get_type (void); + +G_END_DECLS + #endif /* __GST_AUTO_DETECT_H__ */ diff --git a/gst/autodetect/gstautovideosink.c b/gst/autodetect/gstautovideosink.c index 7456095e3..6eaee6600 100644 --- a/gst/autodetect/gstautovideosink.c +++ b/gst/autodetect/gstautovideosink.c @@ -39,36 +39,25 @@ #include "config.h" #endif -#include <string.h> - #include "gstautovideosink.h" -#include "gstautodetect.h" #define DEFAULT_TS_OFFSET 0 -#define DEFAULT_SYNC TRUE /* Properties */ enum { PROP_0, - PROP_CAPS, PROP_TS_OFFSET, - PROP_SYNC, }; -static GstStateChangeReturn -gst_auto_video_sink_change_state (GstElement * element, - GstStateChange transition); -static void gst_auto_video_sink_dispose (GstAutoVideoSink * sink); -static void gst_auto_video_sink_clear_kid (GstAutoVideoSink * sink); - static void gst_auto_video_sink_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_auto_video_sink_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +static void gst_auto_video_sink_configure (GstAutoDetect * autodetect, + GstElement * kid); -#define gst_auto_video_sink_parent_class parent_class -G_DEFINE_TYPE (GstAutoVideoSink, gst_auto_video_sink, GST_TYPE_BIN); +G_DEFINE_TYPE (GstAutoVideoSink, gst_auto_video_sink, GST_TYPE_AUTO_DETECT); static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, @@ -78,41 +67,20 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", static void gst_auto_video_sink_class_init (GstAutoVideoSinkClass * klass) { - GObjectClass *gobject_class; + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + GstAutoDetectClass *aklass = GST_AUTO_DETECT_CLASS (klass); - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->dispose = (GObjectFinalizeFunc) gst_auto_video_sink_dispose; gobject_class->set_property = gst_auto_video_sink_set_property; gobject_class->get_property = gst_auto_video_sink_get_property; - eklass->change_state = GST_DEBUG_FUNCPTR (gst_auto_video_sink_change_state); - /** - * GstAutoVideoSink:filter-caps - * - * This property will filter out candidate sinks that can handle the specified - * caps. By default only video sinks that support raw rgb and yuv video - * are selected. - * - * This property can only be set before the element goes to the READY state. - * - * Since: 0.10.7 - **/ - g_object_class_install_property (gobject_class, PROP_CAPS, - g_param_spec_boxed ("filter-caps", "Filter caps", - "Filter sink candidates using these caps.", GST_TYPE_CAPS, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + aklass->configure = gst_auto_video_sink_configure; g_object_class_install_property (gobject_class, PROP_TS_OFFSET, g_param_spec_int64 ("ts-offset", "TS Offset", "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", @@ -121,284 +89,23 @@ gst_auto_video_sink_class_init (GstAutoVideoSinkClass * klass) "Jan Schmidt <thaytan@noraisin.net>"); } -static void -gst_auto_video_sink_dispose (GstAutoVideoSink * sink) -{ - gst_auto_video_sink_clear_kid (sink); - - if (sink->filter_caps) - gst_caps_unref (sink->filter_caps); - sink->filter_caps = NULL; - - G_OBJECT_CLASS (parent_class)->dispose ((GObject *) sink); -} - -static void -gst_auto_video_sink_clear_kid (GstAutoVideoSink * sink) -{ - if (sink->kid) { - gst_element_set_state (sink->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (sink), sink->kid); - sink->kid = NULL; - /* Don't lose the SINK flag */ - GST_OBJECT_FLAG_SET (sink, GST_ELEMENT_FLAG_SINK); - } -} - -/* - * Hack to make initial linking work; ideally, this'd work even when - * no target has been assigned to the ghostpad yet. - */ - -static void -gst_auto_video_sink_reset (GstAutoVideoSink * sink) -{ - GstPad *targetpad; - - /* Remove any existing element */ - gst_auto_video_sink_clear_kid (sink); - - /* fakesink placeholder */ - sink->kid = gst_element_factory_make ("fakesink", "tempsink"); - gst_bin_add (GST_BIN (sink), sink->kid); - - /* pad, setting this target should always work */ - targetpad = gst_element_get_static_pad (sink->kid, "sink"); - gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad); - gst_object_unref (targetpad); -} - -static GstStaticCaps raw_caps = GST_STATIC_CAPS ("video/x-raw"); - static void gst_auto_video_sink_init (GstAutoVideoSink * sink) { - sink->pad = gst_ghost_pad_new_no_target ("sink", GST_PAD_SINK); - gst_element_add_pad (GST_ELEMENT (sink), sink->pad); + GstAutoDetect *autodetect = GST_AUTO_DETECT (sink); - gst_auto_video_sink_reset (sink); + autodetect->media_klass = "Video"; + autodetect->flag = GST_ELEMENT_FLAG_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); -} - -static gboolean -gst_auto_video_sink_factory_filter (GstPluginFeature * feature, gpointer data) -{ - guint rank; - const gchar *klass; - - /* we only care about element factories */ - if (!GST_IS_ELEMENT_FACTORY (feature)) - return FALSE; - - /* video sinks */ - klass = gst_element_factory_get_metadata (GST_ELEMENT_FACTORY (feature), - GST_ELEMENT_METADATA_KLASS); - if (!(strstr (klass, "Sink") && strstr (klass, "Video"))) - return FALSE; - - /* only select elements with autoplugging rank */ - rank = gst_plugin_feature_get_rank (feature); - if (rank < GST_RANK_MARGINAL) - return FALSE; - - return TRUE; -} - -static GstElement * -gst_auto_video_sink_create_element_with_pretty_name (GstAutoVideoSink * sink, - GstElementFactory * factory) -{ - GstElement *element; - gchar *name, *marker; - - marker = g_strdup (GST_OBJECT_NAME (factory)); - if (g_str_has_suffix (marker, "sink")) - marker[strlen (marker) - 4] = '\0'; - if (g_str_has_prefix (marker, "gst")) - g_memmove (marker, marker + 3, strlen (marker + 3) + 1); - name = g_strdup_printf ("%s-actual-sink-%s", GST_OBJECT_NAME (sink), marker); - g_free (marker); - - element = gst_element_factory_create (factory, name); - g_free (name); - - return element; -} - -static GstElement * -gst_auto_video_sink_find_best (GstAutoVideoSink * sink) -{ - GList *list, *item; - GstElement *choice = NULL; - GstMessage *message = NULL; - GSList *errors = NULL; - GstBus *bus = gst_bus_new (); - GstPad *el_pad = NULL; - GstCaps *el_caps = NULL; - gboolean no_match = TRUE; - - list = gst_registry_feature_filter (gst_registry_get (), - (GstPluginFeatureFilter) gst_auto_video_sink_factory_filter, FALSE, sink); - list = - g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); - - GST_LOG_OBJECT (sink, "Trying to find usable video devices ..."); - - for (item = list; item != NULL; item = item->next) { - GstElementFactory *f = GST_ELEMENT_FACTORY (item->data); - GstElement *el; - - if ((el = gst_auto_video_sink_create_element_with_pretty_name (sink, f))) { - GstStateChangeReturn ret; - - GST_DEBUG_OBJECT (sink, "Testing %s", GST_OBJECT_NAME (f)); - - /* If autovideosink has been provided with filter caps, - * accept only sinks that match with the filter caps */ - if (sink->filter_caps) { - el_pad = gst_element_get_static_pad (GST_ELEMENT (el), "sink"); - el_caps = gst_pad_query_caps (el_pad, NULL); - gst_object_unref (el_pad); - GST_DEBUG_OBJECT (sink, - "Checking caps: %" GST_PTR_FORMAT " vs. %" GST_PTR_FORMAT, - sink->filter_caps, el_caps); - no_match = !gst_caps_can_intersect (sink->filter_caps, el_caps); - gst_caps_unref (el_caps); - - if (no_match) { - GST_DEBUG_OBJECT (sink, "Incompatible caps"); - gst_object_unref (el); - continue; - } else { - GST_DEBUG_OBJECT (sink, "Found compatible caps"); - } - } - - gst_element_set_bus (el, bus); - ret = gst_element_set_state (el, GST_STATE_READY); - if (ret == GST_STATE_CHANGE_SUCCESS) { - GST_DEBUG_OBJECT (sink, "This worked!"); - choice = el; - break; - } - - /* collect all error messages */ - while ((message = gst_bus_pop_filtered (bus, GST_MESSAGE_ERROR))) { - GST_DEBUG_OBJECT (sink, "error message %" GST_PTR_FORMAT, message); - errors = g_slist_append (errors, message); - } - - gst_element_set_state (el, GST_STATE_NULL); - gst_object_unref (el); - } - } - - GST_DEBUG_OBJECT (sink, "done trying"); - if (!choice) { - if (errors) { - /* FIXME: we forward the first error for now; but later on it might make - * sense to actually analyse them */ - gst_message_ref (GST_MESSAGE (errors->data)); - GST_DEBUG_OBJECT (sink, "reposting message %p", errors->data); - gst_element_post_message (GST_ELEMENT (sink), GST_MESSAGE (errors->data)); - } else { - /* send warning message to application and use a fakesink */ - GST_ELEMENT_WARNING (sink, RESOURCE, NOT_FOUND, (NULL), - ("Failed to find a usable video sink")); - choice = gst_element_factory_make ("fakesink", "fake-video-sink"); - if (g_object_class_find_property (G_OBJECT_GET_CLASS (choice), "sync")) - g_object_set (choice, "sync", TRUE, NULL); - gst_element_set_state (choice, GST_STATE_READY); - } - } - gst_object_unref (bus); - gst_plugin_feature_list_free (list); - g_slist_foreach (errors, (GFunc) gst_mini_object_unref, NULL); - g_slist_free (errors); - - return choice; -} - -static gboolean -gst_auto_video_sink_detect (GstAutoVideoSink * sink) -{ - GstElement *esink; - GstPad *targetpad; - - gst_auto_video_sink_clear_kid (sink); - - /* find element */ - GST_DEBUG_OBJECT (sink, "Creating new kid"); - if (!(esink = gst_auto_video_sink_find_best (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); - - /* attach ghost pad */ - GST_DEBUG_OBJECT (sink, "Re-assigning ghostpad"); - targetpad = gst_element_get_static_pad (sink->kid, "sink"); - if (!gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad)) - goto target_failed; - - gst_object_unref (targetpad); - GST_DEBUG_OBJECT (sink, "done changing auto video sink"); - - return TRUE; - - /* ERRORS */ -no_sink: - { - GST_ELEMENT_ERROR (sink, LIBRARY, INIT, (NULL), - ("Failed to find a supported video sink")); - return FALSE; - } -target_failed: - { - GST_ELEMENT_ERROR (sink, LIBRARY, INIT, (NULL), - ("Failed to set target pad")); - gst_object_unref (targetpad); - return FALSE; - } } -static GstStateChangeReturn -gst_auto_video_sink_change_state (GstElement * element, - GstStateChange transition) +static void +gst_auto_video_sink_configure (GstAutoDetect * autodetect, GstElement * kid) { - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstAutoVideoSink *sink = GST_AUTO_VIDEO_SINK (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - if (!gst_auto_video_sink_detect (sink)) - return GST_STATE_CHANGE_FAILURE; - break; - default: - break; - } + GstAutoVideoSink *self = GST_AUTO_VIDEO_SINK (autodetect); - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: - gst_auto_video_sink_reset (sink); - break; - default: - break; - } - - return ret; + g_object_set (G_OBJECT (kid), "ts-offset", self->ts_offset, NULL); } static void @@ -406,22 +113,13 @@ gst_auto_video_sink_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { GstAutoVideoSink *sink = GST_AUTO_VIDEO_SINK (object); + GstAutoDetect *autodetect = (GstAutoDetect *) sink; switch (prop_id) { - case PROP_CAPS: - if (sink->filter_caps) - gst_caps_unref (sink->filter_caps); - sink->filter_caps = gst_caps_copy (gst_value_get_caps (value)); - break; case PROP_TS_OFFSET: sink->ts_offset = g_value_get_int64 (value); - 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); + if (autodetect->kid) + g_object_set_property (G_OBJECT (autodetect->kid), pspec->name, value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -436,16 +134,9 @@ gst_auto_video_sink_get_property (GObject * object, guint prop_id, GstAutoVideoSink *sink = GST_AUTO_VIDEO_SINK (object); switch (prop_id) { - case PROP_CAPS:{ - gst_value_set_caps (value, sink->filter_caps); - break; - } 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 dcc1d9894..5b7db40fe 100644 --- a/gst/autodetect/gstautovideosink.h +++ b/gst/autodetect/gstautovideosink.h @@ -21,6 +21,7 @@ #define __GST_AUTO_VIDEO_SINK_H__ #include <gst/gst.h> +#include "gstautodetect.h" G_BEGIN_DECLS @@ -38,18 +39,13 @@ G_BEGIN_DECLS (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_AUTO_VIDEO_SINK)) typedef struct _GstAutoVideoSink { - GstBin parent; + GstAutoDetect parent; - /* explicit pointers to stuff used */ - GstPad *pad; - GstElement *kid; - GstCaps *filter_caps; GstClockTimeDiff ts_offset; - gboolean sync; } GstAutoVideoSink; typedef struct _GstAutoVideoSinkClass { - GstBinClass parent_class; + GstAutoDetectClass parent_class; } GstAutoVideoSinkClass; GType gst_auto_video_sink_get_type (void); diff --git a/gst/autodetect/gstautovideosrc.c b/gst/autodetect/gstautovideosrc.c index 6c0ba09c4..90018ac6d 100644 --- a/gst/autodetect/gstautovideosrc.c +++ b/gst/autodetect/gstautovideosrc.c @@ -40,31 +40,9 @@ #include "config.h" #endif -#include <string.h> - #include "gstautovideosrc.h" -#include "gstautodetect.h" - -/* Properties */ -enum -{ - PROP_0, - PROP_CAPS, -}; -static GstStateChangeReturn -gst_auto_video_src_change_state (GstElement * element, - GstStateChange transition); -static void gst_auto_video_src_dispose (GstAutoVideoSrc * src); -static void gst_auto_video_src_clear_kid (GstAutoVideoSrc * src); - -static void gst_auto_video_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_auto_video_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -#define gst_auto_video_src_parent_class parent_class -G_DEFINE_TYPE (GstAutoVideoSrc, gst_auto_video_src, GST_TYPE_BIN); +G_DEFINE_TYPE (GstAutoVideoSrc, gst_auto_video_src, GST_TYPE_AUTO_DETECT); static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, @@ -74,32 +52,8 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", static void gst_auto_video_src_class_init (GstAutoVideoSrcClass * klass) { - GObjectClass *gobject_class; GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->dispose = (GObjectFinalizeFunc) gst_auto_video_src_dispose; - gobject_class->set_property = gst_auto_video_src_set_property; - gobject_class->get_property = gst_auto_video_src_get_property; - - eklass->change_state = GST_DEBUG_FUNCPTR (gst_auto_video_src_change_state); - - /** - * GstAutoVideoSrc:filter-caps - * - * This property will filter out candidate sources that can handle the specified - * caps. By default only video sources that support raw rgb and yuv video - * are selected. - * - * This property can only be set before the element goes to the READY state. - * - * Since: 0.10.14 - **/ - g_object_class_install_property (gobject_class, PROP_CAPS, - g_param_spec_boxed ("filter-caps", "Filter caps", - "Filter src candidates using these caps.", GST_TYPE_CAPS, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - gst_element_class_add_pad_template (eklass, gst_static_pad_template_get (&src_template)); gst_element_class_set_static_metadata (eklass, "Auto video source", @@ -109,312 +63,11 @@ gst_auto_video_src_class_init (GstAutoVideoSrcClass * klass) "Stefan Kost <ensonic@users.sf.net>"); } -static void -gst_auto_video_src_dispose (GstAutoVideoSrc * src) -{ - gst_auto_video_src_clear_kid (src); - - if (src->filter_caps) - gst_caps_unref (src->filter_caps); - src->filter_caps = NULL; - - G_OBJECT_CLASS (parent_class)->dispose ((GObject *) src); -} - -static void -gst_auto_video_src_clear_kid (GstAutoVideoSrc * src) -{ - if (src->kid) { - gst_element_set_state (src->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (src), src->kid); - src->kid = NULL; - /* Don't loose SOURCE flag */ - GST_OBJECT_FLAG_SET (src, GST_ELEMENT_FLAG_SOURCE); - } -} - -/* - * Hack to make initial linking work; ideally, this'd work even when - * no target has been assigned to the ghostpad yet. - */ - -static void -gst_auto_video_src_reset (GstAutoVideoSrc * src) -{ - GstPad *targetpad; - - /* Remove any existing element */ - gst_auto_video_src_clear_kid (src); - - /* fakesrc placeholder */ - src->kid = gst_element_factory_make ("fakesrc", "tempsrc"); - gst_bin_add (GST_BIN (src), src->kid); - - /* pad */ - targetpad = gst_element_get_static_pad (src->kid, "src"); - gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad); - gst_object_unref (targetpad); -} - -static GstStaticCaps raw_caps = GST_STATIC_CAPS ("video/x-raw"); - static void gst_auto_video_src_init (GstAutoVideoSrc * src) { - src->pad = gst_ghost_pad_new_no_target ("src", GST_PAD_SRC); - gst_element_add_pad (GST_ELEMENT (src), src->pad); - - gst_auto_video_src_reset (src); - - /* set the default raw video caps */ - src->filter_caps = gst_static_caps_get (&raw_caps); - - /* mark as source */ - GST_OBJECT_FLAG_SET (src, GST_ELEMENT_FLAG_SOURCE); -} - -static gboolean -gst_auto_video_src_factory_filter (GstPluginFeature * feature, gpointer data) -{ - guint rank; - const gchar *klass; - - /* we only care about element factories */ - if (!GST_IS_ELEMENT_FACTORY (feature)) - return FALSE; - - /* video sources */ - klass = gst_element_factory_get_metadata (GST_ELEMENT_FACTORY (feature), - GST_ELEMENT_METADATA_KLASS); - if (!(strstr (klass, "Source") && strstr (klass, "Video"))) - return FALSE; - - /* only select elements with autoplugging rank */ - rank = gst_plugin_feature_get_rank (feature); - if (rank < GST_RANK_MARGINAL) - return FALSE; - - return TRUE; -} - -static GstElement * -gst_auto_video_src_create_element_with_pretty_name (GstAutoVideoSrc * src, - GstElementFactory * factory) -{ - GstElement *element; - gchar *name, *marker; - - marker = g_strdup (GST_OBJECT_NAME (factory)); - if (g_str_has_suffix (marker, "src")) - marker[strlen (marker) - 4] = '\0'; - if (g_str_has_prefix (marker, "gst")) - g_memmove (marker, marker + 3, strlen (marker + 3) + 1); - name = g_strdup_printf ("%s-actual-src-%s", GST_OBJECT_NAME (src), marker); - g_free (marker); - - element = gst_element_factory_create (factory, name); - g_free (name); - - return element; -} - -static GstElement * -gst_auto_video_src_find_best (GstAutoVideoSrc * src) -{ - GList *list, *item; - GstElement *choice = NULL; - GstMessage *message = NULL; - GSList *errors = NULL; - GstBus *bus = gst_bus_new (); - GstPad *el_pad = NULL; - GstCaps *el_caps = NULL; - gboolean no_match = TRUE; - - list = gst_registry_feature_filter (gst_registry_get (), - (GstPluginFeatureFilter) gst_auto_video_src_factory_filter, FALSE, src); - list = - g_list_sort (list, (GCompareFunc) gst_plugin_feature_rank_compare_func); - - GST_LOG_OBJECT (src, "Trying to find usable video devices ..."); - - for (item = list; item != NULL; item = item->next) { - GstElementFactory *f = GST_ELEMENT_FACTORY (item->data); - GstElement *el; - - if ((el = gst_auto_video_src_create_element_with_pretty_name (src, f))) { - GstStateChangeReturn ret; - - GST_DEBUG_OBJECT (src, "Testing %s", GST_OBJECT_NAME (f)); - - /* If AutoVideoSrc has been provided with filter caps, - * accept only sources that match with the filter caps */ - if (src->filter_caps) { - el_pad = gst_element_get_static_pad (GST_ELEMENT (el), "src"); - el_caps = gst_pad_query_caps (el_pad, NULL); - gst_object_unref (el_pad); - GST_DEBUG_OBJECT (src, - "Checking caps: %" GST_PTR_FORMAT " vs. %" GST_PTR_FORMAT, - src->filter_caps, el_caps); - no_match = !gst_caps_can_intersect (src->filter_caps, el_caps); - gst_caps_unref (el_caps); - - if (no_match) { - GST_DEBUG_OBJECT (src, "Incompatible caps"); - gst_object_unref (el); - continue; - } else { - GST_DEBUG_OBJECT (src, "Found compatible caps"); - } - } - - gst_element_set_bus (el, bus); - ret = gst_element_set_state (el, GST_STATE_READY); - if (ret == GST_STATE_CHANGE_SUCCESS) { - GST_DEBUG_OBJECT (src, "This worked!"); - choice = el; - break; - } - - /* collect all error messages */ - while ((message = gst_bus_pop_filtered (bus, GST_MESSAGE_ERROR))) { - GST_DEBUG_OBJECT (src, "error message %" GST_PTR_FORMAT, message); - errors = g_slist_append (errors, message); - } - - gst_element_set_state (el, GST_STATE_NULL); - gst_object_unref (el); - } - } - - GST_DEBUG_OBJECT (src, "done trying"); - if (!choice) { - if (errors) { - /* FIXME: we forward the first error for now; but later on it might make - * sense to actually analyse them */ - gst_message_ref (GST_MESSAGE (errors->data)); - GST_DEBUG_OBJECT (src, "reposting message %p", errors->data); - gst_element_post_message (GST_ELEMENT (src), GST_MESSAGE (errors->data)); - } else { - /* send warning message to application and use a fakesrc */ - GST_ELEMENT_WARNING (src, RESOURCE, NOT_FOUND, (NULL), - ("Failed to find a usable video source")); - choice = gst_element_factory_make ("fakesrc", "fake-video-src"); - if (g_object_class_find_property (G_OBJECT_GET_CLASS (choice), "sync")) - g_object_set (choice, "sync", TRUE, NULL); - gst_element_set_state (choice, GST_STATE_READY); - } - } - gst_object_unref (bus); - gst_plugin_feature_list_free (list); - g_slist_foreach (errors, (GFunc) gst_mini_object_unref, NULL); - g_slist_free (errors); - - return choice; -} - -static gboolean -gst_auto_video_src_detect (GstAutoVideoSrc * src) -{ - GstElement *esrc; - GstPad *targetpad; - - gst_auto_video_src_clear_kid (src); - - /* find element */ - GST_DEBUG_OBJECT (src, "Creating new kid"); - if (!(esrc = gst_auto_video_src_find_best (src))) - goto no_src; - - src->kid = esrc; - gst_bin_add (GST_BIN (src), esrc); - - /* attach ghost pad */ - GST_DEBUG_OBJECT (src, "Re-assigning ghostpad"); - targetpad = gst_element_get_static_pad (src->kid, "src"); - if (!gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad)) - goto target_failed; - - gst_object_unref (targetpad); - GST_DEBUG_OBJECT (src, "done changing auto video source"); - - return TRUE; - - /* ERRORS */ -no_src: - { - GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), - ("Failed to find a supported video source")); - return FALSE; - } -target_failed: - { - GST_ELEMENT_ERROR (src, LIBRARY, INIT, (NULL), - ("Failed to set target pad")); - gst_object_unref (targetpad); - return FALSE; - } -} - -static GstStateChangeReturn -gst_auto_video_src_change_state (GstElement * element, - GstStateChange transition) -{ - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstAutoVideoSrc *src = GST_AUTO_VIDEO_SRC (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - if (!gst_auto_video_src_detect (src)) - return GST_STATE_CHANGE_FAILURE; - break; - default: - break; - } - - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: - gst_auto_video_src_reset (src); - break; - default: - break; - } - - return ret; -} - -static void -gst_auto_video_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstAutoVideoSrc *src = GST_AUTO_VIDEO_SRC (object); - - switch (prop_id) { - case PROP_CAPS: - if (src->filter_caps) - gst_caps_unref (src->filter_caps); - src->filter_caps = gst_caps_copy (gst_value_get_caps (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_auto_video_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstAutoVideoSrc *src = GST_AUTO_VIDEO_SRC (object); + GstAutoDetect *autodetect = GST_AUTO_DETECT (src); - switch (prop_id) { - case PROP_CAPS:{ - gst_value_set_caps (value, src->filter_caps); - break; - } - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + autodetect->media_klass = "Video"; + autodetect->flag = GST_ELEMENT_FLAG_SOURCE; } diff --git a/gst/autodetect/gstautovideosrc.h b/gst/autodetect/gstautovideosrc.h index ec5d4fc8a..e76cc7240 100644 --- a/gst/autodetect/gstautovideosrc.h +++ b/gst/autodetect/gstautovideosrc.h @@ -22,6 +22,7 @@ #define __GST_AUTO_VIDEO_SRC_H__ #include <gst/gst.h> +#include "gstautodetect.h" G_BEGIN_DECLS @@ -39,16 +40,11 @@ G_BEGIN_DECLS (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_AUTO_VIDEO_SRC)) typedef struct _GstAutoVideoSrc { - GstBin parent; - - /* explicit pointers to stuff used */ - GstPad *pad; - GstElement *kid; - GstCaps *filter_caps; + GstAutoDetect parent; } GstAutoVideoSrc; typedef struct _GstAutoVideoSrcClass { - GstBinClass parent_class; + GstAutoDetectClass parent_class; } GstAutoVideoSrcClass; GType gst_auto_video_src_get_type (void); diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in index 9792acdc2..eb5c58b03 100644 --- a/gst/avi/Makefile.in +++ b/gst/avi/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index a3a1b5dc9..22d3dbb85 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -37,8 +37,6 @@ * compressed audio or video data, this will only work if you have the * right decoder elements/plugins installed. * </refsect2> - * - * Last reviewed on 2006-12-29 (0.10.6) */ #ifdef HAVE_CONFIG_H @@ -53,7 +51,7 @@ #include "avi-ids.h" #include <gst/gst-i18n-plugin.h> #include <gst/base/gstadapter.h> - +#include <gst/tag/tag.h> #define DIV_ROUND_UP(s,v) (((s) + ((v)-1)) / (v)) @@ -124,6 +122,7 @@ static void gst_avi_demux_get_buffer_info (GstAviDemux * avi, GstClockTime * ts_end, guint64 * offset, guint64 * offset_end); static void gst_avi_demux_parse_idit (GstAviDemux * avi, GstBuffer * buf); +static void gst_avi_demux_parse_strd (GstAviDemux * avi, GstBuffer * buf); /* GObject methods */ @@ -135,8 +134,8 @@ gst_avi_demux_class_init (GstAviDemuxClass * klass) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); GObjectClass *gobject_class = (GObjectClass *) klass; - GstPadTemplate *videosrctempl, *audiosrctempl, *subsrctempl; - GstCaps *audcaps, *vidcaps, *subcaps; + GstPadTemplate *videosrctempl, *audiosrctempl, *subsrctempl, *subpicsrctempl; + GstCaps *audcaps, *vidcaps, *subcaps, *subpiccaps;; GST_DEBUG_CATEGORY_INIT (avidemux_debug, "avidemux", 0, "Demuxer for AVI streams"); @@ -164,9 +163,13 @@ gst_avi_demux_class_init (GstAviDemuxClass * klass) subcaps = gst_caps_new_empty_simple ("application/x-subtitle-avi"); subsrctempl = gst_pad_template_new ("subtitle_%u", GST_PAD_SRC, GST_PAD_SOMETIMES, subcaps); + subpiccaps = gst_caps_new_empty_simple ("subpicture/x-xsub"); + subpicsrctempl = gst_pad_template_new ("subpicture_%u", + GST_PAD_SRC, GST_PAD_SOMETIMES, subpiccaps); gst_element_class_add_pad_template (gstelement_class, audiosrctempl); gst_element_class_add_pad_template (gstelement_class, videosrctempl); gst_element_class_add_pad_template (gstelement_class, subsrctempl); + gst_element_class_add_pad_template (gstelement_class, subpicsrctempl); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&sink_templ)); @@ -254,6 +257,7 @@ gst_avi_demux_reset (GstAviDemux * avi) avi->num_v_streams = 0; avi->num_a_streams = 0; avi->num_t_streams = 0; + avi->num_sp_streams = 0; avi->main_stream = -1; avi->have_group_id = FALSE; @@ -460,7 +464,7 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstObject * parent, if (stream->is_vbr) { /* VBR */ pos = avi_stream_convert_frames_to_time_unchecked (stream, - stream->current_total); + stream->current_entry); GST_DEBUG_OBJECT (avi, "VBR convert frame %u, time %" GST_TIME_FORMAT, stream->current_entry, GST_TIME_ARGS (pos)); } else if (stream->strf.auds->av_bps != 0) { @@ -1928,8 +1932,8 @@ gst_avi_demux_roundup_list (GstAviDemux * avi, GstBuffer ** buf) } static GstCaps * -gst_avi_demux_check_caps (GstAviDemux * avi, GstCaps * caps, - GstBuffer ** rgb8_palette) +gst_avi_demux_check_caps (GstAviDemux * avi, GstAviStream * stream, + GstCaps * caps) { GstStructure *s; const GValue *val; @@ -1938,11 +1942,17 @@ gst_avi_demux_check_caps (GstAviDemux * avi, GstCaps * caps, caps = gst_caps_make_writable (caps); s = gst_caps_get_structure (caps, 0); - if (gst_structure_has_name (s, "video/x-raw") && - gst_structure_has_field_typed (s, "palette_data", GST_TYPE_BUFFER)) { - gst_structure_get (s, "palette_data", GST_TYPE_BUFFER, rgb8_palette, NULL); - gst_structure_remove_field (s, "palette_data"); - return caps; + if (gst_structure_has_name (s, "video/x-raw")) { + stream->is_raw = TRUE; + if (!gst_structure_has_field (s, "pixel-aspect-ratio")) + gst_structure_set (s, "pixel-aspect-ratio", GST_TYPE_FRACTION, + 1, 1, NULL); + if (gst_structure_has_field_typed (s, "palette_data", GST_TYPE_BUFFER)) { + gst_structure_get (s, "palette_data", GST_TYPE_BUFFER, + &stream->rgb8_palette, NULL); + gst_structure_remove_field (s, "palette_data"); + return caps; + } } else if (!gst_structure_has_name (s, "video/x-h264")) { return caps; } @@ -2011,6 +2021,7 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) gst_riff_vprp *vprp = NULL; GstEvent *event; gchar *stream_id; + GstMapInfo map; element = GST_ELEMENT_CAST (avi); @@ -2197,21 +2208,24 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) if (stream->initdata) gst_buffer_unref (stream->initdata); stream->initdata = sub; - sub = NULL; + if (sub != NULL) { + gst_avi_demux_parse_strd (avi, sub); + sub = NULL; + } break; case GST_RIFF_TAG_strn: g_free (stream->name); - if (sub != NULL) { - GstMapInfo map; - gst_buffer_map (sub, &map, GST_MAP_READ); - stream->name = g_strndup ((gchar *) map.data, map.size); - gst_buffer_unmap (sub, &map); - gst_buffer_unref (sub); - sub = NULL; - } else { - stream->name = g_strdup (""); - } + gst_buffer_map (sub, &map, GST_MAP_READ); + stream->name = g_strndup ((gchar *) map.data, map.size); + gst_buffer_unmap (sub, &map); + gst_buffer_unref (sub); + sub = NULL; + + if (avi->globaltags == NULL) + avi->globaltags = gst_tag_list_new_empty (); + gst_tag_list_add (avi->globaltags, GST_TAG_MERGE_REPLACE, + GST_TAG_TITLE, stream->name, NULL); GST_DEBUG_OBJECT (avi, "stream name: %s", stream->name); break; case GST_RIFF_IDIT: @@ -2230,6 +2244,15 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) GST_WARNING_OBJECT (avi, "Unknown stream header tag %" GST_FOURCC_FORMAT ", ignoring", GST_FOURCC_ARGS (tag)); + /* Only get buffer for debugging if the memdump is needed */ + if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) >= 9) { + GstMapInfo map; + + gst_buffer_map (sub, &map, GST_MAP_READ); + GST_MEMDUMP_OBJECT (avi, "Unknown stream header tag", map.data, + map.size); + gst_buffer_unmap (sub, &map); + } /* fall-through */ case GST_RIFF_TAG_JUNQ: case GST_RIFF_TAG_JUNK: @@ -2262,32 +2285,41 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) fourcc = (stream->strf.vids->compression) ? stream->strf.vids->compression : stream->strh->fcc_handler; - padname = g_strdup_printf ("video_%u", avi->num_v_streams); - templ = gst_element_class_get_pad_template (klass, "video_%u"); caps = gst_riff_create_video_caps (fourcc, stream->strh, stream->strf.vids, stream->extradata, stream->initdata, &codec_name); - if (!caps) { - caps = gst_caps_new_simple ("video/x-avi-unknown", "fourcc", - G_TYPE_INT, fourcc, NULL); - } else if (got_vprp && vprp) { - guint32 aspect_n, aspect_d; - gint n, d; - - aspect_n = vprp->aspect >> 16; - aspect_d = vprp->aspect & 0xffff; - /* calculate the pixel aspect ratio using w/h and aspect ratio */ - n = aspect_n * stream->strf.vids->height; - d = aspect_d * stream->strf.vids->width; - if (n && d) - gst_caps_set_simple (caps, "pixel-aspect-ratio", GST_TYPE_FRACTION, - n, d, NULL); - /* very local, not needed elsewhere */ - g_free (vprp); - vprp = NULL; + + /* DXSB is XSUB, and it is placed inside a vids */ + if (!caps || fourcc != GST_MAKE_FOURCC ('D', 'X', 'S', 'B')) { + padname = g_strdup_printf ("video_%u", avi->num_v_streams); + templ = gst_element_class_get_pad_template (klass, "video_%u"); + if (!caps) { + caps = gst_caps_new_simple ("video/x-avi-unknown", "fourcc", + G_TYPE_INT, fourcc, NULL); + } else if (got_vprp && vprp) { + guint32 aspect_n, aspect_d; + gint n, d; + + aspect_n = vprp->aspect >> 16; + aspect_d = vprp->aspect & 0xffff; + /* calculate the pixel aspect ratio using w/h and aspect ratio */ + n = aspect_n * stream->strf.vids->height; + d = aspect_d * stream->strf.vids->width; + if (n && d) + gst_caps_set_simple (caps, "pixel-aspect-ratio", GST_TYPE_FRACTION, + n, d, NULL); + /* very local, not needed elsewhere */ + g_free (vprp); + vprp = NULL; + } + caps = gst_avi_demux_check_caps (avi, stream, caps); + tag_name = GST_TAG_VIDEO_CODEC; + avi->num_v_streams++; + } else { + padname = g_strdup_printf ("subpicture_%u", avi->num_sp_streams); + templ = gst_element_class_get_pad_template (klass, "subpicture_%u"); + tag_name = NULL; + avi->num_sp_streams++; } - caps = gst_avi_demux_check_caps (avi, caps, &stream->rgb8_palette); - tag_name = GST_TAG_VIDEO_CODEC; - avi->num_v_streams++; break; } case GST_RIFF_FCC_auds:{ @@ -2412,7 +2444,7 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf) gst_caps_unref (caps); /* make tags */ - if (codec_name) { + if (codec_name && tag_name) { if (!stream->taglist) stream->taglist = gst_tag_list_new_empty (); @@ -2494,6 +2526,14 @@ gst_avi_demux_parse_odml (GstAviDemux * avi, GstBuffer * buf) GST_WARNING_OBJECT (avi, "Unknown tag %" GST_FOURCC_FORMAT " in ODML header", GST_FOURCC_ARGS (tag)); + /* Only get buffer for debugging if the memdump is needed */ + if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) >= 9) { + GstMapInfo map; + + gst_buffer_map (sub, &map, GST_MAP_READ); + GST_MEMDUMP_OBJECT (avi, "Unknown ODML tag", map.data, map.size); + gst_buffer_unmap (sub, &map); + } /* fall-through */ case GST_RIFF_TAG_JUNQ: case GST_RIFF_TAG_JUNK: @@ -3355,8 +3395,16 @@ gst_avi_demux_stream_header_push (GstAviDemux * avi) goto next; default: GST_WARNING_OBJECT (avi, - "Unknown off %d tag %" GST_FOURCC_FORMAT " in AVI header", - offset, GST_FOURCC_ARGS (tag)); + "Unknown tag %" GST_FOURCC_FORMAT " in AVI header", + GST_FOURCC_ARGS (tag)); + /* Only get buffer for debugging if the memdump is needed */ + if (gst_debug_category_get_threshold (GST_CAT_DEFAULT) >= 9) { + GstMapInfo map; + + gst_buffer_map (sub, &map, GST_MAP_READ); + GST_MEMDUMP_OBJECT (avi, "Unknown tag", map.data, map.size); + gst_buffer_unmap (sub, &map); + } /* fall-through */ case GST_RIFF_TAG_JUNQ: case GST_RIFF_TAG_JUNK: @@ -3687,6 +3735,228 @@ non_parsable: gst_buffer_unmap (buf, &map); } +static void +parse_tag_value (GstAviDemux * avi, GstTagList * taglist, const gchar * type, + guint8 * ptr, guint tsize) +{ + static const gchar *env_vars[] = { "GST_AVI_TAG_ENCODING", + "GST_RIFF_TAG_ENCODING", "GST_TAG_ENCODING", NULL + }; + GType tag_type; + gchar *val; + + tag_type = gst_tag_get_type (type); + val = gst_tag_freeform_string_to_utf8 ((gchar *) ptr, tsize, env_vars); + + if (val != NULL) { + if (tag_type == G_TYPE_STRING) { + gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, type, val, NULL); + } else { + GValue tag_val = { 0, }; + + g_value_init (&tag_val, tag_type); + if (gst_value_deserialize (&tag_val, val)) { + gst_tag_list_add_value (taglist, GST_TAG_MERGE_APPEND, type, &tag_val); + } else { + GST_WARNING_OBJECT (avi, "could not deserialize '%s' into a " + "tag %s of type %s", val, type, g_type_name (tag_type)); + } + g_value_unset (&tag_val); + } + g_free (val); + } else { + GST_WARNING_OBJECT (avi, "could not extract %s tag", type); + } +} + +static void +gst_avi_demux_parse_strd (GstAviDemux * avi, GstBuffer * buf) +{ + GstMapInfo map; + guint32 tag; + + gst_buffer_map (buf, &map, GST_MAP_READ); + if (map.size > 4) { + guint8 *ptr = map.data; + gsize left = map.size; + + /* parsing based on + * http://www.eden-foundation.org/products/code/film_date_stamp/index.html + */ + tag = GST_READ_UINT32_LE (ptr); + if ((tag == GST_MAKE_FOURCC ('A', 'V', 'I', 'F')) && (map.size > 98)) { + gsize sub_size; + + ptr += 98; + left -= 98; + if (!memcmp (ptr, "FUJIFILM", 8)) { + GST_MEMDUMP_OBJECT (avi, "fujifim tag", ptr, 48); + + ptr += 10; + left -= 10; + sub_size = 0; + while (ptr[sub_size] && sub_size < left) + sub_size++; + + if (avi->globaltags == NULL) + avi->globaltags = gst_tag_list_new_empty (); + + gst_tag_list_add (avi->globaltags, GST_TAG_MERGE_APPEND, + GST_TAG_DEVICE_MANUFACTURER, "FUJIFILM", + GST_TAG_DEVICE_MODEL, ptr, NULL); + + while (ptr[sub_size] == '\0' && sub_size < left) + sub_size++; + + ptr += sub_size; + left -= sub_size; + sub_size = 0; + while (ptr[sub_size] && sub_size < left) + sub_size++; + if (ptr[4] == ':') + ptr[4] = '-'; + if (ptr[7] == ':') + ptr[7] = '-'; + + parse_tag_value (avi, avi->globaltags, GST_TAG_DATE_TIME, ptr, + sub_size); + } + } + } + gst_buffer_unmap (buf, &map); +} + +/* + * gst_avi_demux_parse_ncdt: + * @element: caller element (used for debugging/error). + * @buf: input data to be used for parsing, stripped from header. + * @taglist: a pointer to a taglist (returned by this function) + * containing information about this stream. May be + * NULL if no supported tags were found. + * + * Parses Nikon metadata from input data. + */ +static void +gst_avi_demux_parse_ncdt (GstAviDemux * avi, GstBuffer * buf, + GstTagList ** _taglist) +{ + GstMapInfo info; + guint8 *ptr; + gsize left; + guint tsize; + guint32 tag; + const gchar *type; + GstTagList *taglist; + + g_return_if_fail (_taglist != NULL); + + if (!buf) { + *_taglist = NULL; + return; + } + gst_buffer_map (buf, &info, GST_MAP_READ); + + taglist = gst_tag_list_new_empty (); + + ptr = info.data; + left = info.size; + + while (left > 8) { + tag = GST_READ_UINT32_LE (ptr); + tsize = GST_READ_UINT32_LE (ptr + 4); + + GST_MEMDUMP_OBJECT (avi, "tag chunk", ptr, MIN (tsize + 8, left)); + + left -= 8; + ptr += 8; + + GST_DEBUG_OBJECT (avi, "tag %" GST_FOURCC_FORMAT ", size %u", + GST_FOURCC_ARGS (tag), tsize); + + if (tsize > left) { + GST_WARNING_OBJECT (avi, + "Tagsize %d is larger than available data %" G_GSIZE_FORMAT, + tsize, left); + tsize = left; + } + + /* find out the type of metadata */ + switch (tag) { + case GST_RIFF_LIST_nctg: + while (tsize > 4) { + guint16 sub_tag = GST_READ_UINT16_LE (ptr); + guint16 sub_size = GST_READ_UINT16_LE (ptr + 2); + + tsize -= 4; + ptr += 4; + + GST_DEBUG_OBJECT (avi, "sub-tag %u, size %u", sub_tag, sub_size); + /* http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#NCTG + * for some reason the sub_tag has a +2 offset + */ + switch (sub_tag) { + case 0x03: /* Make */ + type = GST_TAG_DEVICE_MANUFACTURER; + break; + case 0x04: /* Model */ + type = GST_TAG_DEVICE_MODEL; + break; + /* TODO: 0x05: is software version, like V1.0 */ + case 0x06: /* Software */ + type = GST_TAG_ENCODER; + break; + case 0x13: /* CreationDate */ + type = GST_TAG_DATE_TIME; + if (ptr[4] == ':') + ptr[4] = '-'; + if (ptr[7] == ':') + ptr[7] = '-'; + break; + default: + type = NULL; + break; + } + if (type != NULL && ptr[0] != '\0') { + GST_DEBUG_OBJECT (avi, "mapped tag %u to tag %s", sub_tag, type); + + parse_tag_value (avi, taglist, type, ptr, sub_size); + } + + ptr += sub_size; + tsize -= sub_size; + } + break; + default: + type = NULL; + GST_WARNING_OBJECT (avi, + "Unknown ncdt (metadata) tag entry %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (tag)); + GST_MEMDUMP_OBJECT (avi, "Unknown ncdt", ptr, tsize); + break; + } + + if (tsize & 1) { + tsize++; + if (tsize > left) + tsize = left; + } + + ptr += tsize; + left -= tsize; + } + + if (!gst_tag_list_is_empty (taglist)) { + GST_INFO_OBJECT (avi, "extracted tags: %" GST_PTR_FORMAT, taglist); + *_taglist = taglist; + } else { + *_taglist = NULL; + gst_tag_list_unref (taglist); + } + gst_buffer_unmap (buf, &info); + + return; +} + /* * Read full AVI headers. */ @@ -3795,6 +4065,22 @@ gst_avi_demux_stream_header_pull (GstAviDemux * avi) gst_buffer_unref (sub); sub = NULL; break; + case GST_RIFF_LIST_ncdt: + gst_buffer_unmap (sub, &map); + gst_buffer_resize (sub, 4, -1); + gst_avi_demux_parse_ncdt (avi, sub, &tags); + if (tags) { + if (avi->globaltags) { + gst_tag_list_insert (avi->globaltags, tags, + GST_TAG_MERGE_REPLACE); + } else { + avi->globaltags = tags; + } + } + tags = NULL; + gst_buffer_unref (sub); + sub = NULL; + break; default: GST_WARNING_OBJECT (avi, "Unknown list %" GST_FOURCC_FORMAT " in AVI header", @@ -3811,8 +4097,8 @@ gst_avi_demux_stream_header_pull (GstAviDemux * avi) goto next; default: GST_WARNING_OBJECT (avi, - "Unknown tag %" GST_FOURCC_FORMAT " in AVI header at off %d", - GST_FOURCC_ARGS (tag), offset); + "Unknown tag %" GST_FOURCC_FORMAT " in AVI header", + GST_FOURCC_ARGS (tag)); GST_MEMDUMP_OBJECT (avi, "Unknown tag", map.data, map.size); /* fall-through */ case GST_RIFF_TAG_JUNQ: @@ -3912,6 +4198,40 @@ gst_avi_demux_stream_header_pull (GstAviDemux * avi) gst_buffer_unref (buf); /* gst_riff_read_chunk() has already advanced avi->offset */ break; + case GST_RIFF_LIST_ncdt: + res = + gst_riff_read_chunk (element, avi->sinkpad, &avi->offset, &tag, + &buf); + if (res != GST_FLOW_OK) { + GST_DEBUG_OBJECT (avi, "couldn't read ncdt chunk"); + goto pull_range_failed; + } + GST_DEBUG ("got size %" G_GSIZE_FORMAT, gst_buffer_get_size (buf)); + if (size < 4) { + GST_DEBUG ("skipping ncdt LIST prefix"); + avi->offset += (4 - GST_ROUND_UP_2 (size)); + gst_buffer_unref (buf); + continue; + } + + sub = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, 4, -1); + gst_avi_demux_parse_ncdt (avi, sub, &tags); + if (tags) { + if (avi->globaltags) { + gst_tag_list_insert (avi->globaltags, tags, + GST_TAG_MERGE_REPLACE); + } else { + avi->globaltags = tags; + } + } + tags = NULL; + if (sub) { + gst_buffer_unref (sub); + sub = NULL; + } + gst_buffer_unref (buf); + /* gst_riff_read_chunk() has already advanced avi->offset */ + break; default: GST_WARNING_OBJECT (avi, "Skipping unknown list tag %" GST_FOURCC_FORMAT, @@ -4913,14 +5233,16 @@ gst_avi_demux_loop_data (GstAviDemux * avi) buf = gst_avi_demux_invert (stream, buf); /* mark non-keyframes */ - if (keyframe) { + if (keyframe || stream->is_raw) { GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT); GST_BUFFER_PTS (buf) = timestamp; } else { GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT); GST_BUFFER_PTS (buf) = GST_CLOCK_TIME_NONE; } + GST_BUFFER_DTS (buf) = timestamp; + GST_BUFFER_DURATION (buf) = duration; GST_BUFFER_OFFSET (buf) = out_offset; GST_BUFFER_OFFSET_END (buf) = out_offset_end; diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h index a7cefba48..0e8786fb9 100644 --- a/gst/avi/gstavidemux.h +++ b/gst/avi/gstavidemux.h @@ -119,6 +119,7 @@ typedef struct { GstTagList *taglist; gint index_id; + gboolean is_raw; } GstAviStream; typedef enum { @@ -159,7 +160,8 @@ typedef struct _GstAviDemux { guint num_streams; guint num_v_streams; guint num_a_streams; - guint num_t_streams; /* subtitle text streams */ + guint num_t_streams; /* subtitle text streams */ + guint num_sp_streams; /* subpicture streams */ guint main_stream; /* used for seeking */ diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c index 15cee6712..90403c8a2 100644 --- a/gst/avi/gstavimux.c +++ b/gst/avi/gstavimux.c @@ -434,6 +434,8 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps) avipad->parent.hdr.rate = gst_value_get_fraction_numerator (fps); avipad->parent.hdr.scale = gst_value_get_fraction_denominator (fps); + if (avipad->parent.hdr.rate <= 0 || avipad->parent.hdr.scale <= 0) + goto refuse_caps; /* (pixel) aspect ratio data, if any */ par = gst_structure_get_value (structure, "pixel-aspect-ratio"); @@ -587,6 +589,7 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps) break; case 3: avipad->vids.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '3'); + break; default: valid_caps = FALSE; break; @@ -2005,13 +2008,16 @@ gst_avi_mux_do_buffer (GstAviMux * avimux, GstAviPad * avipad) gulong total_size, pad_bytes = 0; guint flags; gsize datasize; + GstClockTime time; data = gst_collect_pads_pop (avimux->collect, avipad->collect); /* arrange downstream running time */ - data = gst_buffer_make_writable (data); - GST_BUFFER_TIMESTAMP (data) = - gst_segment_to_running_time (&avipad->collect->segment, + time = gst_segment_to_running_time (&avipad->collect->segment, GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (data)); + if (time != GST_BUFFER_TIMESTAMP (data)) { + data = gst_buffer_make_writable (data); + GST_BUFFER_TIMESTAMP (data) = time; + } /* Prepend a special buffer to the first one for some formats */ if (avipad->is_video) { diff --git a/gst/avi/gstavisubtitle.c b/gst/avi/gstavisubtitle.c index 7b2fa2dd2..a54ef66f2 100644 --- a/gst/avi/gstavisubtitle.c +++ b/gst/avi/gstavisubtitle.c @@ -33,8 +33,6 @@ * This plays an avi file with a video and subtitle stream. * </para> * </refsect2> - * - * Last reviewed on 2008-02-01 */ /* example of a subtitle chunk in an avi file diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in index 93b17bf4b..0695f0434 100644 --- a/gst/cutter/Makefile.in +++ b/gst/cutter/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/cutter/gstcutter.c b/gst/cutter/gstcutter.c index 2c373664c..d643de1f2 100644 --- a/gst/cutter/gstcutter.c +++ b/gst/cutter/gstcutter.c @@ -69,7 +69,7 @@ static GstStaticPadTemplate cutter_src_factory = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-raw, " - "format = (string) { " GST_AUDIO_NE (S8) "," GST_AUDIO_NE (S16) " }, " + "format = (string) { S8," GST_AUDIO_NE (S16) " }, " "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ], " "layout = (string) interleaved") ); @@ -79,7 +79,7 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-raw, " - "format = (string) { " GST_AUDIO_NE (S8) "," GST_AUDIO_NE (S16) " }, " + "format = (string) { S8," GST_AUDIO_NE (S16) " }, " "rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ], " "layout = (string) interleaved") ); diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in index 36c09923a..2a5b5ac69 100644 --- a/gst/debugutils/Makefile.in +++ b/gst/debugutils/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -503,7 +501,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/debugutils/gstcapssetter.c b/gst/debugutils/gstcapssetter.c index dcfabe2bb..e6573bb42 100644 --- a/gst/debugutils/gstcapssetter.c +++ b/gst/debugutils/gstcapssetter.c @@ -20,34 +20,24 @@ /** * SECTION:element-capssetter * - * <refsect2> - * <para> - * Sets or merges caps on a stream's buffers. - * That is, a buffer's caps are updated using (fields of) - * <link linkend="GstCapsSetter--caps">caps</link>. Note that this may - * contain multiple structures (though not likely recommended), but each - * of these must be fixed (or will otherwise be rejected). - * </para> - * <para> - * If <link linkend="GstCapsSetter--join">join</link> - * is TRUE, then the incoming caps' mime-type is compared to the mime-type(s) - * of provided caps and only matching structure(s) are considered for updating. - * </para> - * <para> - * If <link linkend="GstCapsSetter--replace">replace</link> - * is TRUE, then any caps update is preceded by clearing existing fields, - * making provided fields (as a whole) replace incoming ones. - * Otherwise, no clearing is performed, in which case provided fields are - * added/merged onto incoming caps - * </para> - * <para> + * Sets or merges caps on a stream's buffers. That is, a buffer's caps are + * updated using (fields of) #GstCapsSetter:caps. Note that this may contain + * multiple structures (though not likely recommended), but each of these must + * be fixed (or will otherwise be rejected). + * + * If #GstCapsSetter:join is %TRUE, then the incoming caps' mime-type is + * compared to the mime-type(s) of provided caps and only matching structure(s) + * are considered for updating. + * + * If #GstCapsSetter:replace is %TRUE, then any caps update is preceded by + * clearing existing fields, making provided fields (as a whole) replace + * incoming ones. Otherwise, no clearing is performed, in which case provided + * fields are added/merged onto incoming caps + * * Although this element might mainly serve as debug helper, * it can also practically be used to correct a faulty pixel-aspect-ratio, * or to modify a yuv fourcc value to effectively swap chroma components or such * alike. - * </para> - * </refsect2> - * */ diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in index 2654a9052..052094b49 100644 --- a/gst/deinterlace/Makefile.in +++ b/gst/deinterlace/Makefile.in @@ -111,7 +111,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -127,7 +126,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -526,7 +524,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index df82e5a66..d81605c3a 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -277,16 +277,19 @@ gst_deinterlace_locking_get_type (void) #define DEINTERLACE_CAPS GST_VIDEO_CAPS_MAKE(DEINTERLACE_VIDEO_FORMATS) +#define DEINTERLACE_ALL_CAPS DEINTERLACE_CAPS ";" \ + GST_VIDEO_CAPS_MAKE_WITH_FEATURES ("ANY", GST_VIDEO_FORMATS_ALL) + static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS (DEINTERLACE_CAPS) + GST_STATIC_CAPS (DEINTERLACE_ALL_CAPS) ); static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, - GST_STATIC_CAPS (DEINTERLACE_CAPS) + GST_STATIC_CAPS (DEINTERLACE_ALL_CAPS) ); static void gst_deinterlace_finalize (GObject * self); @@ -501,12 +504,11 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) gobject_class->finalize = gst_deinterlace_finalize; /** - * GstDeinterlace:mode + * GstDeinterlace:mode: * * This selects whether the deinterlacing methods should * always be applied or if they should only be applied * on content that has the "interlaced" flag on the caps. - * */ g_object_class_install_property (gobject_class, PROP_MODE, g_param_spec_enum ("mode", @@ -517,7 +519,7 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) ); /** - * GstDeinterlace:method + * GstDeinterlace:method: * * Selects the different deinterlacing algorithms that can be used. * These provide different quality and CPU usage. @@ -599,11 +601,10 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) ); /** - * GstDeinterlace:fields + * GstDeinterlace:fields: * * This selects which fields should be output. If "all" is selected * the output framerate will be double. - * */ g_object_class_install_property (gobject_class, PROP_FIELDS, g_param_spec_enum ("fields", @@ -614,7 +615,7 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) ); /** - * GstDeinterlace:layout + * GstDeinterlace:layout: * * This selects which fields is the first in time. * @@ -628,14 +629,11 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) ); /** - * GstDeinterlace:locking + * GstDeinterlace:locking: * * This selects which approach to pattern locking is used which affects * processing latency and accuracy of timestamp adjustment for telecine * streams. - * - * Since: 0.10.31 - * */ g_object_class_install_property (gobject_class, PROP_LOCKING, g_param_spec_enum ("locking", "locking", "Pattern locking mode", @@ -643,13 +641,10 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstDeinterlace:ignore-obscure + * GstDeinterlace:ignore-obscure: * * This selects whether to ignore obscure/rare telecine patterns. * NTSC 2:3 pulldown variants are the only really common patterns. - * - * Since: 0.10.31 - * */ g_object_class_install_property (gobject_class, PROP_IGNORE_OBSCURE, g_param_spec_boolean ("ignore-obscure", "ignore-obscure", @@ -658,13 +653,10 @@ gst_deinterlace_class_init (GstDeinterlaceClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstDeinterlace:drop-orphans + * GstDeinterlace:drop-orphans: * * This selects whether to drop orphan fields at the beginning of telecine * patterns in active locking mode. - * - * Since: 0.10.31 - * */ g_object_class_install_property (gobject_class, PROP_DROP_ORPHANS, g_param_spec_boolean ("drop-orphans", "drop-orphans", @@ -831,9 +823,9 @@ gst_deinterlace_reset (GstDeinterlace * self) self->passthrough = FALSE; self->reconfigure = FALSE; - if (self->new_mode != -1) + if ((gint) self->new_mode != -1) self->mode = self->new_mode; - if (self->new_fields != -1) + if ((gint) self->new_fields != -1) self->fields = self->new_fields; self->new_mode = -1; self->new_fields = -1; @@ -1433,6 +1425,11 @@ gst_deinterlace_get_pattern_lock (GstDeinterlace * self, gboolean * flush_one) } } + if (pattern < 0) { + GST_WARNING_OBJECT (self, "Failed to select a pattern"); + return; + } + GST_DEBUG_OBJECT (self, "Final pattern match result: pa %d, ph %d, l %d, s %d", pattern, phase, telecine_patterns[pattern].length, score); @@ -1500,6 +1497,8 @@ gst_deinterlace_output_frame (GstDeinterlace * self, gboolean flushing) guint8 phase, count; const GstDeinterlaceLocking locking = self->locking; + memset (&pattern, 0, sizeof (pattern)); + restart: ret = GST_FLOW_OK; fields_required = 0; @@ -1875,8 +1874,8 @@ restart: if (ret != GST_FLOW_OK) goto no_buffer; - g_return_val_if_fail (self->history_count - 1 - - gst_deinterlace_method_get_latency (self->method) >= 0, GST_FLOW_ERROR); + g_return_val_if_fail (self->history_count >= + gst_deinterlace_method_get_latency (self->method) + 1, GST_FLOW_ERROR); buf = self->field_history[self->history_count - 1 - @@ -2035,9 +2034,9 @@ gst_deinterlace_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) if (self->reconfigure) { /* FIXME: reconfigure should probably work differently */ GstCaps *caps; - if (self->new_fields != -1) + if ((gint) self->new_fields != -1) self->fields = self->new_fields; - if (self->new_mode != -1) + if ((gint) self->new_mode != -1) self->mode = self->new_mode; self->new_mode = -1; self->new_fields = -1; @@ -2137,6 +2136,7 @@ gst_deinterlace_getcaps (GstDeinterlace * self, GstPad * pad, GstCaps * filter) GstCaps *ourcaps; GstCaps *peercaps; gboolean half; + GstVideoInterlaceMode interlacing_mode; otherpad = (pad == self->srcpad) ? self->sinkpad : self->srcpad; half = pad != self->srcpad; @@ -2144,6 +2144,14 @@ gst_deinterlace_getcaps (GstDeinterlace * self, GstPad * pad, GstCaps * filter) ourcaps = gst_pad_get_pad_template_caps (pad); peercaps = gst_pad_peer_query_caps (otherpad, NULL); + interlacing_mode = GST_VIDEO_INFO_INTERLACE_MODE (&self->vinfo); + if (self->mode == GST_DEINTERLACE_MODE_INTERLACED || + (self->mode == GST_DEINTERLACE_MODE_AUTO && + interlacing_mode != GST_VIDEO_INTERLACE_MODE_PROGRESSIVE)) { + gst_caps_unref (ourcaps); + ourcaps = gst_caps_from_string (DEINTERLACE_CAPS); + } + if (peercaps) { GST_DEBUG_OBJECT (pad, "Peer has caps %" GST_PTR_FORMAT, peercaps); ret = gst_caps_make_writable (gst_caps_intersect (ourcaps, peercaps)); @@ -2219,11 +2227,10 @@ gst_deinterlace_getcaps (GstDeinterlace * self, GstPad * pad, GstCaps * filter) gst_value_set_fraction (&nmax, n, d); gst_value_set_fraction_range (&nrange, &nmin, &nmax); - gst_structure_set_value (s, "framerate", &nrange); + gst_structure_take_value (s, "framerate", &nrange); g_value_unset (&nmin); g_value_unset (&nmax); - g_value_unset (&nrange); } else if (G_VALUE_TYPE (val) == GST_TYPE_LIST) { const GValue *lval; GValue nlist = { 0, }; @@ -2251,11 +2258,9 @@ gst_deinterlace_getcaps (GstDeinterlace * self, GstPad * pad, GstCaps * filter) g_value_init (&nval, GST_TYPE_FRACTION); gst_value_set_fraction (&nval, n, d); - gst_value_list_append_value (&nlist, &nval); - g_value_unset (&nval); + gst_value_list_append_and_take_value (&nlist, &nval); } - gst_structure_set_value (s, "framerate", &nlist); - g_value_unset (&nlist); + gst_structure_take_value (s, "framerate", &nlist); } } } @@ -2474,8 +2479,10 @@ gst_deinterlace_setcaps (GstDeinterlace * self, GstPad * pad, GstCaps * caps) self->field_duration = 0; } - gst_deinterlace_set_method (self, self->method_id); - gst_deinterlace_method_setup (self->method, &self->vinfo); + if (!self->passthrough) { + gst_deinterlace_set_method (self, self->method_id); + gst_deinterlace_method_setup (self->method, &self->vinfo); + } GST_DEBUG_OBJECT (pad, "Sink caps: %" GST_PTR_FORMAT, caps); GST_DEBUG_OBJECT (pad, "Src caps: %" GST_PTR_FORMAT, srccaps); diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c index fab309064..8e8698242 100644 --- a/gst/deinterlace/tvtime-dist.c +++ b/gst/deinterlace/tvtime-dist.c @@ -133,8 +133,8 @@ void deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, #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_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8)) +#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>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)) @@ -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 eac483b27..be6dbcb1d 100644 --- a/gst/dtmf/Makefile.in +++ b/gst/dtmf/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c index 2a0b4a3bb..ca986e788 100644 --- a/gst/dtmf/gstrtpdtmfsrc.c +++ b/gst/dtmf/gstrtpdtmfsrc.c @@ -609,7 +609,7 @@ gst_rtp_dtmf_src_create_next_rtp_packet (GstRTPDTMFSrc * dtmfsrc) payload = (GstRTPDTMFPayload *) gst_rtp_buffer_get_payload (&rtpbuffer); /* copy payload and convert to network-byte order */ - g_memmove (payload, dtmfsrc->payload, sizeof (GstRTPDTMFPayload)); + memmove (payload, dtmfsrc->payload, sizeof (GstRTPDTMFPayload)); payload->duration = g_htons (payload->duration); diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in index e285928ae..dfcf836f9 100644 --- a/gst/effectv/Makefile.in +++ b/gst/effectv/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -494,7 +492,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in index cac9033be..d7fcbf6d4 100644 --- a/gst/equalizer/Makefile.in +++ b/gst/equalizer/Makefile.in @@ -90,7 +90,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -106,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -492,7 +490,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in index 73e3f81a8..6944697f3 100644 --- a/gst/flv/Makefile.in +++ b/gst/flv/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c index 2950a2022..9b11b4b93 100644 --- a/gst/flv/gstflvmux.c +++ b/gst/flv/gstflvmux.c @@ -26,8 +26,8 @@ * <refsect2> * <title>Example launch line</title> * |[ - * gst-launch-1.0 -v filesrc location=/path/to/audio ! decodebin2 ! queue ! flvmux name=m ! filesink location=file.flv filesrc location=/path/to/video ! decodebin2 ! queue ! m. - * ]| This pipeline muxes an audio and video file into a single FLV file. + * gst-launch-1.0 -v flvmux name=mux ! filesink location=test.flv audiotestsrc samplesperbuffer=44100 num-buffers=10 ! faac ! mux. videotestsrc num-buffers=250 ! video/x-raw,framerate=25/1 ! x264enc ! mux. + * ]| This pipeline encodes a test audio and video stream and muxes both into an FLV file. * </refsect2> */ @@ -174,9 +174,7 @@ gst_flv_mux_class_init (GstFlvMuxClass * klass) * * If True, the output will be streaming friendly. (ie without indexes and * duration) - * - * Since: 0.10.24 - **/ + */ g_object_class_install_property (gobject_class, PROP_STREAMABLE, g_param_spec_boolean ("streamable", "streamable", "If set to true, the output should be as if it is to be streamed " diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in index e451c93d9..aaa1e776d 100644 --- a/gst/flx/Makefile.in +++ b/gst/flx/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/flx/flx_fmt.h b/gst/flx/flx_fmt.h index fbe850bc1..9ab31ba48 100644 --- a/gst/flx/flx_fmt.h +++ b/gst/flx/flx_fmt.h @@ -18,7 +18,7 @@ */ -#ifndef __GST_FLX_FMT__H__ +#ifndef __GST_FLX_FMT_H__ #define __GST_FLX_FMT_H__ #include <gst/gst.h> diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c index 35e934edb..3df4e9b86 100644 --- a/gst/flx/gstflxdec.c +++ b/gst/flx/gstflxdec.c @@ -520,7 +520,7 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) GST_LOG ("(FLC) oframe2 : 0x%08x", flxh->oframe2); } - flxdec->size = (flxh->width * flxh->height); + flxdec->size = ((guint) flxh->width * (guint) flxh->height); /* create delta and output frame */ flxdec->frame_data = g_malloc (flxdec->size); diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in index 26736ec30..6e006ad52 100644 --- a/gst/goom/Makefile.in +++ b/gst/goom/Makefile.in @@ -88,7 +88,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -104,7 +103,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -506,7 +504,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/goom/config_param.c b/gst/goom/config_param.c index cd1965d71..3a1277f62 100644 --- a/gst/goom/config_param.c +++ b/gst/goom/config_param.c @@ -20,8 +20,6 @@ #include "goom_config_param.h" #include <string.h> -/* TODO: Ajouter goom_ devant ces fonctions */ - static void empty_fct (PluginParam * dummy) { diff --git a/gst/goom/filters.c b/gst/goom/filters.c index aa04960c6..703d20263 100644 --- a/gst/goom/filters.c +++ b/gst/goom/filters.c @@ -73,16 +73,6 @@ setPixelRGB_ (Pixel * buffer, Uint x, Color c) buffer[x].channels.b = c.b; } -static inline void -getPixelRGB (PluginInfo * goomInfo, Pixel * buffer, Uint x, Uint y, Color * c) -{ - Pixel i = *(buffer + (x + y * goomInfo->screen.width)); - - c->b = i.channels.b; - c->v = i.channels.g; - c->r = i.channels.r; -} - static inline void getPixelRGB_ (Pixel * buffer, Uint x, Color * c) { @@ -741,7 +731,7 @@ generatePrecalCoef (int precalCoef[16][16]) if (!(coefh || coefv)) { i = 255; } else { - int i1, i2, i3, i4; + Uint i1, i2, i3, i4; i1 = diffcoeffh * diffcoeffv; i2 = coefh * diffcoeffv; diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in index 682a2c178..7f6d5aa7a 100644 --- a/gst/goom2k1/Makefile.in +++ b/gst/goom2k1/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/goom2k1/filters.c b/gst/goom2k1/filters.c index 1b1ea13ef..016f25bf8 100644 --- a/gst/goom2k1/filters.c +++ b/gst/goom2k1/filters.c @@ -250,39 +250,6 @@ setPixelRGB_ (Uint * buffer, Uint x, Color c, guint32 resolx, guint32 resoly) #endif } - - -static inline void -getPixelRGB (Uint * buffer, Uint x, Uint y, Color * c, - guint32 resolx, guint32 resoly) -{ - register unsigned char *tmp8; - -#ifdef _DEBUG - if (x + y * resolx >= resolx * resoly) { - printf ("getPixel ERROR : hors du tableau... %i, %i\n", x, y); - exit (1); - } -#endif - -#ifdef __BIG_ENDIAN__ - c->b = *(unsigned char *) (tmp8 = - (unsigned char *) (buffer + (x + y * resolx))); - c->r = *(unsigned char *) (++tmp8); - c->v = *(unsigned char *) (++tmp8); - c->b = *(unsigned char *) (++tmp8); - -#else - /* ATTENTION AU PETIT INDIEN */ - c->b = *(unsigned char *) (tmp8 = - (unsigned char *) (buffer + (x + y * resolx))); - c->v = *(unsigned char *) (++tmp8); - c->r = *(unsigned char *) (++tmp8); -/* *c = (Color) buffer[x+y*WIDTH] ; */ -#endif -} - - static inline void getPixelRGB_ (Uint * buffer, Uint x, Color * c, guint32 resolx, guint32 resoly) { diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in index 4f8b0d1a8..c8c88fd27 100644 --- a/gst/icydemux/Makefile.in +++ b/gst/icydemux/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/icydemux/gsticydemux.c b/gst/icydemux/gsticydemux.c index 40afd0b72..cdcb5edeb 100644 --- a/gst/icydemux/gsticydemux.c +++ b/gst/icydemux/gsticydemux.c @@ -409,9 +409,12 @@ gst_icydemux_handle_event (GstPad * pad, GstObject * parent, GstEvent * event) return gst_pad_event_default (pad, parent, event); default: - if (!GST_EVENT_IS_STICKY (event)) + if (!GST_EVENT_IS_STICKY (event)) { icydemux->cached_events = g_list_append (icydemux->cached_events, event); + } else { + gst_event_unref (event); + } return TRUE; } } else { diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in index afdbba4d4..bc4d5c7d3 100644 --- a/gst/id3demux/Makefile.in +++ b/gst/id3demux/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in index 41af84b78..1d7002f3e 100644 --- a/gst/imagefreeze/Makefile.in +++ b/gst/imagefreeze/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c index 63fe84f5a..6eb65c3e7 100644 --- a/gst/imagefreeze/gstimagefreeze.c +++ b/gst/imagefreeze/gstimagefreeze.c @@ -693,13 +693,21 @@ gst_image_freeze_src_loop (GstPad * pad) GstClockTime timestamp, timestamp_end; guint64 cstart, cstop; gboolean in_seg, eos; + GstFlowReturn flow_ret = GST_FLOW_OK; g_mutex_lock (&self->lock); + if (!gst_pad_has_current_caps (self->srcpad)) { + GST_ERROR_OBJECT (pad, "Not negotiated yet"); + flow_ret = GST_FLOW_NOT_NEGOTIATED; + g_mutex_unlock (&self->lock); + goto pause_task; + } + if (!self->buffer) { GST_ERROR_OBJECT (pad, "Have no buffer yet"); + flow_ret = GST_FLOW_ERROR; g_mutex_unlock (&self->lock); - gst_pad_pause_task (self->srcpad); - return; + goto pause_task; } buffer = gst_buffer_ref (self->buffer); buffer = gst_buffer_make_writable (buffer); @@ -756,8 +764,11 @@ gst_image_freeze_src_loop (GstPad * pad) gst_segment_clip (&self->segment, GST_FORMAT_TIME, timestamp, timestamp_end, &cstart, &cstop); - if (in_seg) + if (in_seg) { self->segment.position = cstart; + if (self->segment.rate >= 0) + self->segment.position = cstop; + } if (self->segment.rate >= 0) self->offset++; @@ -769,44 +780,62 @@ gst_image_freeze_src_loop (GstPad * pad) GST_TIME_ARGS (timestamp)); if (in_seg) { - GstFlowReturn ret; - GST_BUFFER_DTS (buffer) = GST_CLOCK_TIME_NONE; GST_BUFFER_PTS (buffer) = cstart; GST_BUFFER_DURATION (buffer) = cstop - cstart; GST_BUFFER_OFFSET (buffer) = offset; GST_BUFFER_OFFSET_END (buffer) = offset + 1; - ret = gst_pad_push (self->srcpad, buffer); + flow_ret = gst_pad_push (self->srcpad, buffer); GST_DEBUG_OBJECT (pad, "Pushing buffer resulted in %s", - gst_flow_get_name (ret)); - if (ret != GST_FLOW_OK) - gst_pad_pause_task (self->srcpad); + gst_flow_get_name (flow_ret)); + if (flow_ret != GST_FLOW_OK) + goto pause_task; } else { gst_buffer_unref (buffer); } if (eos) { - if ((self->segment.flags & GST_SEEK_FLAG_SEGMENT)) { - GstMessage *m; - GstEvent *e; - - GST_DEBUG_OBJECT (pad, "Sending segment done at end of segment"); - if (self->segment.rate >= 0) { - m = gst_message_new_segment_done (GST_OBJECT_CAST (self), - GST_FORMAT_TIME, self->segment.stop); - e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.stop); + flow_ret = GST_FLOW_EOS; + goto pause_task; + } + + return; + +pause_task: + { + const gchar *reason = gst_flow_get_name (flow_ret); + + GST_LOG_OBJECT (self, "pausing task, reason %s", reason); + gst_pad_pause_task (pad); + + if (flow_ret == GST_FLOW_EOS) { + if ((self->segment.flags & GST_SEEK_FLAG_SEGMENT)) { + GstMessage *m; + GstEvent *e; + + GST_DEBUG_OBJECT (pad, "Sending segment done at end of segment"); + if (self->segment.rate >= 0) { + m = gst_message_new_segment_done (GST_OBJECT_CAST (self), + GST_FORMAT_TIME, self->segment.stop); + e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.stop); + } else { + m = gst_message_new_segment_done (GST_OBJECT_CAST (self), + GST_FORMAT_TIME, self->segment.start); + e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.start); + } + gst_element_post_message (GST_ELEMENT_CAST (self), m); + gst_pad_push_event (self->srcpad, e); } else { - m = gst_message_new_segment_done (GST_OBJECT_CAST (self), - GST_FORMAT_TIME, self->segment.start); - e = gst_event_new_segment_done (GST_FORMAT_TIME, self->segment.start); + GST_DEBUG_OBJECT (pad, "Sending EOS at end of segment"); + gst_pad_push_event (self->srcpad, gst_event_new_eos ()); } - gst_element_post_message (GST_ELEMENT_CAST (self), m); - gst_pad_push_event (self->srcpad, e); - } else { - GST_DEBUG_OBJECT (pad, "Sending EOS at end of segment"); + } else if (flow_ret == GST_FLOW_NOT_LINKED || flow_ret < GST_FLOW_EOS) { + GST_ELEMENT_ERROR (self, STREAM, FAILED, + ("Internal data stream error."), + ("stream stopped, reason %s", reason)); gst_pad_push_event (self->srcpad, gst_event_new_eos ()); } - gst_pad_pause_task (self->srcpad); + return; } } diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in index 05ccaee32..c138a79dc 100644 --- a/gst/interleave/Makefile.in +++ b/gst/interleave/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/interleave/deinterleave.c b/gst/interleave/deinterleave.c index 507423122..f7c0c9421 100644 --- a/gst/interleave/deinterleave.c +++ b/gst/interleave/deinterleave.c @@ -284,18 +284,22 @@ gst_deinterleave_add_new_pads (GstDeinterleave * self, GstCaps * caps) self->srcpads = g_list_reverse (self->srcpads); } -static void +static gboolean gst_deinterleave_set_pads_caps (GstDeinterleave * self, GstCaps * caps) { GList *l; gint i; + gboolean ret = TRUE; for (l = self->srcpads, i = 0; l; l = l->next, i++) { GstPad *pad = GST_PAD (l->data); GstCaps *srccaps; GstAudioInfo info; - gst_audio_info_from_caps (&info, caps); + if (!gst_audio_info_from_caps (&info, caps)) { + ret = FALSE; + continue; + } if (self->keep_positions) GST_AUDIO_INFO_POSITION (&info, 0) = GST_AUDIO_INFO_POSITION (&self->audio_info, i); @@ -305,6 +309,7 @@ gst_deinterleave_set_pads_caps (GstDeinterleave * self, GstCaps * caps) gst_pad_set_caps (pad, srccaps); gst_caps_unref (srccaps); } + return ret; } static void @@ -376,7 +381,8 @@ gst_deinterleave_sink_setcaps (GstDeinterleave * self, GstCaps * caps) GstAudioInfo old_info; gst_audio_info_init (&old_info); - gst_audio_info_from_caps (&old_info, self->sinkcaps); + if (!gst_audio_info_from_caps (&old_info, self->sinkcaps)) + goto info_from_caps_failed; was_unpositioned = GST_AUDIO_INFO_IS_UNPOSITIONED (&old_info); old_channels = GST_AUDIO_INFO_CHANNELS (&old_info); @@ -424,7 +430,8 @@ gst_deinterleave_sink_setcaps (GstDeinterleave * self, GstCaps * caps) /* If we already have pads, update the caps otherwise * add new pads */ if (self->srcpads) { - gst_deinterleave_set_pads_caps (self, srccaps); + if (!gst_deinterleave_set_pads_caps (self, srccaps)) + goto set_caps_failed; } else { gst_deinterleave_add_new_pads (self, srccaps); } @@ -450,6 +457,17 @@ invalid_caps: GST_ERROR_OBJECT (self, "invalid caps"); return FALSE; } +set_caps_failed: + { + GST_ERROR_OBJECT (self, "set_caps failed"); + gst_caps_unref (srccaps); + return FALSE; + } +info_from_caps_failed: + { + GST_ERROR_OBJECT (self, "coud not get info from caps"); + return FALSE; + } } static void diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c index 474e6e8a1..c00519bc6 100644 --- a/gst/interleave/interleave.c +++ b/gst/interleave/interleave.c @@ -217,11 +217,13 @@ static gboolean gst_interleave_src_event (GstPad * pad, GstObject * parent, static gboolean gst_interleave_sink_event (GstCollectPads * pads, GstCollectData * data, GstEvent * event, gpointer user_data); +static gboolean gst_interleave_sink_query (GstCollectPads * pads, + GstCollectData * data, GstQuery * query, gpointer user_data); static gboolean gst_interleave_sink_setcaps (GstInterleave * self, GstPad * pad, const GstCaps * caps, const GstAudioInfo * info); -static GstCaps *gst_interleave_sink_getcaps (GstPad * pad, GstObject * parent, +static GstCaps *gst_interleave_sink_getcaps (GstPad * pad, GstInterleave * self, GstCaps * filter); static GstFlowReturn gst_interleave_collected (GstCollectPads * pads, @@ -502,6 +504,10 @@ gst_interleave_request_new_pad (GstElement * element, GstPadTemplate * templ, (GstCollectPadsEventFunction) GST_DEBUG_FUNCPTR (gst_interleave_sink_event), self); + gst_collect_pads_set_query_function (self->collect, + (GstCollectPadsQueryFunction) + GST_DEBUG_FUNCPTR (gst_interleave_sink_query), self); + if (!gst_element_add_pad (element, new_pad)) goto could_not_add; @@ -686,9 +692,9 @@ __set_channels (GstCaps * caps, gint channels) /* we can only accept caps that we and downstream can handle. */ static GstCaps * -gst_interleave_sink_getcaps (GstPad * pad, GstObject * parent, GstCaps * filter) +gst_interleave_sink_getcaps (GstPad * pad, GstInterleave * self, + GstCaps * filter) { - GstInterleave *self = GST_INTERLEAVE (parent); GstCaps *result, *peercaps, *sinkcaps; GST_OBJECT_LOCK (self); @@ -704,6 +710,7 @@ gst_interleave_sink_getcaps (GstPad * pad, GstObject * parent, GstCaps * filter) sinkcaps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); __remove_channels (sinkcaps); if (peercaps) { + peercaps = gst_caps_make_writable (peercaps); __remove_channels (peercaps); /* if the peer has caps, intersect */ GST_DEBUG_OBJECT (pad, "intersecting peer and template caps"); @@ -887,6 +894,36 @@ gst_interleave_sink_event (GstCollectPads * pads, GstCollectData * data, return ret; } +static gboolean +gst_interleave_sink_query (GstCollectPads * pads, + GstCollectData * data, GstQuery * query, gpointer user_data) +{ + GstInterleave *self = GST_INTERLEAVE (user_data); + gboolean ret = TRUE; + + GST_DEBUG ("Got %s query on pad %s:%s", GST_QUERY_TYPE_NAME (query), + GST_DEBUG_PAD_NAME (data->pad)); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS: + { + GstCaps *filter, *caps; + + gst_query_parse_caps (query, &filter); + caps = gst_interleave_sink_getcaps (data->pad, self, filter); + gst_query_set_caps_result (query, caps); + gst_caps_unref (caps); + ret = TRUE; + break; + } + default: + ret = gst_collect_pads_query_default (pads, data, query, FALSE); + break; + } + + return ret; +} + static gboolean gst_interleave_src_query_duration (GstInterleave * self, GstQuery * query) { @@ -1090,16 +1127,6 @@ gst_interleave_src_query (GstPad * pad, GstObject * parent, GstQuery * query) case GST_QUERY_LATENCY: res = gst_interleave_src_query_latency (self, query); break; - case GST_QUERY_CAPS: - { - GstCaps *filter, *caps; - - gst_query_parse_caps (query, &filter); - caps = gst_interleave_sink_getcaps (pad, parent, filter); - gst_query_set_caps_result (query, caps); - gst_caps_unref (caps); - res = TRUE; - } default: /* FIXME, needs a custom query handler because we have multiple * sinkpads */ diff --git a/gst/isomp4/Makefile.am b/gst/isomp4/Makefile.am index 09887126a..84dbbfcfc 100644 --- a/gst/isomp4/Makefile.am +++ b/gst/isomp4/Makefile.am @@ -23,7 +23,6 @@ noinst_HEADERS = \ qtdemux.h \ qtdemux_types.h \ qtdemux_dump.h \ - qtdemux_fourcc.h \ qtdemux_lang.h \ qtpalette.h \ gstrtpxqtdepay.h \ @@ -34,7 +33,6 @@ noinst_HEADERS = \ descriptors.h \ properties.h \ fourcc.h \ - ftypcc.h \ gstqtmuxmap.h EXTRA_DIST = \ diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in index 8939aa966..926964252 100644 --- a/gst/isomp4/Makefile.in +++ b/gst/isomp4/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -495,7 +493,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -588,7 +585,6 @@ noinst_HEADERS = \ qtdemux.h \ qtdemux_types.h \ qtdemux_dump.h \ - qtdemux_fourcc.h \ qtdemux_lang.h \ qtpalette.h \ gstrtpxqtdepay.h \ @@ -599,7 +595,6 @@ noinst_HEADERS = \ descriptors.h \ properties.h \ fourcc.h \ - ftypcc.h \ gstqtmuxmap.h EXTRA_DIST = \ diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c index f6df24af1..3f1051c1f 100644 --- a/gst/isomp4/atoms.c +++ b/gst/isomp4/atoms.c @@ -486,6 +486,38 @@ sample_entry_mp4v_new (AtomsContext * context) return mp4v; } +static void +sample_entry_tx3g_init (SampleTableEntryTX3G * tx3g) +{ + atom_sample_entry_init (&tx3g->se, FOURCC_tx3g); + + tx3g->display_flags = 0; + tx3g->font_id = 1; /* must be 1 as there is a single font */ + tx3g->font_face = 0; + tx3g->foreground_color_rgba = 0xFFFFFFFF; /* white, opaque */ + + /* can't set this now */ + tx3g->default_text_box = 0; + tx3g->font_size = 0; +} + +static void +sample_entry_tx3g_free (SampleTableEntryTX3G * tx3g) +{ + atom_sample_entry_free (&tx3g->se); + g_free (tx3g); +} + +static SampleTableEntryTX3G * +sample_entry_tx3g_new (void) +{ + SampleTableEntryTX3G *tx3g = g_new0 (SampleTableEntryTX3G, 1); + + sample_entry_tx3g_init (tx3g); + return tx3g; +} + + static void atom_stsd_init (AtomSTSD * stsd) { @@ -516,6 +548,9 @@ atom_stsd_remove_entries (AtomSTSD * stsd) case VIDEO: sample_entry_mp4v_free ((SampleTableEntryMP4V *) se); break; + case SUBTITLE: + sample_entry_tx3g_free ((SampleTableEntryTX3G *) se); + break; default: /* best possible cleanup */ atom_sample_entry_free (se); @@ -739,7 +774,7 @@ atom_hmhd_free (AtomHMHD * hmhd) } static void -atom_hdlr_init (AtomHDLR * hdlr) +atom_hdlr_init (AtomHDLR * hdlr, AtomsContext * context) { guint8 flags[3] = { 0, 0, 0 }; @@ -751,14 +786,17 @@ atom_hdlr_init (AtomHDLR * hdlr) hdlr->flags = 0; hdlr->flags_mask = 0; hdlr->name = g_strdup (""); + + /* Store the flavor to know how to serialize the 'name' string */ + hdlr->flavor = context->flavor; } static AtomHDLR * -atom_hdlr_new (void) +atom_hdlr_new (AtomsContext * context) { AtomHDLR *hdlr = g_new0 (AtomHDLR, 1); - atom_hdlr_init (hdlr); + atom_hdlr_init (hdlr, context); return hdlr; } @@ -889,7 +927,7 @@ atom_minf_init (AtomMINF * minf, AtomsContext * context) minf->hmhd = NULL; if (context->flavor == ATOMS_TREE_FLAVOR_MOV) { - minf->hdlr = atom_hdlr_new (); + minf->hdlr = atom_hdlr_new (context); minf->hdlr->component_type = FOURCC_dhlr; minf->hdlr->handler_type = FOURCC_alis; } else { @@ -951,7 +989,7 @@ atom_mdia_init (AtomMDIA * mdia, AtomsContext * context) atom_header_set (&mdia->header, FOURCC_mdia, 0, 0); atom_mdhd_init (&mdia->mdhd); - atom_hdlr_init (&mdia->hdlr); + atom_hdlr_init (&mdia->hdlr, context); atom_minf_init (&mdia->minf, context); } @@ -1063,12 +1101,12 @@ atom_ilst_free (AtomILST * ilst) } static void -atom_meta_init (AtomMETA * meta) +atom_meta_init (AtomMETA * meta, AtomsContext * context) { guint8 flags[3] = { 0, 0, 0 }; atom_full_init (&meta->header, FOURCC_meta, 0, 0, 0, flags); - atom_hdlr_init (&meta->hdlr); + atom_hdlr_init (&meta->hdlr, context); /* FIXME (ISOM says this is always 0) */ meta->hdlr.component_type = FOURCC_mhlr; meta->hdlr.handler_type = FOURCC_mdir; @@ -1076,11 +1114,11 @@ atom_meta_init (AtomMETA * meta) } static AtomMETA * -atom_meta_new (void) +atom_meta_new (AtomsContext * context) { AtomMETA *meta = g_new0 (AtomMETA, 1); - atom_meta_init (meta); + atom_meta_init (meta, context); return meta; } @@ -1521,8 +1559,13 @@ atom_hdlr_copy_data (AtomHDLR * hdlr, guint8 ** buffer, guint64 * size, prop_copy_uint32 (hdlr->flags, buffer, size, offset); prop_copy_uint32 (hdlr->flags_mask, buffer, size, offset); - prop_copy_size_string ((guint8 *) hdlr->name, strlen (hdlr->name), buffer, - size, offset); + if (hdlr->flavor == ATOMS_TREE_FLAVOR_MOV) { + prop_copy_size_string ((guint8 *) hdlr->name, strlen (hdlr->name), buffer, + size, offset); + } else { + /* assume isomedia base is more generic and use null terminated */ + prop_copy_null_terminated_string (hdlr->name, buffer, size, offset); + } atom_write_size (buffer, size, offset, original_offset); return *offset - original_offset; @@ -1787,6 +1830,48 @@ sample_entry_mp4v_copy_data (SampleTableEntryMP4V * mp4v, guint8 ** buffer, return *offset - original_offset; } +static guint64 +sample_entry_tx3g_copy_data (SampleTableEntryTX3G * tx3g, guint8 ** buffer, + guint64 * size, guint64 * offset) +{ + guint64 original_offset = *offset; + + if (!atom_sample_entry_copy_data (&tx3g->se, buffer, size, offset)) { + return 0; + } + + prop_copy_uint32 (tx3g->display_flags, buffer, size, offset); + + /* reserved */ + prop_copy_uint8 (1, buffer, size, offset); + prop_copy_uint8 (-1, buffer, size, offset); + prop_copy_uint32 (0, buffer, size, offset); + + prop_copy_uint64 (tx3g->default_text_box, buffer, size, offset); + + /* reserved */ + prop_copy_uint32 (0, buffer, size, offset); + + prop_copy_uint16 (tx3g->font_id, buffer, size, offset); + prop_copy_uint8 (tx3g->font_face, buffer, size, offset); + prop_copy_uint8 (tx3g->font_size, buffer, size, offset); + prop_copy_uint32 (tx3g->foreground_color_rgba, buffer, size, offset); + + /* it must have a fonttable atom */ + { + Atom atom; + + atom_header_set (&atom, FOURCC_ftab, 18, 0); + atom_copy_data (&atom, buffer, size, offset); + prop_copy_uint16 (1, buffer, size, offset); /* Count must be 1 */ + prop_copy_uint16 (1, buffer, size, offset); /* Font id: 1 */ + prop_copy_size_string ((guint8 *) "Serif", 5, buffer, size, offset); + } + + atom_write_size (buffer, size, offset, original_offset); + return *offset - original_offset; +} + guint64 atom_stsz_copy_data (AtomSTSZ * stsz, guint8 ** buffer, guint64 * size, guint64 * offset) @@ -1977,6 +2062,11 @@ atom_stsd_copy_data (AtomSTSD * stsd, guint8 ** buffer, guint64 * size, walker->data, buffer, size, offset)) { return 0; } + } else if (se->kind == SUBTITLE) { + if (!sample_entry_tx3g_copy_data ((SampleTableEntryTX3G *) + walker->data, buffer, size, offset)) { + return 0; + } } else { if (!atom_hint_sample_entry_copy_data ( (AtomHintSampleEntry *) walker->data, buffer, size, offset)) { @@ -2053,9 +2143,11 @@ atom_dref_copy_data (AtomDREF * dref, guint8 ** buffer, guint64 * size, Atom *atom = (Atom *) walker->data; if (atom->type == FOURCC_url_) { - atom_url_copy_data ((AtomURL *) atom, buffer, size, offset); + if (!atom_url_copy_data ((AtomURL *) atom, buffer, size, offset)) + return 0; } else if (atom->type == FOURCC_alis) { - atom_full_copy_data ((AtomFull *) atom, buffer, size, offset); + if (!atom_full_copy_data ((AtomFull *) atom, buffer, size, offset)) + return 0; } else { g_error ("Unsupported atom used inside dref atom"); } @@ -2818,6 +2910,40 @@ atom_trak_update_bitrates (AtomTRAK * trak, guint32 avg_bitrate, } } +void +atom_trak_tx3g_update_dimension (AtomTRAK * trak, guint32 width, guint32 height) +{ + AtomSTSD *stsd; + GList *iter; + SampleTableEntryTX3G *tx3g = NULL; + + stsd = &trak->mdia.minf.stbl.stsd; + for (iter = stsd->entries; iter && tx3g == NULL; iter = g_list_next (iter)) { + SampleTableEntry *entry = iter->data; + + switch (entry->kind) { + case SUBTITLE:{ + tx3g = (SampleTableEntryTX3G *) entry; + break; + } + default: + break; + } + } + + /* Currently we never set the vertical placement flag, so we don't + * check for it to set the dimensions differently as the spec says. + * Always do it for the not set case */ + if (tx3g) { + tx3g->font_size = 0.05 * height; + + height = 0.15 * height; + trak->tkhd.width = width << 16; + trak->tkhd.height = height << 16; + tx3g->default_text_box = width | (height << 16); + } +} + /* * Meta tags functions */ @@ -2829,7 +2955,7 @@ atom_moov_init_metatags (AtomMOOV * moov, AtomsContext * context) } if (context->flavor != ATOMS_TREE_FLAVOR_3GP) { if (!moov->udta->meta) { - moov->udta->meta = atom_meta_new (); + moov->udta->meta = atom_meta_new (context); } if (!moov->udta->meta->ilst) { moov->udta->meta->ilst = atom_ilst_new (); @@ -2870,7 +2996,7 @@ atom_moov_add_tag (AtomMOOV * moov, guint32 fourcc, guint32 flags, tag = atom_tag_new (fourcc, flags); tdata = &tag->data; atom_tag_data_alloc_data (tdata, size); - g_memmove (tdata->data, data, size); + memmove (tdata->data, data, size); atom_moov_append_tag (moov, build_atom_info_wrapper ((Atom *) tag, atom_tag_copy_data, @@ -3059,6 +3185,12 @@ atom_minf_set_video (AtomMINF * minf, AtomsContext * context) minf->vmhd = atom_vmhd_new (context); } +static void +atom_minf_set_subtitle (AtomMINF * minf) +{ + atom_minf_clear_handlers (minf); +} + static void atom_hdlr_set_type (AtomHDLR * hdlr, AtomsContext * context, guint32 comp_type, guint32 hdlr_type) @@ -3095,6 +3227,15 @@ atom_mdia_set_hdlr_type_video (AtomMDIA * mdia, AtomsContext * context) atom_hdlr_set_name (&mdia->hdlr, "VideoHandler"); } +static void +atom_mdia_set_hdlr_type_subtitle (AtomMDIA * mdia, AtomsContext * context) +{ + atom_hdlr_set_type (&mdia->hdlr, context, FOURCC_mhlr, FOURCC_sbtl); + + /* Just follows the pattern from video and audio above */ + atom_hdlr_set_name (&mdia->hdlr, "SubtitleHandler"); +} + static void atom_mdia_set_audio (AtomMDIA * mdia, AtomsContext * context) { @@ -3109,6 +3250,13 @@ atom_mdia_set_video (AtomMDIA * mdia, AtomsContext * context) atom_minf_set_video (&mdia->minf, context); } +static void +atom_mdia_set_subtitle (AtomMDIA * mdia, AtomsContext * context) +{ + atom_mdia_set_hdlr_type_subtitle (mdia, context); + atom_minf_set_subtitle (&mdia->minf); +} + static void atom_tkhd_set_audio (AtomTKHD * tkhd) { @@ -3127,6 +3275,18 @@ atom_tkhd_set_video (AtomTKHD * tkhd, AtomsContext * context, guint32 width, tkhd->height = height; } +static void +atom_tkhd_set_subtitle (AtomTKHD * tkhd, AtomsContext * context, guint32 width, + guint32 height) +{ + tkhd->volume = 0; + + /* qt and ISO base media do not contradict, and examples agree */ + tkhd->width = width; + tkhd->height = height; +} + + static void atom_edts_add_entry (AtomEDTS * edts, EditListEntry * entry) { @@ -3197,6 +3357,23 @@ atom_trak_add_video_entry (AtomTRAK * trak, AtomsContext * context, return mp4v; } +static SampleTableEntryTX3G * +atom_trak_add_subtitle_entry (AtomTRAK * trak, AtomsContext * context, + guint32 type) +{ + SampleTableEntryTX3G *tx3g = sample_entry_tx3g_new (); + AtomSTSD *stsd = &trak->mdia.minf.stbl.stsd; + + tx3g->se.header.type = type; + tx3g->se.kind = SUBTITLE; + tx3g->se.data_reference_index = 1; + + stsd->entries = g_list_prepend (stsd->entries, tx3g); + stsd->n_entries++; + return tx3g; +} + + static void atom_trak_set_constant_size_samples (AtomTRAK * trak, guint32 sample_size) { @@ -3218,6 +3395,13 @@ atom_trak_set_video (AtomTRAK * trak, AtomsContext * context, guint32 width, atom_mdia_set_video (&trak->mdia, context); } +static void +atom_trak_set_subtitle (AtomTRAK * trak, AtomsContext * context) +{ + atom_tkhd_set_subtitle (&trak->tkhd, context, 0, 0); + atom_mdia_set_subtitle (&trak->mdia, context); +} + static void atom_trak_set_audio_commons (AtomTRAK * trak, AtomsContext * context, guint32 rate) @@ -3236,6 +3420,13 @@ atom_trak_set_video_commons (AtomTRAK * trak, AtomsContext * context, trak->tkhd.height = height << 16; } +static void +atom_trak_set_subtitle_commons (AtomTRAK * trak, AtomsContext * context) +{ + atom_trak_set_subtitle (trak, context); + trak->mdia.mdhd.time_info.timescale = 1000; +} + void atom_trak_set_audio_type (AtomTRAK * trak, AtomsContext * context, AudioSampleEntry * entry, guint32 scale, AtomInfo * ext, gint sample_size) @@ -3340,6 +3531,32 @@ atom_trak_set_video_type (AtomTRAK * trak, AtomsContext * context, } } +void +subtitle_sample_entry_init (SubtitleSampleEntry * entry) +{ + entry->font_size = 0; + entry->font_face = 0; + entry->foreground_color_rgba = 0xFFFFFFFF; /* all white, opaque */ +} + +void +atom_trak_set_subtitle_type (AtomTRAK * trak, AtomsContext * context, + SubtitleSampleEntry * entry) +{ + SampleTableEntryTX3G *tx3g; + + atom_trak_set_subtitle_commons (trak, context); + atom_stsd_remove_entries (&trak->mdia.minf.stbl.stsd); + tx3g = atom_trak_add_subtitle_entry (trak, context, entry->fourcc); + + tx3g->font_face = entry->font_face; + tx3g->font_size = entry->font_size; + tx3g->foreground_color_rgba = entry->foreground_color_rgba; + + trak->is_video = FALSE; + trak->is_h264 = FALSE; +} + static void atom_mfhd_init (AtomMFHD * mfhd, guint32 sequence_number) { @@ -3682,7 +3899,7 @@ atom_trun_add_samples (AtomTRUN * trun, guint32 delta, guint32 size, TRUNSampleEntry nentry; if (pts_offset != 0) - trun->header.flags[1] |= TR_COMPOSITION_TIME_OFFSETS; + trun->header.flags[1] |= (TR_COMPOSITION_TIME_OFFSETS >> 8); nentry.sample_duration = delta; nentry.sample_size = size; diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h index d25684795..b49707466 100644 --- a/gst/isomp4/atoms.h +++ b/gst/isomp4/atoms.h @@ -49,7 +49,6 @@ #include "descriptors.h" #include "properties.h" #include "fourcc.h" -#include "ftypcc.h" /* helper storage struct */ #define ATOM_ARRAY(struct_type) \ @@ -250,6 +249,8 @@ typedef struct _AtomHDLR guint32 flags; guint32 flags_mask; gchar *name; + + AtomsTreeFlavor flavor; } AtomHDLR; typedef struct _AtomVMHD @@ -339,7 +340,8 @@ typedef enum _SampleEntryKind { UNKNOWN, AUDIO, - VIDEO + VIDEO, + SUBTITLE, } SampleEntryKind; typedef struct _SampleTableEntry @@ -349,7 +351,7 @@ typedef struct _SampleTableEntry guint8 reserved[6]; guint16 data_reference_index; - /* sort of entry */ + /* type of entry */ SampleEntryKind kind; } SampleTableEntry; @@ -420,6 +422,19 @@ typedef struct _SampleTableEntryMP4S AtomESDS es; } SampleTableEntryMP4S; +typedef struct _SampleTableEntryTX3G +{ + SampleTableEntry se; + + guint32 display_flags; + guint64 default_text_box; + guint16 font_id; + guint8 font_face; /* bold=0x1, italic=0x2, underline=0x4 */ + guint8 font_size; /* should always be 0.05 multiplied by the video track header height */ + guint32 foreground_color_rgba; + +} SampleTableEntryTX3G; + typedef struct _AtomSTSD { AtomFull header; @@ -898,6 +913,17 @@ typedef struct GstBuffer *codec_data; } AudioSampleEntry; +typedef struct +{ + guint32 fourcc; + + guint8 font_face; /* bold=0x1, italic=0x2, underline=0x4 */ + guint8 font_size; + guint32 foreground_color_rgba; +} SubtitleSampleEntry; + +void subtitle_sample_entry_init (SubtitleSampleEntry * entry); + void atom_trak_set_audio_type (AtomTRAK * trak, AtomsContext * context, AudioSampleEntry * entry, guint32 scale, AtomInfo * ext, gint sample_size); @@ -906,9 +932,15 @@ void atom_trak_set_video_type (AtomTRAK * trak, AtomsContext * context, VisualSampleEntry * entry, guint32 rate, GList * ext_atoms_list); +void atom_trak_set_subtitle_type (AtomTRAK * trak, AtomsContext * context, + SubtitleSampleEntry * entry); + void atom_trak_update_bitrates (AtomTRAK * trak, guint32 avg_bitrate, guint32 max_bitrate); +void atom_trak_tx3g_update_dimension (AtomTRAK * trak, guint32 width, + guint32 height); + AtomInfo * build_codec_data_extension (guint32 fourcc, const GstBuffer * codec_data); AtomInfo * build_mov_aac_extension (AtomTRAK * trak, const GstBuffer * codec_data, guint32 avg_bitrate, guint32 max_bitrate); diff --git a/gst/isomp4/atomsrecovery.c b/gst/isomp4/atomsrecovery.c index e3459c91d..fec76a37d 100644 --- a/gst/isomp4/atomsrecovery.c +++ b/gst/isomp4/atomsrecovery.c @@ -481,7 +481,8 @@ moov_recov_parse_tkhd (MoovRecovFile * moovrf, TrakRecovData * trakrd) return FALSE; /* advance the rest of tkhd */ - fseek (moovrf->file, 68, SEEK_CUR); + if (fseek (moovrf->file, 68, SEEK_CUR) != 0) + return FALSE; trakrd->trak_id = GST_READ_UINT32_BE (data); return TRUE; diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h index 1769c7b45..64322a7a7 100644 --- a/gst/isomp4/fourcc.h +++ b/gst/isomp4/fourcc.h @@ -50,196 +50,268 @@ G_BEGIN_DECLS #define FOURCC_null 0x0 -#define FOURCC_moov GST_MAKE_FOURCC('m','o','o','v') -#define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d') +#define FOURCC_2vuy GST_MAKE_FOURCC('2','v','u','y') +#define FOURCC_FMP4 GST_MAKE_FOURCC('F','M','P','4') +#define FOURCC_H264 GST_MAKE_FOURCC('H','2','6','4') +#define FOURCC_H265 GST_MAKE_FOURCC('H','2','6','5') +#define FOURCC_MAC3 GST_MAKE_FOURCC('M','A','C','3') +#define FOURCC_MAC6 GST_MAKE_FOURCC('M','A','C','6') +#define FOURCC_MP4V GST_MAKE_FOURCC('M','P','4','V') +#define FOURCC_PICT GST_MAKE_FOURCC('P','I','C','T') +#define FOURCC_QDM2 GST_MAKE_FOURCC('Q','D','M','2') +#define FOURCC_SVQ3 GST_MAKE_FOURCC('S','V','Q','3') +#define FOURCC_VP31 GST_MAKE_FOURCC('V','P','3','1') +#define FOURCC_VP80 GST_MAKE_FOURCC('V','P','8','0') +#define FOURCC_WRLE GST_MAKE_FOURCC('W','R','L','E') +#define FOURCC_XMP_ GST_MAKE_FOURCC('X','M','P','_') +#define FOURCC__ART GST_MAKE_FOURCC(0xa9,'A','R','T') +#define FOURCC_____ GST_MAKE_FOURCC('-','-','-','-') +#define FOURCC___in GST_MAKE_FOURCC(' ',' ','i','n') +#define FOURCC___ty GST_MAKE_FOURCC(' ',' ','t','y') +#define FOURCC__alb GST_MAKE_FOURCC(0xa9,'a','l','b') +#define FOURCC__cpy GST_MAKE_FOURCC(0xa9,'c','p','y') +#define FOURCC__day GST_MAKE_FOURCC(0xa9,'d','a','y') +#define FOURCC__des GST_MAKE_FOURCC(0xa9,'d','e','s') +#define FOURCC__enc GST_MAKE_FOURCC(0xa9,'e','n','c') +#define FOURCC__gen GST_MAKE_FOURCC(0xa9, 'g', 'e', 'n') +#define FOURCC__grp GST_MAKE_FOURCC(0xa9,'g','r','p') +#define FOURCC__inf GST_MAKE_FOURCC(0xa9,'i','n','f') +#define FOURCC__lyr GST_MAKE_FOURCC(0xa9,'l','y','r') +#define FOURCC__mp3 GST_MAKE_FOURCC('.','m','p','3') +#define FOURCC__nam GST_MAKE_FOURCC(0xa9,'n','a','m') +#define FOURCC__req GST_MAKE_FOURCC(0xa9,'r','e','q') +#define FOURCC__too GST_MAKE_FOURCC(0xa9,'t','o','o') +#define FOURCC__wrt GST_MAKE_FOURCC(0xa9,'w','r','t') +#define FOURCC_aART GST_MAKE_FOURCC('a','A','R','T') +#define FOURCC_agsm GST_MAKE_FOURCC('a','g','s','m') +#define FOURCC_alac GST_MAKE_FOURCC('a','l','a','c') +#define FOURCC_alaw GST_MAKE_FOURCC('a','l','a','w') +#define FOURCC_alis GST_MAKE_FOURCC('a','l','i','s') +#define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l') +#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_clip GST_MAKE_FOURCC('c','l','i','p') -#define FOURCC_trak GST_MAKE_FOURCC('t','r','a','k') -#define FOURCC_udta GST_MAKE_FOURCC('u','d','t','a') -#define FOURCC_ctab GST_MAKE_FOURCC('c','t','a','b') -#define FOURCC_tkhd GST_MAKE_FOURCC('t','k','h','d') +#define FOURCC_cmov GST_MAKE_FOURCC('c','m','o','v') +#define FOURCC_cmvd GST_MAKE_FOURCC('c','m','v','d') +#define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4') +#define FOURCC_covr GST_MAKE_FOURCC('c','o','v','r') +#define FOURCC_cpil GST_MAKE_FOURCC('c','p','i','l') +#define FOURCC_cprt GST_MAKE_FOURCC('c','p','r','t') #define FOURCC_crgn GST_MAKE_FOURCC('c','r','g','n') -#define FOURCC_matt GST_MAKE_FOURCC('m','a','t','t') -#define FOURCC_kmat GST_MAKE_FOURCC('k','m','a','t') +#define FOURCC_ctab GST_MAKE_FOURCC('c','t','a','b') +#define FOURCC_ctts GST_MAKE_FOURCC('c','t','t','s') +#define FOURCC_data GST_MAKE_FOURCC('d','a','t','a') +#define FOURCC_dcom GST_MAKE_FOURCC('d','c','o','m') +#define FOURCC_desc GST_MAKE_FOURCC('d','e','s','c') +#define FOURCC_dhlr GST_MAKE_FOURCC('d','h','l','r') +#define FOURCC_dinf GST_MAKE_FOURCC('d','i','n','f') +#define FOURCC_disc GST_MAKE_FOURCC('d','i','s','c') +#define FOURCC_disk GST_MAKE_FOURCC('d','i','s','k') +#define FOURCC_drac GST_MAKE_FOURCC('d','r','a','c') +#define FOURCC_dref GST_MAKE_FOURCC('d','r','e','f') +#define FOURCC_drmi GST_MAKE_FOURCC('d','r','m','i') +#define FOURCC_drms GST_MAKE_FOURCC('d','r','m','s') #define FOURCC_edts GST_MAKE_FOURCC('e','d','t','s') #define FOURCC_elst GST_MAKE_FOURCC('e','l','s','t') -#define FOURCC_load GST_MAKE_FOURCC('l','o','a','d') -#define FOURCC_tref GST_MAKE_FOURCC('t','r','e','f') +#define FOURCC_enda GST_MAKE_FOURCC('e','n','d','a') +#define FOURCC_esds GST_MAKE_FOURCC('e','s','d','s') +#define FOURCC_fmp4 GST_MAKE_FOURCC('f','m','p','4') +#define FOURCC_free GST_MAKE_FOURCC('f','r','e','e') +#define FOURCC_frma GST_MAKE_FOURCC('f','r','m','a') +#define FOURCC_ftyp GST_MAKE_FOURCC('f','t','y','p') +#define FOURCC_ftab GST_MAKE_FOURCC('f','t','a','b') +#define FOURCC_gama GST_MAKE_FOURCC('g','a','m','a') +#define FOURCC_glbl GST_MAKE_FOURCC('g','l','b','l') +#define FOURCC_gmhd GST_MAKE_FOURCC('g','m','h','d') +#define FOURCC_gmin GST_MAKE_FOURCC('g','m','i','n') +#define FOURCC_gnre GST_MAKE_FOURCC('g','n','r','e') +#define FOURCC_h263 GST_MAKE_FOURCC('h','2','6','3') +#define FOURCC_hdlr GST_MAKE_FOURCC('h','d','l','r') +#define FOURCC_hev1 GST_MAKE_FOURCC('h','e','v','1') +#define FOURCC_hint GST_MAKE_FOURCC('h','i','n','t') +#define FOURCC_hmhd GST_MAKE_FOURCC('h','m','h','d') +#define FOURCC_hndl GST_MAKE_FOURCC('h','n','d','l') +#define FOURCC_hnti GST_MAKE_FOURCC('h','n','t','i') +#define FOURCC_hvc1 GST_MAKE_FOURCC('h','v','c','1') +#define FOURCC_hvcC GST_MAKE_FOURCC('h','v','c','C') +#define FOURCC_ilst GST_MAKE_FOURCC('i','l','s','t') +#define FOURCC_ima4 GST_MAKE_FOURCC('i','m','a','4') #define FOURCC_imap GST_MAKE_FOURCC('i','m','a','p') -#define FOURCC___in GST_MAKE_FOURCC(' ',' ','i','n') -#define FOURCC___ty GST_MAKE_FOURCC(' ',' ','t','y') -#define FOURCC_mdia GST_MAKE_FOURCC('m','d','i','a') +#define FOURCC_in24 GST_MAKE_FOURCC('i','n','2','4') +#define FOURCC_jp2c GST_MAKE_FOURCC('j','p','2','c') +#define FOURCC_jpeg GST_MAKE_FOURCC('j','p','e','g') +#define FOURCC_keyw GST_MAKE_FOURCC('k','e','y','w') +#define FOURCC_kmat GST_MAKE_FOURCC('k','m','a','t') +#define FOURCC_kywd GST_MAKE_FOURCC('k','y','w','d') +#define FOURCC_load GST_MAKE_FOURCC('l','o','a','d') +#define FOURCC_matt GST_MAKE_FOURCC('m','a','t','t') +#define FOURCC_mdat GST_MAKE_FOURCC('m','d','a','t') #define FOURCC_mdhd GST_MAKE_FOURCC('m','d','h','d') -#define FOURCC_hdlr GST_MAKE_FOURCC('h','d','l','r') -#define FOURCC_dhlr GST_MAKE_FOURCC('d','h','l','r') +#define FOURCC_mdia GST_MAKE_FOURCC('m','d','i','a') +#define FOURCC_mdir GST_MAKE_FOURCC('m','d','i','r') +#define FOURCC_mean GST_MAKE_FOURCC('m','e','a','n') +#define FOURCC_meta GST_MAKE_FOURCC('m','e','t','a') #define FOURCC_mhlr GST_MAKE_FOURCC('m','h','l','r') #define FOURCC_minf GST_MAKE_FOURCC('m','i','n','f') -#define FOURCC_mdir GST_MAKE_FOURCC('m','d','i','r') -#define FOURCC_vmhd GST_MAKE_FOURCC('v','m','h','d') -#define FOURCC_smhd GST_MAKE_FOURCC('s','m','h','d') -#define FOURCC_gmhd GST_MAKE_FOURCC('g','m','h','d') -#define FOURCC_hmhd GST_MAKE_FOURCC('h','m','h','d') -#define FOURCC_gmin GST_MAKE_FOURCC('g','m','i','n') -#define FOURCC_dinf GST_MAKE_FOURCC('d','i','n','f') -#define FOURCC_dref GST_MAKE_FOURCC('d','r','e','f') -#define FOURCC_stbl GST_MAKE_FOURCC('s','t','b','l') -#define FOURCC_stsd GST_MAKE_FOURCC('s','t','s','d') -#define FOURCC_stts GST_MAKE_FOURCC('s','t','t','s') -#define FOURCC_stss GST_MAKE_FOURCC('s','t','s','s') -#define FOURCC_stsc GST_MAKE_FOURCC('s','t','s','c') -#define FOURCC_stsz GST_MAKE_FOURCC('s','t','s','z') -#define FOURCC_stco GST_MAKE_FOURCC('s','t','c','o') -#define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e') -#define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n') -#define FOURCC_strm GST_MAKE_FOURCC('s','t','r','m') -#define FOURCC_rtsp GST_MAKE_FOURCC('r','t','s','p') -#define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4') -#define FOURCC_cmov GST_MAKE_FOURCC('c','m','o','v') -#define FOURCC_dcom GST_MAKE_FOURCC('d','c','o','m') -#define FOURCC_cmvd GST_MAKE_FOURCC('c','m','v','d') -#define FOURCC_hint GST_MAKE_FOURCC('h','i','n','t') +#define FOURCC_moov GST_MAKE_FOURCC('m','o','o','v') #define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a') -#define FOURCC__mp3 GST_MAKE_FOURCC('.','m','p','3') #define FOURCC_mp4s GST_MAKE_FOURCC('m','p','4','s') +#define FOURCC_mp4s GST_MAKE_FOURCC('m','p','4','s') #define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v') -#define FOURCC_2vuy GST_MAKE_FOURCC('2','v','u','y') -#define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e') -#define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l') -#define FOURCC_esds GST_MAKE_FOURCC('e','s','d','s') +#define FOURCC_name GST_MAKE_FOURCC('n','a','m','e') #define FOURCC_pasp GST_MAKE_FOURCC('p','a','s','p') -#define FOURCC_hnti GST_MAKE_FOURCC('h','n','t','i') -#define FOURCC_rtp_ GST_MAKE_FOURCC('r','t','p',' ') -#define FOURCC_sdp_ GST_MAKE_FOURCC('s','d','p',' ') -#define FOURCC_meta GST_MAKE_FOURCC('m','e','t','a') -#define FOURCC_ilst GST_MAKE_FOURCC('i','l','s','t') -#define FOURCC__nam GST_MAKE_FOURCC(0xa9,'n','a','m') -#define FOURCC__ART GST_MAKE_FOURCC(0xa9,'A','R','T') -#define FOURCC_aART GST_MAKE_FOURCC('a','A','R','T') -#define FOURCC__wrt GST_MAKE_FOURCC(0xa9,'w','r','t') -#define FOURCC__grp GST_MAKE_FOURCC(0xa9,'g','r','p') -#define FOURCC__alb GST_MAKE_FOURCC(0xa9,'a','l','b') -#define FOURCC__day GST_MAKE_FOURCC(0xa9,'d','a','y') -#define FOURCC__des GST_MAKE_FOURCC(0xa9,'d','e','s') -#define FOURCC__lyr GST_MAKE_FOURCC(0xa9,'l','y','r') -#define FOURCC_gnre GST_MAKE_FOURCC('g','n','r','e') -#define FOURCC_disc GST_MAKE_FOURCC('d','i','s','c') -#define FOURCC_disk GST_MAKE_FOURCC('d','i','s','k') -#define FOURCC_trkn GST_MAKE_FOURCC('t','r','k','n') -#define FOURCC_cprt GST_MAKE_FOURCC('c','p','r','t') -#define FOURCC_covr GST_MAKE_FOURCC('c','o','v','r') -#define FOURCC_cpil GST_MAKE_FOURCC('c','p','i','l') -#define FOURCC_tmpo GST_MAKE_FOURCC('t','m','p','o') -#define FOURCC__too GST_MAKE_FOURCC(0xa9,'t','o','o') -#define FOURCC_keyw GST_MAKE_FOURCC('k','e','y','w') -#define FOURCC_____ GST_MAKE_FOURCC('-','-','-','-') -#define FOURCC_free GST_MAKE_FOURCC('f','r','e','e') -#define FOURCC_data GST_MAKE_FOURCC('d','a','t','a') -#define FOURCC_SVQ3 GST_MAKE_FOURCC('S','V','Q','3') -#define FOURCC_rmra GST_MAKE_FOURCC('r','m','r','a') -#define FOURCC_rmda GST_MAKE_FOURCC('r','m','d','a') +#define FOURCC_pcst GST_MAKE_FOURCC('p','c','s','t') +#define FOURCC_pgap GST_MAKE_FOURCC('p','g','a','p') +#define FOURCC_pnot GST_MAKE_FOURCC('p','n','o','t') +#define FOURCC_qt__ GST_MAKE_FOURCC('q','t',' ',' ') +#define FOURCC_qtim GST_MAKE_FOURCC('q','t','i','m') +#define FOURCC_raw_ GST_MAKE_FOURCC('r','a','w',' ') #define FOURCC_rdrf GST_MAKE_FOURCC('r','d','r','f') -#define FOURCC__gen GST_MAKE_FOURCC(0xa9, 'g', 'e', 'n') +#define FOURCC_rle_ GST_MAKE_FOURCC('r','l','e',' ') +#define FOURCC_rmda GST_MAKE_FOURCC('r','m','d','a') #define FOURCC_rmdr GST_MAKE_FOURCC('r','m','d','r') +#define FOURCC_rmra GST_MAKE_FOURCC('r','m','r','a') #define FOURCC_rmvc GST_MAKE_FOURCC('r','m','v','c') -#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_rtp_ GST_MAKE_FOURCC('r','t','p',' ') +#define FOURCC_rtsp GST_MAKE_FOURCC('r','t','s','p') #define FOURCC_s263 GST_MAKE_FOURCC('s','2','6','3') -#define FOURCC_avcC GST_MAKE_FOURCC('a','v','c','C') -#define FOURCC_VP31 GST_MAKE_FOURCC('V','P','3','1') -#define FOURCC_VP80 GST_MAKE_FOURCC('V','P','8','0') -#define FOURCC_rle_ GST_MAKE_FOURCC('r','l','e',' ') -#define FOURCC_MAC6 GST_MAKE_FOURCC('M','A','C','6') -#define FOURCC_MAC3 GST_MAKE_FOURCC('M','A','C','3') -#define FOURCC_ima4 GST_MAKE_FOURCC('i','m','a','4') -#define FOURCC_ulaw GST_MAKE_FOURCC('u','l','a','w') -#define FOURCC_alaw GST_MAKE_FOURCC('a','l','a','w') -#define FOURCC_twos GST_MAKE_FOURCC('t','w','o','s') -#define FOURCC_sowt GST_MAKE_FOURCC('s','o','w','t') -#define FOURCC_raw_ GST_MAKE_FOURCC('r','a','w',' ') -#define FOURCC_QDM2 GST_MAKE_FOURCC('Q','D','M','2') -#define FOURCC_alac GST_MAKE_FOURCC('a','l','a','c') #define FOURCC_samr GST_MAKE_FOURCC('s','a','m','r') #define FOURCC_sawb GST_MAKE_FOURCC('s','a','w','b') -#define FOURCC_mdat GST_MAKE_FOURCC('m','d','a','t') -#define FOURCC_wide GST_MAKE_FOURCC('w','i','d','e') -#define FOURCC_PICT GST_MAKE_FOURCC('P','I','C','T') -#define FOURCC_pnot GST_MAKE_FOURCC('p','n','o','t') -#define FOURCC_zlib GST_MAKE_FOURCC('z','l','i','b') -#define FOURCC_alis GST_MAKE_FOURCC('a','l','i','s') -#define FOURCC_url_ GST_MAKE_FOURCC('u','r','l',' ') -#define FOURCC_frma GST_MAKE_FOURCC('f','r','m','a') -#define FOURCC_ctts GST_MAKE_FOURCC('c','t','t','s') -#define FOURCC_drac GST_MAKE_FOURCC('d','r','a','c') -#define FOURCC_jpeg GST_MAKE_FOURCC('j','p','e','g') -#define FOURCC_mjp2 GST_MAKE_FOURCC('m','j','p','2') -#define FOURCC_jp2h GST_MAKE_FOURCC('j','p','2','h') -#define FOURCC_jp2c GST_MAKE_FOURCC('j','p','2','c') -#define FOURCC_gama GST_MAKE_FOURCC('g','a','m','a') -#define FOURCC_tvsh GST_MAKE_FOURCC('t','v','s','h') -#define FOURCC_tven GST_MAKE_FOURCC('t','v','e','n') -#define FOURCC_tvsn GST_MAKE_FOURCC('t','v','s','n') -#define FOURCC_tves GST_MAKE_FOURCC('t','v','e','s') -#define FOURCC_sonm GST_MAKE_FOURCC('s','o','n','m') +#define FOURCC_sbtl GST_MAKE_FOURCC('s','b','t','l') +#define FOURCC_sdp_ GST_MAKE_FOURCC('s','d','p',' ') +#define FOURCC_smhd GST_MAKE_FOURCC('s','m','h','d') +#define FOURCC_soaa GST_MAKE_FOURCC('s','o','a','a') #define FOURCC_soal GST_MAKE_FOURCC('s','o','a','l') #define FOURCC_soar GST_MAKE_FOURCC('s','o','a','r') -#define FOURCC_soaa GST_MAKE_FOURCC('s','o','a','a') #define FOURCC_soco GST_MAKE_FOURCC('s','o','c','o') +#define FOURCC_sonm GST_MAKE_FOURCC('s','o','n','m') #define FOURCC_sosn GST_MAKE_FOURCC('s','o','s','n') -#define FOURCC_XMP_ GST_MAKE_FOURCC('X','M','P','_') +#define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n') +#define FOURCC_sowt GST_MAKE_FOURCC('s','o','w','t') +#define FOURCC_stbl GST_MAKE_FOURCC('s','t','b','l') +#define FOURCC_stco GST_MAKE_FOURCC('s','t','c','o') +#define FOURCC_stps GST_MAKE_FOURCC('s','t','p','s') +#define FOURCC_strf GST_MAKE_FOURCC('s','t','r','f') +#define FOURCC_strm GST_MAKE_FOURCC('s','t','r','m') +#define FOURCC_stsc GST_MAKE_FOURCC('s','t','s','c') +#define FOURCC_stsd GST_MAKE_FOURCC('s','t','s','d') +#define FOURCC_stss GST_MAKE_FOURCC('s','t','s','s') +#define FOURCC_stsz GST_MAKE_FOURCC('s','t','s','z') +#define FOURCC_stts GST_MAKE_FOURCC('s','t','t','s') +#define FOURCC_subp GST_MAKE_FOURCC('s','u','b','p') +#define FOURCC_text GST_MAKE_FOURCC('t','e','x','t') +#define FOURCC_tkhd GST_MAKE_FOURCC('t','k','h','d') +#define FOURCC_tmpo GST_MAKE_FOURCC('t','m','p','o') +#define FOURCC_trak GST_MAKE_FOURCC('t','r','a','k') +#define FOURCC_tref GST_MAKE_FOURCC('t','r','e','f') +#define FOURCC_trkn GST_MAKE_FOURCC('t','r','k','n') +#define FOURCC_tven GST_MAKE_FOURCC('t','v','e','n') +#define FOURCC_tves GST_MAKE_FOURCC('t','v','e','s') +#define FOURCC_tvsh GST_MAKE_FOURCC('t','v','s','h') +#define FOURCC_tvsn GST_MAKE_FOURCC('t','v','s','n') +#define FOURCC_twos GST_MAKE_FOURCC('t','w','o','s') +#define FOURCC_tx3g GST_MAKE_FOURCC('t','x','3','g') +#define FOURCC_udta GST_MAKE_FOURCC('u','d','t','a') +#define FOURCC_ulaw GST_MAKE_FOURCC('u','l','a','w') +#define FOURCC_url_ GST_MAKE_FOURCC('u','r','l',' ') #define FOURCC_uuid GST_MAKE_FOURCC('u','u','i','d') +#define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e') +#define FOURCC_vmhd GST_MAKE_FOURCC('v','m','h','d') +#define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e') +#define FOURCC_wide GST_MAKE_FOURCC('w','i','d','e') +#define FOURCC_zlib GST_MAKE_FOURCC('z','l','i','b') +#define FOURCC_ap4h GST_MAKE_FOURCC('a','p','4','h') +#define FOURCC_apch GST_MAKE_FOURCC('a','p','c','h') +#define FOURCC_apcn GST_MAKE_FOURCC('a','p','c','n') +#define FOURCC_apco GST_MAKE_FOURCC('a','p','c','o') +#define FOURCC_apcs GST_MAKE_FOURCC('a','p','c','s') +#define FOURCC_m1v GST_MAKE_FOURCC('m','1','v',' ') +#define FOURCC_vivo GST_MAKE_FOURCC('v','i','v','o') + +#define FOURCC_3gg6 GST_MAKE_FOURCC('3','g','g','6') +#define FOURCC_3gg7 GST_MAKE_FOURCC('3','g','g','7') +#define FOURCC_3gp4 GST_MAKE_FOURCC('3','g','p','4') +#define FOURCC_3gp6 GST_MAKE_FOURCC('3','g','p','6') +#define FOURCC_3gr6 GST_MAKE_FOURCC('3','g','r','6') +#define FOURCC_isml GST_MAKE_FOURCC('i','s','m','l') +#define FOURCC_iso2 GST_MAKE_FOURCC('i','s','o','2') +#define FOURCC_isom GST_MAKE_FOURCC('i','s','o','m') +#define FOURCC_mp41 GST_MAKE_FOURCC('m','p','4','1') +#define FOURCC_mp42 GST_MAKE_FOURCC('m','p','4','2') +#define FOURCC_piff GST_MAKE_FOURCC('p','i','f','f') +#define FOURCC_titl GST_MAKE_FOURCC('t','i','t','l') /* SVQ3 fourcc */ #define FOURCC_SEQH GST_MAKE_FOURCC('S','E','Q','H') #define FOURCC_SMI_ GST_MAKE_FOURCC('S','M','I',' ') -/* fragmented mp4 */ -#define FOURCC_mvex GST_MAKE_FOURCC('m','v','e','x') +/* 3gpp asset meta data fourcc */ +#define FOURCC_albm GST_MAKE_FOURCC('a','l','b','m') +#define FOURCC_auth GST_MAKE_FOURCC('a','u','t','h') +#define FOURCC_clsf GST_MAKE_FOURCC('c','l','s','f') +#define FOURCC_dscp GST_MAKE_FOURCC('d','s','c','p') +#define FOURCC_loci GST_MAKE_FOURCC('l','o','c','i') +#define FOURCC_perf GST_MAKE_FOURCC('p','e','r','f') +#define FOURCC_rtng GST_MAKE_FOURCC('r','t','n','g') +#define FOURCC_yrrc GST_MAKE_FOURCC('y','r','r','c') + +/* misc tag stuff */ +#define FOURCC_ID32 GST_MAKE_FOURCC('I', 'D','3','2') + +/* ISO Motion JPEG 2000 fourcc */ +#define FOURCC_cdef GST_MAKE_FOURCC('c','d','e','f') +#define FOURCC_cmap GST_MAKE_FOURCC('c','m','a','p') +#define FOURCC_colr GST_MAKE_FOURCC('c','o','l','r') +#define FOURCC_fiel GST_MAKE_FOURCC('f','i','e','l') +#define FOURCC_ihdr GST_MAKE_FOURCC('i','h','d','r') +#define FOURCC_jp2h GST_MAKE_FOURCC('j','p','2','h') +#define FOURCC_jp2x GST_MAKE_FOURCC('j','p','2','x') +#define FOURCC_mjp2 GST_MAKE_FOURCC('m','j','p','2') + +/* some buggy hardware's notion of mdhd */ +#define FOURCC_mhdr GST_MAKE_FOURCC('m','h','d','r') + +/* Fragmented MP4 */ +#define FOURCC_btrt GST_MAKE_FOURCC('b','t','r','t') #define FOURCC_mehd GST_MAKE_FOURCC('m','e','h','d') -#define FOURCC_trex GST_MAKE_FOURCC('t','r','e','x') +#define FOURCC_mfhd GST_MAKE_FOURCC('m','f','h','d') #define FOURCC_mfra GST_MAKE_FOURCC('m','f','r','a') -#define FOURCC_moof GST_MAKE_FOURCC('m','o','o','f') -#define FOURCC_tfra GST_MAKE_FOURCC('t','f','r','a') -#define FOURCC_tfhd GST_MAKE_FOURCC('t','f','h','d') -#define FOURCC_trun GST_MAKE_FOURCC('t','r','u','n') -#define FOURCC_sdtp GST_MAKE_FOURCC('s','d','t','p') #define FOURCC_mfro GST_MAKE_FOURCC('m','f','r','o') -#define FOURCC_mfhd GST_MAKE_FOURCC('m','f','h','d') +#define FOURCC_moof GST_MAKE_FOURCC('m','o','o','f') +#define FOURCC_mvex GST_MAKE_FOURCC('m','v','e','x') #define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d') +#define FOURCC_ovc1 GST_MAKE_FOURCC('o','v','c','1') +#define FOURCC_owma GST_MAKE_FOURCC('o','w','m','a') +#define FOURCC_sdtp GST_MAKE_FOURCC('s','d','t','p') +#define FOURCC_tfhd GST_MAKE_FOURCC('t','f','h','d') +#define FOURCC_tfra GST_MAKE_FOURCC('t','f','r','a') #define FOURCC_traf GST_MAKE_FOURCC('t','r','a','f') -#define FOURCC_btrt GST_MAKE_FOURCC('b','t','r','t') +#define FOURCC_trex GST_MAKE_FOURCC('t','r','e','x') +#define FOURCC_trun GST_MAKE_FOURCC('t','r','u','n') + +/* MPEG DASH */ +#define FOURCC_tfdt GST_MAKE_FOURCC('t','f','d','t') /* Xiph fourcc */ -#define FOURCC_XiTh GST_MAKE_FOURCC('X','i','T','h') #define FOURCC_XdxT GST_MAKE_FOURCC('X','d','x','T') +#define FOURCC_XiTh GST_MAKE_FOURCC('X','i','T','h') +#define FOURCC_tCtC GST_MAKE_FOURCC('t','C','t','C') #define FOURCC_tCtH GST_MAKE_FOURCC('t','C','t','H') #define FOURCC_tCt_ GST_MAKE_FOURCC('t','C','t','#') -#define FOURCC_tCtC GST_MAKE_FOURCC('t','C','t','C') /* ilst metatags */ -#define FOURCC_titl GST_MAKE_FOURCC('t','i','t','l') #define FOURCC__cmt GST_MAKE_FOURCC(0xa9, 'c','m','t') -/* 3gp tags */ -#define FOURCC_dscp GST_MAKE_FOURCC('d','s','c','p') -#define FOURCC_perf GST_MAKE_FOURCC('p','e','r','f') -#define FOURCC_auth GST_MAKE_FOURCC('a','u','t','h') -#define FOURCC_yrrc GST_MAKE_FOURCC('y','r','r','c') -#define FOURCC_albm GST_MAKE_FOURCC('a','l','b','m') -#define FOURCC_loci GST_MAKE_FOURCC('l','o','c','i') -#define FOURCC_kywd GST_MAKE_FOURCC('k','y','w','d') -#define FOURCC_clsf GST_MAKE_FOURCC('c','l','s','f') +/* Chapters reference */ +#define FOURCC_chap GST_MAKE_FOURCC('c','h','a','p') /* For Microsoft Wave formats embedded in quicktime, the FOURCC is 'm', 's', then the 16 bit wave codec id */ #define MS_WAVE_FOURCC(codecid) GST_MAKE_FOURCC( \ 'm', 's', ((codecid)>>8)&0xff, ((codecid)&0xff)) -#define FOURCC_owma GST_MAKE_FOURCC('o','w','m','a') -#define FOURCC_ovc1 GST_MAKE_FOURCC('o','v','c','1') - G_END_DECLS #endif /* __FOURCC_H__ */ diff --git a/gst/isomp4/ftypcc.h b/gst/isomp4/ftypcc.h deleted file mode 100644 index 6da9a0906..000000000 --- a/gst/isomp4/ftypcc.h +++ /dev/null @@ -1,68 +0,0 @@ -/* GStreamer - * Copyright (C) <2008> Thiago Sousa Santos <thiagoss@embedded.ufcg.edu.br> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should 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. - */ -/* - * Unless otherwise indicated, Source Code is licensed under MIT license. - * See further explanation attached in License Statement (distributed in the file - * LICENSE). - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is furnished to do - * so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#ifndef __FTYP_CC_H__ -#define __FTYP_CC_H__ - -#include <gst/gst.h> - -G_BEGIN_DECLS - -#define FOURCC_ftyp GST_MAKE_FOURCC('f','t','y','p') -#define FOURCC_isom GST_MAKE_FOURCC('i','s','o','m') -#define FOURCC_iso2 GST_MAKE_FOURCC('i','s','o','2') -#define FOURCC_mp41 GST_MAKE_FOURCC('m','p','4','1') -#define FOURCC_mp42 GST_MAKE_FOURCC('m','p','4','2') -#define FOURCC_mjp2 GST_MAKE_FOURCC('m','j','p','2') -#define FOURCC_3gp4 GST_MAKE_FOURCC('3','g','p','4') -#define FOURCC_3gp6 GST_MAKE_FOURCC('3','g','p','6') -#define FOURCC_3gg6 GST_MAKE_FOURCC('3','g','g','6') -#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/gstqtmoovrecover.c b/gst/isomp4/gstqtmoovrecover.c index 70c7466f0..80b22ebcb 100644 --- a/gst/isomp4/gstqtmoovrecover.c +++ b/gst/isomp4/gstqtmoovrecover.c @@ -57,8 +57,6 @@ * </programlisting> * </para> * </refsect2> - * - * Documentation last reviewed on 2011-04-21 */ #ifdef HAVE_CONFIG_H diff --git a/gst/isomp4/gstqtmux-doc.c b/gst/isomp4/gstqtmux-doc.c index 4c8919726..3b857d84a 100644 --- a/gst/isomp4/gstqtmux-doc.c +++ b/gst/isomp4/gstqtmux-doc.c @@ -65,35 +65,21 @@ * The fragmented file features defined (only) in ISO Base Media are used by * ISMV files making up (a.o.) Smooth Streaming (ismlmux). * - * A few properties (<link linkend="GstMP4Mux--movie-timescale">movie-timescale</link>, - * <link linkend="GstMP4Mux--trak-timescale">trak-timescale</link>) allow adjusting - * some technical parameters, which might be useful in (rare) cases to resolve - * compatibility issues in some situations. + * A few properties (#GstMp4Mux:movie-timescale, #GstMp4Mux:trak-timescale) + * allow adjusting some technical parameters, which might be useful in (rare) + * cases to resolve compatibility issues in some situations. * * Some other properties influence the result more fundamentally. - * A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, - * somewhat contrary to this usually being called "the header". - * However, a <link linkend="GstMP4Mux--faststart">faststart</link> file will - * (with some effort) arrange this to be located near start of the file, - * which then allows it e.g. to be played while downloading. - * Alternatively, rather than having one chunk of metadata at start (or end), - * there can be some metadata at start and most of the other data can be spread - * out into fragments of <link linkend="GstMP4Mux--fragment-duration">fragment-duration</link>. + * A typical mov/mp4 file's metadata (aka moov) is located at the end of the + * file, somewhat contrary to this usually being called "the header". + * However, a #GstMp4Mux:faststart file will (with some effort) arrange this to + * be located near start of the file, which then allows it e.g. to be played + * while downloading. Alternatively, rather than having one chunk of metadata at + * start (or end), there can be some metadata at start and most of the other + * data can be spread out into fragments of #GstMp4Mux:fragment-duration. * If such fragmented layout is intended for streaming purposes, then - * <link linkend="GstMP4Mux--streamable">streamable</link> allows foregoing to add - * index metadata (at the end of file). - * - * <link linkend="GstMP4Mux--dts-method">dts-method</link> allows selecting a - * method for managing input timestamps (stay tuned for 0.11 to have this - * automagically settled). The default delta/duration method should handle nice - * (aka perfect streams) just fine, but may experience problems otherwise - * (e.g. input stream with re-ordered B-frames and/or with frame dropping). - * The re-ordering approach re-assigns incoming timestamps in ascending order - * to incoming buffers and offers an alternative in such cases. In cases where - * that might fail, the remaining method can be tried, which is exact and - * according to specs, but might experience playback on not so spec-wise players. - * Note that this latter approach also requires one to enable - * <link linkend="GstMP4Mux--presentation-timestamp">presentation-timestamp</link>. + * #GstMp4Mux:streamable allows foregoing to add index metadata (at the end of + * file). * * <refsect2> * <title>Example pipelines</title> @@ -103,8 +89,6 @@ * Records a video stream captured from a v4l2 device, encodes it into H.264 * and muxes it into an mp4 file. * </refsect2> - * - * Documentation last reviewed on 2011-04-21 */ /* ============================= 3gppmux ==================================== */ @@ -129,35 +113,21 @@ * The fragmented file features defined (only) in ISO Base Media are used by * ISMV files making up (a.o.) Smooth Streaming (ismlmux). * - * A few properties (<link linkend="Gst3GPPMux--movie-timescale">movie-timescale</link>, - * <link linkend="Gst3GPPMux--trak-timescale">trak-timescale</link>) allow adjusting - * some technical parameters, which might be useful in (rare) cases to resolve - * compatibility issues in some situations. + * A few properties (#Gst3GPPMux:movie-timescale, #Gst3GPPMux:trak-timescale) + * allow adjusting some technical parameters, which might be useful in (rare) + * cases to resolve compatibility issues in some situations. * * Some other properties influence the result more fundamentally. * A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, - * somewhat contrary to this usually being called "the header". - * However, a <link linkend="Gst3GPPMux--faststart">faststart</link> file will - * (with some effort) arrange this to be located near start of the file, - * which then allows it e.g. to be played while downloading. - * Alternatively, rather than having one chunk of metadata at start (or end), - * there can be some metadata at start and most of the other data can be spread - * out into fragments of <link linkend="Gst3GPPMux--fragment-duration">fragment-duration</link>. - * If such fragmented layout is intended for streaming purposes, then - * <link linkend="Gst3GPPMux--streamable">streamable</link> allows foregoing to add - * index metadata (at the end of file). - * - * <link linkend="Gst3GPPMux--dts-method">dts-method</link> allows selecting a - * method for managing input timestamps (stay tuned for 0.11 to have this - * automagically settled). The default delta/duration method should handle nice - * (aka perfect streams) just fine, but may experience problems otherwise - * (e.g. input stream with re-ordered B-frames and/or with frame dropping). - * The re-ordering approach re-assigns incoming timestamps in ascending order - * to incoming buffers and offers an alternative in such cases. In cases where - * that might fail, the remaining method can be tried, which is exact and - * according to specs, but might experience playback on not so spec-wise players. - * Note that this latter approach also requires one to enable - * <link linkend="Gst3GPPMux--presentation-timestamp">presentation-timestamp</link>. + * somewhat contrary to this usually being called "the header". However, a + * #Gst3GPPMux:faststart file will (with some effort) arrange this to be located + * near start of the file, which then allows it e.g. to be played while + * downloading. Alternatively, rather than having one chunk of metadata at start + * (or end), there can be some metadata at start and most of the other data can + * be spread out into fragments of #Gst3GPPMux:fragment-duration. If such + * fragmented layout is intended for streaming purposes, then + * #Gst3GPPMux:streamable allows foregoing to add index metadata (at the end of + * file). * * <refsect2> * <title>Example pipelines</title> @@ -193,35 +163,21 @@ * The fragmented file features defined (only) in ISO Base Media are used by * ISMV files making up (a.o.) Smooth Streaming (ismlmux). * - * A few properties (<link linkend="GstMJ2Mux--movie-timescale">movie-timescale</link>, - * <link linkend="GstMJ2Mux--trak-timescale">trak-timescale</link>) allow adjusting - * some technical parameters, which might be useful in (rare) cases to resolve - * compatibility issues in some situations. + * A few properties (#GstMJ2Mux:movie-timescale, #GstMJ2Mux:trak-timescale) + * allow adjusting some technical parameters, which might be useful in (rare) + * cases to resolve compatibility issues in some situations. * * Some other properties influence the result more fundamentally. * A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, - * somewhat contrary to this usually being called "the header". - * However, a <link linkend="GstMJ2Mux--faststart">faststart</link> file will - * (with some effort) arrange this to be located near start of the file, - * which then allows it e.g. to be played while downloading. - * Alternatively, rather than having one chunk of metadata at start (or end), - * there can be some metadata at start and most of the other data can be spread - * out into fragments of <link linkend="GstMJ2Mux--fragment-duration">fragment-duration</link>. - * If such fragmented layout is intended for streaming purposes, then - * <link linkend="GstMJ2Mux--streamable">streamable</link> allows foregoing to add - * index metadata (at the end of file). - * - * <link linkend="GstMJ2Mux--dts-method">dts-method</link> allows selecting a - * method for managing input timestamps (stay tuned for 0.11 to have this - * automagically settled). The default delta/duration method should handle nice - * (aka perfect streams) just fine, but may experience problems otherwise - * (e.g. input stream with re-ordered B-frames and/or with frame dropping). - * The re-ordering approach re-assigns incoming timestamps in ascending order - * to incoming buffers and offers an alternative in such cases. In cases where - * that might fail, the remaining method can be tried, which is exact and - * according to specs, but might experience playback on not so spec-wise players. - * Note that this latter approach also requires one to enable - * <link linkend="GstMJ2Mux--presentation-timestamp">presentation-timestamp</link>. + * somewhat contrary to this usually being called "the header". However, a + * #GstMJ2Mux:faststart file will (with some effort) arrange this to be located + * near start of the file, which then allows it e.g. to be played while + * downloading. Alternatively, rather than having one chunk of metadata at start + * (or end), there can be some metadata at start and most of the other data can + * be spread out into fragments of #GstMJ2Mux:fragment-duration. If such + * fragmented layout is intended for streaming purposes, then + * #GstMJ2Mux:streamable allows foregoing to add index metadata (at the end of + * file). * * <refsect2> * <title>Example pipelines</title> @@ -257,35 +213,21 @@ * The fragmented file features defined (only) in ISO Base Media are used by * ISMV files making up (a.o.) Smooth Streaming (ismlmux). * - * A few properties (<link linkend="GstISMLMux--movie-timescale">movie-timescale</link>, - * <link linkend="GstISMLMux--trak-timescale">trak-timescale</link>) allow adjusting - * some technical parameters, which might be useful in (rare) cases to resolve - * compatibility issues in some situations. + * A few properties (#GstISMLMux:movie-timescale, #GstISMLMux:trak-timescale) + * allow adjusting some technical parameters, which might be useful in (rare) + * cases to resolve compatibility issues in some situations. * * Some other properties influence the result more fundamentally. * A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, - * somewhat contrary to this usually being called "the header". - * However, a <link linkend="GstISMLMux--faststart">faststart</link> file will - * (with some effort) arrange this to be located near start of the file, - * which then allows it e.g. to be played while downloading. - * Alternatively, rather than having one chunk of metadata at start (or end), - * there can be some metadata at start and most of the other data can be spread - * out into fragments of <link linkend="GstISMLMux--fragment-duration">fragment-duration</link>. - * If such fragmented layout is intended for streaming purposes, then - * <link linkend="GstISMLMux--streamable">streamable</link> allows foregoing to add - * index metadata (at the end of file). - * - * <link linkend="GstISMLMux--dts-method">dts-method</link> allows selecting a - * method for managing input timestamps (stay tuned for 0.11 to have this - * automagically settled). The default delta/duration method should handle nice - * (aka perfect streams) just fine, but may experience problems otherwise - * (e.g. input stream with re-ordered B-frames and/or with frame dropping). - * The re-ordering approach re-assigns incoming timestamps in ascending order - * to incoming buffers and offers an alternative in such cases. In cases where - * that might fail, the remaining method can be tried, which is exact and - * according to specs, but might experience playback on not so spec-wise players. - * Note that this latter approach also requires one to enable - * <link linkend="GstISMLMux--presentation-timestamp">presentation-timestamp</link>. + * somewhat contrary to this usually being called "the header". However, a + * #GstISMLMux:faststart file will (with some effort) arrange this to be located + * near start of the file, which then allows it e.g. to be played while + * downloading. Alternatively, rather than having one chunk of metadata at start + * (or end), there can be some metadata at start and most of the other data can + * be spread out into fragments of #GstISMLMux:fragment-duration. If such + * fragmented layout is intended for streaming purposes, then + * #GstISMLMux:streamable allows foregoing to add index metadata (at the end of + * file). * * <refsect2> * <title>Example pipelines</title> diff --git a/gst/isomp4/gstqtmux-doc.h b/gst/isomp4/gstqtmux-doc.h index bb8129450..9d1216416 100644 --- a/gst/isomp4/gstqtmux-doc.h +++ b/gst/isomp4/gstqtmux-doc.h @@ -46,7 +46,7 @@ #error "This header is for gtk-doc only and not supposed to be included" typedef struct _GstMP4Mux GstMP4Mux; -typedef struct _Gst3GPPMux GstMP4Mux; -typedef struct _GstISMLMux GstMP4Mux; +typedef struct _Gst3GPPMux Gst3GPPMux; +typedef struct _GstISMLMux GstISMLMux; typedef struct _GstMJ2Mux GstMJ2Mux; diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index 3231963bd..b33904168 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -64,23 +64,21 @@ * The fragmented file features defined (only) in ISO Base Media are used by * ISMV files making up (a.o.) Smooth Streaming (ismlmux). * - * A few properties (<link linkend="GstQTMux--movie-timescale">movie-timescale</link>, - * <link linkend="GstQTMux--trak-timescale">trak-timescale</link>) allow adjusting - * some technical parameters, which might be useful in (rare) cases to resolve - * compatibility issues in some situations. + * A few properties (#GstQTMux:movie-timescale, #GstQTMux:trak-timescale) allow + * adjusting some technical parameters, which might be useful in (rare) cases to + * resolve compatibility issues in some situations. * * Some other properties influence the result more fundamentally. - * A typical mov/mp4 file's metadata (aka moov) is located at the end of the file, - * somewhat contrary to this usually being called "the header". - * However, a <link linkend="GstQTMux--faststart">faststart</link> file will - * (with some effort) arrange this to be located near start of the file, - * which then allows it e.g. to be played while downloading. - * Alternatively, rather than having one chunk of metadata at start (or end), - * there can be some metadata at start and most of the other data can be spread - * out into fragments of <link linkend="GstQTMux--fragment-duration">fragment-duration</link>. + * A typical mov/mp4 file's metadata (aka moov) is located at the end of the + * file, somewhat contrary to this usually being called "the header". + * However, a #GstQTMux:faststart file will (with some effort) arrange this to + * be located near start of the file, which then allows it e.g. to be played + * while downloading. Alternatively, rather than having one chunk of metadata at + * start (or end), there can be some metadata at start and most of the other + * data can be spread out into fragments of #GstQTMux:fragment-duration. * If such fragmented layout is intended for streaming purposes, then - * <link linkend="GstQTMux--streamable">streamable</link> allows foregoing to add - * index metadata (at the end of file). + * #GstQTMux:streamable allows foregoing to add index metadata (at the end of + * file). * * <refsect2> * <title>Example pipelines</title> @@ -89,8 +87,6 @@ * ]| * Records a video stream captured from a v4l2 device and muxes it into a qt file. * </refsect2> - * - * Last reviewed on 2010-12-03 */ /* @@ -235,7 +231,8 @@ gst_qt_mux_base_init (gpointer g_class) GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); GstQTMuxClass *klass = (GstQTMuxClass *) g_class; GstQTMuxClassParams *params; - GstPadTemplate *videosinktempl, *audiosinktempl, *srctempl; + GstPadTemplate *videosinktempl, *audiosinktempl, *subtitlesinktempl; + GstPadTemplate *srctempl; gchar *longname, *description; params = @@ -270,6 +267,12 @@ gst_qt_mux_base_init (gpointer g_class) gst_element_class_add_pad_template (element_class, videosinktempl); } + if (params->subtitle_sink_caps) { + subtitlesinktempl = gst_pad_template_new ("subtitle_%u", + GST_PAD_SINK, GST_PAD_REQUEST, params->subtitle_sink_caps); + gst_element_class_add_pad_template (element_class, subtitlesinktempl); + } + klass->format = params->prop->format; } @@ -365,16 +368,17 @@ gst_qt_mux_pad_reset (GstQTPad * qtpad) { qtpad->fourcc = 0; qtpad->is_out_of_order = FALSE; - qtpad->have_dts = FALSE; qtpad->sample_size = 0; qtpad->sync = FALSE; qtpad->last_dts = 0; qtpad->first_ts = GST_CLOCK_TIME_NONE; qtpad->prepare_buf_func = NULL; + qtpad->create_empty_buffer = NULL; qtpad->avg_bitrate = 0; qtpad->max_bitrate = 0; qtpad->total_duration = 0; qtpad->total_bytes = 0; + qtpad->sparse = FALSE; qtpad->buf_head = 0; qtpad->buf_tail = 0; @@ -543,6 +547,50 @@ gst_qt_mux_prepare_jpc_buffer (GstQTPad * qtpad, GstBuffer * buf, return newbuf; } +static GstBuffer * +gst_qt_mux_prepare_tx3g_buffer (GstQTPad * qtpad, GstBuffer * buf, + GstQTMux * qtmux) +{ + GstBuffer *newbuf; + GstMapInfo frommap; + GstMapInfo tomap; + gsize size; + + GST_LOG_OBJECT (qtmux, "Preparing tx3g buffer %" GST_PTR_FORMAT, buf); + + if (buf == NULL) + return NULL; + + size = gst_buffer_get_size (buf); + newbuf = gst_buffer_new_and_alloc (size + 2); + + gst_buffer_map (buf, &frommap, GST_MAP_READ); + gst_buffer_map (newbuf, &tomap, GST_MAP_WRITE); + + GST_WRITE_UINT16_BE (tomap.data, size); + memcpy (tomap.data + 2, frommap.data, size); + + gst_buffer_unmap (newbuf, &tomap); + gst_buffer_unmap (buf, &frommap); + + gst_buffer_copy_into (newbuf, buf, GST_BUFFER_COPY_METADATA, 0, size); + + gst_buffer_unref (buf); + + return newbuf; +} + +static GstBuffer * +gst_qt_mux_create_empty_tx3g_buffer (GstQTPad * qtpad, gint64 duration) +{ + guint8 *data; + + data = g_malloc (2); + GST_WRITE_UINT16_BE (data, 0); + + return gst_buffer_new_wrapped (data, 2);; +} + static void gst_qt_mux_add_mp4_tag (GstQTMux * qtmux, const GstTagList * list, const char *tag, const char *tag2, guint32 fourcc) @@ -1799,6 +1847,10 @@ gst_qt_mux_stop_file (GstQTMux * qtmux) guint32 timescale; GstClockTime first_ts = GST_CLOCK_TIME_NONE; + /* for setting some subtitles fields */ + guint max_width = 0; + guint max_height = 0; + GST_DEBUG_OBJECT (qtmux, "Updating remaining values and sending last data"); /* pushing last buffers for each pad */ @@ -1838,6 +1890,12 @@ gst_qt_mux_stop_file (GstQTMux * qtmux) first_ts = qtpad->last_dts; } + /* subtitles need to know the video width/height, + * it is stored shifted 16 bits to the left according to the + * spec */ + max_width = MAX (max_width, (qtpad->trak->tkhd.width >> 16)); + max_height = MAX (max_height, (qtpad->trak->tkhd.height >> 16)); + /* update average bitrate of streams if needed */ { guint32 avgbitrate = 0; @@ -1853,6 +1911,23 @@ gst_qt_mux_stop_file (GstQTMux * qtmux) } } + /* need to update values on subtitle traks now that we know the + * max width and height */ + for (walk = qtmux->collect->data; walk; walk = g_slist_next (walk)) { + GstCollectData *cdata = (GstCollectData *) walk->data; + GstQTPad *qtpad = (GstQTPad *) cdata; + + if (!qtpad->fourcc) { + GST_DEBUG_OBJECT (qtmux, "Pad %s has never had buffers", + GST_PAD_NAME (qtpad->collect.pad)); + continue; + } + + if (qtpad->fourcc == FOURCC_tx3g) { + atom_trak_tx3g_update_dimension (qtpad->trak, max_width, max_height); + } + } + if (qtmux->fragment_sequence) { GstSegment segment; @@ -2118,6 +2193,41 @@ check_and_subtract_ts (GstQTMux * qtmux, GstClockTime * ts_a, GstClockTime ts_b) } } + +static GstFlowReturn +gst_qt_mux_register_and_push_sample (GstQTMux * qtmux, GstQTPad * pad, + GstBuffer * buffer, gboolean is_last_buffer, guint nsamples, + gint64 last_dts, gint64 scaled_duration, guint sample_size, + guint chunk_offset, gboolean sync, gboolean do_pts, gint64 pts_offset) +{ + GstFlowReturn ret = GST_FLOW_OK; + + /* note that a new chunk is started each time (not fancy but works) */ + if (qtmux->moov_recov_file) { + if (!atoms_recov_write_trak_samples (qtmux->moov_recov_file, pad->trak, + nsamples, (gint32) scaled_duration, sample_size, chunk_offset, sync, + do_pts, pts_offset)) { + GST_WARNING_OBJECT (qtmux, "Failed to write sample information to " + "recovery file, disabling recovery"); + fclose (qtmux->moov_recov_file); + qtmux->moov_recov_file = NULL; + } + } + + if (qtmux->fragment_sequence) { + /* ensure that always sync samples are marked as such */ + ret = gst_qt_mux_pad_fragment_add_buffer (qtmux, pad, buffer, + is_last_buffer, nsamples, last_dts, (gint32) scaled_duration, + sample_size, !pad->sync || sync, pts_offset); + } else { + atom_trak_add_samples (pad->trak, nsamples, (gint32) scaled_duration, + sample_size, chunk_offset, sync, pts_offset); + ret = gst_qt_mux_send_buffer (qtmux, buffer, &qtmux->mdat_size, TRUE); + } + + return ret; +} + /* * Here we push the buffer and update the tables in the track atoms */ @@ -2152,7 +2262,7 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * 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)) { + if (buf && !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; @@ -2169,6 +2279,9 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) GST_BUFFER_DTS (buf)) { GST_BUFFER_DTS (buf) = GST_BUFFER_DTS (last_buf) + last_buf_duration; } + + if (GST_BUFFER_PTS_IS_VALID (buf)) + GST_BUFFER_DTS (buf) = MIN (GST_BUFFER_DTS (buf), GST_BUFFER_PTS (buf)); } if (last_buf && !buf && !GST_BUFFER_DURATION_IS_VALID (last_buf)) { @@ -2196,7 +2309,7 @@ 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 (pad->have_dts) { + if (GST_BUFFER_DTS_IS_VALID (last_buf)) { /* 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)) { @@ -2237,14 +2350,17 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) * the duration based on the difference in DTS or PTS, falling back * to DURATION if the other two don't exist, such as with the last * sample before EOS. */ - if (last_buf && buf && GST_BUFFER_DTS_IS_VALID (buf) - && GST_BUFFER_DTS_IS_VALID (last_buf)) - duration = GST_BUFFER_DTS (buf) - GST_BUFFER_DTS (last_buf); - else if (last_buf && buf && GST_BUFFER_PTS_IS_VALID (buf) - && GST_BUFFER_PTS_IS_VALID (last_buf)) - duration = GST_BUFFER_PTS (buf) - GST_BUFFER_PTS (last_buf); - else - duration = GST_BUFFER_DURATION (last_buf); + duration = GST_BUFFER_DURATION (last_buf); + if (!pad->sparse) { + if (last_buf && buf && GST_BUFFER_DTS_IS_VALID (buf) + && GST_BUFFER_DTS_IS_VALID (last_buf)) + duration = GST_BUFFER_DTS (buf) - GST_BUFFER_DTS (last_buf); + else if (last_buf && buf && GST_BUFFER_PTS_IS_VALID (buf) + && GST_BUFFER_PTS_IS_VALID (last_buf)) + duration = GST_BUFFER_PTS (buf) - GST_BUFFER_PTS (last_buf); + } + + gst_buffer_replace (&pad->last_buf, buf); /* for computing the avg bitrate */ if (G_LIKELY (last_buf)) { @@ -2252,8 +2368,6 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) pad->total_duration += duration; } - gst_buffer_replace (&pad->last_buf, buf); - last_dts = gst_util_uint64_scale_round (pad->last_dts, atom_trak_get_timescale (pad->trak), GST_SECOND); @@ -2273,7 +2387,10 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) } else { nsamples = gst_buffer_get_size (last_buf) / sample_size; } - duration = GST_BUFFER_DURATION (last_buf) / nsamples; + if (nsamples > 0) + duration = GST_BUFFER_DURATION (last_buf) / nsamples; + else + duration = 0; /* timescale = samplerate */ scaled_duration = 1; @@ -2281,9 +2398,10 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) } else { nsamples = 1; sample_size = gst_buffer_get_size (last_buf); - if (pad->have_dts) { + if ((pad->last_buf && GST_BUFFER_DTS_IS_VALID (pad->last_buf)) + || GST_BUFFER_DTS_IS_VALID (last_buf)) { gint64 scaled_dts; - if (pad->last_buf) { + if (pad->last_buf && GST_BUFFER_DTS_IS_VALID (pad->last_buf)) { pad->last_dts = GST_BUFFER_DTS (pad->last_buf); } else { pad->last_dts = GST_BUFFER_DTS (last_buf) + @@ -2358,32 +2476,44 @@ gst_qt_mux_add_buffer (GstQTMux * qtmux, GstQTPad * pad, GstBuffer * buf) } /* now we go and register this buffer/sample all over */ - /* note that a new chunk is started each time (not fancy but works) */ - if (qtmux->moov_recov_file) { - if (!atoms_recov_write_trak_samples (qtmux->moov_recov_file, pad->trak, - nsamples, (gint32) scaled_duration, sample_size, chunk_offset, sync, - do_pts, pts_offset)) { - GST_WARNING_OBJECT (qtmux, "Failed to write sample information to " - "recovery file, disabling recovery"); - fclose (qtmux->moov_recov_file); - qtmux->moov_recov_file = NULL; + ret = gst_qt_mux_register_and_push_sample (qtmux, pad, last_buf, + buf == NULL, nsamples, last_dts, scaled_duration, sample_size, + chunk_offset, sync, do_pts, pts_offset); + + /* if this is sparse and we have a next buffer, check if there is any gap + * between them to insert an empty sample */ + if (pad->sparse && buf) { + if (pad->create_empty_buffer) { + GstBuffer *empty_buf; + gint64 empty_duration = + GST_BUFFER_TIMESTAMP (buf) - (GST_BUFFER_TIMESTAMP (last_buf) + + duration); + gint64 empty_duration_scaled; + + empty_buf = pad->create_empty_buffer (pad, empty_duration); + + empty_duration_scaled = gst_util_uint64_scale_round (empty_duration, + atom_trak_get_timescale (pad->trak), GST_SECOND); + + pad->total_bytes += gst_buffer_get_size (empty_buf); + pad->total_duration += duration; + + ret = + gst_qt_mux_register_and_push_sample (qtmux, pad, empty_buf, FALSE, 1, + last_dts + scaled_duration, empty_duration_scaled, + gst_buffer_get_size (empty_buf), qtmux->mdat_size, sync, do_pts, 0); + } else { + /* our only case currently is tx3g subtitles, so there is no reason to fill this yet */ + g_assert_not_reached (); + GST_WARNING_OBJECT (qtmux, + "no empty buffer creation function found for pad %s", + GST_PAD_NAME (pad->collect.pad)); } } if (buf) gst_buffer_unref (buf); - if (qtmux->fragment_sequence) { - /* ensure that always sync samples are marked as such */ - ret = gst_qt_mux_pad_fragment_add_buffer (qtmux, pad, last_buf, - buf == NULL, nsamples, last_dts, (gint32) scaled_duration, sample_size, - !pad->sync || sync, pts_offset); - } else { - atom_trak_add_samples (pad->trak, nsamples, (gint32) scaled_duration, - sample_size, chunk_offset, sync, pts_offset); - ret = gst_qt_mux_send_buffer (qtmux, last_buf, &qtmux->mdat_size, TRUE); - } - exit: return ret; @@ -2478,11 +2608,11 @@ gst_qtmux_caps_is_subset_full (GstQTMux * qtmux, GstCaps * subset, } static gboolean -gst_qt_mux_audio_sink_set_caps (GstPad * pad, GstCaps * caps) +gst_qt_mux_audio_sink_set_caps (GstQTPad * qtpad, GstCaps * caps) { + GstPad *pad = qtpad->collect.pad; GstQTMux *qtmux = GST_QT_MUX_CAST (gst_pad_get_parent (pad)); GstQTMuxClass *qtmux_klass = (GstQTMuxClass *) (G_OBJECT_GET_CLASS (qtmux)); - GstQTPad *qtpad = NULL; GstStructure *structure; const gchar *mimetype; gint rate, channels; @@ -2494,10 +2624,6 @@ gst_qt_mux_audio_sink_set_caps (GstPad * pad, GstCaps * caps) gint constant_size = 0; const gchar *stream_format; - /* find stream data */ - qtpad = (GstQTPad *) gst_pad_get_element_private (pad); - g_assert (qtpad); - qtpad->prepare_buf_func = NULL; /* does not go well to renegotiate stream mid-way, unless @@ -2538,7 +2664,6 @@ gst_qt_mux_audio_sink_set_caps (GstPad * pad, GstCaps * caps) codec_data = gst_value_get_buffer (value); qtpad->is_out_of_order = FALSE; - qtpad->have_dts = FALSE; /* set common properties */ entry.sample_rate = rate; @@ -2794,11 +2919,11 @@ adjust_rate (guint64 rate) } static gboolean -gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) +gst_qt_mux_video_sink_set_caps (GstQTPad * qtpad, GstCaps * caps) { + GstPad *pad = qtpad->collect.pad; GstQTMux *qtmux = GST_QT_MUX_CAST (gst_pad_get_parent (pad)); GstQTMuxClass *qtmux_klass = (GstQTMuxClass *) (G_OBJECT_GET_CLASS (qtmux)); - GstQTPad *qtpad = NULL; GstStructure *structure; const gchar *mimetype; gint width, height, depth = -1; @@ -2813,10 +2938,6 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) gboolean sync = FALSE; int par_num, par_den; - /* find stream data */ - qtpad = (GstQTPad *) gst_pad_get_element_private (pad); - g_assert (qtpad); - qtpad->prepare_buf_func = NULL; /* does not go well to renegotiate stream mid-way, unless @@ -2984,7 +3105,6 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) ext_atom = build_codec_data_extension (FOURCC_avcC, codec_data); if (ext_atom != NULL) ext_atom_list = g_list_prepend (ext_atom_list, ext_atom); - qtpad->have_dts = TRUE; } else if (strcmp (mimetype, "video/x-svq") == 0) { gint version = 0; const GstBuffer *seqh = NULL; @@ -3093,19 +3213,16 @@ gst_qt_mux_video_sink_set_caps (GstPad * pad, GstCaps * caps) sync = FALSE; } else if (strcmp (mimetype, "video/x-dirac") == 0) { entry.fourcc = FOURCC_drac; - qtpad->have_dts = TRUE; } else if (strcmp (mimetype, "video/x-qt-part") == 0) { guint32 fourcc; gst_structure_get_uint (structure, "format", &fourcc); entry.fourcc = fourcc; - qtpad->have_dts = TRUE; } else if (strcmp (mimetype, "video/x-mp4-part") == 0) { guint32 fourcc; gst_structure_get_uint (structure, "format", &fourcc); entry.fourcc = fourcc; - qtpad->have_dts = TRUE; } if (!entry.fourcc) @@ -3138,6 +3255,83 @@ refuse_renegotiation: } } +static gboolean +gst_qt_mux_subtitle_sink_set_caps (GstQTPad * qtpad, GstCaps * caps) +{ + GstPad *pad = qtpad->collect.pad; + GstQTMux *qtmux = GST_QT_MUX_CAST (gst_pad_get_parent (pad)); + GstStructure *structure; + SubtitleSampleEntry entry = { 0, }; + + qtpad->prepare_buf_func = NULL; + + /* does not go well to renegotiate stream mid-way, unless + * the old caps are a subset of the new one (this means upstream + * added more info to the caps, as both should be 'fixed' caps) */ + if (qtpad->fourcc) { + GstCaps *current_caps; + + current_caps = gst_pad_get_current_caps (pad); + g_assert (caps != NULL); + + if (!gst_qtmux_caps_is_subset_full (qtmux, current_caps, caps)) { + gst_caps_unref (current_caps); + goto refuse_renegotiation; + } + GST_DEBUG_OBJECT (qtmux, + "pad %s accepted renegotiation to %" GST_PTR_FORMAT " from %" + GST_PTR_FORMAT, GST_PAD_NAME (pad), caps, current_caps); + gst_caps_unref (current_caps); + } + + GST_DEBUG_OBJECT (qtmux, "%s:%s, caps=%" GST_PTR_FORMAT, + GST_DEBUG_PAD_NAME (pad), caps); + + /* subtitles default */ + subtitle_sample_entry_init (&entry); + qtpad->is_out_of_order = FALSE; + qtpad->sync = FALSE; + qtpad->sparse = TRUE; + qtpad->prepare_buf_func = NULL; + + structure = gst_caps_get_structure (caps, 0); + + if (gst_structure_has_name (structure, "text/x-raw")) { + const gchar *format = gst_structure_get_string (structure, "format"); + if (format && strcmp (format, "utf8") == 0) { + entry.fourcc = FOURCC_tx3g; + qtpad->prepare_buf_func = gst_qt_mux_prepare_tx3g_buffer; + qtpad->create_empty_buffer = gst_qt_mux_create_empty_tx3g_buffer; + } + } + + if (!entry.fourcc) + goto refuse_caps; + + qtpad->fourcc = entry.fourcc; + atom_trak_set_subtitle_type (qtpad->trak, qtmux->context, &entry); + + gst_object_unref (qtmux); + return TRUE; + + /* ERRORS */ +refuse_caps: + { + GST_WARNING_OBJECT (qtmux, "pad %s refused caps %" GST_PTR_FORMAT, + GST_PAD_NAME (pad), caps); + gst_object_unref (qtmux); + return FALSE; + } +refuse_renegotiation: + { + GST_WARNING_OBJECT (qtmux, + "pad %s refused renegotiation to %" GST_PTR_FORMAT, GST_PAD_NAME (pad), + caps); + gst_object_unref (qtmux); + return FALSE; + } +} + static gboolean gst_qt_mux_sink_event (GstCollectPads * pads, GstCollectData * data, GstEvent * event, gpointer user_data) @@ -3161,7 +3355,7 @@ gst_qt_mux_sink_event (GstCollectPads * pads, GstCollectData * data, g_assert (collect_pad); g_assert (collect_pad->set_caps); - ret = collect_pad->set_caps (pad, caps); + ret = collect_pad->set_caps (collect_pad, caps); gst_event_unref (event); event = NULL; break; @@ -3253,7 +3447,7 @@ gst_qt_mux_request_new_pad (GstElement * element, GstQTMux *qtmux = GST_QT_MUX_CAST (element); GstQTPad *collect_pad; GstPad *newpad; - gboolean audio; + GstQTPadSetCapsFunc setcaps_func; gchar *name; gint pad_id; @@ -3264,19 +3458,26 @@ gst_qt_mux_request_new_pad (GstElement * element, goto too_late; if (templ == gst_element_class_get_pad_template (klass, "audio_%u")) { - audio = TRUE; + setcaps_func = gst_qt_mux_audio_sink_set_caps; if (req_name != NULL && sscanf (req_name, "audio_%u", &pad_id) == 1) { name = g_strdup (req_name); } else { name = g_strdup_printf ("audio_%u", qtmux->audio_pads++); } } else if (templ == gst_element_class_get_pad_template (klass, "video_%u")) { - audio = FALSE; + setcaps_func = gst_qt_mux_video_sink_set_caps; if (req_name != NULL && sscanf (req_name, "video_%u", &pad_id) == 1) { name = g_strdup (req_name); } else { name = g_strdup_printf ("video_%u", qtmux->video_pads++); } + } else if (templ == gst_element_class_get_pad_template (klass, "subtitle_%u")) { + setcaps_func = gst_qt_mux_subtitle_sink_set_caps; + if (req_name != NULL && sscanf (req_name, "subtitle_%u", &pad_id) == 1) { + name = g_strdup (req_name); + } else { + name = g_strdup_printf ("subtitle_%u", qtmux->subtitle_pads++); + } } else goto wrong_template; @@ -3296,10 +3497,7 @@ gst_qt_mux_request_new_pad (GstElement * element, qtmux->sinkpads = g_slist_append (qtmux->sinkpads, collect_pad); /* set up pad functions */ - if (audio) - collect_pad->set_caps = GST_DEBUG_FUNCPTR (gst_qt_mux_audio_sink_set_caps); - else - collect_pad->set_caps = GST_DEBUG_FUNCPTR (gst_qt_mux_video_sink_set_caps); + collect_pad->set_caps = setcaps_func; gst_pad_set_active (newpad, TRUE); gst_element_add_pad (element, newpad); @@ -3506,6 +3704,7 @@ gst_qt_mux_register (GstPlugin * plugin) while (TRUE) { GstQTMuxFormatProp *prop; + GstCaps *subtitle_caps; prop = &gst_qt_mux_format_list[i]; format = prop->format; @@ -3518,6 +3717,12 @@ gst_qt_mux_register (GstPlugin * plugin) params->src_caps = gst_static_caps_get (&prop->src_caps); params->video_sink_caps = gst_static_caps_get (&prop->video_sink_caps); params->audio_sink_caps = gst_static_caps_get (&prop->audio_sink_caps); + subtitle_caps = gst_static_caps_get (&prop->subtitle_sink_caps); + if (!gst_caps_is_equal (subtitle_caps, GST_CAPS_NONE)) { + params->subtitle_sink_caps = subtitle_caps; + } else { + gst_caps_unref (subtitle_caps); + } /* create the type now */ type = g_type_register_static (GST_TYPE_ELEMENT, prop->type_name, &typeinfo, diff --git a/gst/isomp4/gstqtmux.h b/gst/isomp4/gstqtmux.h index e61831d87..0d7f66270 100644 --- a/gst/isomp4/gstqtmux.h +++ b/gst/isomp4/gstqtmux.h @@ -78,6 +78,9 @@ typedef struct _GstQTPad GstQTPad; typedef GstBuffer * (*GstQTPadPrepareBufferFunc) (GstQTPad * pad, GstBuffer * buf, GstQTMux * qtmux); +typedef gboolean (*GstQTPadSetCapsFunc) (GstQTPad * pad, GstCaps * caps); +typedef GstBuffer * (*GstQTPadCreateEmptyBufferFunc) (GstQTPad * pad, gint64 duration); + #define QTMUX_NO_OF_TS 10 struct _GstQTPad @@ -88,12 +91,13 @@ struct _GstQTPad guint32 fourcc; /* whether using format that have out of order buffers */ gboolean is_out_of_order; - /* whether upstream provides valid PTS data */ - gboolean have_dts; /* if not 0, track with constant sized samples, e.g. raw audio */ guint sample_size; /* make sync table entry */ gboolean sync; + /* if it is a sparse stream + * (meaning we can't use PTS differences to compute duration) */ + gboolean sparse; /* bitrates */ guint32 avg_bitrate, max_bitrate; @@ -126,7 +130,8 @@ struct _GstQTPad /* if nothing is set, it won't be called */ GstQTPadPrepareBufferFunc prepare_buf_func; - gboolean (*set_caps) (GstPad * pad, GstCaps * caps); + GstQTPadSetCapsFunc set_caps; + GstQTPadCreateEmptyBufferFunc create_empty_buffer; }; typedef enum _GstQTMuxState @@ -192,7 +197,7 @@ struct _GstQTMux gboolean streamable; /* for request pad naming */ - guint video_pads, audio_pads; + guint video_pads, audio_pads, subtitle_pads; }; struct _GstQTMuxClass @@ -209,6 +214,7 @@ typedef struct _GstQTMuxClassParams GstCaps *src_caps; GstCaps *video_sink_caps; GstCaps *audio_sink_caps; + GstCaps *subtitle_sink_caps; } GstQTMuxClassParams; #define GST_QT_MUX_PARAMS_QDATA g_quark_from_static_string("qt-mux-params") diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c index 833b1b0af..5b17f8527 100644 --- a/gst/isomp4/gstqtmuxmap.c +++ b/gst/isomp4/gstqtmuxmap.c @@ -43,7 +43,6 @@ #include "gstqtmuxmap.h" #include "fourcc.h" -#include "ftypcc.h" /* static info related to various format */ @@ -134,6 +133,10 @@ "audio/x-alac, " \ COMMON_AUDIO_CAPS(2, MAX) +#define TEXT_UTF8 \ + "text/x-raw, " \ + "format=(string)utf8" + /* FIXME 0.11 - take a look at bugs #580005 and #340375 */ GstQTMuxFormatProp gst_qt_mux_format_list[] = { /* original QuickTime format; see Apple site (e.g. qtff.pdf) */ @@ -167,8 +170,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { ADPCM_CAPS " ; " "audio/x-alaw, " COMMON_AUDIO_CAPS (2, MAX) "; " "audio/x-mulaw, " COMMON_AUDIO_CAPS (2, MAX) "; " - AMR_CAPS " ; " ALAC_CAPS) - } + AMR_CAPS " ; " ALAC_CAPS), + GST_STATIC_CAPS (TEXT_UTF8)} , /* ISO 14496-14: mp42 as ISO base media extension * (supersedes original ISO 144996-1 mp41) */ @@ -181,8 +184,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { GST_STATIC_CAPS ("video/quicktime, variant = (string) iso"), GST_STATIC_CAPS (MPEG4V_CAPS "; " H264_CAPS ";" "video/x-mp4-part," COMMON_VIDEO_CAPS), - GST_STATIC_CAPS (MP3_CAPS "; " AAC_CAPS " ; " ALAC_CAPS) - } + GST_STATIC_CAPS (MP3_CAPS "; " AAC_CAPS " ; " ALAC_CAPS), + GST_STATIC_CAPS (TEXT_UTF8)} , /* Microsoft Smooth Streaming fmp4/isml */ /* TODO add WMV/WMA support */ @@ -194,8 +197,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { "GstISMLMux", GST_STATIC_CAPS ("video/quicktime, variant = (string) iso-fragmented"), GST_STATIC_CAPS (MPEG4V_CAPS "; " H264_CAPS), - GST_STATIC_CAPS (MP3_CAPS "; " AAC_CAPS) - } + GST_STATIC_CAPS (MP3_CAPS "; " AAC_CAPS), + GST_STATIC_CAPS_NONE} , /* 3GPP Technical Specification 26.244 V7.3.0 * (extended in 3GPP2 File Formats for Multimedia Services) */ @@ -207,8 +210,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { "Gst3GPPMux", GST_STATIC_CAPS ("video/quicktime, variant = (string) 3gpp"), GST_STATIC_CAPS (H263_CAPS "; " MPEG4V_CAPS "; " H264_CAPS), - GST_STATIC_CAPS (AMR_CAPS "; " MP3_CAPS "; " AAC_CAPS) - } + GST_STATIC_CAPS (AMR_CAPS "; " MP3_CAPS "; " AAC_CAPS), + GST_STATIC_CAPS (TEXT_UTF8)} , /* ISO 15444-3: Motion-JPEG-2000 (also ISO base media extension) */ { @@ -220,8 +223,8 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = { GST_STATIC_CAPS ("video/mj2"), GST_STATIC_CAPS ("image/x-j2c, " COMMON_VIDEO_CAPS "; " "image/x-jpc, " COMMON_VIDEO_CAPS), - GST_STATIC_CAPS (PCM_CAPS) - } + GST_STATIC_CAPS (PCM_CAPS), + GST_STATIC_CAPS_NONE} , { GST_QT_MUX_FORMAT_NONE, diff --git a/gst/isomp4/gstqtmuxmap.h b/gst/isomp4/gstqtmuxmap.h index 1c5829c52..e578a3674 100644 --- a/gst/isomp4/gstqtmuxmap.h +++ b/gst/isomp4/gstqtmuxmap.h @@ -69,6 +69,7 @@ typedef struct _GstQTMuxFormatProp GstStaticCaps src_caps; GstStaticCaps video_sink_caps; GstStaticCaps audio_sink_caps; + GstStaticCaps subtitle_sink_caps; } GstQTMuxFormatProp; extern GstQTMuxFormatProp gst_qt_mux_format_list[]; diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 8d5e688df..613edad57 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -5,7 +5,8 @@ * Copyright (C) <2007> Julien Moutte <julien@fluendo.com> * Copyright (C) <2009> Tim-Philipp Müller <tim centricular net> * Copyright (C) <2009> STEricsson <benjamin.gaignard@stericsson.com> - * + * Copyright (C) <2013> Sreerenj Balachandran <sreerenj.balachandran@intel.com> + * Copyright (C) <2013> Intel Coroporation * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either @@ -39,8 +40,6 @@ * compressed audio or video data, this will only work if you have the * right decoder elements/plugins installed. * </refsect2> - * - * Last reviewed on 2006-12-29 (0.10.5) */ #ifdef HAVE_CONFIG_H @@ -57,7 +56,8 @@ #include "qtatomparser.h" #include "qtdemux_types.h" #include "qtdemux_dump.h" -#include "qtdemux_fourcc.h" +#include "fourcc.h" +#include "descriptors.h" #include "qtdemux_lang.h" #include "qtdemux.h" #include "qtpalette.h" @@ -138,7 +138,7 @@ struct _QtDemuxSample * is called the media_time. * * The segments now describe the pieces that should be played from this track - * and are basically tupples of media_time/duration/rate entries. We can have + * and are basically tuples of media_time/duration/rate entries. We can have * multiple segments and they are all played after one another. An example: * * segment 1: media_time: 1 second, duration: 1 second, rate 1 @@ -168,8 +168,8 @@ struct _QtDemuxSample * '--------------' '--------------' * * The challenge here is to cut out the right pieces of the track for each of - * the playback segments. This fortunatly can easily be done with the SEGMENT - * events of gstreamer. + * the playback segments. This fortunately can easily be done with the SEGMENT + * events of GStreamer. * * For playback of segment 1, we need to provide the decoder with the keyframe * (a), in the above figure, but we must instruct it only to output the decoded @@ -197,6 +197,8 @@ struct _QtDemuxSegment gdouble rate; }; +#define QTSEGMENT_IS_EMPTY(s) ((s)->media_start == GST_CLOCK_TIME_NONE) + struct _QtDemuxStream { GstPad *pad; @@ -315,7 +317,7 @@ struct _QtDemuxStream GstByteReader stps; GstByteReader ctts; - gboolean chunks_are_chunks; + gboolean chunks_are_samples; /* TRUE means treat chunks as samples */ gint64 stbl_index; /* stco */ guint co_size; @@ -363,8 +365,6 @@ struct _QtDemuxStream guint32 def_sample_flags; gboolean disabled; - - GstClockTime elst_offset; /* sample offset from edit list */ }; enum QtDemuxState @@ -438,6 +438,8 @@ static gboolean gst_qtdemux_handle_sink_event (GstPad * pad, GstObject * parent, static gboolean gst_qtdemux_setcaps (GstQTDemux * qtdemux, GstCaps * caps); static gboolean gst_qtdemux_configure_stream (GstQTDemux * qtdemux, QtDemuxStream * stream); +static GstFlowReturn gst_qtdemux_process_adapter (GstQTDemux * demux, + gboolean force); static gboolean qtdemux_parse_moov (GstQTDemux * qtdemux, const guint8 * buffer, guint length); @@ -535,6 +537,7 @@ gst_qtdemux_init (GstQTDemux * qtdemux) qtdemux->restoredata_buffer = NULL; qtdemux->restoredata_offset = GST_CLOCK_TIME_NONE; qtdemux->fragment_start = -1; + qtdemux->fragment_start_offset = -1; qtdemux->media_caps = NULL; qtdemux->exposed = FALSE; qtdemux->mss_mode = FALSE; @@ -718,7 +721,7 @@ gst_qtdemux_get_duration (GstQTDemux * qtdemux, gint64 * duration) if (qtdemux->duration != 0) { if (qtdemux->duration != G_MAXINT64 && qtdemux->timescale != 0) { *duration = gst_util_uint64_scale (qtdemux->duration, - GST_SECOND, qtdemux->timescale) - qtdemux->min_elst_offset; + GST_SECOND, qtdemux->timescale); } } return res; @@ -906,7 +909,6 @@ gst_qtdemux_push_pending_newsegment (GstQTDemux * qtdemux) if (qtdemux->pending_newsegment) { gst_qtdemux_push_event (qtdemux, qtdemux->pending_newsegment); qtdemux->pending_newsegment = NULL; - qtdemux->upstream_newsegment = FALSE; } } @@ -1399,6 +1401,7 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment, } segment->position = desired_offset; segment->time = desired_offset; + qtdemux->segment_base = desired_offset; /* we stop at the end */ if (segment->stop == -1) @@ -1554,7 +1557,7 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstObject * parent, GstClockTime ts = gst_util_get_timestamp (); #endif - if (qtdemux->mss_mode || qtdemux->fragmented) { + if (qtdemux->upstream_newsegment || qtdemux->fragmented) { /* seek should be handled by upstream, we might need to re-download fragments */ GST_DEBUG_OBJECT (qtdemux, "leting upstream handle seek for smoothstreaming"); @@ -1784,6 +1787,8 @@ gst_qtdemux_setcaps (GstQTDemux * demux, GstCaps * caps) } } gst_caps_replace (&demux->media_caps, (GstCaps *) mediacaps); + } else { + demux->mss_mode = FALSE; } return TRUE; @@ -1797,7 +1802,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard) GST_DEBUG_OBJECT (qtdemux, "Resetting demux"); gst_pad_stop_task (qtdemux->sinkpad); - if (hard || qtdemux->mss_mode) { + if (hard || qtdemux->upstream_newsegment) { qtdemux->state = QTDEMUX_STATE_INITIAL; qtdemux->neededbytes = 16; qtdemux->todrop = 0; @@ -1817,6 +1822,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard) if (qtdemux->comp_brands) gst_buffer_unref (qtdemux->comp_brands); qtdemux->comp_brands = NULL; + qtdemux->last_moov_offset = -1; if (qtdemux->moov_node) g_node_destroy (qtdemux->moov_node); qtdemux->moov_node = NULL; @@ -1831,13 +1837,14 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard) #endif qtdemux->major_brand = 0; if (qtdemux->pending_newsegment) - gst_object_unref (qtdemux->pending_newsegment); + gst_event_unref (qtdemux->pending_newsegment); qtdemux->pending_newsegment = NULL; - qtdemux->upstream_newsegment = TRUE; + qtdemux->upstream_newsegment = FALSE; qtdemux->upstream_seekable = FALSE; qtdemux->upstream_size = 0; qtdemux->fragment_start = -1; + qtdemux->fragment_start_offset = -1; qtdemux->duration = 0; qtdemux->mfra_offset = 0; qtdemux->moof_offset = 0; @@ -1848,6 +1855,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard) qtdemux->offset = 0; gst_adapter_clear (qtdemux->adapter); gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME); + qtdemux->segment_base = 0; if (hard) { for (n = 0; n < qtdemux->n_streams; n++) { @@ -1882,7 +1890,7 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, GstEvent * event) { GstQTDemux *demux = GST_QTDEMUX (parent); - gboolean res; + gboolean res = TRUE; GST_LOG_OBJECT (demux, "handling %s event", GST_EVENT_TYPE_NAME (event)); @@ -1907,11 +1915,9 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, } else { GST_DEBUG_OBJECT (demux, "Not storing upstream newsegment, " "not in time format"); - } - /* chain will send initial newsegment after pads have been added */ - if (demux->state != QTDEMUX_STATE_MOVIE || !demux->n_streams) { - if (!demux->mss_mode) { + /* chain will send initial newsegment after pads have been added */ + if (demux->state != QTDEMUX_STATE_MOVIE || !demux->n_streams) { GST_DEBUG_OBJECT (demux, "still starting, eating event"); goto exit; } @@ -1995,7 +2001,7 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, demux->neededbytes = demux->todrop + stream->samples[idx].size; } else { /* set up for EOS */ - if (demux->mss_mode) { + if (demux->upstream_newsegment) { demux->neededbytes = 16; } else { demux->neededbytes = -1; @@ -2031,6 +2037,13 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, } if (!has_valid_stream) gst_qtdemux_post_no_playable_stream_error (demux); + else { + GST_DEBUG_OBJECT (demux, "Data still available after EOS: %u", + (guint) gst_adapter_available (demux->adapter)); + if (gst_qtdemux_process_adapter (demux, TRUE) != GST_FLOW_OK) { + res = FALSE; + } + } } break; case GST_EVENT_CAPS:{ @@ -2047,7 +2060,7 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent, break; } - res = gst_pad_event_default (demux->sinkpad, parent, event); + res = gst_pad_event_default (demux->sinkpad, parent, event) & res; drop: return res; @@ -2365,7 +2378,7 @@ qtdemux_parse_trex (GstQTDemux * qtdemux, QtDemuxStream * stream, trex = qtdemux_tree_get_child_by_type_full (mvex, FOURCC_trex, &trex_data); while (trex) { - guint32 id = 0, dur = 0, size = 0, flags = 0; + guint32 id = 0, dur = 0, size = 0, flags = 0, dummy = 0; /* skip version/flags */ if (!gst_byte_reader_skip (&trex_data, 4)) @@ -2375,7 +2388,7 @@ qtdemux_parse_trex (GstQTDemux * qtdemux, QtDemuxStream * stream, if (id != stream->track_id) goto next; /* sample description index; ignore */ - if (!gst_byte_reader_get_uint32_be (&trex_data, &dur)) + if (!gst_byte_reader_get_uint32_be (&trex_data, &dummy)) goto next; if (!gst_byte_reader_get_uint32_be (&trex_data, &dur)) goto next; @@ -2403,7 +2416,7 @@ qtdemux_parse_trex (GstQTDemux * qtdemux, QtDemuxStream * stream, *ds_duration = stream->def_sample_duration; *ds_size = stream->def_sample_size; - *ds_size = stream->def_sample_size; + *ds_flags = stream->def_sample_flags; /* even then, above values are better than random ... */ if (G_UNLIKELY (!stream->parsed_trex)) { @@ -2591,9 +2604,7 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun, sample->offset = *running_offset; sample->pts_offset = ct; sample->size = size; - sample->timestamp = - timestamp + gst_util_uint64_scale (stream->elst_offset, - stream->timescale, GST_SECOND); + sample->timestamp = timestamp; sample->duration = dur; /* sample-is-difference-sample */ /* ismv seems to use 0x40 for keyframe, 0xc0 for non-keyframe, @@ -3447,7 +3458,10 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, stop = MIN (segment->media_stop, stop - segment->time + segment->media_start); - if (qtdemux->segment.rate >= 0) { + if (G_UNLIKELY (QTSEGMENT_IS_EMPTY (segment))) { + start = segment->time + seg_time; + time = offset; + } else if (qtdemux->segment.rate >= 0) { start = MIN (segment->media_start + seg_time, stop); time = offset; } else { @@ -3480,6 +3494,9 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, stream->segment.stop = stop; stream->segment.time = time; stream->segment.position = start; + stream->segment.base = + segment->time > + qtdemux->segment_base ? segment->time - qtdemux->segment_base : 0; /* now prepare and send the segment */ if (stream->pad) { @@ -3497,20 +3514,26 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, /* and move to the keyframe before the indicated media time of the * segment */ - if (qtdemux->segment.rate >= 0) { - index = gst_qtdemux_find_index_linear (qtdemux, stream, start); - stream->to_sample = G_MAXUINT32; - GST_DEBUG_OBJECT (qtdemux, "moving data pointer to %" GST_TIME_FORMAT - ", index: %u, pts %" GST_TIME_FORMAT, GST_TIME_ARGS (start), index, - GST_TIME_ARGS (gst_util_uint64_scale (stream->samples[index].timestamp, - GST_SECOND, stream->timescale))); + if (G_LIKELY (!QTSEGMENT_IS_EMPTY (segment))) { + if (qtdemux->segment.rate >= 0) { + index = gst_qtdemux_find_index_linear (qtdemux, stream, start); + stream->to_sample = G_MAXUINT32; + GST_DEBUG_OBJECT (qtdemux, "moving data pointer to %" GST_TIME_FORMAT + ", index: %u, pts %" GST_TIME_FORMAT, GST_TIME_ARGS (start), index, + GST_TIME_ARGS (gst_util_uint64_scale (stream-> + samples[index].timestamp, GST_SECOND, stream->timescale))); + } else { + index = gst_qtdemux_find_index_linear (qtdemux, stream, stop); + stream->to_sample = index; + GST_DEBUG_OBJECT (qtdemux, "moving data pointer to %" GST_TIME_FORMAT + ", index: %u, pts %" GST_TIME_FORMAT, GST_TIME_ARGS (stop), index, + GST_TIME_ARGS (gst_util_uint64_scale (stream-> + samples[index].timestamp, GST_SECOND, stream->timescale))); + } } else { - index = gst_qtdemux_find_index_linear (qtdemux, stream, stop); - stream->to_sample = index; - GST_DEBUG_OBJECT (qtdemux, "moving data pointer to %" GST_TIME_FORMAT - ", index: %u, pts %" GST_TIME_FORMAT, GST_TIME_ARGS (stop), index, - GST_TIME_ARGS (gst_util_uint64_scale (stream->samples[index].timestamp, - GST_SECOND, stream->timescale))); + GST_DEBUG_OBJECT (qtdemux, "No need to look for keyframe, " + "this is an empty segment"); + return TRUE; } /* gst_qtdemux_parse_sample () called from gst_qtdemux_find_index_linear () @@ -3572,8 +3595,8 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream, */ static gboolean gst_qtdemux_prepare_current_sample (GstQTDemux * qtdemux, - QtDemuxStream * stream, guint64 * offset, guint * size, guint64 * dts, - guint64 * pts, guint64 * duration, gboolean * keyframe) + QtDemuxStream * stream, gboolean * empty, guint64 * offset, guint * size, + guint64 * dts, guint64 * pts, guint64 * duration, gboolean * keyframe) { QtDemuxSample *sample; guint64 time_position; @@ -3600,6 +3623,22 @@ gst_qtdemux_prepare_current_sample (GstQTDemux * qtdemux, if (G_UNLIKELY (stream->segment_index != seg_idx)) gst_qtdemux_activate_segment (qtdemux, stream, seg_idx, time_position); + if (G_UNLIKELY (QTSEGMENT_IS_EMPTY (&stream-> + segments[stream->segment_index]))) { + QtDemuxSegment *seg = &stream->segments[stream->segment_index]; + + GST_LOG_OBJECT (qtdemux, "Empty segment activated," + " prepare empty sample"); + + *empty = TRUE; + *pts = *dts = time_position; + *duration = seg->duration - (time_position - seg->time); + + return TRUE; + } + + *empty = FALSE; + GST_LOG_OBJECT (qtdemux, "segment active, index = %u of %u", stream->sample_index, stream->n_samples); @@ -3642,6 +3681,14 @@ gst_qtdemux_advance_sample (GstQTDemux * qtdemux, QtDemuxStream * stream) QtDemuxSample *sample; QtDemuxSegment *segment; + /* get current segment */ + segment = &stream->segments[stream->segment_index]; + + if (G_UNLIKELY (QTSEGMENT_IS_EMPTY (segment))) { + GST_DEBUG_OBJECT (qtdemux, "Empty segment, no samples to advance"); + goto next_segment; + } + if (G_UNLIKELY (stream->sample_index >= stream->to_sample)) { /* Mark the stream as EOS */ GST_DEBUG_OBJECT (qtdemux, @@ -3654,9 +3701,6 @@ gst_qtdemux_advance_sample (GstQTDemux * qtdemux, QtDemuxStream * stream) stream->sample_index++; stream->offset_in_sample = 0; - /* get current segment */ - segment = &stream->segments[stream->segment_index]; - /* reached the last sample, we need the next segment */ if (G_UNLIKELY (stream->sample_index >= stream->n_samples)) goto next_segment; @@ -3809,7 +3853,7 @@ done: } /* the input buffer metadata must be writable. Returns NULL when the buffer is - * completely cliped + * completely clipped * * Should be used only with raw buffers */ static GstBuffer * @@ -3841,6 +3885,9 @@ gst_qtdemux_clip_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream, } else goto wrong_type; + if (frame_size <= 0) + goto bad_frame_size; + /* we can only clip if we have a valid pts */ pts = GST_BUFFER_PTS (buf); if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (pts))) @@ -3909,6 +3956,11 @@ wrong_type: GST_DEBUG_OBJECT (qtdemux, "unknown stream type"); return buf; } +bad_frame_size: + { + GST_DEBUG_OBJECT (qtdemux, "bad frame size"); + return buf; + } no_pts: { GST_DEBUG_OBJECT (qtdemux, "no pts on buffer"); @@ -3938,12 +3990,11 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream, if (stream->pending_event && stream->pad) gst_pad_push_event (stream->pad, stream->pending_event); stream->pending_event = NULL; - /* no further processing needed */ - stream->need_process = FALSE; } if (G_UNLIKELY (stream->subtype != FOURCC_text - && stream->subtype != FOURCC_sbtl)) { + && stream->subtype != FOURCC_sbtl && + stream->subtype != FOURCC_subp)) { return buf; } @@ -3955,6 +4006,11 @@ gst_qtdemux_process_buffer (GstQTDemux * qtdemux, QtDemuxStream * stream, gst_buffer_unref (buf); return NULL; } + if (stream->subtype == FOURCC_subp) { + /* That's all the processing needed for subpictures */ + gst_buffer_unmap (buf, &map); + return buf; + } nsize = GST_READ_UINT16_BE (map.data); nsize = MIN (nsize, map.size - 2); @@ -4138,6 +4194,7 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) guint64 duration = 0; gboolean keyframe = FALSE; guint sample_size = 0; + gboolean empty = 0; guint size; gint index; gint i; @@ -4203,16 +4260,23 @@ gst_qtdemux_loop_state_movie (GstQTDemux * qtdemux) } /* fetch info for the current sample of this stream */ - if (G_UNLIKELY (!gst_qtdemux_prepare_current_sample (qtdemux, stream, &offset, - &sample_size, &dts, &pts, &duration, &keyframe))) + if (G_UNLIKELY (!gst_qtdemux_prepare_current_sample (qtdemux, stream, &empty, + &offset, &sample_size, &dts, &pts, &duration, &keyframe))) goto eos_stream; GST_DEBUG_OBJECT (qtdemux, - "pushing from stream %d, offset %" G_GUINT64_FORMAT + "pushing from stream %d, empty %d offset %" G_GUINT64_FORMAT ", size %d, dts=%" GST_TIME_FORMAT ", pts=%" GST_TIME_FORMAT - ", duration %" GST_TIME_FORMAT, index, offset, sample_size, + ", duration %" GST_TIME_FORMAT, index, empty, offset, sample_size, GST_TIME_ARGS (dts), GST_TIME_ARGS (pts), GST_TIME_ARGS (duration)); + if (G_UNLIKELY (empty)) { + /* empty segment, push a gap and move to the next one */ + gst_pad_push_event (stream->pad, gst_event_new_gap (pts, duration)); + stream->segment.position = pts + duration; + goto next; + } + /* hmm, empty sample, skip and move to next sample */ if (G_UNLIKELY (sample_size <= 0)) goto next; @@ -4408,6 +4472,39 @@ pause: } } +/* + * has_next_entry + * + * Returns if there are samples to be played. + */ +static gboolean +has_next_entry (GstQTDemux * demux) +{ + QtDemuxStream *stream; + int i; + + GST_DEBUG_OBJECT (demux, "Checking if there are samples not played yet"); + + for (i = 0; i < demux->n_streams; i++) { + stream = demux->streams[i]; + + if (stream->sample_index == -1) { + stream->sample_index = 0; + stream->offset_in_sample = 0; + } + + if (stream->sample_index >= stream->n_samples) { + GST_LOG_OBJECT (demux, "stream %d samples exhausted", i); + continue; + } + GST_DEBUG_OBJECT (demux, "Found a sample"); + return TRUE; + } + + GST_DEBUG_OBJECT (demux, "There wasn't any next sample"); + return FALSE; +} + /* * next_entry_size * @@ -4553,32 +4650,29 @@ static GstFlowReturn gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) { GstQTDemux *demux; - GstFlowReturn ret = GST_FLOW_OK; - GstClockTime timestamp; demux = GST_QTDEMUX (parent); + gst_adapter_push (demux->adapter, inbuf); - timestamp = GST_BUFFER_TIMESTAMP (inbuf); + GST_DEBUG_OBJECT (demux, + "pushing in inbuf %p, neededbytes:%u, available:%" G_GSIZE_FORMAT, inbuf, + demux->neededbytes, gst_adapter_available (demux->adapter)); - if (G_UNLIKELY (GST_CLOCK_TIME_IS_VALID (timestamp))) { - demux->fragment_start = timestamp; - GST_DEBUG_OBJECT (demux, "got fragment_start %" GST_TIME_FORMAT, - GST_TIME_ARGS (timestamp)); - } + return gst_qtdemux_process_adapter (demux, FALSE); +} - gst_adapter_push (demux->adapter, inbuf); +static GstFlowReturn +gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force) +{ + GstFlowReturn ret = GST_FLOW_OK; /* we never really mean to buffer that much */ if (demux->neededbytes == -1) { goto eos; } - GST_DEBUG_OBJECT (demux, - "pushing in inbuf %p, neededbytes:%u, available:%" G_GSIZE_FORMAT, inbuf, - demux->neededbytes, gst_adapter_available (demux->adapter)); - while (((gst_adapter_available (demux->adapter)) >= demux->neededbytes) && - (ret == GST_FLOW_OK)) { + (ret == GST_FLOW_OK || (ret == GST_FLOW_NOT_LINKED && force))) { GST_DEBUG_OBJECT (demux, "state:%d , demux->neededbytes:%d, demux->offset:%" G_GUINT64_FORMAT, @@ -4700,9 +4794,11 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) if (fourcc == FOURCC_moov) { /* in usual fragmented setup we could try to scan for more * and end up at the the moov (after mdat) again */ - if (demux->got_moov && demux->n_streams > 0 && !demux->fragmented) { + if (demux->got_moov && demux->n_streams > 0 && + (!demux->fragmented + || demux->last_moov_offset == demux->offset)) { GST_DEBUG_OBJECT (demux, - "Skipping moov atom as we have one already"); + "Skipping moov atom as we have (this) one already"); } else { GST_DEBUG_OBJECT (demux, "Parsing [moov]"); @@ -4720,6 +4816,8 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) gst_event_new_segment (&demux->segment); } + demux->last_moov_offset = demux->offset; + qtdemux_parse_moov (demux, data, demux->neededbytes); qtdemux_node_dump (demux, demux->moov_node); qtdemux_parse_tree (demux); @@ -4744,7 +4842,35 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) } } else if (fourcc == FOURCC_moof) { if ((demux->got_moov || demux->media_caps) && demux->fragmented) { + guint64 dist = 0; + GstClockTime prev_pts; + guint64 prev_offset; + GST_DEBUG_OBJECT (demux, "Parsing [moof]"); + + /* + * The timestamp of the moof buffer is relevant as some scenarios + * won't have the initial timestamp in the atoms. Whenever a new + * buffer has started, we get that buffer's PTS and use it as a base + * timestamp for the trun entries. + * + * To keep track of the current buffer timestamp and starting point + * we use gst_adapter_prev_pts that gives us the PTS and the distance + * from the beggining of the buffer, with the distance and demux->offset + * we know if it is still the same buffer or not. + */ + prev_pts = gst_adapter_prev_pts (demux->adapter, &dist); + prev_offset = demux->offset - dist; + if (demux->fragment_start_offset == -1 + || prev_offset > demux->fragment_start_offset) { + demux->fragment_start_offset = prev_offset; + demux->fragment_start = prev_pts; + GST_DEBUG_OBJECT (demux, + "New fragment start found at: %" G_GUINT64_FORMAT " : %" + GST_TIME_FORMAT, demux->fragment_start_offset, + GST_TIME_ARGS (demux->fragment_start)); + } + if (!qtdemux_parse_moof (demux, data, demux->neededbytes, demux->offset, NULL)) { gst_adapter_unmap (demux->adapter); @@ -4813,7 +4939,9 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) GST_DEBUG_OBJECT (demux, "Carrying on normally"); gst_adapter_flush (demux->adapter, demux->neededbytes); - if (demux->got_moov && demux->first_mdat != -1) { + /* only go back to the mdat if there are samples to play */ + if (demux->got_moov && demux->first_mdat != -1 + && has_next_entry (demux)) { gboolean res; /* we need to seek back */ @@ -5374,6 +5502,7 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, } GST_DEBUG_OBJECT (qtdemux, "parsing stsd (sample table, sample description) atom"); + /* Skip over 8 byte atom hdr + 1 byte version, 3 bytes flags, 4 byte num_entries */ qtdemux_parse_container (qtdemux, node, buffer + 16, end); break; } @@ -5492,6 +5621,24 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, qtdemux_parse_container (qtdemux, node, buffer + 0x56, end); break; } + case FOURCC_H265: + { + GST_MEMDUMP_OBJECT (qtdemux, "H265", buffer, end - buffer); + qtdemux_parse_container (qtdemux, node, buffer + 0x56, end); + break; + } + case FOURCC_hvc1: + { + GST_MEMDUMP_OBJECT (qtdemux, "hvc1", buffer, end - buffer); + qtdemux_parse_container (qtdemux, node, buffer + 0x56, end); + break; + } + case FOURCC_hev1: + { + GST_MEMDUMP_OBJECT (qtdemux, "hev1", buffer, end - buffer); + qtdemux_parse_container (qtdemux, node, buffer + 0x56, end); + break; + } case FOURCC_mjp2: { qtdemux_parse_container (qtdemux, node, buffer + 86, end); @@ -5503,6 +5650,13 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, qtdemux_parse_container (qtdemux, node, buffer + 12, end); break; } + case FOURCC_mp4s: + { + GST_MEMDUMP_OBJECT (qtdemux, "mp4s", buffer, end - buffer); + /* Skip 8 byte header, plus 8 byte version + flags + entry_count */ + qtdemux_parse_container (qtdemux, node, buffer + 16, end); + break; + } case FOURCC_XiTh: { guint32 version; @@ -6134,9 +6288,13 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl) if (!gst_byte_reader_skip (&stream->stco, 1 + 3)) goto corrupt_file; - /* chunks_are_chunks == 0 means treat chunks as samples */ - stream->chunks_are_chunks = !stream->sample_size || stream->sampled; - if (stream->chunks_are_chunks) { + /* chunks_are_samples == TRUE means treat chunks as samples */ + stream->chunks_are_samples = stream->sample_size && !stream->sampled; + if (stream->chunks_are_samples) { + /* treat chunks as samples */ + if (!gst_byte_reader_get_uint32_be (&stream->stco, &stream->n_samples)) + goto corrupt_file; + } else { /* skip number of entries */ if (!gst_byte_reader_skip (&stream->stco, 4)) goto corrupt_file; @@ -6147,10 +6305,6 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl) if (!qt_atom_parser_has_chunks (&stream->stsz, stream->n_samples, 4)) goto corrupt_file; } - } else { - /* treat chunks as samples */ - if (!gst_byte_reader_get_uint32_be (&stream->stco, &stream->n_samples)) - goto corrupt_file; } GST_DEBUG_OBJECT (qtdemux, "allocating n_samples %u * %u (%.2f MB)", @@ -6260,7 +6414,7 @@ qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 n) first = &samples[stream->stbl_index]; last = &samples[n]; - if (stream->chunks_are_chunks) { + if (!stream->chunks_are_samples) { /* set the sample sizes */ if (stream->sample_size == 0) { /* different sizes for each sample */ @@ -6337,40 +6491,7 @@ qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 n) last_chunk = stream->last_chunk; - if (stream->chunks_are_chunks) { - for (j = stream->stsc_chunk_index; j < last_chunk; j++) { - guint32 samples_per_chunk; - guint64 chunk_offset; - - if (!stream->stsc_sample_index - && !qt_atom_parser_get_offset (&stream->co_chunk, stream->co_size, - &stream->chunk_offset)) - goto corrupt_file; - - samples_per_chunk = stream->samples_per_chunk; - chunk_offset = stream->chunk_offset; - - for (k = stream->stsc_sample_index; k < samples_per_chunk; k++) { - GST_LOG_OBJECT (qtdemux, "Creating entry %d with offset %" - G_GUINT64_FORMAT "and size %d", - (guint) (cur - samples), stream->chunk_offset, cur->size); - - cur->offset = chunk_offset; - chunk_offset += cur->size; - cur++; - - if (G_UNLIKELY (cur > last)) { - /* save state */ - stream->stsc_sample_index = k + 1; - stream->chunk_offset = chunk_offset; - stream->stsc_chunk_index = j; - goto done2; - } - } - stream->stsc_sample_index = 0; - } - stream->stsc_chunk_index = j; - } else { + if (stream->chunks_are_samples) { cur = &samples[stream->stsc_chunk_index]; for (j = stream->stsc_chunk_index; j < last_chunk; j++) { @@ -6400,10 +6521,7 @@ qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 n) j, GST_TIME_ARGS (gst_util_uint64_scale (stream->stco_sample_index, GST_SECOND, stream->timescale)), cur->size); - cur->timestamp = - stream->stco_sample_index + - gst_util_uint64_scale (stream->elst_offset, stream->timescale, - GST_SECOND); + cur->timestamp = stream->stco_sample_index; cur->duration = stream->samples_per_chunk; cur->keyframe = TRUE; cur++; @@ -6411,22 +6529,51 @@ qtdemux_parse_samples (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 n) stream->stco_sample_index += stream->samples_per_chunk; } stream->stsc_chunk_index = j; + } else { + for (j = stream->stsc_chunk_index; j < last_chunk; j++) { + guint32 samples_per_chunk; + guint64 chunk_offset; + + if (!stream->stsc_sample_index + && !qt_atom_parser_get_offset (&stream->co_chunk, stream->co_size, + &stream->chunk_offset)) + goto corrupt_file; + + samples_per_chunk = stream->samples_per_chunk; + chunk_offset = stream->chunk_offset; + + for (k = stream->stsc_sample_index; k < samples_per_chunk; k++) { + GST_LOG_OBJECT (qtdemux, "creating entry %d with offset %" + G_GUINT64_FORMAT " and size %d", + (guint) (cur - samples), stream->chunk_offset, cur->size); + + cur->offset = chunk_offset; + chunk_offset += cur->size; + cur++; + + if (G_UNLIKELY (cur > last)) { + /* save state */ + stream->stsc_sample_index = k + 1; + stream->chunk_offset = chunk_offset; + stream->stsc_chunk_index = j; + goto done2; + } + } + stream->stsc_sample_index = 0; + } + stream->stsc_chunk_index = j; } stream->stsc_index++; } - if (!stream->chunks_are_chunks) + if (stream->chunks_are_samples) goto ctts; done2: { guint32 n_sample_times; - gint64 elst_offset; n_sample_times = stream->n_sample_times; cur = first; - elst_offset = - gst_util_uint64_scale (stream->elst_offset, stream->timescale, - GST_SECOND); for (i = stream->stts_index; i < n_sample_times; i++) { guint32 stts_samples; @@ -6458,7 +6605,7 @@ done2: GST_TIME_ARGS (gst_util_uint64_scale (stts_time, GST_SECOND, stream->timescale))); - cur->timestamp = stts_time + elst_offset; + cur->timestamp = stts_time; cur->duration = stts_duration; /* avoid 32-bit wrap-around, @@ -6487,7 +6634,7 @@ done2: (guint) (cur - samples), GST_TIME_ARGS (gst_util_uint64_scale (stream->stts_time, GST_SECOND, stream->timescale))); - cur->timestamp = stream->stts_time + elst_offset; + cur->timestamp = stream->stts_time; cur->duration = -1; } } @@ -6688,16 +6835,6 @@ qtdemux_parse_segments (GstQTDemux * qtdemux, QtDemuxStream * stream, media_time = QT_UINT32 (buffer + 20 + i * 12); duration = QT_UINT32 (buffer + 16 + i * 12); - /* -1 media time is an empty segment, just ignore it */ - if (media_time == G_MAXUINT32) { - if (i == 0) { - /* first empty segment specifies sample offset (if movie timescale) */ - stream->elst_offset = - gst_util_uint64_scale (duration, GST_SECOND, qtdemux->timescale); - } - continue; - } - segment = &stream->segments[count++]; /* time and duration expressed in global timescale */ @@ -6708,9 +6845,14 @@ qtdemux_parse_segments (GstQTDemux * qtdemux, QtDemuxStream * stream, segment->stop_time = stime; segment->duration = stime - segment->time; /* media_time expressed in stream timescale */ - segment->media_start = - gst_util_uint64_scale (media_time, GST_SECOND, stream->timescale); - segment->media_stop = segment->media_start + segment->duration; + if (media_time != G_MAXUINT32) { + segment->media_start = + gst_util_uint64_scale (media_time, GST_SECOND, stream->timescale); + segment->media_stop = segment->media_start + segment->duration; + } else { + segment->media_start = GST_CLOCK_TIME_NONE; + segment->media_stop = GST_CLOCK_TIME_NONE; + } rate_int = GST_READ_UINT32_BE (buffer + 24 + i * 12); if (rate_int <= 1) { @@ -6729,7 +6871,7 @@ qtdemux_parse_segments (GstQTDemux * qtdemux, QtDemuxStream * stream, GST_TIME_ARGS (segment->duration), GST_TIME_ARGS (segment->media_start), segment->rate, rate_int); } - GST_DEBUG_OBJECT (qtdemux, "found %d non-empty segments", count); + GST_DEBUG_OBJECT (qtdemux, "found %d segments", count); stream->n_segments = count; } done: @@ -7047,6 +7189,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) GNode *tref; QtDemuxStream *stream = NULL; + gboolean new_stream = FALSE; GstTagList *list = NULL; gchar *codec = NULL; const guint8 *stsd_data; @@ -7076,6 +7219,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) goto existing_stream; stream = _create_stream (); stream->track_id = track_id; + new_stream = TRUE; } else { stream = qtdemux_find_stream (qtdemux, track_id); if (!stream) { @@ -7224,7 +7368,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) GST_LOG_OBJECT (qtdemux, "stsd type len: %d", len); if ((fourcc == FOURCC_drms) || (fourcc == FOURCC_drmi) || - ((fourcc & 0xFFFFFF00) == GST_MAKE_FOURCC ('e', 'n', 'c', 0))) + ((fourcc & 0x00FFFFFF) == GST_MAKE_FOURCC ('e', 'n', 'c', 0))) goto error_encrypted; if (stream->subtype == FOURCC_vide) { @@ -7341,6 +7485,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) stream->caps = qtdemux_video_caps (qtdemux, stream, fourcc, stsd_data, &codec); + if (G_UNLIKELY (!stream->caps)) + goto unknown_stream; + if (codec) { list = gst_tag_list_new_empty (); gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, @@ -7435,10 +7582,9 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) /* First 4 bytes are the length of the atom, the next 4 bytes * are the fourcc, the next 1 byte is the version, and the - * subsequent bytes are sequence parameter set like data. */ + * subsequent bytes are profile_tier_level structure like data. */ gst_codec_utils_h264_caps_set_level_and_profile (stream->caps, avc_data + 8 + 1, size - 1); - buf = gst_buffer_new_and_alloc (size); gst_buffer_fill (buf, 0, avc_data + 0x8, size); gst_caps_set_simple (stream->caps, @@ -7519,6 +7665,55 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) break; } + case FOURCC_H265: + case FOURCC_hvc1: + case FOURCC_hev1: + { + gint len = QT_UINT32 (stsd_data) - 0x66; + const guint8 *hevc_data = stsd_data + 0x66; + + /* find hevc */ + while (len >= 0x8) { + gint size; + + if (QT_UINT32 (hevc_data) <= len) + size = QT_UINT32 (hevc_data) - 0x8; + else + size = len - 0x8; + + if (size < 1) + /* No real data, so break out */ + break; + + switch (QT_FOURCC (hevc_data + 0x4)) { + case FOURCC_hvcC: + { + /* parse, if found */ + GstBuffer *buf; + + GST_DEBUG_OBJECT (qtdemux, "found avcC codec_data in stsd"); + + /* First 4 bytes are the length of the atom, the next 4 bytes + * are the fourcc, the next 1 byte is the version, and the + * subsequent bytes are sequence parameter set like data. */ + gst_codec_utils_h265_caps_set_level_tier_and_profile + (stream->caps, hevc_data + 8 + 1, size - 1); + + buf = gst_buffer_new_and_alloc (size); + gst_buffer_fill (buf, 0, hevc_data + 0x8, size); + gst_caps_set_simple (stream->caps, + "codec_data", GST_TYPE_BUFFER, buf, NULL); + gst_buffer_unref (buf); + break; + } + default: + break; + } + len -= size + 8; + hevc_data += size + 8; + } + break; + } case FOURCC_mp4v: case FOURCC_MP4V: case FOURCC_fmp4: @@ -8255,6 +8450,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) break; } default: + GST_INFO_OBJECT (qtdemux, + "unhandled type %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (fourcc)); break; } } @@ -8293,55 +8490,30 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) switch (fourcc) { case FOURCC_mp4s: { - guint len; - const guint8 *data; - - /* look for palette */ - /* target mp4s atom */ - len = QT_UINT32 (stsd_data + offset); - data = stsd_data + offset; - /* verify sufficient length, - * and esds present with decConfigDescr of expected size and position */ - if ((len >= 106 + 8) - && (QT_FOURCC (data + 8 + 8 + 4) == FOURCC_esds) - && (QT_UINT16 (data + 8 + 40) == 0x0540)) { - GstStructure *s; - guint32 clut[16]; - gint i; - - /* move to decConfigDescr data */ - data = data + 8 + 42; - for (i = 0; i < 16; i++) { - clut[i] = QT_UINT32 (data); - data += 4; - } - - s = gst_structure_new ("application/x-gst-dvd", "event", - G_TYPE_STRING, "dvd-spu-clut-change", - "clut00", G_TYPE_INT, clut[0], "clut01", G_TYPE_INT, clut[1], - "clut02", G_TYPE_INT, clut[2], "clut03", G_TYPE_INT, clut[3], - "clut04", G_TYPE_INT, clut[4], "clut05", G_TYPE_INT, clut[5], - "clut06", G_TYPE_INT, clut[6], "clut07", G_TYPE_INT, clut[7], - "clut08", G_TYPE_INT, clut[8], "clut09", G_TYPE_INT, clut[9], - "clut10", G_TYPE_INT, clut[10], "clut11", G_TYPE_INT, clut[11], - "clut12", G_TYPE_INT, clut[12], "clut13", G_TYPE_INT, clut[13], - "clut14", G_TYPE_INT, clut[14], "clut15", G_TYPE_INT, clut[15], - NULL); - - /* store event and trigger custom processing */ - stream->pending_event = - gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s); - stream->need_process = TRUE; + GNode *mp4s = NULL; + GNode *esds = NULL; + + /* look for palette in a stsd->mp4s->esds sub-atom */ + mp4s = qtdemux_tree_get_child_by_type (stsd, FOURCC_mp4s); + if (mp4s) + esds = qtdemux_tree_get_child_by_type (mp4s, FOURCC_esds); + if (esds == NULL) { + /* Invalid STSD */ + GST_LOG_OBJECT (qtdemux, "Skipping invalid stsd: no esds child"); + break; } + + gst_qtdemux_handle_esds (qtdemux, stream, esds, list); break; } default: + GST_INFO_OBJECT (qtdemux, + "unhandled type %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (fourcc)); break; } GST_INFO_OBJECT (qtdemux, "type %" GST_FOURCC_FORMAT " caps %" GST_PTR_FORMAT, GST_FOURCC_ARGS (fourcc), stream->caps); - } else { /* everything in 1 sample */ stream->sampled = TRUE; @@ -8438,20 +8610,23 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) skip_track: { GST_INFO_OBJECT (qtdemux, "skip disabled track"); - g_free (stream); + if (new_stream) + g_free (stream); return TRUE; } corrupt_file: { GST_ELEMENT_ERROR (qtdemux, STREAM, DEMUX, (_("This file is corrupt and cannot be played.")), (NULL)); - g_free (stream); + if (new_stream) + g_free (stream); return FALSE; } error_encrypted: { GST_ELEMENT_ERROR (qtdemux, STREAM, DECRYPT, (NULL), (NULL)); - g_free (stream); + if (new_stream) + g_free (stream); return FALSE; } samples_failed: @@ -8460,14 +8635,15 @@ segments_failed: /* we posted an error already */ /* free stbl sub-atoms */ gst_qtdemux_stbl_free (stream); - g_free (stream); + if (new_stream) + g_free (stream); return FALSE; } existing_stream: { GST_INFO_OBJECT (qtdemux, "stream with track id %i already exists", track_id); - if (stream) + if (new_stream) g_free (stream); return TRUE; } @@ -8475,7 +8651,8 @@ unknown_stream: { GST_INFO_OBJECT (qtdemux, "unknown subtype %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (stream->subtype)); - g_free (stream); + if (new_stream) + g_free (stream); return TRUE; } too_many_streams: @@ -8531,13 +8708,20 @@ gst_qtdemux_guess_bitrate (GstQTDemux * qtdemux) switch (qtdemux->streams[i]->subtype) { case FOURCC_soun: case FOURCC_vide: + GST_DEBUG_OBJECT (qtdemux, "checking bitrate for %" GST_PTR_FORMAT, + qtdemux->streams[i]->caps); /* retrieve bitrate, prefer avg then max */ bitrate = 0; if (qtdemux->streams[i]->pending_tags) { gst_tag_list_get_uint (qtdemux->streams[i]->pending_tags, GST_TAG_MAXIMUM_BITRATE, &bitrate); + GST_DEBUG_OBJECT (qtdemux, "max-bitrate: %u", bitrate); + gst_tag_list_get_uint (qtdemux->streams[i]->pending_tags, + GST_TAG_NOMINAL_BITRATE, &bitrate); + GST_DEBUG_OBJECT (qtdemux, "nominal-bitrate: %u", bitrate); gst_tag_list_get_uint (qtdemux->streams[i]->pending_tags, GST_TAG_BITRATE, &bitrate); + GST_DEBUG_OBJECT (qtdemux, "bitrate: %u", bitrate); } if (bitrate) sum_bitrate += bitrate; @@ -8923,6 +9107,7 @@ qtdemux_tag_add_str_full (GstQTDemux * qtdemux, const char *tag, guint32 type; int offset; gboolean ret = TRUE; + const gchar *charset = NULL; data = qtdemux_tree_get_child_by_type (node, FOURCC_data); if (data) { @@ -8944,10 +9129,30 @@ qtdemux_tag_add_str_full (GstQTDemux * qtdemux, const char *tag, len = QT_UINT32 (node->data); type = QT_UINT32 ((guint8 *) node->data + 4); if ((type >> 24) == 0xa9) { - /* Type starts with the (C) symbol, so the next 32 bits are - * the language code, which we ignore */ + gint str_len; + gint lang_code; + + /* Type starts with the (C) symbol, so the next data is a list + * of (string size(16), language code(16), string) */ + + str_len = QT_UINT16 ((guint8 *) node->data + 8); + lang_code = QT_UINT16 ((guint8 *) node->data + 10); + + /* the string + fourcc + size + 2 16bit fields, + * means that there are more tags in this atom */ + if (len > str_len + 8 + 4) { + /* TODO how to represent the same tag in different languages? */ + GST_WARNING_OBJECT (qtdemux, "Ignoring metadata entry with multiple " + "text alternatives, reading only first one"); + } + offset = 12; + len = str_len + 8 + 4; /* remove trailing strings that we don't use */ GST_DEBUG_OBJECT (qtdemux, "found international text tag"); + + if (lang_code < 0x800) { /* MAC encoded string */ + charset = "mac"; + } } else if (len > 14 && qtdemux_is_string_tag_3gp (qtdemux, QT_FOURCC ((guint8 *) node->data + 4))) { guint32 type = QT_UINT32 ((guint8 *) node->data + 8); @@ -8969,8 +9174,21 @@ qtdemux_tag_add_str_full (GstQTDemux * qtdemux, const char *tag, GST_DEBUG_OBJECT (qtdemux, "found normal text tag"); ret = FALSE; /* may have to fallback */ } - s = gst_tag_freeform_string_to_utf8 ((char *) node->data + offset, - len - offset, env_vars); + if (charset) { + GError *err = NULL; + + s = g_convert ((gchar *) node->data + offset, len - offset, "utf8", + charset, NULL, NULL, &err); + if (err) { + GST_DEBUG_OBJECT (qtdemux, "Failed to convert string from charset %s:" + " %s(%d): %s", charset, g_quark_to_string (err->domain), err->code, + err->message); + g_error_free (err); + } + } else { + s = gst_tag_freeform_string_to_utf8 ((char *) node->data + offset, + len - offset, env_vars); + } if (s) { GST_DEBUG_OBJECT (qtdemux, "adding tag %s", GST_STR_NULL (s)); gst_tag_list_add (qtdemux->tag_list, GST_TAG_MERGE_REPLACE, tag, s, NULL); @@ -9304,6 +9522,7 @@ qtdemux_tag_add_revdns (GstQTDemux * demux, const char *tag, return; } meanstr = ((gchar *) mean->data) + 12; + meansize -= 12; name = qtdemux_tree_get_child_by_type (node, FOURCC_name); if (!name) { @@ -9317,6 +9536,7 @@ qtdemux_tag_add_revdns (GstQTDemux * demux, const char *tag, return; } namestr = ((gchar *) name->data) + 12; + namesize -= 12; /* * Data atom is: @@ -9339,7 +9559,8 @@ qtdemux_tag_add_revdns (GstQTDemux * demux, const char *tag, } datatype = QT_UINT32 (((gchar *) data->data) + 8) & 0xFFFFFF; - if (strncmp (meanstr, "com.apple.iTunes", meansize - 12) == 0) { + if ((strncmp (meanstr, "com.apple.iTunes", meansize) == 0) || + (strncmp (meanstr, "org.hydrogenaudio.replaygain", meansize) == 0)) { static const struct { const gchar name[28]; @@ -9358,7 +9579,7 @@ qtdemux_tag_add_revdns (GstQTDemux * demux, const char *tag, int i; for (i = 0; i < G_N_ELEMENTS (tags); ++i) { - if (!g_ascii_strncasecmp (tags[i].name, namestr, namesize - 12)) { + if (!g_ascii_strncasecmp (tags[i].name, namestr, namesize)) { switch (gst_tag_get_type (tags[i].tag)) { case G_TYPE_DOUBLE: qtdemux_add_double_tag_from_str (demux, tags[i].tag, @@ -9384,20 +9605,22 @@ qtdemux_tag_add_revdns (GstQTDemux * demux, const char *tag, /* errors */ unknown_tag: +#ifndef GST_DISABLE_GST_DEBUG { gchar *namestr_dbg; gchar *meanstr_dbg; - meanstr_dbg = g_strndup (meanstr, meansize - 12); - namestr_dbg = g_strndup (namestr, namesize - 12); + meanstr_dbg = g_strndup (meanstr, meansize); + namestr_dbg = g_strndup (namestr, namesize); GST_WARNING_OBJECT (demux, "This tag %s:%s type:%u is not mapped, " "file a bug at bugzilla.gnome.org", meanstr_dbg, namestr_dbg, datatype); g_free (namestr_dbg); g_free (meanstr_dbg); - return; } +#endif + return; } static void @@ -9848,7 +10071,6 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) guint64 creation_time; GstDateTime *datetime = NULL; gint version; - int i; /* make sure we have a usable taglist */ if (!qtdemux->tag_list) { @@ -9937,23 +10159,6 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) trak = qtdemux_tree_get_sibling_by_type (trak, FOURCC_trak); } - /* make sure we don't offset samples more than we have to */ - qtdemux->min_elst_offset = GST_CLOCK_TIME_NONE; - for (i = 0; i < qtdemux->n_streams; ++i) { - QtDemuxStream *stream = qtdemux->streams[i]; - if (!GST_CLOCK_TIME_IS_VALID (qtdemux->min_elst_offset) - || stream->elst_offset < qtdemux->min_elst_offset) { - qtdemux->min_elst_offset = stream->elst_offset; - } - } - if (!GST_CLOCK_TIME_IS_VALID (qtdemux->min_elst_offset)) { - qtdemux->min_elst_offset = 0; - } - for (i = 0; i < qtdemux->n_streams; ++i) { - QtDemuxStream *stream = qtdemux->streams[i]; - stream->elst_offset -= qtdemux->min_elst_offset; - } - /* set duration in the segment info */ gst_qtdemux_get_duration (qtdemux, &duration); if (duration) { @@ -9987,22 +10192,24 @@ qtdemux_parse_tree (GstQTDemux * qtdemux) } /* taken from ffmpeg */ -static unsigned int -get_size (guint8 * ptr, guint8 ** end) +static int +read_descr_size (guint8 * ptr, guint8 * end, guint8 ** end_out) { int count = 4; int len = 0; while (count--) { - int c = *ptr; + int c; - ptr++; + if (ptr >= end) + return -1; + + c = *ptr++; len = (len << 7) | (c & 0x7f); if (!(c & 0x80)) break; } - if (end) - *end = ptr; + *end_out = ptr; return len; } @@ -10025,20 +10232,24 @@ gst_qtdemux_handle_esds (GstQTDemux * qtdemux, QtDemuxStream * stream, ptr += 8; GST_DEBUG_OBJECT (qtdemux, "version/flags = %08x", QT_UINT32 (ptr)); ptr += 4; - while (ptr < end) { + while (ptr + 1 < end) { tag = QT_UINT8 (ptr); GST_DEBUG_OBJECT (qtdemux, "tag = %02x", tag); ptr++; - len = get_size (ptr, &ptr); + len = read_descr_size (ptr, end, &ptr); GST_DEBUG_OBJECT (qtdemux, "len = %d", len); + /* Check the stated amount of data is available for reading */ + if (len < 0 || ptr + len > end) + break; + switch (tag) { - case 0x03: + case ES_DESCRIPTOR_TAG: GST_DEBUG_OBJECT (qtdemux, "ID %04x", QT_UINT16 (ptr)); GST_DEBUG_OBJECT (qtdemux, "priority %04x", QT_UINT8 (ptr + 2)); ptr += 3; break; - case 0x04:{ + case DECODER_CONFIG_DESC_TAG:{ guint max_bitrate, avg_bitrate; object_type_id = QT_UINT8 (ptr); @@ -10060,18 +10271,55 @@ gst_qtdemux_handle_esds (GstQTDemux * qtdemux, QtDemuxStream * stream, ptr += 13; break; } - case 0x05: + case DECODER_SPECIFIC_INFO_TAG: GST_MEMDUMP_OBJECT (qtdemux, "data", ptr, len); - data_ptr = ptr; - data_len = len; + if (object_type_id == 0xe0 && len == 0x40) { + guint8 *data; + GstStructure *s; + guint32 clut[16]; + gint i; + + GST_DEBUG_OBJECT (qtdemux, + "Have VOBSUB palette. Creating palette event"); + /* move to decConfigDescr data and read palette */ + data = ptr; + for (i = 0; i < 16; i++) { + clut[i] = QT_UINT32 (data); + data += 4; + } + + s = gst_structure_new ("application/x-gst-dvd", "event", + G_TYPE_STRING, "dvd-spu-clut-change", + "clut00", G_TYPE_INT, clut[0], "clut01", G_TYPE_INT, clut[1], + "clut02", G_TYPE_INT, clut[2], "clut03", G_TYPE_INT, clut[3], + "clut04", G_TYPE_INT, clut[4], "clut05", G_TYPE_INT, clut[5], + "clut06", G_TYPE_INT, clut[6], "clut07", G_TYPE_INT, clut[7], + "clut08", G_TYPE_INT, clut[8], "clut09", G_TYPE_INT, clut[9], + "clut10", G_TYPE_INT, clut[10], "clut11", G_TYPE_INT, clut[11], + "clut12", G_TYPE_INT, clut[12], "clut13", G_TYPE_INT, clut[13], + "clut14", G_TYPE_INT, clut[14], "clut15", G_TYPE_INT, clut[15], + NULL); + + /* store event and trigger custom processing */ + stream->pending_event = + gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s); + } else { + /* Generic codec_data handler puts it on the caps */ + data_ptr = ptr; + data_len = len; + } + ptr += len; break; - case 0x06: + case SL_CONFIG_DESC_TAG: GST_DEBUG_OBJECT (qtdemux, "data %02x", QT_UINT8 (ptr)); ptr += 1; break; default: - GST_ERROR_OBJECT (qtdemux, "parse error"); + GST_DEBUG_OBJECT (qtdemux, "Unknown/unhandled descriptor tag %02x", + tag); + GST_MEMDUMP_OBJECT (qtdemux, "descriptor data", ptr, len); + ptr += len; break; } } @@ -10217,7 +10465,7 @@ static GstCaps * qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, guint32 fourcc, const guint8 * stsd_data, gchar ** codec_name) { - GstCaps *caps; + GstCaps *caps = NULL; GstVideoFormat format = GST_VIDEO_FORMAT_UNKNOWN; switch (fourcc) { @@ -10436,6 +10684,19 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, "stream-format", G_TYPE_STRING, "avc3", "alignment", G_TYPE_STRING, "au", NULL); break; + case GST_MAKE_FOURCC ('H', '2', '6', '5'): + case GST_MAKE_FOURCC ('h', 'v', 'c', '1'): + _codec ("H.265 / HEVC"); + caps = gst_caps_new_simple ("video/x-h265", + "stream-format", G_TYPE_STRING, "hvc1", + "alignment", G_TYPE_STRING, "au", NULL); + break; + case GST_MAKE_FOURCC ('h', 'e', 'v', '1'): + _codec ("H.265 / HEVC"); + caps = gst_caps_new_simple ("video/x-h265", + "stream-format", G_TYPE_STRING, "hev1", + "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", @@ -10873,6 +11134,7 @@ qtdemux_sub_caps (GstQTDemux * qtdemux, QtDemuxStream * stream, case GST_MAKE_FOURCC ('m', 'p', '4', 's'): _codec ("DVD subtitle"); caps = gst_caps_new_empty_simple ("subpicture/x-dvd"); + stream->need_process = TRUE; break; case GST_MAKE_FOURCC ('t', 'e', 'x', 't'): _codec ("Quicktime timed text"); diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h index 3fb43daea..3fe019547 100644 --- a/gst/isomp4/qtdemux.h +++ b/gst/isomp4/qtdemux.h @@ -106,6 +106,7 @@ struct _GstQTDemux { guint64 mdatoffset; guint64 first_mdat; gboolean got_moov; + guint64 last_moov_offset; guint header_size; GstTagList *tag_list; @@ -113,10 +114,16 @@ struct _GstQTDemux { /* configured playback region */ GstSegment segment; GstEvent *pending_newsegment; - gboolean upstream_newsegment; + gboolean upstream_newsegment; /* qtdemux received upstream + * newsegment in TIME format which likely + * means that upstream is driving the pipeline + * (adaptive demuxers) */ gint64 seek_offset; gint64 push_seek_start; gint64 push_seek_stop; + guint64 segment_base; /* The offset from which playback was started, needs to + * be subtracted from GstSegment.base to get a correct + * running time whenever a new QtSegment is activated */ #if 0 /* gst index support */ @@ -131,12 +138,13 @@ struct _GstQTDemux { * upstream provides it at the caps */ GstCaps *media_caps; gboolean exposed; - gboolean mss_mode; /* flag to indicate that we're working with a smoothstreaming fragment */ + gboolean mss_mode; /* flag to indicate that we're working with a smoothstreaming fragment + * Mss doesn't have 'moov' or any information about the streams format, + * requiring qtdemux to expose and create the streams */ guint64 fragment_start; + guint64 fragment_start_offset; gint64 chapters_track_id; - - GstClockTime min_elst_offset; }; struct _GstQTDemuxClass { diff --git a/gst/isomp4/qtdemux_dump.c b/gst/isomp4/qtdemux_dump.c index b62ef174b..c76b0f21f 100644 --- a/gst/isomp4/qtdemux_dump.c +++ b/gst/isomp4/qtdemux_dump.c @@ -21,6 +21,7 @@ #include "qtdemux_types.h" #include "qtdemux_dump.h" +#include "fourcc.h" #include "qtatomparser.h" @@ -253,6 +254,52 @@ qtdemux_dump_dref (GstQTDemux * qtdemux, GstByteReader * data, int depth) return TRUE; } +static gboolean +qtdemux_dump_stsd_avc1 (GstQTDemux * qtdemux, GstByteReader * data, guint size, + int depth) +{ + guint32 fourcc; + + /* Size of avc1 = 78 bytes */ + if (size < (6 + 2 + 4 + 4 + 4 + 4 + 2 + 2 + 4 + 4 + 4 + 2 + 1 + 31 + 2 + 2)) + return FALSE; + + gst_byte_reader_skip_unchecked (data, 6); + GST_LOG_OBJECT (qtdemux, "%*s data reference:%d", depth, "", + GET_UINT16 (data)); + GST_LOG_OBJECT (qtdemux, "%*s version/rev.: %08x", depth, "", + GET_UINT32 (data)); + fourcc = GET_FOURCC (data); + GST_LOG_OBJECT (qtdemux, "%*s vendor: %" GST_FOURCC_FORMAT, depth, + "", GST_FOURCC_ARGS (fourcc)); + GST_LOG_OBJECT (qtdemux, "%*s temporal qual: %u", depth, "", + GET_UINT32 (data)); + GST_LOG_OBJECT (qtdemux, "%*s spatial qual: %u", depth, "", + GET_UINT32 (data)); + GST_LOG_OBJECT (qtdemux, "%*s width: %u", depth, "", + GET_UINT16 (data)); + GST_LOG_OBJECT (qtdemux, "%*s height: %u", depth, "", + GET_UINT16 (data)); + GST_LOG_OBJECT (qtdemux, "%*s horiz. resol: %g", depth, "", + GET_FP32 (data)); + GST_LOG_OBJECT (qtdemux, "%*s vert. resol.: %g", depth, "", + GET_FP32 (data)); + GST_LOG_OBJECT (qtdemux, "%*s data size: %u", depth, "", + GET_UINT32 (data)); + GST_LOG_OBJECT (qtdemux, "%*s frame count: %u", depth, "", + GET_UINT16 (data)); + /* something is not right with this, it's supposed to be a string but it's + * not apparently, so just skip this for now */ + gst_byte_reader_skip_unchecked (data, 1 + 31); + GST_LOG_OBJECT (qtdemux, "%*s compressor: (skipped)", depth, ""); + GST_LOG_OBJECT (qtdemux, "%*s depth: %u", depth, "", + GET_UINT16 (data)); + GST_LOG_OBJECT (qtdemux, "%*s color table ID:%u", depth, "", + GET_UINT16 (data)); + + return TRUE; +} + gboolean qtdemux_dump_stsd (GstQTDemux * qtdemux, GstByteReader * data, int depth) { @@ -267,40 +314,46 @@ qtdemux_dump_stsd (GstQTDemux * qtdemux, GstByteReader * data, int depth) for (i = 0; i < num_entries; i++) { GstByteReader sub; - guint32 size = 0, fourcc; + guint32 size, remain; + guint32 fourcc; if (!gst_byte_reader_get_uint32_be (data, &size) || !qt_atom_parser_get_fourcc (data, &fourcc)) return FALSE; - GST_LOG ("%*s size: %u", depth, "", size); - GST_LOG ("%*s type: %" GST_FOURCC_FORMAT, depth, "", - GST_FOURCC_ARGS (fourcc)); + GST_LOG_OBJECT (qtdemux, "%*s size: %u", depth, "", size); + GST_LOG_OBJECT (qtdemux, "%*s type: %" GST_FOURCC_FORMAT, depth, + "", GST_FOURCC_ARGS (fourcc)); - if (size < (6 + 2 + 4 + 4 + 4 + 4 + 2 + 2 + 4 + 4 + 4 + 2 + 1 + 31 + 2 + 2)) + remain = gst_byte_reader_get_remaining (data); + /* Size includes the 8 bytes we just read: len & fourcc, then 8 bytes + * version, flags, entries_count */ + if (size > remain + 8) { + GST_LOG_OBJECT (qtdemux, + "Not enough data left for this atom (have %u need %u)", remain, size); return FALSE; + } + + qt_atom_parser_peek_sub (data, 0, size, &sub); + switch (fourcc) { + case FOURCC_avc1: + if (!qtdemux_dump_stsd_avc1 (qtdemux, &sub, size, depth + 1)) + return FALSE; + break; + case FOURCC_mp4s: + if (!gst_byte_reader_get_uint32_be (&sub, &ver_flags) || + !gst_byte_reader_get_uint32_be (&sub, &num_entries)) + return FALSE; + if (!qtdemux_dump_unknown (qtdemux, &sub, depth + 1)) + return FALSE; + break; + default: + /* Unknown stsd data, dump the bytes */ + if (!qtdemux_dump_unknown (qtdemux, &sub, depth + 1)) + return FALSE; + break; + } - qt_atom_parser_peek_sub (data, 0, 78, &sub); - gst_byte_reader_skip_unchecked (&sub, 6); - GST_LOG ("%*s data reference:%d", depth, "", GET_UINT16 (&sub)); - GST_LOG ("%*s version/rev.: %08x", depth, "", GET_UINT32 (&sub)); - fourcc = GET_FOURCC (&sub); - GST_LOG ("%*s vendor: %" GST_FOURCC_FORMAT, depth, "", - GST_FOURCC_ARGS (fourcc)); - GST_LOG ("%*s temporal qual: %u", depth, "", GET_UINT32 (&sub)); - GST_LOG ("%*s spatial qual: %u", depth, "", GET_UINT32 (&sub)); - GST_LOG ("%*s width: %u", depth, "", GET_UINT16 (&sub)); - GST_LOG ("%*s height: %u", depth, "", GET_UINT16 (&sub)); - GST_LOG ("%*s horiz. resol: %g", depth, "", GET_FP32 (&sub)); - GST_LOG ("%*s vert. resol.: %g", depth, "", GET_FP32 (&sub)); - GST_LOG ("%*s data size: %u", depth, "", GET_UINT32 (&sub)); - GST_LOG ("%*s frame count: %u", depth, "", GET_UINT16 (&sub)); - /* something is not right with this, it's supposed to be a string but it's - * not apparently, so just skip this for now */ - gst_byte_reader_skip_unchecked (&sub, 1 + 31); - GST_LOG ("%*s compressor: (skipped)", depth, ""); - GST_LOG ("%*s depth: %u", depth, "", GET_UINT16 (&sub)); - GST_LOG ("%*s color table ID:%u", depth, "", GET_UINT16 (&sub)); if (!gst_byte_reader_skip (data, size - (4 + 4))) return FALSE; } diff --git a/gst/isomp4/qtdemux_fourcc.h b/gst/isomp4/qtdemux_fourcc.h deleted file mode 100644 index 6b8bd062e..000000000 --- a/gst/isomp4/qtdemux_fourcc.h +++ /dev/null @@ -1,253 +0,0 @@ -/* GStreamer - * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should 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_QTDEMUX_FOURCC_H__ -#define __GST_QTDEMUX_FOURCC_H__ - -#include <gst/gst.h> - -G_BEGIN_DECLS - -#define FOURCC_ftyp GST_MAKE_FOURCC('f','t','y','p') -#define FOURCC_qt__ GST_MAKE_FOURCC('q','t',' ',' ') -#define FOURCC_moov GST_MAKE_FOURCC('m','o','o','v') -#define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d') -#define FOURCC_clip GST_MAKE_FOURCC('c','l','i','p') -#define FOURCC_trak GST_MAKE_FOURCC('t','r','a','k') -#define FOURCC_udta GST_MAKE_FOURCC('u','d','t','a') -#define FOURCC_ctab GST_MAKE_FOURCC('c','t','a','b') -#define FOURCC_tkhd GST_MAKE_FOURCC('t','k','h','d') -#define FOURCC_crgn GST_MAKE_FOURCC('c','r','g','n') -#define FOURCC_matt GST_MAKE_FOURCC('m','a','t','t') -#define FOURCC_kmat GST_MAKE_FOURCC('k','m','a','t') -#define FOURCC_edts GST_MAKE_FOURCC('e','d','t','s') -#define FOURCC_elst GST_MAKE_FOURCC('e','l','s','t') -#define FOURCC_load GST_MAKE_FOURCC('l','o','a','d') -#define FOURCC_tref GST_MAKE_FOURCC('t','r','e','f') -#define FOURCC_imap GST_MAKE_FOURCC('i','m','a','p') -#define FOURCC___in GST_MAKE_FOURCC(' ',' ','i','n') -#define FOURCC___ty GST_MAKE_FOURCC(' ',' ','t','y') -#define FOURCC_mdia GST_MAKE_FOURCC('m','d','i','a') -#define FOURCC_mdhd GST_MAKE_FOURCC('m','d','h','d') -#define FOURCC_hdlr GST_MAKE_FOURCC('h','d','l','r') -#define FOURCC_hndl GST_MAKE_FOURCC('h','n','d','l') -#define FOURCC_minf GST_MAKE_FOURCC('m','i','n','f') -#define FOURCC_vmhd GST_MAKE_FOURCC('v','m','h','d') -#define FOURCC_smhd GST_MAKE_FOURCC('s','m','h','d') -#define FOURCC_gmhd GST_MAKE_FOURCC('g','m','h','d') -#define FOURCC_gmin GST_MAKE_FOURCC('g','m','i','n') -#define FOURCC_dinf GST_MAKE_FOURCC('d','i','n','f') -#define FOURCC_dref GST_MAKE_FOURCC('d','r','e','f') -#define FOURCC_stbl GST_MAKE_FOURCC('s','t','b','l') -#define FOURCC_stsd GST_MAKE_FOURCC('s','t','s','d') -#define FOURCC_stts GST_MAKE_FOURCC('s','t','t','s') -#define FOURCC_stss GST_MAKE_FOURCC('s','t','s','s') -#define FOURCC_stps GST_MAKE_FOURCC('s','t','p','s') -#define FOURCC_stsc GST_MAKE_FOURCC('s','t','s','c') -#define FOURCC_stsz GST_MAKE_FOURCC('s','t','s','z') -#define FOURCC_stco GST_MAKE_FOURCC('s','t','c','o') -#define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e') -#define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n') -#define FOURCC_subp GST_MAKE_FOURCC('s','u','b','p') -#define FOURCC_sbtl GST_MAKE_FOURCC('s','b','t','l') -#define FOURCC_strm GST_MAKE_FOURCC('s','t','r','m') -#define FOURCC_rtsp GST_MAKE_FOURCC('r','t','s','p') -#define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4') -#define FOURCC_cmov GST_MAKE_FOURCC('c','m','o','v') -#define FOURCC_dcom GST_MAKE_FOURCC('d','c','o','m') -#define FOURCC_cmvd GST_MAKE_FOURCC('c','m','v','d') -#define FOURCC_hint GST_MAKE_FOURCC('h','i','n','t') -#define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a') -#define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v') -#define FOURCC_MP4V GST_MAKE_FOURCC('M','P','4','V') -#define FOURCC_fmp4 GST_MAKE_FOURCC('f','m','p','4') -#define FOURCC_FMP4 GST_MAKE_FOURCC('F','M','P','4') -#define FOURCC_glbl GST_MAKE_FOURCC('g','l','b','l') -#define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e') -#define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l') -#define FOURCC_esds GST_MAKE_FOURCC('e','s','d','s') -#define FOURCC_pasp GST_MAKE_FOURCC('p','a','s','p') -#define FOURCC_hnti GST_MAKE_FOURCC('h','n','t','i') -#define FOURCC_rtp_ GST_MAKE_FOURCC('r','t','p',' ') -#define FOURCC_sdp_ GST_MAKE_FOURCC('s','d','p',' ') -#define FOURCC_meta GST_MAKE_FOURCC('m','e','t','a') -#define FOURCC_ilst GST_MAKE_FOURCC('i','l','s','t') -#define FOURCC__nam GST_MAKE_FOURCC(0xa9,'n','a','m') -#define FOURCC__cmt GST_MAKE_FOURCC(0xa9,'c','m','t') -#define FOURCC__des GST_MAKE_FOURCC(0xa9,'d','e','s') -#define FOURCC_desc GST_MAKE_FOURCC('d','e','s','c') -#define FOURCC__lyr GST_MAKE_FOURCC(0xa9,'l','y','r') -#define FOURCC__cpy GST_MAKE_FOURCC(0xa9,'c','p','y') -#define FOURCC__ART GST_MAKE_FOURCC(0xa9,'A','R','T') -#define FOURCC_aART GST_MAKE_FOURCC('a','A','R','T') -#define FOURCC__wrt GST_MAKE_FOURCC(0xa9,'w','r','t') -#define FOURCC__grp GST_MAKE_FOURCC(0xa9,'g','r','p') -#define FOURCC__alb GST_MAKE_FOURCC(0xa9,'a','l','b') -#define FOURCC__day GST_MAKE_FOURCC(0xa9,'d','a','y') -#define FOURCC__req GST_MAKE_FOURCC(0xa9,'r','e','q') -#define FOURCC__enc GST_MAKE_FOURCC(0xa9,'e','n','c') -#define FOURCC__inf GST_MAKE_FOURCC(0xa9,'i','n','f') -#define FOURCC_cprt GST_MAKE_FOURCC('c','p','r','t') -#define FOURCC_gnre GST_MAKE_FOURCC('g','n','r','e') -#define FOURCC_disc GST_MAKE_FOURCC('d','i','s','c') -#define FOURCC_disk GST_MAKE_FOURCC('d','i','s','k') -#define FOURCC_trkn GST_MAKE_FOURCC('t','r','k','n') -#define FOURCC_cpil GST_MAKE_FOURCC('c','p','i','l') -#define FOURCC_pgap GST_MAKE_FOURCC('p','g','a','p') -#define FOURCC_pcst GST_MAKE_FOURCC('p','c','s','t') -#define FOURCC_tmpo GST_MAKE_FOURCC('t','m','p','o') -#define FOURCC_covr GST_MAKE_FOURCC('c','o','v','r') -#define FOURCC__too GST_MAKE_FOURCC(0xa9,'t','o','o') -#define FOURCC_tvsh GST_MAKE_FOURCC('t','v','s','h') -#define FOURCC_tven GST_MAKE_FOURCC('t','v','e','n') -#define FOURCC_tvsn GST_MAKE_FOURCC('t','v','s','n') -#define FOURCC_tves GST_MAKE_FOURCC('t','v','e','s') -#define FOURCC_sonm GST_MAKE_FOURCC('s','o','n','m') -#define FOURCC_soal GST_MAKE_FOURCC('s','o','a','l') -#define FOURCC_soar GST_MAKE_FOURCC('s','o','a','r') -#define FOURCC_soaa GST_MAKE_FOURCC('s','o','a','a') -#define FOURCC_soco GST_MAKE_FOURCC('s','o','c','o') -#define FOURCC_sosn GST_MAKE_FOURCC('s','o','s','n') -#define FOURCC_____ GST_MAKE_FOURCC('-','-','-','-') -#define FOURCC_mean GST_MAKE_FOURCC('m','e','a','n') -#define FOURCC_name GST_MAKE_FOURCC('n','a','m','e') -#define FOURCC_free GST_MAKE_FOURCC('f','r','e','e') -#define FOURCC_data GST_MAKE_FOURCC('d','a','t','a') -#define FOURCC_SVQ3 GST_MAKE_FOURCC('S','V','Q','3') -#define FOURCC_rmra GST_MAKE_FOURCC('r','m','r','a') -#define FOURCC_rmda GST_MAKE_FOURCC('r','m','d','a') -#define FOURCC_rdrf GST_MAKE_FOURCC('r','d','r','f') -#define FOURCC__gen GST_MAKE_FOURCC(0xa9, 'g', 'e', 'n') -#define FOURCC_rmdr GST_MAKE_FOURCC('r','m','d','r') -#define FOURCC_rmvc GST_MAKE_FOURCC('r','m','v','c') -#define FOURCC_qtim GST_MAKE_FOURCC('q','t','i','m') -#define FOURCC_drms GST_MAKE_FOURCC('d','r','m','s') -#define FOURCC_drmi GST_MAKE_FOURCC('d','r','m','i') -#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') -#define FOURCC_rle_ GST_MAKE_FOURCC('r','l','e',' ') -#define FOURCC_WRLE GST_MAKE_FOURCC('W','R','L','E') -#define FOURCC_MAC6 GST_MAKE_FOURCC('M','A','C','6') -#define FOURCC_MAC3 GST_MAKE_FOURCC('M','A','C','3') -#define FOURCC_ima4 GST_MAKE_FOURCC('i','m','a','4') -#define FOURCC_ulaw GST_MAKE_FOURCC('u','l','a','w') -#define FOURCC_alaw GST_MAKE_FOURCC('a','l','a','w') -#define FOURCC_twos GST_MAKE_FOURCC('t','w','o','s') -#define FOURCC_sowt GST_MAKE_FOURCC('s','o','w','t') -#define FOURCC_raw_ GST_MAKE_FOURCC('r','a','w',' ') -#define FOURCC_in24 GST_MAKE_FOURCC('i','n','2','4') -#define FOURCC_enda GST_MAKE_FOURCC('e','n','d','a') -#define FOURCC_QDM2 GST_MAKE_FOURCC('Q','D','M','2') -#define FOURCC_alac GST_MAKE_FOURCC('a','l','a','c') -#define FOURCC_samr GST_MAKE_FOURCC('s','a','m','r') -#define FOURCC_sawb GST_MAKE_FOURCC('s','a','w','b') -#define FOURCC_mdat GST_MAKE_FOURCC('m','d','a','t') -#define FOURCC_wide GST_MAKE_FOURCC('w','i','d','e') -#define FOURCC_PICT GST_MAKE_FOURCC('P','I','C','T') -#define FOURCC_pnot GST_MAKE_FOURCC('p','n','o','t') -#define FOURCC_zlib GST_MAKE_FOURCC('z','l','i','b') -#define FOURCC_alis GST_MAKE_FOURCC('a','l','i','s') -#define FOURCC_url_ GST_MAKE_FOURCC('u','r','l',' ') -#define FOURCC_frma GST_MAKE_FOURCC('f','r','m','a') -#define FOURCC_ctts GST_MAKE_FOURCC('c','t','t','s') -#define FOURCC_keyw GST_MAKE_FOURCC('k','e','y','w') -#define FOURCC_kywd GST_MAKE_FOURCC('k','y','w','d') -#define FOURCC_agsm GST_MAKE_FOURCC('a','g','s','m') -#define FOURCC_text GST_MAKE_FOURCC('t','e','x','t') -#define FOURCC_tx3g GST_MAKE_FOURCC('t','x','3','g') -#define FOURCC_mp4s GST_MAKE_FOURCC('m','p','4','s') -#define FOURCC_gama GST_MAKE_FOURCC('g','a','m','a') -#define FOURCC_apcs GST_MAKE_FOURCC('a','p','c','s') -#define FOURCC_apch GST_MAKE_FOURCC('a','p','c','h') -#define FOURCC_apcn GST_MAKE_FOURCC('a','p','c','n') -#define FOURCC_apco GST_MAKE_FOURCC('a','p','c','o') -#define FOURCC_ap4h GST_MAKE_FOURCC('a','p','4','h') -#define FOURCC_m1v GST_MAKE_FOURCC('m','1','v',' ') -#define FOURCC_vivo GST_MAKE_FOURCC('v','i','v','o') - -/* SVQ3 fourcc */ -#define FOURCC_SEQH GST_MAKE_FOURCC('S','E','Q','H') -#define FOURCC_SMI_ GST_MAKE_FOURCC('S','M','I',' ') - -/* 3gpp asset meta data fourcc */ -#define FOURCC_titl GST_MAKE_FOURCC('t','i','t','l') -#define FOURCC_dscp GST_MAKE_FOURCC('d','s','c','p') -#define FOURCC_perf GST_MAKE_FOURCC('p','e','r','f') -#define FOURCC_auth GST_MAKE_FOURCC('a','u','t','h') -#define FOURCC_rtng GST_MAKE_FOURCC('r','t','n','g') -#define FOURCC_clsf GST_MAKE_FOURCC('c','l','s','f') -#define FOURCC_loci GST_MAKE_FOURCC('l','o','c','i') -#define FOURCC_albm GST_MAKE_FOURCC('a','l','b','m') -#define FOURCC_yrrc GST_MAKE_FOURCC('y','r','r','c') - -/* misc tag stuff */ -#define FOURCC_ID32 GST_MAKE_FOURCC('I', 'D','3','2') - -/* ISO Motion JPEG 2000 fourcc */ -#define FOURCC_mjp2 GST_MAKE_FOURCC('m','j','p','2') -#define FOURCC_jp2h GST_MAKE_FOURCC('j','p','2','h') -#define FOURCC_ihdr GST_MAKE_FOURCC('i','h','d','r') -#define FOURCC_colr GST_MAKE_FOURCC('c','o','l','r') -#define FOURCC_fiel GST_MAKE_FOURCC('f','i','e','l') -#define FOURCC_jp2x GST_MAKE_FOURCC('j','p','2','x') -#define FOURCC_cmap GST_MAKE_FOURCC('c','m','a','p') -#define FOURCC_cdef GST_MAKE_FOURCC('c','d','e','f') -/* some buggy hardware's notion of mdhd */ -#define FOURCC_mhdr GST_MAKE_FOURCC('m','h','d','r') - -/* Xiph fourcc */ -#define FOURCC_XiTh GST_MAKE_FOURCC('X','i','T','h') -#define FOURCC_XdxT GST_MAKE_FOURCC('X','d','x','T') -#define FOURCC_tCtH GST_MAKE_FOURCC('t','C','t','H') -#define FOURCC_tCt_ GST_MAKE_FOURCC('t','C','t','#') -#define FOURCC_tCtC GST_MAKE_FOURCC('t','C','t','C') - -#define FOURCC_XMP_ GST_MAKE_FOURCC('X','M','P','_') -#define FOURCC_uuid GST_MAKE_FOURCC('u','u','i','d') - -/* Fragmented MP4 */ -#define FOURCC_mehd GST_MAKE_FOURCC('m','e','h','d') -#define FOURCC_mfhd GST_MAKE_FOURCC('m','f','h','d') -#define FOURCC_mfra GST_MAKE_FOURCC('m','f','r','a') -#define FOURCC_mfro GST_MAKE_FOURCC('m','f','r','o') -#define FOURCC_moof GST_MAKE_FOURCC('m','o','o','f') -#define FOURCC_mvex GST_MAKE_FOURCC('m','v','e','x') -#define FOURCC_sdtp GST_MAKE_FOURCC('s','d','t','p') -#define FOURCC_tfhd GST_MAKE_FOURCC('t','f','h','d') -#define FOURCC_tfra GST_MAKE_FOURCC('t','f','r','a') -#define FOURCC_traf GST_MAKE_FOURCC('t','r','a','f') -#define FOURCC_trex GST_MAKE_FOURCC('t','r','e','x') -#define FOURCC_trun GST_MAKE_FOURCC('t','r','u','n') -#define FOURCC_ovc1 GST_MAKE_FOURCC('o','v','c','1') -#define FOURCC_owma GST_MAKE_FOURCC('o','w','m','a') - -/* MPEG DASH */ -#define FOURCC_tfdt GST_MAKE_FOURCC('t','f','d','t') - -/* Chapters reference */ -#define FOURCC_chap GST_MAKE_FOURCC('c','h','a','p') - -G_END_DECLS - -#endif /* __GST_QTDEMUX_FOURCC_H__ */ diff --git a/gst/isomp4/qtdemux_types.c b/gst/isomp4/qtdemux_types.c index e9f32cc5b..8988af025 100644 --- a/gst/isomp4/qtdemux_types.c +++ b/gst/isomp4/qtdemux_types.c @@ -19,7 +19,7 @@ #include "qtdemux_types.h" #include "qtdemux_dump.h" -#include "qtdemux_fourcc.h" +#include "fourcc.h" static const QtNodeType qt_node_types[] = { {FOURCC_moov, "movie", QT_FLAG_CONTAINER,}, @@ -174,6 +174,10 @@ static const QtNodeType qt_node_types[] = { {FOURCC_avcC, "AV codec configuration container", 0}, {FOURCC_avc1, "AV codec configuration v1", 0}, {FOURCC_avc3, "AV codec configuration v3", 0}, + {FOURCC_mp4s, "VOBSUB codec configuration", 0}, + {FOURCC_hvc1, "HEVC codec configuration", 0}, + {FOURCC_hev1, "HEVC codec configuration", 0}, + {FOURCC_hvcC, "HEVC codec configuration container", 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 a6c820006..fc3262531 100644 --- a/gst/law/Makefile.in +++ b/gst/law/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -497,7 +495,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c index a26a34dfc..cc3efa13b 100644 --- a/gst/law/mulaw-decode.c +++ b/gst/law/mulaw-decode.c @@ -159,4 +159,5 @@ gst_mulawdec_class_init (GstMuLawDecClass * klass) static void gst_mulawdec_init (GstMuLawDec * mulawdec) { + gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (mulawdec), TRUE); } diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in index e6c9fefbe..6cfee3e8a 100644 --- a/gst/level/Makefile.in +++ b/gst/level/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c index 5cd83c846..139de1f75 100644 --- a/gst/level/gstlevel.c +++ b/gst/level/gstlevel.c @@ -76,12 +76,10 @@ * #GValueArray of #gdouble * <classname>"decay"</classname>: * the decaying peak power level in dB for each channel - * the decaying peak level follows the peak level, but starts dropping - * if no new peak is reached after the time given by - * the <link linkend="GstLevel--peak-ttl">the time to live</link>. - * When the decaying peak level drops, it does so at the decay rate - * as specified by the - * <link linkend="GstLevel--peak-falloff">the peak falloff rate</link>. + * The decaying peak level follows the peak level, but starts dropping if no + * new peak is reached after the time given by the #GstLevel:peak-ttl. + * When the decaying peak level drops, it does so at the decay rate as + * specified by the #GstLevel:peak-falloff. * </para> * </listitem> * <listitem> @@ -679,7 +677,7 @@ gst_level_transform_ip (GstBaseTransform * trans, GstBuffer * in) filter->decay_peak_age[i] = G_GINT64_CONSTANT (0); } } - in_data += ((block_int_size * bps) - bps); + in_data += block_size * bps; filter->num_frames += block_size; num_frames -= block_size; diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in index 92be1bc79..d1642686b 100644 --- a/gst/matroska/Makefile.in +++ b/gst/matroska/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -495,7 +493,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c index a23947fea..97665ca00 100644 --- a/gst/matroska/ebml-read.c +++ b/gst/matroska/ebml-read.c @@ -377,7 +377,7 @@ gst_ebml_read_bytes (GstEbmlRead * ebml, guint32 * id, const guint8 ** data, return GST_FLOW_ERROR; /* FIXME: do proper error handling */ *data = NULL; - if (G_LIKELY (length >= 0)) { + if (G_LIKELY (length > 0)) { if (!gst_byte_reader_get_data (gst_ebml_read_br (ebml), length, data)) return GST_FLOW_PARSE; } diff --git a/gst/matroska/ebml-write.c b/gst/matroska/ebml-write.c index 4596c2f20..138f470c5 100644 --- a/gst/matroska/ebml-write.c +++ b/gst/matroska/ebml-write.c @@ -427,7 +427,10 @@ gst_ebml_write_element_push (GstEbmlWrite * ebml, GstBuffer * buf, gst_buffer_map (buf, &map, GST_MAP_READ); buf_data = map.data; } - if (!gst_byte_writer_put_data (ebml->streamheader, buf_data, data_size)) + if (!buf_data) + GST_WARNING ("Failed to map buffer"); + else if (!gst_byte_writer_put_data (ebml->streamheader, buf_data, + data_size)) GST_WARNING ("Error writing data to streamheader"); } if (ebml->cache) { @@ -435,7 +438,9 @@ gst_ebml_write_element_push (GstEbmlWrite * ebml, GstBuffer * buf, gst_buffer_map (buf, &map, GST_MAP_READ); buf_data = map.data; } - if (!gst_byte_writer_put_data (ebml->cache, buf_data, data_size)) + if (!buf_data) + GST_WARNING ("Failed to map buffer"); + else if (!gst_byte_writer_put_data (ebml->cache, buf_data, data_size)) GST_WARNING ("Error writing data to cache"); if (map.data) gst_buffer_unmap (buf, &map); @@ -614,9 +619,9 @@ gst_ebml_write_sint (GstEbmlWrite * ebml, guint32 id, gint64 num) if (num >= 0) { unum = num; } else { - unum = 0x80 << (size - 1); + unum = ((guint64) 0x80) << ((size - 1) * 8); unum += num; - unum |= 0x80 << (size - 1); + unum |= ((guint64) 0x80) << ((size - 1) * 8); } /* write */ diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index fd4cf5a10..7fa715900 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -189,18 +189,7 @@ gst_matroska_demux_finalize (GObject * object) { GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (object); - if (demux->common.src) { - g_ptr_array_free (demux->common.src, TRUE); - demux->common.src = NULL; - } - - if (demux->common.global_tags) { - gst_tag_list_unref (demux->common.global_tags); - demux->common.global_tags = NULL; - } - - g_object_unref (demux->common.adapter); - + gst_matroska_read_common_finalize (&demux->common); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -267,15 +256,8 @@ gst_matroska_demux_init (GstMatroskaDemux * demux) GST_DEBUG_FUNCPTR (gst_matroska_demux_handle_sink_event)); gst_element_add_pad (GST_ELEMENT (demux), demux->common.sinkpad); - /* initial stream no. */ - demux->common.src = NULL; - - demux->common.writing_app = NULL; - demux->common.muxing_app = NULL; - demux->common.index = NULL; - demux->common.global_tags = NULL; - - demux->common.adapter = gst_adapter_new (); + /* init defaults for common read context */ + gst_matroska_read_common_init (&demux->common); /* property defaults */ demux->max_gap_time = DEFAULT_MAX_GAP_TIME; @@ -286,41 +268,6 @@ gst_matroska_demux_init (GstMatroskaDemux * demux) gst_matroska_demux_reset (GST_ELEMENT (demux)); } -static void -gst_matroska_track_free (GstMatroskaTrackContext * track) -{ - g_free (track->codec_id); - g_free (track->codec_name); - g_free (track->name); - g_free (track->language); - g_free (track->codec_priv); - g_free (track->codec_state); - - if (track->encodings != NULL) { - int i; - - for (i = 0; i < track->encodings->len; ++i) { - GstMatroskaTrackEncoding *enc = &g_array_index (track->encodings, - GstMatroskaTrackEncoding, - i); - - g_free (enc->comp_settings); - } - g_array_free (track->encodings, TRUE); - } - - if (track->pending_tags) - gst_tag_list_unref (track->pending_tags); - - if (track->index_table) - g_array_free (track->index_table, TRUE); - - if (track->stream_headers) - gst_buffer_list_unref (track->stream_headers); - - g_free (track); -} - /* * Returns the aggregated GstFlowReturn. */ @@ -359,41 +306,15 @@ done: return ret; } -static void -gst_matroska_demux_free_parsed_el (gpointer mem, gpointer user_data) -{ - g_slice_free (guint64, mem); -} - static void gst_matroska_demux_reset (GstElement * element) { GstMatroskaDemux *demux = GST_MATROSKA_DEMUX (element); - guint i; GST_DEBUG_OBJECT (demux, "Resetting state"); - /* reset input */ - demux->common.state = GST_MATROSKA_READ_STATE_START; - - /* clean up existing streams */ - if (demux->common.src) { - g_assert (demux->common.src->len == demux->common.num_streams); - for (i = 0; i < demux->common.src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (demux->common.src, - i); - - if (context->pad != NULL) - gst_element_remove_pad (GST_ELEMENT (demux), context->pad); + gst_matroska_read_common_reset (GST_ELEMENT (demux), &demux->common); - gst_caps_replace (&context->caps, NULL); - gst_matroska_track_free (context); - } - g_ptr_array_free (demux->common.src, TRUE); - } - demux->common.src = g_ptr_array_new (); - - demux->common.num_streams = 0; demux->num_a_streams = 0; demux->num_t_streams = 0; demux->num_v_streams = 0; @@ -401,51 +322,23 @@ gst_matroska_demux_reset (GstElement * element) demux->have_group_id = FALSE; demux->group_id = G_MAXUINT; - /* reset media info */ - g_free (demux->common.writing_app); - demux->common.writing_app = NULL; - g_free (demux->common.muxing_app); - demux->common.muxing_app = NULL; - - /* reset indexes */ - if (demux->common.index) { - g_array_free (demux->common.index, TRUE); - demux->common.index = NULL; - } + demux->clock = NULL; + demux->tracks_parsed = FALSE; if (demux->clusters) { g_array_free (demux->clusters, TRUE); demux->clusters = NULL; } - /* reset timers */ - demux->clock = NULL; - demux->common.time_scale = 1000000; - demux->common.created = G_MININT64; - - demux->common.index_parsed = FALSE; - demux->tracks_parsed = FALSE; - demux->common.segmentinfo_parsed = FALSE; - demux->common.attachments_parsed = FALSE; - demux->common.chapters_parsed = FALSE; - - g_list_foreach (demux->common.tags_parsed, - (GFunc) gst_matroska_demux_free_parsed_el, NULL); - g_list_free (demux->common.tags_parsed); - demux->common.tags_parsed = NULL; - g_list_foreach (demux->seek_parsed, - (GFunc) gst_matroska_demux_free_parsed_el, NULL); + (GFunc) gst_matroska_read_common_free_parsed_el, NULL); g_list_free (demux->seek_parsed); demux->seek_parsed = NULL; - gst_segment_init (&demux->common.segment, GST_FORMAT_TIME); demux->last_stop_end = GST_CLOCK_TIME_NONE; demux->seek_block = 0; demux->stream_start_time = GST_CLOCK_TIME_NONE; demux->to_time = GST_CLOCK_TIME_NONE; - - demux->common.offset = 0; demux->cluster_time = GST_CLOCK_TIME_NONE; demux->cluster_offset = 0; demux->next_cluster_offset = 0; @@ -468,34 +361,6 @@ gst_matroska_demux_reset (GstElement * element) gst_event_unref (demux->new_segment); demux->new_segment = NULL; } -#if 0 - if (demux->common.element_index) { - gst_object_unref (demux->common.element_index); - demux->common.element_index = NULL; - } - demux->common.element_index_writer_id = -1; -#endif - - if (demux->common.global_tags) { - gst_tag_list_unref (demux->common.global_tags); - } - demux->common.global_tags = gst_tag_list_new_empty (); - gst_tag_list_set_scope (demux->common.global_tags, GST_TAG_SCOPE_GLOBAL); - - if (demux->common.cached_buffer) { - if (demux->common.cached_data) { - gst_buffer_unmap (demux->common.cached_buffer, &demux->common.cached_map); - demux->common.cached_data = NULL; - } - gst_buffer_unref (demux->common.cached_buffer); - demux->common.cached_buffer = NULL; - } - - /* free chapters TOC if any */ - if (demux->common.toc) { - gst_toc_unref (demux->common.toc); - demux->common.toc = NULL; - } demux->invalid_duration = FALSE; } @@ -1377,7 +1242,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml) stream_id = gst_pad_create_stream_id_printf (context->pad, GST_ELEMENT_CAST (demux), - "%03u", context->uid); + "%03" G_GUINT64_FORMAT, context->uid); stream_start = gst_pad_get_sticky_event (demux->common.sinkpad, GST_EVENT_STREAM_START, 0); @@ -2756,12 +2621,46 @@ gst_matroska_demux_push_dvd_clut_change_event (GstMatroskaDemux * demux, G_TYPE_INT, clut[15], NULL); gst_pad_push_event (stream->pad, - gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s)); + gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM_STICKY, s)); } } g_free (buf); } +static void +gst_matroska_demux_push_codec_data_all (GstMatroskaDemux * demux) +{ + gint stream_nr; + + GST_OBJECT_LOCK (demux); + + g_assert (demux->common.num_streams == demux->common.src->len); + for (stream_nr = 0; stream_nr < demux->common.src->len; stream_nr++) { + GstMatroskaTrackContext *stream; + + stream = g_ptr_array_index (demux->common.src, stream_nr); + + if (stream->send_stream_headers) { + if (stream->stream_headers != NULL) { + gst_matroska_demux_push_stream_headers (demux, stream); + } else { + /* FIXME: perhaps we can just disable and skip this stream then */ + GST_ELEMENT_ERROR (demux, STREAM, DECODE, (NULL), + ("Failed to extract stream headers from codec private data")); + } + stream->send_stream_headers = FALSE; + } + + if (stream->send_dvd_event) { + gst_matroska_demux_push_dvd_clut_change_event (demux, stream); + /* FIXME: should we send this event again after (flushing) seek ? */ + stream->send_dvd_event = FALSE; + } + } + + GST_OBJECT_UNLOCK (demux); +} + static GstFlowReturn gst_matroska_demux_add_mpeg_seq_header (GstElement * element, GstMatroskaTrackContext * stream, GstBuffer ** buf) @@ -2943,7 +2842,7 @@ gst_matroska_demux_add_wvpk_header (GstElement * element, GST_WRITE_UINT32_LE (outdata + outpos + 24, crc); outpos += 28; - g_memmove (outdata + outpos, data, blocksize); + memmove (outdata + outpos, data, blocksize); outpos += blocksize; data += blocksize; size -= blocksize; @@ -3479,22 +3378,9 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux, demux->segment_seqnum = 0; } - if (stream->send_stream_headers) { - if (stream->stream_headers != NULL) { - ret = gst_matroska_demux_push_stream_headers (demux, stream); - } else { - /* FIXME: perhaps we can just disable and skip this stream then */ - GST_ELEMENT_ERROR (demux, STREAM, DECODE, (NULL), - ("Failed to extract stream headers from codec private data")); - } - stream->send_stream_headers = FALSE; - } - - if (stream->send_dvd_event) { - gst_matroska_demux_push_dvd_clut_change_event (demux, stream); - /* FIXME: should we send this event again after (flushing) seek ? */ - stream->send_dvd_event = FALSE; - } + /* send pending codec data headers for all streams, + * before we perform sync across all streams */ + gst_matroska_demux_push_codec_data_all (demux); if (block_duration != -1) { if (stream->timecodescale == 1.0) @@ -4634,20 +4520,6 @@ pause: gst_element_no_more_pads (GST_ELEMENT (demux)); } - /* Close the segment, i.e. update segment stop with the duration - * if no stop was set */ - if (GST_CLOCK_TIME_IS_VALID (demux->last_stop_end) && - !GST_CLOCK_TIME_IS_VALID (demux->common.segment.stop) && - GST_CLOCK_TIME_IS_VALID (demux->common.segment.start) && - demux->last_stop_end > demux->common.segment.start) { - GstSegment segment = demux->common.segment; - GstEvent *event; - - segment.stop = demux->last_stop_end; - event = gst_event_new_segment (&segment); - gst_matroska_demux_send_event (demux, event); - } - if (demux->common.segment.flags & GST_SEEK_FLAG_SEGMENT) { gint64 stop; @@ -4922,9 +4794,11 @@ gst_duration_to_fraction (guint64 duration, gint * dest_n, gint * dest_d) for (i = 0; i < G_N_ELEMENTS (common_den); i++) { d = common_den[i]; n = floor (0.5 + (d * 1e9) / duration); - a = gst_util_uint64_scale_int (1000000000, d, n); - if (duration >= a - 2 && duration <= a + 2) { - goto out; + if (n > 0) { + a = gst_util_uint64_scale_int (1000000000, d, n); + if (duration >= a - 2 && duration <= a + 2) { + goto out; + } } } @@ -5035,7 +4909,16 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * case GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'): format = GST_VIDEO_FORMAT_AYUV; break; - + case GST_MAKE_FOURCC ('Y', '8', '0', '0'): + case GST_MAKE_FOURCC ('Y', '8', ' ', ' '): + format = GST_VIDEO_FORMAT_GRAY8; + break; + case GST_MAKE_FOURCC ('R', 'G', 'B', 24): + format = GST_VIDEO_FORMAT_RGB; + break; + case GST_MAKE_FOURCC ('B', 'G', 'R', 24): + format = GST_VIDEO_FORMAT_BGR; + break; default: GST_DEBUG ("Unknown fourcc %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (videocontext->fourcc)); @@ -5118,6 +5001,26 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * NULL); } *codec_name = g_strdup ("H264"); + } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_MPEGH_HEVC)) { + caps = gst_caps_new_empty_simple ("video/x-h265"); + if (data) { + GstBuffer *priv; + + gst_codec_utils_h265_caps_set_level_tier_and_profile (caps, data + 1, + size - 1); + + priv = gst_buffer_new_wrapped (g_memdup (data, size), size); + gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, priv, NULL); + gst_buffer_unref (priv); + + gst_caps_set_simple (caps, "stream-format", G_TYPE_STRING, "hvc1", + "alignment", G_TYPE_STRING, "au", NULL); + } else { + GST_WARNING ("No codec data found, assuming output is byte-stream"); + gst_caps_set_simple (caps, "stream-format", G_TYPE_STRING, "byte-stream", + NULL); + } + *codec_name = g_strdup ("HEVC"); } else if ((!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO1)) || (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO2)) || (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO3)) || @@ -5216,19 +5119,14 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext * } if (videocontext->default_fps > 0.0) { - GValue fps_double = { 0, }; - GValue fps_fraction = { 0, }; + gint fps_n, fps_d; - g_value_init (&fps_double, G_TYPE_DOUBLE); - g_value_init (&fps_fraction, GST_TYPE_FRACTION); - g_value_set_double (&fps_double, videocontext->default_fps); - g_value_transform (&fps_double, &fps_fraction); + gst_util_double_to_fraction (videocontext->default_fps, &fps_n, &fps_d); - GST_DEBUG ("using default fps %f", videocontext->default_fps); + GST_DEBUG ("using default fps %d/%d", fps_n, fps_d); - gst_structure_set_value (structure, "framerate", &fps_fraction); - g_value_unset (&fps_double); - g_value_unset (&fps_fraction); + gst_structure_set (structure, "framerate", GST_TYPE_FRACTION, fps_n, + fps_d, NULL); } else if (context->default_duration > 0) { int fps_n, fps_d; @@ -5311,6 +5209,18 @@ aac_profile_idx (const gchar * codec_id) return profile; } +static guint +round_up_pow2 (guint n) +{ + n = n - 1; + n = n | (n >> 1); + n = n | (n >> 2); + n = n | (n >> 4); + n = n | (n >> 8); + n = n | (n >> 16); + return n + 1; +} + #define AAC_SYNC_EXTENSION_TYPE 0x02b7 static GstCaps * @@ -5375,7 +5285,8 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * *codec_name = g_strdup_printf ("Raw %d-bit PCM audio", audiocontext->bitdepth); - context->alignment = audiocontext->bitdepth / 8; + context->alignment = GST_ROUND_UP_8 (audiocontext->bitdepth) / 8; + context->alignment = round_up_pow2 (context->alignment); } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_PCM_FLOAT)) { const gchar *format; if (audiocontext->bitdepth == 32) @@ -5389,6 +5300,7 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * *codec_name = g_strdup_printf ("Raw %d-bit floating-point audio", audiocontext->bitdepth); context->alignment = audiocontext->bitdepth / 8; + context->alignment = round_up_pow2 (context->alignment); } else if (!strncmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_AC3, strlen (GST_MATROSKA_CODEC_ID_AUDIO_AC3))) { caps = gst_caps_new_simple ("audio/x-ac3", @@ -5427,6 +5339,9 @@ gst_matroska_demux_audio_caps (GstMatroskaTrackAudioContext * context->codec_priv_size); /* FIXME: mark stream as broken and skip if there are no stream headers */ context->send_stream_headers = TRUE; + } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_OPUS)) { + caps = gst_caps_new_empty_simple ("audio/x-opus"); + *codec_name = g_strdup ("Opus"); } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_AUDIO_ACM)) { gst_riff_strf_auds auds; diff --git a/gst/matroska/matroska-ids.c b/gst/matroska/matroska-ids.c index da8f82bda..60ebd0eb2 100644 --- a/gst/matroska/matroska-ids.c +++ b/gst/matroska/matroska-ids.c @@ -266,3 +266,38 @@ gst_matroska_parse_flac_stream_headers (gpointer codec_data, } return list; } + +void +gst_matroska_track_free (GstMatroskaTrackContext * track) +{ + g_free (track->codec_id); + g_free (track->codec_name); + g_free (track->name); + g_free (track->language); + g_free (track->codec_priv); + g_free (track->codec_state); + + if (track->encodings != NULL) { + int i; + + for (i = 0; i < track->encodings->len; ++i) { + GstMatroskaTrackEncoding *enc = &g_array_index (track->encodings, + GstMatroskaTrackEncoding, + i); + + g_free (enc->comp_settings); + } + g_array_free (track->encodings, TRUE); + } + + if (track->pending_tags) + gst_tag_list_unref (track->pending_tags); + + if (track->index_table) + g_array_free (track->index_table, TRUE); + + if (track->stream_headers) + gst_buffer_list_unref (track->stream_headers); + + g_free (track); +} diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h index f19a6d2f5..f7eea2b55 100644 --- a/gst/matroska/matroska-ids.h +++ b/gst/matroska/matroska-ids.h @@ -346,6 +346,7 @@ #define GST_MATROSKA_CODEC_ID_VIDEO_DIRAC "V_DIRAC" #define GST_MATROSKA_CODEC_ID_VIDEO_VP8 "V_VP8" #define GST_MATROSKA_CODEC_ID_VIDEO_VP9 "V_VP9" +#define GST_MATROSKA_CODEC_ID_VIDEO_MPEGH_HEVC "V_MPEGH/ISO/HEVC" #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L1 "A_MPEG/L1" #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L2 "A_MPEG/L2" @@ -377,6 +378,7 @@ #define GST_MATROSKA_CODEC_ID_AUDIO_AAC_MPEG4 "A_AAC/MPEG4/" #define GST_MATROSKA_CODEC_ID_AUDIO_QUICKTIME_QDMC "A_QUICKTIME/QDMC" #define GST_MATROSKA_CODEC_ID_AUDIO_QUICKTIME_QDM2 "A_QUICKTIME/QDM2" +#define GST_MATROSKA_CODEC_ID_AUDIO_OPUS "A_OPUS" /* Undefined for now: #define GST_MATROSKA_CODEC_ID_AUDIO_MPC "A_MPC" */ @@ -641,5 +643,6 @@ GstBufferList * gst_matroska_parse_speex_stream_headers (gpointer codec_data, GstBufferList * gst_matroska_parse_flac_stream_headers (gpointer codec_data, gsize codec_data_size); +void gst_matroska_track_free (GstMatroskaTrackContext * track); #endif /* __GST_MATROSKA_IDS_H__ */ diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c index e6ab40743..1009bd3ab 100644 --- a/gst/matroska/matroska-mux.c +++ b/gst/matroska/matroska-mux.c @@ -103,6 +103,8 @@ static GstStaticPadTemplate videosink_templ = COMMON_VIDEO_CAPS "; " "video/x-h264, stream-format=avc, alignment=au, " COMMON_VIDEO_CAPS "; " + "video/x-h265, stream-format=hvc1, alignment=au, " + COMMON_VIDEO_CAPS "; " "video/x-divx, " COMMON_VIDEO_CAPS "; " "video/x-huffyuv, " @@ -124,7 +126,7 @@ static GstStaticPadTemplate videosink_templ = "video/x-vp8, " COMMON_VIDEO_CAPS "; " "video/x-raw, " - "format = (string) { YUY2, I420, YV12, UYVY, AYUV }, " + "format = (string) { YUY2, I420, YV12, UYVY, AYUV, GRAY8, BGR, RGB }, " COMMON_VIDEO_CAPS "; " "video/x-wmv, " "wmvversion = (int) [ 1, 3 ], " COMMON_VIDEO_CAPS) ); @@ -158,6 +160,7 @@ static GstStaticPadTemplate audiosink_templ = COMMON_AUDIO_CAPS "; " "audio/x-flac, " COMMON_AUDIO_CAPS "; " + "audio/x-opus; " "audio/x-speex, " COMMON_AUDIO_CAPS "; " "audio/x-raw, " @@ -175,7 +178,13 @@ static GstStaticPadTemplate audiosink_templ = "audio/x-alaw, " "channels = (int) {1, 2}, " "rate = (int) [ 8000, 192000 ]; " "audio/x-mulaw, " - "channels = (int) {1, 2}, " "rate = (int) [ 8000, 192000 ]") + "channels = (int) {1, 2}, " "rate = (int) [ 8000, 192000 ]; " + "audio/x-adpcm, " + "layout = (string)dvi, " + "block_align = (int)[64, 8192], " + "channels = (int) { 1, 2 }, " "rate = (int) [ 8000, 96000 ]; " + "audio/x-adpcm, " + "layout = (string)g726, " "channels = (int)1," "rate = (int)8000; ") ); static GstStaticPadTemplate subtitlesink_templ = @@ -188,9 +197,6 @@ static GstStaticPadTemplate subtitlesink_templ = "application/x-subtitle-unknown") ); -static GArray *used_uids; -G_LOCK_DEFINE_STATIC (used_uids); - static gpointer parent_class; /* NULL */ /* Matroska muxer destructor */ @@ -225,7 +231,7 @@ static void gst_matroska_mux_get_property (GObject * object, static void gst_matroska_mux_reset (GstElement * element); /* uid generation */ -static guint64 gst_matroska_mux_create_uid (); +static guint64 gst_matroska_mux_create_uid (GstMatroskaMux * mux); static gboolean theora_streamheader_to_codecdata (const GValue * streamheader, GstMatroskaTrackContext * context); @@ -469,6 +475,9 @@ gst_matroska_mux_init (GstMatroskaMux * mux, gpointer g_class) mux->num_t_streams = 0; mux->num_v_streams = 0; + /* create used uid list */ + mux->used_uids = g_array_sized_new (FALSE, FALSE, sizeof (guint64), 10); + /* initialize remaining variables */ gst_matroska_mux_reset (GST_ELEMENT (mux)); } @@ -492,41 +501,38 @@ gst_matroska_mux_finalize (GObject * object) if (mux->writing_app) g_free (mux->writing_app); + g_array_free (mux->used_uids, TRUE); + G_OBJECT_CLASS (parent_class)->finalize (object); } /** * gst_matroska_mux_create_uid: + * @mux: #GstMatroskaMux to generate UID for. * * Generate new unused track UID. * * Returns: New track UID. */ static guint64 -gst_matroska_mux_create_uid (void) +gst_matroska_mux_create_uid (GstMatroskaMux * mux) { guint64 uid = 0; - G_LOCK (used_uids); - - if (!used_uids) - used_uids = g_array_sized_new (FALSE, FALSE, sizeof (guint64), 10); - while (!uid) { guint i; uid = (((guint64) g_random_int ()) << 32) | g_random_int (); - for (i = 0; i < used_uids->len; i++) { - if (g_array_index (used_uids, guint64, i) == uid) { + for (i = 0; i < mux->used_uids->len; i++) { + if (g_array_index (mux->used_uids, guint64, i) == uid) { uid = 0; break; } } - g_array_append_val (used_uids, uid); + g_array_append_val (mux->used_uids, uid); } - G_UNLOCK (used_uids); return uid; } @@ -668,6 +674,11 @@ gst_matroska_mux_reset (GstElement * element) gst_toc_setter_reset (GST_TOC_SETTER (mux)); mux->chapters_pos = 0; + + /* clear used uids */ + if (mux->used_uids->len > 0) { + g_array_remove_range (mux->used_uids, 0, mux->used_uids->len); + } } /** @@ -841,7 +852,8 @@ gst_matroska_mux_handle_sink_event (GstCollectPads * pads, event = NULL; break; } - case GST_EVENT_CUSTOM_DOWNSTREAM:{ + case GST_EVENT_CUSTOM_DOWNSTREAM: + case GST_EVENT_CUSTOM_DOWNSTREAM_STICKY:{ const GstStructure *structure; structure = gst_event_get_structure (event); @@ -867,7 +879,7 @@ gst_matroska_mux_handle_sink_event (GstCollectPads * pads, if (!gst_structure_get_int (structure, name, &value)) { GST_ERROR_OBJECT (mux, "dvd-spu-clut-change event did not " "contain %s field", name); - break; + goto break_hard; } clut[i] = value; } @@ -881,6 +893,7 @@ gst_matroska_mux_handle_sink_event (GstCollectPads * pads, break; } +break_hard: if (event != NULL) return gst_collect_pads_event_default (pads, data, event, FALSE); @@ -1011,6 +1024,12 @@ skip_details: fstr = gst_structure_get_string (structure, "format"); if (fstr && strlen (fstr) == 4) videocontext->fourcc = GST_STR_FOURCC (fstr); + else if (!strcmp (fstr, "GRAY8")) + videocontext->fourcc = GST_MAKE_FOURCC ('Y', '8', '0', '0'); + else if (!strcmp (fstr, "BGR")) + videocontext->fourcc = GST_MAKE_FOURCC ('B', 'G', 'R', 24); + else if (!strcmp (fstr, "RGB")) + videocontext->fourcc = GST_MAKE_FOURCC ('R', 'G', 'B', 24); } else if (!strcmp (mimetype, "video/x-huffyuv") /* MS/VfW compatibility cases */ ||!strcmp (mimetype, "video/x-divx") || !strcmp (mimetype, "video/x-dv") @@ -1115,6 +1134,16 @@ skip_details: context->codec_priv = g_malloc0 (context->codec_priv_size); gst_buffer_extract (codec_buf, 0, context->codec_priv, -1); } + } else if (!strcmp (mimetype, "video/x-h265")) { + gst_matroska_mux_set_codec_id (context, + GST_MATROSKA_CODEC_ID_VIDEO_MPEGH_HEVC); + gst_matroska_mux_free_codec_priv (context); + /* Create hvcC header */ + if (codec_buf != NULL) { + context->codec_priv_size = gst_buffer_get_size (codec_buf); + context->codec_priv = g_malloc0 (context->codec_priv_size); + gst_buffer_extract (codec_buf, 0, context->codec_priv, -1); + } } else if (!strcmp (mimetype, "video/x-theora")) { const GValue *streamheader; @@ -1388,7 +1417,7 @@ theora_streamheader_to_codecdata (const GValue * streamheader, hdr += 4 + 4; par_num = GST_READ_UINT32_BE (hdr) >> 8; par_denom = GST_READ_UINT32_BE (hdr + 3) >> 8; - if (par_num > 0 && par_num > 0) { + if (par_num > 0 && par_denom > 0) { if (par_num > par_denom) { videocontext->display_width = videocontext->pixel_width * par_num / par_denom; @@ -1814,6 +1843,8 @@ gst_matroska_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps) ("speex stream headers missing or malformed")); goto refuse_caps; } + } else if (!strcmp (mimetype, "audio/x-opus")) { + gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_AUDIO_OPUS); } else if (!strcmp (mimetype, "audio/x-ac3")) { gst_matroska_mux_set_codec_id (context, GST_MATROSKA_CODEC_ID_AUDIO_AC3); } else if (!strcmp (mimetype, "audio/x-eac3")) { @@ -1872,7 +1903,8 @@ gst_matroska_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps) } else if (!strcmp (mimetype, "audio/x-wma") || !strcmp (mimetype, "audio/x-alaw") - || !strcmp (mimetype, "audio/x-mulaw")) { + || !strcmp (mimetype, "audio/x-mulaw") + || !strcmp (mimetype, "audio/x-adpcm")) { guint8 *codec_priv; guint codec_priv_size; guint16 format = 0; @@ -1923,6 +1955,33 @@ gst_matroska_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps) block_align = channels; bitrate = block_align * samplerate; + } else if (!strcmp (mimetype, "audio/x-adpcm")) { + const char *layout; + + layout = gst_structure_get_string (structure, "layout"); + if (!layout) { + GST_WARNING_OBJECT (mux, "Missing layout on adpcm caps"); + goto refuse_caps; + } + + if (!gst_structure_get_int (structure, "block_align", &block_align)) { + GST_WARNING_OBJECT (mux, "Missing block_align on adpcm caps"); + goto refuse_caps; + } + + if (!strcmp (layout, "dvi")) { + format = GST_RIFF_WAVE_FORMAT_DVI_ADPCM; + } else if (!strcmp (layout, "g726")) { + format = GST_RIFF_WAVE_FORMAT_ITU_G726_ADPCM; + if (!gst_structure_get_int (structure, "bitrate", &bitrate)) { + GST_WARNING_OBJECT (mux, "Missing bitrate on adpcm g726 caps"); + goto refuse_caps; + } + } else { + GST_WARNING_OBJECT (mux, "Unknown layout on adpcm caps"); + goto refuse_caps; + } + } g_assert (format != 0); @@ -2257,7 +2316,7 @@ gst_matroska_mux_track_header (GstMatroskaMux * mux, gst_ebml_write_uint (ebml, GST_MATROSKA_ID_TRACKTYPE, context->type); gst_ebml_write_uint (ebml, GST_MATROSKA_ID_TRACKUID, - gst_matroska_mux_create_uid ()); + gst_matroska_mux_create_uid (mux)); if (context->default_duration) { gst_ebml_write_uint (ebml, GST_MATROSKA_ID_TRACKDEFAULTDURATION, context->default_duration); @@ -2466,7 +2525,6 @@ gst_matroska_mux_start (GstMatroskaMux * mux) }; const gchar *media_type; gboolean audio_only; - gboolean is_webm = FALSE; guint64 master, child; GSList *collected; int i; @@ -2507,13 +2565,9 @@ gst_matroska_mux_start (GstMatroskaMux * mux) g_snprintf (s_id, sizeof (s_id), "matroskamux-%08x", g_random_int ()); gst_pad_push_event (mux->srcpad, gst_event_new_stream_start (s_id)); - /* Are we muxing a WebM stream? */ - if (!strcmp (mux->doctype, GST_MATROSKA_DOCTYPE_WEBM)) { - is_webm = TRUE; - } /* output caps */ audio_only = mux->num_v_streams == 0 && mux->num_a_streams > 0; - if (is_webm) { + if (mux->is_webm) { media_type = (audio_only) ? "audio/webm" : "video/webm"; } else { media_type = (audio_only) ? "audio/x-matroska" : "video/x-matroska"; @@ -2573,7 +2627,7 @@ gst_matroska_mux_start (GstMatroskaMux * mux) master = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_SEGMENTINFO); /* WebM does not support SegmentUID field on SegmentInfo */ - if (!is_webm) { + if (!mux->is_webm) { for (i = 0; i < 4; i++) { segment_uid[i] = g_random_int (); } @@ -3427,7 +3481,7 @@ gst_matroska_mux_handle_buffer (GstCollectPads * pads, GstCollectData * data, /* if there is no best pad, we have reached EOS */ if (best == NULL) { - GST_DEBUG_OBJECT (mux, "No best pad finishing..."); + GST_DEBUG_OBJECT (mux, "No best pad. Finishing..."); if (!mux->streamable) { gst_matroska_mux_finish (mux); } else { diff --git a/gst/matroska/matroska-mux.h b/gst/matroska/matroska-mux.h index 7fea78dd2..31f4d5430 100644 --- a/gst/matroska/matroska-mux.h +++ b/gst/matroska/matroska-mux.h @@ -129,6 +129,12 @@ typedef struct _GstMatroskaMux { /* GstForceKeyUnit event */ GstEvent *force_key_unit_event; + + /* Flag to ease handling of WebM specifics */ + gboolean is_webm; + + /* used uids */ + GArray *used_uids; } GstMatroskaMux; typedef struct _GstMatroskaMuxClass { diff --git a/gst/matroska/matroska-parse.c b/gst/matroska/matroska-parse.c index 83b0d6384..c53bcf3fd 100644 --- a/gst/matroska/matroska-parse.c +++ b/gst/matroska/matroska-parse.c @@ -135,6 +135,8 @@ static GstIndex *gst_matroska_parse_get_index (GstElement * element); static void gst_matroska_parse_reset (GstElement * element); static gboolean perform_seek_to_offset (GstMatroskaParse * parse, guint64 offset); +static GstCaps *gst_matroska_parse_forge_caps (gboolean is_webm, + gboolean has_video); GType gst_matroska_parse_get_type (void); #define parent_class gst_matroska_parse_parent_class @@ -145,18 +147,7 @@ gst_matroska_parse_finalize (GObject * object) { GstMatroskaParse *parse = GST_MATROSKA_PARSE (object); - if (parse->common.src) { - g_ptr_array_free (parse->common.src, TRUE); - parse->common.src = NULL; - } - - if (parse->common.global_tags) { - gst_tag_list_unref (parse->common.global_tags); - parse->common.global_tags = NULL; - } - - g_object_unref (parse->common.adapter); - + gst_matroska_read_common_finalize (&parse->common); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -216,15 +207,8 @@ gst_matroska_parse_init (GstMatroskaParse * parse) gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad); - /* initial stream no. */ - parse->common.src = NULL; - - parse->common.writing_app = NULL; - parse->common.muxing_app = NULL; - parse->common.index = NULL; - parse->common.global_tags = NULL; - - parse->common.adapter = gst_adapter_new (); + /* init defaults for common read context */ + gst_matroska_read_common_init (&parse->common); GST_OBJECT_FLAG_SET (parse, GST_ELEMENT_FLAG_INDEXABLE); @@ -232,111 +216,29 @@ gst_matroska_parse_init (GstMatroskaParse * parse) gst_matroska_parse_reset (GST_ELEMENT (parse)); } -static void -gst_matroska_track_free (GstMatroskaTrackContext * track) -{ - g_free (track->codec_id); - g_free (track->codec_name); - g_free (track->name); - g_free (track->language); - g_free (track->codec_priv); - g_free (track->codec_state); - - if (track->encodings != NULL) { - int i; - - for (i = 0; i < track->encodings->len; ++i) { - GstMatroskaTrackEncoding *enc = &g_array_index (track->encodings, - GstMatroskaTrackEncoding, - i); - - g_free (enc->comp_settings); - } - g_array_free (track->encodings, TRUE); - } - - if (track->pending_tags) - gst_tag_list_unref (track->pending_tags); - - if (track->index_table) - g_array_free (track->index_table, TRUE); - - g_free (track); -} - -static void -gst_matroska_parse_free_parsed_el (gpointer mem, gpointer user_data) -{ - g_slice_free (guint64, mem); -} - static void gst_matroska_parse_reset (GstElement * element) { GstMatroskaParse *parse = GST_MATROSKA_PARSE (element); - guint i; GST_DEBUG_OBJECT (parse, "Resetting state"); - /* reset input */ - parse->common.state = GST_MATROSKA_READ_STATE_START; + gst_matroska_read_common_reset (GST_ELEMENT (parse), &parse->common); - /* clean up existing streams */ - if (parse->common.src) { - g_assert (parse->common.src->len == parse->common.num_streams); - for (i = 0; i < parse->common.src->len; i++) { - GstMatroskaTrackContext *context = g_ptr_array_index (parse->common.src, - i); - - gst_caps_replace (&context->caps, NULL); - gst_matroska_track_free (context); - } - g_ptr_array_free (parse->common.src, TRUE); - } - parse->common.src = g_ptr_array_new (); - - parse->common.num_streams = 0; parse->num_a_streams = 0; parse->num_t_streams = 0; parse->num_v_streams = 0; - /* reset media info */ - g_free (parse->common.writing_app); - parse->common.writing_app = NULL; - g_free (parse->common.muxing_app); - parse->common.muxing_app = NULL; - - /* reset indexes */ - if (parse->common.index) { - g_array_free (parse->common.index, TRUE); - parse->common.index = NULL; - } - - /* reset timers */ parse->clock = NULL; - parse->common.time_scale = 1000000; - parse->common.created = G_MININT64; - - parse->common.index_parsed = FALSE; parse->tracks_parsed = FALSE; - parse->common.segmentinfo_parsed = FALSE; - parse->common.attachments_parsed = FALSE; - - g_list_foreach (parse->common.tags_parsed, - (GFunc) gst_matroska_parse_free_parsed_el, NULL); - g_list_free (parse->common.tags_parsed); - parse->common.tags_parsed = NULL; g_list_foreach (parse->seek_parsed, - (GFunc) gst_matroska_parse_free_parsed_el, NULL); + (GFunc) gst_matroska_read_common_free_parsed_el, NULL); g_list_free (parse->seek_parsed); parse->seek_parsed = NULL; - gst_segment_init (&parse->common.segment, GST_FORMAT_TIME); parse->last_stop_end = GST_CLOCK_TIME_NONE; parse->seek_block = 0; - - parse->common.offset = 0; parse->cluster_time = GST_CLOCK_TIME_NONE; parse->cluster_offset = 0; parse->next_cluster_offset = 0; @@ -361,23 +263,6 @@ gst_matroska_parse_reset (GstElement * element) gst_event_unref (parse->new_segment); parse->new_segment = NULL; } -#if 0 - if (parse->common.element_index) { - gst_object_unref (parse->common.element_index); - parse->common.element_index = NULL; - } - parse->common.element_index_writer_id = -1; -#endif - - if (parse->common.global_tags) { - gst_tag_list_unref (parse->common.global_tags); - } - parse->common.global_tags = gst_tag_list_new_empty (); - - if (parse->common.cached_buffer) { - gst_buffer_unref (parse->common.cached_buffer); - parse->common.cached_buffer = NULL; - } if (parse->streamheader != NULL) { gst_buffer_unref (parse->streamheader); @@ -493,6 +378,7 @@ gst_matroska_parse_add_stream (GstMatroskaParse * parse, GstEbmlRead * ebml) switch (track_type) { case GST_MATROSKA_TRACK_TYPE_VIDEO: gst_matroska_track_init_video_context (&context); + parse->common.has_video = TRUE; break; case GST_MATROSKA_TRACK_TYPE_AUDIO: gst_matroska_track_init_audio_context (&context); @@ -1160,7 +1046,8 @@ gst_matroska_parse_query (GstMatroskaParse * parse, GstPad * pad, break; } default: - res = gst_pad_query_default (pad, (GstObject *) parse, query); + if (pad) + res = gst_pad_query_default (pad, (GstObject *) parse, query); break; } @@ -1222,6 +1109,7 @@ gst_matroska_parse_element_send_event (GstElement * element, GstEvent * event) return res; } +#if 0 /* searches for a cluster start from @pos, * return GST_FLOW_OK and cluster position in @pos if found */ static GstFlowReturn @@ -1319,7 +1207,7 @@ gst_matroska_parse_search_cluster (GstMatroskaParse * parse, gint64 * pos) *pos = newpos; return ret; } - +#endif static gboolean gst_matroska_parse_handle_seek_event (GstMatroskaParse * parse, @@ -2346,6 +2234,7 @@ gst_matroska_parse_check_read_size (GstMatroskaParse * parse, guint64 bytes) } } +#if 0 /* returns TRUE if we truely are in error state, and should give up */ static inline gboolean gst_matroska_parse_check_parse_error (GstMatroskaParse * parse) @@ -2366,6 +2255,7 @@ gst_matroska_parse_check_parse_error (GstMatroskaParse * parse) return FALSE; } } +#endif /* initializes @ebml with @bytes from input stream at current offset. * Returns EOS if insufficient available, @@ -2393,6 +2283,8 @@ gst_matroska_parse_take (GstMatroskaParse * parse, guint64 bytes, gst_ebml_read_init (ebml, GST_ELEMENT_CAST (parse), buffer, parse->common.offset); parse->common.offset += bytes; + } else { + ret = GST_FLOW_ERROR; } exit: return ret; @@ -2526,10 +2418,10 @@ gst_matroska_parse_output (GstMatroskaParse * parse, GstBuffer * buffer, GstBuffer *buf; caps = gst_pad_get_current_caps (parse->common.sinkpad); - /* FIXME: could run typefinding over header and pick better default */ - if (caps == NULL) - caps = gst_caps_new_empty_simple ("video/x-matroska"); - else + if (caps == NULL) { + caps = gst_matroska_parse_forge_caps (parse->common.is_webm, + parse->common.has_video); + } else caps = gst_caps_make_writable (caps); s = gst_caps_get_structure (caps, 0); @@ -3037,6 +2929,31 @@ perform_seek_to_offset (GstMatroskaParse * parse, guint64 offset) return res; } +/* + * Forge empty default caps when all we know is the stream's EBML + * type and whether it has video or not. + * + * FIXME: Do something with video/x-matroska-3d if possible + */ +static GstCaps * +gst_matroska_parse_forge_caps (gboolean is_webm, gboolean has_video) +{ + GstCaps *caps; + + if (is_webm) { + if (has_video) + caps = gst_caps_new_empty_simple ("video/webm"); + else + caps = gst_caps_new_empty_simple ("audio/webm"); + } else { + if (has_video) + caps = gst_caps_new_empty_simple ("video/x-matroska"); + else + caps = gst_caps_new_empty_simple ("audio/x-matroska"); + } + return caps; +} + static GstFlowReturn gst_matroska_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) { diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c index 2530479c4..da7072071 100644 --- a/gst/matroska/matroska-read-common.c +++ b/gst/matroska/matroska-read-common.c @@ -44,6 +44,7 @@ #include "ebml-read.h" #include "matroska-read-common.h" +#include "matroska-ids.h" GST_DEBUG_CATEGORY (matroskareadcommon_debug); #define GST_CAT_DEFAULT matroskareadcommon_debug @@ -1302,6 +1303,8 @@ exit: if (version <= 2) { if (doctype) { GST_INFO_OBJECT (common, "Input is %s version %d", doctype, version); + if (!strcmp (doctype, GST_MATROSKA_DOCTYPE_WEBM)) + common->is_webm = TRUE; } else { GST_WARNING_OBJECT (common, "Input is EBML without doctype, assuming " "matroska (version %d)", version); @@ -2661,7 +2664,7 @@ gst_matroska_read_common_read_track_encoding (GstMatroskaReadCommon * common, if ((ret = gst_ebml_read_uint (ebml, &id, &num)) != GST_FLOW_OK) break; - if (num > 7 && num == 0) { + if (num > 7 || num == 0) { GST_ERROR_OBJECT (common, "Invalid ContentEncodingScope %" G_GUINT64_FORMAT, num); ret = GST_FLOW_ERROR; @@ -2821,6 +2824,123 @@ gst_matroska_read_common_read_track_encodings (GstMatroskaReadCommon * common, return gst_matroska_decode_content_encodings (context->encodings); } +void +gst_matroska_read_common_free_parsed_el (gpointer mem, gpointer user_data) +{ + g_slice_free (guint64, mem); +} + +void +gst_matroska_read_common_init (GstMatroskaReadCommon * ctx) +{ + ctx->src = NULL; + ctx->writing_app = NULL; + ctx->muxing_app = NULL; + ctx->index = NULL; + ctx->global_tags = NULL; + ctx->adapter = gst_adapter_new (); +} + +void +gst_matroska_read_common_finalize (GstMatroskaReadCommon * ctx) +{ + if (ctx->src) { + g_ptr_array_free (ctx->src, TRUE); + ctx->src = NULL; + } + + if (ctx->global_tags) { + gst_tag_list_unref (ctx->global_tags); + ctx->global_tags = NULL; + } + + g_object_unref (ctx->adapter); +} + +void +gst_matroska_read_common_reset (GstElement * element, + GstMatroskaReadCommon * ctx) +{ + guint i; + + GST_LOG_OBJECT (ctx, "resetting read context"); + + /* reset input */ + ctx->state = GST_MATROSKA_READ_STATE_START; + + /* clean up existing streams if any */ + if (ctx->src) { + g_assert (ctx->src->len == ctx->num_streams); + for (i = 0; i < ctx->src->len; i++) { + GstMatroskaTrackContext *context = g_ptr_array_index (ctx->src, i); + + if (context->pad != NULL) + gst_element_remove_pad (element, context->pad); + + gst_caps_replace (&context->caps, NULL); + gst_matroska_track_free (context); + } + g_ptr_array_free (ctx->src, TRUE); + } + ctx->src = g_ptr_array_new (); + ctx->num_streams = 0; + + /* reset media info */ + g_free (ctx->writing_app); + ctx->writing_app = NULL; + g_free (ctx->muxing_app); + ctx->muxing_app = NULL; + + /* reset stream type */ + ctx->is_webm = FALSE; + ctx->has_video = FALSE; + + /* reset indexes */ + if (ctx->index) { + g_array_free (ctx->index, TRUE); + ctx->index = NULL; + } + + /* reset timers */ + ctx->time_scale = 1000000; + ctx->created = G_MININT64; + + /* cues/tracks/segmentinfo */ + ctx->index_parsed = FALSE; + ctx->segmentinfo_parsed = FALSE; + ctx->attachments_parsed = FALSE; + ctx->chapters_parsed = FALSE; + + /* tags */ + g_list_foreach (ctx->tags_parsed, + (GFunc) gst_matroska_read_common_free_parsed_el, NULL); + g_list_free (ctx->tags_parsed); + ctx->tags_parsed = NULL; + if (ctx->global_tags) { + gst_tag_list_unref (ctx->global_tags); + } + ctx->global_tags = gst_tag_list_new_empty (); + gst_tag_list_set_scope (ctx->global_tags, GST_TAG_SCOPE_GLOBAL); + + gst_segment_init (&ctx->segment, GST_FORMAT_TIME); + ctx->offset = 0; + + if (ctx->cached_buffer) { + if (ctx->cached_data) { + gst_buffer_unmap (ctx->cached_buffer, &ctx->cached_map); + ctx->cached_data = NULL; + } + gst_buffer_unref (ctx->cached_buffer); + ctx->cached_buffer = NULL; + } + + /* free chapters TOC if any */ + if (ctx->toc) { + gst_toc_unref (ctx->toc); + ctx->toc = NULL; + } +} + /* call with object lock held */ void gst_matroska_read_common_reset_streams (GstMatroskaReadCommon * common, diff --git a/gst/matroska/matroska-read-common.h b/gst/matroska/matroska-read-common.h index 10054b0c9..be0329648 100644 --- a/gst/matroska/matroska-read-common.h +++ b/gst/matroska/matroska-read-common.h @@ -61,6 +61,9 @@ typedef struct _GstMatroskaReadCommon { /* state */ GstMatroskaReadState state; + /* stream type */ + gboolean is_webm; + gboolean has_video; /* did we parse cues/tracks/segmentinfo already? */ gboolean index_parsed; @@ -141,6 +144,11 @@ GstFlowReturn gst_matroska_read_common_read_track_encodings ( GstMatroskaTrackContext * context); void gst_matroska_read_common_reset_streams (GstMatroskaReadCommon * common, GstClockTime time, gboolean full); +void gst_matroska_read_common_free_parsed_el (gpointer mem, gpointer user_data); +void gst_matroska_read_common_init (GstMatroskaReadCommon * ctx); +void gst_matroska_read_common_finalize (GstMatroskaReadCommon * ctx); +void gst_matroska_read_common_reset (GstElement * element, + GstMatroskaReadCommon * ctx); gboolean gst_matroska_read_common_tracknumber_unique (GstMatroskaReadCommon * common, guint64 num); diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c index 19aa24577..2b83b6c1b 100644 --- a/gst/matroska/webm-mux.c +++ b/gst/matroska/webm-mux.c @@ -97,4 +97,5 @@ static void gst_webm_mux_init (GstWebMMux * mux) { GST_MATROSKA_MUX (mux)->doctype = GST_MATROSKA_DOCTYPE_WEBM; + GST_MATROSKA_MUX (mux)->is_webm = TRUE; } diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in index 23f17f6ae..86f0d9b72 100644 --- a/gst/monoscope/Makefile.in +++ b/gst/monoscope/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in index 4cb6663ae..878e345fd 100644 --- a/gst/multifile/Makefile.in +++ b/gst/multifile/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -492,7 +490,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c index eed57160d..eb896f2d8 100644 --- a/gst/multifile/gstmultifilesink.c +++ b/gst/multifile/gstmultifilesink.c @@ -103,8 +103,6 @@ * gst-launch-1.0 videotestsrc ! multifilesink post-messages=true filename="frame%d" * ]| * </refsect2> - * - * Last reviewed on 2009-09-11 (0.10.17) */ #ifdef HAVE_CONFIG_H @@ -217,22 +215,18 @@ gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass) 0, G_MAXINT, DEFAULT_INDEX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstMultiFileSink:post-messages + * GstMultiFileSink:post-messages: * * Post a message on the GstBus for each file. - * - * Since: 0.10.17 */ g_object_class_install_property (gobject_class, PROP_POST_MESSAGES, g_param_spec_boolean ("post-messages", "Post Messages", "Post a message for each file with information of the buffer", DEFAULT_POST_MESSAGES, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstMultiFileSink:next-file + * GstMultiFileSink:next-file: * * When to start a new file. - * - * Since: 0.10.17 */ g_object_class_install_property (gobject_class, PROP_NEXT_FILE, g_param_spec_enum ("next-file", "Next File", @@ -242,12 +236,10 @@ gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass) /** - * GstMultiFileSink:max-files + * GstMultiFileSink:max-files: * * Maximum number of files to keep on disk. Once the maximum is reached, old * files start to be deleted to make room for new ones. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_MAX_FILES, g_param_spec_uint ("max-files", "Max files", @@ -257,11 +249,9 @@ gst_multi_file_sink_class_init (GstMultiFileSinkClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstMultiFileSink:max-file-size + * GstMultiFileSink:max-file-size: * * Maximum file size before starting a new file in max-size mode. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_MAX_FILE_SIZE, g_param_spec_uint64 ("max-file-size", "Maximum File Size", diff --git a/gst/multifile/gstmultifilesink.h b/gst/multifile/gstmultifilesink.h index 22c6d128c..0907370e9 100644 --- a/gst/multifile/gstmultifilesink.h +++ b/gst/multifile/gstmultifilesink.h @@ -59,9 +59,9 @@ typedef struct _GstMultiFileSinkClass GstMultiFileSinkClass; * @GST_MULTI_FILE_SINK_NEXT_KEY_FRAME: New file at each key frame * (Useful for MPEG-TS segmenting) * @GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT: New file after a force key unit - * event (Since: 0.10.31) + * event * @GST_MULTI_FILE_SINK_NEXT_MAX_SIZE: New file when the configured maximum file - * size would be exceeded with the next buffer or buffer list (Since: 0.10.31) + * size would be exceeded with the next buffer or buffer list * * File splitting modes. */ diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c index 63f9583dc..c1c1cf1c4 100644 --- a/gst/multifile/gstmultifilesrc.c +++ b/gst/multifile/gstmultifilesrc.c @@ -88,6 +88,50 @@ enum G_DEFINE_TYPE (GstMultiFileSrc, gst_multi_file_src, GST_TYPE_PUSH_SRC); +static gboolean +is_seekable (GstBaseSrc * src) +{ + GstMultiFileSrc *mfs = GST_MULTI_FILE_SRC (src); + + if (mfs->fps_n != -1) + return TRUE; + + return FALSE; +} + +static gboolean +do_seek (GstBaseSrc * bsrc, GstSegment * segment) +{ + gboolean reverse; + GstClockTime position; + GstMultiFileSrc *src; + + src = GST_MULTI_FILE_SRC (bsrc); + + segment->time = segment->start; + position = segment->position; + reverse = segment->rate < 0; + + if (reverse) { + GST_FIXME_OBJECT (src, "Handle reverse playback"); + + return FALSE; + } + + /* now move to the position indicated */ + if (src->fps_n) { + src->index = gst_util_uint64_scale (position, + src->fps_n, src->fps_d * GST_SECOND); + } else { + src->index = 0; + GST_WARNING_OBJECT (src, "No FPS set, can not seek"); + + return FALSE; + } + + return TRUE; +} + static void gst_multi_file_src_class_init (GstMultiFileSrcClass * klass) { @@ -136,6 +180,8 @@ gst_multi_file_src_class_init (GstMultiFileSrcClass * klass) gstbasesrc_class->get_caps = gst_multi_file_src_getcaps; gstbasesrc_class->query = gst_multi_file_src_query; + gstbasesrc_class->is_seekable = is_seekable; + gstbasesrc_class->do_seek = do_seek; gstpushsrc_class->create = gst_multi_file_src_create; @@ -158,6 +204,8 @@ gst_multi_file_src_init (GstMultiFileSrc * multifilesrc) multifilesrc->stop_index = -1; multifilesrc->filename = g_strdup (DEFAULT_LOCATION); multifilesrc->successful_read = FALSE; + multifilesrc->fps_n = multifilesrc->fps_d = -1; + } static void @@ -261,6 +309,7 @@ gst_multi_file_src_set_property (GObject * object, guint prop_id, break; case ARG_CAPS: { + GstStructure *st = NULL; const GstCaps *caps = gst_value_get_caps (value); GstCaps *new_caps; @@ -271,6 +320,17 @@ gst_multi_file_src_set_property (GObject * object, guint prop_id, } gst_caps_replace (&src->caps, new_caps); gst_pad_set_caps (GST_BASE_SRC_PAD (src), new_caps); + + if (new_caps && gst_caps_get_size (new_caps) == 1 && + (st = gst_caps_get_structure (new_caps, 0)) + && gst_structure_get_fraction (st, "framerate", &src->fps_n, + &src->fps_d)) { + GST_INFO_OBJECT (src, "Seting framerate to %d/%d", src->fps_n, + src->fps_d); + } else { + src->fps_n = -1; + src->fps_d = -1; + } } break; case ARG_LOOP: diff --git a/gst/multifile/gstmultifilesrc.h b/gst/multifile/gstmultifilesrc.h index ac43fe989..65b97301d 100644 --- a/gst/multifile/gstmultifilesrc.h +++ b/gst/multifile/gstmultifilesrc.h @@ -56,6 +56,8 @@ struct _GstMultiFileSrc GstCaps *caps; gboolean successful_read; + + gint fps_n, fps_d; }; struct _GstMultiFileSrcClass diff --git a/gst/multifile/gstsplitfilesrc.c b/gst/multifile/gstsplitfilesrc.c index f0bc980bc..98621aed4 100644 --- a/gst/multifile/gstsplitfilesrc.c +++ b/gst/multifile/gstsplitfilesrc.c @@ -38,8 +38,6 @@ * gst-launch-1.0 playbin uri="splitfile://path/to/foo.avi.*" * ]| Plays the different parts as if they were one single AVI file. * </refsect2> - * - * Since: 0.10.31 */ #ifdef HAVE_CONFIG_H diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in index c026a398a..9a3d8f3f0 100644 --- a/gst/multipart/Makefile.in +++ b/gst/multipart/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/multipart/multipartdemux.c b/gst/multipart/multipartdemux.c index c247f1b55..7ba880c6a 100644 --- a/gst/multipart/multipartdemux.c +++ b/gst/multipart/multipartdemux.c @@ -140,13 +140,11 @@ gst_multipart_demux_class_init (GstMultipartDemuxClass * klass) G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); /** - * GstMultipartDemux::single-stream: + * GstMultipartDemux:single-stream: * * Assume that there is only one stream whose content-type will * not change and emit no-more-pads as soon as the first boundary * content is parsed, decoded, and pads are linked. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_SINGLE_STREAM, g_param_spec_boolean ("single-stream", "Single Stream", diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in index 8067c7d8a..1111c8d82 100644 --- a/gst/replaygain/Makefile.in +++ b/gst/replaygain/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -491,7 +489,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/replaygain/gstrganalysis.c b/gst/replaygain/gstrganalysis.c index 3e87953a8..98c3ca628 100644 --- a/gst/replaygain/gstrganalysis.c +++ b/gst/replaygain/gstrganalysis.c @@ -39,9 +39,9 @@ * their output since they generally save metadata in the file header. * Therefore, it is often necessary that applications read the results in a bus * event handler for the tag message. Obtaining the values this way is always - * needed for <link linkend="GstRgAnalysis--num-tracks">album processing</link> - * since the album gain and peak values need to be associated with all tracks of - * an album, not just the last one. + * needed for album processing (see #GstRgAnalysis:num-tracks property) since + * the album gain and peak values need to be associated with all tracks of an + * album, not just the last one. * * <refsect2> * <title>Example launch lines</title> diff --git a/gst/replaygain/gstrgvolume.c b/gst/replaygain/gstrgvolume.c index 05c21e0de..d88d5db9a 100644 --- a/gst/replaygain/gstrgvolume.c +++ b/gst/replaygain/gstrgvolume.c @@ -162,8 +162,7 @@ gst_rg_volume_class_init (GstRgVolumeClass * klass) * * If album mode is enabled but the album gain tag is absent in the stream, * the track gain is used instead. If both gain tags are missing, the value - * of the <link linkend="GstRgVolume--fallback-gain">fallback-gain</link> - * property is used instead. + * of the #GstRgVolume:fallback-gain property is used instead. */ g_object_class_install_property (gobject_class, PROP_ALBUM_MODE, g_param_spec_boolean ("album-mode", "Album mode", @@ -223,24 +222,22 @@ gst_rg_volume_class_init (GstRgVolumeClass * klass) * * Applied gain [dB]. This gain is applied to processed buffer data. * - * This is set to the <link linkend="GstRgVolume--target-gain">target - * gain</link> if amplification by that amount can be applied safely. - * "Safely" means that the volume adjustment does not inflict clipping - * distortion. Should this not be the case, the result gain is set to an - * appropriately reduced value (by applying peak normalization). The proposed - * standard calls this "clipping prevention". + * This is set to the #GstRgVolume:target-gain if amplification by that amount + * can be applied safely. "Safely" means that the volume adjustment does not + * inflict clipping distortion. Should this not be the case, the result gain + * is set to an appropriately reduced value (by applying peak normalization). + * The proposed standard calls this "clipping prevention". * * The difference between target and result gain reflects the necessary amount * of reduction. Applications can make use of this information to temporarily - * reduce the <link linkend="GstRgVolume--pre-amp">pre-amp</link> for - * subsequent streams, as recommended by the ReplayGain standard. + * reduce the #GstRgVolume:pre-amp for subsequent streams, as recommended by + * the ReplayGain standard. * * Note that target and result gain differing for a great majority of streams * indicates a problem: What happens in this case is that most streams receive * peak normalization instead of amplification by the ideal replay gain. To - * prevent this, the <link linkend="GstRgVolume--pre-amp">pre-amp</link> has - * to be lowered and/or a limiter has to be used which facilitates the use of - * <link linkend="GstRgVolume--headroom">headroom</link>. + * prevent this, the #GstRgVolume:pre-amp has to be lowered and/or a limiter + * has to be used which facilitates the use of #GstRgVolume:headroom. */ g_object_class_install_property (gobject_class, PROP_RESULT_GAIN, g_param_spec_double ("result-gain", "Result-gain", "Applied gain [dB]", @@ -250,18 +247,14 @@ gst_rg_volume_class_init (GstRgVolumeClass * klass) * * Applicable gain [dB]. This gain is supposed to be applied. * - * Depending on the value of the <link - * linkend="GstRgVolume--album-mode">album-mode</link> property and the + * Depending on the value of the #GstRgVolume:album-mode property and the * presence of ReplayGain tags in the stream, this is set according to one of * these simple formulas: * * <itemizedlist> - * <listitem><link linkend="GstRgVolume--pre-amp">pre-amp</link> + album gain - * of the stream</listitem> - * <listitem><link linkend="GstRgVolume--pre-amp">pre-amp</link> + track gain - * of the stream</listitem> - * <listitem><link linkend="GstRgVolume--pre-amp">pre-amp</link> + <link - * linkend="GstRgVolume--fallback-gain">fallback gain</link></listitem> + * <listitem>#GstRgVolume:pre-amp + album gain of the stream</listitem> + * <listitem>#GstRgVolume:pre-amp + track gain of the stream</listitem> + * <listitem>#GstRgVolume:pre-amp + #GstRgVolume:fallback-gain</listitem> * </itemizedlist> */ g_object_class_install_property (gobject_class, PROP_TARGET_GAIN, diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am index b863e01be..b4a621b17 100644 --- a/gst/rtp/Makefile.am +++ b/gst/rtp/Makefile.am @@ -78,7 +78,9 @@ libgstrtp_la_SOURCES = \ gstrtpvp8depay.c \ gstrtpvp8pay.c \ gstrtpvrawdepay.c \ - gstrtpvrawpay.c + gstrtpvrawpay.c \ + gstrtpstreampay.c \ + gstrtpstreamdepay.c libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \ @@ -173,7 +175,9 @@ noinst_HEADERS = \ gstrtpvp8depay.h \ gstrtpvp8pay.h \ gstrtpvrawdepay.h \ - gstrtpvrawpay.h + gstrtpvrawpay.h \ + gstrtpstreampay.h \ + gstrtpstreamdepay.h EXTRA_DIST = dboolhuff.LICENSE diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in index f10d51ae9..00bb06044 100644 --- a/gst/rtp/Makefile.in +++ b/gst/rtp/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -201,7 +199,8 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-dboolhuff.lo \ libgstrtp_la-gstrtpvorbisdepay.lo \ libgstrtp_la-gstrtpvorbispay.lo libgstrtp_la-gstrtpvp8depay.lo \ libgstrtp_la-gstrtpvp8pay.lo libgstrtp_la-gstrtpvrawdepay.lo \ - libgstrtp_la-gstrtpvrawpay.lo + libgstrtp_la-gstrtpvrawpay.lo libgstrtp_la-gstrtpstreampay.lo \ + libgstrtp_la-gstrtpstreamdepay.lo libgstrtp_la_OBJECTS = $(am_libgstrtp_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -531,7 +530,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -679,7 +677,9 @@ libgstrtp_la_SOURCES = \ gstrtpvp8depay.c \ gstrtpvp8pay.c \ gstrtpvrawdepay.c \ - gstrtpvrawpay.c + gstrtpvrawpay.c \ + gstrtpstreampay.c \ + gstrtpstreamdepay.c libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \ $(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \ @@ -774,7 +774,9 @@ noinst_HEADERS = \ gstrtpvp8depay.h \ gstrtpvp8pay.h \ gstrtpvrawdepay.h \ - gstrtpvrawpay.h + gstrtpvrawpay.h \ + gstrtpstreampay.h \ + gstrtpstreamdepay.h EXTRA_DIST = dboolhuff.LICENSE all: all-am @@ -925,6 +927,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsirenpay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpspeexdepay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpspeexpay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpstreampay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtptheorapay.Plo@am__quote@ @@ -1505,6 +1509,20 @@ libgstrtp_la-gstrtpvrawpay.lo: gstrtpvrawpay.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-gstrtpvrawpay.lo `test -f 'gstrtpvrawpay.c' || echo '$(srcdir)/'`gstrtpvrawpay.c +libgstrtp_la-gstrtpstreampay.lo: gstrtpstreampay.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-gstrtpstreampay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpstreampay.Tpo -c -o libgstrtp_la-gstrtpstreampay.lo `test -f 'gstrtpstreampay.c' || echo '$(srcdir)/'`gstrtpstreampay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpstreampay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpstreampay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpstreampay.c' object='libgstrtp_la-gstrtpstreampay.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-gstrtpstreampay.lo `test -f 'gstrtpstreampay.c' || echo '$(srcdir)/'`gstrtpstreampay.c + +libgstrtp_la-gstrtpstreamdepay.lo: gstrtpstreamdepay.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-gstrtpstreamdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Tpo -c -o libgstrtp_la-gstrtpstreamdepay.lo `test -f 'gstrtpstreamdepay.c' || echo '$(srcdir)/'`gstrtpstreamdepay.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpstreamdepay.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpstreamdepay.c' object='libgstrtp_la-gstrtpstreamdepay.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-gstrtpstreamdepay.lo `test -f 'gstrtpstreamdepay.c' || echo '$(srcdir)/'`gstrtpstreamdepay.c + mostlyclean-libtool: -rm -f *.lo diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c index 893dafdef..a3cbccd0c 100644 --- a/gst/rtp/gstrtp.c +++ b/gst/rtp/gstrtp.c @@ -97,6 +97,8 @@ #include "gstrtpvp8pay.h" #include "gstrtpvrawdepay.h" #include "gstrtpvrawpay.h" +#include "gstrtpstreampay.h" +#include "gstrtpstreamdepay.h" static gboolean plugin_init (GstPlugin * plugin) @@ -325,6 +327,12 @@ plugin_init (GstPlugin * plugin) if (!gst_rtp_vraw_pay_plugin_init (plugin)) return FALSE; + if (!gst_rtp_stream_pay_plugin_init (plugin)) + return FALSE; + + if (!gst_rtp_stream_depay_plugin_init (plugin)) + return FALSE; + return TRUE; } diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c index 7e96d9dd6..5bbbedc18 100644 --- a/gst/rtp/gstrtpL16depay.c +++ b/gst/rtp/gstrtpL16depay.c @@ -31,8 +31,6 @@ * ]| This example pipeline will depayload an RTP raw audio stream. Refer to * the rtpL16pay example to create the RTP stream. * </refsect2> - * - * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpL16pay.c b/gst/rtp/gstrtpL16pay.c index 4a101ee1d..5d92c25e8 100644 --- a/gst/rtp/gstrtpL16pay.c +++ b/gst/rtp/gstrtpL16pay.c @@ -31,8 +31,6 @@ * ]| This example pipeline will payload raw audio. Refer to * the rtpL16depay example to depayload and play the RTP stream. * </refsect2> - * - * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c index fc79b5d90..e8a05c932 100644 --- a/gst/rtp/gstrtpac3depay.c +++ b/gst/rtp/gstrtpac3depay.c @@ -31,8 +31,6 @@ * ]| This example pipeline will depayload and decode an RTP AC3 stream. Refer to * the rtpac3pay example to create the RTP stream. * </refsect2> - * - * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H @@ -124,53 +122,6 @@ gst_rtp_ac3_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps) return res; } -struct frmsize_s -{ - guint16 bit_rate; - guint16 frm_size[3]; -}; - -static const struct frmsize_s frmsizecod_tbl[] = { - {32, {64, 69, 96}}, - {32, {64, 70, 96}}, - {40, {80, 87, 120}}, - {40, {80, 88, 120}}, - {48, {96, 104, 144}}, - {48, {96, 105, 144}}, - {56, {112, 121, 168}}, - {56, {112, 122, 168}}, - {64, {128, 139, 192}}, - {64, {128, 140, 192}}, - {80, {160, 174, 240}}, - {80, {160, 175, 240}}, - {96, {192, 208, 288}}, - {96, {192, 209, 288}}, - {112, {224, 243, 336}}, - {112, {224, 244, 336}}, - {128, {256, 278, 384}}, - {128, {256, 279, 384}}, - {160, {320, 348, 480}}, - {160, {320, 349, 480}}, - {192, {384, 417, 576}}, - {192, {384, 418, 576}}, - {224, {448, 487, 672}}, - {224, {448, 488, 672}}, - {256, {512, 557, 768}}, - {256, {512, 558, 768}}, - {320, {640, 696, 960}}, - {320, {640, 697, 960}}, - {384, {768, 835, 1152}}, - {384, {768, 836, 1152}}, - {448, {896, 975, 1344}}, - {448, {896, 976, 1344}}, - {512, {1024, 1114, 1536}}, - {512, {1024, 1115, 1536}}, - {576, {1152, 1253, 1728}}, - {576, {1152, 1254, 1728}}, - {640, {1280, 1393, 1920}}, - {640, {1280, 1394, 1920}} -}; - static GstBuffer * gst_rtp_ac3_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) { diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c index 175d62722..a6ef9140a 100644 --- a/gst/rtp/gstrtpac3pay.c +++ b/gst/rtp/gstrtpac3pay.c @@ -31,8 +31,6 @@ * ]| This example pipeline will encode and payload AC3 stream. Refer to * the rtpac3depay example to depayload and decode the RTP stream. * </refsect2> - * - * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c index 4c6b7224c..1156ac925 100644 --- a/gst/rtp/gstrtpamrdepay.c +++ b/gst/rtp/gstrtpamrdepay.c @@ -31,8 +31,6 @@ * ]| This example pipeline will depayload and decode an RTP AMR stream. Refer to * the rtpamrpay example to create the RTP stream. * </refsect2> - * - * Last reviewed on 2013-04-25 (1.1.0) */ /* diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c index defc7f4ba..ed319cc03 100644 --- a/gst/rtp/gstrtpamrpay.c +++ b/gst/rtp/gstrtpamrpay.c @@ -31,8 +31,6 @@ * ]| This example pipeline will encode and payload an AMR stream. Refer to * the rtpamrdepay example to depayload and decode the RTP stream. * </refsect2> - * - * Last reviewed on 2013-04-25 (1.1.0) */ /* references: diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c index 7b85558d4..13efebb2a 100644 --- a/gst/rtp/gstrtpbvdepay.c +++ b/gst/rtp/gstrtpbvdepay.c @@ -23,8 +23,6 @@ * * Extract BroadcomVoice audio from RTP packets according to RFC 4298. * For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt - * - * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpbvpay.c b/gst/rtp/gstrtpbvpay.c index be12b38d0..15a7b7f85 100644 --- a/gst/rtp/gstrtpbvpay.c +++ b/gst/rtp/gstrtpbvpay.c @@ -23,8 +23,6 @@ * * Payload BroadcomVoice audio into RTP packets according to RFC 4298. * For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt - * - * Last reviewed on 2013-04-25 (1.1.0) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c index 669654c25..016cefe90 100644 --- a/gst/rtp/gstrtpgstpay.c +++ b/gst/rtp/gstrtpgstpay.c @@ -411,6 +411,9 @@ gst_rtp_gst_pay_send_caps (GstRtpGSTPay * rtpgstpay, guint8 cv, GstCaps * caps) guint capslen; GstBuffer *outbuf; + if (rtpgstpay->flags & (1 << 7)) + return; + capsstr = gst_caps_to_string (caps); capslen = strlen (capsstr); /* for 0 byte */ diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c index 953379d73..5fb15cebe 100644 --- a/gst/rtp/gstrtph264pay.c +++ b/gst/rtp/gstrtph264pay.c @@ -711,6 +711,7 @@ gst_rtp_h264_pay_send_sps_pps (GstRTPBasePayload * basepayload, GstRtpH264Pay * rtph264pay, GstClockTime dts, GstClockTime pts) { GstFlowReturn ret = GST_FLOW_OK; + gboolean sent_all_sps_pps = TRUE; guint i; for (i = 0; i < rtph264pay->sps->len; i++) { @@ -722,8 +723,10 @@ gst_rtp_h264_pay_send_sps_pps (GstRTPBasePayload * basepayload, ret = gst_rtp_h264_pay_payload_nal (basepayload, gst_buffer_ref (sps_buf), dts, pts, FALSE); /* Not critical here; but throw a warning */ - if (ret != GST_FLOW_OK) + if (ret != GST_FLOW_OK) { + sent_all_sps_pps = FALSE; GST_WARNING ("Problem pushing SPS"); + } } for (i = 0; i < rtph264pay->pps->len; i++) { GstBuffer *pps_buf = @@ -734,11 +737,13 @@ gst_rtp_h264_pay_send_sps_pps (GstRTPBasePayload * basepayload, ret = gst_rtp_h264_pay_payload_nal (basepayload, gst_buffer_ref (pps_buf), dts, pts, FALSE); /* Not critical here; but throw a warning */ - if (ret != GST_FLOW_OK) + if (ret != GST_FLOW_OK) { + sent_all_sps_pps = FALSE; GST_WARNING ("Problem pushing PPS"); + } } - if (pts != -1) + if (pts != -1 && sent_all_sps_pps) rtph264pay->last_spspps = pts; return ret; @@ -750,6 +755,7 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload, { GstRtpH264Pay *rtph264pay; GstFlowReturn ret; + guint8 nalHeader; guint8 nalType; guint packet_len, payload_len, mtu; GstBuffer *outbuf; @@ -762,8 +768,8 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload, rtph264pay = GST_RTP_H264_PAY (basepayload); mtu = GST_RTP_BASE_PAYLOAD_MTU (rtph264pay); - gst_buffer_extract (paybuf, 0, &nalType, 1); - nalType &= 0x1f; + gst_buffer_extract (paybuf, 0, &nalHeader, 1); + nalType = nalHeader & 0x1f; GST_DEBUG_OBJECT (rtph264pay, "Processing Buffer with NAL TYPE=%d", nalType); @@ -852,14 +858,12 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload, ret = gst_rtp_base_payload_push_list (basepayload, list); } else { /* fragmentation Units FU-A */ - guint8 nalHeader; guint limitedSize; int ii = 0, start = 1, end = 0, pos = 0; GST_DEBUG_OBJECT (basepayload, "NAL Unit DOES NOT fit in one packet datasize=%d mtu=%d", size, mtu); - gst_buffer_extract (paybuf, 0, &nalHeader, 1); pos++; size--; @@ -1217,6 +1221,10 @@ gst_rtp_h264_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event) gst_rtp_h264_pay_handle_buffer (payload, NULL); break; } + case GST_EVENT_STREAM_START: + GST_DEBUG_OBJECT (rtph264pay, "New stream detected => Clear SPS and PPS"); + gst_rtp_h264_pay_clear_sps_pps (rtph264pay); + break; default: break; } @@ -1237,6 +1245,10 @@ gst_rtp_h264_pay_change_state (GstElement * element, GstStateChange transition) rtph264pay->send_spspps = FALSE; gst_adapter_clear (rtph264pay->adapter); break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + rtph264pay->last_spspps = -1; + gst_rtp_h264_pay_clear_sps_pps (rtph264pay); + break; default: break; } diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c index 04d010492..5463283e7 100644 --- a/gst/rtp/gstrtpjpegdepay.c +++ b/gst/rtp/gstrtpjpegdepay.c @@ -665,6 +665,12 @@ gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) goto no_qtable; } } + + /* I think we can get here with a NULL qtable, so make sure we don't + go dereferencing it in MakeHeaders if we do */ + if (!qtable) + goto no_qtable; + /* max header length, should be big enough */ outbuf = gst_buffer_new_and_alloc (1000); gst_buffer_map (outbuf, &map, GST_MAP_WRITE); diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c index acb65e4ca..b52451c82 100644 --- a/gst/rtp/gstrtpqcelpdepay.c +++ b/gst/rtp/gstrtpqcelpdepay.c @@ -113,9 +113,6 @@ gst_rtp_qcelp_depay_class_init (GstRtpQCELPDepayClass * klass) static void gst_rtp_qcelp_depay_init (GstRtpQCELPDepay * rtpqcelpdepay) { - GstRTPBaseDepayload G_GNUC_UNUSED *depayload; - - depayload = GST_RTP_BASE_DEPAYLOAD (rtpqcelpdepay); } static void diff --git a/gst/rtp/gstrtpqdmdepay.c b/gst/rtp/gstrtpqdmdepay.c index f854ab14b..ba85018ea 100644 --- a/gst/rtp/gstrtpqdmdepay.c +++ b/gst/rtp/gstrtpqdmdepay.c @@ -185,9 +185,7 @@ flush_data (GstRtpQDM2Depay * depay) gst_adapter_push (depay->adapter, buf); - if (pack->data) { - pack->data = NULL; - } + pack->data = NULL; } } diff --git a/gst/rtp/gstrtpstreamdepay.c b/gst/rtp/gstrtpstreamdepay.c new file mode 100644 index 000000000..26a2e3287 --- /dev/null +++ b/gst/rtp/gstrtpstreamdepay.c @@ -0,0 +1,219 @@ +/* GStreamer + * Copyright (C) 2013 Sebastian Dröge <sebastian@centricular.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-rtpstreamdepay + * + * Implements stream depayloading of RTP and RTCP packets for connection-oriented + * transport protocols according to RFC4571. + * <refsect2> + * <title>Example launch line</title> + * |[ + * gst-launch-1.0 audiotestsrc ! "audio/x-raw,rate=48000" ! vorbisenc ! rtpvorbispay config-interval=1 ! rtpstreampay ! tcpserversink port=5678 + * gst-launch-1.0 tcpclientsrc port=5678 host=127.0.0.1 do-timestamp=true ! "application/x-rtp-stream,media=audio,clock-rate=48000,encoding-name=VORBIS" ! rtpstreamdepay ! rtpvorbisdepay ! decodebin ! audioconvert ! audioresample ! autoaudiosink + * ]| + * </refsect2> + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstrtpstreamdepay.h" + +GST_DEBUG_CATEGORY (gst_rtp_stream_depay_debug); +#define GST_CAT_DEFAULT gst_rtp_stream_depay_debug + +static GstStaticPadTemplate src_template = + GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp; application/x-rtcp;" + "application/x-srtp; application/x-srtcp") + ); + +static GstStaticPadTemplate sink_template = + GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp-stream; application/x-rtcp-stream;" + "application/x-srtp-stream; application/x-srtcp-stream") + ); + +#define parent_class gst_rtp_stream_depay_parent_class +G_DEFINE_TYPE (GstRtpStreamDepay, gst_rtp_stream_depay, GST_TYPE_BASE_PARSE); + +static gboolean gst_rtp_stream_depay_set_sink_caps (GstBaseParse * parse, + GstCaps * caps); +static GstCaps *gst_rtp_stream_depay_get_sink_caps (GstBaseParse * parse, + GstCaps * filter); +static GstFlowReturn gst_rtp_stream_depay_handle_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, gint * skipsize); + +static void +gst_rtp_stream_depay_class_init (GstRtpStreamDepayClass * klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass); + + GST_DEBUG_CATEGORY_INIT (gst_rtp_stream_depay_debug, "rtpstreamdepay", 0, + "RTP stream depayloader"); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sink_template)); + + gst_element_class_set_static_metadata (gstelement_class, + "RTP Stream Depayloading", "Codec/Depayloader/Network", + "Depayloads RTP/RTCP packets for streaming protocols according to RFC4571", + "Sebastian Dröge <sebastian@centricular.com>"); + + parse_class->set_sink_caps = + GST_DEBUG_FUNCPTR (gst_rtp_stream_depay_set_sink_caps); + parse_class->get_sink_caps = + GST_DEBUG_FUNCPTR (gst_rtp_stream_depay_get_sink_caps); + parse_class->handle_frame = + GST_DEBUG_FUNCPTR (gst_rtp_stream_depay_handle_frame); +} + +static void +gst_rtp_stream_depay_init (GstRtpStreamDepay * self) +{ + gst_base_parse_set_min_frame_size (GST_BASE_PARSE (self), 2); +} + +static gboolean +gst_rtp_stream_depay_set_sink_caps (GstBaseParse * parse, GstCaps * caps) +{ + GstCaps *othercaps; + GstStructure *structure; + gboolean ret; + + othercaps = gst_caps_copy (caps); + structure = gst_caps_get_structure (othercaps, 0); + + if (gst_structure_has_name (structure, "application/x-rtp-stream")) + gst_structure_set_name (structure, "application/x-rtp"); + else if (gst_structure_has_name (structure, "application/x-rtcp-stream")) + gst_structure_set_name (structure, "application/x-rtcp"); + else if (gst_structure_has_name (structure, "application/x-srtp-stream")) + gst_structure_set_name (structure, "application/x-srtp"); + else + gst_structure_set_name (structure, "application/x-srtcp"); + + ret = gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), othercaps); + gst_caps_unref (othercaps); + + return ret; +} + +static GstCaps * +gst_rtp_stream_depay_get_sink_caps (GstBaseParse * parse, GstCaps * filter) +{ + GstCaps *peerfilter = NULL, *peercaps, *templ; + GstCaps *res; + GstStructure *structure; + guint i, n; + + if (filter) { + peerfilter = gst_caps_copy (filter); + n = gst_caps_get_size (peerfilter); + for (i = 0; i < n; i++) { + structure = gst_caps_get_structure (peerfilter, i); + + if (gst_structure_has_name (structure, "application/x-rtp-stream")) + gst_structure_set_name (structure, "application/x-rtp"); + else if (gst_structure_has_name (structure, "application/x-rtcp-stream")) + gst_structure_set_name (structure, "application/x-rtcp"); + else if (gst_structure_has_name (structure, "application/x-srtp-stream")) + gst_structure_set_name (structure, "application/x-srtp"); + else + gst_structure_set_name (structure, "application/x-srtcp"); + } + } + + templ = gst_pad_get_pad_template_caps (GST_BASE_PARSE_SINK_PAD (parse)); + peercaps = + gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (parse), peerfilter); + + if (peercaps) { + /* Rename structure names */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + structure = gst_caps_get_structure (peercaps, i); + + if (gst_structure_has_name (structure, "application/x-rtp")) + gst_structure_set_name (structure, "application/x-rtp-stream"); + else if (gst_structure_has_name (structure, "application/x-rtcp")) + gst_structure_set_name (structure, "application/x-rtcp-stream"); + else if (gst_structure_has_name (structure, "application/x-srtp")) + gst_structure_set_name (structure, "application/x-srtp-stream"); + else + gst_structure_set_name (structure, "application/x-srtcp-stream"); + } + + res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = templ; + } + + if (filter) { + GstCaps *intersection; + + intersection = + gst_caps_intersect_full (filter, res, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (res); + res = intersection; + + gst_caps_unref (peerfilter); + } + + return res; +} + +static GstFlowReturn +gst_rtp_stream_depay_handle_frame (GstBaseParse * parse, + GstBaseParseFrame * frame, gint * skipsize) +{ + gsize buf_size; + guint16 size; + + if (gst_buffer_extract (frame->buffer, 0, &size, 2) != 2) + return GST_FLOW_ERROR; + + size = GUINT16_FROM_BE (size); + buf_size = gst_buffer_get_size (frame->buffer); + + /* Need more data */ + if (size + 2 > buf_size) + return GST_FLOW_OK; + + frame->out_buffer = + gst_buffer_copy_region (frame->buffer, GST_BUFFER_COPY_ALL, 2, size); + + return gst_base_parse_finish_frame (parse, frame, size + 2); +} + +gboolean +gst_rtp_stream_depay_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpstreamdepay", + GST_RANK_NONE, GST_TYPE_RTP_STREAM_DEPAY); +} diff --git a/gst/rtp/gstrtpstreamdepay.h b/gst/rtp/gstrtpstreamdepay.h new file mode 100644 index 000000000..b6011cb55 --- /dev/null +++ b/gst/rtp/gstrtpstreamdepay.h @@ -0,0 +1,57 @@ +/* GStreamer + * Copyright (C) 2013 Sebastian Dröge <sebastian@centricular.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_STREAM_DEPAY_H__ +#define __GST_RTP_STREAM_DEPAY_H__ + +#include <gst/gst.h> +#include <gst/base/gstbaseparse.h> + +G_BEGIN_DECLS + +#define GST_TYPE_RTP_STREAM_DEPAY \ + (gst_rtp_stream_depay_get_type()) +#define GST_RTP_STREAM_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_STREAM_DEPAY,GstRtpStreamDepay)) +#define GST_RTP_STREAM_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_STREAM_DEPAY,GstRtpStreamDepayClass)) +#define GST_IS_RTP_STREAM_DEPAY(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_STREAM_DEPAY)) +#define GST_IS_RTP_STREAM_DEPAY_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_STREAM_DEPAY)) + +typedef struct _GstRtpStreamDepay GstRtpStreamDepay; +typedef struct _GstRtpStreamDepayClass GstRtpStreamDepayClass; + +struct _GstRtpStreamDepay +{ + GstBaseParse parent; +}; + +struct _GstRtpStreamDepayClass +{ + GstBaseParseClass parent_class; +}; + +GType gst_rtp_stream_depay_get_type (void); +gboolean gst_rtp_stream_depay_plugin_init (GstPlugin * plugin); + +G_END_DECLS + +#endif diff --git a/gst/rtp/gstrtpstreampay.c b/gst/rtp/gstrtpstreampay.c new file mode 100644 index 000000000..117f67830 --- /dev/null +++ b/gst/rtp/gstrtpstreampay.c @@ -0,0 +1,287 @@ +/* + * GStreamer + * Copyright (C) 2013 Sebastian Dröge <sebastian@centricular.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-rtpstreampay + * + * Implements stream payloading of RTP and RTCP packets for connection-oriented + * transport protocols according to RFC4571. + * <refsect2> + * <title>Example launch line</title> + * |[ + * gst-launch-1.0 audiotestsrc ! "audio/x-raw,rate=48000" ! vorbisenc ! rtpvorbispay config-interval=1 ! rtpstreampay ! tcpserversink port=5678 + * gst-launch-1.0 tcpclientsrc port=5678 host=127.0.0.1 do-timestamp=true ! "application/x-rtp-stream,media=audio,clock-rate=48000,encoding-name=VORBIS" ! rtpstreamdepay ! rtpvorbisdepay ! decodebin ! audioconvert ! audioresample ! autoaudiosink + * ]| + * </refsect2> + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstrtpstreampay.h" + +#define GST_CAT_DEFAULT gst_rtp_stream_pay_debug +GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp; application/x-rtcp; " + "application/x-srtp; application/x-srtcp") + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp-stream; application/x-rtcp-stream; " + "application/x-srtp-stream; application/x-srtcp-stream") + ); + +#define parent_class gst_rtp_stream_pay_parent_class +G_DEFINE_TYPE (GstRtpStreamPay, gst_rtp_stream_pay, GST_TYPE_ELEMENT); + +static gboolean gst_rtp_stream_pay_sink_query (GstPad * pad, GstObject * parent, + GstQuery * query); +static GstFlowReturn gst_rtp_stream_pay_sink_chain (GstPad * pad, + GstObject * parent, GstBuffer * inbuf); +static gboolean gst_rtp_stream_pay_sink_event (GstPad * pad, GstObject * parent, + GstEvent * event); + +static void +gst_rtp_stream_pay_class_init (GstRtpStreamPayClass * klass) +{ + GstElementClass *gstelement_class; + + GST_DEBUG_CATEGORY_INIT (gst_rtp_stream_pay_debug, "rtpstreampay", 0, + "RTP stream payloader"); + + gstelement_class = (GstElementClass *) klass; + + gst_element_class_set_static_metadata (gstelement_class, + "RTP Stream Payloading", "Codec/Payloader/Network", + "Payloads RTP/RTCP packets for streaming protocols according to RFC4571", + "Sebastian Dröge <sebastian@centricular.com>"); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sink_template)); +} + +static void +gst_rtp_stream_pay_init (GstRtpStreamPay * self) +{ + self->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_chain_function (self->sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_stream_pay_sink_chain)); + gst_pad_set_event_function (self->sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_stream_pay_sink_event)); + gst_pad_set_query_function (self->sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_stream_pay_sink_query)); + gst_element_add_pad (GST_ELEMENT (self), self->sinkpad); + + self->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_use_fixed_caps (self->srcpad); + gst_element_add_pad (GST_ELEMENT (self), self->srcpad); +} + +static GstCaps * +gst_rtp_stream_pay_sink_get_caps (GstRtpStreamPay * self, GstCaps * filter) +{ + GstCaps *peerfilter = NULL, *peercaps, *templ; + GstCaps *res; + GstStructure *structure; + guint i, n; + + if (filter) { + peerfilter = gst_caps_copy (filter); + n = gst_caps_get_size (peerfilter); + for (i = 0; i < n; i++) { + structure = gst_caps_get_structure (peerfilter, i); + + if (gst_structure_has_name (structure, "application/x-rtp")) + gst_structure_set_name (structure, "application/x-rtp-stream"); + else if (gst_structure_has_name (structure, "application/x-rtcp")) + gst_structure_set_name (structure, "application/x-rtcp-stream"); + else if (gst_structure_has_name (structure, "application/x-srtp")) + gst_structure_set_name (structure, "application/x-srtp-stream"); + else + gst_structure_set_name (structure, "application/x-srtcp-stream"); + } + } + + templ = gst_pad_get_pad_template_caps (self->sinkpad); + peercaps = gst_pad_peer_query_caps (self->srcpad, peerfilter); + + if (peercaps) { + /* Rename structure names */ + peercaps = gst_caps_make_writable (peercaps); + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + structure = gst_caps_get_structure (peercaps, i); + + if (gst_structure_has_name (structure, "application/x-rtp-stream")) + gst_structure_set_name (structure, "application/x-rtp"); + else if (gst_structure_has_name (structure, "application/x-rtcp-stream")) + gst_structure_set_name (structure, "application/x-rtcp"); + else if (gst_structure_has_name (structure, "application/x-srtp-stream")) + gst_structure_set_name (structure, "application/x-srtp"); + else + gst_structure_set_name (structure, "application/x-srtcp"); + } + + res = gst_caps_intersect_full (peercaps, templ, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (peercaps); + } else { + res = templ; + } + + if (filter) { + GstCaps *intersection; + + intersection = + gst_caps_intersect_full (filter, res, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (res); + res = intersection; + + gst_caps_unref (peerfilter); + } + + return res; +} + +static gboolean +gst_rtp_stream_pay_sink_query (GstPad * pad, GstObject * parent, + GstQuery * query) +{ + GstRtpStreamPay *self = GST_RTP_STREAM_PAY (parent); + gboolean ret; + + GST_LOG_OBJECT (pad, "Handling query of type '%s'", + gst_query_type_get_name (GST_QUERY_TYPE (query))); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS: + { + GstCaps *caps; + + gst_query_parse_caps (query, &caps); + caps = gst_rtp_stream_pay_sink_get_caps (self, caps); + gst_query_set_caps_result (query, caps); + gst_caps_unref (caps); + ret = TRUE; + break; + } + default: + ret = gst_pad_query_default (pad, parent, query); + } + + return ret; +} + +static gboolean +gst_rtp_stream_pay_sink_set_caps (GstRtpStreamPay * self, GstCaps * caps) +{ + GstCaps *othercaps; + GstStructure *structure; + gboolean ret; + + othercaps = gst_caps_copy (caps); + structure = gst_caps_get_structure (othercaps, 0); + + if (gst_structure_has_name (structure, "application/x-rtp")) + gst_structure_set_name (structure, "application/x-rtp-stream"); + else if (gst_structure_has_name (structure, "application/x-rtcp")) + gst_structure_set_name (structure, "application/x-rtcp-stream"); + else if (gst_structure_has_name (structure, "application/x-srtp")) + gst_structure_set_name (structure, "application/x-srtp-stream"); + else + gst_structure_set_name (structure, "application/x-srtcp-stream"); + + ret = gst_pad_set_caps (self->srcpad, othercaps); + gst_caps_unref (othercaps); + + return ret; +} + +static gboolean +gst_rtp_stream_pay_sink_event (GstPad * pad, GstObject * parent, + GstEvent * event) +{ + GstRtpStreamPay *self = GST_RTP_STREAM_PAY (parent); + gboolean ret; + + GST_LOG_OBJECT (pad, "Got %s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CAPS: + { + GstCaps *caps; + + gst_event_parse_caps (event, &caps); + ret = gst_rtp_stream_pay_sink_set_caps (self, caps); + gst_event_unref (event); + break; + } + default: + ret = gst_pad_event_default (pad, parent, event); + break; + } + + return ret; +} + +static GstFlowReturn +gst_rtp_stream_pay_sink_chain (GstPad * pad, GstObject * parent, + GstBuffer * inbuf) +{ + GstRtpStreamPay *self = GST_RTP_STREAM_PAY (parent); + GstBuffer *outbuf; + gsize size; + guint8 size16[2]; + + size = gst_buffer_get_size (inbuf); + if (size > G_MAXUINT16) { + GST_ELEMENT_ERROR (self, CORE, FAILED, (NULL), + ("Only buffers up to %d bytes supported, got %" G_GSIZE_FORMAT, + G_MAXUINT16, size)); + gst_buffer_unref (inbuf); + return GST_FLOW_ERROR; + } + + outbuf = gst_buffer_new_and_alloc (2); + + GST_WRITE_UINT16_BE (size16, size); + gst_buffer_fill (outbuf, 0, size16, 2); + + gst_buffer_copy_into (outbuf, inbuf, GST_BUFFER_COPY_ALL, 0, -1); + + gst_buffer_unref (inbuf); + + return gst_pad_push (self->srcpad, outbuf); +} + +gboolean +gst_rtp_stream_pay_plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "rtpstreampay", + GST_RANK_NONE, GST_TYPE_RTP_STREAM_PAY); +} diff --git a/gst/rtp/gstrtpstreampay.h b/gst/rtp/gstrtpstreampay.h new file mode 100644 index 000000000..a9436a8fd --- /dev/null +++ b/gst/rtp/gstrtpstreampay.h @@ -0,0 +1,54 @@ +/* + * GStreamer + * Copyright (C) 2013 Sebastian Dröge <sebastian@centricular.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_STREAM_PAY_H__ +#define __GST_RTP_STREAM_PAY_H__ + +#include <gst/gst.h> + +G_BEGIN_DECLS + +#define GST_TYPE_RTP_STREAM_PAY (gst_rtp_stream_pay_get_type()) +#define GST_RTP_STREAM_PAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_STREAM_PAY,GstRtpStreamPay)) +#define GST_IS_RTP_STREAM_PAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_STREAM_PAY)) +#define GST_RTP_STREAM_PAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_RTP_STREAM_PAY,GstRtpStreamPayClass)) +#define GST_IS_RTP_STREAM_PAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_RTP_STREAM_PAY)) +#define GST_RTP_STREAM_PAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_RTP_STREAM_PAY,GstRtpStreamPayClass)) + +typedef struct _GstRtpStreamPay GstRtpStreamPay; +typedef struct _GstRtpStreamPayClass GstRtpStreamPayClass; + +struct _GstRtpStreamPay { + GstElement parent; + + GstPad *srcpad, *sinkpad; +}; + +struct _GstRtpStreamPayClass { + GstElementClass parent_class; +}; + +GType gst_rtp_stream_pay_get_type (void); + +gboolean gst_rtp_stream_pay_plugin_init (GstPlugin * plugin); + +G_END_DECLS + +#endif /* __GST_RTP_STREAM_PAY_H__ */ diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c index 7e0021651..10055c0f4 100644 --- a/gst/rtp/gstrtptheorapay.c +++ b/gst/rtp/gstrtptheorapay.c @@ -507,6 +507,8 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload) configuration = g_base64_encode (config, configlen); /* store for later re-sending */ + if (rtptheorapay->config_data) + g_free (rtptheorapay->config_data); rtptheorapay->config_size = configlen - 4 - 3 - 2; rtptheorapay->config_data = g_malloc (rtptheorapay->config_size); rtptheorapay->config_extra_len = extralen; @@ -769,8 +771,14 @@ gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * basepayload, ret = GST_FLOW_OK; goto done; } else if (rtptheorapay->headers) { - if (!gst_rtp_theora_pay_finish_headers (basepayload)) - goto header_error; + if (rtptheorapay->need_headers) { + if (!gst_rtp_theora_pay_finish_headers (basepayload)) + goto header_error; + } else { + g_list_free_full (rtptheorapay->headers, + (GDestroyNotify) gst_buffer_unref); + rtptheorapay->headers = NULL; + } } /* there is a config request, see if we need to insert it */ diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c index 7272e127d..265479b7c 100644 --- a/gst/rtp/gstrtpvorbispay.c +++ b/gst/rtp/gstrtpvorbispay.c @@ -500,6 +500,8 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload) configuration = g_base64_encode (config, configlen); /* store for later re-sending */ + if (rtpvorbispay->config_data) + g_free (rtpvorbispay->config_data); rtpvorbispay->config_size = configlen - 4 - 3 - 2; rtpvorbispay->config_data = g_malloc (rtpvorbispay->config_size); rtpvorbispay->config_extra_len = extralen; @@ -759,8 +761,14 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload, ret = GST_FLOW_OK; goto done; } else if (rtpvorbispay->headers) { - if (!gst_rtp_vorbis_pay_finish_headers (basepayload)) - goto header_error; + if (rtpvorbispay->need_headers) { + if (!gst_rtp_vorbis_pay_finish_headers (basepayload)) + goto header_error; + } else { + g_list_free_full (rtpvorbispay->headers, + (GDestroyNotify) gst_buffer_unref); + rtpvorbispay->headers = NULL; + } } /* there is a config request, see if we need to insert it */ diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c index 7674122ee..9a2880262 100644 --- a/gst/rtp/gstrtpvrawdepay.c +++ b/gst/rtp/gstrtpvrawdepay.c @@ -309,7 +309,7 @@ static GstBuffer * gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) { GstRtpVRawDepay *rtpvrawdepay; - guint8 *payload, *yp, *up, *vp, *headers; + guint8 *payload, *p0, *yp, *up, *vp, *headers; guint32 timestamp; guint cont, ystride, uvstride, pgroup, payload_len; gint width, height, xinc, yinc; @@ -361,6 +361,7 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) goto invalid_frame; /* get pointer and strides of the planes */ + p0 = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0); yp = GST_VIDEO_FRAME_COMP_DATA (&frame, 0); up = GST_VIDEO_FRAME_COMP_DATA (&frame, 1); vp = GST_VIDEO_FRAME_COMP_DATA (&frame, 2); @@ -452,7 +453,7 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) case GST_VIDEO_FORMAT_UYVP: /* samples are packed just like gstreamer packs them */ offs /= xinc; - datap = yp + (line * ystride) + (offs * pgroup); + datap = p0 + (line * ystride) + (offs * pgroup); memcpy (datap, payload, plen); break; @@ -461,7 +462,7 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf) gint i; guint8 *p; - datap = yp + (line * ystride) + (offs * 4); + datap = p0 + (line * ystride) + (offs * 4); p = payload; /* samples are packed in order Cb-Y-Cr for both interlaced and diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c index f5b7b0da5..cade17861 100644 --- a/gst/rtp/gstrtpvrawpay.c +++ b/gst/rtp/gstrtpvrawpay.c @@ -152,6 +152,7 @@ gst_rtp_vraw_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps) case GST_VIDEO_FORMAT_RGB: samplingstr = "RGB"; pgroup = 3; + break; case GST_VIDEO_FORMAT_BGR: samplingstr = "BGR"; pgroup = 3; @@ -239,7 +240,7 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) GstRtpVRawPay *rtpvrawpay; GstFlowReturn ret = GST_FLOW_OK; guint line, offset; - guint8 *yp, *up, *vp; + guint8 *p0, *yp, *up, *vp; guint ystride, uvstride; guint pgroup; guint mtu; @@ -257,6 +258,7 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) gst_buffer_get_size (buffer)); /* get pointer and strides of the planes */ + p0 = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0); yp = GST_VIDEO_FRAME_COMP_DATA (&frame, 0); up = GST_VIDEO_FRAME_COMP_DATA (&frame, 1); vp = GST_VIDEO_FRAME_COMP_DATA (&frame, 2); @@ -329,6 +331,13 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) /* the headers start here */ headers = outdata; + /* make sure we can fit at least *one* header and pixel */ + if (!(left > (6 + pgroup))) { + gst_rtp_buffer_unmap (&rtp); + gst_buffer_unref (out); + goto too_small; + } + /* while we can fit at least one header and one pixel */ while (left > (6 + pgroup)) { /* we need a 6 bytes header */ @@ -411,7 +420,7 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) case GST_VIDEO_FORMAT_UYVY: case GST_VIDEO_FORMAT_UYVP: offs /= rtpvrawpay->xinc; - memcpy (outdata, yp + (lin * ystride) + (offs * pgroup), length); + memcpy (outdata, p0 + (lin * ystride) + (offs * pgroup), length); outdata += length; break; case GST_VIDEO_FORMAT_AYUV: @@ -419,7 +428,7 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) gint i; guint8 *datap; - datap = yp + (lin * ystride) + (offs * 4); + datap = p0 + (lin * ystride) + (offs * 4); for (i = 0; i < pixels; i++) { *outdata++ = datap[2]; @@ -514,6 +523,14 @@ unknown_sampling: gst_buffer_unref (buffer); return GST_FLOW_NOT_SUPPORTED; } +too_small: + { + GST_ELEMENT_ERROR (payload, RESOURCE, NO_SPACE_LEFT, + (NULL), ("not enough space to send at least one pixel")); + gst_video_frame_unmap (&frame); + gst_buffer_unref (buffer); + return GST_FLOW_NOT_SUPPORTED; + } } gboolean diff --git a/gst/rtpmanager/Makefile.am b/gst/rtpmanager/Makefile.am index 15f1abe56..bd8a1e3e7 100644 --- a/gst/rtpmanager/Makefile.am +++ b/gst/rtpmanager/Makefile.am @@ -1,8 +1,5 @@ plugin_LTLIBRARIES = libgstrtpmanager.la -# FIXME 0.11: ignore GValueArray warnings for now until this is sorted -ERROR_CFLAGS= - libgstrtpmanager_la_SOURCES = gstrtpmanager.c \ gstrtpbin.c \ gstrtpdtmfmux.c \ @@ -10,6 +7,8 @@ libgstrtpmanager_la_SOURCES = gstrtpmanager.c \ gstrtpmux.c \ gstrtpptdemux.c \ gstrtprtxqueue.c \ + gstrtprtxreceive.c \ + gstrtprtxsend.c \ gstrtpssrcdemux.c \ rtpjitterbuffer.c \ rtpsession.c \ @@ -24,6 +23,8 @@ noinst_HEADERS = gstrtpbin.h \ gstrtpptdemux.h \ gstrtpssrcdemux.h \ gstrtprtxqueue.h \ + gstrtprtxreceive.h \ + gstrtprtxsend.h \ rtpjitterbuffer.h \ rtpsession.h \ rtpsource.h \ diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in index 602cf8140..743fe2aef 100644 --- a/gst/rtpmanager/Makefile.in +++ b/gst/rtpmanager/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -163,6 +161,8 @@ am_libgstrtpmanager_la_OBJECTS = libgstrtpmanager_la-gstrtpmanager.lo \ libgstrtpmanager_la-gstrtpmux.lo \ libgstrtpmanager_la-gstrtpptdemux.lo \ libgstrtpmanager_la-gstrtprtxqueue.lo \ + libgstrtpmanager_la-gstrtprtxreceive.lo \ + libgstrtpmanager_la-gstrtprtxsend.lo \ libgstrtpmanager_la-gstrtpssrcdemux.lo \ libgstrtpmanager_la-rtpjitterbuffer.lo \ libgstrtpmanager_la-rtpsession.lo \ @@ -289,9 +289,7 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ - -# FIXME 0.11: ignore GValueArray warnings for now until this is sorted -ERROR_CFLAGS = +ERROR_CFLAGS = @ERROR_CFLAGS@ ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ ERROR_OBJCFLAGS = @ERROR_OBJCFLAGS@ EXEEXT = @EXEEXT@ @@ -500,7 +498,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -577,6 +574,8 @@ libgstrtpmanager_la_SOURCES = gstrtpmanager.c \ gstrtpmux.c \ gstrtpptdemux.c \ gstrtprtxqueue.c \ + gstrtprtxreceive.c \ + gstrtprtxsend.c \ gstrtpssrcdemux.c \ rtpjitterbuffer.c \ rtpsession.c \ @@ -591,6 +590,8 @@ noinst_HEADERS = gstrtpbin.h \ gstrtpptdemux.h \ gstrtpssrcdemux.h \ gstrtprtxqueue.h \ + gstrtprtxreceive.h \ + gstrtprtxsend.h \ rtpjitterbuffer.h \ rtpsession.h \ rtpsource.h \ @@ -692,6 +693,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpmux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpptdemux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtprtxqueue.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpsession.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtpmanager_la-rtpjitterbuffer.Plo@am__quote@ @@ -772,6 +775,20 @@ libgstrtpmanager_la-gstrtprtxqueue.lo: gstrtprtxqueue.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 $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtprtxqueue.lo `test -f 'gstrtprtxqueue.c' || echo '$(srcdir)/'`gstrtprtxqueue.c +libgstrtpmanager_la-gstrtprtxreceive.lo: gstrtprtxreceive.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtprtxreceive.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Tpo -c -o libgstrtpmanager_la-gstrtprtxreceive.lo `test -f 'gstrtprtxreceive.c' || echo '$(srcdir)/'`gstrtprtxreceive.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtprtxreceive.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtprtxreceive.c' object='libgstrtpmanager_la-gstrtprtxreceive.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 $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtprtxreceive.lo `test -f 'gstrtprtxreceive.c' || echo '$(srcdir)/'`gstrtprtxreceive.c + +libgstrtpmanager_la-gstrtprtxsend.lo: gstrtprtxsend.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtprtxsend.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Tpo -c -o libgstrtpmanager_la-gstrtprtxsend.lo `test -f 'gstrtprtxsend.c' || echo '$(srcdir)/'`gstrtprtxsend.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtprtxsend.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtprtxsend.c' object='libgstrtpmanager_la-gstrtprtxsend.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 $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -c -o libgstrtpmanager_la-gstrtprtxsend.lo `test -f 'gstrtprtxsend.c' || echo '$(srcdir)/'`gstrtprtxsend.c + libgstrtpmanager_la-gstrtpssrcdemux.lo: gstrtpssrcdemux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtpmanager_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtpmanager_la_CFLAGS) $(CFLAGS) -MT libgstrtpmanager_la-gstrtpssrcdemux.lo -MD -MP -MF $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Tpo -c -o libgstrtpmanager_la-gstrtpssrcdemux.lo `test -f 'gstrtpssrcdemux.c' || echo '$(srcdir)/'`gstrtpssrcdemux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Tpo $(DEPDIR)/libgstrtpmanager_la-gstrtpssrcdemux.Plo diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c index 97f9d8ed7..a087c462f 100644 --- a/gst/rtpmanager/gstrtpbin.c +++ b/gst/rtpmanager/gstrtpbin.c @@ -63,6 +63,28 @@ * RTPSession object which further provides action signals to retrieve the * internal source and other sources. * + * #GstRtpBin also has signals (#GstRtpBin::request-rtp-encoder, + * #GstRtpBin::request-rtp-decoder, #GstRtpBin::request-rtcp-encoder and + * #GstRtpBin::request-rtp-decoder) to dynamically request for RTP and RTCP encoders + * and decoders in order to support SRTP. The encoders must provide the pads + * rtp_sink_\%d and rtp_src_\%d for RTP and rtcp_sink_\%d and rtcp_src_\%d for + * RTCP. The session number will be used in the pad name. The decoders must provide + * rtp_sink and rtp_src for RTP and rtcp_sink and rtcp_src for RTCP. The decoders will + * be placed before the #GstRtpSession element, thus they must support SSRC demuxing + * internally. + * + * #GstRtpBin has signals (#GstRtpBin::request-aux-sender and + * #GstRtpBin::request-aux-receiver to dynamically request an element that can be + * used to create or merge additional RTP streams. AUX elements are needed to + * implement FEC or retransmission (such as RFC 4588). An AUX sender must have one + * sink_\%u pad that matches the sessionid in the signal and it should have 1 or + * more src_\%u pads. For each src_%\u pad, a session will be made (if needed) + * and the pad will be linked to the session send_rtp_sink pad. Each session will + * then expose its source pad ad send_rtp_src_\%u on #GstRtpBin. + * An AUX receiver has 1 src_\%u pad that much match the sessionid in the signal + * and 1 or more sink_\%u pads. A session will be made for each sink_\%u pad + * when the corresponding recv_rtp_sink_\%u pad is requested on #GstRtpBin. + * * <refsect2> * <title>Example pipelines</title> * |[ @@ -110,8 +132,6 @@ * Send RTCP reports for session 0 on port 5005 and RTCP reports for session 1 * on port 5007. * </refsect2> - * - * Last reviewed on 2007-08-30 (0.10.6) */ #ifdef HAVE_CONFIG_H @@ -135,17 +155,17 @@ GST_DEBUG_CATEGORY_STATIC (gst_rtp_bin_debug); /* sink pads */ static GstStaticPadTemplate rtpbin_recv_rtp_sink_template = -GST_STATIC_PAD_TEMPLATE ("recv_rtp_sink_%u", + GST_STATIC_PAD_TEMPLATE ("recv_rtp_sink_%u", GST_PAD_SINK, GST_PAD_REQUEST, - GST_STATIC_CAPS ("application/x-rtp") + GST_STATIC_CAPS ("application/x-rtp;application/x-srtp") ); static GstStaticPadTemplate rtpbin_recv_rtcp_sink_template = -GST_STATIC_PAD_TEMPLATE ("recv_rtcp_sink_%u", + GST_STATIC_PAD_TEMPLATE ("recv_rtcp_sink_%u", GST_PAD_SINK, GST_PAD_REQUEST, - GST_STATIC_CAPS ("application/x-rtcp") + GST_STATIC_CAPS ("application/x-rtcp;application/x-srtcp") ); static GstStaticPadTemplate rtpbin_send_rtp_sink_template = @@ -164,17 +184,17 @@ GST_STATIC_PAD_TEMPLATE ("recv_rtp_src_%u_%u_%u", ); static GstStaticPadTemplate rtpbin_send_rtcp_src_template = -GST_STATIC_PAD_TEMPLATE ("send_rtcp_src_%u", + GST_STATIC_PAD_TEMPLATE ("send_rtcp_src_%u", GST_PAD_SRC, GST_PAD_REQUEST, - GST_STATIC_CAPS ("application/x-rtcp") + GST_STATIC_CAPS ("application/x-rtcp;application/x-srtcp") ); static GstStaticPadTemplate rtpbin_send_rtp_src_template = -GST_STATIC_PAD_TEMPLATE ("send_rtp_src_%u", + GST_STATIC_PAD_TEMPLATE ("send_rtp_src_%u", GST_PAD_SRC, GST_PAD_SOMETIMES, - GST_STATIC_CAPS ("application/x-rtp") + GST_STATIC_CAPS ("application/x-rtp;application/x-srtp") ); #define GST_RTP_BIN_GET_PRIVATE(obj) \ @@ -217,6 +237,9 @@ struct _GstRtpBinPrivate /* UNIX (ntp) time of last SR sync used */ guint64 last_unix; + + /* list of extra elements */ + GList *elements; }; /* signals and args */ @@ -238,6 +261,17 @@ enum SIGNAL_ON_TIMEOUT, SIGNAL_ON_SENDER_TIMEOUT, SIGNAL_ON_NPT_STOP, + + SIGNAL_REQUEST_RTP_ENCODER, + SIGNAL_REQUEST_RTP_DECODER, + SIGNAL_REQUEST_RTCP_ENCODER, + SIGNAL_REQUEST_RTCP_DECODER, + + SIGNAL_NEW_JITTERBUFFER, + + SIGNAL_REQUEST_AUX_SENDER, + SIGNAL_REQUEST_AUX_RECEIVER, + LAST_SIGNAL }; @@ -387,6 +421,9 @@ struct _GstRtpBinSession /* list of GstRtpBinStream */ GSList *streams; + /* list of elements */ + GSList *elements; + /* mapping of payload type to caps */ GHashTable *ptmap; @@ -644,6 +681,51 @@ no_demux: } } +static gboolean +bin_manage_element (GstRtpBin * bin, GstElement * element) +{ + GstRtpBinPrivate *priv = bin->priv; + + if (g_list_find (priv->elements, element)) { + GST_DEBUG_OBJECT (bin, "requested element %p already in bin", element); + } else { + GST_DEBUG_OBJECT (bin, "adding requested element %p", element); + if (!gst_bin_add (GST_BIN_CAST (bin), element)) + goto add_failed; + if (!gst_element_sync_state_with_parent (element)) + GST_WARNING_OBJECT (bin, "unable to sync element state with rtpbin"); + } + /* we add the element multiple times, each we need an equal number of + * removes to really remove the element from the bin */ + priv->elements = g_list_prepend (priv->elements, element); + + return TRUE; + + /* ERRORS */ +add_failed: + { + GST_WARNING_OBJECT (bin, "unable to add element"); + return FALSE; + } +} + +static void +remove_bin_element (GstElement * element, GstRtpBin * bin) +{ + GstRtpBinPrivate *priv = bin->priv; + GList *find; + + find = g_list_find (priv->elements, element); + if (find) { + priv->elements = g_list_delete_link (priv->elements, find); + + if (!g_list_find (priv->elements, element)) + gst_bin_remove (GST_BIN_CAST (bin), element); + else + gst_object_unref (element); + } +} + /* called with RTP_BIN_LOCK */ static void free_session (GstRtpBinSession * sess, GstRtpBin * bin) @@ -664,6 +746,9 @@ free_session (GstRtpBinSession * sess, GstRtpBin * bin) gst_bin_remove (GST_BIN_CAST (bin), sess->session); gst_bin_remove (GST_BIN_CAST (bin), sess->demux); + g_slist_foreach (sess->elements, (GFunc) remove_bin_element, bin); + g_slist_free (sess->elements); + g_slist_foreach (sess->streams, (GFunc) free_stream, bin); g_slist_free (sess->streams); @@ -834,6 +919,20 @@ gst_rtp_bin_get_internal_session (GstRtpBin * bin, guint session_id) return internal_session; } +static GstElement * +gst_rtp_bin_request_encoder (GstRtpBin * bin, guint session_id) +{ + GST_DEBUG_OBJECT (bin, "return NULL encoder"); + return NULL; +} + +static GstElement * +gst_rtp_bin_request_decoder (GstRtpBin * bin, guint session_id) +{ + GST_DEBUG_OBJECT (bin, "return NULL decoder"); + return NULL; +} + static void gst_rtp_bin_propagate_property_to_jitterbuffer (GstRtpBin * bin, const gchar * name, const GValue * value) @@ -1402,7 +1501,6 @@ create_stream (GstRtpBinSession * session, guint32 ssrc) if (!(demux = gst_element_factory_make ("rtpptdemux", NULL))) goto no_demux; - stream = g_new0 (GstRtpBinStream, 1); stream->ssrc = ssrc; stream->bin = rtpbin; @@ -1433,6 +1531,9 @@ create_stream (GstRtpBinSession * session, guint32 ssrc) g_object_set (buffer, "mode", rtpbin->buffer_mode, NULL); g_object_set (buffer, "do-retransmission", rtpbin->do_retransmission, NULL); + g_signal_emit (rtpbin, gst_rtp_bin_signals[SIGNAL_NEW_JITTERBUFFER], 0, + buffer, session->id, ssrc); + if (!rtpbin->ignore_pt) gst_bin_add (GST_BIN_CAST (rtpbin), demux); gst_bin_add (GST_BIN_CAST (rtpbin), buffer); @@ -1556,6 +1657,38 @@ static void gst_rtp_bin_handle_message (GstBin * bin, GstMessage * message); #define gst_rtp_bin_parent_class parent_class G_DEFINE_TYPE (GstRtpBin, gst_rtp_bin, GST_TYPE_BIN); +static gboolean +_gst_element_accumulator (GSignalInvocationHint * ihint, + GValue * return_accu, const GValue * handler_return, gpointer dummy) +{ + GstElement *element; + + element = g_value_get_object (handler_return); + GST_DEBUG ("got element %" GST_PTR_FORMAT, element); + + if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP)) + g_value_set_object (return_accu, element); + + /* stop emission if we have an element */ + return (element == NULL); +} + +static gboolean +_gst_caps_accumulator (GSignalInvocationHint * ihint, + GValue * return_accu, const GValue * handler_return, gpointer dummy) +{ + GstCaps *caps; + + caps = g_value_get_boxed (handler_return); + GST_DEBUG ("got caps %" GST_PTR_FORMAT, caps); + + if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP)) + g_value_set_boxed (return_accu, caps); + + /* stop emission if we have a caps */ + return (caps == NULL); +} + static void gst_rtp_bin_class_init (GstRtpBinClass * klass) { @@ -1597,8 +1730,8 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) gst_rtp_bin_signals[SIGNAL_REQUEST_PT_MAP] = g_signal_new ("request-pt-map", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, request_pt_map), - NULL, NULL, g_cclosure_marshal_generic, GST_TYPE_CAPS, 2, G_TYPE_UINT, - G_TYPE_UINT); + _gst_caps_accumulator, NULL, g_cclosure_marshal_generic, GST_TYPE_CAPS, + 2, G_TYPE_UINT, G_TYPE_UINT); /** * GstRtpBin::payload-type-change: @@ -1607,8 +1740,6 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) * @pt: the pt * * Signal that the current payload type changed to @pt in @session. - * - * Since: 0.10.17 */ gst_rtp_bin_signals[SIGNAL_PAYLOAD_TYPE_CHANGE] = g_signal_new ("payload-type-change", G_TYPE_FROM_CLASS (klass), @@ -1788,6 +1919,131 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); + /** + * GstRtpBin::request-rtp-encoder: + * @rtpbin: the object which received the signal + * @session: the session + * + * Request an RTP encoder element for the given @session. The encoder + * element will be added to the bin if not previously added. + * + * If no handler is connected, no encoder will be used. + * + * Since: 1.4 + */ + gst_rtp_bin_signals[SIGNAL_REQUEST_RTP_ENCODER] = + g_signal_new ("request-rtp-encoder", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, + request_rtp_encoder), _gst_element_accumulator, NULL, + g_cclosure_marshal_generic, GST_TYPE_ELEMENT, 1, G_TYPE_UINT); + + /** + * GstRtpBin::request-rtp-decoder: + * @rtpbin: the object which received the signal + * @session: the session + * + * Request an RTP decoder element for the given @session. The decoder + * element will be added to the bin if not previously added. + * + * If no handler is connected, no encoder will be used. + * + * Since: 1.4 + */ + gst_rtp_bin_signals[SIGNAL_REQUEST_RTP_DECODER] = + g_signal_new ("request-rtp-decoder", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, + request_rtp_decoder), _gst_element_accumulator, NULL, + g_cclosure_marshal_generic, GST_TYPE_ELEMENT, 1, G_TYPE_UINT); + + /** + * GstRtpBin::request-rtcp-encoder: + * @rtpbin: the object which received the signal + * @session: the session + * + * Request an RTCP encoder element for the given @session. The encoder + * element will be added to the bin if not previously added. + * + * If no handler is connected, no encoder will be used. + * + * Since: 1.4 + */ + gst_rtp_bin_signals[SIGNAL_REQUEST_RTCP_ENCODER] = + g_signal_new ("request-rtcp-encoder", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, + request_rtcp_encoder), _gst_element_accumulator, NULL, + g_cclosure_marshal_generic, GST_TYPE_ELEMENT, 1, G_TYPE_UINT); + + /** + * GstRtpBin::request-rtcp-decoder: + * @rtpbin: the object which received the signal + * @session: the session + * + * Request an RTCP decoder element for the given @session. The decoder + * element will be added to the bin if not previously added. + * + * If no handler is connected, no encoder will be used. + * + * Since: 1.4 + */ + gst_rtp_bin_signals[SIGNAL_REQUEST_RTCP_DECODER] = + g_signal_new ("request-rtcp-decoder", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, + request_rtcp_decoder), _gst_element_accumulator, NULL, + g_cclosure_marshal_generic, GST_TYPE_ELEMENT, 1, G_TYPE_UINT); + + /** + * GstRtpBin::new-jitterbuffer: + * @rtpbin: the object which received the signal + * @jitterbuffer: the new jitterbuffer + * @session: the session + * @ssrc: the SSRC + * + * Notify that a new @jitterbuffer was created for @session and @ssrc. + * This signal can, for example, be used to configure @jitterbuffer. + * + * Since: 1.4 + */ + gst_rtp_bin_signals[SIGNAL_NEW_JITTERBUFFER] = + g_signal_new ("new-jitterbuffer", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, + new_jitterbuffer), NULL, NULL, g_cclosure_marshal_generic, + G_TYPE_NONE, 3, GST_TYPE_ELEMENT, G_TYPE_UINT, G_TYPE_UINT); + + /** + * GstRtpBin::request-aux-sender: + * @rtpbin: the object which received the signal + * @session: the session + * + * Request an AUX sender element for the given @session. The AUX + * element will be added to the bin. + * + * If no handler is connected, no AUX element will be used. + * + * Since: 1.4 + */ + gst_rtp_bin_signals[SIGNAL_REQUEST_AUX_SENDER] = + g_signal_new ("request-aux-sender", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, + request_aux_sender), _gst_element_accumulator, NULL, + g_cclosure_marshal_generic, GST_TYPE_ELEMENT, 1, G_TYPE_UINT); + /** + * GstRtpBin::request-aux-receiver: + * @rtpbin: the object which received the signal + * @session: the session + * + * Request an AUX receiver element for the given @session. The AUX + * element will be added to the bin. + * + * If no handler is connected, no AUX element will be used. + * + * Since: 1.4 + */ + gst_rtp_bin_signals[SIGNAL_REQUEST_AUX_RECEIVER] = + g_signal_new ("request-aux-receiver", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpBinClass, + request_aux_receiver), _gst_element_accumulator, NULL, + g_cclosure_marshal_generic, GST_TYPE_ELEMENT, 1, G_TYPE_UINT); + g_object_class_install_property (gobject_class, PROP_SDES, g_param_spec_boxed ("sdes", "SDES", "The SDES items of this session", @@ -1814,26 +2070,22 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) DEFAULT_USE_PIPELINE_CLOCK, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpBin::buffer-mode: + * GstRtpBin:buffer-mode: * * Control the buffering and timestamping mode used by the jitterbuffer. - * - * Since: 0.10.17 */ g_object_class_install_property (gobject_class, PROP_BUFFER_MODE, g_param_spec_enum ("buffer-mode", "Buffer Mode", "Control the buffering algorithm in use", RTP_TYPE_JITTER_BUFFER_MODE, DEFAULT_BUFFER_MODE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpBin::ntp-sync: + * GstRtpBin:ntp-sync: * * Set the NTP time from the sender reports as the running-time on the * buffers. When both the sender and receiver have sychronized * running-time, i.e. when the clock and base-time is shared * between the receivers and the and the senders, this option can be * used to synchronize receivers on multiple machines. - * - * Since: 0.10.21 */ g_object_class_install_property (gobject_class, PROP_NTP_SYNC, g_param_spec_boolean ("ntp-sync", "Sync on NTP clock", @@ -1841,12 +2093,10 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpBin::rtcp-sync: + * GstRtpBin:rtcp-sync: * * If not synchronizing (directly) to the NTP clock, determines how to sync * the various streams. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_RTCP_SYNC, g_param_spec_enum ("rtcp-sync", "RTCP Sync", @@ -1854,11 +2104,9 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) DEFAULT_RTCP_SYNC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpBin::rtcp-sync-interval: + * GstRtpBin:rtcp-sync-interval: * * Determines how often to sync streams using RTCP data. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_RTCP_SYNC_INTERVAL, g_param_spec_uint ("rtcp-sync-interval", "RTCP Sync Interval", @@ -1909,6 +2157,10 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass) klass->reset_sync = GST_DEBUG_FUNCPTR (gst_rtp_bin_reset_sync); klass->get_internal_session = GST_DEBUG_FUNCPTR (gst_rtp_bin_get_internal_session); + klass->request_rtp_encoder = GST_DEBUG_FUNCPTR (gst_rtp_bin_request_encoder); + klass->request_rtp_decoder = GST_DEBUG_FUNCPTR (gst_rtp_bin_request_decoder); + klass->request_rtcp_encoder = GST_DEBUG_FUNCPTR (gst_rtp_bin_request_encoder); + klass->request_rtcp_decoder = GST_DEBUG_FUNCPTR (gst_rtp_bin_request_decoder); GST_DEBUG_CATEGORY_INIT (gst_rtp_bin_debug, "rtpbin", 0, "RTP bin"); } @@ -2406,6 +2658,41 @@ gst_rtp_bin_change_state (GstElement * element, GstStateChange transition) return res; } +static GstElement * +session_request_element (GstRtpBinSession * session, guint signal) +{ + GstElement *element = NULL; + GstRtpBin *bin = session->bin; + + g_signal_emit (bin, gst_rtp_bin_signals[signal], 0, session->id, &element); + + if (element) { + if (!bin_manage_element (bin, element)) + goto manage_failed; + session->elements = g_slist_prepend (session->elements, element); + } + return element; + + /* ERRORS */ +manage_failed: + { + GST_WARNING_OBJECT (bin, "unable to manage element"); + gst_object_unref (element); + return NULL; + } +} + +static gboolean +copy_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) +{ + GstPad *gpad = GST_PAD_CAST (user_data); + + GST_DEBUG_OBJECT (gpad, "store sticky event %" GST_PTR_FORMAT, *event); + gst_pad_store_sticky_event (gpad, *event); + + return TRUE; +} + /* a new pad (SSRC) was created in @session. This signal is emited from the * payload demuxer. */ static void @@ -2436,6 +2723,7 @@ new_payload_found (GstElement * element, guint pt, GstPad * pad, gst_pad_set_active (gpad, TRUE); GST_RTP_BIN_SHUTDOWN_UNLOCK (rtpbin); + gst_pad_sticky_events_foreach (pad, copy_sticky_events, gpad); gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), gpad); return; @@ -2616,6 +2904,7 @@ new_ssrc_pad_found (GstElement * element, guint ssrc, GstPad * pad, g_free (padname); gst_pad_set_active (gpad, TRUE); + gst_pad_sticky_events_foreach (pad, copy_sticky_events, gpad); gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), gpad); gst_object_unref (pad); @@ -2641,14 +2930,100 @@ no_stream: } } +static gboolean +complete_session_sink (GstRtpBin * rtpbin, GstRtpBinSession * session) +{ + gchar *gname; + guint sessid = session->id; + GstPad *recv_rtp_sink; + GstElement *decoder; + GstElementClass *klass; + GstPadTemplate *templ; + + /* get recv_rtp pad and store */ + session->recv_rtp_sink = + gst_element_get_request_pad (session->session, "recv_rtp_sink"); + if (session->recv_rtp_sink == NULL) + goto pad_failed; + + g_signal_connect (session->recv_rtp_sink, "notify::caps", + (GCallback) caps_changed, session); + + GST_DEBUG_OBJECT (rtpbin, "requesting RTP decoder"); + decoder = session_request_element (session, SIGNAL_REQUEST_RTP_DECODER); + if (decoder) { + GstPad *decsrc, *decsink; + GstPadLinkReturn ret; + + GST_DEBUG_OBJECT (rtpbin, "linking RTP decoder"); + decsink = gst_element_get_static_pad (decoder, "rtp_sink"); + if (decsink == NULL) + goto dec_sink_failed; + + recv_rtp_sink = decsink; + + decsrc = gst_element_get_static_pad (decoder, "rtp_src"); + if (decsrc == NULL) + goto dec_src_failed; + + ret = gst_pad_link (decsrc, session->recv_rtp_sink); + gst_object_unref (decsrc); + + if (ret != GST_PAD_LINK_OK) + goto dec_link_failed; + + } else { + GST_DEBUG_OBJECT (rtpbin, "no RTP decoder given"); + recv_rtp_sink = gst_object_ref (session->recv_rtp_sink); + } + + GST_DEBUG_OBJECT (rtpbin, "ghosting session sink pad"); + klass = GST_ELEMENT_GET_CLASS (rtpbin); + gname = g_strdup_printf ("recv_rtp_sink_%u", sessid); + templ = gst_element_class_get_pad_template (klass, "recv_rtp_sink_%u"); + session->recv_rtp_sink_ghost = + gst_ghost_pad_new_from_template (gname, recv_rtp_sink, templ); + gst_object_unref (recv_rtp_sink); + gst_pad_set_active (session->recv_rtp_sink_ghost, TRUE); + gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), session->recv_rtp_sink_ghost); + g_free (gname); + + return TRUE; + + /* ERRORS */ +pad_failed: + { + g_warning ("rtpbin: failed to get session recv_rtp_sink pad"); + return FALSE; + } +dec_sink_failed: + { + g_warning ("rtpbin: failed to get decoder sink pad for session %d", sessid); + return FALSE; + } +dec_src_failed: + { + g_warning ("rtpbin: failed to get decoder src pad for session %d", sessid); + gst_object_unref (recv_rtp_sink); + return FALSE; + } +dec_link_failed: + { + g_warning ("rtpbin: failed to link rtp decoder for session %d", sessid); + gst_object_unref (recv_rtp_sink); + return FALSE; + } +} + /* Create a pad for receiving RTP for the session in @name. Must be called with * RTP_BIN_LOCK. */ static GstPad * create_recv_rtp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name) { - GstPad *sinkdpad; guint sessid; + GstElement *aux; + GstPad *recv_rtp_src; GstRtpBinSession *session; /* first get the session number */ @@ -2671,42 +3046,61 @@ create_recv_rtp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name) if (session->recv_rtp_sink_ghost != NULL) return session->recv_rtp_sink_ghost; - GST_DEBUG_OBJECT (rtpbin, "getting RTP sink pad"); - /* get recv_rtp pad and store */ - session->recv_rtp_sink = - gst_element_get_request_pad (session->session, "recv_rtp_sink"); - if (session->recv_rtp_sink == NULL) - goto pad_failed; - - g_signal_connect (session->recv_rtp_sink, "notify::caps", - (GCallback) caps_changed, session); + /* setup the session sink pad */ + if (!complete_session_sink (rtpbin, session)) + goto session_sink_failed; - GST_DEBUG_OBJECT (rtpbin, "getting RTP src pad"); - /* get srcpad, link to SSRCDemux */ session->recv_rtp_src = gst_element_get_static_pad (session->session, "recv_rtp_src"); if (session->recv_rtp_src == NULL) goto pad_failed; - GST_DEBUG_OBJECT (rtpbin, "getting demuxer RTP sink pad"); - sinkdpad = gst_element_get_static_pad (session->demux, "sink"); - GST_DEBUG_OBJECT (rtpbin, "linking demuxer RTP sink pad"); - gst_pad_link_full (session->recv_rtp_src, sinkdpad, - GST_PAD_LINK_CHECK_NOTHING); - gst_object_unref (sinkdpad); + /* find out if we need AUX elements or if we can go into the SSRC demuxer + * directly */ + aux = session_request_element (session, SIGNAL_REQUEST_AUX_RECEIVER); + if (aux) { + gchar *pname; + GstPad *auxsink; + GstPadLinkReturn ret; + + GST_DEBUG_OBJECT (rtpbin, "linking AUX receiver"); + + pname = g_strdup_printf ("sink_%d", sessid); + auxsink = gst_element_get_static_pad (aux, pname); + g_free (pname); + if (auxsink == NULL) + goto aux_sink_failed; + + ret = gst_pad_link (session->recv_rtp_src, auxsink); + gst_object_unref (auxsink); + if (ret != GST_PAD_LINK_OK) + goto aux_link_failed; + + /* this can be NULL when this AUX element is not to be linked to + * an SSRC demuxer */ + pname = g_strdup_printf ("src_%d", sessid); + recv_rtp_src = gst_element_get_static_pad (aux, pname); + g_free (pname); + } else { + recv_rtp_src = gst_object_ref (session->recv_rtp_src); + } - /* connect to the new-ssrc-pad signal of the SSRC demuxer */ - session->demux_newpad_sig = g_signal_connect (session->demux, - "new-ssrc-pad", (GCallback) new_ssrc_pad_found, session); - session->demux_padremoved_sig = g_signal_connect (session->demux, - "removed-ssrc-pad", (GCallback) ssrc_demux_pad_removed, session); + if (recv_rtp_src) { + GstPad *sinkdpad; - GST_DEBUG_OBJECT (rtpbin, "ghosting session sink pad"); - session->recv_rtp_sink_ghost = - gst_ghost_pad_new_from_template (name, session->recv_rtp_sink, templ); - gst_pad_set_active (session->recv_rtp_sink_ghost, TRUE); - gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), session->recv_rtp_sink_ghost); + GST_DEBUG_OBJECT (rtpbin, "getting demuxer RTP sink pad"); + sinkdpad = gst_element_get_static_pad (session->demux, "sink"); + GST_DEBUG_OBJECT (rtpbin, "linking demuxer RTP sink pad"); + gst_pad_link_full (recv_rtp_src, sinkdpad, GST_PAD_LINK_CHECK_NOTHING); + gst_object_unref (recv_rtp_src); + gst_object_unref (sinkdpad); + /* connect to the new-ssrc-pad signal of the SSRC demuxer */ + session->demux_newpad_sig = g_signal_connect (session->demux, + "new-ssrc-pad", (GCallback) new_ssrc_pad_found, session); + session->demux_padremoved_sig = g_signal_connect (session->demux, + "removed-ssrc-pad", (GCallback) ssrc_demux_pad_removed, session); + } return session->recv_rtp_sink_ghost; /* ERRORS */ @@ -2720,9 +3114,24 @@ create_error: /* create_session already warned */ return NULL; } +session_sink_failed: + { + /* warning already done */ + return NULL; + } pad_failed: { - g_warning ("rtpbin: failed to get session pad"); + g_warning ("rtpbin: failed to get session recv_rtp_src pad"); + return NULL; + } +aux_sink_failed: + { + g_warning ("rtpbin: failed to get AUX sink pad for session %d", sessid); + return NULL; + } +aux_link_failed: + { + g_warning ("rtpbin: failed to link AUX pad to session %d", sessid); return NULL; } } @@ -2763,8 +3172,9 @@ create_recv_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name) { guint sessid; + GstElement *decoder; GstRtpBinSession *session; - GstPad *sinkdpad; + GstPad *sinkdpad, *decsink; /* first get the session number */ if (name == NULL || sscanf (name, "recv_rtcp_sink_%u", &sessid) != 1) @@ -2793,11 +3203,37 @@ create_recv_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ, if (session->recv_rtcp_sink == NULL) goto pad_failed; + GST_DEBUG_OBJECT (rtpbin, "getting RTCP decoder"); + decoder = session_request_element (session, SIGNAL_REQUEST_RTCP_DECODER); + if (decoder) { + GstPad *decsrc; + GstPadLinkReturn ret; + + GST_DEBUG_OBJECT (rtpbin, "linking RTCP decoder"); + decsink = gst_element_get_static_pad (decoder, "rtcp_sink"); + decsrc = gst_element_get_static_pad (decoder, "rtcp_src"); + + if (decsink == NULL) + goto dec_sink_failed; + + if (decsrc == NULL) + goto dec_src_failed; + + ret = gst_pad_link (decsrc, session->recv_rtcp_sink); + gst_object_unref (decsrc); + + if (ret != GST_PAD_LINK_OK) + goto dec_link_failed; + } else { + GST_DEBUG_OBJECT (rtpbin, "no RTCP decoder given"); + decsink = gst_object_ref (session->recv_rtcp_sink); + } + /* get srcpad, link to SSRCDemux */ GST_DEBUG_OBJECT (rtpbin, "getting sync src pad"); session->sync_src = gst_element_get_static_pad (session->session, "sync_src"); if (session->sync_src == NULL) - goto pad_failed; + goto src_pad_failed; GST_DEBUG_OBJECT (rtpbin, "getting demuxer RTCP sink pad"); sinkdpad = gst_element_get_static_pad (session->demux, "rtcp_sink"); @@ -2805,7 +3241,8 @@ create_recv_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ, gst_object_unref (sinkdpad); session->recv_rtcp_sink_ghost = - gst_ghost_pad_new_from_template (name, session->recv_rtcp_sink, templ); + gst_ghost_pad_new_from_template (name, decsink, templ); + gst_object_unref (decsink); gst_pad_set_active (session->recv_rtcp_sink_ghost, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), session->recv_rtcp_sink_ghost); @@ -2825,7 +3262,30 @@ create_error: } pad_failed: { - g_warning ("rtpbin: failed to get session pad"); + g_warning ("rtpbin: failed to get session rtcp_sink pad"); + return NULL; + } +dec_sink_failed: + { + g_warning ("rtpbin: failed to get decoder sink pad for session %d", sessid); + return NULL; + } +dec_src_failed: + { + g_warning ("rtpbin: failed to get decoder src pad for session %d", sessid); + gst_object_unref (decsink); + return NULL; + } +dec_link_failed: + { + g_warning ("rtpbin: failed to link rtcp decoder for session %d", sessid); + gst_object_unref (decsink); + return NULL; + } +src_pad_failed: + { + g_warning ("rtpbin: failed to get session sync_src pad"); + gst_object_unref (decsink); return NULL; } } @@ -2851,16 +3311,197 @@ remove_recv_rtcp (GstRtpBin * rtpbin, GstRtpBinSession * session) } } +static gboolean +complete_session_src (GstRtpBin * rtpbin, GstRtpBinSession * session) +{ + gchar *gname; + guint sessid = session->id; + GstPad *send_rtp_src; + GstElement *encoder; + GstElementClass *klass; + GstPadTemplate *templ; + + /* get srcpad */ + session->send_rtp_src = + gst_element_get_static_pad (session->session, "send_rtp_src"); + if (session->send_rtp_src == NULL) + goto no_srcpad; + + GST_DEBUG_OBJECT (rtpbin, "getting RTP encoder"); + encoder = session_request_element (session, SIGNAL_REQUEST_RTP_ENCODER); + if (encoder) { + gchar *ename; + GstPad *encsrc, *encsink; + GstPadLinkReturn ret; + + GST_DEBUG_OBJECT (rtpbin, "linking RTP encoder"); + ename = g_strdup_printf ("rtp_src_%d", sessid); + encsrc = gst_element_get_static_pad (encoder, ename); + g_free (ename); + + if (encsrc == NULL) + goto enc_src_failed; + + send_rtp_src = encsrc; + + ename = g_strdup_printf ("rtp_sink_%d", sessid); + encsink = gst_element_get_static_pad (encoder, ename); + g_free (ename); + if (encsink == NULL) + goto enc_sink_failed; + + ret = gst_pad_link (session->send_rtp_src, encsink); + gst_object_unref (encsink); + + if (ret != GST_PAD_LINK_OK) + goto enc_link_failed; + } else { + GST_DEBUG_OBJECT (rtpbin, "no RTP encoder given"); + send_rtp_src = gst_object_ref (session->send_rtp_src); + } + + /* ghost the new source pad */ + klass = GST_ELEMENT_GET_CLASS (rtpbin); + gname = g_strdup_printf ("send_rtp_src_%u", sessid); + templ = gst_element_class_get_pad_template (klass, "send_rtp_src_%u"); + session->send_rtp_src_ghost = + gst_ghost_pad_new_from_template (gname, send_rtp_src, templ); + gst_object_unref (send_rtp_src); + gst_pad_set_active (session->send_rtp_src_ghost, TRUE); + gst_pad_sticky_events_foreach (send_rtp_src, copy_sticky_events, + session->send_rtp_src_ghost); + gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), session->send_rtp_src_ghost); + g_free (gname); + + return TRUE; + + /* ERRORS */ +no_srcpad: + { + g_warning ("rtpbin: failed to get rtp source pad for session %d", sessid); + return FALSE; + } +enc_src_failed: + { + g_warning ("rtpbin: failed to get encoder src pad for session %d", sessid); + return FALSE; + } +enc_sink_failed: + { + g_warning ("rtpbin: failed to get encoder sink pad for session %d", sessid); + gst_object_unref (send_rtp_src); + return FALSE; + } +enc_link_failed: + { + g_warning ("rtpbin: failed to link rtp encoder for session %d", sessid); + gst_object_unref (send_rtp_src); + return FALSE; + } +} + +static gboolean +setup_aux_sender_fold (const GValue * item, GValue * result, gpointer user_data) +{ + GstPad *pad; + gchar *name; + guint sessid; + GstRtpBinSession *session = user_data, *newsess; + GstRtpBin *rtpbin = session->bin; + GstPadLinkReturn ret; + + pad = g_value_get_object (item); + name = gst_pad_get_name (pad); + + if (name == NULL || sscanf (name, "src_%u", &sessid) != 1) + goto no_name; + + g_free (name); + + newsess = find_session_by_id (rtpbin, sessid); + if (newsess == NULL) { + /* create new session */ + newsess = create_session (rtpbin, sessid); + if (newsess == NULL) + goto create_error; + } else if (newsess->send_rtp_sink != NULL) + goto existing_session; + + /* get send_rtp pad and store */ + newsess->send_rtp_sink = + gst_element_get_request_pad (newsess->session, "send_rtp_sink"); + if (newsess->send_rtp_sink == NULL) + goto pad_failed; + + ret = gst_pad_link (pad, newsess->send_rtp_sink); + if (ret != GST_PAD_LINK_OK) + goto aux_link_failed; + + if (!complete_session_src (rtpbin, newsess)) + goto session_src_failed; + + return TRUE; + + /* ERRORS */ +no_name: + { + GST_WARNING ("ignoring invalid pad name %s", GST_STR_NULL (name)); + g_free (name); + return TRUE; + } +create_error: + { + /* create_session already warned */ + return FALSE; + } +existing_session: + { + g_warning ("rtpbin: session %d is already a sender", sessid); + return FALSE; + } +pad_failed: + { + g_warning ("rtpbin: failed to get session pad for session %d", sessid); + return FALSE; + } +aux_link_failed: + { + g_warning ("rtpbin: failed to link AUX for session %d", sessid); + return FALSE; + } +session_src_failed: + { + g_warning ("rtpbin: failed to complete AUX for session %d", sessid); + return FALSE; + } +} + +static gboolean +setup_aux_sender (GstRtpBin * rtpbin, GstRtpBinSession * session, + GstElement * aux) +{ + GstIterator *it; + GValue result = { 0, }; + GstIteratorResult res; + + it = gst_element_iterate_src_pads (aux); + res = gst_iterator_fold (it, setup_aux_sender_fold, &result, session); + gst_iterator_free (it); + + return res == GST_ITERATOR_DONE; +} + /* Create a pad for sending RTP for the session in @name. Must be called with * RTP_BIN_LOCK. */ static GstPad * create_send_rtp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name) { - gchar *gname; + gchar *pname; guint sessid; + GstPad *send_rtp_sink; + GstElement *aux; GstRtpBinSession *session; - GstElementClass *klass; /* first get the session number */ if (name == NULL || sscanf (name, "send_rtp_sink_%u", &sessid) != 1) @@ -2879,33 +3520,42 @@ create_send_rtp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name) if (session->send_rtp_sink_ghost != NULL) return session->send_rtp_sink_ghost; - /* get send_rtp pad and store */ - session->send_rtp_sink = - gst_element_get_request_pad (session->session, "send_rtp_sink"); - if (session->send_rtp_sink == NULL) - goto pad_failed; + /* check if we are already using this session as a sender */ + if (session->send_rtp_sink != NULL) + goto existing_session; + + GST_DEBUG_OBJECT (rtpbin, "getting RTP AUX sender"); + aux = session_request_element (session, SIGNAL_REQUEST_AUX_SENDER); + if (aux) { + GST_DEBUG_OBJECT (rtpbin, "linking AUX sender"); + if (!setup_aux_sender (rtpbin, session, aux)) + goto aux_session_failed; + + pname = g_strdup_printf ("sink_%d", sessid); + send_rtp_sink = gst_element_get_static_pad (aux, pname); + g_free (pname); + + if (send_rtp_sink == NULL) + goto aux_sink_failed; + } else { + /* get send_rtp pad and store */ + session->send_rtp_sink = + gst_element_get_request_pad (session->session, "send_rtp_sink"); + if (session->send_rtp_sink == NULL) + goto pad_failed; + + if (!complete_session_src (rtpbin, session)) + goto session_src_failed; + + send_rtp_sink = gst_object_ref (session->send_rtp_sink); + } session->send_rtp_sink_ghost = - gst_ghost_pad_new_from_template (name, session->send_rtp_sink, templ); + gst_ghost_pad_new_from_template (name, send_rtp_sink, templ); + gst_object_unref (send_rtp_sink); gst_pad_set_active (session->send_rtp_sink_ghost, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), session->send_rtp_sink_ghost); - /* get srcpad */ - session->send_rtp_src = - gst_element_get_static_pad (session->session, "send_rtp_src"); - if (session->send_rtp_src == NULL) - goto no_srcpad; - - /* ghost the new source pad */ - klass = GST_ELEMENT_GET_CLASS (rtpbin); - gname = g_strdup_printf ("send_rtp_src_%u", sessid); - templ = gst_element_class_get_pad_template (klass, "send_rtp_src_%u"); - session->send_rtp_src_ghost = - gst_ghost_pad_new_from_template (gname, session->send_rtp_src, templ); - gst_pad_set_active (session->send_rtp_src_ghost, TRUE); - gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), session->send_rtp_src_ghost); - g_free (gname); - return session->send_rtp_sink_ghost; /* ERRORS */ @@ -2919,14 +3569,29 @@ create_error: /* create_session already warned */ return NULL; } +existing_session: + { + g_warning ("rtpbin: session %d is already in use", sessid); + return NULL; + } +aux_session_failed: + { + g_warning ("rtpbin: failed to get AUX sink pad for session %d", sessid); + return NULL; + } +aux_sink_failed: + { + g_warning ("rtpbin: failed to get AUX sink pad for session %d", sessid); + return NULL; + } pad_failed: { g_warning ("rtpbin: failed to get session pad for session %d", sessid); return NULL; } -no_srcpad: +session_src_failed: { - g_warning ("rtpbin: failed to get rtp source pad for session %d", sessid); + g_warning ("rtpbin: failed to setup source pads for session %d", sessid); return NULL; } } @@ -2965,6 +3630,8 @@ static GstPad * create_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name) { guint sessid; + GstPad *encsrc; + GstElement *encoder; GstRtpBinSession *session; /* first get the session number */ @@ -2986,8 +3653,40 @@ create_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name) if (session->send_rtcp_src == NULL) goto pad_failed; + GST_DEBUG_OBJECT (rtpbin, "getting RTCP encoder"); + encoder = session_request_element (session, SIGNAL_REQUEST_RTCP_ENCODER); + if (encoder) { + gchar *ename; + GstPad *encsink; + GstPadLinkReturn ret; + + GST_DEBUG_OBJECT (rtpbin, "linking RTCP encoder"); + ename = g_strdup_printf ("rtcp_sink_%d", sessid); + encsink = gst_element_get_static_pad (encoder, ename); + g_free (ename); + ename = g_strdup_printf ("rtcp_src_%d", sessid); + encsrc = gst_element_get_static_pad (encoder, ename); + g_free (ename); + + if (encsrc == NULL) + goto enc_src_failed; + + if (encsink == NULL) + goto enc_sink_failed; + + ret = gst_pad_link (session->send_rtcp_src, encsink); + gst_object_unref (encsink); + + if (ret != GST_PAD_LINK_OK) + goto enc_link_failed; + } else { + GST_DEBUG_OBJECT (rtpbin, "no RTCP encoder given"); + encsrc = gst_object_ref (session->send_rtcp_src); + } + session->send_rtcp_src_ghost = - gst_ghost_pad_new_from_template (name, session->send_rtcp_src, templ); + gst_ghost_pad_new_from_template (name, encsrc, templ); + gst_object_unref (encsrc); gst_pad_set_active (session->send_rtcp_src_ghost, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (rtpbin), session->send_rtcp_src_ghost); @@ -3009,6 +3708,23 @@ pad_failed: g_warning ("rtpbin: failed to get rtcp pad for session %d", sessid); return NULL; } +enc_src_failed: + { + g_warning ("rtpbin: failed to get encoder src pad for session %d", sessid); + return NULL; + } +enc_sink_failed: + { + g_warning ("rtpbin: failed to get encoder sink pad for session %d", sessid); + gst_object_unref (encsrc); + return NULL; + } +enc_link_failed: + { + g_warning ("rtpbin: failed to link rtcp encoder for session %d", sessid); + gst_object_unref (encsrc); + return NULL; + } } static void diff --git a/gst/rtpmanager/gstrtpbin.h b/gst/rtpmanager/gstrtpbin.h index e46399274..0ac80608b 100644 --- a/gst/rtpmanager/gstrtpbin.h +++ b/gst/rtpmanager/gstrtpbin.h @@ -80,10 +80,12 @@ struct _GstRtpBinClass { void (*payload_type_change) (GstRtpBin *rtpbin, guint session, guint pt); + void (*new_jitterbuffer) (GstRtpBin *rtpbin, guint session, guint32 ssrc); + /* action signals */ void (*clear_pt_map) (GstRtpBin *rtpbin); void (*reset_sync) (GstRtpBin *rtpbin); - RTPSession* (*get_internal_session) (GstRtpBin *rtpbin, guint session_id); + RTPSession* (*get_internal_session) (GstRtpBin *rtpbin, guint session); /* session manager signals */ void (*on_new_ssrc) (GstRtpBin *rtpbin, guint session, guint32 ssrc); @@ -96,6 +98,14 @@ struct _GstRtpBinClass { void (*on_timeout) (GstRtpBin *rtpbin, guint session, guint32 ssrc); void (*on_sender_timeout) (GstRtpBin *rtpbin, guint session, guint32 ssrc); void (*on_npt_stop) (GstRtpBin *rtpbin, guint session, guint32 ssrc); + + GstElement* (*request_rtp_encoder) (GstRtpBin *rtpbin, guint session); + GstElement* (*request_rtp_decoder) (GstRtpBin *rtpbin, guint session); + GstElement* (*request_rtcp_encoder) (GstRtpBin *rtpbin, guint session); + GstElement* (*request_rtcp_decoder) (GstRtpBin *rtpbin, guint session); + + GstElement* (*request_aux_sender) (GstRtpBin *rtpbin, guint session); + GstElement* (*request_aux_receiver) (GstRtpBin *rtpbin, guint session); }; GType gst_rtp_bin_get_type (void); diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c index a0e4aad31..1459e91c5 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.c +++ b/gst/rtpmanager/gstrtpjitterbuffer.c @@ -91,8 +91,6 @@ * inserted into the pipeline to smooth out network jitter and to reorder the * out-of-order RTP packets. * </refsect2> - * - * Last reviewed on 2007-05-28 (0.10.5) */ #ifdef HAVE_CONFIG_H @@ -130,10 +128,13 @@ enum #define DEFAULT_MODE RTP_JITTER_BUFFER_MODE_SLAVE #define DEFAULT_PERCENT 0 #define DEFAULT_DO_RETRANSMISSION FALSE -#define DEFAULT_RTX_DELAY 20 +#define DEFAULT_RTX_DELAY -1 #define DEFAULT_RTX_DELAY_REORDER 3 -#define DEFAULT_RTX_RETRY_TIMEOUT 40 -#define DEFAULT_RTX_RETRY_PERIOD 160 +#define DEFAULT_RTX_RETRY_TIMEOUT -1 +#define DEFAULT_RTX_RETRY_PERIOD -1 + +#define DEFAULT_AUTO_RTX_DELAY (20 * GST_MSECOND) +#define DEFAULT_AUTO_RTX_TIMEOUT (40 * GST_MSECOND) enum { @@ -149,6 +150,7 @@ enum PROP_RTX_DELAY_REORDER, PROP_RTX_RETRY_TIMEOUT, PROP_RTX_RETRY_PERIOD, + PROP_STATS, PROP_LAST }; @@ -191,6 +193,24 @@ enum } \ } G_STMT_END +#define JBUF_WAIT_QUERY(priv,label) G_STMT_START { \ + GST_DEBUG ("waiting query"); \ + (priv)->waiting_query = TRUE; \ + g_cond_wait (&(priv)->jbuf_query, &(priv)->jbuf_lock); \ + (priv)->waiting_query = FALSE; \ + GST_DEBUG ("waiting query done"); \ + if (G_UNLIKELY (priv->srcresult != GST_FLOW_OK)) \ + goto label; \ +} G_STMT_END +#define JBUF_SIGNAL_QUERY(priv,res) G_STMT_START { \ + (priv)->last_query = res; \ + if (G_UNLIKELY ((priv)->waiting_query)) { \ + GST_DEBUG ("signal query"); \ + g_cond_signal (&(priv)->jbuf_query); \ + } \ +} G_STMT_END + + struct _GstRtpJitterBufferPrivate { GstPad *sinkpad, *srcpad; @@ -202,6 +222,9 @@ struct _GstRtpJitterBufferPrivate GCond jbuf_timer; gboolean waiting_event; GCond jbuf_event; + gboolean waiting_query; + GCond jbuf_query; + gboolean last_query; gboolean discont; gboolean ts_discont; gboolean active; @@ -281,6 +304,11 @@ struct _GstRtpJitterBufferPrivate guint64 num_rtx_failed; gdouble avg_rtx_num; guint64 avg_rtx_rtt; + + /* for the jitter */ + GstClockTime last_dts; + guint64 last_rtptime; + GstClockTime avg_jitter; }; typedef enum @@ -400,6 +428,9 @@ static void remove_all_timers (GstRtpJitterBuffer * jitterbuffer); static void wait_next_timeout (GstRtpJitterBuffer * jitterbuffer); +static GstStructure *gst_rtp_jitter_buffer_create_stats (GstRtpJitterBuffer * + jitterbuffer); + static void gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) { @@ -417,7 +448,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) gobject_class->get_property = gst_rtp_jitter_buffer_get_property; /** - * GstRtpJitterBuffer::latency: + * GstRtpJitterBuffer:latency: * * The maximum latency of the jitterbuffer. Packets will be kept in the buffer * for at most this time. @@ -427,7 +458,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) "Amount of ms to buffer", 0, G_MAXUINT, DEFAULT_LATENCY_MS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::drop-on-latency: + * GstRtpJitterBuffer:drop-on-latency: * * Drop oldest buffers when the queue is completely filled. */ @@ -437,7 +468,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) "Tells the jitterbuffer to never exceed the given latency in size", DEFAULT_DROP_ON_LATENCY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::ts-offset: + * GstRtpJitterBuffer:ts-offset: * * Adjust GStreamer output buffer timestamps in the jitterbuffer with offset. * This is mainly used to ensure interstream synchronisation. @@ -449,7 +480,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::do-lost: + * GstRtpJitterBuffer:do-lost: * * Send out a GstRTPPacketLost event downstream when a packet is considered * lost. @@ -460,7 +491,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::mode: + * GstRtpJitterBuffer:mode: * * Control the buffering and timestamping mode used by the jitterbuffer. */ @@ -469,18 +500,16 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) "Control the buffering algorithm in use", RTP_TYPE_JITTER_BUFFER_MODE, DEFAULT_MODE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::percent: + * GstRtpJitterBuffer:percent: * * The percent of the jitterbuffer that is filled. - * - * Since: 0.10.19 */ g_object_class_install_property (gobject_class, PROP_PERCENT, g_param_spec_int ("percent", "percent", "The buffer filled percent", 0, 100, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::do-retransmission: + * GstRtpJitterBuffer:do-retransmission: * * Send out a GstRTPRetransmission event upstream when a packet is considered * late and should be retransmitted. @@ -494,7 +523,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::rtx-delay: + * GstRtpJitterBuffer:rtx-delay: * * When a packet did not arrive at the expected time, wait this extra amount * of time before sending a retransmission event. @@ -509,7 +538,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) "event (-1 automatic)", -1, G_MAXINT, DEFAULT_RTX_DELAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::rtx-delay-reorder: + * GstRtpJitterBuffer:rtx-delay-reorder: * * Assume that a retransmission event should be sent when we see * this much packet reordering. @@ -541,7 +570,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) "ms (-1 automatic)", -1, G_MAXINT, DEFAULT_RTX_RETRY_TIMEOUT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRtpJitterBuffer::rtx-retry-period: + * GstRtpJitterBuffer:rtx-retry-period: * * The amount of time to try to get a retransmission. * @@ -555,6 +584,23 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) "Try to get a retransmission for this many ms " "(-1 automatic)", -1, G_MAXINT, DEFAULT_RTX_RETRY_PERIOD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstRtpJitterBuffer:stats: + * + * Various jitterbuffer statistics. This property returns a GstStructure + * with name application/x-rtp-jitterbuffer-stats with the following fields: + * + * "rtx-count" G_TYPE_UINT64 The number of retransmissions requested + * "rtx-success-count" G_TYPE_UINT64 The number of successful retransmissions + * "rtx-per-packet" G_TYPE_DOUBLE Average number of RTX per packet + * "rtx-rtt" G_TYPE_UINT64 Average round trip time per RTX + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_STATS, + g_param_spec_boxed ("stats", "Statistics", + "Various statistics", GST_TYPE_STRUCTURE, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * GstRtpJitterBuffer::request-pt-map: @@ -582,7 +628,7 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) G_TYPE_NONE, 1, GST_TYPE_STRUCTURE | G_SIGNAL_TYPE_STATIC_SCOPE); /** - * GstRtpJitterBuffer::on-npt-stop + * GstRtpJitterBuffer::on-npt-stop: * @buffer: the object which received the signal * * Signal that the jitterbufer has pushed the RTP packet that corresponds to @@ -615,8 +661,6 @@ gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass) * useful in buffering mode. * * Returns: the time of the last pushed packet. - * - * Since: 0.10.19 */ gst_rtp_jitter_buffer_signals[SIGNAL_SET_ACTIVE] = g_signal_new ("set-active", G_TYPE_FROM_CLASS (klass), @@ -672,11 +716,15 @@ gst_rtp_jitter_buffer_init (GstRtpJitterBuffer * jitterbuffer) priv->rtx_retry_timeout = DEFAULT_RTX_RETRY_TIMEOUT; priv->rtx_retry_period = DEFAULT_RTX_RETRY_PERIOD; + priv->last_dts = -1; + priv->last_rtptime = -1; + priv->avg_jitter = 0; 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_timer); g_cond_init (&priv->jbuf_event); + g_cond_init (&priv->jbuf_query); /* reset skew detection initialy */ rtp_jitter_buffer_reset_skew (priv->jbuf); @@ -712,8 +760,12 @@ gst_rtp_jitter_buffer_init (GstRtpJitterBuffer * jitterbuffer) GST_OBJECT_FLAG_SET (jitterbuffer, GST_ELEMENT_FLAG_PROVIDE_CLOCK); } +#define IS_DROPABLE(it) (((it)->type == ITEM_TYPE_BUFFER) || ((it)->type == ITEM_TYPE_LOST)) + #define ITEM_TYPE_BUFFER 0 #define ITEM_TYPE_LOST 1 +#define ITEM_TYPE_EVENT 2 +#define ITEM_TYPE_QUERY 3 static RTPJitterBufferItem * alloc_item (gpointer data, guint type, GstClockTime dts, GstClockTime pts, @@ -738,7 +790,7 @@ alloc_item (gpointer data, guint type, GstClockTime dts, GstClockTime pts, static void free_item (RTPJitterBufferItem * item) { - if (item->data) + if (item->data && item->type != ITEM_TYPE_QUERY) gst_mini_object_unref (item->data); g_slice_free (RTPJitterBufferItem, item); } @@ -756,6 +808,7 @@ gst_rtp_jitter_buffer_finalize (GObject * object) g_mutex_clear (&priv->jbuf_lock); g_cond_clear (&priv->jbuf_timer); g_cond_clear (&priv->jbuf_event); + g_cond_clear (&priv->jbuf_query); rtp_jitter_buffer_flush (priv->jbuf, (GFunc) free_item, NULL); g_object_unref (priv->jbuf); @@ -771,7 +824,7 @@ gst_rtp_jitter_buffer_iterate_internal_links (GstPad * pad, GstObject * parent) GstIterator *it; GValue val = { 0, }; - jitterbuffer = GST_RTP_JITTER_BUFFER (parent); + jitterbuffer = GST_RTP_JITTER_BUFFER_CAST (parent); if (pad == jitterbuffer->priv->sinkpad) { otherpad = jitterbuffer->priv->srcpad; @@ -840,7 +893,7 @@ gst_rtp_jitter_buffer_request_new_pad (GstElement * element, g_return_val_if_fail (templ != NULL, NULL); g_return_val_if_fail (GST_IS_RTP_JITTER_BUFFER (element), NULL); - jitterbuffer = GST_RTP_JITTER_BUFFER (element); + jitterbuffer = GST_RTP_JITTER_BUFFER_CAST (element); priv = jitterbuffer->priv; klass = GST_ELEMENT_GET_CLASS (element); @@ -879,7 +932,7 @@ gst_rtp_jitter_buffer_release_pad (GstElement * element, GstPad * pad) g_return_if_fail (GST_IS_RTP_JITTER_BUFFER (element)); g_return_if_fail (GST_IS_PAD (pad)); - jitterbuffer = GST_RTP_JITTER_BUFFER (element); + jitterbuffer = GST_RTP_JITTER_BUFFER_CAST (element); priv = jitterbuffer->priv; GST_DEBUG_OBJECT (element, "releasing pad %s:%s", GST_DEBUG_PAD_NAME (pad)); @@ -1045,8 +1098,10 @@ gst_jitter_buffer_sink_parse_caps (GstRtpJitterBuffer * jitterbuffer, /* first expected seqnum, only update when we didn't have a previous base. */ if (priv->next_in_seqnum == -1) priv->next_in_seqnum = val; - if (priv->next_seqnum == -1) + if (priv->next_seqnum == -1) { priv->next_seqnum = val; + JBUF_SIGNAL_EVENT (priv); + } } GST_DEBUG_OBJECT (jitterbuffer, "got seqnum-base %d", priv->next_in_seqnum); @@ -1096,6 +1151,7 @@ gst_rtp_jitter_buffer_flush_start (GstRtpJitterBuffer * jitterbuffer) GST_DEBUG_OBJECT (jitterbuffer, "Disabling pop on queue"); /* this unblocks any waiting pops on the src pad task */ JBUF_SIGNAL_EVENT (priv); + JBUF_SIGNAL_QUERY (priv, FALSE); JBUF_UNLOCK (priv); } @@ -1119,10 +1175,14 @@ gst_rtp_jitter_buffer_flush_stop (GstRtpJitterBuffer * jitterbuffer) priv->packet_spacing = 0; priv->next_in_seqnum = -1; priv->clock_rate = -1; + priv->last_pt = -1; priv->eos = FALSE; priv->estimated_eos = -1; priv->last_elapsed = 0; priv->ext_timestamp = -1; + priv->avg_jitter = 0; + priv->last_dts = -1; + priv->last_rtptime = -1; GST_DEBUG_OBJECT (jitterbuffer, "flush and reset jitterbuffer"); rtp_jitter_buffer_flush (priv->jbuf, (GFunc) free_item, NULL); rtp_jitter_buffer_disable_buffering (priv->jbuf, FALSE); @@ -1231,6 +1291,7 @@ gst_rtp_jitter_buffer_change_state (GstElement * element, priv->timer_running = FALSE; unschedule_current_timer (jitterbuffer); JBUF_SIGNAL_TIMER (priv); + JBUF_SIGNAL_QUERY (priv, FALSE); JBUF_UNLOCK (priv); g_thread_join (priv->timer_thread); priv->timer_thread = NULL; @@ -1252,7 +1313,7 @@ gst_rtp_jitter_buffer_src_event (GstPad * pad, GstObject * parent, GstRtpJitterBuffer *jitterbuffer; GstRtpJitterBufferPrivate *priv; - jitterbuffer = GST_RTP_JITTER_BUFFER (parent); + jitterbuffer = GST_RTP_JITTER_BUFFER_CAST (parent); priv = jitterbuffer->priv; GST_DEBUG_OBJECT (jitterbuffer, "received %s", GST_EVENT_TYPE_NAME (event)); @@ -1288,18 +1349,14 @@ gst_rtp_jitter_buffer_src_event (GstPad * pad, GstObject * parent, return ret; } +/* handles and stores the event in the jitterbuffer, must be called with + * LOCK */ static gboolean -gst_rtp_jitter_buffer_sink_event (GstPad * pad, GstObject * parent, - GstEvent * event) +queue_event (GstRtpJitterBuffer * jitterbuffer, GstEvent * event) { - gboolean ret = TRUE; - GstRtpJitterBuffer *jitterbuffer; - GstRtpJitterBufferPrivate *priv; - - jitterbuffer = GST_RTP_JITTER_BUFFER (parent); - priv = jitterbuffer->priv; - - GST_DEBUG_OBJECT (jitterbuffer, "received %s", GST_EVENT_TYPE_NAME (event)); + GstRtpJitterBufferPrivate *priv = jitterbuffer->priv; + RTPJitterBufferItem *item; + gboolean head; switch (GST_EVENT_TYPE (event)) { case GST_EVENT_CAPS: @@ -1307,20 +1364,12 @@ gst_rtp_jitter_buffer_sink_event (GstPad * pad, GstObject * parent, GstCaps *caps; gst_event_parse_caps (event, &caps); + if (!gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps)) + goto wrong_caps; - JBUF_LOCK (priv); - ret = gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps); - JBUF_UNLOCK (priv); - - /* set same caps on srcpad on success */ - if (ret) - ret = gst_pad_push_event (priv->srcpad, event); - else - gst_event_unref (event); break; } case GST_EVENT_SEGMENT: - { gst_event_copy_segment (event, &priv->segment); /* we need time for now */ @@ -1329,11 +1378,53 @@ gst_rtp_jitter_buffer_sink_event (GstPad * pad, GstObject * parent, GST_DEBUG_OBJECT (jitterbuffer, "newsegment: %" GST_SEGMENT_FORMAT, &priv->segment); - - /* FIXME, push SEGMENT in the queue. Sorting order might be difficult. */ - ret = gst_pad_push_event (priv->srcpad, event); break; - } + case GST_EVENT_EOS: + priv->eos = TRUE; + rtp_jitter_buffer_disable_buffering (priv->jbuf, TRUE); + break; + default: + break; + } + + + GST_DEBUG_OBJECT (jitterbuffer, "adding event"); + item = alloc_item (event, ITEM_TYPE_EVENT, -1, -1, -1, 0, -1); + rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL); + if (head) + JBUF_SIGNAL_EVENT (priv); + + return TRUE; + + /* ERRORS */ +wrong_caps: + { + GST_DEBUG_OBJECT (jitterbuffer, "received invalid caps"); + gst_event_unref (event); + return FALSE; + } +newseg_wrong_format: + { + GST_DEBUG_OBJECT (jitterbuffer, "received non TIME newsegment"); + gst_event_unref (event); + return FALSE; + } +} + +static gboolean +gst_rtp_jitter_buffer_sink_event (GstPad * pad, GstObject * parent, + GstEvent * event) +{ + gboolean ret = TRUE; + GstRtpJitterBuffer *jitterbuffer; + GstRtpJitterBufferPrivate *priv; + + jitterbuffer = GST_RTP_JITTER_BUFFER (parent); + priv = jitterbuffer->priv; + + GST_DEBUG_OBJECT (jitterbuffer, "received %s", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { case GST_EVENT_FLUSH_START: ret = gst_pad_push_event (priv->srcpad, event); gst_rtp_jitter_buffer_flush_start (jitterbuffer); @@ -1346,44 +1437,49 @@ gst_rtp_jitter_buffer_sink_event (GstPad * pad, GstObject * parent, gst_rtp_jitter_buffer_src_activate_mode (priv->srcpad, parent, GST_PAD_MODE_PUSH, TRUE); break; - case GST_EVENT_EOS: - { - /* push EOS in queue. We always push it at the head */ - JBUF_LOCK (priv); - /* check for flushing, we need to discard the event and return FALSE when - * we are flushing */ - ret = priv->srcresult == GST_FLOW_OK; - if (ret && !priv->eos) { - GST_INFO_OBJECT (jitterbuffer, "queuing EOS"); - priv->eos = TRUE; - rtp_jitter_buffer_disable_buffering (priv->jbuf, TRUE); - JBUF_SIGNAL_EVENT (priv); - } else if (priv->eos) { - GST_DEBUG_OBJECT (jitterbuffer, "dropping EOS, we are already EOS"); + default: + if (GST_EVENT_IS_SERIALIZED (event)) { + /* serialized events go in the queue */ + JBUF_LOCK (priv); + if (priv->srcresult != GST_FLOW_OK) { + /* Errors in sticky event pushing are no problem and ignored here + * as they will cause more meaningful errors during data flow. + * For EOS events, that are not followed by data flow, we still + * return FALSE here though. + */ + if (!GST_EVENT_IS_STICKY (event) || + GST_EVENT_TYPE (event) == GST_EVENT_EOS) + goto out_flow_error; + } + /* refuse more events on EOS */ + if (priv->eos) + goto out_eos; + ret = queue_event (jitterbuffer, event); + JBUF_UNLOCK (priv); } else { - GST_DEBUG_OBJECT (jitterbuffer, "dropping EOS, reason %s", - gst_flow_get_name (priv->srcresult)); + /* non-serialized events are forwarded downstream immediately */ + ret = gst_pad_push_event (priv->srcpad, event); } - JBUF_UNLOCK (priv); - gst_event_unref (event); - break; - } - default: - ret = gst_pad_push_event (priv->srcpad, event); break; } - -done: - return ret; /* ERRORS */ -newseg_wrong_format: +out_flow_error: { - GST_DEBUG_OBJECT (jitterbuffer, "received non TIME newsegment"); - ret = FALSE; + GST_DEBUG_OBJECT (jitterbuffer, + "refusing event, we have a downstream flow error: %s", + gst_flow_get_name (priv->srcresult)); + JBUF_UNLOCK (priv); gst_event_unref (event); - goto done; + return FALSE; + } +out_eos: + { + GST_DEBUG_OBJECT (jitterbuffer, "refusing event, we are EOS"); + JBUF_UNLOCK (priv); + gst_event_unref (event); + return FALSE; } } @@ -1586,8 +1682,9 @@ add_timer (GstRtpJitterBuffer * jitterbuffer, TimerType type, gint len; GST_DEBUG_OBJECT (jitterbuffer, - "add timer for seqnum %d to %" GST_TIME_FORMAT ", delay %" - GST_TIME_FORMAT, seqnum, GST_TIME_ARGS (timeout), GST_TIME_ARGS (delay)); + "add timer %d for seqnum %d to %" GST_TIME_FORMAT ", delay %" + GST_TIME_FORMAT, type, seqnum, GST_TIME_ARGS (timeout), + GST_TIME_ARGS (delay)); len = priv->timers->len; g_array_set_size (priv->timers, len + 1); @@ -1637,6 +1734,8 @@ reschedule_timer (GstRtpJitterBuffer * jitterbuffer, TimerData * timer, timer->rtx_delay = delay; timer->rtx_retry = 0; } + if (seqchange) + timer->num_rtx_retry = 0; if (priv->clock_id) { /* we changed the seqnum and there is a timer currently waiting with this @@ -1717,13 +1816,17 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum, gap = gst_rtp_buffer_compare_seqnum (test->seqnum, seqnum); - GST_DEBUG_OBJECT (jitterbuffer, "%d, #%d<->#%d gap %d", i, - test->seqnum, seqnum, gap); + GST_DEBUG_OBJECT (jitterbuffer, "%d, %d, #%d<->#%d gap %d", i, + test->type, test->seqnum, seqnum, gap); if (gap == 0) { GST_DEBUG ("found timer for current seqnum"); /* the timer for the current seqnum */ timer = test; + /* when no retransmission, we can stop now, we only need to find the + * timer for the current seqnum */ + if (!priv->do_retransmission) + break; } else if (gap > priv->rtx_delay_reorder) { /* max gap, we exceeded the max reorder distance and we don't expect the * missing packet to be this reordered */ @@ -1732,24 +1835,12 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum, } } - if (priv->packet_spacing > 0 && do_next_seqnum && priv->do_retransmission) { - GstClockTime expected, delay; - - /* calculate expected arrival time of the next seqnum */ - expected = dts + priv->packet_spacing; - delay = priv->rtx_delay * GST_MSECOND; - - /* and update/install timer for next seqnum */ - if (timer) - reschedule_timer (jitterbuffer, timer, priv->next_in_seqnum, expected, - delay, TRUE); - else - add_timer (jitterbuffer, TIMER_TYPE_EXPECTED, priv->next_in_seqnum, 0, - expected, delay, priv->packet_spacing); - } else if (timer && timer->type != TIMER_TYPE_DEADLINE) { + do_next_seqnum = do_next_seqnum && priv->packet_spacing > 0 + && priv->do_retransmission; + if (timer && timer->type != TIMER_TYPE_DEADLINE) { if (timer->num_rtx_retry > 0) { - GstClockTime rtx_last; + GstClockTime rtx_last, delay; /* we scheduled a retry for this packet and now we have it */ priv->num_rtx_success++; @@ -1763,8 +1854,7 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum, /* calculate the delay between retransmission request and receiving this * packet, start with when we scheduled this timeout last */ rtx_last = timer->rtx_last; - if (dts > rtx_last) { - GstClockTime delay; + if (dts != GST_CLOCK_TIME_NONE && dts > rtx_last) { /* we have a valid delay if this packet arrived after we scheduled the * request */ delay = dts - rtx_last; @@ -1772,20 +1862,51 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum, priv->avg_rtx_rtt = delay; else priv->avg_rtx_rtt = (delay + 7 * priv->avg_rtx_rtt) / 8; - } + } else + delay = 0; + GST_LOG_OBJECT (jitterbuffer, "RTX success %" G_GUINT64_FORMAT ", failed %" G_GUINT64_FORMAT ", requests %" G_GUINT64_FORMAT ", dups %" G_GUINT64_FORMAT - ", avg-num %g, avg-rtt %" G_GUINT64_FORMAT, priv->num_rtx_success, - priv->num_rtx_failed, priv->num_rtx_requests, priv->num_duplicates, - priv->avg_rtx_num, priv->avg_rtx_rtt); + ", avg-num %g, delay %" GST_TIME_FORMAT ", avg-rtt %" GST_TIME_FORMAT, + priv->num_rtx_success, priv->num_rtx_failed, priv->num_rtx_requests, + priv->num_duplicates, priv->avg_rtx_num, GST_TIME_ARGS (delay), + GST_TIME_ARGS (priv->avg_rtx_rtt)); + + /* don't try to estimate the next seqnum because this is a retransmitted + * packet and it probably did not arrive with the expected packet + * spacing. */ + do_next_seqnum = FALSE; + } + } + + if (do_next_seqnum) { + GstClockTime expected, delay; + + /* calculate expected arrival time of the next seqnum */ + expected = dts + priv->packet_spacing; + + if (priv->rtx_delay == -1) { + if (priv->avg_jitter == 0) + delay = DEFAULT_AUTO_RTX_DELAY; + else + /* jitter is in nanoseconds, 2x jitter is a good margin */ + delay = priv->avg_jitter * 2; + } else { + delay = priv->rtx_delay * GST_MSECOND; } + + /* and update/install timer for next seqnum */ + if (timer) + reschedule_timer (jitterbuffer, timer, priv->next_in_seqnum, expected, + delay, TRUE); + else + add_timer (jitterbuffer, TIMER_TYPE_EXPECTED, priv->next_in_seqnum, 0, + expected, delay, 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); - /* we signal the _loop function because this new packet could be the one - * it was waiting for */ - JBUF_SIGNAL_EVENT (priv); } } @@ -1888,13 +2009,68 @@ calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected, type = TIMER_TYPE_LOST; } - while (expected < seqnum) { + while (gst_rtp_buffer_compare_seqnum (expected, seqnum) > 0) { add_timer (jitterbuffer, type, expected, 0, expected_dts, 0, duration); expected_dts += duration; expected++; } } +static void +calculate_jitter (GstRtpJitterBuffer * jitterbuffer, GstClockTime dts, + guint rtptime) +{ + gint32 rtpdiff; + GstClockTimeDiff dtsdiff, rtpdiffns, diff; + GstRtpJitterBufferPrivate *priv; + + priv = jitterbuffer->priv; + + if (G_UNLIKELY (dts == GST_CLOCK_TIME_NONE) || priv->clock_rate <= 0) + goto no_time; + + if (priv->last_dts != -1) + dtsdiff = dts - priv->last_dts; + else + dtsdiff = 0; + + if (priv->last_rtptime != -1) + rtpdiff = rtptime - (guint32) priv->last_rtptime; + else + rtpdiff = 0; + + priv->last_dts = dts; + priv->last_rtptime = rtptime; + + if (rtpdiff > 0) + rtpdiffns = + gst_util_uint64_scale_int (rtpdiff, GST_SECOND, priv->clock_rate); + else + rtpdiffns = + -gst_util_uint64_scale_int (-rtpdiff, GST_SECOND, priv->clock_rate); + + diff = ABS (dtsdiff - rtpdiffns); + + /* jitter is stored in nanoseconds */ + priv->avg_jitter = (diff + (15 * priv->avg_jitter)) >> 4; + + GST_LOG_OBJECT (jitterbuffer, + "dtsdiff %" GST_TIME_FORMAT " rtptime %" GST_TIME_FORMAT + ", clock-rate %d, diff %" GST_TIME_FORMAT ", jitter: %" GST_TIME_FORMAT, + GST_TIME_ARGS (dtsdiff), GST_TIME_ARGS (rtpdiffns), priv->clock_rate, + GST_TIME_ARGS (diff), GST_TIME_ARGS (priv->avg_jitter)); + + return; + + /* ERRORS */ +no_time: + { + GST_DEBUG_OBJECT (jitterbuffer, + "no dts or no clock-rate, can't calculate jitter"); + return; + } +} + static GstFlowReturn gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) @@ -1906,7 +2082,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, GstFlowReturn ret = GST_FLOW_OK; GstClockTime dts, pts; guint64 latency_ts; - gboolean tail; + gboolean head; gint percent = -1; guint8 pt; GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; @@ -1914,7 +2090,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, RTPJitterBufferItem *item; GstMessage *msg = NULL; - jitterbuffer = GST_RTP_JITTER_BUFFER (parent); + jitterbuffer = GST_RTP_JITTER_BUFFER_CAST (parent); priv = jitterbuffer->priv; @@ -1979,6 +2155,8 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, if (G_UNLIKELY (priv->eos)) goto have_eos; + calculate_jitter (jitterbuffer, dts, rtptime); + expected = priv->next_in_seqnum; /* now check against our expected seqnum */ @@ -2031,6 +2209,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, priv->last_popped_seqnum = -1; priv->next_seqnum = seqnum; do_next_seqnum = TRUE; + JBUF_SIGNAL_EVENT (priv); } /* reset spacing estimation when gap */ priv->ips_rtptime = -1; @@ -2076,11 +2255,18 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, if (G_UNLIKELY (rtp_jitter_buffer_get_ts_diff (priv->jbuf) >= latency_ts)) { RTPJitterBufferItem *old_item; - old_item = rtp_jitter_buffer_pop (priv->jbuf, &percent); - GST_DEBUG_OBJECT (jitterbuffer, "Queue full, dropping old packet %p", - old_item); - priv->next_seqnum = (old_item->seqnum + 1) & 0xffff; - free_item (old_item); + old_item = rtp_jitter_buffer_peek (priv->jbuf); + + if (IS_DROPABLE (old_item)) { + old_item = rtp_jitter_buffer_pop (priv->jbuf, &percent); + GST_DEBUG_OBJECT (jitterbuffer, "Queue full, dropping old packet %p", + old_item); + priv->next_seqnum = (old_item->seqnum + 1) & 0xffff; + free_item (old_item); + } + /* we might have removed some head buffers, signal the pushing thread to + * see if it can push now */ + JBUF_SIGNAL_EVENT (priv); } } @@ -2090,7 +2276,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, * FALSE if a packet with the same seqnum was already in the queue, meaning we * have a duplicate. */ if (G_UNLIKELY (!rtp_jitter_buffer_insert (priv->jbuf, item, - &tail, &percent))) + &head, &percent))) goto duplicate; /* update timers */ @@ -2100,19 +2286,21 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent, if (priv->last_sr) do_handle_sync (jitterbuffer); - /* signal addition of new buffer when the _loop is waiting. */ - if (priv->active) - JBUF_SIGNAL_EVENT (priv); + if (G_UNLIKELY (head)) { + /* signal addition of new buffer when the _loop is waiting. */ + if (G_LIKELY (priv->active)) + JBUF_SIGNAL_EVENT (priv); - /* let's unschedule and unblock any waiting buffers. We only want to do this - * when the tail buffer changed */ - if (G_UNLIKELY (priv->clock_id && tail)) { - GST_DEBUG_OBJECT (jitterbuffer, "Unscheduling waiting new buffer"); - unschedule_current_timer (jitterbuffer); + /* let's unschedule and unblock any waiting buffers. We only want to do this + * when the head buffer changed */ + if (G_UNLIKELY (priv->clock_id)) { + GST_DEBUG_OBJECT (jitterbuffer, "Unscheduling waiting new buffer"); + unschedule_current_timer (jitterbuffer); + } } - GST_DEBUG_OBJECT (jitterbuffer, "Pushed packet #%d, now %d packets, tail: %d", - seqnum, rtp_jitter_buffer_num_packets (priv->jbuf), tail); + GST_DEBUG_OBJECT (jitterbuffer, "Pushed packet #%d, now %d packets, head: %d", + seqnum, rtp_jitter_buffer_num_packets (priv->jbuf), head); msg = check_buffering_percent (jitterbuffer, percent); @@ -2264,64 +2452,75 @@ update_estimated_eos (GstRtpJitterBuffer * jitterbuffer, /* take a buffer from the queue and push it */ static GstFlowReturn -pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum) +pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint seqnum) { GstRtpJitterBufferPrivate *priv = jitterbuffer->priv; - GstFlowReturn result; + GstFlowReturn result = GST_FLOW_OK; RTPJitterBufferItem *item; - GstBuffer *outbuf; - GstEvent *outevent; + GstBuffer *outbuf = NULL; + GstEvent *outevent = NULL; + GstQuery *outquery = NULL; GstClockTime dts, pts; gint percent = -1; - gboolean is_buffer, do_push = TRUE; + gboolean do_push = TRUE; + guint type; GstMessage *msg; /* when we get here we are ready to pop and push the buffer */ item = rtp_jitter_buffer_pop (priv->jbuf, &percent); + type = item->type; - is_buffer = GST_IS_BUFFER (item->data); + switch (type) { + case ITEM_TYPE_BUFFER: - if (is_buffer) { - /* we need to make writable to change the flags and timestamps */ - outbuf = gst_buffer_make_writable (item->data); + /* we need to make writable to change the flags and timestamps */ + outbuf = gst_buffer_make_writable (item->data); - if (G_UNLIKELY (priv->discont)) { - /* set DISCONT flag when we missed a packet. We pushed the buffer writable - * into the jitterbuffer so we can modify now. */ - GST_DEBUG_OBJECT (jitterbuffer, "mark output buffer discont"); - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); - priv->discont = FALSE; - } - if (G_UNLIKELY (priv->ts_discont)) { - GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); - priv->ts_discont = FALSE; - } + if (G_UNLIKELY (priv->discont)) { + /* set DISCONT flag when we missed a packet. We pushed the buffer writable + * into the jitterbuffer so we can modify now. */ + GST_DEBUG_OBJECT (jitterbuffer, "mark output buffer discont"); + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + priv->discont = FALSE; + } + if (G_UNLIKELY (priv->ts_discont)) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); + priv->ts_discont = FALSE; + } - dts = gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, item->dts); - pts = gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, item->pts); + dts = + gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, item->dts); + pts = + gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, item->pts); - /* apply timestamp with offset to buffer now */ - GST_BUFFER_DTS (outbuf) = apply_offset (jitterbuffer, dts); - GST_BUFFER_PTS (outbuf) = apply_offset (jitterbuffer, pts); + /* apply timestamp with offset to buffer now */ + GST_BUFFER_DTS (outbuf) = apply_offset (jitterbuffer, dts); + GST_BUFFER_PTS (outbuf) = apply_offset (jitterbuffer, pts); - /* update the elapsed time when we need to check against the npt stop time. */ - update_estimated_eos (jitterbuffer, item); + /* update the elapsed time when we need to check against the npt stop time. */ + update_estimated_eos (jitterbuffer, item); - priv->last_out_time = GST_BUFFER_PTS (outbuf); - } else { - outevent = item->data; - if (item->type == ITEM_TYPE_LOST) { + priv->last_out_time = GST_BUFFER_PTS (outbuf); + break; + case ITEM_TYPE_LOST: priv->discont = TRUE; if (!priv->do_lost) do_push = FALSE; - } + /* FALLTHROUGH */ + case ITEM_TYPE_EVENT: + outevent = item->data; + break; + case ITEM_TYPE_QUERY: + outquery = item->data; + break; } /* now we are ready to push the buffer. Save the seqnum and release the lock * so the other end can push stuff in the queue again. */ - priv->last_popped_seqnum = seqnum; - priv->next_seqnum = (seqnum + item->count) & 0xffff; - + if (seqnum != -1) { + priv->last_popped_seqnum = seqnum; + priv->next_seqnum = (seqnum + item->count) & 0xffff; + } msg = check_buffering_percent (jitterbuffer, percent); JBUF_UNLOCK (priv); @@ -2331,25 +2530,44 @@ pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum) if (msg) gst_element_post_message (GST_ELEMENT_CAST (jitterbuffer), msg); - if (is_buffer) { - /* push buffer */ - GST_DEBUG_OBJECT (jitterbuffer, - "Pushing buffer %d, dts %" GST_TIME_FORMAT ", pts %" GST_TIME_FORMAT, - seqnum, GST_TIME_ARGS (GST_BUFFER_DTS (outbuf)), - GST_TIME_ARGS (GST_BUFFER_PTS (outbuf))); - result = gst_pad_push (priv->srcpad, outbuf); - } else { - GST_DEBUG_OBJECT (jitterbuffer, "Pushing event %d", seqnum); + switch (type) { + case ITEM_TYPE_BUFFER: + /* push buffer */ + GST_DEBUG_OBJECT (jitterbuffer, + "Pushing buffer %d, dts %" GST_TIME_FORMAT ", pts %" GST_TIME_FORMAT, + seqnum, GST_TIME_ARGS (GST_BUFFER_DTS (outbuf)), + GST_TIME_ARGS (GST_BUFFER_PTS (outbuf))); + result = gst_pad_push (priv->srcpad, outbuf); - if (do_push) - gst_pad_push_event (priv->srcpad, outevent); - else - gst_event_unref (outevent); + JBUF_LOCK_CHECK (priv, out_flushing); + break; + case ITEM_TYPE_LOST: + case ITEM_TYPE_EVENT: + GST_DEBUG_OBJECT (jitterbuffer, "Pushing event %" GST_PTR_FORMAT + ", seqnum %d", outevent, seqnum); - result = GST_FLOW_OK; - } - JBUF_LOCK_CHECK (priv, out_flushing); + if (do_push) + gst_pad_push_event (priv->srcpad, outevent); + else + gst_event_unref (outevent); + + result = GST_FLOW_OK; + + JBUF_LOCK_CHECK (priv, out_flushing); + break; + case ITEM_TYPE_QUERY: + { + gboolean res; + + res = gst_pad_peer_query (priv->srcpad, outquery); + JBUF_LOCK_CHECK (priv, out_flushing); + result = GST_FLOW_OK; + GST_LOG_OBJECT (jitterbuffer, "did query %p, return %d", outquery, res); + JBUF_SIGNAL_QUERY (priv, res); + break; + } + } return result; /* ERRORS */ @@ -2371,7 +2589,7 @@ handle_next_buffer (GstRtpJitterBuffer * jitterbuffer) GstRtpJitterBufferPrivate *priv = jitterbuffer->priv; GstFlowReturn result = GST_FLOW_OK; RTPJitterBufferItem *item; - guint16 seqnum; + guint seqnum; guint32 next_seqnum; gint gap; @@ -2391,6 +2609,8 @@ again: /* get the seqnum and the next expected seqnum */ seqnum = item->seqnum; + if (seqnum == -1) + goto do_push; next_seqnum = priv->next_seqnum; @@ -2407,6 +2627,7 @@ again: gap = gst_rtp_buffer_compare_seqnum (next_seqnum, seqnum); if (G_LIKELY (gap == 0)) { + do_push: /* no missing packet, pop and push */ result = pop_and_push_next (jitterbuffer, seqnum); } else if (G_UNLIKELY (gap < 0)) { @@ -2448,8 +2669,35 @@ do_expected_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer, GstRtpJitterBufferPrivate *priv = jitterbuffer->priv; GstEvent *event; guint delay; + GstClockTime rtx_retry_period; + GstClockTime rtx_retry_timeout; + GstClock *clock; + + GST_DEBUG_OBJECT (jitterbuffer, "expected %d didn't arrive, now %" + GST_TIME_FORMAT, timer->seqnum, GST_TIME_ARGS (now)); + + if (priv->rtx_retry_timeout == -1) { + if (priv->avg_rtx_rtt == 0) + rtx_retry_timeout = DEFAULT_AUTO_RTX_TIMEOUT; + else + /* we want to ask for a retransmission after we waited for a + * complete RTT and the additional jitter */ + rtx_retry_timeout = priv->avg_rtx_rtt + priv->avg_jitter * 2; + } else { + rtx_retry_timeout = priv->rtx_retry_timeout * GST_MSECOND; + } + + if (priv->rtx_retry_period == -1) { + /* we retry up to the configured jitterbuffer size but leaving some + * room for the retransmission to arrive in time */ + rtx_retry_period = priv->latency_ns - rtx_retry_timeout; + } else { + rtx_retry_period = priv->rtx_retry_period * GST_MSECOND; + } - GST_DEBUG_OBJECT (jitterbuffer, "expected %d didn't arrive", timer->seqnum); + GST_DEBUG_OBJECT (jitterbuffer, "timeout %" GST_TIME_FORMAT ", period %" + GST_TIME_FORMAT, GST_TIME_ARGS (rtx_retry_timeout), + GST_TIME_ARGS (rtx_retry_period)); delay = timer->rtx_delay + timer->rtx_retry; event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, @@ -2458,24 +2706,33 @@ do_expected_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer, "running-time", G_TYPE_UINT64, timer->rtx_base, "delay", G_TYPE_UINT, GST_TIME_AS_MSECONDS (delay), "retry", G_TYPE_UINT, timer->num_rtx_retry, - "frequency", G_TYPE_UINT, priv->rtx_retry_timeout, - "period", G_TYPE_UINT, priv->rtx_retry_period, + "frequency", G_TYPE_UINT, GST_TIME_AS_MSECONDS (rtx_retry_timeout), + "period", G_TYPE_UINT, GST_TIME_AS_MSECONDS (rtx_retry_period), "deadline", G_TYPE_UINT, priv->latency_ms, - "packet-spacing", G_TYPE_UINT64, priv->packet_spacing, NULL)); + "packet-spacing", G_TYPE_UINT64, priv->packet_spacing, + "avg-rtt", G_TYPE_UINT, GST_TIME_AS_MSECONDS (priv->avg_rtx_rtt), + NULL)); priv->num_rtx_requests++; timer->num_rtx_retry++; - timer->rtx_last = now; + + GST_OBJECT_LOCK (jitterbuffer); + if ((clock = GST_ELEMENT_CLOCK (jitterbuffer))) { + timer->rtx_last = gst_clock_get_time (clock); + timer->rtx_last -= GST_ELEMENT_CAST (jitterbuffer)->base_time; + } else { + timer->rtx_last = now; + } + GST_OBJECT_UNLOCK (jitterbuffer); /* calculate the timeout for the next retransmission attempt */ - timer->rtx_retry += (priv->rtx_retry_timeout * GST_MSECOND); + timer->rtx_retry += rtx_retry_timeout; GST_DEBUG_OBJECT (jitterbuffer, "base %" GST_TIME_FORMAT ", delay %" - GST_TIME_FORMAT ", retry %" GST_TIME_FORMAT, + GST_TIME_FORMAT ", retry %" GST_TIME_FORMAT ", num_retry %u", GST_TIME_ARGS (timer->rtx_base), GST_TIME_ARGS (timer->rtx_delay), - GST_TIME_ARGS (timer->rtx_retry)); + GST_TIME_ARGS (timer->rtx_retry), timer->num_rtx_retry); - if (timer->rtx_retry + timer->rtx_delay > - (priv->rtx_retry_period * GST_MSECOND)) { + if (timer->rtx_retry + timer->rtx_delay > rtx_retry_period) { GST_DEBUG_OBJECT (jitterbuffer, "reschedule as LOST timer"); /* too many retransmission request, we now convert the timer * to a lost timer, leave the num_rtx_retry as it is for stats */ @@ -2501,7 +2758,7 @@ do_lost_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer, GstRtpJitterBufferPrivate *priv = jitterbuffer->priv; GstClockTime duration, timestamp; guint seqnum, lost_packets, num_rtx_retry; - gboolean late; + gboolean late, head; GstEvent *event; RTPJitterBufferItem *item; @@ -2534,11 +2791,12 @@ do_lost_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer, "retry", G_TYPE_UINT, num_rtx_retry, NULL)); item = alloc_item (event, ITEM_TYPE_LOST, -1, -1, seqnum, lost_packets, -1); - rtp_jitter_buffer_insert (priv->jbuf, item, NULL, NULL); + rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL); /* remove timer now */ remove_timer (jitterbuffer, timer); - JBUF_SIGNAL_EVENT (priv); + if (head) + JBUF_SIGNAL_EVENT (priv); return TRUE; } @@ -2552,9 +2810,8 @@ do_eos_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer, GST_INFO_OBJECT (jitterbuffer, "got the NPT timeout"); remove_timer (jitterbuffer, timer); if (!priv->eos) { - /* there was no EOS in the buffer, assume there is now */ - priv->eos = TRUE; - rtp_jitter_buffer_disable_buffering (priv->jbuf, TRUE); + /* there was no EOS in the buffer, put one in there now */ + queue_event (jitterbuffer, gst_event_new_eos ()); } JBUF_SIGNAL_EVENT (priv); @@ -2636,7 +2893,9 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer) } else if (timer_timeout == -1) { /* we already have an immediate timeout, the new timer must be an * immediate timer with smaller seqnum to become the best */ - if (test_timeout == -1 && test->seqnum < timer->seqnum) + if (test_timeout == -1 + && (gst_rtp_buffer_compare_seqnum (test->seqnum, + timer->seqnum) > 0)) save_best = TRUE; } else if (test_timeout == -1) { /* first immediate timer */ @@ -2644,7 +2903,9 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer) } else if (test_timeout < timer_timeout) { /* earlier timer */ save_best = TRUE; - } else if (test_timeout == timer_timeout && test->seqnum < timer->seqnum) { + } else if (test_timeout == timer_timeout + && (gst_rtp_buffer_compare_seqnum (test->seqnum, + timer->seqnum) > 0)) { /* same timer, smaller seqnum */ save_best = TRUE; } @@ -2700,8 +2961,11 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer) ret = gst_clock_id_wait (id, &clock_jitter); JBUF_LOCK (priv); - if (!priv->timer_running) + if (!priv->timer_running) { + gst_clock_id_unref (id); + priv->clock_id = NULL; break; + } if (ret != GST_CLOCK_UNSCHEDULED) { now = timer_timeout + MAX (clock_jitter, 0); @@ -2734,7 +2998,7 @@ static void gst_rtp_jitter_buffer_loop (GstRtpJitterBuffer * jitterbuffer) { GstRtpJitterBufferPrivate *priv; - GstFlowReturn result; + GstFlowReturn result = GST_FLOW_OK; priv = jitterbuffer->priv; @@ -2750,8 +3014,6 @@ gst_rtp_jitter_buffer_loop (GstRtpJitterBuffer * jitterbuffer) while (result == GST_FLOW_OK); /* store result for upstream */ priv->srcresult = result; - JBUF_UNLOCK (priv); - /* if we get here we need to pause */ goto pause; @@ -2759,15 +3021,17 @@ gst_rtp_jitter_buffer_loop (GstRtpJitterBuffer * jitterbuffer) flushing: { result = priv->srcresult; - JBUF_UNLOCK (priv); goto pause; } pause: { - const gchar *reason = gst_flow_get_name (result); GstEvent *event; - GST_DEBUG_OBJECT (jitterbuffer, "pausing task, reason %s", reason); + JBUF_SIGNAL_QUERY (priv, FALSE); + JBUF_UNLOCK (priv); + + GST_DEBUG_OBJECT (jitterbuffer, "pausing task, reason %s", + gst_flow_get_name (result)); gst_pad_pause_task (priv->srcpad); if (result == GST_FLOW_EOS) { event = gst_event_new_eos (); @@ -2943,6 +3207,11 @@ gst_rtp_jitter_buffer_sink_query (GstPad * pad, GstObject * parent, GstQuery * query) { gboolean res = FALSE; + GstRtpJitterBuffer *jitterbuffer; + GstRtpJitterBufferPrivate *priv; + + jitterbuffer = GST_RTP_JITTER_BUFFER (parent); + priv = jitterbuffer->priv; switch (GST_QUERY_TYPE (query)) { case GST_QUERY_CAPS: @@ -2958,14 +3227,38 @@ gst_rtp_jitter_buffer_sink_query (GstPad * pad, GstObject * parent, } default: if (GST_QUERY_IS_SERIALIZED (query)) { - GST_WARNING_OBJECT (pad, "unhandled serialized query"); - res = FALSE; + RTPJitterBufferItem *item; + gboolean head; + + JBUF_LOCK_CHECK (priv, out_flushing); + if (rtp_jitter_buffer_get_mode (priv->jbuf) != + RTP_JITTER_BUFFER_MODE_BUFFER) { + GST_DEBUG_OBJECT (jitterbuffer, "adding serialized query"); + item = alloc_item (query, ITEM_TYPE_QUERY, -1, -1, -1, 0, -1); + rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL); + if (head) + JBUF_SIGNAL_EVENT (priv); + JBUF_WAIT_QUERY (priv, out_flushing); + res = priv->last_query; + } else { + GST_DEBUG_OBJECT (jitterbuffer, "refusing query, we are buffering"); + res = FALSE; + } + JBUF_UNLOCK (priv); } else { res = gst_pad_query_default (pad, parent, query); } break; } return res; + /* ERRORS */ +out_flushing: + { + GST_DEBUG_OBJECT (jitterbuffer, "we are flushing"); + JBUF_UNLOCK (priv); + return FALSE; + } + } static gboolean @@ -3226,8 +3519,28 @@ gst_rtp_jitter_buffer_get_property (GObject * object, g_value_set_int (value, priv->rtx_retry_period); JBUF_UNLOCK (priv); break; + case PROP_STATS: + g_value_take_boxed (value, + gst_rtp_jitter_buffer_create_stats (jitterbuffer)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } + +static GstStructure * +gst_rtp_jitter_buffer_create_stats (GstRtpJitterBuffer * jbuf) +{ + GstStructure *s; + + JBUF_LOCK (jbuf->priv); + s = gst_structure_new ("application/x-rtp-jitterbuffer-stats", + "rtx-count", G_TYPE_UINT64, jbuf->priv->num_rtx_requests, + "rtx-success-count", G_TYPE_UINT64, jbuf->priv->num_rtx_success, + "rtx-per-packet", G_TYPE_DOUBLE, jbuf->priv->avg_rtx_num, + "rtx-rtt", G_TYPE_UINT64, jbuf->priv->avg_rtx_rtt, NULL); + JBUF_UNLOCK (jbuf->priv); + + return s; +} diff --git a/gst/rtpmanager/gstrtpjitterbuffer.h b/gst/rtpmanager/gstrtpjitterbuffer.h index c8522798e..debb13b3a 100644 --- a/gst/rtpmanager/gstrtpjitterbuffer.h +++ b/gst/rtpmanager/gstrtpjitterbuffer.h @@ -44,6 +44,8 @@ G_BEGIN_DECLS (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_JITTER_BUFFER)) #define GST_IS_RTP_JITTER_BUFFER_CLASS(obj) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_JITTER_BUFFER)) +#define GST_RTP_JITTER_BUFFER_CAST(obj) \ + ((GstRtpJitterBuffer *)(obj)) typedef struct _GstRtpJitterBuffer GstRtpJitterBuffer; typedef struct _GstRtpJitterBufferClass GstRtpJitterBufferClass; diff --git a/gst/rtpmanager/gstrtpmanager.c b/gst/rtpmanager/gstrtpmanager.c index 9a2839997..426b0b79b 100644 --- a/gst/rtpmanager/gstrtpmanager.c +++ b/gst/rtpmanager/gstrtpmanager.c @@ -26,6 +26,8 @@ #include "gstrtpptdemux.h" #include "gstrtpsession.h" #include "gstrtprtxqueue.h" +#include "gstrtprtxreceive.h" +#include "gstrtprtxsend.h" #include "gstrtpssrcdemux.h" #include "gstrtpdtmfmux.h" #include "gstrtpmux.h" @@ -51,6 +53,12 @@ plugin_init (GstPlugin * plugin) if (!gst_rtp_rtx_queue_plugin_init (plugin)) return FALSE; + if (!gst_rtp_rtx_receive_plugin_init (plugin)) + return FALSE; + + if (!gst_rtp_rtx_send_plugin_init (plugin)) + return FALSE; + if (!gst_element_register (plugin, "rtpssrcdemux", GST_RANK_NONE, GST_TYPE_RTP_SSRC_DEMUX)) return FALSE; diff --git a/gst/rtpmanager/gstrtpmux.c b/gst/rtpmanager/gstrtpmux.c index a4b4f39fe..1fdfad54c 100644 --- a/gst/rtpmanager/gstrtpmux.c +++ b/gst/rtpmanager/gstrtpmux.c @@ -46,8 +46,6 @@ * generated, both are encoded into different payload types and muxed together * so they can be sent on the same port. * </refsect2> - * - * Last reviewed on 2010-09-30 (0.10.21) */ #ifdef HAVE_CONFIG_H @@ -412,7 +410,6 @@ gst_rtp_mux_chain_list (GstPad * pad, GstObject * parent, GstRTPMux *rtp_mux; GstFlowReturn ret; GstRTPMuxPadPrivate *padpriv; - gboolean drop = TRUE; struct BufferListData bd; rtp_mux = GST_RTP_MUX (parent); @@ -436,7 +433,7 @@ gst_rtp_mux_chain_list (GstPad * pad, GstObject * parent, GST_OBJECT_UNLOCK (rtp_mux); - if (drop) { + if (bd.drop) { gst_buffer_list_unref (bufferlist); ret = GST_FLOW_OK; } else { diff --git a/gst/rtpmanager/gstrtpptdemux.c b/gst/rtpmanager/gstrtpptdemux.c index 2c80ae033..305153923 100644 --- a/gst/rtpmanager/gstrtpptdemux.c +++ b/gst/rtpmanager/gstrtpptdemux.c @@ -46,8 +46,6 @@ * ]| Takes an RTP stream and send the RTP packets with the first detected * payload type to fakesink, discarding the other payload types. * </refsect2> - * - * Last reviewed on 2007-05-28 (0.10.5) */ /* diff --git a/gst/rtpmanager/gstrtprtxreceive.c b/gst/rtpmanager/gstrtprtxreceive.c new file mode 100644 index 000000000..bb0f7e439 --- /dev/null +++ b/gst/rtpmanager/gstrtprtxreceive.c @@ -0,0 +1,679 @@ +/* RTP Retransmission receiver element for GStreamer + * + * gstrtprtxreceive.c: + * + * Copyright (C) 2013 Collabora Ltd. + * @author Julien Isorce <julien.isorce@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. + */ + +/** + * SECTION:element-rtprtxreceive + * @see_also: rtprtxsend, rtpsession, rtpjitterbuffer + * + * The receiver will listen to the custom retransmission events from the + * downstream jitterbuffer and will remember the SSRC1 of the stream and + * seqnum that was requested. When it sees a packet with one of the stored + * seqnum, it associates the SSRC2 of the stream with the SSRC1 of the + * master stream. From then it knows that SSRC2 is the retransmission + * stream of SSRC1. This algorithm is stated in RFC 4588. For this + * algorithm to work, RFC4588 also states that no two pending retransmission + * requests can exist for the same seqnum and different SSRCs or else it + * would be impossible to associate the retransmission with the original + * requester SSRC. + * When the RTX receiver has associated the retransmission packets, + * it can depayload and forward them to the source pad of the element. + * RTX is SSRC-multiplexed. See #GstRtpRtxSend + * + * <refsect2> + * <title>Example pipelines</title> + * |[ + * gst-launch-1.0 rtpsession name=rtpsession \ + * audiotestsrc ! speexenc ! rtpspeexpay pt=97 ! rtprtxsend rtx-payload-type=99 ! \ + * identity drop-probability=0.1 ! rtpsession.send_rtp_sink \ + * rtpsession.send_rtp_src ! udpsink host="127.0.0.1" port=5000 \ + * udpsrc port=5001 ! rtpsession.recv_rtcp_sink \ + * rtpsession.send_rtcp_src ! udpsink host="127.0.0.1" port=5002 sync=false async=false + * ]| Send audio stream through port 5000. (5001 and 5002 are just the rtcp link with the receiver) + * |[ + * gst-launch-1.0 rtpsession name=rtpsession \ + * udpsrc port=5000 caps="application/x-rtp,media=(string)audio,clock-rate=(int)44100,encoding-name=(string)SPEEX,encoding-params=(string)1,octet-align=(string)1" ! \ + * rtpsession.recv_rtp_sink \ + * rtpsession.recv_rtp_src ! rtprtxreceive rtx-payload-types="99" ! rtpjitterbuffer do-retransmission=true ! rtpspeexdepay ! \ + * speexdec ! audioconvert ! autoaudiosink \ + * rtpsession.send_rtcp_src ! udpsink host="127.0.0.1" port=5001 \ + * udpsrc port=5002 ! rtpsession.recv_rtcp_sink sync=fakse async=false + * ]| Receive audio stream from port 5000. (5001 and 5002 are just the rtcp link with the sender) + * On sender side make sure to use a different payload type for the stream and + * its associated retransmission stream (see #GstRtpRtxSend). Note that several retransmission streams can + * have the same payload type so this is not deterministic. Actually the + * rtprtxreceiver element does the association using seqnum values. + * On receiver side set all the retransmission payload types (Those informations are retrieve + * through SDP). + * You should still hear a clear sound when setting drop-probability to something greater than 0. + * The rtpjitterbuffer will generate a custom upstream event GstRTPRetransmissionRequest when + * it assumes that one packet is missing. Then this request is translated to a FB NACK in the rtcp link + * Finally the rtpsession of the sender side re-convert it in a GstRTPRetransmissionRequest that will + * be handle by rtprtxsend. + * When increasing this value it may be possible that even the retransmission stream would be dropped + * so the receiver will ask to resend the packets again and again until it actually receive them. + * If the value is too high the rtprtxsend will not be able to retrieve the packet in its list of + * stored packets. For learning purpose you could try to increase the max-size-packets or max-size-time + * rtprtxsender's properties. + * Also note that you should use rtprtxsend through rtpbin and its set-aux-send property. See #GstRtpBin. + * |[ + * gst-launch-1.0 rtpsession name=rtpsession0 \ + * audiotestsrc wave=0 ! speexenc ! rtpspeexpay pt=97 ! rtprtxsend rtx-payload-type=99 seqnum-offset=1 ! \ + * identity drop-probability=0.1 ! rtpsession0.send_rtp_sink \ + * rtpsession0.send_rtp_src ! udpsink host="127.0.0.1" port=5000 \ + * udpsrc port=5001 ! rtpsession0.recv_rtcp_sink \ + * rtpsession0.send_rtcp_src ! udpsink host="127.0.0.1" port=5002 sync=false async=false \ + * rtpsession name=rtpsession1 \ + * audiotestsrc wave=0 ! speexenc ! rtpspeexpay pt=97 ! rtprtxsend rtx-payload-type=99 seqnum-offset=10 ! \ + * identity drop-probability=0.1 ! rtpsession1.send_rtp_sink \ + * rtpsession1.send_rtp_src ! udpsink host="127.0.0.1" port=5000 \ + * udpsrc port=5004 ! rtpsession1.recv_rtcp_sink \ + * rtpsession1.send_rtcp_src ! udpsink host="127.0.0.1" port=5002 sync=false async=false + * ]| Send two audio streams to port 5000. + * |[ + * gst-launch-1.0 rtpsession name=rtpsession + * udpsrc port=5000 caps="application/x-rtp,media=(string)audio,clock-rate=(int)44100,encoding-name=(string)SPEEX,encoding-params=(string)1,octet-align=(string)1" ! \ + * rtpsession.recv_rtp_sink \ + * rtpsession.recv_rtp_src ! rtprtxreceive rtx-payload-types="99" ! rtpssrcdemux name=demux \ + * demux. ! queue ! rtpjitterbuffer do-retransmission=true ! rtpspeexdepay ! speexdec ! audioconvert ! autoaudiosink \ + * demux. ! queue ! rtpjitterbuffer do-retransmission=true ! rtpspeexdepay ! speexdec ! audioconvert ! autoaudiosink \ + * rtpsession.send_rtcp_src ! ! tee name=t ! queue ! udpsink host="127.0.0.1" port=5001 t. ! queue ! udpsink host="127.0.0.1" port=5004 \ + * udpsrc port=5002 ! rtpsession.recv_rtcp_sink sync=fakse async=false + * ]| Receive audio stream from port 5000. + * On sender side the two streams have the same payload type for master streams, Same about retransmission streams. + * The streams are sent to the network through two distincts sessions. + * But we need to set a different seqnum-offset to make sure their seqnum navigate at a different rate like in concrete cases. + * We could also choose the same seqnum offset but we would require to set a different initial seqnum value. + * This is also why the rtprtxreceive can succeed to do the association between master and retransmission stream. + * On receiver side the same session is used to receive the two streams. So the rtpssrcdemux is here to demultiplex + * those two streams. The rtprtxreceive is responsible for reconstructing the original packets from the two retransmission streams. + * You can play with the drop-probability value for one or both streams. + * You should hear a clear sound. (after a few seconds the two streams wave feel synchronized) + * </refsect2> + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> +#include <gst/rtp/gstrtpbuffer.h> +#include <string.h> +#include <stdlib.h> + +#include "gstrtprtxreceive.h" + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_rtx_receive_debug); +#define GST_CAT_DEFAULT gst_rtp_rtx_receive_debug + +enum +{ + PROP_0, + PROP_PAYLOAD_TYPE_MAP, + PROP_NUM_RTX_REQUESTS, + PROP_NUM_RTX_PACKETS, + PROP_NUM_RTX_ASSOC_PACKETS, + PROP_LAST +}; + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp") + ); + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp") + ); + +static gboolean gst_rtp_rtx_receive_src_event (GstPad * pad, GstObject * parent, + GstEvent * event); +static GstFlowReturn gst_rtp_rtx_receive_chain (GstPad * pad, + GstObject * parent, GstBuffer * buffer); + +static GstStateChangeReturn gst_rtp_rtx_receive_change_state (GstElement * + element, GstStateChange transition); + +static void gst_rtp_rtx_receive_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtp_rtx_receive_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_rtp_rtx_receive_finalize (GObject * object); + +G_DEFINE_TYPE (GstRtpRtxReceive, gst_rtp_rtx_receive, GST_TYPE_ELEMENT); + +static void +gst_rtp_rtx_receive_class_init (GstRtpRtxReceiveClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->get_property = gst_rtp_rtx_receive_get_property; + gobject_class->set_property = gst_rtp_rtx_receive_set_property; + gobject_class->finalize = gst_rtp_rtx_receive_finalize; + + g_object_class_install_property (gobject_class, PROP_PAYLOAD_TYPE_MAP, + g_param_spec_boxed ("payload-type-map", "Payload Type Map", + "Map of original payload types to their retransmission payload types", + GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_NUM_RTX_REQUESTS, + g_param_spec_uint ("num-rtx-requests", "Num RTX Requests", + "Number of retransmission events received", 0, G_MAXUINT, + 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_NUM_RTX_PACKETS, + g_param_spec_uint ("num-rtx-packets", "Num RTX Packets", + " Number of retransmission packets received", 0, G_MAXUINT, + 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_NUM_RTX_ASSOC_PACKETS, + g_param_spec_uint ("num-rtx-assoc-packets", + "Num RTX Associated Packets", "Number of retransmission packets " + "correctly associated with retransmission requests", 0, G_MAXUINT, + 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sink_factory)); + + gst_element_class_set_static_metadata (gstelement_class, + "RTP Retransmission receiver", "Codec", + "Receive retransmitted RTP packets according to RFC4588", + "Julien Isorce <julien.isorce@collabora.co.uk>"); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_rtp_rtx_receive_change_state); +} + +static void +gst_rtp_rtx_receive_reset (GstRtpRtxReceive * rtx) +{ + GST_OBJECT_LOCK (rtx); + g_hash_table_remove_all (rtx->ssrc2_ssrc1_map); + g_hash_table_remove_all (rtx->seqnum_ssrc1_map); + rtx->num_rtx_requests = 0; + rtx->num_rtx_packets = 0; + rtx->num_rtx_assoc_packets = 0; + GST_OBJECT_UNLOCK (rtx); +} + +static void +gst_rtp_rtx_receive_finalize (GObject * object) +{ + GstRtpRtxReceive *rtx = GST_RTP_RTX_RECEIVE (object); + + g_hash_table_unref (rtx->ssrc2_ssrc1_map); + g_hash_table_unref (rtx->seqnum_ssrc1_map); + g_hash_table_unref (rtx->rtx_pt_map); + if (rtx->rtx_pt_map_structure) + gst_structure_free (rtx->rtx_pt_map_structure); + + G_OBJECT_CLASS (gst_rtp_rtx_receive_parent_class)->finalize (object); +} + +static void +gst_rtp_rtx_receive_init (GstRtpRtxReceive * rtx) +{ + GstElementClass *klass = GST_ELEMENT_GET_CLASS (rtx); + + rtx->srcpad = + gst_pad_new_from_template (gst_element_class_get_pad_template (klass, + "src"), "src"); + GST_PAD_SET_PROXY_CAPS (rtx->srcpad); + GST_PAD_SET_PROXY_ALLOCATION (rtx->srcpad); + gst_pad_set_event_function (rtx->srcpad, + GST_DEBUG_FUNCPTR (gst_rtp_rtx_receive_src_event)); + gst_element_add_pad (GST_ELEMENT (rtx), rtx->srcpad); + + rtx->sinkpad = + gst_pad_new_from_template (gst_element_class_get_pad_template (klass, + "sink"), "sink"); + GST_PAD_SET_PROXY_CAPS (rtx->sinkpad); + GST_PAD_SET_PROXY_ALLOCATION (rtx->sinkpad); + gst_pad_set_chain_function (rtx->sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_rtx_receive_chain)); + gst_element_add_pad (GST_ELEMENT (rtx), rtx->sinkpad); + + rtx->ssrc2_ssrc1_map = g_hash_table_new (g_direct_hash, g_direct_equal); + rtx->seqnum_ssrc1_map = g_hash_table_new (g_direct_hash, g_direct_equal); + + rtx->rtx_pt_map = g_hash_table_new (g_direct_hash, g_direct_equal); +} + +static gboolean +gst_rtp_rtx_receive_src_event (GstPad * pad, GstObject * parent, + GstEvent * event) +{ + GstRtpRtxReceive *rtx = GST_RTP_RTX_RECEIVE (parent); + gboolean res; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_UPSTREAM: + { + const GstStructure *s = gst_event_get_structure (event); + + /* This event usually comes from the downstream gstrtpjitterbuffer */ + if (gst_structure_has_name (s, "GstRTPRetransmissionRequest")) { + guint seqnum = 0; + guint ssrc = 0; + gpointer ssrc1 = 0; + gpointer ssrc2 = 0; + + /* retrieve seqnum of the packet that need to be restransmisted */ + if (!gst_structure_get_uint (s, "seqnum", &seqnum)) + seqnum = -1; + + /* retrieve ssrc of the packet that need to be restransmisted + * it's usefull when reconstructing the original packet from the rtx packet */ + if (!gst_structure_get_uint (s, "ssrc", &ssrc)) + ssrc = -1; + + GST_DEBUG_OBJECT (rtx, + "request seqnum: %" G_GUINT32_FORMAT ", ssrc: %" G_GUINT32_FORMAT, + seqnum, ssrc); + + GST_OBJECT_LOCK (rtx); + + /* increase number of seen requests for our statistics */ + ++rtx->num_rtx_requests; + + /* First, we lookup in our map to see if we have already associate this + * master stream ssrc with its retransmisted stream. + * Every ssrc are unique so we can use the same hash table + * for both retrieving the ssrc1 from ssrc2 and also ssrc2 from ssrc1 + */ + if (g_hash_table_lookup_extended (rtx->ssrc2_ssrc1_map, + GUINT_TO_POINTER (ssrc), NULL, &ssrc2) + && GPOINTER_TO_UINT (ssrc2) != GPOINTER_TO_UINT (ssrc)) { + GST_DEBUG_OBJECT (rtx, "Retransmited stream %" G_GUINT32_FORMAT + " already associated to its master", GPOINTER_TO_UINT (ssrc2)); + } else { + /* not already associated but also we have to check that we have not + * already considered this request. + */ + if (g_hash_table_lookup_extended (rtx->seqnum_ssrc1_map, + GUINT_TO_POINTER (seqnum), NULL, &ssrc1)) { + if (GPOINTER_TO_UINT (ssrc1) == ssrc) { + /* do nothing because we have already considered this request + * The jitter may be too impatient of the rtx packet has been + * lost too. + * It does not mean we reject the event, we still want to forward + * the request to the gstrtpsession to be translater into a FB NACK + */ + GST_DEBUG_OBJECT (rtx, "Duplicated request seqnum: %" + G_GUINT32_FORMAT ", ssrc1: %" G_GUINT32_FORMAT, seqnum, ssrc); + } else { + /* From RFC 4588: + * the receiver MUST NOT have two outstanding requests for the + * same packet sequence number in two different original streams + * before the association is resolved. Otherwise it's impossible + * to associate a rtx stream and its master stream + */ + GST_DEBUG_OBJECT (rtx, + "reject request for seqnum %" G_GUINT32_FORMAT + "of master stream %" G_GUINT32_FORMAT, seqnum, ssrc); + res = TRUE; + + /* remove seqnum in order to reuse the spot */ + g_hash_table_remove (rtx->seqnum_ssrc1_map, + GUINT_TO_POINTER (seqnum)); + + /* do not forward the event as we are rejecting this request */ + GST_OBJECT_UNLOCK (rtx); + gst_event_unref (event); + return res; + } + } else { + /* the request has not been already considered + * insert it for the first time */ + GST_DEBUG_OBJECT (rtx, + "packet number %" G_GUINT32_FORMAT " of master stream %" + G_GUINT32_FORMAT " needs to be retransmited", seqnum, ssrc); + g_hash_table_insert (rtx->seqnum_ssrc1_map, + GUINT_TO_POINTER (seqnum), GUINT_TO_POINTER (ssrc)); + } + } + + GST_OBJECT_UNLOCK (rtx); + } + /* Transfer event upstream so that the request can acutally by translated + * through gstrtpsession through the network */ + res = gst_pad_event_default (pad, parent, event); + break; + } + default: + res = gst_pad_event_default (pad, parent, event); + break; + } + return res; +} + +/* Copy fixed header and extension. Replace current ssrc by ssrc1, + * remove OSN and replace current seq num by OSN. + * Copy memory to avoid to manually copy each rtp buffer field. + */ +static GstBuffer * +_gst_rtp_buffer_new_from_rtx (GstRTPBuffer * rtp, guint32 ssrc1, + guint16 orign_seqnum, guint8 origin_payload_type) +{ + GstMemory *mem = NULL; + GstRTPBuffer new_rtp = GST_RTP_BUFFER_INIT; + GstBuffer *new_buffer = gst_buffer_new (); + GstMapInfo map; + guint payload_len = 0; + + /* copy fixed header */ + mem = gst_memory_copy (rtp->map[0].memory, 0, rtp->size[0]); + gst_buffer_append_memory (new_buffer, mem); + + /* copy extension if any */ + if (rtp->size[1]) { + mem = gst_memory_copy (rtp->map[1].memory, 0, rtp->size[1]); + gst_buffer_append_memory (new_buffer, mem); + } + + /* copy payload and remove OSN */ + payload_len = rtp->size[2] - 2; + mem = gst_allocator_alloc (NULL, payload_len, NULL); + + gst_memory_map (mem, &map, GST_MAP_WRITE); + if (rtp->size[2]) + memcpy (map.data, (guint8 *) rtp->data[2] + 2, payload_len); + gst_memory_unmap (mem, &map); + gst_buffer_append_memory (new_buffer, mem); + + /* the sender always constructs rtx packets without padding, + * But the receiver can still receive rtx packets with padding. + * So just copy it. + */ + if (rtp->size[3]) { + guint pad_len = rtp->size[3]; + + mem = gst_allocator_alloc (NULL, pad_len, NULL); + + gst_memory_map (mem, &map, GST_MAP_WRITE); + map.data[pad_len - 1] = pad_len; + gst_memory_unmap (mem, &map); + + gst_buffer_append_memory (new_buffer, mem); + } + + /* set ssrc and seq num */ + gst_rtp_buffer_map (new_buffer, GST_MAP_WRITE, &new_rtp); + gst_rtp_buffer_set_ssrc (&new_rtp, ssrc1); + gst_rtp_buffer_set_seq (&new_rtp, orign_seqnum); + gst_rtp_buffer_set_payload_type (&new_rtp, origin_payload_type); + gst_rtp_buffer_unmap (&new_rtp); + + gst_buffer_copy_into (new_buffer, rtp->buffer, + GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1); + + return new_buffer; +} + +static GstFlowReturn +gst_rtp_rtx_receive_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) +{ + GstRtpRtxReceive *rtx = GST_RTP_RTX_RECEIVE (parent); + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + GstFlowReturn ret = GST_FLOW_OK; + GstBuffer *new_buffer = NULL; + guint32 ssrc = 0; + gpointer ssrc1 = 0; + guint32 ssrc2 = 0; + guint16 seqnum = 0; + guint16 orign_seqnum = 0; + guint8 payload_type = 0; + guint8 origin_payload_type = 0; + gboolean is_rtx = FALSE; + gboolean drop = FALSE; + + /* map current rtp packet to parse its header */ + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + ssrc = gst_rtp_buffer_get_ssrc (&rtp); + seqnum = gst_rtp_buffer_get_seq (&rtp); + payload_type = gst_rtp_buffer_get_payload_type (&rtp); + + /* check if we have a retransmission packet (this information comes from SDP) */ + GST_OBJECT_LOCK (rtx); + + is_rtx = + g_hash_table_lookup_extended (rtx->rtx_pt_map, + GUINT_TO_POINTER (payload_type), NULL, NULL); + + /* if the current packet is from a retransmission stream */ + if (is_rtx) { + /* increase our statistic */ + ++rtx->num_rtx_packets; + + /* read OSN in the rtx payload */ + orign_seqnum = GST_READ_UINT16_BE (gst_rtp_buffer_get_payload (&rtp)); + origin_payload_type = + GPOINTER_TO_UINT (g_hash_table_lookup (rtx->rtx_pt_map, + GUINT_TO_POINTER (payload_type))); + + /* first we check if we already have associated this retransmission stream + * to a master stream */ + if (g_hash_table_lookup_extended (rtx->ssrc2_ssrc1_map, + GUINT_TO_POINTER (ssrc), NULL, &ssrc1)) { + GST_DEBUG_OBJECT (rtx, + "packet is from retransmission stream %" G_GUINT32_FORMAT + " already associated to master stream %" G_GUINT32_FORMAT, ssrc, + GPOINTER_TO_UINT (ssrc1)); + ssrc2 = ssrc; + } else { + /* the current retransmisted packet has its rtx stream not already + * associated to a master stream, so retrieve it from our request + * history */ + if (g_hash_table_lookup_extended (rtx->seqnum_ssrc1_map, + GUINT_TO_POINTER (orign_seqnum), NULL, &ssrc1)) { + GST_DEBUG_OBJECT (rtx, + "associate retransmisted stream %" G_GUINT32_FORMAT + " to master stream %" G_GUINT32_FORMAT " thanks to packet %" + G_GUINT16_FORMAT "", ssrc, GPOINTER_TO_UINT (ssrc1), orign_seqnum); + ssrc2 = ssrc; + + /* free the spot so that this seqnum can be used to do another + * association */ + g_hash_table_remove (rtx->seqnum_ssrc1_map, + GUINT_TO_POINTER (orign_seqnum)); + + /* actually do the association between rtx stream and master stream */ + g_hash_table_insert (rtx->ssrc2_ssrc1_map, GUINT_TO_POINTER (ssrc2), + ssrc1); + + /* just put a guard */ + if (GPOINTER_TO_UINT (ssrc1) == ssrc2) + GST_WARNING_OBJECT (rtx, "RTX receiver ssrc2_ssrc1_map bad state, " + "ssrc %" G_GUINT32_FORMAT " are the same\n", ssrc); + + /* also do the association between master stream and rtx stream + * every ssrc are unique so we can use the same hash table + * for both retrieving the ssrc1 from ssrc2 and also ssrc2 from ssrc1 + */ + g_hash_table_insert (rtx->ssrc2_ssrc1_map, ssrc1, + GUINT_TO_POINTER (ssrc2)); + } else { + /* we are not able to associate this rtx packet with a master stream */ + GST_DEBUG_OBJECT (rtx, + "drop rtx packet because its orign_seqnum %" G_GUINT16_FORMAT + " is not in pending retransmission requests", orign_seqnum); + drop = TRUE; + } + } + } + + /* if not dropped the packet was successfully associated */ + if (is_rtx && !drop) + ++rtx->num_rtx_assoc_packets; + + GST_OBJECT_UNLOCK (rtx); + + /* just drop the packet if the association could not have been made */ + if (drop) { + gst_rtp_buffer_unmap (&rtp); + gst_buffer_unref (buffer); + return GST_FLOW_OK; + } + + /* create the retransmission packet */ + if (is_rtx) + new_buffer = + _gst_rtp_buffer_new_from_rtx (&rtp, GPOINTER_TO_UINT (ssrc1), + orign_seqnum, origin_payload_type); + + gst_rtp_buffer_unmap (&rtp); + + /* push the packet */ + if (is_rtx) { + gst_buffer_unref (buffer); + GST_LOG_OBJECT (rtx, "push packet seqnum:%" G_GUINT16_FORMAT + " from a restransmission stream ssrc2:%" G_GUINT32_FORMAT " (src %" + G_GUINT32_FORMAT ")", orign_seqnum, ssrc2, GPOINTER_TO_UINT (ssrc1)); + ret = gst_pad_push (rtx->srcpad, new_buffer); + } else { + GST_LOG_OBJECT (rtx, "push packet seqnum:%" G_GUINT16_FORMAT + " from a master stream ssrc: %" G_GUINT32_FORMAT, seqnum, ssrc); + ret = gst_pad_push (rtx->srcpad, buffer); + } + + return ret; +} + +static void +gst_rtp_rtx_receive_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstRtpRtxReceive *rtx = GST_RTP_RTX_RECEIVE (object); + + switch (prop_id) { + case PROP_PAYLOAD_TYPE_MAP: + GST_OBJECT_LOCK (rtx); + g_value_set_boxed (value, rtx->rtx_pt_map_structure); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_NUM_RTX_REQUESTS: + GST_OBJECT_LOCK (rtx); + g_value_set_uint (value, rtx->num_rtx_requests); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_NUM_RTX_PACKETS: + GST_OBJECT_LOCK (rtx); + g_value_set_uint (value, rtx->num_rtx_packets); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_NUM_RTX_ASSOC_PACKETS: + GST_OBJECT_LOCK (rtx); + g_value_set_uint (value, rtx->num_rtx_assoc_packets); + GST_OBJECT_UNLOCK (rtx); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +structure_to_hash_table_inv (GQuark field_id, const GValue * value, + gpointer hash) +{ + const gchar *field_str; + guint field_uint; + guint value_uint; + + field_str = g_quark_to_string (field_id); + field_uint = atoi (field_str); + value_uint = g_value_get_uint (value); + g_hash_table_insert ((GHashTable *) hash, GUINT_TO_POINTER (value_uint), + GUINT_TO_POINTER (field_uint)); + + return TRUE; +} + +static void +gst_rtp_rtx_receive_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstRtpRtxReceive *rtx = GST_RTP_RTX_RECEIVE (object); + + switch (prop_id) { + case PROP_PAYLOAD_TYPE_MAP: + GST_OBJECT_LOCK (rtx); + if (rtx->rtx_pt_map_structure) + gst_structure_free (rtx->rtx_pt_map_structure); + rtx->rtx_pt_map_structure = g_value_dup_boxed (value); + g_hash_table_remove_all (rtx->rtx_pt_map); + gst_structure_foreach (rtx->rtx_pt_map_structure, + structure_to_hash_table_inv, rtx->rtx_pt_map); + GST_OBJECT_UNLOCK (rtx); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_rtp_rtx_receive_change_state (GstElement * element, + GstStateChange transition) +{ + GstStateChangeReturn ret; + GstRtpRtxReceive *rtx; + + rtx = GST_RTP_RTX_RECEIVE (element); + + switch (transition) { + default: + break; + } + + ret = + GST_ELEMENT_CLASS (gst_rtp_rtx_receive_parent_class)->change_state + (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_rtp_rtx_receive_reset (rtx); + break; + default: + break; + } + + return ret; +} + +gboolean +gst_rtp_rtx_receive_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (gst_rtp_rtx_receive_debug, "rtprtxreceive", 0, + "rtp retransmission receiver"); + + return gst_element_register (plugin, "rtprtxreceive", GST_RANK_NONE, + GST_TYPE_RTP_RTX_RECEIVE); +} diff --git a/gst/rtpmanager/gstrtprtxreceive.h b/gst/rtpmanager/gstrtprtxreceive.h new file mode 100644 index 000000000..c6b9cdf4e --- /dev/null +++ b/gst/rtpmanager/gstrtprtxreceive.h @@ -0,0 +1,78 @@ +/* RTP Retransmission receiver element for GStreamer + * + * gstrtprtxreceive.h: + * + * Copyright (C) 2013 Collabora Ltd. + * @author Julien Isorce <julien.isorce@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. + */ + +#ifndef __GST_RTP_RTX_RECEIVE_H__ +#define __GST_RTP_RTX_RECEIVE_H__ + +#include <gst/gst.h> +#include <gst/rtp/gstrtpbuffer.h> + +G_BEGIN_DECLS +#define GST_TYPE_RTP_RTX_RECEIVE (gst_rtp_rtx_receive_get_type()) +#define GST_RTP_RTX_RECEIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_RTX_RECEIVE, GstRtpRtxReceive)) +#define GST_RTP_RTX_RECEIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_RTX_RECEIVE, GstRtpRtxReceiveClass)) +#define GST_RTP_RTX_RECEIVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_RTX_RECEIVE, GstRtpRtxReceiveClass)) +#define GST_IS_RTP_RTX_RECEIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_RTX_RECEIVE)) +#define GST_IS_RTP_RTX_RECEIVE_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_RTX_RECEIVE)) +typedef struct _GstRtpRtxReceive GstRtpRtxReceive; +typedef struct _GstRtpRtxReceiveClass GstRtpRtxReceiveClass; + +struct _GstRtpRtxReceive +{ + GstElement element; + + /* pad */ + GstPad *sinkpad; + GstPad *srcpad; + + /* retrieve associated master stream from rtx stream + * it also works to retrieve rtx stream from master stream + * as we make sure all ssrc are unique */ + GHashTable *ssrc2_ssrc1_map; + + /* contains seqnum of request packets of whom their ssrc have + * not been associated to a rtx stream yet */ + GHashTable *seqnum_ssrc1_map; + + /* rtx pt (uint) -> origin pt (uint) */ + GHashTable *rtx_pt_map; + /* origin pt (string) -> rtx pt (uint) */ + GstStructure *rtx_pt_map_structure; + + /* statistics */ + guint num_rtx_requests; + guint num_rtx_packets; + guint num_rtx_assoc_packets; +}; + +struct _GstRtpRtxReceiveClass +{ + GstElementClass parent_class; +}; + + +GType gst_rtp_rtx_receive_get_type (void); +gboolean gst_rtp_rtx_receive_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_RTP_RTX_RECEIVE_H__ */ diff --git a/gst/rtpmanager/gstrtprtxsend.c b/gst/rtpmanager/gstrtprtxsend.c new file mode 100644 index 000000000..922fad3b2 --- /dev/null +++ b/gst/rtpmanager/gstrtprtxsend.c @@ -0,0 +1,887 @@ +/* RTP Retransmission sender element for GStreamer + * + * gstrtprtxsend.c: + * + * Copyright (C) 2013 Collabora Ltd. + * @author Julien Isorce <julien.isorce@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. + */ + +/** + * SECTION:element-rtprtxsend + * + * See #GstRtpRtxReceive for examples + * + * The purpose of the sender RTX object is to keep a history of RTP packets up + * to a configurable limit (max-size-time or max-size-packets). It will listen + * for upstream custom retransmission events (GstRTPRetransmissionRequest) that + * comes from downstream (#GstRtpSession). When receiving a request it will + * look up the requested seqnum in its list of stored packets. If the packet + * is available, it will create a RTX packet according to RFC 4588 and send + * this as an auxiliary stream. RTX is SSRC-multiplexed + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> +#include <gst/rtp/gstrtpbuffer.h> +#include <string.h> +#include <stdlib.h> + +#include "gstrtprtxsend.h" + +GST_DEBUG_CATEGORY_STATIC (gst_rtp_rtx_send_debug); +#define GST_CAT_DEFAULT gst_rtp_rtx_send_debug + +#define DEFAULT_RTX_PAYLOAD_TYPE 0 +#define DEFAULT_MAX_SIZE_TIME 0 +#define DEFAULT_MAX_SIZE_PACKETS 100 + +enum +{ + PROP_0, + PROP_SSRC_MAP, + PROP_PAYLOAD_TYPE_MAP, + PROP_MAX_SIZE_TIME, + PROP_MAX_SIZE_PACKETS, + PROP_NUM_RTX_REQUESTS, + PROP_NUM_RTX_PACKETS, + PROP_LAST +}; + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp") + ); + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp, " "clock-rate = (int) [1, MAX]") + ); + +static gboolean gst_rtp_rtx_send_queue_check_full (GstDataQueue * queue, + guint visible, guint bytes, guint64 time, gpointer checkdata); + +static gboolean gst_rtp_rtx_send_src_event (GstPad * pad, GstObject * parent, + GstEvent * event); +static gboolean gst_rtp_rtx_send_sink_event (GstPad * pad, GstObject * parent, + GstEvent * event); +static GstFlowReturn gst_rtp_rtx_send_chain (GstPad * pad, GstObject * parent, + GstBuffer * buffer); + +static void gst_rtp_rtx_send_src_loop (GstRtpRtxSend * rtx); +static gboolean gst_rtp_rtx_send_activate_mode (GstPad * pad, + GstObject * parent, GstPadMode mode, gboolean active); + +static GstStateChangeReturn gst_rtp_rtx_send_change_state (GstElement * + element, GstStateChange transition); + +static void gst_rtp_rtx_send_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_rtp_rtx_send_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_rtp_rtx_send_finalize (GObject * object); + +G_DEFINE_TYPE (GstRtpRtxSend, gst_rtp_rtx_send, GST_TYPE_ELEMENT); + +typedef struct +{ + guint16 seqnum; + guint32 timestamp; + GstBuffer *buffer; +} BufferQueueItem; + +static void +buffer_queue_item_free (BufferQueueItem * item) +{ + gst_buffer_unref (item->buffer); + g_slice_free (BufferQueueItem, item); +} + +typedef struct +{ + guint32 rtx_ssrc; + guint16 next_seqnum; + gint clock_rate; + + /* history of rtp packets */ + GSequence *queue; +} SSRCRtxData; + +static SSRCRtxData * +ssrc_rtx_data_new (guint32 rtx_ssrc) +{ + SSRCRtxData *data = g_slice_new0 (SSRCRtxData); + + data->rtx_ssrc = rtx_ssrc; + data->next_seqnum = g_random_int_range (0, G_MAXUINT16); + data->queue = g_sequence_new ((GDestroyNotify) buffer_queue_item_free); + + return data; +} + +static void +ssrc_rtx_data_free (SSRCRtxData * data) +{ + g_sequence_free (data->queue); + g_slice_free (SSRCRtxData, data); +} + +static void +gst_rtp_rtx_send_class_init (GstRtpRtxSendClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->get_property = gst_rtp_rtx_send_get_property; + gobject_class->set_property = gst_rtp_rtx_send_set_property; + gobject_class->finalize = gst_rtp_rtx_send_finalize; + + g_object_class_install_property (gobject_class, PROP_SSRC_MAP, + g_param_spec_boxed ("ssrc-map", "SSRC Map", + "Map of SSRCs to their retransmission SSRCs for SSRC-multiplexed mode" + " (default = random)", GST_TYPE_STRUCTURE, + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_PAYLOAD_TYPE_MAP, + g_param_spec_boxed ("payload-type-map", "Payload Type Map", + "Map of original payload types to their retransmission payload types", + GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_MAX_SIZE_TIME, + g_param_spec_uint ("max-size-time", "Max Size Time", + "Amount of ms to queue (0 = unlimited)", 0, G_MAXUINT, + DEFAULT_MAX_SIZE_TIME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_MAX_SIZE_PACKETS, + g_param_spec_uint ("max-size-packets", "Max Size Packets", + "Amount of packets to queue (0 = unlimited)", 0, G_MAXINT16, + DEFAULT_MAX_SIZE_PACKETS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_NUM_RTX_REQUESTS, + g_param_spec_uint ("num-rtx-requests", "Num RTX Requests", + "Number of retransmission events received", 0, G_MAXUINT, + 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_NUM_RTX_PACKETS, + g_param_spec_uint ("num-rtx-packets", "Num RTX Packets", + " Number of retransmission packets sent", 0, G_MAXUINT, + 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&sink_factory)); + + gst_element_class_set_static_metadata (gstelement_class, + "RTP Retransmission Sender", "Codec", + "Retransmit RTP packets when needed, according to RFC4588", + "Julien Isorce <julien.isorce@collabora.co.uk>"); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_rtp_rtx_send_change_state); +} + +static void +gst_rtp_rtx_send_reset (GstRtpRtxSend * rtx) +{ + GST_OBJECT_LOCK (rtx); + gst_data_queue_flush (rtx->queue); + g_hash_table_remove_all (rtx->ssrc_data); + g_hash_table_remove_all (rtx->rtx_ssrcs); + rtx->num_rtx_requests = 0; + rtx->num_rtx_packets = 0; + GST_OBJECT_UNLOCK (rtx); +} + +static void +gst_rtp_rtx_send_finalize (GObject * object) +{ + GstRtpRtxSend *rtx = GST_RTP_RTX_SEND (object); + + g_hash_table_unref (rtx->ssrc_data); + g_hash_table_unref (rtx->rtx_ssrcs); + if (rtx->external_ssrc_map) + gst_structure_free (rtx->external_ssrc_map); + g_hash_table_unref (rtx->rtx_pt_map); + if (rtx->rtx_pt_map_structure) + gst_structure_free (rtx->rtx_pt_map_structure); + g_object_unref (rtx->queue); + + G_OBJECT_CLASS (gst_rtp_rtx_send_parent_class)->finalize (object); +} + +static void +gst_rtp_rtx_send_init (GstRtpRtxSend * rtx) +{ + GstElementClass *klass = GST_ELEMENT_GET_CLASS (rtx); + + rtx->srcpad = + gst_pad_new_from_template (gst_element_class_get_pad_template (klass, + "src"), "src"); + GST_PAD_SET_PROXY_CAPS (rtx->srcpad); + GST_PAD_SET_PROXY_ALLOCATION (rtx->srcpad); + gst_pad_set_event_function (rtx->srcpad, + GST_DEBUG_FUNCPTR (gst_rtp_rtx_send_src_event)); + gst_pad_set_activatemode_function (rtx->srcpad, + GST_DEBUG_FUNCPTR (gst_rtp_rtx_send_activate_mode)); + gst_element_add_pad (GST_ELEMENT (rtx), rtx->srcpad); + + rtx->sinkpad = + gst_pad_new_from_template (gst_element_class_get_pad_template (klass, + "sink"), "sink"); + GST_PAD_SET_PROXY_CAPS (rtx->sinkpad); + GST_PAD_SET_PROXY_ALLOCATION (rtx->sinkpad); + gst_pad_set_event_function (rtx->sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_rtx_send_sink_event)); + gst_pad_set_chain_function (rtx->sinkpad, + GST_DEBUG_FUNCPTR (gst_rtp_rtx_send_chain)); + gst_element_add_pad (GST_ELEMENT (rtx), rtx->sinkpad); + + rtx->queue = gst_data_queue_new (gst_rtp_rtx_send_queue_check_full, NULL, + NULL, rtx); + rtx->ssrc_data = g_hash_table_new_full (g_direct_hash, g_direct_equal, + NULL, (GDestroyNotify) ssrc_rtx_data_free); + rtx->rtx_ssrcs = g_hash_table_new (g_direct_hash, g_direct_equal); + rtx->rtx_pt_map = g_hash_table_new (g_direct_hash, g_direct_equal); + + rtx->max_size_time = DEFAULT_MAX_SIZE_TIME; + rtx->max_size_packets = DEFAULT_MAX_SIZE_PACKETS; +} + +static void +gst_rtp_rtx_send_set_flushing (GstRtpRtxSend * rtx, gboolean flush) +{ + GST_OBJECT_LOCK (rtx); + gst_data_queue_set_flushing (rtx->queue, flush); + gst_data_queue_flush (rtx->queue); + GST_OBJECT_UNLOCK (rtx); +} + +static gboolean +gst_rtp_rtx_send_queue_check_full (GstDataQueue * queue, + guint visible, guint bytes, guint64 time, gpointer checkdata) +{ + return FALSE; +} + +static void +gst_rtp_rtx_data_queue_item_free (gpointer item) +{ + GstDataQueueItem *data = item; + if (data->object) + gst_mini_object_unref (data->object); + g_slice_free (GstDataQueueItem, data); +} + +static gboolean +gst_rtp_rtx_send_push_out (GstRtpRtxSend * rtx, gpointer object) +{ + GstDataQueueItem *data; + gboolean success; + + data = g_slice_new0 (GstDataQueueItem); + data->object = GST_MINI_OBJECT (object); + data->size = 1; + data->duration = 1; + data->visible = TRUE; + data->destroy = gst_rtp_rtx_data_queue_item_free; + + success = gst_data_queue_push (rtx->queue, data); + + if (!success) + data->destroy (data); + + return success; +} + +static guint32 +gst_rtp_rtx_send_choose_ssrc (GstRtpRtxSend * rtx, guint32 choice, + gboolean consider_choice) +{ + guint32 ssrc = consider_choice ? choice : g_random_int (); + + /* make sure to be different than any other */ + while (g_hash_table_contains (rtx->ssrc_data, GUINT_TO_POINTER (ssrc)) || + g_hash_table_contains (rtx->rtx_ssrcs, GUINT_TO_POINTER (ssrc))) { + ssrc = g_random_int (); + } + + return ssrc; +} + +static SSRCRtxData * +gst_rtp_rtx_send_get_ssrc_data (GstRtpRtxSend * rtx, guint32 ssrc) +{ + SSRCRtxData *data; + guint32 rtx_ssrc = 0; + gboolean consider = FALSE; + + if (G_UNLIKELY (!g_hash_table_contains (rtx->ssrc_data, + GUINT_TO_POINTER (ssrc)))) { + if (rtx->external_ssrc_map) { + gchar *ssrc_str; + ssrc_str = g_strdup_printf ("%" G_GUINT32_FORMAT, ssrc); + consider = gst_structure_get_uint (rtx->external_ssrc_map, ssrc_str, + &rtx_ssrc); + g_free (ssrc_str); + } + rtx_ssrc = gst_rtp_rtx_send_choose_ssrc (rtx, rtx_ssrc, consider); + data = ssrc_rtx_data_new (rtx_ssrc); + g_hash_table_insert (rtx->ssrc_data, GUINT_TO_POINTER (ssrc), data); + g_hash_table_insert (rtx->rtx_ssrcs, GUINT_TO_POINTER (rtx_ssrc), + GUINT_TO_POINTER (ssrc)); + } else { + data = g_hash_table_lookup (rtx->ssrc_data, GUINT_TO_POINTER (ssrc)); + } + return data; +} + +/* Copy fixed header and extension. Add OSN before to copy payload + * Copy memory to avoid to manually copy each rtp buffer field. + */ +static GstBuffer * +gst_rtp_rtx_buffer_new (GstRtpRtxSend * rtx, GstBuffer * buffer) +{ + GstMemory *mem = NULL; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + GstRTPBuffer new_rtp = GST_RTP_BUFFER_INIT; + GstBuffer *new_buffer = gst_buffer_new (); + GstMapInfo map; + guint payload_len = 0; + SSRCRtxData *data; + guint32 ssrc; + guint16 seqnum; + guint8 fmtp; + + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + + /* get needed data from GstRtpRtxSend */ + ssrc = gst_rtp_buffer_get_ssrc (&rtp); + data = gst_rtp_rtx_send_get_ssrc_data (rtx, ssrc); + ssrc = data->rtx_ssrc; + seqnum = data->next_seqnum++; + fmtp = GPOINTER_TO_UINT (g_hash_table_lookup (rtx->rtx_pt_map, + GUINT_TO_POINTER (gst_rtp_buffer_get_payload_type (&rtp)))); + + GST_DEBUG_OBJECT (rtx, + "retransmit seqnum: %" G_GUINT16_FORMAT ", ssrc: %" G_GUINT32_FORMAT, + seqnum, ssrc); + + /* gst_rtp_buffer_map does not map the payload so do it now */ + gst_rtp_buffer_get_payload (&rtp); + + /* copy fixed header */ + mem = gst_memory_copy (rtp.map[0].memory, 0, rtp.size[0]); + gst_buffer_append_memory (new_buffer, mem); + + /* copy extension if any */ + if (rtp.size[1]) { + mem = gst_memory_copy (rtp.map[1].memory, 0, rtp.size[1]); + gst_buffer_append_memory (new_buffer, mem); + } + + /* copy payload and add OSN just before */ + payload_len = 2 + rtp.size[2]; + mem = gst_allocator_alloc (NULL, payload_len, NULL); + + gst_memory_map (mem, &map, GST_MAP_WRITE); + GST_WRITE_UINT16_BE (map.data, gst_rtp_buffer_get_seq (&rtp)); + if (rtp.size[2]) + memcpy (map.data + 2, rtp.data[2], rtp.size[2]); + gst_memory_unmap (mem, &map); + gst_buffer_append_memory (new_buffer, mem); + + /* everything needed is copied */ + gst_rtp_buffer_unmap (&rtp); + + /* set ssrc, seqnum and fmtp */ + gst_rtp_buffer_map (new_buffer, GST_MAP_WRITE, &new_rtp); + gst_rtp_buffer_set_ssrc (&new_rtp, ssrc); + gst_rtp_buffer_set_seq (&new_rtp, seqnum); + gst_rtp_buffer_set_payload_type (&new_rtp, fmtp); + /* RFC 4588: let other elements do the padding, as normal */ + gst_rtp_buffer_set_padding (&new_rtp, FALSE); + gst_rtp_buffer_unmap (&new_rtp); + + return new_buffer; +} + +static gint +buffer_queue_items_cmp (BufferQueueItem * a, BufferQueueItem * b, + gpointer user_data) +{ + /* gst_rtp_buffer_compare_seqnum returns the opposite of what we want, + * it returns negative when seqnum1 > seqnum2 and we want negative + * when b > a, i.e. a is smaller, so it comes first in the sequence */ + return gst_rtp_buffer_compare_seqnum (b->seqnum, a->seqnum); +} + +static gboolean +gst_rtp_rtx_send_src_event (GstPad * pad, GstObject * parent, GstEvent * event) +{ + GstRtpRtxSend *rtx = GST_RTP_RTX_SEND (parent); + gboolean res; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_CUSTOM_UPSTREAM: + { + const GstStructure *s = gst_event_get_structure (event); + + /* This event usually comes from the downstream gstrtpsession */ + if (gst_structure_has_name (s, "GstRTPRetransmissionRequest")) { + guint seqnum = 0; + guint ssrc = 0; + GstBuffer *rtx_buf = NULL; + + /* retrieve seqnum of the packet that need to be restransmisted */ + if (!gst_structure_get_uint (s, "seqnum", &seqnum)) + seqnum = -1; + + /* retrieve ssrc of the packet that need to be restransmisted */ + if (!gst_structure_get_uint (s, "ssrc", &ssrc)) + ssrc = -1; + + GST_DEBUG_OBJECT (rtx, + "request seqnum: %" G_GUINT32_FORMAT ", ssrc: %" G_GUINT32_FORMAT, + seqnum, ssrc); + + GST_OBJECT_LOCK (rtx); + /* check if request is for us */ + if (g_hash_table_contains (rtx->ssrc_data, GUINT_TO_POINTER (ssrc))) { + SSRCRtxData *data; + GSequenceIter *iter; + BufferQueueItem search_item; + + /* update statistics */ + ++rtx->num_rtx_requests; + + data = gst_rtp_rtx_send_get_ssrc_data (rtx, ssrc); + + search_item.seqnum = seqnum; + iter = g_sequence_lookup (data->queue, &search_item, + (GCompareDataFunc) buffer_queue_items_cmp, NULL); + if (iter) { + BufferQueueItem *item = g_sequence_get (iter); + GST_DEBUG_OBJECT (rtx, "found %" G_GUINT16_FORMAT, item->seqnum); + rtx_buf = gst_rtp_rtx_buffer_new (rtx, item->buffer); + } + } + GST_OBJECT_UNLOCK (rtx); + + if (rtx_buf) + gst_rtp_rtx_send_push_out (rtx, rtx_buf); + + gst_event_unref (event); + res = TRUE; + + /* This event usually comes from the downstream gstrtpsession */ + } else if (gst_structure_has_name (s, "GstRTPCollision")) { + guint ssrc = 0; + + if (!gst_structure_get_uint (s, "ssrc", &ssrc)) + ssrc = -1; + + GST_DEBUG_OBJECT (rtx, "collision ssrc: %" G_GUINT32_FORMAT, ssrc); + + GST_OBJECT_LOCK (rtx); + + /* choose another ssrc for our retransmited stream */ + if (g_hash_table_contains (rtx->rtx_ssrcs, GUINT_TO_POINTER (ssrc))) { + guint master_ssrc; + SSRCRtxData *data; + + master_ssrc = GPOINTER_TO_UINT (g_hash_table_lookup (rtx->rtx_ssrcs, + GUINT_TO_POINTER (ssrc))); + data = gst_rtp_rtx_send_get_ssrc_data (rtx, master_ssrc); + + /* change rtx_ssrc and update the reverse map */ + data->rtx_ssrc = gst_rtp_rtx_send_choose_ssrc (rtx, 0, FALSE); + g_hash_table_remove (rtx->rtx_ssrcs, GUINT_TO_POINTER (ssrc)); + g_hash_table_insert (rtx->rtx_ssrcs, + GUINT_TO_POINTER (data->rtx_ssrc), + GUINT_TO_POINTER (master_ssrc)); + + GST_OBJECT_UNLOCK (rtx); + + /* no need to forward to payloader because we make sure to have + * a different ssrc + */ + gst_event_unref (event); + res = TRUE; + } else { + /* if master ssrc has collided, remove it from our data, as it + * is not going to be used any longer */ + if (g_hash_table_contains (rtx->ssrc_data, GUINT_TO_POINTER (ssrc))) { + SSRCRtxData *data; + data = gst_rtp_rtx_send_get_ssrc_data (rtx, ssrc); + g_hash_table_remove (rtx->rtx_ssrcs, + GUINT_TO_POINTER (data->rtx_ssrc)); + g_hash_table_remove (rtx->ssrc_data, GUINT_TO_POINTER (ssrc)); + } + + GST_OBJECT_UNLOCK (rtx); + + /* forward event to payloader in case collided ssrc is + * master stream */ + res = gst_pad_event_default (pad, parent, event); + } + } else { + res = gst_pad_event_default (pad, parent, event); + } + break; + } + default: + res = gst_pad_event_default (pad, parent, event); + break; + } + return res; +} + +static gboolean +gst_rtp_rtx_send_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) +{ + GstRtpRtxSend *rtx = GST_RTP_RTX_SEND (parent); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + gst_pad_push_event (rtx->srcpad, event); + gst_rtp_rtx_send_set_flushing (rtx, TRUE); + gst_pad_pause_task (rtx->srcpad); + return TRUE; + case GST_EVENT_FLUSH_STOP: + gst_pad_push_event (rtx->srcpad, event); + gst_rtp_rtx_send_set_flushing (rtx, FALSE); + gst_pad_start_task (rtx->srcpad, + (GstTaskFunction) gst_rtp_rtx_send_src_loop, rtx, NULL); + return TRUE; + case GST_EVENT_EOS: + GST_INFO_OBJECT (rtx, "Got EOS - enqueueing it"); + gst_rtp_rtx_send_push_out (rtx, event); + return TRUE; + case GST_EVENT_CAPS: + { + GstCaps *caps; + GstStructure *s; + guint ssrc; + SSRCRtxData *data; + + gst_event_parse_caps (event, &caps); + g_assert (gst_caps_is_fixed (caps)); + + s = gst_caps_get_structure (caps, 0); + if (!gst_structure_get_uint (s, "ssrc", &ssrc)) + ssrc = -1; + + GST_OBJECT_LOCK (rtx); + data = gst_rtp_rtx_send_get_ssrc_data (rtx, ssrc); + gst_structure_get_int (s, "clock-rate", &data->clock_rate); + + GST_DEBUG_OBJECT (rtx, "got clock-rate from caps: %d for ssrc: %u", + data->clock_rate, ssrc); + GST_OBJECT_UNLOCK (rtx); + break; + } + default: + break; + } + return gst_pad_event_default (pad, parent, event); +} + +/* like rtp_jitter_buffer_get_ts_diff() */ +static guint32 +gst_rtp_rtx_send_get_ts_diff (SSRCRtxData * data) +{ + guint64 high_ts, low_ts; + BufferQueueItem *high_buf, *low_buf; + guint32 result; + + high_buf = + g_sequence_get (g_sequence_iter_prev (g_sequence_get_end_iter + (data->queue))); + low_buf = g_sequence_get (g_sequence_get_begin_iter (data->queue)); + + if (!high_buf || !low_buf || high_buf == low_buf) + return 0; + + high_ts = high_buf->timestamp; + low_ts = low_buf->timestamp; + + /* it needs to work if ts wraps */ + if (high_ts >= low_ts) { + result = (guint32) (high_ts - low_ts); + } else { + result = (guint32) (high_ts + G_MAXUINT32 + 1 - low_ts); + } + + /* return value in ms instead of clock ticks */ + return (guint32) gst_util_uint64_scale_int (result, 1000, data->clock_rate); +} + +static GstFlowReturn +gst_rtp_rtx_send_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) +{ + GstRtpRtxSend *rtx = GST_RTP_RTX_SEND (parent); + GstFlowReturn ret = GST_FLOW_ERROR; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + BufferQueueItem *item; + SSRCRtxData *data; + guint16 seqnum; + guint8 payload_type; + guint32 ssrc, rtptime; + + /* read the information we want from the buffer */ + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + seqnum = gst_rtp_buffer_get_seq (&rtp); + payload_type = gst_rtp_buffer_get_payload_type (&rtp); + ssrc = gst_rtp_buffer_get_ssrc (&rtp); + rtptime = gst_rtp_buffer_get_timestamp (&rtp); + gst_rtp_buffer_unmap (&rtp); + + GST_OBJECT_LOCK (rtx); + + /* do not store the buffer if it's payload type is unknown */ + if (g_hash_table_contains (rtx->rtx_pt_map, GUINT_TO_POINTER (payload_type))) { + data = gst_rtp_rtx_send_get_ssrc_data (rtx, ssrc); + + /* add current rtp buffer to queue history */ + item = g_slice_new0 (BufferQueueItem); + item->seqnum = seqnum; + item->timestamp = rtptime; + item->buffer = gst_buffer_ref (buffer); + g_sequence_append (data->queue, item); + + /* remove oldest packets from history if they are too many */ + if (rtx->max_size_packets) { + while (g_sequence_get_length (data->queue) > rtx->max_size_packets) + g_sequence_remove (g_sequence_get_begin_iter (data->queue)); + } + if (rtx->max_size_time) { + while (gst_rtp_rtx_send_get_ts_diff (data) > rtx->max_size_time) + g_sequence_remove (g_sequence_get_begin_iter (data->queue)); + } + } + + GST_OBJECT_UNLOCK (rtx); + + GST_LOG_OBJECT (rtx, + "push seqnum: %" G_GUINT16_FORMAT ", ssrc: %" G_GUINT32_FORMAT, seqnum, + ssrc); + + ret = gst_pad_push (rtx->srcpad, buffer); + + return ret; +} + +static void +gst_rtp_rtx_send_src_loop (GstRtpRtxSend * rtx) +{ + GstDataQueueItem *data; + + if (gst_data_queue_pop (rtx->queue, &data)) { + GST_LOG_OBJECT (rtx, "pushing rtx buffer %p", data->object); + + if (G_LIKELY (GST_IS_BUFFER (data->object))) { + gst_pad_push (rtx->srcpad, GST_BUFFER (data->object)); + + GST_OBJECT_LOCK (rtx); + rtx->num_rtx_packets++; + GST_OBJECT_UNLOCK (rtx); + } else if (GST_IS_EVENT (data->object)) { + gst_pad_push_event (rtx->srcpad, GST_EVENT (data->object)); + + /* after EOS, we should not send any more buffers, + * even if there are more requests coming in */ + if (GST_EVENT_TYPE (data->object) == GST_EVENT_EOS) { + gst_rtp_rtx_send_set_flushing (rtx, TRUE); + } + } else { + g_assert_not_reached (); + } + + data->object = NULL; /* we no longer own that object */ + data->destroy (data); + } else { + GST_LOG_OBJECT (rtx, "flushing"); + gst_pad_pause_task (rtx->srcpad); + } +} + +static gboolean +gst_rtp_rtx_send_activate_mode (GstPad * pad, GstObject * parent, + GstPadMode mode, gboolean active) +{ + GstRtpRtxSend *rtx = GST_RTP_RTX_SEND (parent); + gboolean ret = FALSE; + + switch (mode) { + case GST_PAD_MODE_PUSH: + if (active) { + gst_rtp_rtx_send_set_flushing (rtx, FALSE); + ret = gst_pad_start_task (rtx->srcpad, + (GstTaskFunction) gst_rtp_rtx_send_src_loop, rtx, NULL); + } else { + gst_rtp_rtx_send_set_flushing (rtx, TRUE); + ret = gst_pad_stop_task (rtx->srcpad); + } + GST_INFO_OBJECT (rtx, "activate_mode: active %d, ret %d", active, ret); + break; + default: + break; + } + return ret; +} + +static void +gst_rtp_rtx_send_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstRtpRtxSend *rtx = GST_RTP_RTX_SEND (object); + + switch (prop_id) { + case PROP_PAYLOAD_TYPE_MAP: + GST_OBJECT_LOCK (rtx); + g_value_set_boxed (value, rtx->rtx_pt_map_structure); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_MAX_SIZE_TIME: + GST_OBJECT_LOCK (rtx); + g_value_set_uint (value, rtx->max_size_time); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_MAX_SIZE_PACKETS: + GST_OBJECT_LOCK (rtx); + g_value_set_uint (value, rtx->max_size_packets); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_NUM_RTX_REQUESTS: + GST_OBJECT_LOCK (rtx); + g_value_set_uint (value, rtx->num_rtx_requests); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_NUM_RTX_PACKETS: + GST_OBJECT_LOCK (rtx); + g_value_set_uint (value, rtx->num_rtx_packets); + GST_OBJECT_UNLOCK (rtx); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +structure_to_hash_table (GQuark field_id, const GValue * value, gpointer hash) +{ + const gchar *field_str; + guint field_uint; + guint value_uint; + + field_str = g_quark_to_string (field_id); + field_uint = atoi (field_str); + value_uint = g_value_get_uint (value); + g_hash_table_insert ((GHashTable *) hash, GUINT_TO_POINTER (field_uint), + GUINT_TO_POINTER (value_uint)); + + return TRUE; +} + +static void +gst_rtp_rtx_send_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstRtpRtxSend *rtx = GST_RTP_RTX_SEND (object); + + switch (prop_id) { + case PROP_SSRC_MAP: + GST_OBJECT_LOCK (rtx); + if (rtx->external_ssrc_map) + gst_structure_free (rtx->external_ssrc_map); + rtx->external_ssrc_map = g_value_dup_boxed (value); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_PAYLOAD_TYPE_MAP: + GST_OBJECT_LOCK (rtx); + if (rtx->rtx_pt_map_structure) + gst_structure_free (rtx->rtx_pt_map_structure); + rtx->rtx_pt_map_structure = g_value_dup_boxed (value); + g_hash_table_remove_all (rtx->rtx_pt_map); + gst_structure_foreach (rtx->rtx_pt_map_structure, structure_to_hash_table, + rtx->rtx_pt_map); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_MAX_SIZE_TIME: + GST_OBJECT_LOCK (rtx); + rtx->max_size_time = g_value_get_uint (value); + GST_OBJECT_UNLOCK (rtx); + break; + case PROP_MAX_SIZE_PACKETS: + GST_OBJECT_LOCK (rtx); + rtx->max_size_packets = g_value_get_uint (value); + GST_OBJECT_UNLOCK (rtx); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_rtp_rtx_send_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + GstRtpRtxSend *rtx; + + rtx = GST_RTP_RTX_SEND (element); + + switch (transition) { + default: + break; + } + + ret = + GST_ELEMENT_CLASS (gst_rtp_rtx_send_parent_class)->change_state (element, + transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_rtp_rtx_send_reset (rtx); + break; + default: + break; + } + + return ret; +} + +gboolean +gst_rtp_rtx_send_plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (gst_rtp_rtx_send_debug, "rtprtxsend", 0, + "rtp retransmission sender"); + + return gst_element_register (plugin, "rtprtxsend", GST_RANK_NONE, + GST_TYPE_RTP_RTX_SEND); +} diff --git a/gst/rtpmanager/gstrtprtxsend.h b/gst/rtpmanager/gstrtprtxsend.h new file mode 100644 index 000000000..5f084e8e7 --- /dev/null +++ b/gst/rtpmanager/gstrtprtxsend.h @@ -0,0 +1,84 @@ +/* RTP Retransmission sender element for GStreamer + * + * gstrtprtxsend.h: + * + * Copyright (C) 2013 Collabora Ltd. + * @author Julien Isorce <julien.isorce@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. + */ + +#ifndef __GST_RTP_RTX_SEND_H__ +#define __GST_RTP_RTX_SEND_H__ + +#include <gst/gst.h> +#include <gst/rtp/gstrtpbuffer.h> +#include <gst/base/gstdataqueue.h> + +G_BEGIN_DECLS +#define GST_TYPE_RTP_RTX_SEND (gst_rtp_rtx_send_get_type()) +#define GST_RTP_RTX_SEND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_RTX_SEND, GstRtpRtxSend)) +#define GST_RTP_RTX_SEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_RTX_SEND, GstRtpRtxSendClass)) +#define GST_RTP_RTX_SEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_RTP_RTX_SEND, GstRtpRtxSendClass)) +#define GST_IS_RTP_RTX_SEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_RTX_SEND)) +#define GST_IS_RTP_RTX_SEND_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_RTX_SEND)) +typedef struct _GstRtpRtxSend GstRtpRtxSend; +typedef struct _GstRtpRtxSendClass GstRtpRtxSendClass; + +struct _GstRtpRtxSend +{ + GstElement element; + + /* pad */ + GstPad *sinkpad; + GstPad *srcpad; + + /* rtp packets that will be pushed out */ + GstDataQueue *queue; + + /* ssrc -> SSRCRtxData */ + GHashTable *ssrc_data; + /* rtx ssrc -> master ssrc */ + GHashTable *rtx_ssrcs; + + /* master ssrc -> rtx ssrc (property) */ + GstStructure *external_ssrc_map; + + /* orig pt (uint) -> rtx pt (uint) */ + GHashTable *rtx_pt_map; + /* orig pt (string) -> rtx pt (uint) */ + GstStructure *rtx_pt_map_structure; + + /* buffering control properties */ + guint max_size_time; + guint max_size_packets; + + /* statistics */ + guint num_rtx_requests; + guint num_rtx_packets; +}; + +struct _GstRtpRtxSendClass +{ + GstElementClass parent_class; +}; + + +GType gst_rtp_rtx_send_get_type (void); +gboolean gst_rtp_rtx_send_plugin_init (GstPlugin * plugin); + +G_END_DECLS +#endif /* __GST_RTP_RTX_SEND_H__ */ diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index 6ff65ebf7..88293ccb3 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -106,8 +106,6 @@ * packets are sent in the PAUSED state). Applications should manually set and * keep (see gst_element_set_locked_state()) the RTCP udpsink to the PLAYING state. * </refsect2> - * - * Last reviewed on 2007-05-28 (0.10.5) */ #ifdef HAVE_CONFIG_H @@ -218,6 +216,7 @@ enum PROP_USE_PIPELINE_CLOCK, PROP_RTCP_MIN_INTERVAL, PROP_PROBATION, + PROP_STATS, PROP_LAST }; @@ -251,6 +250,8 @@ struct _GstRtpSessionPrivate GstClockTime send_latency; gboolean use_pipeline_clock; + + guint rtx_count; }; /* callbacks to handle actions from the session manager */ @@ -270,7 +271,8 @@ static void gst_rtp_session_request_key_unit (RTPSession * sess, static GstClockTime gst_rtp_session_request_time (RTPSession * session, gpointer user_data); static void gst_rtp_session_notify_nack (RTPSession * sess, - guint16 seqnum, guint16 blp, gpointer user_data); + guint16 seqnum, guint16 blp, guint32 ssrc, gpointer user_data); +static void gst_rtp_session_reconfigure (RTPSession * sess, gpointer user_data); static RTPSessionCallbacks callbacks = { gst_rtp_session_process_rtp, @@ -281,7 +283,8 @@ static RTPSessionCallbacks callbacks = { gst_rtp_session_reconsider, gst_rtp_session_request_key_unit, gst_rtp_session_request_time, - gst_rtp_session_notify_nack + gst_rtp_session_notify_nack, + gst_rtp_session_reconfigure }; /* GObject vmethods */ @@ -305,6 +308,8 @@ static gboolean gst_rtp_session_setcaps_send_rtp (GstPad * pad, static void gst_rtp_session_clear_pt_map (GstRtpSession * rtpsession); +static GstStructure *gst_rtp_session_create_stats (GstRtpSession * rtpsession); + static guint gst_rtp_session_signals[LAST_SIGNAL] = { 0 }; static void @@ -317,19 +322,38 @@ on_new_ssrc (RTPSession * session, RTPSource * src, GstRtpSession * sess) static void on_ssrc_collision (RTPSession * session, RTPSource * src, GstRtpSession * sess) { - GstPad *recv_rtp_sink; + GstPad *send_rtp_sink; g_signal_emit (sess, gst_rtp_session_signals[SIGNAL_ON_SSRC_COLLISION], 0, src->ssrc); GST_RTP_SESSION_LOCK (sess); - if ((recv_rtp_sink = sess->recv_rtp_sink)) - gst_object_ref (recv_rtp_sink); + if ((send_rtp_sink = sess->send_rtp_sink)) + gst_object_ref (send_rtp_sink); GST_RTP_SESSION_UNLOCK (sess); - if (recv_rtp_sink) { - gst_pad_push_event (recv_rtp_sink, gst_event_new_reconfigure ()); - gst_object_unref (recv_rtp_sink); + if (send_rtp_sink) { + GstStructure *structure; + GstEvent *event; + RTPSource *internal_src; + guint32 suggested_ssrc; + + structure = gst_structure_new ("GstRTPCollision", "ssrc", G_TYPE_UINT, + (guint) src->ssrc, NULL); + + /* if there is no source using the suggested ssrc, most probably because + * this ssrc has just collided, suggest upstream to use it */ + suggested_ssrc = rtp_session_suggest_ssrc (session); + internal_src = rtp_session_get_source_by_ssrc (session, suggested_ssrc); + if (!internal_src) + gst_structure_set (structure, "suggested-ssrc", G_TYPE_UINT, + (guint) suggested_ssrc, NULL); + else + g_object_unref (internal_src); + + event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure); + gst_pad_push_event (send_rtp_sink, event); + gst_object_unref (send_rtp_sink); } } @@ -602,6 +626,26 @@ gst_rtp_session_class_init (GstRtpSessionClass * klass) 0, G_MAXUINT, DEFAULT_PROBATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstRtpSession::stats: + * + * Various session statistics. This property returns a GstStructure + * with name application/x-rtp-session-stats with the following fields: + * + * "rtx-count" G_TYPE_UINT The number of retransmission events + * received from downstream (in receiver mode) + * "rtx-drop-count" G_TYPE_UINT The number of retransmission events + * dropped (due to bandwidth constraints) + * "sent-nack-count" G_TYPE_UINT Number of NACKs sent + * "recv-nack-count" G_TYPE_UINT Number of NACKs received + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_STATS, + g_param_spec_boxed ("stats", "Statistics", + "Various statistics", GST_TYPE_STRUCTURE, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_session_change_state); gstelement_class->request_new_pad = @@ -675,6 +719,8 @@ gst_rtp_session_init (GstRtpSession * rtpsession) gst_segment_init (&rtpsession->send_rtp_seg, GST_FORMAT_UNDEFINED); rtpsession->priv->thread_stopped = TRUE; + + rtpsession->priv->rtx_count = 0; } static void @@ -785,12 +831,27 @@ gst_rtp_session_get_property (GObject * object, guint prop_id, case PROP_PROBATION: g_object_get_property (G_OBJECT (priv->session), "probation", value); break; + case PROP_STATS: + g_value_take_boxed (value, gst_rtp_session_create_stats (rtpsession)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } +static GstStructure * +gst_rtp_session_create_stats (GstRtpSession * rtpsession) +{ + GstStructure *s; + + g_object_get (rtpsession->priv->session, "stats", &s, NULL); + gst_structure_set (s, "rtx-count", G_TYPE_UINT, rtpsession->priv->rtx_count, + NULL); + + return s; +} + static void get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time, guint64 * ntpnstime) @@ -1435,6 +1496,27 @@ gst_rtp_session_event_recv_rtp_sink (GstPad * pad, GstObject * parent, ret = gst_pad_push_event (rtpsession->recv_rtp_src, event); break; } + case GST_EVENT_EOS: + { + GstPad *rtcp_src; + + ret = + gst_pad_push_event (rtpsession->recv_rtp_src, gst_event_ref (event)); + + GST_RTP_SESSION_LOCK (rtpsession); + if ((rtcp_src = rtpsession->send_rtcp_src)) + gst_object_ref (rtcp_src); + GST_RTP_SESSION_UNLOCK (rtpsession); + + if (rtcp_src) { + ret = gst_pad_push_event (rtcp_src, event); + gst_object_unref (rtcp_src); + } else { + gst_event_unref (event); + ret = TRUE; + } + break; + } default: ret = gst_pad_push_event (rtpsession->recv_rtp_src, event); break; @@ -1506,7 +1588,11 @@ gst_rtp_session_event_recv_rtp_src (GstPad * pad, GstObject * parent, forward = FALSE; } else if (gst_structure_has_name (s, "GstRTPRetransmissionRequest")) { GstClockTime running_time; - guint seqnum, delay, deadline, max_delay; + guint seqnum, delay, deadline, max_delay, avg_rtt; + + GST_RTP_SESSION_LOCK (rtpsession); + rtpsession->priv->rtx_count++; + GST_RTP_SESSION_UNLOCK (rtpsession); if (!gst_structure_get_clock_time (s, "running-time", &running_time)) running_time = -1; @@ -1518,14 +1604,16 @@ gst_rtp_session_event_recv_rtp_src (GstPad * pad, GstObject * parent, delay = 0; if (!gst_structure_get_uint (s, "deadline", &deadline)) deadline = 100; + if (!gst_structure_get_uint (s, "avg-rtt", &avg_rtt)) + avg_rtt = 40; /* remaining time to receive the packet */ max_delay = deadline; if (max_delay > delay) max_delay -= delay; /* estimated RTT */ - if (max_delay > 40) - max_delay -= 40; + if (max_delay > avg_rtt) + max_delay -= avg_rtt; else max_delay = 0; @@ -2032,6 +2120,7 @@ create_recv_rtp_sink (GstRtpSession * rtpsession) gst_rtp_session_event_recv_rtp_sink); gst_pad_set_iterate_internal_links_function (rtpsession->recv_rtp_sink, gst_rtp_session_iterate_internal_links); + GST_PAD_SET_PROXY_ALLOCATION (rtpsession->recv_rtp_sink); gst_pad_set_active (rtpsession->recv_rtp_sink, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (rtpsession), rtpsession->recv_rtp_sink); @@ -2146,6 +2235,8 @@ create_send_rtp_sink (GstRtpSession * rtpsession) gst_rtp_session_event_send_rtp_sink); gst_pad_set_iterate_internal_links_function (rtpsession->send_rtp_sink, gst_rtp_session_iterate_internal_links); + GST_PAD_SET_PROXY_CAPS (rtpsession->send_rtp_sink); + GST_PAD_SET_PROXY_ALLOCATION (rtpsession->send_rtp_sink); gst_pad_set_active (rtpsession->send_rtp_sink, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (rtpsession), rtpsession->send_rtp_sink); @@ -2157,6 +2248,7 @@ create_send_rtp_sink (GstRtpSession * rtpsession) gst_rtp_session_iterate_internal_links); gst_pad_set_event_function (rtpsession->send_rtp_src, gst_rtp_session_event_send_rtp_src); + GST_PAD_SET_PROXY_CAPS (rtpsession->send_rtp_src); gst_pad_set_active (rtpsession->send_rtp_src, TRUE); gst_element_add_pad (GST_ELEMENT_CAST (rtpsession), rtpsession->send_rtp_src); @@ -2352,7 +2444,7 @@ gst_rtp_session_request_time (RTPSession * session, gpointer user_data) static void gst_rtp_session_notify_nack (RTPSession * sess, guint16 seqnum, - guint16 blp, gpointer user_data) + guint16 blp, guint32 ssrc, gpointer user_data) { GstRtpSession *rtpsession = GST_RTP_SESSION (user_data); GstEvent *event; @@ -2367,7 +2459,8 @@ gst_rtp_session_notify_nack (RTPSession * sess, guint16 seqnum, while (TRUE) { event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, gst_structure_new ("GstRTPRetransmissionRequest", - "seqnum", G_TYPE_UINT, (guint) seqnum, NULL)); + "seqnum", G_TYPE_UINT, (guint) seqnum, + "ssrc", G_TYPE_UINT, (guint) ssrc, NULL)); gst_pad_push_event (send_rtp_sink, event); if (blp == 0) @@ -2383,3 +2476,20 @@ gst_rtp_session_notify_nack (RTPSession * sess, guint16 seqnum, gst_object_unref (send_rtp_sink); } } + +static void +gst_rtp_session_reconfigure (RTPSession * sess, gpointer user_data) +{ + GstRtpSession *rtpsession = GST_RTP_SESSION (user_data); + GstPad *send_rtp_sink; + + GST_RTP_SESSION_LOCK (rtpsession); + if ((send_rtp_sink = rtpsession->send_rtp_sink)) + gst_object_ref (send_rtp_sink); + GST_RTP_SESSION_UNLOCK (rtpsession); + + if (send_rtp_sink) { + gst_pad_push_event (send_rtp_sink, gst_event_new_reconfigure ()); + gst_object_unref (send_rtp_sink); + } +} diff --git a/gst/rtpmanager/gstrtpssrcdemux.c b/gst/rtpmanager/gstrtpssrcdemux.c index 75730a443..ef08290d0 100644 --- a/gst/rtpmanager/gstrtpssrcdemux.c +++ b/gst/rtpmanager/gstrtpssrcdemux.c @@ -36,8 +36,6 @@ * ]| Takes an RTP stream and send the RTP packets with the first detected SSRC * to fakesink, discarding the other SSRCs. * </refsect2> - * - * Last reviewed on 2007-05-28 (0.10.5) */ #ifdef HAVE_CONFIG_H diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c index e82c0bd25..1f05cd41c 100644 --- a/gst/rtpmanager/rtpjitterbuffer.c +++ b/gst/rtpmanager/rtpjitterbuffer.c @@ -53,6 +53,8 @@ rtp_jitter_buffer_mode_get_type (void) {RTP_JITTER_BUFFER_MODE_SLAVE, "Slave receiver to sender clock", "slave"}, {RTP_JITTER_BUFFER_MODE_BUFFER, "Do low/high watermark buffering", "buffer"}, + {RTP_JITTER_BUFFER_MODE_SYNCED, "Synchronized sender and receiver clocks", + "synced"}, {0, NULL, NULL}, }; @@ -262,20 +264,20 @@ get_buffer_level (RTPJitterBuffer * jbuf) guint64 level; /* first first buffer with timestamp */ - high_buf = (RTPJitterBufferItem *) g_queue_peek_head_link (jbuf->packets); + high_buf = (RTPJitterBufferItem *) g_queue_peek_tail_link (jbuf->packets); while (high_buf) { - if (high_buf->dts != -1) + if (high_buf->dts != -1 || high_buf->pts != -1) break; - high_buf = (RTPJitterBufferItem *) g_list_next (high_buf); + high_buf = (RTPJitterBufferItem *) g_list_previous (high_buf); } - low_buf = (RTPJitterBufferItem *) g_queue_peek_tail_link (jbuf->packets); + low_buf = (RTPJitterBufferItem *) g_queue_peek_head_link (jbuf->packets); while (low_buf) { - if (low_buf->dts != -1) + if (low_buf->dts != -1 || low_buf->pts != -1) break; - low_buf = (RTPJitterBufferItem *) g_list_previous (low_buf); + low_buf = (RTPJitterBufferItem *) g_list_next (low_buf); } if (!high_buf || !low_buf || high_buf == low_buf) { @@ -283,8 +285,8 @@ get_buffer_level (RTPJitterBuffer * jbuf) } else { guint64 high_ts, low_ts; - high_ts = high_buf->dts; - low_ts = low_buf->dts; + high_ts = high_buf->dts != -1 ? high_buf->dts : high_buf->pts; + low_ts = low_buf->dts != -1 ? low_buf->dts : low_buf->pts; if (high_ts > low_ts) level = high_ts - low_ts; @@ -624,23 +626,20 @@ queue_do_insert (RTPJitterBuffer * jbuf, GList * list, GList * item) { GQueue *queue = jbuf->packets; - /* It's more likely that the packet was inserted in the front of the buffer */ + /* It's more likely that the packet was inserted at the tail of the queue */ if (G_LIKELY (list)) { - item->prev = list->prev; - item->next = list; - list->prev = item; - if (item->prev) { - item->prev->next = item; - } else { - queue->head = item; - } + item->prev = list; + item->next = list->next; + list->next = item; } else { - queue->tail = g_list_concat (queue->tail, item); - if (queue->tail->next) - queue->tail = queue->tail->next; - else - queue->head = queue->tail; + item->prev = NULL; + item->next = queue->head; + queue->head = item; } + if (item->next) + item->next->prev = item; + else + queue->tail = item; queue->length++; } @@ -648,20 +647,24 @@ queue_do_insert (RTPJitterBuffer * jbuf, GList * list, GList * item) * rtp_jitter_buffer_insert: * @jbuf: an #RTPJitterBuffer * @item: an #RTPJitterBufferItem to insert - * @tail: TRUE when the tail element changed. + * @head: TRUE when the head element changed. * @percent: the buffering percent after insertion * * Inserts @item into the packet queue of @jbuf. The sequence number of the * packet will be used to sort the packets. This function takes ownerhip of * @buf when the function returns %TRUE. * + * When @head is %TRUE, the new packet was added at the head of the queue and + * will be available with the next call to rtp_jitter_buffer_pop() and + * rtp_jitter_buffer_peek(). + * * Returns: %FALSE if a packet with the same number already existed. */ gboolean rtp_jitter_buffer_insert (RTPJitterBuffer * jbuf, RTPJitterBufferItem * item, - gboolean * tail, gint * percent) + gboolean * head, gint * percent) { - GList *list = NULL; + GList *list; guint32 rtptime; guint16 seqnum; GstClockTime dts; @@ -669,20 +672,24 @@ rtp_jitter_buffer_insert (RTPJitterBuffer * jbuf, RTPJitterBufferItem * item, g_return_val_if_fail (jbuf != NULL, FALSE); g_return_val_if_fail (item != NULL, FALSE); - seqnum = item->seqnum; + list = jbuf->packets->tail; + /* no seqnum, simply append then */ - if (seqnum == -1) + if (item->seqnum == -1) goto append; - /* loop the list to skip strictly smaller seqnum buffers */ - for (list = jbuf->packets->head; list; list = g_list_next (list)) { + seqnum = item->seqnum; + + /* loop the list to skip strictly larger seqnum buffers */ + for (; list; list = g_list_previous (list)) { guint16 qseq; gint gap; RTPJitterBufferItem *qitem = (RTPJitterBufferItem *) list; + if (qitem->seqnum == -1) + break; + qseq = qitem->seqnum; - if (qseq == -1) - continue; /* compare the new seqnum to the one in the buffer */ gap = gst_rtp_buffer_compare_seqnum (seqnum, qseq); @@ -697,11 +704,11 @@ rtp_jitter_buffer_insert (RTPJitterBuffer * jbuf, RTPJitterBufferItem * item, } dts = item->dts; - rtptime = item->rtptime; - - if (rtptime == -1) + if (item->rtptime == -1) goto append; + rtptime = item->rtptime; + /* rtp time jumps are checked for during skew calculation, but bypassed * in other mode, so mind those here and reset jb if needed. * Only reset if valid input time, which is likely for UDP input @@ -734,6 +741,12 @@ rtp_jitter_buffer_insert (RTPJitterBuffer * jbuf, RTPJitterBufferItem * item, else dts = -1; break; + case RTP_JITTER_BUFFER_MODE_SYNCED: + /* synchronized clocks, take first timestamp as base, use RTP timestamps + * to interpolate */ + if (jbuf->base_time != -1) + dts = -1; + break; case RTP_JITTER_BUFFER_MODE_SLAVE: default: break; @@ -751,10 +764,10 @@ append: else if (percent) *percent = -1; - /* tail was changed when we did not find a previous packet, we set the return + /* head was changed when we did not find a previous packet, we set the return * flag when requested. */ - if (G_LIKELY (tail)) - *tail = (list == NULL); + if (G_LIKELY (head)) + *head = (list == NULL); return TRUE; @@ -787,13 +800,13 @@ rtp_jitter_buffer_pop (RTPJitterBuffer * jbuf, gint * percent) queue = jbuf->packets; - item = queue->tail; + item = queue->head; if (item) { - queue->tail = item->prev; - if (queue->tail) - queue->tail->next = NULL; + queue->head = item->next; + if (queue->head) + queue->head->prev = NULL; else - queue->head = NULL; + queue->tail = NULL; queue->length--; } @@ -810,9 +823,10 @@ rtp_jitter_buffer_pop (RTPJitterBuffer * jbuf, gint * percent) * rtp_jitter_buffer_peek: * @jbuf: an #RTPJitterBuffer * - * Peek the oldest buffer from the packet queue of @jbuf. Register a callback - * with rtp_jitter_buffer_set_tail_changed() to be notified when an older packet - * was inserted in the queue. + * Peek the oldest buffer from the packet queue of @jbuf. + * + * See rtp_jitter_buffer_insert() to check when an older packet was + * added. * * Returns: a #GstBuffer or %NULL when there was no packet in the queue. */ @@ -821,7 +835,7 @@ rtp_jitter_buffer_peek (RTPJitterBuffer * jbuf) { g_return_val_if_fail (jbuf != NULL, NULL); - return (RTPJitterBufferItem *) jbuf->packets->tail; + return (RTPJitterBufferItem *) jbuf->packets->head; } /** diff --git a/gst/rtpmanager/rtpjitterbuffer.h b/gst/rtpmanager/rtpjitterbuffer.h index 96cf842de..c5f36479a 100644 --- a/gst/rtpmanager/rtpjitterbuffer.h +++ b/gst/rtpmanager/rtpjitterbuffer.h @@ -45,6 +45,10 @@ typedef struct _RTPJitterBufferItem RTPJitterBufferItem; * low latency communications. * RTP_JITTER_BUFFER_MODE_BUFFER: buffer packets between low/high watermarks. * This mode is good for streaming communication. + * RTP_JITTER_BUFFER_MODE_SYNCED: sender and receiver clocks are synchronized, + * like #RTP_JITTER_BUFFER_MODE_SLAVE but skew is assumed to be 0. Good for + * low latency communication when sender and receiver clocks are + * synchronized and there is thus no clock skew. * RTP_JITTER_BUFFER_MODE_LAST: last buffer mode. * * The different buffer modes for a jitterbuffer. @@ -53,6 +57,8 @@ typedef enum { RTP_JITTER_BUFFER_MODE_NONE = 0, RTP_JITTER_BUFFER_MODE_SLAVE = 1, RTP_JITTER_BUFFER_MODE_BUFFER = 2, + /* FIXME 3 is missing because it was used for 'auto' in jitterbuffer */ + RTP_JITTER_BUFFER_MODE_SYNCED = 4, RTP_JITTER_BUFFER_MODE_LAST } RTPJitterBufferMode; @@ -106,10 +112,12 @@ struct _RTPJitterBufferClass { * @data: the data of the item * @next: pointer to next item * @prev: pointer to previous item - * @type: the type of @data + * @type: the type of @data, used freely by caller * @dts: input DTS * @pts: output PTS - * @seqnum: seqnum + * @seqnum: seqnum, the seqnum is used to insert the item in the + * right position in the jitterbuffer and detect duplicates. Use -1 to + * append. * @count: amount of seqnum in this item * @rtptime: rtp timestamp * @@ -145,7 +153,7 @@ void rtp_jitter_buffer_reset_skew (RTPJitterBuffer *jbuf) gboolean rtp_jitter_buffer_insert (RTPJitterBuffer *jbuf, RTPJitterBufferItem *item, - gboolean *tail, gint *percent); + gboolean *head, gint *percent); void rtp_jitter_buffer_disable_buffering (RTPJitterBuffer *jbuf, gboolean disabled); diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index 6720315b3..c29427243 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -86,6 +86,7 @@ enum PROP_RTCP_FEEDBACK_RETENTION_WINDOW, PROP_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD, PROP_PROBATION, + PROP_STATS, PROP_LAST }; @@ -442,6 +443,24 @@ rtp_session_class_init (RTPSessionClass * klass) 0, G_MAXUINT, DEFAULT_PROBATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * RTPSession::stats: + * + * Various session statistics. This property returns a GstStructure + * with name application/x-rtp-session-stats with the following fields: + * + * "rtx-drop-count" G_TYPE_UINT The number of retransmission events + * dropped (due to bandwidth constraints) + * "sent-nack-count" G_TYPE_UINT Number of NACKs sent + * "recv-nack-count" G_TYPE_UINT Number of NACKs received + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_STATS, + g_param_spec_boxed ("stats", "Statistics", + "Various statistics", GST_TYPE_STRUCTURE, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + klass->get_source_by_ssrc = GST_DEBUG_FUNCPTR (rtp_session_get_source_by_ssrc); klass->send_rtcp = GST_DEBUG_FUNCPTR (rtp_session_send_rtcp); @@ -513,6 +532,8 @@ rtp_session_init (RTPSession * sess) DEFAULT_RTCP_IMMEDIATE_FEEDBACK_THRESHOLD; sess->last_keyframe_request = GST_CLOCK_TIME_NONE; + + sess->is_doing_ptp = TRUE; } static void @@ -563,6 +584,19 @@ rtp_session_create_sources (RTPSession * sess) return res; } +static GstStructure * +rtp_session_create_stats (RTPSession * sess) +{ + GstStructure *s; + + s = gst_structure_new ("application/x-rtp-session-stats", + "rtx-drop-count", G_TYPE_UINT, sess->stats.nacks_dropped, + "sent-nack-count", G_TYPE_UINT, sess->stats.nacks_sent, + "recv-nack-count", G_TYPE_UINT, sess->stats.nacks_received, NULL); + + return s; +} + static void rtp_session_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) @@ -573,6 +607,11 @@ rtp_session_set_property (GObject * object, guint prop_id, switch (prop_id) { case PROP_INTERNAL_SSRC: + RTP_SESSION_LOCK (sess); + sess->suggested_ssrc = g_value_get_uint (value); + RTP_SESSION_UNLOCK (sess); + if (sess->callbacks.reconfigure) + sess->callbacks.reconfigure (sess, sess->reconfigure_user_data); break; case PROP_BANDWIDTH: RTP_SESSION_LOCK (sess); @@ -684,6 +723,9 @@ rtp_session_get_property (GObject * object, guint prop_id, case PROP_PROBATION: g_value_set_uint (value, sess->probation); break; + case PROP_STATS: + g_value_take_boxed (value, rtp_session_create_stats (sess)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -851,6 +893,10 @@ rtp_session_set_callbacks (RTPSession * sess, RTPSessionCallbacks * callbacks, sess->callbacks.notify_nack = callbacks->notify_nack; sess->notify_nack_user_data = user_data; } + if (callbacks->reconfigure) { + sess->callbacks.reconfigure = callbacks->reconfigure; + sess->reconfigure_user_data = user_data; + } } /** @@ -1273,11 +1319,88 @@ check_collision (RTPSession * sess, RTPSource * source, return TRUE; } -static RTPSource * -find_source (RTPSession * sess, guint32 ssrc) +typedef struct { - return g_hash_table_lookup (sess->ssrcs[sess->mask_idx], - GINT_TO_POINTER (ssrc)); + gboolean is_doing_ptp; + GSocketAddress *new_addr; +} CompareAddrData; + +/* check if the two given ip addr are the same (do not care about the port) */ +static gboolean +ip_addr_equal (GSocketAddress * a, GSocketAddress * b) +{ + return + g_inet_address_equal (g_inet_socket_address_get_address + (G_INET_SOCKET_ADDRESS (a)), + g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (b))); +} + +static void +compare_rtp_source_addr (const gchar * key, RTPSource * source, + CompareAddrData * data) +{ + /* only compare ip addr of remote sources which are also not closing */ + if (!source->internal && !source->closing && source->rtp_from) { + /* look for the first rtp source */ + if (!data->new_addr) + data->new_addr = source->rtp_from; + /* compare current ip addr with the first one */ + else + data->is_doing_ptp &= ip_addr_equal (data->new_addr, source->rtp_from); + } +} + +static void +compare_rtcp_source_addr (const gchar * key, RTPSource * source, + CompareAddrData * data) +{ + /* only compare ip addr of remote sources which are also not closing */ + if (!source->internal && !source->closing && source->rtcp_from) { + /* look for the first rtcp source */ + if (!data->new_addr) + data->new_addr = source->rtcp_from; + else + /* compare current ip addr with the first one */ + data->is_doing_ptp &= ip_addr_equal (data->new_addr, source->rtcp_from); + } +} + +/* loop over our non-internal source to know if the session + * is doing point-to-point */ +static void +session_update_ptp (RTPSession * sess) +{ + /* to know if the session is doing point to point, the ip addr + * of each non-internal (=remotes) source have to be compared + * to each other. + */ + gboolean is_doing_rtp_ptp = FALSE; + gboolean is_doing_rtcp_ptp = FALSE; + CompareAddrData data; + + /* compare the first remote source's ip addr that receive rtp packets + * with other remote rtp source. + * it's enough because the session just needs to know if they are all + * equals or not + */ + data.is_doing_ptp = TRUE; + data.new_addr = NULL; + g_hash_table_foreach (sess->ssrcs[sess->mask_idx], + (GHFunc) compare_rtp_source_addr, (gpointer) & data); + is_doing_rtp_ptp = data.is_doing_ptp; + + /* same but about rtcp */ + data.is_doing_ptp = TRUE; + data.new_addr = NULL; + g_hash_table_foreach (sess->ssrcs[sess->mask_idx], + (GHFunc) compare_rtcp_source_addr, (gpointer) & data); + is_doing_rtcp_ptp = data.is_doing_ptp; + + /* the session is doing point-to-point if all rtp remote have the same + * ip addr and if all rtcp remote sources have the same ip addr */ + sess->is_doing_ptp = is_doing_rtp_ptp && is_doing_rtcp_ptp; + + GST_DEBUG ("doing point-to-point: %d", sess->is_doing_ptp); } static void @@ -1296,6 +1419,17 @@ add_source (RTPSession * sess, RTPSource * src) if (sess->suggested_ssrc != src->ssrc) sess->suggested_ssrc = src->ssrc; } + + /* update point-to-point status */ + if (!src->internal) + session_update_ptp (sess); +} + +static RTPSource * +find_source (RTPSession * sess, guint32 ssrc) +{ + return g_hash_table_lookup (sess->ssrcs[sess->mask_idx], + GINT_TO_POINTER (ssrc)); } /* must be called with the session lock, the returned source needs to be @@ -1370,6 +1504,7 @@ obtain_internal_source (RTPSession * sess, guint32 ssrc, gboolean * created) source->validated = TRUE; source->internal = TRUE; + source->probation = FALSE; rtp_source_set_sdes_struct (source, gst_structure_copy (sess->sdes)); rtp_source_set_callbacks (source, &callbacks, sess); @@ -1499,7 +1634,7 @@ rtp_session_get_source_by_ssrc (RTPSession * sess, guint32 ssrc) RTP_SESSION_LOCK (sess); result = find_source (sess, ssrc); - if (result) + if (result != NULL) g_object_ref (result); RTP_SESSION_UNLOCK (sess); @@ -1866,6 +2001,10 @@ rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet, if (!source) return; + /* skip non-bye packets for sources that are marked BYE */ + if (sess->scheduled_bye && RTP_SOURCE_IS_MARKED_BYE (source)) + goto out; + /* don't try to do lip-sync for sources that sent a BYE */ if (RTP_SOURCE_IS_MARKED_BYE (source)) *do_sync = FALSE; @@ -1884,6 +2023,8 @@ rtp_session_process_sr (RTPSession * sess, GstRTCPPacket * packet, on_new_ssrc (sess, source); rtp_session_process_rb (sess, source, packet, pinfo); + +out: g_object_unref (source); } @@ -1909,10 +2050,16 @@ rtp_session_process_rr (RTPSession * sess, GstRTCPPacket * packet, if (!source) return; + /* skip non-bye packets for sources that are marked BYE */ + if (sess->scheduled_bye && RTP_SOURCE_IS_MARKED_BYE (source)) + goto out; + if (created) on_new_ssrc (sess, source); rtp_session_process_rb (sess, source, packet, pinfo); + +out: g_object_unref (source); } @@ -1946,6 +2093,10 @@ rtp_session_process_sdes (RTPSession * sess, GstRTCPPacket * packet, if (!source) return; + /* skip non-bye packets for sources that are marked BYE */ + if (sess->scheduled_bye && RTP_SOURCE_IS_MARKED_BYE (source)) + goto next; + sdes = gst_structure_new_empty ("application/x-rtp-source-sdes"); more_entries = gst_rtcp_packet_sdes_first_entry (packet); @@ -1997,6 +2148,7 @@ rtp_session_process_sdes (RTPSession * sess, GstRTCPPacket * packet, if (changed) on_ssrc_sdes (sess, source); + next: g_object_unref (source); more_items = gst_rtcp_packet_sdes_next_item (packet); @@ -2147,7 +2299,7 @@ rtp_session_process_pli (RTPSession * sess, guint32 sender_ssrc, return; src = find_source (sess, sender_ssrc); - if (!src) + if (src == NULL) return; rtp_session_request_local_key_unit (sess, src, FALSE, current_time); @@ -2214,6 +2366,8 @@ rtp_session_process_nack (RTPSession * sess, guint32 sender_ssrc, guint32 media_ssrc, guint8 * fci_data, guint fci_length, GstClockTime current_time) { + sess->stats.nacks_received++; + if (!sess->callbacks.notify_nack) return; @@ -2223,10 +2377,10 @@ rtp_session_process_nack (RTPSession * sess, guint32 sender_ssrc, seqnum = GST_READ_UINT16_BE (fci_data); blp = GST_READ_UINT16_BE (fci_data + 2); - GST_DEBUG ("NACK #%u, blp %04x", seqnum, blp); + GST_DEBUG ("NACK #%u, blp %04x, SSRC 0x%08x", seqnum, blp, media_ssrc); RTP_SESSION_UNLOCK (sess); - sess->callbacks.notify_nack (sess, seqnum, blp, + sess->callbacks.notify_nack (sess, seqnum, blp, media_ssrc, sess->notify_nack_user_data); RTP_SESSION_LOCK (sess); @@ -2247,6 +2401,12 @@ rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet, guint fci_length = 4 * gst_rtcp_packet_fb_get_fci_length (packet); RTPSource *src; + src = find_source (sess, media_ssrc); + + /* skip non-bye packets for sources that are marked BYE */ + if (sess->scheduled_bye && src && RTP_SOURCE_IS_MARKED_BYE (src)) + return; + GST_DEBUG ("received feedback %d:%d from %08X about %08X with FCI of " "length %d", type, fbtype, sender_ssrc, media_ssrc, fci_length); @@ -2270,15 +2430,11 @@ rtp_session_process_feedback (RTPSession * sess, GstRTCPPacket * packet, gst_buffer_unref (fci_buffer); } - src = find_source (sess, media_ssrc); - if (!src) - return; - - if (sess->rtcp_feedback_retention_window) { + if (src && sess->rtcp_feedback_retention_window) { rtp_source_retain_rtcp_packet (src, packet, pinfo->running_time); } - if (src->internal || + if ((src && src->internal) || /* PSFB FIR puts the media ssrc inside the FCI */ (type == GST_RTCP_TYPE_PSFB && fbtype == GST_RTCP_PSFB_TYPE_FIR)) { switch (type) { @@ -2354,12 +2510,6 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer, type = gst_rtcp_packet_get_type (&packet); - /* when we are leaving the session, we should ignore all non-BYE messages */ - if (sess->scheduled_bye && type != GST_RTCP_TYPE_BYE) { - GST_DEBUG ("ignoring non-BYE RTCP packet because we are leaving"); - goto next; - } - switch (type) { case GST_RTCP_TYPE_SR: rtp_session_process_sr (sess, &packet, &pinfo, &do_sync); @@ -2387,7 +2537,6 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer, GST_WARNING ("got unknown RTCP packet"); break; } - next: more = gst_rtcp_packet_move_to_next (&packet); } @@ -2395,15 +2544,14 @@ rtp_session_process_rtcp (RTPSession * sess, GstBuffer * buffer, /* if we are scheduling a BYE, we only want to count bye packets, else we * count everything */ - if (sess->scheduled_bye) { - if (is_bye) { - sess->stats.bye_members++; - 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, pinfo.bytes); + if (sess->scheduled_bye && is_bye) { + sess->bye_stats.bye_members++; + UPDATE_AVG (sess->bye_stats.avg_rtcp_packet_size, pinfo.bytes); } + + /* keep track of average packet size */ + 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, pinfo.bytes); RTP_SESSION_UNLOCK (sess); @@ -2540,6 +2688,7 @@ calculate_rtcp_interval (RTPSession * sess, gboolean deterministic, gboolean first) { GstClockTime result; + RTPSessionStats *stats; /* recalculate bandwidth when it changed */ if (sess->recalc_bandwidth) { @@ -2565,17 +2714,19 @@ calculate_rtcp_interval (RTPSession * sess, gboolean deterministic, } if (sess->scheduled_bye) { - result = rtp_stats_calculate_bye_interval (&sess->stats); + stats = &sess->bye_stats; + result = rtp_stats_calculate_bye_interval (stats); } else { - result = rtp_stats_calculate_rtcp_interval (&sess->stats, - sess->stats.internal_sender_sources > 0, first); + stats = &sess->stats; + result = rtp_stats_calculate_rtcp_interval (stats, + stats->internal_sender_sources > 0, first); } GST_DEBUG ("next deterministic interval: %" GST_TIME_FORMAT ", first %d", GST_TIME_ARGS (result), first); if (!deterministic && result != GST_CLOCK_TIME_NONE) - result = rtp_stats_add_rtcp_jitter (&sess->stats, result); + result = rtp_stats_add_rtcp_jitter (stats, result); GST_DEBUG ("next interval: %" GST_TIME_FORMAT, GST_TIME_ARGS (result)); @@ -2623,8 +2774,9 @@ rtp_session_schedule_bye_locked (RTPSession * sess, GstClockTime current_time) /* we schedule BYE now */ sess->scheduled_bye = TRUE; /* at least one member wants to send a BYE */ - INIT_AVG (sess->stats.avg_rtcp_packet_size, 100); - sess->stats.bye_members = 1; + memcpy (&sess->bye_stats, &sess->stats, sizeof (RTPSessionStats)); + INIT_AVG (sess->bye_stats.avg_rtcp_packet_size, 100); + sess->bye_stats.bye_members = 1; sess->first_rtcp = TRUE; sess->allow_early = TRUE; @@ -2712,7 +2864,7 @@ rtp_session_next_timeout (RTPSession * sess, GstClockTime current_time) } if (sess->scheduled_bye) { - if (sess->stats.active_sources >= 50) { + if (sess->bye_stats.active_sources >= 50) { GST_DEBUG ("reconsider BYE, more than 50 sources"); /* reconsider BYE if members >= 50 */ interval = calculate_rtcp_interval (sess, FALSE, TRUE); @@ -2772,6 +2924,7 @@ typedef struct gboolean is_early; gboolean may_suppress; GQueue output; + guint nacked_seqnums; } ReportData; static void @@ -2831,15 +2984,21 @@ session_report_blocks (const gchar * key, RTPSource * source, ReportData * data) return; } - /* only report about other sender */ - if (source == data->source) - goto reported; + if (g_hash_table_contains (source->reported_in_sr_of, + GUINT_TO_POINTER (data->source->ssrc))) { + GST_DEBUG ("source %08x already reported in this generation", source->ssrc); + return; + } if (gst_rtcp_packet_get_rb_count (packet) == GST_RTCP_MAX_RB_COUNT) { GST_DEBUG ("max RB count reached"); return; } + /* only report about other sender */ + if (source == data->source) + goto reported; + if (!RTP_SOURCE_IS_SENDER (source)) { GST_DEBUG ("source %08x not sender", source->ssrc); goto reported; @@ -2865,14 +3024,8 @@ session_report_blocks (const gchar * key, RTPSource * source, ReportData * data) exthighestseq, jitter, lsr, dlsr); reported: - /* source is reported, move to next generation */ - source->generation = sess->generation + 1; - - /* if we reported all sources in this generation, move to next */ - if (--data->num_to_report == 0) { - sess->generation++; - GST_DEBUG ("all reported, generation now %u", sess->generation); - } + g_hash_table_add (source->reported_in_sr_of, + GUINT_TO_POINTER (data->source->ssrc)); } /* construct FIR */ @@ -3001,6 +3154,7 @@ session_nack (const gchar * key, RTPSource * source, ReportData * data) for (i = 0; i < n_nacks; i++) { GST_WRITE_UINT32_BE (fci_data, nacks[i]); fci_data += 4; + data->nacked_seqnums++; } rtp_source_clear_nacks (source); @@ -3229,6 +3383,12 @@ is_rtcp_time (RTPSession * sess, GstClockTime current_time, ReportData * data) { GstClockTime new_send_time, elapsed; GstClockTime interval; + RTPSessionStats *stats; + + if (sess->scheduled_bye) + stats = &sess->bye_stats; + else + stats = &sess->stats; if (GST_CLOCK_TIME_IS_VALID (sess->next_early_rtcp_time)) data->is_early = TRUE; @@ -3258,7 +3418,7 @@ early: /* take interval and add jitter */ interval = data->interval; if (interval != GST_CLOCK_TIME_NONE) - interval = rtp_stats_add_rtcp_jitter (&sess->stats, interval); + interval = rtp_stats_add_rtcp_jitter (stats, interval); /* perform forward reconsideration */ if (interval != GST_CLOCK_TIME_NONE) { @@ -3281,9 +3441,9 @@ early: sess->next_rtcp_check_time = current_time + interval; } else if (interval != GST_CLOCK_TIME_NONE) { /* Apply the rules from RFC 4585 section 3.5.3 */ - if (sess->stats.min_interval != 0 && !sess->first_rtcp) { + if (stats->min_interval != 0 && !sess->first_rtcp) { GstClockTime T_rr_current_interval = - g_random_double_range (0.5, 1.5) * sess->stats.min_interval; + g_random_double_range (0.5, 1.5) * stats->min_interval; /* This will caused the RTCP to be suppressed if no FB packets are added */ if (sess->last_rtcp_send_time + T_rr_current_interval > new_send_time) { @@ -3291,7 +3451,7 @@ early: " last: %" GST_TIME_FORMAT " + T_rr_current_interval: %" GST_TIME_FORMAT " > new_send_time: %" GST_TIME_FORMAT, - GST_TIME_ARGS (sess->stats.min_interval), + GST_TIME_ARGS (stats->min_interval), GST_TIME_ARGS (sess->last_rtcp_send_time), GST_TIME_ARGS (T_rr_current_interval), GST_TIME_ARGS (new_send_time)); @@ -3340,6 +3500,10 @@ generate_rtcp (const gchar * key, RTPSource * source, ReportData * data) if (!source->internal || source->sent_bye) return; + /* ignore other sources when we do the timeout after a scheduled BYE */ + if (sess->scheduled_bye && !source->marked_bye) + return; + data->source = source; /* open packet */ @@ -3379,6 +3543,28 @@ generate_rtcp (const gchar * key, RTPSource * source, ReportData * data) g_queue_push_tail (&data->output, output); } +static void +update_generation (const gchar * key, RTPSource * source, ReportData * data) +{ + RTPSession *sess = data->sess; + + if (g_hash_table_size (source->reported_in_sr_of) >= + sess->stats.internal_sources) { + /* source is reported, move to next generation */ + source->generation = sess->generation + 1; + g_hash_table_remove_all (source->reported_in_sr_of); + + GST_LOG ("reported source %x, new generation: %d", source->ssrc, + source->generation); + + /* if we reported all sources in this generation, move to next */ + if (--data->num_to_report == 0) { + sess->generation++; + GST_DEBUG ("all reported, generation now %u", sess->generation); + } + } +} + /** * rtp_session_on_timeout: * @sess: an #RTPSession @@ -3418,6 +3604,7 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time, data.running_time = running_time; data.num_to_report = 0; data.may_suppress = FALSE; + data.nacked_seqnums = 0; g_queue_init (&data.output); RTP_SESSION_LOCK (sess); @@ -3451,6 +3638,9 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time, g_hash_table_foreach_remove (sess->ssrcs[sess->mask_idx], (GHRFunc) remove_closing_sources, &data); + /* update point-to-point status */ + session_update_ptp (sess); + /* see if we need to generate SR or RR packets */ if (!is_rtcp_time (sess, current_time, &data)) goto done; @@ -3462,12 +3652,17 @@ rtp_session_on_timeout (RTPSession * sess, GstClockTime current_time, g_hash_table_foreach (sess->ssrcs[sess->mask_idx], (GHFunc) generate_rtcp, &data); + /* update the generation for all the sources that have been reported */ + g_hash_table_foreach (sess->ssrcs[sess->mask_idx], + (GHFunc) update_generation, &data); + /* we keep track of the last report time in order to timeout inactive * receivers or senders */ if (!data.is_early && !data.may_suppress) sess->last_rtcp_send_time = data.current_time; sess->first_rtcp = FALSE; sess->next_early_rtcp_time = GST_CLOCK_TIME_NONE; + sess->scheduled_bye = FALSE; done: RTP_SESSION_UNLOCK (sess); @@ -3493,10 +3688,12 @@ done: result = sess->callbacks.send_rtcp (sess, source, buffer, output->is_bye, sess->send_rtcp_user_data); + sess->stats.nacks_sent += data.nacked_seqnums; } else { GST_DEBUG ("freeing packet callback: %p" " do_not_suppress: %d may_suppress: %d", sess->callbacks.send_rtcp, do_not_suppress, data.may_suppress); + sess->stats.nacks_dropped += data.nacked_seqnums; gst_buffer_unref (buffer); } g_object_unref (source); @@ -3546,7 +3743,10 @@ rtp_session_request_early_rtcp (RTPSession * sess, GstClockTime current_time, /* RFC 4585 section 3.5.2 step 2b */ /* If the total sources is <=2, then there is only us and one peer */ - if (sess->total_sources <= 2) { + /* When there is one auxiliary stream the session can still do point + * to point. + */ + if (sess->is_doing_ptp) { T_dither_max = 0; } else { /* Divide by 2 because l = 0.5 */ @@ -3617,7 +3817,7 @@ rtp_session_request_key_unit (RTPSession * sess, guint32 ssrc, RTP_SESSION_LOCK (sess); src = find_source (sess, ssrc); - if (!src) + if (src == NULL) goto no_source; if (fir) { diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h index 3ca6c161e..87388aec5 100644 --- a/gst/rtpmanager/rtpsession.h +++ b/gst/rtpmanager/rtpsession.h @@ -147,12 +147,23 @@ typedef GstClockTime (*RTPSessionRequestTime) (RTPSession *sess, * @sess: an #RTPSession * @seqnum: the missing seqnum * @blp: other missing seqnums + * @ssrc: SSRC of requested stream * @user_data: user data specified when registering * * Notifies of NACKed frames. */ typedef void (*RTPSessionNotifyNACK) (RTPSession *sess, - guint16 seqnum, guint16 blp, gpointer user_data); + guint16 seqnum, guint16 blp, guint32 ssrc, gpointer user_data); + +/** + * RTPSessionReconfigure: + * @sess: an #RTPSession + * @user_data: user data specified when registering + * + * This callback will be called when @sess wants to reconfigure the + * negotiated parameters. + */ +typedef void (*RTPSessionReconfigure) (RTPSession *sess, gpointer user_data); /** * RTPSessionCallbacks: @@ -164,6 +175,7 @@ typedef void (*RTPSessionNotifyNACK) (RTPSession *sess, * @RTPSessionRequestKeyUnit: callback for requesting a new key unit * @RTPSessionRequestTime: callback for requesting the current time * @RTPSessionNotifyNACK: callback for notifying NACK + * @RTPSessionReconfigure: callback for requesting reconfiguration * * These callbacks can be installed on the session manager to get notification * when RTP and RTCP packets are ready for further processing. These callbacks @@ -179,6 +191,7 @@ typedef struct { RTPSessionRequestKeyUnit request_key_unit; RTPSessionRequestTime request_time; RTPSessionNotifyNACK notify_nack; + RTPSessionReconfigure reconfigure; } RTPSessionCallbacks; /** @@ -243,8 +256,10 @@ struct _RTPSession { gpointer request_key_unit_user_data; gpointer request_time_user_data; gpointer notify_nack_user_data; + gpointer reconfigure_user_data; RTPSessionStats stats; + RTPSessionStats bye_stats; gboolean favor_new; GstClockTime rtcp_feedback_retention_window; @@ -252,6 +267,8 @@ struct _RTPSession { GstClockTime last_keyframe_request; gboolean last_keyframe_all_headers; + + gboolean is_doing_ptp; }; /** diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c index dea2e78a9..9a56955c6 100644 --- a/gst/rtpmanager/rtpsource.c +++ b/gst/rtpmanager/rtpsource.c @@ -224,6 +224,7 @@ rtp_source_reset (RTPSource * src) g_free (src->bye_reason); src->bye_reason = NULL; src->sent_bye = FALSE; + g_hash_table_remove_all (src->reported_in_sr_of); src->stats.cycles = -1; src->stats.jitter = 0; @@ -261,6 +262,8 @@ rtp_source_init (RTPSource * src) src->retained_feedback = g_queue_new (); src->nacks = g_array_new (FALSE, FALSE, sizeof (guint32)); + src->reported_in_sr_of = g_hash_table_new (g_direct_hash, g_direct_equal); + rtp_source_reset (src); } @@ -304,6 +307,8 @@ rtp_source_finalize (GObject * object) if (src->rtcp_from) g_object_unref (src->rtcp_from); + g_hash_table_unref (src->reported_in_sr_of); + G_OBJECT_CLASS (rtp_source_parent_class)->finalize (object); } @@ -977,26 +982,13 @@ do_bitrate_estimation (RTPSource * src, GstClockTime running_time, } } -/** - * rtp_source_process_rtp: - * @src: an #RTPSource - * @pinfo: an #RTPPacketInfo - * - * Let @src handle the incomming RTP packet described in @pinfo. - * - * Returns: a #GstFlowReturn. - */ -GstFlowReturn -rtp_source_process_rtp (RTPSource * src, RTPPacketInfo * pinfo) +static gboolean +update_receiver_stats (RTPSource * src, RTPPacketInfo * pinfo) { - GstFlowReturn result = GST_FLOW_OK; guint16 seqnr, udelta; RTPSourceStats *stats; guint16 expected; - g_return_val_if_fail (RTP_IS_SOURCE (src), GST_FLOW_ERROR); - g_return_val_if_fail (pinfo != NULL, GST_FLOW_ERROR); - stats = &src->stats; seqnr = pinfo->seqnum; @@ -1071,40 +1063,67 @@ rtp_source_process_rtp (RTPSource * src, RTPPacketInfo * pinfo) src->stats.packets_received++; /* for the bitrate estimation */ 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, 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, pinfo); - - /* we're ready to push the RTP packet now */ - result = push_packet (src, pinfo->data); - pinfo->data = NULL; - -done: - return result; + return TRUE; /* ERRORS */ +done: + { + return FALSE; + } bad_sequence: { GST_WARNING ("unacceptable seqnum received"); - return GST_FLOW_OK; + return FALSE; } probation_seqnum: { GST_WARNING ("probation: seqnr %d != expected %d", seqnr, expected); src->curr_probation = src->probation; src->stats.max_seq = seqnr; - return GST_FLOW_OK; + return FALSE; } } +/** + * rtp_source_process_rtp: + * @src: an #RTPSource + * @pinfo: an #RTPPacketInfo + * + * Let @src handle the incomming RTP packet described in @pinfo. + * + * Returns: a #GstFlowReturn. + */ +GstFlowReturn +rtp_source_process_rtp (RTPSource * src, RTPPacketInfo * pinfo) +{ + GstFlowReturn result; + + g_return_val_if_fail (RTP_IS_SOURCE (src), GST_FLOW_ERROR); + g_return_val_if_fail (pinfo != NULL, GST_FLOW_ERROR); + + if (!update_receiver_stats (src, pinfo)) + return GST_FLOW_OK; + + /* the source that sent the packet must be a sender */ + src->is_sender = TRUE; + src->validated = TRUE; + + do_bitrate_estimation (src, pinfo->running_time, &src->bytes_received); + + /* calculate jitter for the stats */ + calculate_jitter (src, pinfo); + + /* we're ready to push the RTP packet now */ + result = push_packet (src, pinfo->data); + pinfo->data = NULL; + + return result; +} + /** * rtp_source_mark_bye: * @src: an #RTPSource @@ -1160,6 +1179,8 @@ rtp_source_send_rtp (RTPSource * src, RTPPacketInfo * pinfo) src->stats.packets_sent += pinfo->packets; src->stats.octets_sent += pinfo->payload_len; src->bytes_sent += pinfo->payload_len; + /* we are also a receiver of our packets */ + update_receiver_stats (src, pinfo); running_time = pinfo->running_time; diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h index 3a957bb65..9af7d8ace 100644 --- a/gst/rtpmanager/rtpsource.h +++ b/gst/rtpmanager/rtpsource.h @@ -136,6 +136,8 @@ struct _RTPSource { guint32 ssrc; guint16 generation; + GHashTable *reported_in_sr_of; /* set of SSRCs */ + guint probation; guint curr_probation; gboolean validated; diff --git a/gst/rtpmanager/rtpstats.c b/gst/rtpmanager/rtpstats.c index a73e1c6b5..4da164cfd 100644 --- a/gst/rtpmanager/rtpstats.c +++ b/gst/rtpmanager/rtpstats.c @@ -31,6 +31,9 @@ rtp_stats_init_defaults (RTPSessionStats * stats) rtp_stats_set_bandwidths (stats, -1, -1, -1, -1); stats->min_interval = RTP_STATS_MIN_INTERVAL; stats->bye_timeout = RTP_STATS_BYE_TIMEOUT; + stats->nacks_dropped = 0; + stats->nacks_sent = 0; + stats->nacks_received = 0; } /** diff --git a/gst/rtpmanager/rtpstats.h b/gst/rtpmanager/rtpstats.h index cb9e06c7c..1f09ffa68 100644 --- a/gst/rtpmanager/rtpstats.h +++ b/gst/rtpmanager/rtpstats.h @@ -205,6 +205,9 @@ typedef struct { guint active_sources; guint avg_rtcp_packet_size; guint bye_members; + guint nacks_dropped; + guint nacks_sent; + guint nacks_received; } RTPSessionStats; void rtp_stats_init_defaults (RTPSessionStats *stats); diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in index 171ac721f..98c1eab32 100644 --- a/gst/rtsp/Makefile.in +++ b/gst/rtsp/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/rtsp/gstrtpdec.c b/gst/rtsp/gstrtpdec.c index f12004803..b59aa5dfd 100644 --- a/gst/rtsp/gstrtpdec.c +++ b/gst/rtsp/gstrtpdec.c @@ -45,8 +45,6 @@ * SECTION:element-rtpdec * * A simple RTP session manager used internally by rtspsrc. - * - * Last reviewed on 2006-06-20 (0.10.4) */ /* #define HAVE_RTCP */ diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index adeb440f2..ae875bf81 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -73,8 +73,6 @@ * ]| Establish a connection to an RTSP server and send the raw RTP packets to a * fakesink. * </refsect2> - * - * Last reviewed on 2006-08-18 (0.10.5) */ #ifdef HAVE_CONFIG_H @@ -91,6 +89,7 @@ #include <gst/net/gstnet.h> #include <gst/sdp/gstsdpmessage.h> +#include <gst/sdp/gstmikey.h> #include <gst/rtp/gstrtppayloads.h> #include "gst/gst-i18n-plugin.h" @@ -123,6 +122,7 @@ enum SIGNAL_HANDLE_REQUEST, SIGNAL_ON_SDP, SIGNAL_SELECT_STREAM, + SIGNAL_NEW_MANAGER, LAST_SIGNAL }; @@ -138,7 +138,8 @@ enum _GstRtspSrcBufferMode BUFFER_MODE_NONE, BUFFER_MODE_SLAVE, BUFFER_MODE_BUFFER, - BUFFER_MODE_AUTO + BUFFER_MODE_AUTO, + BUFFER_MODE_SYNCED }; #define GST_TYPE_RTSP_SRC_BUFFER_MODE (gst_rtsp_src_buffer_mode_get_type()) @@ -151,6 +152,7 @@ gst_rtsp_src_buffer_mode_get_type (void) {BUFFER_MODE_SLAVE, "Slave receiver to sender clock", "slave"}, {BUFFER_MODE_BUFFER, "Do low/high watermark buffering", "buffer"}, {BUFFER_MODE_AUTO, "Choose mode depending on stream live", "auto"}, + {BUFFER_MODE_SYNCED, "Synchronized sender and receiver clocks", "synced"}, {0, NULL, NULL}, }; @@ -185,8 +187,9 @@ gst_rtsp_src_buffer_mode_get_type (void) #define DEFAULT_UDP_RECONNECT TRUE #define DEFAULT_MULTICAST_IFACE NULL #define DEFAULT_NTP_SYNC FALSE -#define DEFAULT_USE_PIPELINE_CLOCK FALSE -#define DEFAULT_TLS_VALIDATION_FLAGS G_TLS_CERTIFICATE_VALIDATE_ALL +#define DEFAULT_USE_PIPELINE_CLOCK FALSE +#define DEFAULT_TLS_VALIDATION_FLAGS G_TLS_CERTIFICATE_VALIDATE_ALL +#define DEFAULT_TLS_DATABASE NULL enum { @@ -220,6 +223,7 @@ enum PROP_USE_PIPELINE_CLOCK, PROP_SDES, PROP_TLS_VALIDATION_FLAGS, + PROP_TLS_DATABASE, PROP_LAST }; @@ -290,6 +294,13 @@ static gboolean gst_rtspsrc_loop (GstRTSPSrc * src); static gboolean gst_rtspsrc_stream_push_event (GstRTSPSrc * src, GstRTSPStream * stream, GstEvent * event); static gboolean gst_rtspsrc_push_event (GstRTSPSrc * src, GstEvent * event); +static void gst_rtspsrc_connection_flush (GstRTSPSrc * src, gboolean flush); + +typedef struct +{ + guint8 pt; + GstCaps *caps; +} PtMapItem; /* commands we send to out loop to notify it of events */ #define CMD_OPEN (1 << 0) @@ -414,12 +425,10 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::do-rtcp + * GstRTSPSrc:do-rtcp: * * Enable RTCP support. Some old server don't like RTCP and then this property * needs to be set to FALSE. - * - * Since: 0.10.15 */ g_object_class_install_property (gobject_class, PROP_DO_RTCP, g_param_spec_boolean ("do-rtcp", "Do RTCP", @@ -427,12 +436,10 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) DEFAULT_DO_RTCP, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::do-rtsp-keep-alive + * GstRTSPSrc:do-rtsp-keep-alive: * - * Enable RTSP keep laive support. Some old server don't like RTSP + * Enable RTSP keep alive support. Some old server don't like RTSP * keep alive and then this property needs to be set to FALSE. - * - * Since: 0.10.32 */ g_object_class_install_property (gobject_class, PROP_DO_RTSP_KEEP_ALIVE, g_param_spec_boolean ("do-rtsp-keep-alive", "Do RTSP Keep Alive", @@ -441,19 +448,17 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::proxy + * GstRTSPSrc:proxy: * * Set the proxy parameters. This has to be a string of the format * [http://][user:passwd@]host[:port]. - * - * Since: 0.10.15 */ g_object_class_install_property (gobject_class, PROP_PROXY, g_param_spec_string ("proxy", "Proxy", "Proxy settings for HTTP tunneling. Format: [http://][user:passwd@]host[:port]", DEFAULT_PROXY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::proxy-id + * GstRTSPSrc:proxy-id: * * Sets the proxy URI user id for authentication. If the URI set via the * "proxy" property contains a user-id already, that will take precedence. @@ -465,7 +470,7 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) "HTTP proxy URI user id for authentication", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::proxy-pw + * GstRTSPSrc:proxy-pw: * * Sets the proxy URI password for authentication. If the URI set via the * "proxy" property contains a password already, that will take precedence. @@ -478,11 +483,9 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::rtp_blocksize + * GstRTSPSrc:rtp-blocksize: * * RTP package size to suggest to server. - * - * Since: 0.10.16 */ g_object_class_install_property (gobject_class, PROP_RTP_BLOCKSIZE, g_param_spec_uint ("rtp-blocksize", "RTP Blocksize", @@ -501,11 +504,9 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::buffer-mode: + * GstRTSPSrc:buffer-mode: * * Control the buffering and timestamping mode used by the jitterbuffer. - * - * Since: 0.10.22 */ g_object_class_install_property (gobject_class, PROP_BUFFER_MODE, g_param_spec_enum ("buffer-mode", "Buffer Mode", @@ -514,12 +515,10 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::port-range: + * GstRTSPSrc:port-range: * * Configure the client port numbers that can be used to recieve RTP and * RTCP. - * - * Since: 0.10.25 */ g_object_class_install_property (gobject_class, PROP_PORT_RANGE, g_param_spec_string ("port-range", "Port range", @@ -528,11 +527,9 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::udp-buffer-size: + * GstRTSPSrc:udp-buffer-size: * * Size of the kernel UDP receive buffer in bytes. - * - * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_UDP_BUFFER_SIZE, g_param_spec_int ("udp-buffer-size", "UDP Buffer Size", @@ -541,11 +538,9 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstRTSPSrc::short-header: + * GstRTSPSrc:short-header: * * Only send the basic RTSP headers for broken encoders. - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_SHORT_HEADER, g_param_spec_boolean ("short-header", "Short Header", @@ -598,6 +593,19 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) G_TYPE_TLS_CERTIFICATE_FLAGS, DEFAULT_TLS_VALIDATION_FLAGS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstRTSPSrc::tls-database: + * + * TLS database with anchor certificate authorities used to validate + * the server certificate. + * + * Since: 1.4 + */ + g_object_class_install_property (gobject_class, PROP_TLS_DATABASE, + g_param_spec_object ("tls-database", "TLS database", + "TLS database with anchor certificate authorities used to validate the server certificate", + G_TYPE_TLS_DATABASE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * GstRTSPSrc::handle-request: * @rtspsrc: a #GstRTSPSrc @@ -660,6 +668,20 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass) (GCallback) default_select_stream, select_stream_accum, NULL, g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, G_TYPE_UINT, GST_TYPE_CAPS); + /** + * GstRTSPSrc::new-manager: + * @rtspsrc: a #GstRTSPSrc + * @manager: a #GstElement + * + * Emited after a new manager (like rtpbin) was created and the default + * properties were configured. + * + * Since: 1.4 + */ + gst_rtspsrc_signals[SIGNAL_NEW_MANAGER] = + g_signal_new_class_handler ("new-manager", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST | G_SIGNAL_RUN_CLEANUP, 0, NULL, NULL, + g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT); gstelement_class->send_event = gst_rtspsrc_send_event; gstelement_class->provide_clock = gst_rtspsrc_provide_clock; @@ -711,6 +733,7 @@ gst_rtspsrc_init (GstRTSPSrc * src) src->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK; src->sdes = NULL; src->tls_validation_flags = DEFAULT_TLS_VALIDATION_FLAGS; + src->tls_database = DEFAULT_TLS_DATABASE; /* get a list of all extensions */ src->extensions = gst_rtsp_ext_list_get (); @@ -756,6 +779,9 @@ gst_rtspsrc_finalize (GObject * object) if (rtspsrc->sdes) gst_structure_free (rtspsrc->sdes); + if (rtspsrc->tls_database) + g_object_unref (rtspsrc->tls_database); + /* free locks */ g_rec_mutex_clear (&rtspsrc->stream_rec_lock); g_rec_mutex_clear (&rtspsrc->state_rec_lock); @@ -968,6 +994,10 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value, case PROP_TLS_VALIDATION_FLAGS: rtspsrc->tls_validation_flags = g_value_get_flags (value); break; + case PROP_TLS_DATABASE: + g_clear_object (&rtspsrc->tls_database); + rtspsrc->tls_database = g_value_dup_object (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1096,6 +1126,9 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value, case PROP_TLS_VALIDATION_FLAGS: g_value_set_flags (value, rtspsrc->tls_validation_flags); break; + case PROP_TLS_DATABASE: + g_value_set_object (value, rtspsrc->tls_database); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1120,15 +1153,6 @@ find_stream_by_channel (GstRTSPStream * stream, gint * channel) return -1; } -static gint -find_stream_by_pt (GstRTSPStream * stream, gint * pt) -{ - if (stream->pt == *pt) - return 0; - - return -1; -} - static gint find_stream_by_udpsrc (GstRTSPStream * stream, gconstpointer a) { @@ -1145,16 +1169,20 @@ find_stream_by_udpsrc (GstRTSPStream * stream, gconstpointer a) static gint find_stream_by_setup (GstRTSPStream * stream, gconstpointer a) { - /* check qualified setup_url */ - if (!strcmp (stream->conninfo.location, (gchar *) a)) - return 0; - /* check original control_url */ - if (!strcmp (stream->control_url, (gchar *) a)) - return 0; + if (stream->conninfo.location) { + /* check qualified setup_url */ + if (!strcmp (stream->conninfo.location, (gchar *) a)) + return 0; + } + if (stream->control_url) { + /* check original control_url */ + if (!strcmp (stream->control_url, (gchar *) a)) + return 0; - /* check if qualified setup_url ends with string */ - if (g_str_has_suffix (stream->control_url, (gchar *) a)) - return 0; + /* check if qualified setup_url ends with string */ + if (g_str_has_suffix (stream->control_url, (gchar *) a)) + return 0; + } return -1; } @@ -1272,6 +1300,84 @@ gst_rtspsrc_collect_connections (GstRTSPSrc * src, const GstSDPMessage * sdp, } } +/* m=<media> <UDP port> RTP/AVP <payload> + */ +static void +gst_rtspsrc_collect_payloads (GstRTSPSrc * src, const GstSDPMessage * sdp, + const GstSDPMedia * media, GstRTSPStream * stream) +{ + guint i, len; + const gchar *proto; + + /* get proto */ + proto = gst_sdp_media_get_proto (media); + if (proto == NULL) + goto no_proto; + + if (g_str_equal (proto, "RTP/AVP")) + stream->profile = GST_RTSP_PROFILE_AVP; + else if (g_str_equal (proto, "RTP/SAVP")) + stream->profile = GST_RTSP_PROFILE_SAVP; + else if (g_str_equal (proto, "RTP/AVPF")) + stream->profile = GST_RTSP_PROFILE_AVPF; + else if (g_str_equal (proto, "RTP/SAVPF")) + stream->profile = GST_RTSP_PROFILE_SAVPF; + else + goto unknown_proto; + + len = gst_sdp_media_formats_len (media); + for (i = 0; i < len; i++) { + gint pt; + GstCaps *caps; + GstStructure *s; + const gchar *enc; + PtMapItem item; + + pt = atoi (gst_sdp_media_get_format (media, i)); + + GST_DEBUG_OBJECT (src, " looking at %d pt: %d", i, pt); + + /* convert caps */ + caps = gst_rtspsrc_media_to_caps (pt, media); + if (caps == NULL) { + GST_WARNING_OBJECT (src, " skipping pt %d without caps", pt); + continue; + } + + /* do some tweaks */ + s = gst_caps_get_structure (caps, 0); + if ((enc = gst_structure_get_string (s, "encoding-name"))) { + stream->is_real = (strstr (enc, "-REAL") != NULL); + if (strcmp (enc, "X-ASF-PF") == 0) + stream->container = TRUE; + } + GST_DEBUG ("mapping sdp session level attributes to caps"); + gst_rtspsrc_sdp_attributes_to_caps (sdp->attributes, caps); + GST_DEBUG ("mapping sdp media level attributes to caps"); + gst_rtspsrc_sdp_attributes_to_caps (media->attributes, caps); + + /* the first pt will be the default */ + if (stream->ptmap->len == 0) + stream->default_pt = pt; + + item.pt = pt; + item.caps = caps; + g_array_append_val (stream->ptmap, item); + } + return; + +no_proto: + { + GST_ERROR_OBJECT (src, "can't find proto in media"); + return; + } +unknown_proto: + { + GST_ERROR_OBJECT (src, "unknown proto in media %s", proto); + return; + } +} + static const gchar * get_aggregate_control (GstRTSPSrc * src) { @@ -1289,12 +1395,18 @@ get_aggregate_control (GstRTSPSrc * src) return base; } +static void +clear_ptmap_item (PtMapItem * item) +{ + if (item->caps) + gst_caps_unref (item->caps); +} + static GstRTSPStream * gst_rtspsrc_create_stream (GstRTSPSrc * src, GstSDPMessage * sdp, gint idx) { GstRTSPStream *stream; const gchar *control_url; - const gchar *payload; const GstSDPMedia *media; /* get media, should not return NULL */ @@ -1308,12 +1420,16 @@ gst_rtspsrc_create_stream (GstRTSPSrc * src, GstSDPMessage * sdp, gint idx) * the element. */ stream->last_ret = GST_FLOW_NOT_LINKED; stream->added = FALSE; - stream->disabled = FALSE; - stream->id = src->numstreams++; + stream->setup = FALSE; + stream->skipped = FALSE; + stream->id = idx; stream->eos = FALSE; stream->discont = TRUE; stream->seqbase = -1; stream->timebase = -1; + stream->profile = GST_RTSP_PROFILE_AVP; + stream->ptmap = g_array_new (FALSE, FALSE, sizeof (PtMapItem)); + g_array_set_clear_func (stream->ptmap, (GDestroyNotify) clear_ptmap_item); /* collect bandwidth information for this steam. FIXME, configure in the RTP * session manager to scale RTCP. */ @@ -1322,33 +1438,9 @@ gst_rtspsrc_create_stream (GstRTSPSrc * src, GstSDPMessage * sdp, gint idx) /* collect connection info */ gst_rtspsrc_collect_connections (src, sdp, media, stream); - /* we must have a payload. No payload means we cannot create caps */ - /* FIXME, handle multiple formats. The problem here is that we just want to - * take the first available format that we can handle but in order to do that - * we need to scan for depayloader plugins. Scanning for payloader plugins is - * also suboptimal because the user maybe just wants to save the raw stream - * and then we don't care. */ - if ((payload = gst_sdp_media_get_format (media, 0))) { - stream->pt = atoi (payload); - /* convert caps */ - stream->caps = gst_rtspsrc_media_to_caps (stream->pt, media); + /* make the payload type map */ + gst_rtspsrc_collect_payloads (src, sdp, media, stream); - GST_DEBUG ("mapping sdp session level attributes to caps"); - gst_rtspsrc_sdp_attributes_to_caps (sdp->attributes, stream->caps); - GST_DEBUG ("mapping sdp media level attributes to caps"); - gst_rtspsrc_sdp_attributes_to_caps (media->attributes, stream->caps); - - if (stream->pt >= 96) { - /* If we have a dynamic payload type, see if we have a stream with the - * same payload number. If there is one, they are part of the same - * container and we only need to add one pad. */ - if (find_stream (src, &stream->pt, (gpointer) find_stream_by_pt)) { - stream->container = TRUE; - GST_DEBUG ("found another stream with pt %d, marking as container", - stream->pt); - } - } - } /* collect port number */ stream->port = gst_sdp_media_get_port (media); @@ -1360,10 +1452,8 @@ gst_rtspsrc_create_stream (GstRTSPSrc * src, GstSDPMessage * sdp, gint idx) control_url = gst_sdp_message_get_attribute_val_n (sdp, "control", 0); GST_DEBUG_OBJECT (src, "stream %d, (%p)", stream->id, stream); - GST_DEBUG_OBJECT (src, " pt: %d", stream->pt); GST_DEBUG_OBJECT (src, " port: %d", stream->port); GST_DEBUG_OBJECT (src, " container: %d", stream->container); - GST_DEBUG_OBJECT (src, " caps: %" GST_PTR_FORMAT, stream->caps); GST_DEBUG_OBJECT (src, " control: %s", GST_STR_NULL (control_url)); if (control_url != NULL) { @@ -1411,8 +1501,7 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream) GST_DEBUG_OBJECT (src, "free stream %p", stream); - if (stream->caps) - gst_caps_unref (stream->caps); + g_array_free (stream->ptmap, TRUE); g_free (stream->destination); g_free (stream->control_url); @@ -1423,41 +1512,36 @@ gst_rtspsrc_stream_free (GstRTSPSrc * src, GstRTSPStream * stream) gst_element_set_state (stream->udpsrc[i], GST_STATE_NULL); gst_bin_remove (GST_BIN_CAST (src), stream->udpsrc[i]); gst_object_unref (stream->udpsrc[i]); - stream->udpsrc[i] = NULL; } - if (stream->channelpad[i]) { + if (stream->channelpad[i]) gst_object_unref (stream->channelpad[i]); - stream->channelpad[i] = NULL; - } + if (stream->udpsink[i]) { gst_element_set_state (stream->udpsink[i], GST_STATE_NULL); gst_bin_remove (GST_BIN_CAST (src), stream->udpsink[i]); gst_object_unref (stream->udpsink[i]); - stream->udpsink[i] = NULL; } } if (stream->fakesrc) { gst_element_set_state (stream->fakesrc, GST_STATE_NULL); gst_bin_remove (GST_BIN_CAST (src), stream->fakesrc); gst_object_unref (stream->fakesrc); - stream->fakesrc = NULL; } if (stream->srcpad) { gst_pad_set_active (stream->srcpad, FALSE); - if (stream->added) { + if (stream->added) gst_element_remove_pad (GST_ELEMENT_CAST (src), stream->srcpad); - stream->added = FALSE; - } - stream->srcpad = NULL; } - if (stream->rtcppad) { + if (stream->srtpenc) + gst_object_unref (stream->srtpenc); + if (stream->srtpdec) + gst_object_unref (stream->srtpdec); + if (stream->key) + gst_buffer_unref (stream->key); + if (stream->rtcppad) gst_object_unref (stream->rtcppad); - stream->rtcppad = NULL; - } - if (stream->session) { + if (stream->session) g_object_unref (stream->session); - stream->session = NULL; - } g_free (stream); } @@ -1484,7 +1568,6 @@ gst_rtspsrc_cleanup (GstRTSPSrc * src) gst_bin_remove (GST_BIN_CAST (src), src->manager); src->manager = NULL; } - src->numstreams = 0; if (src->props) gst_structure_free (src->props); src->props = NULL; @@ -1594,6 +1677,126 @@ gst_rtspsrc_parse_rtpmap (const gchar * rtpmap, gint * payload, gchar ** name, return TRUE; } +static gboolean +parse_keymgmt (const gchar * keymgmt, GstCaps * caps) +{ + gboolean res = FALSE; + gchar *p, *kmpid; + gsize size; + guchar *data; + GstMIKEYMessage *msg; + const GstMIKEYPayload *payload; + const gchar *srtp_cipher; + const gchar *srtp_auth; + + p = (gchar *) keymgmt; + + SKIP_SPACES (p); + if (*p == '\0') + return FALSE; + + PARSE_STRING (p, " ", kmpid); + if (!g_str_equal (kmpid, "mikey")) + return FALSE; + + data = g_base64_decode (p, &size); + if (data == NULL) + return FALSE; + + msg = gst_mikey_message_new_from_data (data, size, NULL, NULL); + if (msg == NULL) + return FALSE; + + srtp_cipher = "aes-128-icm"; + srtp_auth = "hmac-sha1-80"; + + /* check the Security policy if any */ + if ((payload = gst_mikey_message_find_payload (msg, GST_MIKEY_PT_SP, 0))) { + GstMIKEYPayloadSP *p = (GstMIKEYPayloadSP *) payload; + guint len, i; + + if (p->proto != GST_MIKEY_SEC_PROTO_SRTP) + goto done; + + len = gst_mikey_payload_sp_get_n_params (payload); + for (i = 0; i < len; i++) { + const GstMIKEYPayloadSPParam *param = + gst_mikey_payload_sp_get_param (payload, i); + + switch (param->type) { + case GST_MIKEY_SP_SRTP_ENC_ALG: + switch (param->val[0]) { + case 0: + srtp_cipher = "null"; + break; + case 2: + case 1: + srtp_cipher = "aes-128-icm"; + break; + default: + break; + } + break; + case GST_MIKEY_SP_SRTP_AUTH_ALG: + switch (param->val[0]) { + case 0: + srtp_auth = "null"; + break; + case 2: + case 1: + srtp_auth = "hmac-sha1-80"; + break; + default: + break; + } + break; + case GST_MIKEY_SP_SRTP_SRTP_ENC: + break; + case GST_MIKEY_SP_SRTP_SRTCP_ENC: + break; + default: + break; + } + } + } + + if (!(payload = gst_mikey_message_find_payload (msg, GST_MIKEY_PT_KEMAC, 0))) + goto done; + else { + GstMIKEYPayloadKEMAC *p = (GstMIKEYPayloadKEMAC *) payload; + const GstMIKEYPayload *sub; + GstMIKEYPayloadKeyData *pkd; + GstBuffer *buf; + + if (p->enc_alg != GST_MIKEY_ENC_NULL || p->mac_alg != GST_MIKEY_MAC_NULL) + goto done; + + if (!(sub = gst_mikey_payload_kemac_get_sub (payload, 0))) + goto done; + + if (sub->type != GST_MIKEY_PT_KEY_DATA) + goto done; + + pkd = (GstMIKEYPayloadKeyData *) sub; + buf = + gst_buffer_new_wrapped (g_memdup (pkd->key_data, pkd->key_len), + pkd->key_len); + gst_caps_set_simple (caps, "srtp-key", GST_TYPE_BUFFER, buf, NULL); + } + + gst_caps_set_simple (caps, + "srtp-cipher", G_TYPE_STRING, srtp_cipher, + "srtp-auth", G_TYPE_STRING, srtp_auth, + "srtcp-cipher", G_TYPE_STRING, srtp_cipher, + "srtcp-auth", G_TYPE_STRING, srtp_auth, NULL); + + res = TRUE; +done: + gst_mikey_message_free (msg); + + return res; +} + /* * Mapping SDP attributes to caps * @@ -1625,6 +1828,10 @@ gst_rtspsrc_sdp_attributes_to_caps (GArray * attributes, GstCaps * caps) continue; if (!strcmp (key, "range")) continue; + if (g_str_equal (key, "key-mgmt")) { + parse_keymgmt (attr->value, caps); + continue; + } /* string must be valid UTF8 */ if (!g_utf8_validate (attr->value, -1, NULL)) @@ -1642,10 +1849,31 @@ gst_rtspsrc_sdp_attributes_to_caps (GArray * attributes, GstCaps * caps) } } +static const gchar * +rtsp_get_attribute_for_pt (const GstSDPMedia * media, const gchar * name, + gint pt) +{ + guint i; + + for (i = 0;; i++) { + const gchar *attr; + gint val; + + if ((attr = gst_sdp_media_get_attribute_val_n (media, name, i)) == NULL) + break; + + if (sscanf (attr, "%d ", &val) != 1) + continue; + + if (val == pt) + return attr; + } + return NULL; +} + /* * Mapping of caps to and from SDP fields: * - * m=<media> <UDP port> RTP/AVP <payload> * a=rtpmap:<payload> <encoding_name>/<clock_rate>[/<encoding_params>] * a=fmtp:<payload> <param>[=<value>];... */ @@ -1664,29 +1892,19 @@ gst_rtspsrc_media_to_caps (gint pt, const GstSDPMedia * media) gboolean ret; /* get and parse rtpmap */ - if ((rtpmap = gst_sdp_media_get_attribute_val (media, "rtpmap"))) { + rtpmap = rtsp_get_attribute_for_pt (media, "rtpmap", pt); + + if (rtpmap) { ret = gst_rtspsrc_parse_rtpmap (rtpmap, &payload, &name, &rate, ¶ms); - if (ret) { - if (payload != pt) { - /* we ignore the rtpmap if the payload type is different. */ - g_warning ("rtpmap of wrong payload type, ignoring"); - name = NULL; - rate = -1; - params = NULL; - } - } else { - /* if we failed to parse the rtpmap for a dynamic payload type, we have an - * error */ - if (pt >= 96) - goto no_rtpmap; - /* else we can ignore */ + if (!ret) { g_warning ("error parsing rtpmap, ignoring"); + rtpmap = NULL; } - } else { - /* dynamic payloads need rtpmap or we fail */ - if (pt >= 96) - goto no_rtpmap; } + /* dynamic payloads need rtpmap or we fail */ + if (rtpmap == NULL && pt >= 96) + goto no_rtpmap; + /* check if we have a rate, if not, we need to look up the rate from the * default rates based on the payload types. */ if (rate == -1) { @@ -1734,7 +1952,7 @@ gst_rtspsrc_media_to_caps (gint pt, const GstSDPMedia * media) } /* parse optional fmtp: field */ - if ((fmtp = gst_sdp_media_get_attribute_val (media, "fmtp"))) { + if ((fmtp = rtsp_get_attribute_for_pt (media, "fmtp", pt))) { gchar *p; gint payload = 0; @@ -1835,7 +2053,7 @@ again: g_object_set (G_OBJECT (udpsrc0), "buffer-size", src->udp_buffer_size, NULL); - ret = gst_element_set_state (udpsrc0, GST_STATE_PAUSED); + ret = gst_element_set_state (udpsrc0, GST_STATE_READY); if (ret == GST_STATE_CHANGE_FAILURE) { if (tmp_rtp != 0) { GST_DEBUG_OBJECT (src, "Unable to make udpsrc from RTP port %d", tmp_rtp); @@ -1889,7 +2107,7 @@ again: g_object_set (G_OBJECT (udpsrc1), "port", tmp_rtcp, "reuse", FALSE, NULL); GST_DEBUG_OBJECT (src, "starting RTCP on port %d", tmp_rtcp); - ret = gst_element_set_state (udpsrc1, GST_STATE_PAUSED); + ret = gst_element_set_state (udpsrc1, GST_STATE_READY); /* tmp_rtcp port is busy already : retry to make rtp/rtcp pair */ if (ret == GST_STATE_CHANGE_FAILURE) { GST_DEBUG_OBJECT (src, "Unable to make udpsrc from RTCP port %d", tmp_rtcp); @@ -2140,6 +2358,9 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event) GST_DEBUG_OBJECT (src, "stopped streaming"); + /* stop flushing the rtsp connection so we can send PAUSE/PLAY below */ + gst_rtspsrc_connection_flush (src, FALSE); + /* copy segment, we need this because we still need the old * segment when we close the current segment. */ memcpy (&seeksegment, &src->segment, sizeof (GstSegment)); @@ -2484,6 +2705,17 @@ was_ok: } } +static gboolean +copy_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data) +{ + GstPad *gpad = GST_PAD_CAST (user_data); + + GST_DEBUG_OBJECT (gpad, "store sticky event %" GST_PTR_FORMAT, *event); + gst_pad_store_sticky_event (gpad, *event); + + return TRUE; +} + /* this callback is called when the session manager generated a new src pad with * payloaded RTP packets. We simply ghost the pad here. */ static void @@ -2521,12 +2753,12 @@ new_manager_pad (GstElement * manager, GstPad * pad, GstRTSPSrc * src) for (ostreams = src->streams; ostreams; ostreams = g_list_next (ostreams)) { GstRTSPStream *ostream = (GstRTSPStream *) ostreams->data; - GST_DEBUG_OBJECT (src, "stream %p, container %d, disabled %d, added %d", - ostream, ostream->container, ostream->disabled, ostream->added); + GST_DEBUG_OBJECT (src, "stream %p, container %d, added %d, setup %d", + ostream, ostream->container, ostream->added, ostream->setup); - /* a container stream only needs one pad added. Also disabled streams don't - * count */ - if (!ostream->container && !ostream->disabled && !ostream->added) { + /* if we find a stream for which we did a setup that is not added, we + * need to wait some more */ + if (ostream->setup && !ostream->added) { all_added = FALSE; break; } @@ -2542,6 +2774,7 @@ new_manager_pad (GstElement * manager, GstPad * pad, GstRTSPSrc * src) gst_pad_set_event_function (stream->srcpad, gst_rtspsrc_handle_src_event); gst_pad_set_query_function (stream->srcpad, gst_rtspsrc_handle_src_query); gst_pad_set_active (stream->srcpad, TRUE); + gst_pad_sticky_events_foreach (pad, copy_sticky_events, stream->srcpad); gst_element_add_pad (GST_ELEMENT_CAST (src), stream->srcpad); if (all_added) { @@ -2563,6 +2796,20 @@ unknown_stream: } } +static GstCaps * +stream_get_caps_for_pt (GstRTSPStream * stream, guint pt) +{ + guint i, len; + + len = stream->ptmap->len; + for (i = 0; i < len; i++) { + PtMapItem *item = &g_array_index (stream->ptmap, PtMapItem, i); + if (item->pt == pt) + return item->caps; + } + return NULL; +} + static GstCaps * request_pt_map (GstElement * manager, guint session, guint pt, GstRTSPSrc * src) { @@ -2576,8 +2823,7 @@ request_pt_map (GstElement * manager, guint session, guint pt, GstRTSPSrc * src) if (!stream) goto unknown_stream; - caps = stream->caps; - if (caps) + if ((caps = stream_get_caps_for_pt (stream, pt))) gst_caps_ref (caps); GST_RTSP_STATE_UNLOCK (src); @@ -2662,6 +2908,119 @@ on_ssrc_active (GObject * session, GObject * source, GstRTSPStream * stream) stream->id); } +static void +set_manager_buffer_mode (GstRTSPSrc * src) +{ + GObjectClass *klass; + + if (src->manager == NULL) + return; + + klass = G_OBJECT_GET_CLASS (G_OBJECT (src->manager)); + + if (!g_object_class_find_property (klass, "buffer-mode")) + return; + + if (src->buffer_mode != BUFFER_MODE_AUTO) { + g_object_set (src->manager, "buffer-mode", src->buffer_mode, NULL); + + return; + } + + GST_DEBUG_OBJECT (src, + "auto buffering mode, have clock %" GST_PTR_FORMAT, src->provided_clock); + + if (src->provided_clock) { + GstClock *clock = gst_element_get_clock (GST_ELEMENT_CAST (src)); + + if (clock == src->provided_clock) { + GST_DEBUG_OBJECT (src, "selected synced"); + g_object_set (src->manager, "buffer-mode", BUFFER_MODE_SYNCED, NULL); + + if (clock) + gst_object_unref (clock); + + return; + } + + /* Otherwise fall-through and use another buffer mode */ + if (clock) + gst_object_unref (clock); + } + + GST_DEBUG_OBJECT (src, "auto buffering mode"); + if (src->use_buffering) { + GST_DEBUG_OBJECT (src, "selected buffer"); + g_object_set (src->manager, "buffer-mode", BUFFER_MODE_BUFFER, NULL); + } else { + GST_DEBUG_OBJECT (src, "selected slave"); + g_object_set (src->manager, "buffer-mode", BUFFER_MODE_SLAVE, NULL); + } +} + +static GstCaps * +request_key (GstElement * srtpdec, guint ssrc, GstRTSPStream * stream) +{ + GST_DEBUG ("request key %u", ssrc); + return gst_caps_ref (stream_get_caps_for_pt (stream, stream->default_pt)); +} + +static GstElement * +request_rtp_decoder (GstElement * rtpbin, guint session, GstRTSPStream * stream) +{ + GST_DEBUG ("decoder session %u, stream %p, %d", session, stream, stream->id); + if (stream->id != session) + return NULL; + + if (stream->profile != GST_RTSP_PROFILE_SAVP && + stream->profile != GST_RTSP_PROFILE_SAVPF) + return NULL; + + if (stream->srtpdec == NULL) { + gchar *name; + + name = g_strdup_printf ("srtpdec_%u", session); + stream->srtpdec = gst_element_factory_make ("srtpdec", name); + g_free (name); + + g_signal_connect (stream->srtpdec, "request-key", + (GCallback) request_key, stream); + } + return gst_object_ref (stream->srtpdec); +} + +static GstElement * +request_rtcp_encoder (GstElement * rtpbin, guint session, + GstRTSPStream * stream) +{ + gchar *name; + GstPad *pad; + + GST_DEBUG ("decoder session %u, stream %p, %d", session, stream, stream->id); + if (stream->id != session) + return NULL; + + if (stream->profile != GST_RTSP_PROFILE_SAVP && + stream->profile != GST_RTSP_PROFILE_SAVPF) + return NULL; + + if (stream->srtpenc == NULL) { + name = g_strdup_printf ("srtpenc_%u", session); + stream->srtpenc = gst_element_factory_make ("srtpenc", name); + g_free (name); + + /* key has been made before */ + g_object_set (stream->srtpenc, "key", stream->key, NULL); + } + name = g_strdup_printf ("rtcp_sink_%d", session); + pad = gst_element_get_request_pad (stream->srtpenc, name); + g_free (name); + gst_object_unref (pad); + + return gst_object_ref (stream->srtpenc); +} + + /* try to get and configure a manager */ static gboolean gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream, @@ -2724,41 +3083,24 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream, NULL); } - if (g_object_class_find_property (klass, "buffer-mode")) { - if (src->buffer_mode != BUFFER_MODE_AUTO) { - g_object_set (src->manager, "buffer-mode", src->buffer_mode, NULL); - } else { - gboolean need_slave; - GstStructure *s; - const gchar *encoding; - - /* buffer mode pauses are handled by adding offsets to buffer times, - * but some depayloaders may have a hard time syncing output times - * with such input times, e.g. container ones, most notably ASF */ - /* TODO alternatives are having an event that indicates these shifts, - * or having rtsp extensions provide suggestion on buffer mode */ - need_slave = stream->container; - if (stream->caps && (s = gst_caps_get_structure (stream->caps, 0)) && - (encoding = gst_structure_get_string (s, "encoding-name"))) - need_slave = need_slave || (strcmp (encoding, "X-ASF-PF") == 0); - GST_DEBUG_OBJECT (src, "auto buffering mode, need_slave %d", - need_slave); - /* valid duration implies not likely live pipeline, - * so slaving in jitterbuffer does not make much sense - * (and might mess things up due to bursts) */ - if (GST_CLOCK_TIME_IS_VALID (src->segment.duration) && - src->segment.duration && !need_slave) { - GST_DEBUG_OBJECT (src, "selected buffer"); - g_object_set (src->manager, "buffer-mode", BUFFER_MODE_BUFFER, - NULL); - } else { - GST_DEBUG_OBJECT (src, "selected slave"); - g_object_set (src->manager, "buffer-mode", BUFFER_MODE_SLAVE, NULL); - } - } + /* buffer mode pauses are handled by adding offsets to buffer times, + * but some depayloaders may have a hard time syncing output times + * with such input times, e.g. container ones, most notably ASF */ + /* TODO alternatives are having an event that indicates these shifts, + * or having rtsp extensions provide suggestion on buffer mode */ + /* valid duration implies not likely live pipeline, + * so slaving in jitterbuffer does not make much sense + * (and might mess things up due to bursts) */ + if (GST_CLOCK_TIME_IS_VALID (src->segment.duration) && + src->segment.duration && !stream->container) { + src->use_buffering = TRUE; + } else { + src->use_buffering = FALSE; } - /* connect to signals if we did not already do so */ + set_manager_buffer_mode (src); + + /* connect to signals */ GST_DEBUG_OBJECT (src, "connect to signals on session manager, stream %p", stream); src->manager_sig_id = @@ -2770,7 +3112,16 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream, g_signal_connect (src->manager, "on-npt-stop", (GCallback) on_npt_stop, src); + + g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_NEW_MANAGER], 0, + src->manager); } + g_signal_connect (src->manager, "request-rtp-decoder", + (GCallback) request_rtp_decoder, stream); + g_signal_connect (src->manager, "request-rtcp-decoder", + (GCallback) request_rtp_decoder, stream); + g_signal_connect (src->manager, "request-rtcp-encoder", + (GCallback) request_rtcp_encoder, stream); /* we stream directly to the manager, get some pads. Each RTSP stream goes * into a separate RTP session. */ @@ -2812,6 +3163,8 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream, g_object_set (rtpsession, "probation", src->probation, NULL); + g_object_set (rtpsession, "internal-ssrc", stream->send_ssrc, NULL); + g_signal_connect (rtpsession, "on-bye-ssrc", (GCallback) on_bye_ssrc, stream); g_signal_connect (rtpsession, "on-bye-timeout", (GCallback) on_timeout, @@ -3053,7 +3406,7 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream, /* change state */ gst_element_set_locked_state (stream->udpsrc[0], TRUE); - gst_element_set_state (stream->udpsrc[0], GST_STATE_PAUSED); + gst_element_set_state (stream->udpsrc[0], GST_STATE_READY); } /* creating another UDP source for RTCP */ @@ -3067,7 +3420,11 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream, if (stream->udpsrc[1] == NULL) goto no_element; - caps = gst_caps_new_empty_simple ("application/x-rtcp"); + if (stream->profile == GST_RTSP_PROFILE_SAVP || + stream->profile == GST_RTSP_PROFILE_SAVPF) + caps = gst_caps_new_empty_simple ("application/x-srtcp"); + else + caps = gst_caps_new_empty_simple ("application/x-rtcp"); g_object_set (stream->udpsrc[1], "caps", caps, NULL); gst_caps_unref (caps); @@ -3078,7 +3435,7 @@ gst_rtspsrc_stream_configure_mcast (GstRTSPSrc * src, GstRTSPStream * stream, g_object_set (G_OBJECT (stream->udpsrc[0]), "multicast-iface", src->multi_iface, NULL); - gst_element_set_state (stream->udpsrc[1], GST_STATE_PAUSED); + gst_element_set_state (stream->udpsrc[1], GST_STATE_READY); } return TRUE; @@ -3108,6 +3465,8 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream, /* we manage the UDP elements now. For unicast, the UDP sources where * allocated in the stream when we suggested a transport. */ if (stream->udpsrc[0]) { + GstCaps *caps; + gst_element_set_locked_state (stream->udpsrc[0], TRUE); gst_bin_add (GST_BIN_CAST (src), stream->udpsrc[0]); @@ -3119,6 +3478,9 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream, g_object_set (G_OBJECT (stream->udpsrc[0]), "timeout", src->udp_timeout * 1000, NULL); + if ((caps = stream_get_caps_for_pt (stream, stream->default_pt))) + g_object_set (stream->udpsrc[0], "caps", caps, NULL); + /* get output pad of the UDP source. */ *outpad = gst_element_get_static_pad (stream->udpsrc[0], "src"); @@ -3130,7 +3492,8 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream, * configure all the streams to let the application autoplug decoders. */ stream->blockid = gst_pad_add_probe (stream->blockedpad, - GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM, pad_blocked, src, NULL); + GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER | + GST_PAD_PROBE_TYPE_BUFFER_LIST, pad_blocked, src, NULL); if (stream->channelpad[0]) { GST_DEBUG_OBJECT (src, "connecting UDP source 0 to manager"); @@ -3153,7 +3516,11 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream, gst_element_set_locked_state (stream->udpsrc[1], TRUE); gst_bin_add (GST_BIN_CAST (src), stream->udpsrc[1]); - caps = gst_caps_new_empty_simple ("application/x-rtcp"); + if (stream->profile == GST_RTSP_PROFILE_SAVP || + stream->profile == GST_RTSP_PROFILE_SAVPF) + caps = gst_caps_new_empty_simple ("application/x-srtcp"); + else + caps = gst_caps_new_empty_simple ("application/x-rtcp"); g_object_set (stream->udpsrc[1], "caps", caps, NULL); gst_caps_unref (caps); @@ -3344,24 +3711,36 @@ gst_rtspsrc_stream_configure_transport (GstRTSPStream * stream, GstPad *outpad = NULL; GstPadTemplate *template; gchar *name; - GstStructure *s; - const gchar *mime; + const gchar *media_type; + guint i, len; src = stream->parent; GST_DEBUG_OBJECT (src, "configuring transport for stream %p", stream); - s = gst_caps_get_structure (stream->caps, 0); - - /* get the proper mime type for this stream now */ - if (gst_rtsp_transport_get_mime (transport->trans, &mime) < 0) + /* get the proper media type for this stream now */ + if (gst_rtsp_transport_get_media_type (transport, &media_type) < 0) goto unknown_transport; - if (!mime) + if (!media_type) goto unknown_transport; - /* configure the final mime type */ - GST_DEBUG_OBJECT (src, "setting mime to %s", mime); - gst_structure_set_name (s, mime); + /* configure the final media type */ + GST_DEBUG_OBJECT (src, "setting media type to %s", media_type); + + len = stream->ptmap->len; + for (i = 0; i < len; i++) { + GstStructure *s; + PtMapItem *item = &g_array_index (stream->ptmap, PtMapItem, i); + + if (item->caps == NULL) + continue; + + s = gst_caps_get_structure (item->caps, 0); + gst_structure_set_name (s, media_type); + /* set ssrc if known */ + if (transport->ssrc) + gst_structure_set (s, "ssrc", G_TYPE_UINT, transport->ssrc, NULL); + } /* try to get and configure a manager, channelpad[0-1] will be configured with * the pads for the manager, or NULL when no manager is needed. */ @@ -3482,8 +3861,11 @@ gst_rtspsrc_activate_streams (GstRTSPSrc * src) /* if we don't have a session manager, set the caps now. If we have a * session, we will get a notification of the pad and the caps. */ if (!src->manager) { + GstCaps *caps; + + caps = stream_get_caps_for_pt (stream, stream->default_pt); GST_DEBUG_OBJECT (src, "setting pad caps for stream %p", stream); - gst_pad_set_caps (stream->srcpad, stream->caps); + gst_pad_set_caps (stream->srcpad, caps); } /* add the pad */ if (!stream->added) { @@ -3525,10 +3907,20 @@ gst_rtspsrc_configure_caps (GstRTSPSrc * src, GstSegment * segment, for (walk = src->streams; walk; walk = g_list_next (walk)) { GstRTSPStream *stream = (GstRTSPStream *) walk->data; - GstCaps *caps; + guint j, len; + + if (!stream->setup) + continue; - if ((caps = stream->caps)) { - caps = gst_caps_make_writable (caps); + len = stream->ptmap->len; + for (j = 0; j < len; j++) { + GstCaps *caps; + PtMapItem *item = &g_array_index (stream->ptmap, PtMapItem, j); + + if (item->caps == NULL) + continue; + + caps = gst_caps_make_writable (item->caps); /* update caps */ if (stream->timebase != -1) gst_caps_set_simple (caps, "clock-base", G_TYPE_UINT, @@ -3542,9 +3934,14 @@ gst_rtspsrc_configure_caps (GstRTSPSrc * src, GstSegment * segment, gst_caps_set_simple (caps, "play-speed", G_TYPE_DOUBLE, play_speed, NULL); gst_caps_set_simple (caps, "play-scale", G_TYPE_DOUBLE, play_scale, NULL); - stream->caps = caps; + item->caps = caps; + GST_DEBUG_OBJECT (src, "stream %p, pt %d, caps %" GST_PTR_FORMAT, stream, + item->pt, caps); + + if (item->pt == stream->default_pt && stream->udpsrc[0]) { + g_object_set (stream->udpsrc[0], "caps", caps, NULL); + } } - GST_DEBUG_OBJECT (src, "stream %p, caps %" GST_PTR_FORMAT, stream, caps); } if (reset_manager && src->manager) { GST_DEBUG_OBJECT (src, "clear session"); @@ -3593,7 +3990,7 @@ gst_rtspsrc_stream_push_event (GstRTSPSrc * src, GstRTSPStream * stream, gboolean res = TRUE; /* only streams that have a connection to the outside world */ - if (stream->container || stream->disabled) + if (!stream->setup) goto done; if (stream->udpsrc[0]) { @@ -3669,6 +4066,10 @@ gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info, if (!gst_rtsp_connection_set_tls_validation_flags (info->connection, src->tls_validation_flags)) GST_WARNING_OBJECT (src, "Unable to set TLS validation flags"); + + if (src->tls_database) + gst_rtsp_connection_set_tls_database (info->connection, + src->tls_database); } if (info->url->transports & GST_RTSP_LOWER_TRANS_HTTP) @@ -4731,8 +5132,7 @@ gst_rtspsrc_parse_digest_challenge (GstRTSPConnection * conn, } else value = NULL; - if (item && (strcmp (item, "stale") == 0) && - value && (strcmp (value, "TRUE") == 0)) + if (value && strcmp (item, "stale") == 0 && strcmp (value, "TRUE") == 0) *stale = TRUE; gst_rtsp_connection_set_auth_param (conn, item, value); g_free (item); @@ -5247,7 +5647,7 @@ static guint protocol_masks[] = { static GstRTSPResult gst_rtspsrc_create_transports_string (GstRTSPSrc * src, - GstRTSPLowerTrans protocols, gchar ** transports) + GstRTSPLowerTrans protocols, GstRTSPProfile profile, gchar ** transports) { GstRTSPResult res; GString *result; @@ -5271,23 +5671,35 @@ gst_rtspsrc_create_transports_string (GstRTSPSrc * src, add_udp_str = FALSE; /* the default RTSP transports */ - result = g_string_new (""); + result = g_string_new ("RTP"); + + switch (profile) { + case GST_RTSP_PROFILE_AVP: + g_string_append (result, "/AVP"); + break; + case GST_RTSP_PROFILE_SAVP: + g_string_append (result, "/SAVP"); + break; + case GST_RTSP_PROFILE_AVPF: + g_string_append (result, "/AVPF"); + break; + case GST_RTSP_PROFILE_SAVPF: + g_string_append (result, "/SAVPF"); + break; + default: + break; + } + if (protocols & GST_RTSP_LOWER_TRANS_UDP) { GST_DEBUG_OBJECT (src, "adding UDP unicast"); - - g_string_append (result, "RTP/AVP"); if (add_udp_str) g_string_append (result, "/UDP"); g_string_append (result, ";unicast;client_port=%%u1-%%u2"); } else if (protocols & GST_RTSP_LOWER_TRANS_UDP_MCAST) { GST_DEBUG_OBJECT (src, "adding UDP multicast"); - /* we don't have to allocate any UDP ports yet, if the selected transport * turns out to be multicast we can create them and join the multicast * group indicated in the transport reply */ - if (result->len > 0) - g_string_append (result, ","); - g_string_append (result, "RTP/AVP"); if (add_udp_str) g_string_append (result, "/UDP"); g_string_append (result, ";multicast"); @@ -5302,9 +5714,7 @@ gst_rtspsrc_create_transports_string (GstRTSPSrc * src, } else if (protocols & GST_RTSP_LOWER_TRANS_TCP) { GST_DEBUG_OBJECT (src, "adding TCP"); - if (result->len > 0) - g_string_append (result, ","); - g_string_append (result, "RTP/AVP/TCP;unicast;interleaved=%%i1-%%i2"); + g_string_append (result, "/TCP;unicast;interleaved=%%i1-%%i2"); } *transports = g_string_free (result, FALSE); @@ -5401,23 +5811,86 @@ failed: } } -static gboolean -gst_rtspsrc_stream_is_real_media (GstRTSPStream * stream) +static gchar * +gst_rtspsrc_stream_make_keymgmt (GstRTSPSrc * src, GstRTSPStream * stream) { - gboolean res = FALSE; - - if (stream->caps) { - GstStructure *s; - const gchar *enc = NULL; - - s = gst_caps_get_structure (stream->caps, 0); - if ((enc = gst_structure_get_string (s, "encoding-name"))) { - res = (strstr (enc, "-REAL") != NULL); - } - } - return res; + GBytes *bytes; + gchar *result, *base64; + guint8 *key_data; + const guint8 *data; + gsize size; + guint i; + GstMIKEYMessage *msg; + GstMIKEYPayload *payload, *pkd; + guint8 byte; +#define KEY_SIZE 30 + + key_data = g_malloc (KEY_SIZE); + for (i = 0; i < KEY_SIZE; i += 4) + GST_WRITE_UINT32_BE (key_data + i, g_random_int ()); + + if (stream->key) + gst_buffer_unref (stream->key); + stream->key = gst_buffer_new_wrapped (key_data, KEY_SIZE); + + msg = gst_mikey_message_new (); + /* unencrypted MIKEY message, we send this over TLS so this is allowed */ + gst_mikey_message_set_info (msg, GST_MIKEY_VERSION, GST_MIKEY_TYPE_PSK_INIT, + FALSE, GST_MIKEY_PRF_MIKEY_1, g_random_int (), GST_MIKEY_MAP_TYPE_SRTP); + /* add policy '0' for our SSRC */ + stream->send_ssrc = g_random_int (); + gst_mikey_message_add_cs_srtp (msg, 0, stream->send_ssrc, 0); + /* timestamp is now */ + gst_mikey_message_add_t_now_ntp_utc (msg); + /* add some random data */ + gst_mikey_message_add_rand_len (msg, 16); + + /* the policy '0' is SRTP */ + payload = gst_mikey_payload_new (GST_MIKEY_PT_SP); + gst_mikey_payload_sp_set (payload, 0, GST_MIKEY_SEC_PROTO_SRTP); + + /* only AES-CM is supported */ + byte = 1; + gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_ENC_ALG, 1, &byte); + /* only HMAC-SHA1 */ + gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_AUTH_ALG, 1, + &byte); + /* we enable encryption on RTP and RTCP */ + gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_SRTP_ENC, 1, + &byte); + gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_SRTCP_ENC, 1, + &byte); + /* we enable authentication on RTP and RTCP */ + gst_mikey_payload_sp_add_param (payload, GST_MIKEY_SP_SRTP_SRTP_AUTH, 1, + &byte); + gst_mikey_message_add_payload (msg, payload); + + /* make unencrypted KEMAC */ + payload = gst_mikey_payload_new (GST_MIKEY_PT_KEMAC); + gst_mikey_payload_kemac_set (payload, GST_MIKEY_ENC_NULL, GST_MIKEY_MAC_NULL); + /* add the key in KEMAC */ + pkd = gst_mikey_payload_new (GST_MIKEY_PT_KEY_DATA); + gst_mikey_payload_key_data_set_key (pkd, GST_MIKEY_KD_TEK, KEY_SIZE, + key_data); + gst_mikey_payload_kemac_add_sub (payload, pkd); + gst_mikey_message_add_payload (msg, payload); + + /* now serialize this to bytes */ + bytes = gst_mikey_message_to_bytes (msg, NULL, NULL); + gst_mikey_message_free (msg); + /* and make it into base64 */ + data = g_bytes_get_data (bytes, &size); + base64 = g_base64_encode (data, size); + g_bytes_unref (bytes); + + result = g_strdup_printf ("prot=mikey;uri=\"%s\";data=\"%s\"", + stream->conninfo.location, base64); + g_free (base64); + + return result; } + /* Perform the SETUP request for all the streams. * * We ask the server for a specific transport, which initially includes all the @@ -5475,32 +5948,41 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) gint retry = 0; guint mask = 0; gboolean selected; + GstCaps *caps; stream = (GstRTSPStream *) walk->data; + caps = stream_get_caps_for_pt (stream, stream->default_pt); + if (caps == NULL) { + GST_DEBUG_OBJECT (src, "skipping stream %p, no caps", stream); + continue; + } + + if (stream->skipped) { + GST_DEBUG_OBJECT (src, "skipping stream %p", stream); + continue; + } + /* see if we need to configure this stream */ - if (!gst_rtsp_ext_list_configure_stream (src->extensions, stream->caps)) { + if (!gst_rtsp_ext_list_configure_stream (src->extensions, caps)) { GST_DEBUG_OBJECT (src, "skipping stream %p, disabled by extension", stream); - stream->disabled = TRUE; continue; } g_signal_emit (src, gst_rtspsrc_signals[SIGNAL_SELECT_STREAM], 0, - stream->id, stream->caps, &selected); + stream->id, caps, &selected); if (!selected) { GST_DEBUG_OBJECT (src, "skipping stream %p, disabled by signal", stream); - stream->disabled = TRUE; continue; } - stream->disabled = FALSE; /* merge/overwrite global caps */ - if (stream->caps) { + if (caps) { guint j, num; GstStructure *s; - s = gst_caps_get_structure (stream->caps, 0); + s = gst_caps_get_structure (caps, 0); num = gst_structure_n_fields (src->props); for (j = 0; j < num; j++) { @@ -5550,7 +6032,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) /* create a string with first transport in line */ transports = NULL; res = gst_rtspsrc_create_transports_string (src, - protocols & protocol_masks[mask], &transports); + protocols & protocol_masks[mask], stream->profile, &transports); if (res < 0 || transports == NULL) goto setup_transport_failed; @@ -5586,6 +6068,13 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) /* select transport */ gst_rtsp_message_take_header (&request, GST_RTSP_HDR_TRANSPORT, transports); + /* set up keys */ + if (stream->profile == GST_RTSP_PROFILE_SAVP || + stream->profile == GST_RTSP_PROFILE_SAVPF) { + hval = gst_rtspsrc_stream_make_keymgmt (src, stream); + gst_rtsp_message_take_header (&request, GST_RTSP_HDR_KEYMGMT, hval); + } + /* if the user wants a non default RTP packet size we add the blocksize * parameter */ if (src->rtp_blocksize > 0) { @@ -5622,7 +6111,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) * but not without checking for lost cause/extension so we can * post a nicer/more useful error message later */ if (!unsupported_real) - unsupported_real = gst_rtspsrc_stream_is_real_media (stream); + unsupported_real = stream->is_real; /* select next available protocol, give up on this stream if none */ mask++; while (protocol_masks[mask] && !(protocols & protocol_masks[mask])) @@ -5707,6 +6196,29 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async) } /* we need to activate at least one streams when we detect activity */ src->need_activate = TRUE; + + /* stream is setup now */ + stream->setup = TRUE; + { + GList *skip = walk; + + while (TRUE) { + GstRTSPStream *sskip; + + skip = g_list_next (skip); + if (skip == NULL) + break; + + sskip = (GstRTSPStream *) skip->data; + + /* skip all streams with the same control url */ + if (g_str_equal (stream->conninfo.location, sskip->conninfo.location)) { + GST_DEBUG_OBJECT (src, "found stream %p with same control %s", + sskip, sskip->conninfo.location); + sskip->skipped = TRUE; + } + } + } next: /* clean up our transport struct */ gst_rtsp_transport_init (&transport); @@ -6536,13 +7048,21 @@ gen_range_header (GstRTSPSrc * src, GstSegment * segment) static void clear_rtp_base (GstRTSPSrc * src, GstRTSPStream * stream) { + guint i, len; + stream->timebase = -1; stream->seqbase = -1; - if (stream->caps) { + + len = stream->ptmap->len; + for (i = 0; i < len; i++) { + PtMapItem *item = &g_array_index (stream->ptmap, PtMapItem, i); GstStructure *s; - stream->caps = gst_caps_make_writable (stream->caps); - s = gst_caps_get_structure (stream->caps, 0); + if (item->caps == NULL) + continue; + + item->caps = gst_caps_make_writable (item->caps); + s = gst_caps_get_structure (item->caps, 0); gst_structure_remove_fields (s, "clock-base", "seqnum-base", NULL); } } @@ -7131,6 +7651,8 @@ gst_rtspsrc_change_state (GstElement * element, GstStateChange transition) gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_OPEN, 0); break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + set_manager_buffer_mode (rtspsrc); + /* fall-through */ case GST_STATE_CHANGE_PLAYING_TO_PAUSED: /* unblock the tcp tasks and make the loop waiting */ if (gst_rtspsrc_loop_send_cmd (rtspsrc, CMD_WAIT, CMD_LOOP)) { diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h index 926006852..f38f6fcee 100644 --- a/gst/rtsp/gstrtspsrc.h +++ b/gst/rtsp/gstrtspsrc.h @@ -102,13 +102,13 @@ struct _GstRTSPStream { GstPad *srcpad; GstFlowReturn last_ret; gboolean added; - gboolean disabled; + gboolean setup; + gboolean skipped; gboolean eos; gboolean discont; /* for interleaved mode */ guint8 channel[2]; - GstCaps *caps; GstPad *channelpad[2]; /* our udp sources */ @@ -125,14 +125,21 @@ struct _GstRTSPStream { GstElement *fakesrc; /* state */ - gint pt; guint port; gboolean container; + gboolean is_real; + guint8 default_pt; + GstRTSPProfile profile; + GArray *ptmap; /* original control url */ gchar *control_url; guint32 ssrc; guint32 seqbase; guint64 timebase; + GstElement *srtpdec; + GstBuffer *key; + GstElement *srtpenc; + guint32 send_ssrc; /* per stream connection */ GstRTSPConnInfo conninfo; @@ -149,6 +156,7 @@ struct _GstRTSPStream { gchar *destination; gboolean is_multicast; guint ttl; + }; /** @@ -190,7 +198,6 @@ struct _GstRTSPSrc { GstSDPMessage *sdp; gboolean from_sdp; - gint numstreams; GList *streams; GstStructure *props; gboolean need_activate; @@ -228,6 +235,7 @@ struct _GstRTSPSrc { gboolean use_pipeline_clock; GstStructure *sdes; GTlsCertificateFlags tls_validation_flags; + GTlsDatabase *tls_database; /* state */ GstRTSPState state; @@ -251,6 +259,7 @@ struct _GstRTSPSrc { GstElement *manager; gulong manager_sig_id; gulong manager_ptmap_id; + gboolean use_buffering; GstRTSPConnInfo conninfo; diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in index 631c65005..ec7c3aabf 100644 --- a/gst/shapewipe/Makefile.in +++ b/gst/shapewipe/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in index 53fbafc35..96a4b5b60 100644 --- a/gst/smpte/Makefile.in +++ b/gst/smpte/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c index 37a383dcb..8bc0d2619 100644 --- a/gst/smpte/gstsmpte.c +++ b/gst/smpte/gstsmpte.c @@ -504,7 +504,7 @@ gst_smpte_collected (GstCollectPads * pads, GstSMPTE * smpte) in2 = gst_buffer_new_and_alloc (I420_SIZE (smpte->width, smpte->height)); gst_buffer_map (in2, &map, GST_MAP_WRITE); fill_i420 (map.data, smpte->width, smpte->height, 0); - gst_buffer_unmap (in1, &map); + gst_buffer_unmap (in2, &map); } if (GST_VIDEO_INFO_WIDTH (&smpte->vinfo1) != diff --git a/gst/smpte/gstsmptealpha.c b/gst/smpte/gstsmptealpha.c index 25f5e3806..ba934ac7a 100644 --- a/gst/smpte/gstsmptealpha.c +++ b/gst/smpte/gstsmptealpha.c @@ -191,8 +191,6 @@ gst_smpte_alpha_class_init (GstSMPTEAlphaClass * klass) * GstSMPTEAlpha:invert: * * Set to TRUE to invert the transition mask (ie. flip it horizontally). - * - * Since: 0.10.23 */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INVERT, g_param_spec_boolean ("invert", "Invert", diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in index 04c104c7a..56fa9bd68 100644 --- a/gst/spectrum/Makefile.in +++ b/gst/spectrum/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c index 5e192c16a..72242dc3a 100644 --- a/gst/spectrum/gstspectrum.c +++ b/gst/spectrum/gstspectrum.c @@ -94,8 +94,6 @@ * <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" parse="text" href="../../../../tests/examples/spectrum/spectrum-example.c" /> * </programlisting></informalexample> * </refsect2> - * - * Last reviewed on 2011-03-10 (0.10.29) */ #ifdef HAVE_CONFIG_H diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in index 1c3c62206..5c9f98b7c 100644 --- a/gst/udp/Makefile.in +++ b/gst/udp/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -490,7 +488,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c index 51fb5258b..988de2deb 100644 --- a/gst/udp/gstmultiudpsink.c +++ b/gst/udp/gstmultiudpsink.c @@ -309,7 +309,7 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) " FALSE = disable", DEFAULT_LOOP, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstMultiUDPSink::force-ipv4 + * GstMultiUDPSink::force-ipv4: * * Force the use of an IPv4 socket. * @@ -326,12 +326,10 @@ gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) -1, 63, DEFAULT_QOS_DSCP, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstMultiUDPSink::send-duplicates + * GstMultiUDPSink::send-duplicates: * * When a host/port pair is added mutliple times, send the packet to the host * multiple times as well. - * - * Since: 0.10.26 */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SEND_DUPLICATES, g_param_spec_boolean ("send-duplicates", "Send Duplicates", @@ -537,8 +535,8 @@ gst_multiudpsink_render (GstBaseSink * bsink, GstBuffer * buffer) if (n_mem == 0) goto no_data; - /* allocated on the stack, the max number of memory blocks is limited so this - * should not cause stack overflows */ + /* pre-allocated, the max number of memory blocks is limited so this + * should not cause overflows */ vec = sink->vec; map = sink->map; @@ -1141,12 +1139,18 @@ gst_multiudpsink_start (GstBaseSink * bsink) #ifdef SO_BINDTODEVICE if (sink->multi_iface) { if (sink->used_socket) { - setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, - SO_BINDTODEVICE, sink->multi_iface, strlen (sink->multi_iface)); + if (setsockopt (g_socket_get_fd (sink->used_socket), SOL_SOCKET, + SO_BINDTODEVICE, sink->multi_iface, + strlen (sink->multi_iface)) < 0) + GST_WARNING_OBJECT (sink, "setsockopt SO_BINDTODEVICE failed: %s", + strerror (errno)); } if (sink->used_socket_v6) { - setsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET, - SO_BINDTODEVICE, sink->multi_iface, strlen (sink->multi_iface)); + if (setsockopt (g_socket_get_fd (sink->used_socket_v6), SOL_SOCKET, + SO_BINDTODEVICE, sink->multi_iface, + strlen (sink->multi_iface)) < 0) + GST_WARNING_OBJECT (sink, "setsockopt SO_BINDTODEVICE failed (v6): %s", + strerror (errno)); } } #endif diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c index ea49af94f..b6f7c933f 100644 --- a/gst/udp/gstudpsrc.c +++ b/gst/udp/gstudpsrc.c @@ -100,8 +100,6 @@ * gst-launch-1.0 -v udpsrc port=0 ! fakesink * ]| read udp packets from a free port. * </refsect2> - * - * Last reviewed on 2007-09-20 (0.10.7) */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -180,15 +178,9 @@ enum static void gst_udpsrc_uri_handler_init (gpointer g_iface, gpointer iface_data); static GstCaps *gst_udpsrc_getcaps (GstBaseSrc * src, GstCaps * filter); - static GstFlowReturn gst_udpsrc_create (GstPushSrc * psrc, GstBuffer ** buf); - -static gboolean gst_udpsrc_start (GstBaseSrc * bsrc); - -static gboolean gst_udpsrc_stop (GstBaseSrc * bsrc); - +static gboolean gst_udpsrc_close (GstUDPSrc * src); static gboolean gst_udpsrc_unlock (GstBaseSrc * bsrc); - static gboolean gst_udpsrc_unlock_stop (GstBaseSrc * bsrc); static void gst_udpsrc_finalize (GObject * object); @@ -198,6 +190,9 @@ static void gst_udpsrc_set_property (GObject * object, guint prop_id, static void gst_udpsrc_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); +static GstStateChangeReturn gst_udpsrc_change_state (GstElement * element, + GstStateChange transition); + #define gst_udpsrc_parent_class parent_class G_DEFINE_TYPE_WITH_CODE (GstUDPSrc, gst_udpsrc, GST_TYPE_PUSH_SRC, G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER, gst_udpsrc_uri_handler_init)); @@ -294,8 +289,8 @@ gst_udpsrc_class_init (GstUDPSrcClass * klass) "Wim Taymans <wim@fluendo.com>, " "Thijs Vermeir <thijs.vermeir@barco.com>"); - gstbasesrc_class->start = gst_udpsrc_start; - gstbasesrc_class->stop = gst_udpsrc_stop; + gstelement_class->change_state = gst_udpsrc_change_state; + gstbasesrc_class->unlock = gst_udpsrc_unlock; gstbasesrc_class->unlock_stop = gst_udpsrc_unlock_stop; gstbasesrc_class->get_caps = gst_udpsrc_getcaps; @@ -373,15 +368,26 @@ static GstCaps * gst_udpsrc_getcaps (GstBaseSrc * src, GstCaps * filter) { GstUDPSrc *udpsrc; + GstCaps *caps, *result; udpsrc = GST_UDPSRC (src); - if (udpsrc->caps) { - return (filter) ? gst_caps_intersect_full (filter, udpsrc->caps, - GST_CAPS_INTERSECT_FIRST) : gst_caps_ref (udpsrc->caps); + GST_OBJECT_LOCK (src); + if ((caps = udpsrc->caps)) + gst_caps_ref (caps); + GST_OBJECT_UNLOCK (src); + + if (caps) { + if (filter) { + result = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (caps); + } else { + result = caps; + } } else { - return (filter) ? gst_caps_ref (filter) : gst_caps_new_any (); + result = (filter) ? gst_caps_ref (filter) : gst_caps_new_any (); } + return result; } static GstFlowReturn @@ -389,7 +395,7 @@ gst_udpsrc_create (GstPushSrc * psrc, GstBuffer ** buf) { GstFlowReturn ret; GstUDPSrc *udpsrc; - GstBuffer *outbuf; + GstBuffer *outbuf = NULL; GstMapInfo info; GSocketAddress *saddr = NULL; gsize offset; @@ -416,8 +422,7 @@ retry: else timeout = -1; - GST_LOG_OBJECT (udpsrc, "doing select, timeout %" G_GUINT64_FORMAT, - timeout); + GST_LOG_OBJECT (udpsrc, "doing select, timeout %" G_GINT64_FORMAT, timeout); if (!g_socket_condition_timed_wait (udpsrc->used_socket, G_IO_IN | G_IO_PRI, timeout, udpsrc->cancellable, &err)) { @@ -554,8 +559,10 @@ alloc_failed: } receive_error: { - gst_buffer_unmap (outbuf, &info); - gst_buffer_unref (outbuf); + if (outbuf != NULL) { + gst_buffer_unmap (outbuf, &info); + gst_buffer_unref (outbuf); + } if (g_error_matches (err, G_IO_ERROR, G_IO_ERROR_BUSY) || g_error_matches (err, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { @@ -657,9 +664,7 @@ gst_udpsrc_set_property (GObject * object, guint prop_id, const GValue * value, case PROP_CAPS: { const GstCaps *new_caps_val = gst_value_get_caps (value); - GstCaps *new_caps; - GstCaps *old_caps; if (new_caps_val == NULL) { @@ -668,11 +673,14 @@ gst_udpsrc_set_property (GObject * object, guint prop_id, const GValue * value, new_caps = gst_caps_copy (new_caps_val); } + GST_OBJECT_LOCK (udpsrc); old_caps = udpsrc->caps; udpsrc->caps = new_caps; + GST_OBJECT_UNLOCK (udpsrc); if (old_caps) gst_caps_unref (old_caps); - gst_pad_set_caps (GST_BASE_SRC (udpsrc)->srcpad, new_caps); + + gst_pad_mark_reconfigure (GST_BASE_SRC_PAD (udpsrc)); break; } case PROP_SOCKET: @@ -735,7 +743,9 @@ gst_udpsrc_get_property (GObject * object, guint prop_id, GValue * value, g_value_set_string (value, udpsrc->uri); break; case PROP_CAPS: + GST_OBJECT_LOCK (udpsrc); gst_value_set_caps (value, udpsrc->caps); + GST_OBJECT_UNLOCK (udpsrc); break; case PROP_SOCKET: g_value_set_object (value, udpsrc->socket); @@ -808,15 +818,12 @@ name_resolve: /* create a socket for sending to remote machine */ static gboolean -gst_udpsrc_start (GstBaseSrc * bsrc) +gst_udpsrc_open (GstUDPSrc * src) { - GstUDPSrc *src; GInetAddress *addr, *bind_addr; GSocketAddress *bind_saddr; 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->address, @@ -1011,7 +1018,7 @@ bind_error: ("bind failed: %s", err->message)); g_clear_error (&err); g_object_unref (bind_saddr); - gst_udpsrc_stop (GST_BASE_SRC (src)); + gst_udpsrc_close (src); return FALSE; } membership: @@ -1019,7 +1026,7 @@ membership: GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), ("could add membership: %s", err->message)); g_clear_error (&err); - gst_udpsrc_stop (GST_BASE_SRC (src)); + gst_udpsrc_close (src); return FALSE; } getsockname_error: @@ -1027,7 +1034,7 @@ getsockname_error: GST_ELEMENT_ERROR (src, RESOURCE, SETTINGS, (NULL), ("getsockname failed: %s", err->message)); g_clear_error (&err); - gst_udpsrc_stop (GST_BASE_SRC (src)); + gst_udpsrc_close (src); return FALSE; } } @@ -1059,13 +1066,9 @@ gst_udpsrc_unlock_stop (GstBaseSrc * bsrc) } static gboolean -gst_udpsrc_stop (GstBaseSrc * bsrc) +gst_udpsrc_close (GstUDPSrc * src) { - GstUDPSrc *src; - - src = GST_UDPSRC (bsrc); - - GST_DEBUG ("stopping, closing sockets"); + GST_DEBUG ("closing sockets"); if (src->used_socket) { if (src->auto_multicast @@ -1102,6 +1105,52 @@ gst_udpsrc_stop (GstBaseSrc * bsrc) return TRUE; } + +static GstStateChangeReturn +gst_udpsrc_change_state (GstElement * element, GstStateChange transition) +{ + GstUDPSrc *src; + GstStateChangeReturn result; + + src = GST_UDPSRC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_udpsrc_open (src)) + goto open_failed; + break; + default: + break; + } + if ((result = + GST_ELEMENT_CLASS (parent_class)->change_state (element, + transition)) == GST_STATE_CHANGE_FAILURE) + goto failure; + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_udpsrc_close (src); + break; + default: + break; + } + return result; + /* ERRORS */ +open_failed: + { + GST_DEBUG_OBJECT (src, "failed to open socket"); + return GST_STATE_CHANGE_FAILURE; + } +failure: + { + GST_DEBUG_OBJECT (src, "parent failed state change"); + return result; + } +} + + + + /*** GSTURIHANDLER INTERFACE *************************************************/ static GstURIType diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in index 5704fbde6..4720f26bc 100644 --- a/gst/videobox/Makefile.in +++ b/gst/videobox/Makefile.in @@ -112,7 +112,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -128,7 +127,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -514,7 +512,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c index de70b1b16..5df258839 100644 --- a/gst/videobox/gstvideobox.c +++ b/gst/videobox/gstvideobox.c @@ -2501,13 +2501,11 @@ gst_video_box_class_init (GstVideoBoxClass * klass) "Alpha value of the border", 0.0, 1.0, DEFAULT_BORDER_ALPHA, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE)); /** - * GstVideoBox:autocrop + * GstVideoBox:autocrop: * * If set to %TRUE videobox will automatically crop/pad the input * video to be centered in the output. - * - * Since: 0.10.16 - **/ + */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_AUTOCROP, g_param_spec_boolean ("autocrop", "Auto crop", "Auto crop", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); diff --git a/gst/videobox/gstvideoboxorc-dist.c b/gst/videobox/gstvideoboxorc-dist.c index 15bbf1def..8fef7a049 100644 --- a/gst/videobox/gstvideoboxorc-dist.c +++ b/gst/videobox/gstvideoboxorc-dist.c @@ -121,8 +121,8 @@ void video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n); #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_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8)) +#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>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)) diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in index ac6024f73..98894afaa 100644 --- a/gst/videocrop/Makefile.in +++ b/gst/videocrop/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in index d9c35c43f..6792d5682 100644 --- a/gst/videofilter/Makefile.in +++ b/gst/videofilter/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -490,7 +488,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c index 17acd7cb1..0e143b648 100644 --- a/gst/videofilter/gstgamma.c +++ b/gst/videofilter/gstgamma.c @@ -42,8 +42,6 @@ * gst-launch-1.0 videotestsrc ! gamma gamma=0.5 ! videoconvert ! ximagesink * ]| This pipeline will make the image "darker". * </refsect2> - * - * Last reviewed on 2010-04-18 (0.10.22) */ #ifdef HAVE_CONFIG_H diff --git a/gst/videofilter/gstvideobalance.c b/gst/videofilter/gstvideobalance.c index 5922e4f7b..c7298d8af 100644 --- a/gst/videofilter/gstvideobalance.c +++ b/gst/videofilter/gstvideobalance.c @@ -36,8 +36,6 @@ * ]| This pipeline converts the image to black and white by setting the * saturation to 0.0. * </refsect2> - * - * Last reviewed on 2010-04-18 (0.10.22) */ #ifdef HAVE_CONFIG_H diff --git a/gst/videofilter/gstvideoflip.c b/gst/videofilter/gstvideoflip.c index 165643b3c..2111cef38 100644 --- a/gst/videofilter/gstvideoflip.c +++ b/gst/videofilter/gstvideoflip.c @@ -35,8 +35,6 @@ * gst-launch-1.0 videotestsrc ! videoflip method=clockwise ! videoconvert ! ximagesink * ]| This pipeline flips the test image 90 degrees clockwise. * </refsect2> - * - * Last reviewed on 2010-04-18 (0.10.22) */ @@ -97,6 +95,8 @@ static const GEnumValue video_flip_methods[] = { "Flip across upper left/lower right diagonal", "upper-left-diagonal"}, {GST_VIDEO_FLIP_METHOD_OTHER, "Flip across upper right/lower left diagonal", "upper-right-diagonal"}, + {GST_VIDEO_FLIP_METHOD_AUTO, + "Select flip method based on image-orientation tag", "automatic"}, {0, NULL, NULL}, }; @@ -132,7 +132,7 @@ gst_video_flip_transform_caps (GstBaseTransform * trans, if (gst_structure_get_int (structure, "width", &width) && gst_structure_get_int (structure, "height", &height)) { - switch (videoflip->method) { + switch (videoflip->active_method) { case GST_VIDEO_FLIP_METHOD_90R: case GST_VIDEO_FLIP_METHOD_90L: case GST_VIDEO_FLIP_METHOD_TRANS: @@ -220,7 +220,7 @@ gst_video_flip_planar_yuv (GstVideoFlip * videoflip, GstVideoFrame * dest, dest_u_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 1); dest_v_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 2); - switch (videoflip->method) { + switch (videoflip->active_method) { case GST_VIDEO_FLIP_METHOD_90R: /* Flip Y */ s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); @@ -464,7 +464,7 @@ gst_video_flip_semi_planar_yuv (GstVideoFlip * videoflip, GstVideoFrame * dest, dest_y_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 0); dest_uv_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 1); - switch (videoflip->method) { + switch (videoflip->active_method) { case GST_VIDEO_FLIP_METHOD_90R: /* Flip Y */ s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); @@ -596,6 +596,7 @@ gst_video_flip_semi_planar_yuv (GstVideoFlip * videoflip, GstVideoFrame * dest, d[d_off + 1] = s[s_off + 1]; } } + break; case GST_VIDEO_FLIP_METHOD_OTHER: /* Flip Y */ s = GST_VIDEO_FRAME_PLANE_DATA (src, 0); @@ -650,7 +651,7 @@ gst_video_flip_packed_simple (GstVideoFlip * videoflip, GstVideoFrame * dest, /* This is only true for non-subsampled formats! */ bpp = GST_VIDEO_FRAME_COMP_PSTRIDE (src, 0); - switch (videoflip->method) { + switch (videoflip->active_method) { case GST_VIDEO_FLIP_METHOD_90R: for (y = 0; y < dh; y++) { for (x = 0; x < dw; x++) { @@ -760,7 +761,7 @@ gst_video_flip_y422 (GstVideoFlip * videoflip, GstVideoFrame * dest, y_stride = GST_VIDEO_FRAME_COMP_PSTRIDE (src, 0); bpp = y_stride; - switch (videoflip->method) { + switch (videoflip->active_method) { case GST_VIDEO_FLIP_METHOD_90R: for (y = 0; y < dh; y++) { for (x = 0; x < dw; x += 2) { @@ -959,7 +960,7 @@ gst_video_flip_set_info (GstVideoFilter * vfilter, GstCaps * incaps, goto invalid_caps; /* Check that they are correct */ - switch (vf->method) { + switch (vf->active_method) { case GST_VIDEO_FLIP_METHOD_90R: case GST_VIDEO_FLIP_METHOD_90L: case GST_VIDEO_FLIP_METHOD_TRANS: @@ -1037,6 +1038,43 @@ invalid_caps: return FALSE; } +static void +gst_video_flip_set_method (GstVideoFlip * videoflip, GstVideoFlipMethod method, + gboolean from_tag) +{ + GST_OBJECT_LOCK (videoflip); + + /* Store updated method */ + if (from_tag) + videoflip->tag_method = method; + else + videoflip->method = method; + + /* Get the new method */ + if (videoflip->method == GST_VIDEO_FLIP_METHOD_AUTO) + method = videoflip->tag_method; + else + method = videoflip->method; + + if (method != videoflip->active_method) { + GstBaseTransform *btrans = GST_BASE_TRANSFORM (videoflip); + + GST_DEBUG_OBJECT (videoflip, "Changing method from %s to %s", + video_flip_methods[videoflip->active_method].value_nick, + video_flip_methods[method].value_nick); + + videoflip->active_method = method; + + GST_OBJECT_UNLOCK (videoflip); + + gst_base_transform_set_passthrough (btrans, + method == GST_VIDEO_FLIP_METHOD_IDENTITY); + gst_base_transform_reconfigure_src (btrans); + } else { + GST_OBJECT_UNLOCK (videoflip); + } +} + static void gst_video_flip_before_transform (GstBaseTransform * trans, GstBuffer * in) { @@ -1064,7 +1102,7 @@ gst_video_flip_transform_frame (GstVideoFilter * vfilter, goto not_negotiated; GST_LOG_OBJECT (videoflip, "videoflip: flipping (%s)", - video_flip_methods[videoflip->method].value_nick); + video_flip_methods[videoflip->active_method].value_nick); GST_OBJECT_LOCK (videoflip); videoflip->process (videoflip, out_frame, in_frame); @@ -1099,7 +1137,7 @@ gst_video_flip_src_event (GstBaseTransform * trans, GstEvent * event) if (gst_structure_get_double (structure, "pointer_x", &x) && gst_structure_get_double (structure, "pointer_y", &y)) { GST_DEBUG_OBJECT (vf, "converting %fx%f", x, y); - switch (vf->method) { + switch (vf->active_method) { case GST_VIDEO_FLIP_METHOD_90R: new_x = y; new_y = out_info->width - x; @@ -1147,6 +1185,50 @@ gst_video_flip_src_event (GstBaseTransform * trans, GstEvent * event) return ret; } +static gboolean +gst_video_flip_sink_event (GstBaseTransform * trans, GstEvent * event) +{ + GstVideoFlip *vf = GST_VIDEO_FLIP (trans); + GstTagList *taglist; + gchar *orientation; + gboolean ret; + + GST_DEBUG_OBJECT (vf, "handling %s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_TAG: + gst_event_parse_tag (event, &taglist); + + if (gst_tag_list_get_string (taglist, "image-orientation", &orientation)) { + if (!g_strcmp0 ("rotate-0", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_IDENTITY, TRUE); + else if (!g_strcmp0 ("rotate-90", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_90R, TRUE); + else if (!g_strcmp0 ("rotate-180", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_180, TRUE); + else if (!g_strcmp0 ("rotate-270", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_90L, TRUE); + else if (!g_strcmp0 ("flip-rotate-0", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_HORIZ, TRUE); + else if (!g_strcmp0 ("flip-rotate-90", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_TRANS, TRUE); + else if (!g_strcmp0 ("flip-rotate-180", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_VERT, TRUE); + else if (!g_strcmp0 ("flip-rotate-270", orientation)) + gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_OTHER, TRUE); + + g_free (orientation); + } + break; + default: + break; + } + + ret = GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans, event); + + return ret; +} + static void gst_video_flip_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) @@ -1155,28 +1237,7 @@ gst_video_flip_set_property (GObject * object, guint prop_id, switch (prop_id) { case PROP_METHOD: - { - GstVideoFlipMethod method; - - method = g_value_get_enum (value); - GST_OBJECT_LOCK (videoflip); - if (method != videoflip->method) { - GstBaseTransform *btrans = GST_BASE_TRANSFORM (videoflip); - - GST_DEBUG_OBJECT (videoflip, "Changing method from %s to %s", - video_flip_methods[videoflip->method].value_nick, - video_flip_methods[method].value_nick); - - videoflip->method = method; - GST_OBJECT_UNLOCK (videoflip); - - gst_base_transform_set_passthrough (btrans, - method == GST_VIDEO_FLIP_METHOD_IDENTITY); - gst_base_transform_reconfigure_src (btrans); - } else { - GST_OBJECT_UNLOCK (videoflip); - } - } + gst_video_flip_set_method (videoflip, g_value_get_enum (value), FALSE); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -1216,7 +1277,8 @@ gst_video_flip_class_init (GstVideoFlipClass * klass) g_object_class_install_property (gobject_class, PROP_METHOD, g_param_spec_enum ("method", "method", "method", GST_TYPE_VIDEO_FLIP_METHOD, PROP_METHOD_DEFAULT, - GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); gst_element_class_set_static_metadata (gstelement_class, "Video flipper", "Filter/Effect/Video", @@ -1232,6 +1294,7 @@ gst_video_flip_class_init (GstVideoFlipClass * klass) trans_class->before_transform = GST_DEBUG_FUNCPTR (gst_video_flip_before_transform); trans_class->src_event = GST_DEBUG_FUNCPTR (gst_video_flip_src_event); + trans_class->sink_event = GST_DEBUG_FUNCPTR (gst_video_flip_sink_event); vfilter_class->set_info = GST_DEBUG_FUNCPTR (gst_video_flip_set_info); vfilter_class->transform_frame = @@ -1241,6 +1304,7 @@ gst_video_flip_class_init (GstVideoFlipClass * klass) static void gst_video_flip_init (GstVideoFlip * videoflip) { - videoflip->method = PROP_METHOD_DEFAULT; - gst_base_transform_set_passthrough (GST_BASE_TRANSFORM (videoflip), TRUE); + /* AUTO is not valid for active method, this is just to ensure we setup the + * method in gst_video_flip_set_method() */ + videoflip->active_method = GST_VIDEO_FLIP_METHOD_AUTO; } diff --git a/gst/videofilter/gstvideoflip.h b/gst/videofilter/gstvideoflip.h index e868b0321..490de29e4 100644 --- a/gst/videofilter/gstvideoflip.h +++ b/gst/videofilter/gstvideoflip.h @@ -36,6 +36,7 @@ G_BEGIN_DECLS * @GST_VIDEO_FLIP_METHOD_VERT: Flip vertically * @GST_VIDEO_FLIP_METHOD_TRANS: Flip across upper left/lower right diagonal * @GST_VIDEO_FLIP_METHOD_OTHER: Flip across upper right/lower left diagonal + * @GST_VIDEO_FLIP_METHOD_AUTO: Select flip method based on image-orientation tag * * The different flip methods. */ @@ -47,7 +48,8 @@ typedef enum { GST_VIDEO_FLIP_METHOD_HORIZ, GST_VIDEO_FLIP_METHOD_VERT, GST_VIDEO_FLIP_METHOD_TRANS, - GST_VIDEO_FLIP_METHOD_OTHER + GST_VIDEO_FLIP_METHOD_OTHER, + GST_VIDEO_FLIP_METHOD_AUTO } GstVideoFlipMethod; #define GST_TYPE_VIDEO_FLIP \ @@ -74,6 +76,8 @@ struct _GstVideoFlip { /* < private > */ GstVideoFlipMethod method; + GstVideoFlipMethod tag_method; + GstVideoFlipMethod active_method; void (*process) (GstVideoFlip *videoflip, GstVideoFrame *dest, const GstVideoFrame *src); }; diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in index 162944ef7..2cc893eca 100644 --- a/gst/videomixer/Makefile.in +++ b/gst/videomixer/Makefile.in @@ -112,7 +112,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -128,7 +127,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -517,7 +515,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/videomixer/blend.c b/gst/videomixer/blend.c index 9aaeac8ce..f17300e74 100644 --- a/gst/videomixer/blend.c +++ b/gst/videomixer/blend.c @@ -443,7 +443,7 @@ PLANAR_YUV_FILL_CHECKER (y41b, GST_VIDEO_FORMAT_Y41B, memset); PLANAR_YUV_FILL_COLOR (y41b, GST_VIDEO_FORMAT_Y41B, memset); /* NV12, NV21 */ -#define NV_YUV_BLEND(format_name,first_component,MEMCPY,BLENDLOOP) \ +#define NV_YUV_BLEND(format_name,MEMCPY,BLENDLOOP) \ inline static void \ _blend_##format_name (const guint8 * src, guint8 * dest, \ gint src_stride, gint dest_stride, gint src_width, gint src_height, \ @@ -550,8 +550,8 @@ blend_##format_name (GstVideoFrame * srcframe, gint xpos, gint ypos, \ dest_comp_rowstride, src_comp_width, src_comp_height, \ src_alpha); \ \ - b_src = GST_VIDEO_FRAME_COMP_DATA (srcframe, first_component); \ - b_dest = GST_VIDEO_FRAME_COMP_DATA (destframe, first_component); \ + b_src = GST_VIDEO_FRAME_PLANE_DATA (srcframe, 1); \ + b_dest = GST_VIDEO_FRAME_PLANE_DATA (destframe, 1); \ src_comp_rowstride = GST_VIDEO_FRAME_COMP_STRIDE (srcframe, 1); \ dest_comp_rowstride = GST_VIDEO_FRAME_COMP_STRIDE (destframe, 1); \ src_comp_width = GST_VIDEO_FORMAT_INFO_SCALE_WIDTH(info, 1, b_src_width); \ @@ -567,7 +567,7 @@ blend_##format_name (GstVideoFrame * srcframe, gint xpos, gint ypos, \ src_alpha); \ } -#define NV_YUV_FILL_CHECKER(format_name, first_component, MEMSET) \ +#define NV_YUV_FILL_CHECKER(format_name, MEMSET) \ static void \ fill_checker_##format_name (GstVideoFrame * frame) \ { \ @@ -589,7 +589,7 @@ fill_checker_##format_name (GstVideoFrame * frame) \ p += rowstride - comp_width; \ } \ \ - p = GST_VIDEO_FRAME_COMP_DATA (frame, first_component); \ + p = GST_VIDEO_FRAME_PLANE_DATA (frame, 1); \ comp_width = GST_VIDEO_FRAME_COMP_WIDTH (frame, 1); \ comp_height = GST_VIDEO_FRAME_COMP_HEIGHT (frame, 1); \ rowstride = GST_VIDEO_FRAME_COMP_STRIDE (frame, 1); \ @@ -636,11 +636,11 @@ fill_color_##format_name (GstVideoFrame * frame, \ } \ } -NV_YUV_BLEND (nv12, 1, memcpy, video_mixer_orc_blend_u8); -NV_YUV_FILL_CHECKER (nv12, 1, memset); +NV_YUV_BLEND (nv12, memcpy, video_mixer_orc_blend_u8); +NV_YUV_FILL_CHECKER (nv12, memset); NV_YUV_FILL_COLOR (nv12, memset); -NV_YUV_BLEND (nv21, 2, memcpy, video_mixer_orc_blend_u8); -NV_YUV_FILL_CHECKER (nv21, 2, memset); +NV_YUV_BLEND (nv21, memcpy, video_mixer_orc_blend_u8); +NV_YUV_FILL_CHECKER (nv21, memset); /* RGB, BGR, xRGB, xBGR, RGBx, BGRx */ diff --git a/gst/videomixer/videoconvert.c b/gst/videomixer/videoconvert.c index 6331db76c..53e192d88 100644 --- a/gst/videomixer/videoconvert.c +++ b/gst/videomixer/videoconvert.c @@ -605,7 +605,7 @@ videomixer_videoconvert_convert_generic (VideoConvert * convert, for (j = 0; j < down_n_lines; j += lines) { idx = down_offset + j; - if (idx >= 0 && idx < height) { + if (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); @@ -1254,31 +1254,13 @@ 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); - } + 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 diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c index 75fef1e84..b97e0ad52 100644 --- a/gst/videomixer/videomixer2.c +++ b/gst/videomixer/videomixer2.c @@ -138,8 +138,11 @@ struct _GstVideoMixer2Collect GstVideoMixer2Pad *mixpad; GstBuffer *queued; /* buffer for which we don't know the end time yet */ + GstVideoInfo queued_vinfo; GstBuffer *buffer; /* buffer that should be blended now */ + GstVideoInfo buffer_vinfo; + GstClockTime start_time; GstClockTime end_time; }; @@ -305,7 +308,7 @@ gst_videomixer2_update_converters (GstVideoMixer2 * mix) GstCaps *possible_caps; gchar *best_colorimetry; const gchar *best_chroma; - GHashTable *formats_table = g_hash_table_new (g_direct_hash, g_direct_equal); + GHashTable *formats_table; gint best_format_number = 0; best_format = GST_VIDEO_FORMAT_UNKNOWN; @@ -316,6 +319,8 @@ gst_videomixer2_update_converters (GstVideoMixer2 * mix) if (!downstream_caps || gst_caps_is_empty (downstream_caps)) return FALSE; + formats_table = g_hash_table_new (g_direct_hash, g_direct_equal); + /* first find new preferred format */ for (tmp = mix->sinkpads; tmp; tmp = tmp->next) { GstStructure *s; @@ -838,8 +843,6 @@ gst_videomixer2_reset (GstVideoMixer2 * mix) } mix->newseg_pending = TRUE; - g_atomic_int_set (&mix->flush_stop_pending, FALSE); - g_atomic_int_set (&mix->waiting_flush_stop, FALSE); } /* 1 == OK @@ -860,6 +863,7 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, GstVideoMixer2Collect *mixcol = pad->mixcol; GstSegment *segment = &pad->mixcol->collect.segment; GstBuffer *buf; + GstVideoInfo *vinfo; buf = gst_collect_pads_peek (mix->collect, &mixcol->collect); if (buf) { @@ -872,6 +876,8 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, return -2; } + vinfo = &pad->info; + /* FIXME: Make all this work with negative rates */ if ((mixcol->buffer && start_time < GST_BUFFER_TIMESTAMP (mixcol->buffer)) @@ -890,6 +896,7 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, start_time = GST_BUFFER_TIMESTAMP (mixcol->queued); gst_buffer_unref (buf); buf = gst_buffer_ref (mixcol->queued); + vinfo = &mixcol->queued_vinfo; } else { end_time = GST_BUFFER_DURATION (buf); @@ -897,6 +904,7 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, mixcol->queued = buf; buf = gst_collect_pads_pop (mix->collect, &mixcol->collect); gst_buffer_unref (buf); + mixcol->queued_vinfo = pad->info; need_more_data = TRUE; continue; } @@ -958,6 +966,7 @@ gst_videomixer2_fill_queues (GstVideoMixer2 * mix, "Taking new buffer with start time %" GST_TIME_FORMAT, GST_TIME_ARGS (start_time)); gst_buffer_replace (&mixcol->buffer, buf); + mixcol->buffer_vinfo = *vinfo; mixcol->start_time = start_time; mixcol->end_time = end_time; @@ -1093,7 +1102,8 @@ gst_videomixer2_blend_buffers (GstVideoMixer2 * mix, if (GST_CLOCK_TIME_IS_VALID (stream_time)) gst_object_sync_values (GST_OBJECT (pad), stream_time); - gst_video_frame_map (&frame, &pad->info, mixcol->buffer, GST_MAP_READ); + gst_video_frame_map (&frame, &mixcol->buffer_vinfo, mixcol->buffer, + GST_MAP_READ); if (pad->convert) { gint converted_size; @@ -1188,11 +1198,6 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix) if (GST_VIDEO_INFO_FORMAT (&mix->info) == GST_VIDEO_FORMAT_UNKNOWN) return GST_FLOW_NOT_NEGOTIATED; - if (g_atomic_int_compare_and_exchange (&mix->flush_stop_pending, TRUE, FALSE)) { - GST_DEBUG_OBJECT (mix, "pending flush stop"); - gst_pad_push_event (mix->srcpad, gst_event_new_flush_stop (TRUE)); - } - if (mix->send_stream_start) { gchar s_id[32]; @@ -1250,6 +1255,11 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix) } } + if (G_UNLIKELY (mix->pending_tags)) { + gst_pad_push_event (mix->srcpad, gst_event_new_tag (mix->pending_tags)); + mix->pending_tags = NULL; + } + if (mix->segment.stop != -1) output_end_time = MIN (output_end_time, mix->segment.stop); @@ -1572,20 +1582,6 @@ gst_videomixer2_src_event (GstPad * pad, GstObject * parent, GstEvent * event) GST_DEBUG_OBJECT (mix, "Handling SEEK event"); - /* check if we are flushing */ - if (flags & GST_SEEK_FLAG_FLUSH) { - /* flushing seek, start flush downstream, the flush will be done - * when all pads received a FLUSH_STOP. */ - gst_pad_push_event (mix->srcpad, gst_event_new_flush_start ()); - - /* make sure we accept nothing anymore and return WRONG_STATE */ - gst_collect_pads_set_flushing (mix->collect, TRUE); - } - - /* now wait for the collected to be finished and mark a new - * segment */ - GST_COLLECT_PADS_STREAM_LOCK (mix->collect); - abs_rate = ABS (rate); GST_VIDEO_MIXER2_LOCK (mix); @@ -1619,24 +1615,9 @@ gst_videomixer2_src_event (GstPad * pad, GstObject * parent, GstEvent * event) mix->nframes = 0; mix->newseg_pending = TRUE; - if (flags & GST_SEEK_FLAG_FLUSH) { - gst_collect_pads_set_flushing (mix->collect, FALSE); - - /* we can't send FLUSH_STOP here since upstream could start pushing data - * after we unlock mix->collect. - * We set flush_stop_pending to TRUE instead and send FLUSH_STOP after - * forwarding the seek upstream or from gst_videomixer_collected, - * whichever happens first. - */ - g_atomic_int_set (&mix->flush_stop_pending, TRUE); - g_atomic_int_set (&mix->waiting_flush_stop, FALSE); - } - - GST_COLLECT_PADS_STREAM_UNLOCK (mix->collect); - gst_videomixer2_reset_qos (mix); - result = gst_videomixer2_push_sink_event (mix, event); + result = gst_collect_pads_src_event_default (mix->collect, pad, event); break; } case GST_EVENT_NAVIGATION: @@ -1899,6 +1880,15 @@ gst_videomixer2_sink_clip (GstCollectPads * pads, return GST_FLOW_OK; } +static void +gst_videomixer2_flush (GstCollectPads * pads, GstVideoMixer2 * mix) +{ + if (mix->pending_tags) { + gst_tag_list_unref (mix->pending_tags); + mix->pending_tags = NULL; + } +} + static gboolean gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata, GstEvent * event, GstVideoMixer2 * mix) @@ -1906,8 +1896,8 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata, GstVideoMixer2Pad *pad = GST_VIDEO_MIXER2_PAD (cdata->pad); gboolean ret = TRUE, discard = FALSE; - GST_DEBUG_OBJECT (pad, "Got %s event on pad %s:%s", - GST_EVENT_TYPE_NAME (event), GST_DEBUG_PAD_NAME (pad)); + GST_DEBUG_OBJECT (pad, "Got %s event: %" GST_PTR_FORMAT, + GST_EVENT_TYPE_NAME (event), event); switch (GST_EVENT_TYPE (event)) { case GST_EVENT_CAPS: @@ -1929,25 +1919,9 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata, g_assert (seg.format == GST_FORMAT_TIME); break; } - case GST_EVENT_FLUSH_START: - g_atomic_int_set (&mix->waiting_flush_stop, TRUE); - g_atomic_int_set (&mix->flush_stop_pending, FALSE); - ret = gst_collect_pads_event_default (pads, cdata, event, discard); - event = NULL; - break; case GST_EVENT_FLUSH_STOP: mix->newseg_pending = TRUE; - if (g_atomic_int_compare_and_exchange (&mix->waiting_flush_stop, TRUE, - FALSE)) { - GST_DEBUG_OBJECT (pad, "forwarding flush stop"); - ret = gst_collect_pads_event_default (pads, cdata, event, discard); - event = NULL; - } else { - discard = TRUE; - GST_DEBUG_OBJECT (pad, "eating flush stop"); - } - /* FIXME Should we reset in case we were not awaiting a flush stop? */ gst_videomixer2_reset_qos (mix); gst_buffer_replace (&pad->mixcol->buffer, NULL); pad->mixcol->start_time = -1; @@ -1957,6 +1931,19 @@ gst_videomixer2_sink_event (GstCollectPads * pads, GstCollectData * cdata, mix->ts_offset = 0; mix->nframes = 0; break; + case GST_EVENT_TAG: + { + /* collect tags here so we can push them out when we collect data */ + GstTagList *tags; + + gst_event_parse_tag (event, &tags); + tags = gst_tag_list_merge (mix->pending_tags, tags, GST_TAG_MERGE_APPEND); + if (mix->pending_tags) + gst_tag_list_unref (mix->pending_tags); + mix->pending_tags = tags; + event = NULL; + break; + } default: break; } @@ -2178,7 +2165,14 @@ gst_videomixer2_dispose (GObject * o) videomixer_videoconvert_convert_free (mixpad->convert); } + if (mix->pending_tags) { + gst_tag_list_unref (mix->pending_tags); + mix->pending_tags = NULL; + } + gst_caps_replace (&mix->current_caps, NULL); + + G_OBJECT_CLASS (parent_class)->dispose (o); } static void @@ -2251,6 +2245,19 @@ gst_videomixer2_child_proxy_init (gpointer g_iface, gpointer iface_data) iface->get_children_count = gst_videomixer2_child_proxy_get_children_count; } +static void +gst_videomixer2_constructed (GObject * obj) +{ + GstVideoMixer2 *mix = GST_VIDEO_MIXER2 (obj); + gchar *cp_name; + + cp_name = g_strconcat (GST_OBJECT_NAME (obj), "-collectpads", NULL); + gst_object_set_name (GST_OBJECT (mix->collect), cp_name); + g_free (cp_name); + + G_OBJECT_CLASS (gst_videomixer2_parent_class)->constructed (obj); +} + /* GObject boilerplate */ static void gst_videomixer2_class_init (GstVideoMixer2Class * klass) @@ -2258,6 +2265,7 @@ gst_videomixer2_class_init (GstVideoMixer2Class * klass) GObjectClass *gobject_class = (GObjectClass *) klass; GstElementClass *gstelement_class = (GstElementClass *) klass; + gobject_class->constructed = gst_videomixer2_constructed; gobject_class->finalize = gst_videomixer2_finalize; gobject_class->dispose = gst_videomixer2_dispose; @@ -2305,8 +2313,11 @@ gst_videomixer2_init (GstVideoMixer2 * mix) gst_element_add_pad (GST_ELEMENT (mix), mix->srcpad); mix->collect = gst_collect_pads_new (); + gst_collect_pads_set_flush_function (mix->collect, + (GstCollectPadsFlushFunction) gst_videomixer2_flush, mix); mix->background = DEFAULT_BACKGROUND; mix->current_caps = NULL; + mix->pending_tags = NULL; gst_collect_pads_set_function (mix->collect, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_videomixer2_collected), diff --git a/gst/videomixer/videomixer2.h b/gst/videomixer/videomixer2.h index 4a0b744eb..5097d1d63 100644 --- a/gst/videomixer/videomixer2.h +++ b/gst/videomixer/videomixer2.h @@ -97,11 +97,6 @@ struct _GstVideoMixer2 gboolean send_caps; gboolean newseg_pending; - gboolean flush_stop_pending; /* Used when we receive a flushing seek, - to send a flush_stop right before the - following buffer */ - gboolean waiting_flush_stop; /* Used when we receive a flush_start to make - sure to forward the flush_stop only once */ GstVideoMixer2Background background; @@ -120,6 +115,8 @@ struct _GstVideoMixer2 FillColorFunction fill_color; gboolean send_stream_start; + + GstTagList *pending_tags; }; struct _GstVideoMixer2Class diff --git a/gst/videomixer/videomixerorc-dist.c b/gst/videomixer/videomixerorc-dist.c index 9106640f5..b8002c758 100644 --- a/gst/videomixer/videomixerorc-dist.c +++ b/gst/videomixer/videomixerorc-dist.c @@ -318,8 +318,8 @@ void videomixer_video_convert_orc_putline_A420 (guint8 * ORC_RESTRICT d1, #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_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8)) +#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>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)) @@ -1890,7 +1890,7 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, 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, + 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, @@ -2456,7 +2456,7 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, 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, + 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, @@ -2665,7 +2665,7 @@ videomixer_video_convert_orc_memcpy_2d (guint8 * ORC_RESTRICT d1, int d1_stride, 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, + 99, 95, 109, 101, 109, 99, 112, 121, 95, 50, 100, 11, 1, 1, 12, 1, 1, 42, 0, 4, 2, 0, }; @@ -2887,9 +2887,9 @@ videomixer_video_convert_orc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -3123,9 +3123,9 @@ videomixer_video_convert_orc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -3395,9 +3395,9 @@ videomixer_video_convert_orc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -3654,9 +3654,9 @@ videomixer_video_convert_orc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -3801,7 +3801,7 @@ videomixer_video_convert_orc_convert_UYVY_YUY2 (guint8 * ORC_RESTRICT d1, 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, + 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, }; @@ -3946,7 +3946,7 @@ videomixer_video_convert_orc_planar_chroma_420_422 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -4085,7 +4085,7 @@ videomixer_video_convert_orc_planar_chroma_420_444 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -4217,7 +4217,7 @@ videomixer_video_convert_orc_planar_chroma_422_444 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -4362,7 +4362,7 @@ videomixer_video_convert_orc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -4532,7 +4532,7 @@ videomixer_video_convert_orc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -4679,7 +4679,7 @@ videomixer_video_convert_orc_planar_chroma_422_420 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -4918,7 +4918,7 @@ videomixer_video_convert_orc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -5166,7 +5166,7 @@ videomixer_video_convert_orc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -5364,7 +5364,7 @@ videomixer_video_convert_orc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -5559,7 +5559,7 @@ videomixer_video_convert_orc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -5766,7 +5766,7 @@ videomixer_video_convert_orc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -5980,7 +5980,7 @@ videomixer_video_convert_orc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -6230,9 +6230,9 @@ videomixer_video_convert_orc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -6615,7 +6615,7 @@ videomixer_video_convert_orc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -6887,7 +6887,7 @@ videomixer_video_convert_orc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -7131,7 +7131,7 @@ videomixer_video_convert_orc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -7385,7 +7385,7 @@ videomixer_video_convert_orc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -7593,7 +7593,7 @@ videomixer_video_convert_orc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -7791,7 +7791,7 @@ videomixer_video_convert_orc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -7986,7 +7986,7 @@ videomixer_video_convert_orc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -8241,7 +8241,7 @@ videomixer_video_convert_orc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -8488,7 +8488,7 @@ videomixer_video_convert_orc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -8733,7 +8733,7 @@ videomixer_video_convert_orc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -8954,7 +8954,7 @@ videomixer_video_convert_orc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -9478,7 +9478,7 @@ videomixer_video_convert_orc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -10089,7 +10089,7 @@ videomixer_video_convert_orc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -10700,7 +10700,7 @@ videomixer_video_convert_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -11311,7 +11311,7 @@ videomixer_video_convert_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, 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, + 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, @@ -11932,9 +11932,9 @@ videomixer_video_convert_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 46, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -12597,9 +12597,9 @@ videomixer_video_convert_orc_convert_I420_BGRA_avg (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 50, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -12909,9 +12909,9 @@ videomixer_video_convert_orc_getline_I420 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -13160,9 +13160,9 @@ videomixer_video_convert_orc_getline_YUV9 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -13407,9 +13407,9 @@ videomixer_video_convert_orc_getline_YUY2 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -13644,9 +13644,9 @@ videomixer_video_convert_orc_getline_UYVY (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -13887,9 +13887,9 @@ videomixer_video_convert_orc_getline_YVYU (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -14134,9 +14134,9 @@ videomixer_video_convert_orc_getline_Y42B (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -14341,9 +14341,9 @@ videomixer_video_convert_orc_getline_Y444 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -14520,9 +14520,9 @@ videomixer_video_convert_orc_getline_Y800 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -14697,9 +14697,9 @@ videomixer_video_convert_orc_getline_Y16 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 40, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -14818,9 +14818,9 @@ videomixer_video_convert_orc_getline_BGRA (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 95, 103, 101, 116, 108, 105, 110, 101, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 184, 0, 4, 2, 0, }; @@ -15026,9 +15026,9 @@ videomixer_video_convert_orc_getline_ABGR (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -15254,9 +15254,9 @@ videomixer_video_convert_orc_getline_RGBA (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -15484,9 +15484,9 @@ videomixer_video_convert_orc_getline_NV12 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -15705,9 +15705,9 @@ videomixer_video_convert_orc_getline_NV21 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -15905,9 +15905,9 @@ videomixer_video_convert_orc_getline_A420 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -16181,9 +16181,9 @@ videomixer_video_convert_orc_putline_I420 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -16420,9 +16420,9 @@ videomixer_video_convert_orc_putline_YUY2 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -16655,9 +16655,9 @@ videomixer_video_convert_orc_putline_YVYU (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -16886,9 +16886,9 @@ videomixer_video_convert_orc_putline_UYVY (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -17123,9 +17123,9 @@ videomixer_video_convert_orc_putline_Y42B (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -17315,9 +17315,9 @@ videomixer_video_convert_orc_putline_Y444 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -17460,9 +17460,9 @@ videomixer_video_convert_orc_putline_Y800 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, }; @@ -17608,9 +17608,9 @@ videomixer_video_convert_orc_putline_Y16 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 40, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -17730,9 +17730,9 @@ videomixer_video_convert_orc_putline_BGRA (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 95, 112, 117, 116, 108, 105, 110, 101, 95, 66, 71, 82, 65, 11, 4, 4, 12, 4, 4, 184, 0, 4, 2, 0, }; @@ -17938,9 +17938,9 @@ videomixer_video_convert_orc_putline_ABGR (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -18166,9 +18166,9 @@ videomixer_video_convert_orc_putline_RGBA (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -18380,9 +18380,9 @@ videomixer_video_convert_orc_putline_NV12 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -18594,9 +18594,9 @@ videomixer_video_convert_orc_putline_NV21 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, @@ -18899,9 +18899,9 @@ videomixer_video_convert_orc_putline_A420 (guint8 * ORC_RESTRICT d1, #if 1 static const orc_uint8 bc[] = { 1, 9, 41, 118, 105, 100, 101, 111, 109, 105, 120, 101, 114, 95, 118, - 105, + 105, 100, 101, 111, 95, 99, 111, 110, 118, 101, 114, 116, 95, 111, 114, 99, - 95, + 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, diff --git a/gst/wavenc/Makefile.in b/gst/wavenc/Makefile.in index 483808c4d..0b7be5214 100644 --- a/gst/wavenc/Makefile.in +++ b/gst/wavenc/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in index 003398968..e8204b0c4 100644 --- a/gst/wavparse/Makefile.in +++ b/gst/wavparse/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -487,7 +485,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 426bc5633..e50a82d94 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -37,8 +37,6 @@ * gst-launch-1.0 gnomevfssrc location=http://www.example.org/sine.wav ! queue ! wavparse ! audioconvert ! alsasink * ]| Stream data from a network url. * </refsect2> - * - * Last reviewed on 2007-02-14 (0.10.6) */ /* @@ -165,15 +163,13 @@ gst_wavparse_class_init (GstWavParseClass * klass) object_class->get_property = gst_wavparse_get_property; /** - * GstWavParse:ignore-length + * GstWavParse:ignore-length: * * This selects whether the length found in a data chunk * should be ignored. This may be useful for streamed audio * where the length is unknown until the end of streaming, * and various software/hardware just puts some random value * in there and hopes it doesn't break too much. - * - * Since: 0.10.36 */ g_object_class_install_property (object_class, PROP_IGNORE_LENGTH, g_param_spec_boolean ("ignore-length", @@ -290,431 +286,6 @@ gst_wavparse_init (GstWavParse * wavparse) gst_element_add_pad (GST_ELEMENT_CAST (wavparse), wavparse->srcpad); } -/* FIXME: why is that not in use? */ -#if 0 -static void -gst_wavparse_parse_adtl (GstWavParse * wavparse, int len) -{ - guint32 got_bytes; - GstByteStream *bs = wavparse->bs; - gst_riff_chunk *temp_chunk, chunk; - guint8 *tempdata; - struct _gst_riff_labl labl, *temp_labl; - struct _gst_riff_ltxt ltxt, *temp_ltxt; - struct _gst_riff_note note, *temp_note; - char *label_name; - GstProps *props; - GstPropsEntry *entry; - GstCaps *new_caps; - GList *caps = NULL; - - props = wavparse->metadata->properties; - - while (len > 0) { - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, sizeof (gst_riff_chunk)); - if (got_bytes != sizeof (gst_riff_chunk)) { - return; - } - temp_chunk = (gst_riff_chunk *) tempdata; - - chunk.id = GUINT32_FROM_LE (temp_chunk->id); - chunk.size = GUINT32_FROM_LE (temp_chunk->size); - - if (chunk.size == 0) { - gst_bytestream_flush (bs, sizeof (gst_riff_chunk)); - len -= sizeof (gst_riff_chunk); - continue; - } - - switch (chunk.id) { - case GST_RIFF_adtl_labl: - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_labl)); - if (got_bytes != sizeof (struct _gst_riff_labl)) { - return; - } - - temp_labl = (struct _gst_riff_labl *) tempdata; - labl.id = GUINT32_FROM_LE (temp_labl->id); - labl.size = GUINT32_FROM_LE (temp_labl->size); - labl.identifier = GUINT32_FROM_LE (temp_labl->identifier); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_labl)); - len -= sizeof (struct _gst_riff_labl); - - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, labl.size - 4); - if (got_bytes != labl.size - 4) { - return; - } - - label_name = (char *) tempdata; - - gst_bytestream_flush (bs, ((labl.size - 4) + 1) & ~1); - len -= (((labl.size - 4) + 1) & ~1); - - new_caps = gst_caps_new ("label", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (labl.identifier), - "name", G_TYPE_STRING (label_name), NULL)); - - if (gst_props_get (props, "labels", &caps, NULL)) { - caps = g_list_append (caps, new_caps); - } else { - caps = g_list_append (NULL, new_caps); - - entry = gst_props_entry_new ("labels", GST_PROPS_GLIST (caps)); - gst_props_add_entry (props, entry); - } - - break; - - case GST_RIFF_adtl_ltxt: - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_ltxt)); - if (got_bytes != sizeof (struct _gst_riff_ltxt)) { - return; - } - - temp_ltxt = (struct _gst_riff_ltxt *) tempdata; - ltxt.id = GUINT32_FROM_LE (temp_ltxt->id); - ltxt.size = GUINT32_FROM_LE (temp_ltxt->size); - ltxt.identifier = GUINT32_FROM_LE (temp_ltxt->identifier); - ltxt.length = GUINT32_FROM_LE (temp_ltxt->length); - ltxt.purpose = GUINT32_FROM_LE (temp_ltxt->purpose); - ltxt.country = GUINT16_FROM_LE (temp_ltxt->country); - ltxt.language = GUINT16_FROM_LE (temp_ltxt->language); - ltxt.dialect = GUINT16_FROM_LE (temp_ltxt->dialect); - ltxt.codepage = GUINT16_FROM_LE (temp_ltxt->codepage); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_ltxt)); - len -= sizeof (struct _gst_riff_ltxt); - - if (ltxt.size - 20 > 0) { - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, ltxt.size - 20); - if (got_bytes != ltxt.size - 20) { - return; - } - - gst_bytestream_flush (bs, ((ltxt.size - 20) + 1) & ~1); - len -= (((ltxt.size - 20) + 1) & ~1); - - label_name = (char *) tempdata; - } else { - label_name = ""; - } - - new_caps = gst_caps_new ("ltxt", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (ltxt.identifier), - "name", G_TYPE_STRING (label_name), - "length", G_TYPE_INT (ltxt.length), NULL)); - - if (gst_props_get (props, "ltxts", &caps, NULL)) { - caps = g_list_append (caps, new_caps); - } else { - caps = g_list_append (NULL, new_caps); - - entry = gst_props_entry_new ("ltxts", GST_PROPS_GLIST (caps)); - gst_props_add_entry (props, entry); - } - - break; - - case GST_RIFF_adtl_note: - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_note)); - if (got_bytes != sizeof (struct _gst_riff_note)) { - return; - } - - temp_note = (struct _gst_riff_note *) tempdata; - note.id = GUINT32_FROM_LE (temp_note->id); - note.size = GUINT32_FROM_LE (temp_note->size); - note.identifier = GUINT32_FROM_LE (temp_note->identifier); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_note)); - len -= sizeof (struct _gst_riff_note); - - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, note.size - 4); - if (got_bytes != note.size - 4) { - return; - } - - gst_bytestream_flush (bs, ((note.size - 4) + 1) & ~1); - len -= (((note.size - 4) + 1) & ~1); - - label_name = (char *) tempdata; - - new_caps = gst_caps_new ("note", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (note.identifier), - "name", G_TYPE_STRING (label_name), NULL)); - - if (gst_props_get (props, "notes", &caps, NULL)) { - caps = g_list_append (caps, new_caps); - } else { - caps = g_list_append (NULL, new_caps); - - entry = gst_props_entry_new ("notes", GST_PROPS_GLIST (caps)); - gst_props_add_entry (props, entry); - } - - break; - - default: - g_print ("Unknown chunk: %" GST_FOURCC_FORMAT "\n", - GST_FOURCC_ARGS (chunk.id)); - return; - } - } - - g_object_notify (G_OBJECT (wavparse), "metadata"); -} - -static void -gst_wavparse_parse_cues (GstWavParse * wavparse, int len) -{ - guint32 got_bytes; - GstByteStream *bs = wavparse->bs; - struct _gst_riff_cue *temp_cue, cue; - struct _gst_riff_cuepoints *points; - guint8 *tempdata; - int i; - GList *cues = NULL; - GstPropsEntry *entry; - - while (len > 0) { - int required; - - got_bytes = - gst_bytestream_peek_bytes (bs, &tempdata, - sizeof (struct _gst_riff_cue)); - temp_cue = (struct _gst_riff_cue *) tempdata; - - /* fixup for our big endian friends */ - cue.id = GUINT32_FROM_LE (temp_cue->id); - cue.size = GUINT32_FROM_LE (temp_cue->size); - cue.cuepoints = GUINT32_FROM_LE (temp_cue->cuepoints); - - gst_bytestream_flush (bs, sizeof (struct _gst_riff_cue)); - if (got_bytes != sizeof (struct _gst_riff_cue)) { - return; - } - - len -= sizeof (struct _gst_riff_cue); - - /* -4 because cue.size contains the cuepoints size - and we've already flushed that out of the system */ - required = cue.size - 4; - got_bytes = gst_bytestream_peek_bytes (bs, &tempdata, required); - gst_bytestream_flush (bs, ((required) + 1) & ~1); - if (got_bytes != required) { - return; - } - - len -= (((cue.size - 4) + 1) & ~1); - - /* now we have an array of struct _gst_riff_cuepoints in tempdata */ - points = (struct _gst_riff_cuepoints *) tempdata; - - for (i = 0; i < cue.cuepoints; i++) { - GstCaps *caps; - - caps = gst_caps_new ("cues", - "application/x-gst-metadata", - gst_props_new ("identifier", G_TYPE_INT (points[i].identifier), - "position", G_TYPE_INT (points[i].offset), NULL)); - cues = g_list_append (cues, caps); - } - - entry = gst_props_entry_new ("cues", GST_PROPS_GLIST (cues)); - gst_props_add_entry (wavparse->metadata->properties, entry); - } - - g_object_notify (G_OBJECT (wavparse), "metadata"); -} - -/* Read 'fmt ' header */ -static gboolean -gst_wavparse_fmt (GstWavParse * wav) -{ - gst_riff_strf_auds *header = NULL; - GstCaps *caps; - - if (!gst_riff_read_strf_auds (wav, &header)) - goto no_fmt; - - wav->format = header->format; - wav->rate = header->rate; - wav->channels = header->channels; - if (wav->channels == 0) - goto no_channels; - - wav->blockalign = header->blockalign; - wav->width = (header->blockalign * 8) / header->channels; - wav->depth = header->size; - wav->bps = header->av_bps; - if (wav->bps <= 0) - goto no_bps; - - /* Note: gst_riff_create_audio_caps might need to fix values in - * the header header depending on the format, so call it first */ - /* FIXME: Need to handle the channel reorder map */ - caps = gst_riff_create_audio_caps (header->format, NULL, header, NULL, NULL); - g_free (header); - - if (caps == NULL) - goto no_caps; - - gst_wavparse_create_sourcepad (wav); - gst_pad_use_fixed_caps (wav->srcpad); - gst_pad_set_active (wav->srcpad, TRUE); - gst_pad_set_caps (wav->srcpad, caps); - gst_caps_free (caps); - gst_element_add_pad (GST_ELEMENT_CAST (wav), wav->srcpad); - gst_element_no_more_pads (GST_ELEMENT_CAST (wav)); - - GST_DEBUG ("frequency %u, channels %u", wav->rate, wav->channels); - - return TRUE; - - /* ERRORS */ -no_fmt: - { - GST_ELEMENT_ERROR (wav, STREAM, TYPE_NOT_FOUND, (NULL), - ("No FMT tag found")); - return FALSE; - } -no_channels: - { - GST_ELEMENT_ERROR (wav, STREAM, FAILED, (NULL), - ("Stream claims to contain zero channels - invalid data")); - g_free (header); - return FALSE; - } -no_bps: - { - GST_ELEMENT_ERROR (wav, STREAM, FAILED, (NULL), - ("Stream claims to bitrate of <= zero - invalid data")); - g_free (header); - return FALSE; - } -no_caps: - { - GST_ELEMENT_ERROR (wav, STREAM, TYPE_NOT_FOUND, (NULL), (NULL)); - return FALSE; - } -} - -static gboolean -gst_wavparse_other (GstWavParse * wav) -{ - guint32 tag, length; - - if (!gst_riff_peek_head (wav, &tag, &length, NULL)) { - GST_WARNING_OBJECT (wav, "could not peek head"); - return FALSE; - } - GST_DEBUG_OBJECT (wav, "got tag (%08x) %4.4s, length %u", tag, - (const gchar *) &tag, length); - - switch (tag) { - case GST_RIFF_TAG_LIST: - if (!(tag = gst_riff_peek_list (wav))) { - GST_WARNING_OBJECT (wav, "could not peek list"); - return FALSE; - } - - switch (tag) { - case GST_RIFF_LIST_INFO: - if (!gst_riff_read_list (wav, &tag) || !gst_riff_read_info (wav)) { - GST_WARNING_OBJECT (wav, "could not read list"); - return FALSE; - } - break; - - case GST_RIFF_LIST_adtl: - if (!gst_riff_read_skip (wav)) { - GST_WARNING_OBJECT (wav, "could not read skip"); - return FALSE; - } - break; - - default: - GST_DEBUG_OBJECT (wav, "skipping tag (%08x) %4.4s", tag, - (gchar *) & tag); - if (!gst_riff_read_skip (wav)) { - GST_WARNING_OBJECT (wav, "could not read skip"); - return FALSE; - } - break; - } - - break; - - case GST_RIFF_TAG_data: - if (!gst_bytestream_flush (wav->bs, 8)) { - GST_WARNING_OBJECT (wav, "could not flush 8 bytes"); - return FALSE; - } - - GST_DEBUG_OBJECT (wav, "switching to data mode"); - wav->state = GST_WAVPARSE_DATA; - wav->datastart = gst_bytestream_tell (wav->bs); - if (length == 0) { - guint64 file_length; - - /* length is 0, data probably stretches to the end - * of file */ - GST_DEBUG_OBJECT (wav, "length is 0 trying to find length"); - /* get length of file */ - file_length = gst_bytestream_length (wav->bs); - if (file_length == -1) { - GST_DEBUG_OBJECT (wav, - "could not get file length, assuming data to eof"); - /* could not get length, assuming till eof */ - length = G_MAXUINT32; - } - if (file_length > G_MAXUINT32) { - GST_DEBUG_OBJECT (wav, "file length %" G_GUINT64_FORMAT - ", clipping to 32 bits", file_length); - /* could not get length, assuming till eof */ - length = G_MAXUINT32; - } else { - GST_DEBUG_OBJECT (wav, "file length %" G_GUINT64_FORMAT - ", datalength %u", file_length, length); - /* substract offset of datastart from length */ - length = file_length - wav->datastart; - GST_DEBUG_OBJECT (wav, "datalength %u", length); - } - } - wav->datasize = (guint64) length; - GST_DEBUG_OBJECT (wav, "datasize = %ld", length) - break; - - case GST_RIFF_TAG_cue: - if (!gst_riff_read_skip (wav)) { - GST_WARNING_OBJECT (wav, "could not read skip"); - return FALSE; - } - break; - - default: - GST_DEBUG_OBJECT (wav, "skipping tag (%08x) %4.4s", tag, (gchar *) & tag); - if (!gst_riff_read_skip (wav)) - return FALSE; - break; - } - - return TRUE; -} -#endif - - static gboolean gst_wavparse_parse_file_header (GstElement * element, GstBuffer * buf) { @@ -1262,6 +833,42 @@ gst_wavparse_note_chunk (GstWavParse * wav, const guint8 * data, guint32 size) return TRUE; } +/* + * gst_wavparse_smpl_chunk: + * @wav GstWavParse object + * @data holder for data + * @size holder for data size + * + * Parse smpl chunk from @data. + * + * Returns: %TRUE when cue chunk is available + */ +static gboolean +gst_wavparse_smpl_chunk (GstWavParse * wav, const guint8 * data, guint32 size) +{ + guint32 note_number; + + /* + manufacturer_id = GST_READ_UINT32_LE (data); + product_id = GST_READ_UINT32_LE (data + 4); + sample_period = GST_READ_UINT32_LE (data + 8); + */ + note_number = GST_READ_UINT32_LE (data + 12); + /* + pitch_fraction = GST_READ_UINT32_LE (data + 16); + SMPTE_format = GST_READ_UINT32_LE (data + 20); + SMPTE_offset = GST_READ_UINT32_LE (data + 24); + num_sample_loops = GST_READ_UINT32_LE (data + 28); + List of Sample Loops, 24 bytes each + */ + + if (!wav->tags) + wav->tags = gst_tag_list_new_empty (); + gst_tag_list_add (wav->tags, GST_TAG_MERGE_REPLACE, + GST_TAG_MIDI_BASE_NOTE, (guint) note_number, NULL); + return TRUE; +} + /* * gst_wavparse_adtl_chunk: * @wav GstWavParse object @@ -1288,6 +895,9 @@ gst_wavparse_adtl_chunk (GstWavParse * wav, const guint8 * data, guint32 size) gst_wavparse_note_chunk (wav, data + offset, size); break; default: + GST_WARNING_OBJECT (wav, "Unknowm adtl %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (ltag)); + GST_MEMDUMP_OBJECT (wav, "Unknowm adtl", &data[offset], lsize); break; } offset += 8 + GST_ROUND_UP_2 (lsize); @@ -1831,9 +1441,10 @@ gst_wavparse_stream_headers (GstWavParse * wav) data_size); gst_buffer_unmap (buf, &map); } + break; } default: - GST_INFO_OBJECT (wav, "Ignoring LIST chunk %" GST_FOURCC_FORMAT, + GST_WARNING_OBJECT (wav, "Ignoring LIST chunk %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (ltag)); if (!gst_waveparse_ignore_chunk (wav, buf, tag, size)) /* need more data */ @@ -1886,7 +1497,53 @@ gst_wavparse_stream_headers (GstWavParse * wav) wav->offset += size; break; } + case GST_RIFF_TAG_smpl:{ + const gint data_size = size; + + GST_DEBUG_OBJECT (wav, "Have 'smpl' TAG, size : %u", data_size); + if (wav->streaming) { + const guint8 *data = NULL; + + if (!gst_wavparse_peek_chunk (wav, &tag, &size)) { + goto exit; + } + gst_adapter_flush (wav->adapter, 8); + wav->offset += 8; + data = gst_adapter_map (wav->adapter, data_size); + if (!gst_wavparse_smpl_chunk (wav, data, data_size)) { + goto header_read_error; + } + gst_adapter_unmap (wav->adapter); + } else { + GstMapInfo map; + + wav->offset += 8; + gst_buffer_unref (buf); + buf = NULL; + if ((res = + gst_pad_pull_range (wav->sinkpad, wav->offset, + data_size, &buf)) != GST_FLOW_OK) + goto header_read_error; + gst_buffer_map (buf, &map, GST_MAP_READ); + if (!gst_wavparse_smpl_chunk (wav, (const guint8 *) map.data, + data_size)) { + goto header_read_error; + } + gst_buffer_unmap (buf, &map); + } + size = GST_ROUND_UP_2 (size); + if (wav->streaming) { + gst_adapter_flush (wav->adapter, size); + } else { + gst_buffer_unref (buf); + } + size = GST_ROUND_UP_2 (size); + wav->offset += size; + break; + } default: + GST_WARNING_OBJECT (wav, "Ignoring chunk %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (tag)); if (!gst_waveparse_ignore_chunk (wav, buf, tag, size)) /* need more data */ goto exit; @@ -1942,9 +1599,10 @@ gst_wavparse_stream_headers (GstWavParse * wav) * that is, buffers not too small either size or time wise * so we do not end up with too many of them */ /* var abuse */ - upstream_size = 0; - gst_wavparse_time_to_bytepos (wav, 40 * GST_MSECOND, &upstream_size); - wav->max_buf_size = upstream_size; + if (gst_wavparse_time_to_bytepos (wav, 40 * GST_MSECOND, &upstream_size)) + wav->max_buf_size = upstream_size; + else + wav->max_buf_size = 0; wav->max_buf_size = MAX (wav->max_buf_size, MAX_BUFFER_SIZE); if (wav->blockalign > 0) wav->max_buf_size -= (wav->max_buf_size % wav->blockalign); @@ -2117,10 +1775,33 @@ gst_wavparse_have_dts_caps (const GstCaps * caps, GstTypeFindProbability prob) return gst_structure_has_field (s, "rate"); } +static GstTagList * +gst_wavparse_get_upstream_tags (GstWavParse * wav, GstTagScope scope) +{ + GstTagList *tags = NULL; + GstEvent *ev; + gint i; + + i = 0; + while ((ev = gst_pad_get_sticky_event (wav->sinkpad, GST_EVENT_TAG, i++))) { + gst_event_parse_tag (ev, &tags); + if (tags != NULL && gst_tag_list_get_scope (tags) == scope) { + tags = gst_tag_list_copy (tags); + gst_tag_list_remove_tag (tags, GST_TAG_CONTAINER_FORMAT); + gst_event_unref (ev); + break; + } + tags = NULL; + gst_event_unref (ev); + } + return tags; +} + static void gst_wavparse_add_src_pad (GstWavParse * wav, GstBuffer * buf) { GstStructure *s; + GstTagList *tags, *utags; GST_DEBUG_OBJECT (wav, "adding src pad"); @@ -2158,10 +1839,27 @@ gst_wavparse_add_src_pad (GstWavParse * wav, GstBuffer * buf) wav->start_segment = NULL; } - if (wav->tags) { - gst_pad_push_event (wav->srcpad, gst_event_new_tag (wav->tags)); + /* upstream tags, e.g. from id3/ape tag before the wav file; assume for now + * that there'll be only one scope/type of tag list from upstream, if any */ + utags = gst_wavparse_get_upstream_tags (wav, GST_TAG_SCOPE_GLOBAL); + if (utags == NULL) + utags = gst_wavparse_get_upstream_tags (wav, GST_TAG_SCOPE_STREAM); + + /* if there's a tag upstream it's probably been added to override the + * tags from inside the wav header, so keep upstream tags if in doubt */ + tags = gst_tag_list_merge (utags, wav->tags, GST_TAG_MERGE_KEEP); + + if (wav->tags != NULL) { + gst_tag_list_unref (wav->tags); wav->tags = NULL; } + + if (utags != NULL) + gst_tag_list_unref (utags); + + /* send tags downstream, if any */ + if (tags != NULL) + gst_pad_push_event (wav->srcpad, gst_event_new_tag (tags)); } static GstFlowReturn @@ -2240,8 +1938,10 @@ iterate_adapter: GST_LOG_OBJECT (wav, "Got only %" G_GSIZE_FORMAT " bytes of data", size); if (size >= wav->blockalign) { - buf = gst_buffer_make_writable (buf); - gst_buffer_resize (buf, 0, size - (size % wav->blockalign)); + if (wav->blockalign > 0) { + buf = gst_buffer_make_writable (buf); + gst_buffer_resize (buf, 0, size - (size % wav->blockalign)); + } } else { gst_buffer_unref (buf); goto found_eos; diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in index ce75e4f2d..a9f376120 100644 --- a/gst/y4m/Makefile.in +++ b/gst/y4m/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -486,7 +484,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/gst/y4m/gsty4mencode.c b/gst/y4m/gsty4mencode.c index 4926cb7a6..d98f91f16 100644 --- a/gst/y4m/gsty4mencode.c +++ b/gst/y4m/gsty4mencode.c @@ -74,11 +74,6 @@ GST_STATIC_PAD_TEMPLATE ("sink", ); -static void gst_y4m_encode_set_property (GObject * object, - guint prop_id, const GValue * value, GParamSpec * pspec); -static void gst_y4m_encode_get_property (GObject * object, - guint prop_id, GValue * value, GParamSpec * pspec); - static void gst_y4m_encode_reset (GstY4mEncode * filter); static gboolean gst_y4m_encode_sink_event (GstPad * pad, GstObject * parent, @@ -94,15 +89,10 @@ G_DEFINE_TYPE (GstY4mEncode, gst_y4m_encode, GST_TYPE_ELEMENT); static void gst_y4m_encode_class_init (GstY4mEncodeClass * klass) { - GObjectClass *gobject_class; GstElementClass *gstelement_class; - gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; - gobject_class->set_property = gst_y4m_encode_set_property; - gobject_class->get_property = gst_y4m_encode_get_property; - gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_y4m_encode_change_state); @@ -276,7 +266,7 @@ gst_y4m_encode_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) timestamp = GST_BUFFER_TIMESTAMP (buf); if (G_UNLIKELY (!filter->header)) { - gboolean tff; + gboolean tff = FALSE; if (GST_VIDEO_INFO_IS_INTERLACED (&filter->info)) { tff = GST_BUFFER_FLAG_IS_SET (buf, GST_VIDEO_BUFFER_FLAG_TFF); @@ -307,37 +297,6 @@ not_negotiated: } } -static void -gst_y4m_encode_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstY4mEncode G_GNUC_UNUSED *filter; - - g_return_if_fail (GST_IS_Y4M_ENCODE (object)); - filter = GST_Y4M_ENCODE (object); - - switch (prop_id) { - default: - break; - } -} - -static void -gst_y4m_encode_get_property (GObject * object, guint prop_id, GValue * value, - GParamSpec * pspec) -{ - GstY4mEncode G_GNUC_UNUSED *filter; - - g_return_if_fail (GST_IS_Y4M_ENCODE (object)); - filter = GST_Y4M_ENCODE (object); - - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - static GstStateChangeReturn gst_y4m_encode_change_state (GstElement * element, GstStateChange transition) { diff --git a/install-sh b/install-sh index 377bb8687..a9244eb07 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-11-20.07; # UTC +scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,7 +35,7 @@ scriptversion=2011-11-20.07; # UTC # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it +# `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written @@ -156,7 +156,7 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. + # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac @@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg - # Protect names problematic for 'test' and other utilities. + # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac @@ -202,7 +202,7 @@ if test $# -eq 0; then echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call 'install-sh -d' without argument. + # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi @@ -240,7 +240,7 @@ fi for src do - # Protect names problematic for 'test' and other utilities. + # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac @@ -354,7 +354,7 @@ do if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. + # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in diff --git a/m4/Makefile.in b/m4/Makefile.in index 3f0c37cda..fb266b54e 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -86,7 +86,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -102,7 +101,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -400,7 +398,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/missing b/missing index cdea51493..86a8fc31e 100755 --- a/missing +++ b/missing @@ -1,10 +1,11 @@ #! /bin/sh -# Common wrapper for a few potentially missing GNU programs. +# Common stub for a few missing GNU programs while installing. -scriptversion=2012-06-26.16; # UTC +scriptversion=2012-01-06.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,40 +26,68 @@ scriptversion=2012-06-26.16; # UTC # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then - echo 1>&2 "Try '$0 --help' for more information" + echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi -case $1 in +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch] -Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and -'g' are ignored when checking the name. +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. Send bug reports to <bug-automake@gnu.org>." exit $? @@ -70,141 +99,228 @@ Send bug reports to <bug-automake@gnu.org>." ;; -*) - echo 1>&2 "$0: unknown '$1' option" - echo 1>&2 "Try '$0 --help' for more information" + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac -# Run the given program, remember its exit status. -"$@"; st=$? - -# If it succeeded, we are done. -test $st -eq 0 && exit 0 - -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" + autoheader*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in index 71418651d..6b75f643c 100644 --- a/pkgconfig/Makefile.in +++ b/pkgconfig/Makefile.in @@ -87,7 +87,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -103,7 +102,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -401,7 +399,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 1283c324a..fecf500f3 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -15,9 +15,6 @@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -# thomas: add GETTEXT_PACKAGE substitution as used in Makevars -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ - SHELL = /bin/sh @SET_MAKE@ diff --git a/po/Makevars b/po/Makevars index b8fd89c3c..996fde3d6 100644 --- a/po/Makevars +++ b/po/Makevars @@ -1,7 +1,7 @@ # Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. -DOMAIN = $(GETTEXT_PACKAGE) +DOMAIN = gst-plugins-good-1.0 # These two variables depend on the location of this directory. subdir = po diff --git a/po/POTFILES.in b/po/POTFILES.in index 596eda7e7..689ae8f1c 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -21,6 +21,5 @@ sys/sunaudio/gstsunaudiomixertrack.c sys/v4l2/gstv4l2bufferpool.c sys/v4l2/gstv4l2object.c sys/v4l2/gstv4l2radio.c -sys/v4l2/gstv4l2videooverlay.c sys/v4l2/v4l2_calls.c sys/ximage/gstximagesrc.c diff --git a/po/af.gmo b/po/af.gmo index ee54c0fd47a2a5333fa680bc5ef2f77e8b6441ac..1cc87eebe10bcc4bedadef435c7f5fef40580969 100644 GIT binary patch delta 23 ecmbQmI*WCK7bBOcu7R<Fp@o%!!R8P~H%0(QoCSLT delta 23 ecmbQmI*WCK7bBO6uAzm3p^=q|`Q{KtH%0(Q<^_cS diff --git a/po/af.po b/po/af.po index ed75a037b..aa419775c 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -233,6 +233,10 @@ msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie." msgid "Device '%s' cannot capture in the specified format" msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie." + #, fuzzy, c-format msgid "Could not get parameters on device '%s'" msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie." @@ -243,6 +247,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Kon nie genoeg buffers vanaf toestel \"%s\" kry nie." @@ -267,10 +283,6 @@ msgstr "Kon nie oudio-toestel \"%s\" toemaak nie." msgid "Failed to change mute state for device '%s'." msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie." -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "Kon nie skryf na toestel \"%s\" nie." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -293,6 +305,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "Kon nie skryf na toestel \"%s\" nie." + #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -309,6 +325,14 @@ msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie." msgid "Device '%s' is not a output device." msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Toestel \"%s\" is nie 'n vasleggingtoestel nie." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Kon nie toestel \"%s\" oopmaak vir lees en skryf nie." + #, fuzzy, c-format msgid "Failed to set norm for device '%s'." msgstr "Kon nie buffers vanaf toestel \"%s\" verkry nie." diff --git a/po/az.gmo b/po/az.gmo index 664908942bd7f80129da11926b736da2b8f16bf6..f434577adab368376be60320a4b44a37497d1287 100644 GIT binary patch delta 23 ecmcc2dYN^D7bBOcu7R<Fp@o%!!R8RgdPV?I+6E>7 delta 23 ecmcc2dYN^D7bBO6uAzm3p^=q|`Q{MDdPV?JBnB`5 diff --git a/po/az.po b/po/az.po index b2db0a3cf..21da434ec 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -234,6 +234,10 @@ msgstr "\"%s\" avadanlığı capture avadanlığı deyil." msgid "Device '%s' cannot capture in the specified format" msgstr "\"%s\" avadanlığı capture avadanlığı deyil." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "\"%s\" avadanlığı capture avadanlığı deyil." + #, fuzzy, c-format msgid "Could not get parameters on device '%s'" msgstr "\"%s\" avadanlığından bufferlÉ™r alına bilmÉ™di." @@ -244,6 +248,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "\"%s\" avadanlığından kifayÉ™t qÉ™dÉ™r bufferlÉ™r alına bilmÉ™di." @@ -268,10 +284,6 @@ msgstr "\"%s\" audio avadanlığı baÄŸlana bilmÉ™di." msgid "Failed to change mute state for device '%s'." msgstr "\"%s\" avadanlığından bufferlÉ™r alına bilmÉ™di." -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "\"%s\" avadanlığına yazıla bilmÉ™di." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -294,6 +306,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "\"%s\" avadanlığına yazıla bilmÉ™di." + #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -310,6 +326,14 @@ msgstr "\"%s\" avadanlığı capture avadanlığı deyil." msgid "Device '%s' is not a output device." msgstr "\"%s\" avadanlığı capture avadanlığı deyil." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "\"%s\" avadanlığı capture avadanlığı deyil." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "\"%s\" avadanlığı oxuma vÉ™ yazma üçün açıla bilmÉ™di." + #, fuzzy, c-format msgid "Failed to set norm for device '%s'." msgstr "\"%s\" avadanlığından bufferlÉ™r alına bilmÉ™di." diff --git a/po/bg.gmo b/po/bg.gmo index 59a6e6a60b3f0030526b87441312381729c81ac8..3b4eac07bd20edfc92f8bc0e890d68b14b640104 100644 GIT binary patch delta 23 ecmeAT?+xD&FT`c4YhbKkXklewusKsmMG^p2$_7UO delta 23 ecmeAT?+xD&FT`b{YiOZhXk=w#zByA!MG^p36b4ZM diff --git a/po/bg.po b/po/bg.po index 1e69ff256..181751f56 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -240,6 +240,10 @@ msgstr "УÑтройÑтвото „%s“ не е уÑтройÑтво за за msgid "Device '%s' cannot capture in the specified format" msgstr "УÑтройÑтвото „%s“ не е уÑтройÑтво за запиÑ." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "УÑтройÑтвото „%s“ не е изходно уÑтройÑтво." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Ðе могат да Ñе получат параметрите на уÑтройÑтвото „%s“." @@ -252,6 +256,21 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"УÑтройÑтвото за видео вход не приема новите наÑтройки за чеÑтотата на кадри." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Драйверът за уÑтройÑтвото „%s“ не поддържа познати методи за запиÑ." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "ÐеуÑпешно получаване на наÑтройките на тунер %d на уÑтройÑтво „%s“." @@ -276,10 +295,6 @@ msgstr "ÐеуÑпешно задаване на вход %d на уÑÑ‚Ñ€Ð¾Ð¹Ñ msgid "Failed to change mute state for device '%s'." msgstr "ÐеуÑпешно получаване на Ñилата на Ñигнала на уÑтройÑтво „%s“." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "УÑтройÑтвото „%s“ не може да Ñе идентифицира." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -304,6 +319,10 @@ msgstr "ÐеуÑпешно запитване за нормата на уÑÑ‚Ñ€ msgid "Failed getting controls attributes on device '%s'." msgstr "ÐеуÑпешно получаване на контролните атрибути на уÑтройÑтвото „%s“." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "УÑтройÑтвото „%s“ не може да Ñе идентифицира." + #, c-format msgid "This isn't a device '%s'." msgstr "„%s“ не е уÑтройÑтво." @@ -320,6 +339,14 @@ msgstr "УÑтройÑтвото „%s“ не е уÑтройÑтво за за msgid "Device '%s' is not a output device." msgstr "УÑтройÑтвото „%s“ не е изходно уÑтройÑтво." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "УÑтройÑтвото „%s“ не е изходно уÑтройÑтво." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "УÑтройÑтвото „%s“ не може да Ñе отвори за четене и запиÑ." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "ÐеуÑпешно задаване на нормата на уÑтройÑтво „%s“." diff --git a/po/ca.gmo b/po/ca.gmo index b947b0cb1255449da5507261a8cdb0d1e492f0c2..8a077ce099f287d303e812e82385749de97147ce 100644 GIT binary patch delta 23 ecmZ4DzQlb)ybzbEu7R<Fp@o%!!RAaMYe4{4L<VF4 delta 23 ecmZ4DzQlb)ybza(uAzm3p^=q|`Q}U^Ye4{4js|W3 diff --git a/po/ca.po b/po/ca.po index e414086e0..d67ca4645 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -250,6 +250,10 @@ msgstr "El dispositiu «%s» no és un dispositiu de captura." msgid "Device '%s' cannot capture in the specified format" msgstr "El dispositiu «%s» no és un dispositiu de captura." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "El dispositiu «%s» no és un dispositiu de sortida." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "No s'han pogut obtenir els parà metres del dispositiu «%s»" @@ -263,6 +267,24 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"El dispositiu d'entrada de vÃdeo no ha acceptat el parà metre nou de " +"fotogrames per segon." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "" +"El controlador del dispositiu «%s» no és compatible amb cap mètode de " +"captura conegut." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -289,10 +311,6 @@ msgstr "No s'ha pogut establir l'entrada %d en el dispositiu %s." msgid "Failed to change mute state for device '%s'." msgstr "No s'ha pogut obtenir la intensitat del senyal per al dispositiu «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "No es pot identificar el dispositiu «%s»." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -322,6 +340,10 @@ msgid "Failed getting controls attributes on device '%s'." msgstr "" "No s'ha pogut obtenir els atributs dels controls en el dispositiu «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "No es pot identificar el dispositiu «%s»." + #, c-format msgid "This isn't a device '%s'." msgstr "Això no és un dispositiu «%s»." @@ -338,6 +360,14 @@ msgstr "El dispositiu «%s» no és un dispositiu de captura." msgid "Device '%s' is not a output device." msgstr "El dispositiu «%s» no és un dispositiu de sortida." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "El dispositiu «%s» no és un dispositiu de sortida." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "No s'ha pogut obrir el dispositiu «%s» per a lectura i l'escriptura." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "No s'ha pogut establir la norma per al dispositiu «%s»." diff --git a/po/cs.gmo b/po/cs.gmo index b345746dc832f32c11bea45c0260291da2dcc68f..0943c50372cd4f9e810d5e5f810ca6c3b63f256c 100644 GIT binary patch delta 23 fcmewt_AhM112HaBT?1nULklYdgUzqRricIlbxjDI delta 23 fcmewt_AhM112HZWT|)~6LnA8_^UbfsricIlb(aXH diff --git a/po/cs.po b/po/cs.po index d60836bdb..36f14896e 100644 --- a/po/cs.po +++ b/po/cs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -245,6 +245,10 @@ msgstr "ZaÅ™Ãzenà „%s“ neumà zachytávat v rozmÄ›ru %d × %d" msgid "Device '%s' cannot capture in the specified format" msgstr "ZaÅ™Ãzenà „%s“ neumà zachytávat v tomto konkrétnÃm formátu" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "ZaÅ™Ãzenà „%s“ nepodporuje zachytávánà videa" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "NezdaÅ™ilo se zjiÅ¡tÄ›nà parametrů na zaÅ™Ãzenà „%s“" @@ -255,6 +259,20 @@ msgstr "VideozaÅ™Ãzenà nepÅ™ijalo nové nastavenà snÃmkové rychlosti." msgid "Video device could not create buffer pool." msgstr "VideozaÅ™Ãzenà se nezdaÅ™ilo vytvoÅ™it spoleÄnou vyrovnávacà paměť." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "VideozaÅ™Ãzenà nepÅ™ijalo nové nastavenà snÃmkové rychlosti." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "OvladaÄ zaÅ™Ãzenà „%s“ nepodporuje V/V metodu %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Selhalo zjiÅ¡tÄ›nà nastavenà tuneru %d u zaÅ™Ãzenà „%s“." @@ -279,10 +297,6 @@ msgstr "NezdaÅ™ilo se nastavenà vstupu %d u zaÅ™Ãzenà „%s“." msgid "Failed to change mute state for device '%s'." msgstr "Selhala zmÄ›na stavu zapnutÃ/vypnutà zvuku u zaÅ™Ãzenà „%s“." -#, c-format -msgid "Cannot identify device '%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 " @@ -307,6 +321,10 @@ msgstr "NezdaÅ™ilo se dotázánà na normu na zaÅ™Ãzenà „%s“." msgid "Failed getting controls attributes on device '%s'." msgstr "NezdaÅ™ilo se zjiÅ¡tÄ›nà vlastnostà ovládacÃch prvků u zaÅ™Ãzenà „%s“." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "NezdaÅ™ilo se rozpoznat zaÅ™Ãzenà „%s“." + #, c-format msgid "This isn't a device '%s'." msgstr "Toto nenà zaÅ™Ãzenà „%s“." @@ -323,6 +341,14 @@ msgstr "ZaÅ™Ãzenà „%s“ nenà zachytávacÃm zaÅ™ÃzenÃm." msgid "Device '%s' is not a output device." msgstr "ZaÅ™Ãzenà „%s“ nenà výstupnÃm zaÅ™ÃzenÃm." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "ZaÅ™Ãzenà „%s“ nenà výstupnÃm zaÅ™ÃzenÃm." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "NezdaÅ™ilo se otevÅ™Ãt zaÅ™Ãzenà „%s“ pro Ätenà a pro zápisu." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Selhalo nastavenà normy u zaÅ™Ãzenà „%s“." diff --git a/po/da.gmo b/po/da.gmo index e8c1804535d6961a1192150899bf4ff2fa108c0f..beef331c7b372403a0c7d12d0dceb6adaa73c9ad 100644 GIT binary patch delta 23 fcmccUf6;%#12HaBT?1nULklYdgUzqRo(li~Z4C&6 delta 23 fcmccUf6;%#12HZWT|)~6LnA8_^Ubfso(li~ZC415 diff --git a/po/da.po b/po/da.po index 59fd8ed18..e47d69ba8 100644 --- a/po/da.po +++ b/po/da.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2013-12-08 23:54+0200\n" "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" @@ -248,6 +248,10 @@ msgstr "Enheden »%s« kan ikke optage med %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Enheden »%s« kan ikke optage i det angivne format" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Enheden »%s« understøtter ikke videooptagelse" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Kunne ikke hente parametre fra enhed »%s«" @@ -258,6 +262,20 @@ msgstr "Videoenheden accepterede ikke ny indstilling for billedrate." msgid "Video device could not create buffer pool." msgstr "Videoenhed kunne ikke oprette mellemlagerkø." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Videoenheden accepterede ikke ny indstilling for billedrate." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Driveren til enhed »%s« understøtter ikke IO-metoden %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Hentning af indstillinger for tuner %d pÃ¥ enhed »%s« fejlede." @@ -282,10 +300,6 @@ msgstr "Kunne ikke sætte inddata %d for enhed %s." msgid "Failed to change mute state for device '%s'." msgstr "Kunne ikke ændre tilstand for tænk/slut for enhed »%s«." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kan ikke identificere enhed »%s«." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -310,6 +324,10 @@ msgstr "Listning af standard pÃ¥ enhed »%s« fejlede." msgid "Failed getting controls attributes on device '%s'." msgstr "Hentning af kontrolattributter for enhed »%s« fejlede." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kan ikke identificere enhed »%s«." + #, c-format msgid "This isn't a device '%s'." msgstr "Dette er ikke en enheds »%s«." @@ -326,6 +344,14 @@ msgstr "Enhed »%s« er ikke en optageenhed." msgid "Device '%s' is not a output device." msgstr "Enhed »%s« er ikke en uddataenhed." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Enhed »%s« er ikke en uddataenhed." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Kunne ikke tilgÃ¥ enhed »%s«." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Indstilling af standard for enhed »%s« fejlede." diff --git a/po/de.gmo b/po/de.gmo index 52c767ef2ac6b3f1cb0d3bb6300c3fc285cad3bd..d95879171be88c881f202cf2f0ec0dc731e6cbd3 100644 GIT binary patch delta 23 fcmcZ?elL8(12HaBT?1nULklYdgUzqRzK8$-aJLA) delta 23 fcmcZ?elL8(12HZWT|)~6LnA8_^UbfszK8$-aRCU( diff --git a/po/de.po b/po/de.po index 07bbbd8f4..805b082a2 100644 --- a/po/de.po +++ b/po/de.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2013-09-21 12:39+0100\n" "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" @@ -257,6 +257,10 @@ msgstr "Das Gerät »%s« kann nicht bei %dx%d aufnehmen" msgid "Device '%s' cannot capture in the specified format" msgstr "Das angegebene Format kann nicht vom Gerät »%s« ausgelesen werden" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Gerät »%s« unterstützt keine Videoaufnahme" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Parameter konnten nicht von Gerät »%s« ausgelesen werden" @@ -269,6 +273,22 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "Das Videogerät konnte keinen Puffer-Pool erstellen" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"Das Video-Eingabegerät akzeptierte nicht die neue Einstellung zur " +"Bildwiederholungsrate." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Der Treiber von Gerät »%s« unterstützt nicht die EA-Methode %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -294,10 +314,6 @@ msgstr "Festlegen der Eingabe »%d« des Geräts »%s« schlug fehl." msgid "Failed to change mute state for device '%s'." msgstr "Ändern des Stummzustands von Gerät »%s« schlug fehl." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Gerät »%s« kann nicht identifiziert werden." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -323,6 +339,10 @@ msgstr "Abfragen der Norm auf Gerät »%s« schlug fehl." msgid "Failed getting controls attributes on device '%s'." msgstr "Abfrage der Kontrollattribute auf Gerät »%s« schlug fehl." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Gerät »%s« kann nicht identifiziert werden." + #, c-format msgid "This isn't a device '%s'." msgstr "»%s« ist kein Gerät." @@ -339,6 +359,14 @@ msgstr "»%s« ist kein Aufnahmegerät." msgid "Device '%s' is not a output device." msgstr "»%s« ist kein Wiedergabegerät." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "»%s« ist kein Wiedergabegerät." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Gerät »%s« konnte nicht zum Lesen oder Schreiben geöffnet werden." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Festlegen der Norm auf Gerät »%s« schlug fehl." diff --git a/po/el.gmo b/po/el.gmo index ea520661ae14581c26d3485529a4dfd4b93ef26e..196ce016d1fecb3f131ec4b519c60daefa46b044 100644 GIT binary patch delta 23 ecmX>bbv9~4ybzbEu7R<Fp@o%!!RAb%CsF`n$p?-A delta 23 ecmX>bbv9~4ybza(uAzm3p^=q|`Q}WaCsF`o69<?8 diff --git a/po/el.po b/po/el.po index 0f6753560..931373bd3 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -244,6 +244,10 @@ msgstr "Η συσκευή '%s' δεν είναι μια συσκευή λήψη msgid "Device '%s' cannot capture in the specified format" msgstr "Η συσκευή '%s' δεν είναι μια συσκευή λήψης." +#, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Δεν ήταν δυνατή η ανάγνωση των παÏαμÎÏ„Ïων στην συσκευή '%s'" @@ -255,6 +259,19 @@ msgstr "Η συσκευή εισόδου βίντεο δεν αποδÎχθηκ msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Η συσκευή εισόδου βίντεο δεν αποδÎχθηκε τη νÎα ÏÏθμιση ταχÏτητας καÏÎ." + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Αποτυχία ανάγνωσης των Ïυθμίσεων δÎκτη %d στην συσκευή '%s'." @@ -279,10 +296,6 @@ msgstr "Αποτυχία ÏÏθμισης εισαγωγής %d στην συσ msgid "Failed to change mute state for device '%s'." msgstr "Αποτυχία ανάγνωσης ισχÏÏ‚ σήματος για την συσκευή '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Δεν ήταν δυνατή η ταυτοποίηση της συσκευής '%s'." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -308,6 +321,10 @@ msgid "Failed getting controls attributes on device '%s'." msgstr "" "Αποτυχία κατά την ανάγνωση των χαÏακτηÏιστικών ελÎγχου στην συσκευή '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Δεν ήταν δυνατή η ταυτοποίηση της συσκευής '%s'." + #, c-format msgid "This isn't a device '%s'." msgstr "Αυτή δεν είναι μια συκευή '%s'." @@ -325,6 +342,15 @@ msgstr "Η συσκευή '%s' δεν είναι μια συσκευή λήψη msgid "Device '%s' is not a output device." msgstr "Η συσκευή '%s' δεν είναι συσκευή εξόδου." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Η συσκευή '%s' δεν είναι συσκευή εξόδου." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "" +"Δεν ήταν δυνατό το άνοιγμα της συσκευής '%s' για ανάγνωση και γÏάψιμο. " + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Αποτυχία ÏÏθμισης κανόνα για την συσκευή '%s'." diff --git a/po/en_GB.gmo b/po/en_GB.gmo index 290582a94f17b587063f0330eab5f2dd7a63782a..57c2c9511c4c1054f87bcff7e7cd423185166d3a 100644 GIT binary patch delta 23 ecmbQwI-hle7bBOcu7R<Fp@o%!!R8P~Z$<z}f(42I delta 23 ecmbQwI-hle7bBO6uAzm3p^=q|`Q{KtZ$<z}%mtJH diff --git a/po/en_GB.po b/po/en_GB.po index 2bd5ca1cb..d5d9f5917 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -233,6 +233,10 @@ msgstr "Device \"%s\" is not a capture device." msgid "Device '%s' cannot capture in the specified format" msgstr "Device \"%s\" is not a capture device." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Device \"%s\" is not a capture device." + #, fuzzy, c-format msgid "Could not get parameters on device '%s'" msgstr "Could not get buffers from device \"%s\"." @@ -243,6 +247,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Could not get enough buffers from device \"%s\"." @@ -267,10 +283,6 @@ msgstr "Could not close audio device \"%s\"." msgid "Failed to change mute state for device '%s'." msgstr "Could not get buffers from device \"%s\"." -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "Could not write to device \"%s\"." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -293,6 +305,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "Could not write to device \"%s\"." + #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -309,6 +325,14 @@ msgstr "Device \"%s\" is not a capture device." msgid "Device '%s' is not a output device." msgstr "Device \"%s\" is not a capture device." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Device \"%s\" is not a capture device." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Could not open device \"%s\" for reading and writing." + #, fuzzy, c-format msgid "Failed to set norm for device '%s'." msgstr "Could not get buffers from device \"%s\"." diff --git a/po/eo.gmo b/po/eo.gmo index 9a4bb3a9480b79680711bc2ee390aeebac369810..fcf1e5b3c9452db4857370dbcf85ed59b8bbf53a 100644 GIT binary patch delta 23 ecmdnMwSjBHdL}MYT?1nULklYdgUvgc%9#LFTL!NH delta 23 ecmdnMwSjBHdL}LtT|)~6LnA8_^UXV%%9#LFr3SeG diff --git a/po/eo.po b/po/eo.po index 3aa44ddb2..b631c3353 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -229,6 +229,10 @@ msgstr "" msgid "Device '%s' cannot capture in the specified format" msgstr "" +#, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "" @@ -239,6 +243,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -263,10 +279,6 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -289,6 +301,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + #, c-format msgid "This isn't a device '%s'." msgstr "Tio ne estas '%s'-aparato." @@ -305,6 +321,14 @@ msgstr "" msgid "Device '%s' is not a output device." msgstr "" +#, c-format +msgid "Device '%s' is not a M2M device." +msgstr "" + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Ne eblis malfermi sonaparaton por registrado." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "" diff --git a/po/es.gmo b/po/es.gmo index 760f52122eb886ec1d10ea4195e45262e14e75f4..45d70f5df194b438d832bceca7aba9fa15efbc0e 100644 GIT binary patch delta 23 ecmbQ~In#54u`rjZu7R<Fp@o%!!Dd_G7(oD1LIxcG delta 23 ecmbQ~In#54u`rj3uAzm3p^=q|`DR<;7(oD1j0PtF diff --git a/po/es.po b/po/es.po index c88f39f93..c352b2b80 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -252,6 +252,10 @@ msgstr "El dispositivo «%s» no puede capturar a %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "El dispositivo «%s» no puede capturar en el formato especificado" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "El dispositivo «%s» no es un dispositivo de salida." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "No se pudieron obtener los parámetros para el dispositivo «%s»" @@ -265,6 +269,24 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"El dispositivo de entrada de vÃdeo no aceptó el ajuste de la nueva tasa de " +"fotogramas." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "" +"El controlador del dispositivo «%s» no soporta ningún método de captura " +"conocido." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -290,10 +312,6 @@ msgstr "Falló al establecer la entrada %d en el dispositivo %s." msgid "Failed to change mute state for device '%s'." msgstr "Falló al obtener la potencia de la señal para el dispositivo «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "No se puede identificar el dispositivo «%s»." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -319,6 +337,10 @@ msgstr "Falló al consultar la norma para el dispositivo «%s»." msgid "Failed getting controls attributes on device '%s'." msgstr "Falló al obtener los atributos de control en el dispositivo «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "No se puede identificar el dispositivo «%s»." + #, c-format msgid "This isn't a device '%s'." msgstr "Esto no es un dispositivo «%s»." @@ -335,6 +357,14 @@ msgstr "El dispositivo «%s» no es un dispositivo de captura." msgid "Device '%s' is not a output device." msgstr "El dispositivo «%s» no es un dispositivo de salida." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "El dispositivo «%s» no es un dispositivo de salida." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "No se pudo abrir el dispositivo «%s» para lectura y escritura." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Falló al establecer la norma para el dispositivo «%s»." diff --git a/po/eu.gmo b/po/eu.gmo index bdcadc2f96b85a09fa43323e177900c98c7a90a1..ab510fe41894ed37b8af271a06ea772c937bb374 100644 GIT binary patch delta 23 ecmX?Qead=+m;jflu7R<Fp@o%!!Da=4RlERJKn869 delta 23 ecmX?Qead=+m;jfFuAzm3p^=q|`DO)yRlERJiUxN8 diff --git a/po/eu.po b/po/eu.po index 0a7c7bfda..d7dc2f57d 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -250,6 +250,10 @@ msgstr "'%s' gailua ez da kaptura-gailu bat." msgid "Device '%s' cannot capture in the specified format" msgstr "'%s' gailua ez da kaptura-gailu bat." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "'%s' gailua ez da irteerako gailu bat." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Ezin izan dira '%s' gailuaren parametroak eskuratu" @@ -263,6 +267,23 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"Bideoaren sarrerako gailuak ez du fotograma-tamainaren ezarpen berria " +"onartzen." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "" +"'%s' gailuaren kontrolatzaileak ez du onartzen kaptura-metodo ezagunik." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -288,10 +309,6 @@ msgstr "Huts egin du '%2$s' gailuko %1$d. sarrera ezartzean." msgid "Failed to change mute state for device '%s'." msgstr "Huts egin du '%s' gailuaren seinalearen indarra eskuratzean." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ezin da '%s' gailua identifikatu." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -317,6 +334,10 @@ msgstr "Huts egin du '%s' gailuaren araua kontsultatzean." msgid "Failed getting controls attributes on device '%s'." msgstr "Huts egin dut '%s' gailuaren kontrol-atributuak eskuratzean." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ezin da '%s' gailua identifikatu." + #, c-format msgid "This isn't a device '%s'." msgstr "Hau ez da '%s' gailu bat." @@ -333,6 +354,14 @@ msgstr "'%s' gailua ez da kaptura-gailu bat." msgid "Device '%s' is not a output device." msgstr "'%s' gailua ez da irteerako gailu bat." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "'%s' gailua ez da irteerako gailu bat." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Ezin izan da '%s' gailua ireki irakurtzeko eta idazteko." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Huts egin du '%s' gailuaren araua ezartzean." diff --git a/po/fi.gmo b/po/fi.gmo index 06f7faf4456b3722da172808c23e77e881f438fc..71fb1f828ae80a771478fdfc65e86490b0fc428c 100644 GIT binary patch delta 23 fcmaE9_tI{|TtO~VT?1nULklYdgU!nY5Agy3XYdEv delta 23 fcmaE9_tI{|TtO}qT|)~6LnA8_^Uccz5Agy3XgUYu diff --git a/po/fi.po b/po/fi.po index 97c5de567..6bfd4c728 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -247,6 +247,10 @@ msgstr "Laitteelta â€%s†ei voi kaapata." msgid "Device '%s' cannot capture in the specified format" msgstr "Laitteelta â€%s†ei voi kaapata." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Laite â€%s†ei ole ulostulolaite." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Laitteelta â€%s†ei voitu saada parametreja" @@ -258,6 +262,20 @@ msgstr "Videosyötelaite ei hyväksy uutta kehysnopeusasetusta." msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Videosyötelaite ei hyväksy uutta kehysnopeusasetusta." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Laitteen â€%s†ajuri ei tue mitään tunnettua kaappaustapaa." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Virittimen %d asetuksia ei voitu lukea laitteelta â€%sâ€." @@ -282,10 +300,6 @@ msgstr "Sisääntuloa %d ei voitu asettaa laitteelle %s." msgid "Failed to change mute state for device '%s'." msgstr "Laitteelta â€%s†ei saatu signaalinvoimakkuutta." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Laitetta â€%s†ei voi tunnistaa." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -310,6 +324,10 @@ msgstr "Laitteen â€%s†videostandardia ei voitu kysyä." msgid "Failed getting controls attributes on device '%s'." msgstr "Laitteen â€%s†ohjainattribuutteja ei voitu lukea." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Laitetta â€%s†ei voi tunnistaa." + #, c-format msgid "This isn't a device '%s'." msgstr "Tämä ei ole laite â€%sâ€." @@ -326,6 +344,14 @@ msgstr "Laitteelta â€%s†ei voi kaapata." msgid "Device '%s' is not a output device." msgstr "Laite â€%s†ei ole ulostulolaite." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Laite â€%s†ei ole ulostulolaite." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Laitetta â€%s†ei voitu avata luettavaksi ja kirjoitettavaksi." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Laitteen â€%s†videostandardia ei voitu asettaa." diff --git a/po/fr.gmo b/po/fr.gmo index 9f65c75d9fbdfce62bebbf695d2ab4252532fd71..f9e0a3111f0dd793ce3e1963d82fe2fe368d1d43 100644 GIT binary patch delta 23 ecmZqkX!F<*FT`c4YhbKkXklewusKs`t{?zY3I>b- delta 23 ecmZqkX!F<*FT`b{YiOZhXk=w#zByB9t{?zYR0fs+ diff --git a/po/fr.po b/po/fr.po index 2b8fe8bbc..ba2c0856d 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -250,6 +250,10 @@ msgstr "Le périphérique « %s » n'est pas un périphérique d'enregistremen msgid "Device '%s' cannot capture in the specified format" msgstr "Le périphérique « %s » n'est pas un périphérique d'enregistrement." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Le périphérique « %s » n'est pas un périphérique de sortie." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Impossible d'obtenir les paramètres du périphérique « %s »" @@ -263,6 +267,24 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"Le périphérique d'entrée vidéo n'a pas accepté le nouveau paramètre de " +"fréquence d'image." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "" +"Le pilote du périphérique « %s » ne prend en charge aucune méthode " +"d'enregistrement connue." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -288,10 +310,6 @@ msgstr "Impossible de définir l'entrée %d du périphérique %s." msgid "Failed to change mute state for device '%s'." msgstr "Impossible d'obtenir la force du signal du périphérique « %s »." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Impossible d'identifier le périphérique « %s »." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -317,6 +335,10 @@ msgstr "Impossible d'obtenir la norme du périphérique « %s »." msgid "Failed getting controls attributes on device '%s'." msgstr "Impossible d'obtenir les attributs de contrôle du périphérique « %s »." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Impossible d'identifier le périphérique « %s »." + #, c-format msgid "This isn't a device '%s'." msgstr "Ceci n'est pas un périphérique « %s »." @@ -333,6 +355,14 @@ msgstr "Le périphérique « %s » n'est pas un périphérique d'enregistremen msgid "Device '%s' is not a output device." msgstr "Le périphérique « %s » n'est pas un périphérique de sortie." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Le périphérique « %s » n'est pas un périphérique de sortie." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Impossible d'ouvrir le périphérique « %s » en lecture et écriture." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "La définition de la norme du périphérique « %s » a échoué." diff --git a/po/gl.gmo b/po/gl.gmo index 9de2a40941eeab0fb2fe1a7467d5769432b8cefc..327ee71605580e3161095e0bade91e9665cd03b1 100644 GIT binary patch delta 23 ecmZ1<wmxiwju@Azu7R<Fp@o%!!DchDpCSNR3kLfD delta 23 ecmZ1<wmxiwju@ATuAzm3p^=q|`DQb*pCSNRRR;wC diff --git a/po/gl.po b/po/gl.po index 2badcd2d9..05d27b0f4 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -249,6 +249,10 @@ msgstr "O dispositivo «%s» non pode capturar a %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "O dispositivo «%s» non pode capturar o formato especificado" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "O dispositivo «%s» non admite a captura de vÃdeo." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Non foi posÃbel obter os parámetros para o dispositivo «%s»" @@ -260,6 +264,21 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "O dispositivo de vÃdeo non pode crear un pool de búfer." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"O dispositivo de vÃdeo non acepta a nova configuración de taxa de marcos." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "O controlador do dispositivo «%s» non admite o método IO %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -287,10 +306,6 @@ msgid "Failed to change mute state for device '%s'." msgstr "" "Produciuse un erro ao cambiar o estado de enmudecido para o dispositivo «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Non foi posÃbel identificar o dispositivo «%s»." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -318,6 +333,10 @@ msgid "Failed getting controls attributes on device '%s'." msgstr "" "Produciuse un erro ao obter os atributos de control do dispositivo «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Non foi posÃbel identificar o dispositivo «%s»." + #, c-format msgid "This isn't a device '%s'." msgstr "Este non é un dispositivo «%s»." @@ -334,6 +353,14 @@ msgstr "O dispositivo «%s» non é un dispositivo de captura." msgid "Device '%s' is not a output device." msgstr "O dispositivo «%s» non é un dispositivo de captura." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "O dispositivo «%s» non é un dispositivo de captura." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Non foi posÃbel abrir o dispositivo «%s» para lectura e escritura." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Produciuse un fallo ao estabelecer a norma no dispositivo «%s»." diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot index e6e059f6a..d66eb8b8d 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.2.4\n" +"Project-Id-Version: gst-plugins-good 1.3.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -16,157 +16,157 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ext/jack/gstjackaudiosink.c:358 ext/jack/gstjackaudiosrc.c:366 +#: ext/jack/gstjackaudiosink.c:356 ext/jack/gstjackaudiosrc.c:364 msgid "Jack server not found" msgstr "" -#: ext/jpeg/gstjpegdec.c:922 ext/jpeg/gstjpegdec.c:1170 -#: ext/jpeg/gstjpegdec.c:1182 ext/jpeg/gstjpegdec.c:1211 +#: ext/jpeg/gstjpegdec.c:923 ext/jpeg/gstjpegdec.c:1171 +#: ext/jpeg/gstjpegdec.c:1183 ext/jpeg/gstjpegdec.c:1211 #: ext/jpeg/gstjpegdec.c:1220 ext/jpeg/gstjpegdec.c:1229 #: ext/jpeg/gstjpegdec.c:1237 msgid "Failed to decode JPEG image" msgstr "" #. TRANSLATORS: 'song title' by 'artist name' -#: ext/pulse/pulsesink.c:3191 +#: ext/pulse/pulsesink.c:3079 #, c-format msgid "'%s' by '%s'" msgstr "" -#: ext/shout2/gstshout2.c:549 +#: ext/shout2/gstshout2.c:567 msgid "Could not connect to server" msgstr "" -#: ext/soup/gstsouphttpsrc.c:659 +#: ext/soup/gstsouphttpsrc.c:850 msgid "No URL set." msgstr "" -#: ext/soup/gstsouphttpsrc.c:887 +#: ext/soup/gstsouphttpsrc.c:1103 msgid "Server does not support seeking." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1140 +#: ext/soup/gstsouphttpsrc.c:1377 msgid "Could not resolve server name." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1146 +#: ext/soup/gstsouphttpsrc.c:1383 msgid "Could not establish connection to server." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1151 +#: ext/soup/gstsouphttpsrc.c:1388 msgid "Secure connection setup failed." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1156 +#: ext/soup/gstsouphttpsrc.c:1398 msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "" -#: ext/soup/gstsouphttpsrc.c:1162 +#: ext/soup/gstsouphttpsrc.c:1405 msgid "Server sent bad data." msgstr "" -#: gst/avi/gstavidemux.c:5382 +#: gst/avi/gstavidemux.c:5704 msgid "Internal data stream error." msgstr "" -#: gst/avi/gstavimux.c:1813 +#: gst/avi/gstavimux.c:1816 msgid "No or invalid input audio, AVI stream will be corrupt." msgstr "" -#: gst/isomp4/qtdemux.c:568 gst/isomp4/qtdemux.c:572 +#: gst/isomp4/qtdemux.c:571 gst/isomp4/qtdemux.c:575 msgid "This file contains no playable streams." msgstr "" -#: gst/isomp4/qtdemux.c:618 gst/isomp4/qtdemux.c:4606 -#: gst/isomp4/qtdemux.c:4673 gst/isomp4/qtdemux.c:4875 +#: gst/isomp4/qtdemux.c:621 gst/isomp4/qtdemux.c:4700 +#: gst/isomp4/qtdemux.c:4767 gst/isomp4/qtdemux.c:5003 msgid "This file is invalid and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:2283 +#: gst/isomp4/qtdemux.c:2296 msgid "Cannot play stream because it is encrypted with PlayReady DRM." msgstr "" -#: gst/isomp4/qtdemux.c:2848 gst/isomp4/qtdemux.c:2924 -#: gst/isomp4/qtdemux.c:2967 gst/isomp4/qtdemux.c:5551 -#: gst/isomp4/qtdemux.c:5558 gst/isomp4/qtdemux.c:6200 -#: gst/isomp4/qtdemux.c:6636 gst/isomp4/qtdemux.c:6643 -#: gst/isomp4/qtdemux.c:8447 +#: gst/isomp4/qtdemux.c:2859 gst/isomp4/qtdemux.c:2935 +#: gst/isomp4/qtdemux.c:2978 gst/isomp4/qtdemux.c:5705 +#: gst/isomp4/qtdemux.c:5712 gst/isomp4/qtdemux.c:6354 +#: gst/isomp4/qtdemux.c:6783 gst/isomp4/qtdemux.c:6790 +#: gst/isomp4/qtdemux.c:8620 msgid "This file is corrupt and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:3058 +#: gst/isomp4/qtdemux.c:3069 msgid "Invalid atom size." msgstr "" -#: gst/isomp4/qtdemux.c:3126 +#: gst/isomp4/qtdemux.c:3137 msgid "This file is incomplete and cannot be played." msgstr "" -#: gst/isomp4/qtdemux.c:7299 +#: gst/isomp4/qtdemux.c:7443 msgid "The video in this file might not play correctly." msgstr "" -#: gst/isomp4/qtdemux.c:8484 +#: gst/isomp4/qtdemux.c:8661 #, c-format msgid "This file contains too many streams. Only playing first %d" msgstr "" -#: gst/rtsp/gstrtspsrc.c:5794 +#: gst/rtsp/gstrtspsrc.c:6306 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:5799 +#: gst/rtsp/gstrtspsrc.c:6311 msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" -#: gst/wavparse/gstwavparse.c:2467 +#: gst/wavparse/gstwavparse.c:2167 msgid "Internal data flow error." msgstr "" -#: sys/oss4/oss4-sink.c:495 sys/oss4/oss4-source.c:360 +#: sys/oss4/oss4-sink.c:493 sys/oss4/oss4-source.c:358 #: sys/oss/gstosssink.c:384 msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -#: sys/oss4/oss4-sink.c:505 sys/oss4/oss4-source.c:370 +#: sys/oss4/oss4-sink.c:503 sys/oss4/oss4-source.c:368 #: sys/oss/gstosssink.c:391 msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" -#: sys/oss4/oss4-sink.c:516 sys/oss4/oss4-source.c:381 +#: sys/oss4/oss4-sink.c:514 sys/oss4/oss4-source.c:379 #: sys/oss/gstosssink.c:399 msgid "Could not open audio device for playback." msgstr "" -#: sys/oss4/oss4-sink.c:525 sys/oss4/oss4-source.c:391 +#: sys/oss4/oss4-sink.c:523 sys/oss4/oss4-source.c:389 msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" -#: sys/oss4/oss4-sink.c:648 +#: sys/oss4/oss4-sink.c:646 msgid "Playback is not supported by this audio device." msgstr "" -#: sys/oss4/oss4-sink.c:655 +#: sys/oss4/oss4-sink.c:653 msgid "Audio playback error." msgstr "" -#: sys/oss4/oss4-source.c:505 +#: sys/oss4/oss4-source.c:503 msgid "Recording is not supported by this audio device." msgstr "" -#: sys/oss4/oss4-source.c:512 +#: sys/oss4/oss4-source.c:510 msgid "Error recording from audio device." msgstr "" @@ -252,64 +252,85 @@ msgstr "" msgid "AUX 2 Out" msgstr "" -#: sys/v4l2/gstv4l2bufferpool.c:1169 +#: sys/v4l2/gstv4l2bufferpool.c:1401 #, c-format msgid "Error reading %d bytes from device '%s'." msgstr "" -#: sys/v4l2/gstv4l2object.c:1264 +#: sys/v4l2/gstv4l2object.c:1032 #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" msgstr "" -#: sys/v4l2/gstv4l2object.c:2309 +#: sys/v4l2/gstv4l2object.c:2210 #, c-format msgid "Could not map buffers from device '%s'" msgstr "" -#: sys/v4l2/gstv4l2object.c:2317 +#: sys/v4l2/gstv4l2object.c:2218 #, c-format msgid "The driver of device '%s' does not support the IO method %d" msgstr "" -#: sys/v4l2/gstv4l2object.c:2324 +#: sys/v4l2/gstv4l2object.c:2225 #, c-format msgid "The driver of device '%s' does not support any known IO method." msgstr "" -#: sys/v4l2/gstv4l2object.c:2512 +#: sys/v4l2/gstv4l2object.c:2559 #, c-format msgid "Device '%s' does not support video capture" msgstr "" -#: sys/v4l2/gstv4l2object.c:2521 +#: sys/v4l2/gstv4l2object.c:2568 #, c-format msgid "Device '%s' is busy" msgstr "" -#: sys/v4l2/gstv4l2object.c:2527 sys/v4l2/gstv4l2object.c:2538 +#: sys/v4l2/gstv4l2object.c:2574 sys/v4l2/gstv4l2object.c:2585 #, c-format msgid "Device '%s' cannot capture at %dx%d" msgstr "" -#: sys/v4l2/gstv4l2object.c:2547 +#: sys/v4l2/gstv4l2object.c:2594 #, c-format msgid "Device '%s' cannot capture in the specified format" msgstr "" -#: sys/v4l2/gstv4l2object.c:2560 +#: sys/v4l2/gstv4l2object.c:2605 +#, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "" + +#: sys/v4l2/gstv4l2object.c:2615 #, c-format msgid "Could not get parameters on device '%s'" msgstr "" -#: sys/v4l2/gstv4l2object.c:2568 +#: sys/v4l2/gstv4l2object.c:2623 msgid "Video device did not accept new frame rate setting." msgstr "" -#: sys/v4l2/gstv4l2object.c:2575 +#: sys/v4l2/gstv4l2object.c:2630 sys/v4l2/gstv4l2object.c:3029 msgid "Video device could not create buffer pool." msgstr "" +#: sys/v4l2/gstv4l2object.c:2725 +msgid "Video device did not provide output format." +msgstr "" + +#: sys/v4l2/gstv4l2object.c:2731 +msgid "Video device returned invalid dimensions." +msgstr "" + +#: sys/v4l2/gstv4l2object.c:2739 +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +#: sys/v4l2/gstv4l2object.c:2746 +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #: sys/v4l2/gstv4l2radio.c:138 #, c-format msgid "Failed to get settings of tuner %d on device '%s'." @@ -330,7 +351,7 @@ msgstr "" msgid "Failed to get radio input on device '%s'. " msgstr "" -#: sys/v4l2/gstv4l2radio.c:202 sys/v4l2/v4l2_calls.c:964 +#: sys/v4l2/gstv4l2radio.c:202 sys/v4l2/v4l2_calls.c:1089 #, c-format msgid "Failed to set input %d on device %s." msgstr "" @@ -340,100 +361,110 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" -#: sys/v4l2/gstv4l2videooverlay.c:103 sys/v4l2/v4l2_calls.c:567 -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - -#: sys/v4l2/v4l2_calls.c:96 +#: sys/v4l2/v4l2_calls.c:89 #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -#: sys/v4l2/v4l2_calls.c:137 +#: sys/v4l2/v4l2_calls.c:153 #, c-format msgid "Failed to query attributes of input %d in device %s" msgstr "" -#: sys/v4l2/v4l2_calls.c:168 +#: sys/v4l2/v4l2_calls.c:184 #, c-format msgid "Failed to get setting of tuner %d on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:216 +#: sys/v4l2/v4l2_calls.c:232 #, c-format msgid "Failed to query norm on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:416 +#: sys/v4l2/v4l2_calls.c:408 #, c-format msgid "Failed getting controls attributes on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:574 +#: sys/v4l2/v4l2_calls.c:613 +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + +#: sys/v4l2/v4l2_calls.c:620 #, c-format msgid "This isn't a device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:581 +#: sys/v4l2/v4l2_calls.c:627 #, c-format msgid "Could not open device '%s' for reading and writing." msgstr "" -#: sys/v4l2/v4l2_calls.c:588 +#: sys/v4l2/v4l2_calls.c:634 #, c-format msgid "Device '%s' is not a capture device." msgstr "" -#: sys/v4l2/v4l2_calls.c:596 +#: sys/v4l2/v4l2_calls.c:642 #, c-format msgid "Device '%s' is not a output device." msgstr "" -#: sys/v4l2/v4l2_calls.c:695 +#: sys/v4l2/v4l2_calls.c:650 +#, c-format +msgid "Device '%s' is not a M2M device." +msgstr "" + +#: sys/v4l2/v4l2_calls.c:712 +#, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "" + +#: sys/v4l2/v4l2_calls.c:799 #, c-format msgid "Failed to set norm for device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:733 +#: sys/v4l2/v4l2_calls.c:837 #, c-format msgid "Failed to get current tuner frequency for device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:775 +#: sys/v4l2/v4l2_calls.c:879 #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" -#: sys/v4l2/v4l2_calls.c:809 +#: sys/v4l2/v4l2_calls.c:913 #, c-format msgid "Failed to get signal strength for device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:845 +#: sys/v4l2/v4l2_calls.c:949 #, c-format msgid "Failed to get value for control %d on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:880 +#: sys/v4l2/v4l2_calls.c:984 #, c-format msgid "Failed to set value %d for control %d on device '%s'." msgstr "" -#: sys/v4l2/v4l2_calls.c:939 +#: sys/v4l2/v4l2_calls.c:1064 #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" -#: sys/v4l2/v4l2_calls.c:996 +#: sys/v4l2/v4l2_calls.c:1121 #, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -#: sys/v4l2/v4l2_calls.c:1021 +#: sys/v4l2/v4l2_calls.c:1146 #, c-format msgid "Failed to set output %d on device %s." msgstr "" diff --git a/po/hr.gmo b/po/hr.gmo index 199cabe431a2942ae24b007035db26610a43f62b..be5ac88c10a783a710ac7339b5f7977d43199004 100644 GIT binary patch delta 23 ecmX@>bk=D@ybzbEu7R<Fp@o%!!RAb%Cwu^2%?DBd delta 23 ecmX@>bk=D@ybza(uAzm3p^=q|`Q}WaCwu^37YAGb diff --git a/po/hr.po b/po/hr.po index 9e484796c..40611cdf1 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -241,6 +241,10 @@ msgstr "UreÄ‘aj „%s†nije ureÄ‘aj za snimanje." msgid "Device '%s' cannot capture in the specified format" msgstr "UreÄ‘aj „%s†nije ureÄ‘aj za snimanje." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "UreÄ‘aj „%s†nije izlazni ureÄ‘aj." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nisam uspio dobiti parametre ureÄ‘aja „%sâ€" @@ -252,6 +256,20 @@ msgstr "Ulazni video ureÄ‘aj nije prihvatio nove postavke broja okvira." msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Ulazni video ureÄ‘aj nije prihvatio nove postavke broja okvira." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "UpravljaÄki program ureÄ‘aja „%s†ne podržava poznate metode snimanja." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Nisam uspio dobiti postavke biraÄa %d ureÄ‘aja „%sâ€." @@ -276,10 +294,6 @@ msgstr "Nisam uspio postaviti ulaz %d na ureÄ‘aj %s." msgid "Failed to change mute state for device '%s'." msgstr "Nisam uspio dobiti snagu signala za ureÄ‘aj „%sâ€." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ne mogu identificirati ureÄ‘aj „%sâ€." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -304,6 +318,10 @@ msgstr "Nisam uspio ispitati norm na ureÄ‘aju „%sâ€." msgid "Failed getting controls attributes on device '%s'." msgstr "Nisam uspio dobiti svojstva upravljanja na ureÄ‘aju „%sâ€." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ne mogu identificirati ureÄ‘aj „%sâ€." + #, c-format msgid "This isn't a device '%s'." msgstr "Ovo nije ureÄ‘aj „%sâ€." @@ -320,6 +338,14 @@ msgstr "UreÄ‘aj „%s†nije ureÄ‘aj za snimanje." msgid "Device '%s' is not a output device." msgstr "UreÄ‘aj „%s†nije izlazni ureÄ‘aj." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "UreÄ‘aj „%s†nije izlazni ureÄ‘aj." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Ne mogu otvoriti ureÄ‘aj „%s†za Äitanje i pisanje." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Nisam uspio postaviti norm za ureÄ‘aj „%sâ€." diff --git a/po/hu.gmo b/po/hu.gmo index 8efb62c024c4addad6212b9ac4526925e3bea9ff..eb10c35988f6c34c581fbaeffa4c15b16591aec2 100644 GIT binary patch delta 2475 zcmZA2Z%ma{9Ki7-f)XgG{52Gg8i5LQ?*&W|6crUklz>o++#a}3c;(*v*nJ)_DB=ZM zHfwA1j@oiMX{)W7THckdSFT%aEnaDE+R9DWw5=Dq)><vBzQ5-_o8=kj`JD6I=bn4c z@BGfg#qL-4j^9|6KB*|Z)FsrJG^NJzhYT*1Yjc&Fhu3i@-o{Myb9n?CQ2H%iza0zc z@5KceK^gZIEX5PJ0YAq&`Kdo?<Zz>g(MqrhSK@xGzzKXD&v^GQV-Niqd;z<%_%Zwn zSK-oZrS@Sf*5VY(4`0O<_!|bWm{qNkrMA(?<Hj&PhR0AIJdZM=E4Ui(qJbszm8!%s zT#oOf4EPOJ;S9?6R<f!V+=|=r7`EbNT!SUKOh7{2NyCq0C<C3x8ocH87ZOKVNejvZ zU&LlS>Gf}*OnCM}rOL4a>#-fvaRLdJdJS2;I*yC+6pqVGKcle-zeCx(JIFSx`^fI7 z3_c{fDhK8MVw8cFp{%4D-@+iq@GpD<qlA@Us8i^}4^hVZ5oJQR^N4>LjeFeCxFA0@ z0Y9>MwH-I&UR;lFqYQKfB{$NUZ39-J?EL^%<8iNl31y|fc>RpRR3v>khx@@o;_oNp z2e}~+o-AfN@FL0#v$!eddzN}uB41GfEW#bQ5)G6scpZ1)$0!T<8<~UJ@Mvn{-6#ur zd7MTajk6fQTPUF`U|*iWtr)@6cmQ)aOR~ZU_TmZLf`6bypm8ZD2nTQzzK3h@4)Ui; zISP`bjVMVy9-^UXOyWBH6vyx$%FLr>se#Yo4*J(|C$7+`V;M!6$RvjFSI^#Msblyx z%0$XIDo>%|nZV6*{xeA3Za!#58TceN;?HPcIVms4=qO4KOnd!I;`}WAc9dlN06C%R z6O=9c0%dEaJ%2)it7ecnsUlt~^W^-ma~n!+L&?rAlq~N>+2bI}1YW`ucnK}}oD7t$ znnn^{&7f>eZe?nmCeLkH%l$nlTQq@^E9X%1PhF!S5x9#Iffha$-$eQ1_qYdh_%@HI z1IV8`%0=E27f|;0Cdyv_gWGTo8=Q$_I142jbEr}XuKTR~z8fyyA#TRX53$AWI~r88 zT)dKxl9ZCkQb=kyX{F6xx<x`PKT7(zi;%r<rAm=#?Vx5zhr%HncS9lJ&UJ4+xJZ_g z)M_nN_EpM0Y8O@VL(29P?vaxfXL)^%Td5oxcdsQ%_0&A7B>5JqluFtE4jK(^H}!gz zW5HIsWj<HgdnuA^4;NmLDvc`PC+hB*2Gu4PisZv?s{DhJl1`OVAf-nx5`XeZ&6W;j zV+!{S*U^@jk>rNtK|9q?T~B?QDoOVwbvZSgD#`lal0#=dRgR~sD7Pzg--s5~CLJ}M zBUWrs$3L3;ZIcm=T8=&(Hb%7V#7rZi`^<i0$ToGz(IH!#(f-)TVaE*WBO&LY?%=^r z(+G~}md^H?_(<m3c|o&Z@3O4JeMbLa;#}sL%z~Y?v~9+Q&6t+apSOmh!Nk6WZE3k( zL(!h@t_RP*o7b2&J5b|~-z;eJ*H`;$wSR4c&$rqa@cFVj_EdM8!y!9lMXOs3$8696 zpTCZWsslcGu0H-;VR6}JBb=NXwRQ5Hm~I@3^%-Gf)NUS#7@=@YzZHp37XCgfka(jg zHfz^zGor)hLDS)SC^_ZWqee8O4JH^KF(Q^zr6Xp{`Trud6LJPEJ9*YgPT6|ci0YVe z$T4c-_lq|bv{^xOP%}kF>bDKYVk&l`Y4MlY%iJIghU`%*Jdm6UClkayq8*uR_@Ln= c6Bo))rxkkfcxZ%p$C9FWc4b-OYDHh#zxvfqKL7v# delta 2087 zcmZA1Z)n>^9LMo%mb$cSn|7^DwmSQ(tF@a=)}-muKU<rvU0a)}ovWt0Aw=n>Zf#ki zBI3vc@!zBjjQhuw4F<yp;tGKl1evh;L`6^##~6E{Fr`n5LPg4)zCXX;6~v?0*WKlp z%iZ_B_j^0DFq*r)-hawa#;6ZaZ~2VL;YY>%qnur9Oc|cTVZ4k1{2fbh#rFLSs$Y)x zV+boTf||DnAH)Ngz}K-(KXrx176!h-M{pUNa1*m>ydR&zNj!#MVFr_>#%#rtsKtMd zZCJg|`=LSHO#cwZ@dWDmFR&Va!$xiOE)6}{z&2Tt*@KT_7PB~u&A5aQVYu9zup3+G zPolne9{X_t2k|ZrVSj}&+i@1Pfa@5;C5$W74MAg~IEq^7o2Z@4V<RqN3WLN`{SnlH zXYgS>hwXS3{kV(-$*drIGyW=LHee-cp<8i14q%SsGtbf>>L!as(Y%5hpFvG<9JPb@ z@HBpj)0knFZTK~^S+jzz7$ClyuM@S9-B^!%(ZQpr9GR^q{=GCVG0=^_peCrV@p54V zyXe1$3S9vsc-!{Nm_<8FqCVe;ZTJS>hjSPwp%+lkEryJF3jJYkVVN-T*9x<C;D~hw zYZ=cW-!Z3g3x0+Q`3=;<@1c^mhuO98Lzuub7{_l>5&8$8!)+UlnZOhHJpPrVp&ey7 zn1lEh_TkT{9W`-xcH%zVg(p!*@jY(B0RNPPO{k>Zj}GRr6EEU%yop-y7<W+fp2f#7 zca6p{jq-Z$+Ku5seSk0HE$e{eU9&mVLP{D~6sD~o<8Jy(IErzuispR>ci<10#UPoh zTXGCJ@|>Bs1ApKFK1h<{O1eC9<IDxr5q*j}ih1jINbt-Z)N@6gi>yE;UmYrm8&OBu zg8kTs=kZ;f(*1AbZKE^#5J_Nj9d#r>p(ZNkfMo?Lxk9KArcpWZDr(0UQ9E9?rkcIy z-^V8zzl!{sAYan=J21-cn-^(tJmv$`+0Nkr{)z#N@^lfB#BNrDA<Ax|sa-<lUE-eS zUesI)xynut_dkJh-=thJw<wx9WvxoDhasWeA0@xsw^$GEv7ad_T3E5|E39nR4Rg62 zTSYt6@n}Pes*0kdNOY+~;W)H^?`_tHrEbrAe=C`|HSUX}1r>VUJ0?j@QB^o0w{%#^ zG51I~TDK@4cG-5u`d@<jeIFy-Hur4w8de$daIaLF_I}&<<Kwoi7s+Z_v)Ztd+3x*+ z0!OGZ>M&J#rfaF2Q%P;tnK)Esd=2&g<!J`S@;|P<lV1sJFZ7mt5-9v#HS8;7YPx-E zTBB|GQ?=>RL?qVX#Nu6vWPY)>t}Gsj#UgF3POQDFHD479JA>I5rly_r_|fr+@kwXL v5wCGLb$D`WVm$iNOnxZzXHlZi8=fx8-`kKXjBdQPuF%<Z!B<#nKI8ir1qsWb diff --git a/po/hu.po b/po/hu.po index 47c4abaae..1bd61557f 100644 --- a/po/hu.po +++ b/po/hu.po @@ -4,25 +4,26 @@ # # Laszlo Dvornik <dvornik@invitel.hu>, 2004. # Gabor Kelemen <kelemeng@gnome.hu>, 2007, 2008, 2009, 2010, 2012. +# Balázs Úr <urbalazs@gmail.com>, 2014. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 1.0.3\n" +"Project-Id-Version: gst-plugins-good 1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" -"PO-Revision-Date: 2012-11-30 15:05+0100\n" -"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" +"PO-Revision-Date: 2014-03-20 18:55+0100\n" +"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Rosetta-Export-Date: 2007-07-27 19:18:15+0000\n" -"X-Generator: Lokalize 1.4\n" +"X-Generator: Lokalize 1.2\n" "X-Rosetta-Export-Date: 2007-07-27 19:18:15+0000\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Jack server not found" -msgstr "" +msgstr "Jack kiszolgáló nem található" msgid "Failed to decode JPEG image" msgstr "A JPEG kép visszafejtése meghiúsult" @@ -72,6 +73,7 @@ msgstr "A fájl nem érvényes és nem játszható le." msgid "Cannot play stream because it is encrypted with PlayReady DRM." msgstr "" +"Nem lehet lejátszani a folyamot, mert PlayReady DRM titkosÃtás van rajta." msgid "This file is corrupt and cannot be played." msgstr "A fájl sérült és nem játszható le." @@ -175,13 +177,11 @@ msgstr "1. AUX be" msgid "AUX 2 In" msgstr "2. AUX be" -#, fuzzy msgid "Codec Loopback" -msgstr "Visszacsatolás" +msgstr "Kodek visszacsatolás" -#, fuzzy msgid "SunVTS Loopback" -msgstr "Visszacsatolás" +msgstr "SunVTS visszacsatolás" msgid "Volume" msgstr "HangerÅ‘" @@ -249,6 +249,10 @@ msgstr "A(z) „%s†eszköz nem képes felvenni %dx%d felbontásban" msgid "Device '%s' cannot capture in the specified format" msgstr "A(z) „%s†eszköz nem képes felvenni a megadott formátumban" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "A(z) „%s†eszköz nem támogatja a videofelvételt" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nem kérhetÅ‘k le a(z) „%s†eszköz paraméterei" @@ -259,6 +263,20 @@ msgstr "A videoeszköz nem fogadta el az új képkockasebesség-beállÃtást." msgid "Video device could not create buffer pool." msgstr "A videoeszköz nem tudott létrehozni puffertárolót." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "A videoeszköz nem fogadta el az új képkockasebesség-beállÃtást." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "A(z) „%s†eszköz illesztÅ‘programja nem támogatja a(z) %d. IO módot" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "A(z) %d. tuner beállÃtásának lekérése a(z) „%s†eszközön meghiúsult." @@ -283,10 +301,6 @@ msgstr "A(z) %d. bemenet beállÃtása meghiúsult a(z) „%s†eszközön." msgid "Failed to change mute state for device '%s'." msgstr "A némÃtási állapot módosÃtása meghiúsult a(z) „%s†eszközön." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nem azonosÃtható a(z) „%s†eszköz." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -311,6 +325,10 @@ msgstr "A norma lekérdezése meghiúsult a(z) „%s†eszköztÅ‘l." msgid "Failed getting controls attributes on device '%s'." msgstr "A vezérlÅ‘attribútumok lekérése meghiúsult a(z) „%s†eszközön." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nem azonosÃtható a(z) „%s†eszköz." + #, c-format msgid "This isn't a device '%s'." msgstr "Ez nem egy eszköz: „%sâ€." @@ -327,6 +345,14 @@ msgstr "A(z) „%s†eszköz nem rögzÃtÅ‘eszköz." msgid "Device '%s' is not a output device." msgstr "A(z) „%s†eszköz nem kimeneti eszköz." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "A(z) „%s†eszköz nem kimeneti eszköz." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Nem lehet olvasásra és Ãrásra megnyitni a(z) „%s†eszközt." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "A norma beállÃtása meghiúsult a(z) „%s†eszközön." diff --git a/po/id.gmo b/po/id.gmo index a079630767f13c202a7b3e99f92074e1b60fc9a8..12c8b919c2d51e55523c9bca46de3cafa7da2bd4 100644 GIT binary patch delta 23 fcmaFl|HyyC12HaBT?1nULklYdgUzqReh2^na2p7= delta 23 fcmaFl|HyyC12HZWT|)~6LnA8_^Ubfseh2^naAgR< diff --git a/po/id.po b/po/id.po index e3f26cade..e4dbcabf0 100644 --- a/po/id.po +++ b/po/id.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2013-10-15 16:26+0700\n" "Last-Translator: Andika Triwidada <andika@gmail.com>\n" "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" @@ -244,6 +244,10 @@ msgstr "Divais '%s' tak dapat menangkap di %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Divais '%s' tak dapat menangkap dalam format yang ditentukan" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Divais '%s' tak mendukung penangkapan video" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Tak bisa mendapatkan parameter di divais '%s'" @@ -254,6 +258,20 @@ msgstr "Divais video tak menerima pengaturan laju bingkai baru." msgid "Video device could not create buffer pool." msgstr "Divais video tak bisa membuat pul singgahan." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Divais video tak menerima pengaturan laju bingkai baru." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Driver dari divais '%s' tak mendukung metode IO %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Gagal mendapatkan pengaturan tuner %d di divais '%s'." @@ -278,10 +296,6 @@ msgstr "Gagal mengatur masukan %d di divais %s." msgid "Failed to change mute state for device '%s'." msgstr "Gagal mengubah keadaan bisu untuk divais '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Tak dapat mengidentifikasi divais '%s'." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -306,6 +320,10 @@ msgstr "Gagal kueri standar di divais '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Gagal mendapatkan kendali atribut di divais '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Tak dapat mengidentifikasi divais '%s'." + #, c-format msgid "This isn't a device '%s'." msgstr "Ini bukan divais '%s'." @@ -322,6 +340,14 @@ msgstr "Divais '%s' bukan divais penangkap." msgid "Device '%s' is not a output device." msgstr "Divais '%s' bukan divais keluaran." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Divais '%s' bukan divais keluaran." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Tak dapat membuka divais '%s' untuk dibaca dan ditulis." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Gagal mengatur standar untuk divais '%s'." diff --git a/po/it.gmo b/po/it.gmo index 1dd7c07ba71bf05f1caa08f4339f4a625f927a56..5cb829e6e0040d315e2bd7b7a97ac2cdef9a87a7 100644 GIT binary patch delta 23 fcmccZblYjeTtO~VT?1nULklYdgU!nYx9|f1W)=sz delta 23 fcmccZblYjeTtO}qT|)~6LnA8_^Ucczx9|f1W?%=y diff --git a/po/it.po b/po/it.po index 8c1afa9f0..31719c831 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -244,6 +244,10 @@ msgstr "Il device «%s» non è un dispositivo di cattura." msgid "Device '%s' cannot capture in the specified format" msgstr "Il device «%s» non è un dispositivo di cattura." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Il device «%s» non è un dispositivo di uscita." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Impossibile ottenere i parametri sul device «%s»" @@ -256,6 +260,21 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"Il device di ingresso video non accetta la nuova impostazione sul frame rate." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Il driver del device «%s» non supporta alcun metodo di cattura noto." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -282,10 +301,6 @@ msgstr "Impostazione dell'ingresso %d sul device «%s» non riuscita." msgid "Failed to change mute state for device '%s'." msgstr "Recupero dell'intensità del segnale per il device «%s» non riuscito." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Impossibile identificare il device «%s»." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -319,6 +334,10 @@ msgstr "Interrogazione di norm sul device «%s» non riuscita." msgid "Failed getting controls attributes on device '%s'." msgstr "Recupero degli attributi dei controlli sul device «%s» non riuscito." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Impossibile identificare il device «%s»." + #, c-format msgid "This isn't a device '%s'." msgstr "Questo non è un dispositivo «%s»." @@ -335,6 +354,14 @@ msgstr "Il device «%s» non è un dispositivo di cattura." msgid "Device '%s' is not a output device." msgstr "Il device «%s» non è un dispositivo di uscita." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Il device «%s» non è un dispositivo di uscita." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Impossibile aprire il device «%s» in lettura e scrittura." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Impostazione di norm per il device «%s» non riuscita." diff --git a/po/ja.gmo b/po/ja.gmo index 2b9b7b8243f31e892696944022ad1a7683ffd375..138c6df778b654df1aa70955e1875132d59aeac0 100644 GIT binary patch delta 23 ecmZ1&zc7A-ju@Azu7R<Fp@o%!!DchDY)JrD1_o#V delta 23 ecmZ1&zc7A-ju@ATuAzm3p^=q|`DQb*Y)JrDPzG`U diff --git a/po/ja.po b/po/ja.po index 6a7ed202f..a3b044409 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -254,6 +254,10 @@ msgstr "デãƒã‚¤ã‚¹ '%s' 㯠%dx%d ã§ã‚ャプãƒãƒ£ã§ãã¾ã›ã‚“" msgid "Device '%s' cannot capture in the specified format" msgstr "デãƒã‚¤ã‚¹ '%s' ã¯æŒ‡å®šã•ã‚ŒãŸãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§ã‚ャプãƒãƒ£ã§ãã¾ã›ã‚“" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "デãƒã‚¤ã‚¹ '%s' ã¯ãƒ“デオã‚ャプãƒãƒ£ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" + # SUN REVIEWED #, c-format msgid "Could not get parameters on device '%s'" @@ -265,6 +269,20 @@ msgstr "ビデオデãƒã‚¤ã‚¹ãŒæ–°ã—ã„フレームレートè¨å®šã‚’å—ã‘付 msgid "Video device could not create buffer pool." msgstr "ビデオデãƒã‚¤ã‚¹ã¯ãƒãƒƒãƒ•ã‚¡ãƒ—ールを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "ビデオデãƒã‚¤ã‚¹ãŒæ–°ã—ã„フレームレートè¨å®šã‚’å—ã‘付ã‘ã¾ã›ã‚“。" + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "デãƒã‚¤ã‚¹ '%s' ã®ãƒ‰ãƒ©ã‚¤ãƒã¯IOメソッド%dをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "デãƒã‚¤ã‚¹ '%2$s' 上ã®ãƒãƒ¥ãƒ¼ãƒŠãƒ¼ %1$d ã®è¨å®šã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" @@ -289,10 +307,6 @@ msgstr "デãƒã‚¤ã‚¹ '%2$s' 上ã®å…¥åŠ›%1$d ã®è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸã€‚" msgid "Failed to change mute state for device '%s'." msgstr "デãƒã‚¤ã‚¹ '%s' ã®ãƒŸãƒ¥ãƒ¼ãƒˆçŠ¶æ…‹ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "デãƒã‚¤ã‚¹'%s'を特定ã§ãã¾ã›ã‚“。" - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -317,6 +331,10 @@ msgstr "デãƒã‚¤ã‚¹ '%s' 上ã®ãƒŽãƒ«ãƒ ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚" msgid "Failed getting controls attributes on device '%s'." msgstr "デãƒã‚¤ã‚¹ '%s' ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«å±žæ€§ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "デãƒã‚¤ã‚¹'%s'を特定ã§ãã¾ã›ã‚“。" + #, c-format msgid "This isn't a device '%s'." msgstr "ã“ã‚Œã¯ãƒ‡ãƒã‚¤ã‚¹ '%s' ã§ã¯ã‚ã‚Šã¾ã›ã‚“" @@ -334,6 +352,15 @@ msgstr "デãƒã‚¤ã‚¹ '%s' ã¯ã‚ャプãƒãƒ£ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" msgid "Device '%s' is not a output device." msgstr "デãƒã‚¤ã‚¹ '%s' ã¯å‡ºåŠ›ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "デãƒã‚¤ã‚¹ '%s' ã¯å‡ºåŠ›ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +# SUN REVIEWED +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "デãƒã‚¤ã‚¹ '%s' ã‚’èªã¿å–り用ã¨æ›¸ãè¾¼ã¿ç”¨ã«é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“" + #, c-format msgid "Failed to set norm for device '%s'." msgstr "デãƒã‚¤ã‚¹ '%s' 上ã®ãƒŽãƒ«ãƒ ã®è¨å®šã«å¤±æ•—ã—ã¾ã—ãŸã€‚" diff --git a/po/lt.gmo b/po/lt.gmo index 22365f9379cda59b85538999dce6fbf77d603d33..1d2856eead4089b94ba98f0d90aa13301b472660 100644 GIT binary patch delta 23 ecmZ2twZv+Jm;jflu7R<Fp@o%!!Da;k7G3~OLIrsM delta 23 ecmZ2twZv+Jm;jfFuAzm3p^=q|`DO(H7G3~Oj0J-L diff --git a/po/lt.po b/po/lt.po index 02e115f03..ddbfee418 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -243,6 +243,10 @@ msgstr "Ä®renginys „%s“ nÄ—ra įraÅ¡ymo įrenginys." msgid "Device '%s' cannot capture in the specified format" msgstr "Ä®renginys „%s“ nÄ—ra įraÅ¡ymo įrenginys." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Ä®renginys „%s“ nÄ—ra iÅ¡vesties įrenginys." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nepavyko įrenginio „%s“ parametrų" @@ -254,6 +258,20 @@ msgstr "Vaizdo įvesties įrenginys nepriÄ—mÄ— naujų kadrų dažnio nustatymų. msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Vaizdo įvesties įrenginys nepriÄ—mÄ— naujų kadrų dažnio nustatymų." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Ä®renginio „%s“ tvarkyklÄ— nepalaiko jokių žinomų įraÅ¡ymo bÅ«dų." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Nepavyko gauti derintuvo %d įrenginyje „%s“ parametrų." @@ -278,10 +296,6 @@ msgstr "Nepavyko nustatyti įvesties %d įrenginyje %s." msgid "Failed to change mute state for device '%s'." msgstr "Nepavyko gauti įrenginio „%s“ signalo stiprumo." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nepavyko nustatyti įrenginio „%s“." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -306,6 +320,10 @@ msgstr "Nepavyko užklausti normalÄ—s įrenginyje „%s“." msgid "Failed getting controls attributes on device '%s'." msgstr "Nepavyko gauti valdymo atributų įrenginyje „%s“." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nepavyko nustatyti įrenginio „%s“." + #, c-format msgid "This isn't a device '%s'." msgstr "Tai nÄ—ra įrenginys „%s“." @@ -322,6 +340,14 @@ msgstr "Ä®renginys „%s“ nÄ—ra įraÅ¡ymo įrenginys." msgid "Device '%s' is not a output device." msgstr "Ä®renginys „%s“ nÄ—ra iÅ¡vesties įrenginys." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Ä®renginys „%s“ nÄ—ra iÅ¡vesties įrenginys." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Nepavyko atverti įrenginio „%s“ skaitymui ir raÅ¡ymui." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Nepavyko nustatyti normalÄ—s įrenginiui „%s“." diff --git a/po/lv.gmo b/po/lv.gmo index 91ed8ee44cc2f1dd16b54bba2f3e1979e5cfd20e..f0df0faa68eb08ecf45120da71e5ee3a3a0c67fd 100644 GIT binary patch literal 10633 zcmcJVTWlQHdB-P-?WSttICj$}aZ?{TrR9ruMN*QhQkE@QS6ZUPlC*3memT2yxIEg~ znax~QCV?at0vL(=7PU=^Tu}9)d0-2-2+$Oc9}0B&khdb~6?OCA2RA?;S`_Ies0#G= zojJ2Rq$o;i+69LHxtz;)zVH8C&XIn2|6RWo@Ozo-m$<IKHwZotzI``;`2FqA1i=Tu zzXP8G-v!?fPVwhw!5L7VPx$9K@FP6G0Nw}oKpFRQ;4gz;1D^)p1P_2e0q+Hy4E7*+ z1bhs93ETsI0el2p_wT<CUgY^Y_!)3<7juCd;N##Yel7@J1kZr`!E2z*`&Zy6!5@Ru z;73`Mv_A_z01m)k0bd8D-5a3D^8@e+@Si~qKKQ{Pcoh6B_%QhUpp5rDa4&crlzxw~ zs1x8x@HF^3cn17F_$2t?hsyaEz$u<T3(7cefKBin|NLQ;DC;-@ihQqtN5OCS=O2P1 z@B2O+1QXyM@E|w`-UWUEL{-5TL6#nT8T=UdO;F_gQ}BN9FF~=}KZ2Mz_-_!?1b6ch z)du&1^8RC>jI$e*bu_@=2176f{|np)#wZn41m6TF!9M_Hyng^io_E2Az<&W1c;C;L z^G|^+Jva?M1HJ$r2EPKzI6nY|7k44-47e8*J9fYZ_+|h6XP~U}pZxRPzfkIN61<1^ zA^4N`1VI;+cIKm{y*>}h`i36=!sFW>e*}Jl?>`2A5xk$y3Va+C`<w-Z-+k~D_y#Ea z|94P<4}84j^8rxo{Ap15^*She`x8+3{4N-SPh%tl{vjyqe}KW{{R!|G_-#=1_-~-t z|04)@06YxJxP4IM{W^a{KW~E4?nmHm@Lrr_3Y-MR?_1!ng71LR?&A#pYv57vD7XeH z@Vnpz@NMvAa4#<fzXYBK-vtkX2bts~*!B3w;0(|I0X_vz<3uuF0*XGq1ulVq?Vq23 z+#>g<K>7YfQ2gpUpz!Fr$9quzy*%FsD)1qXM?p*#Xb=+wYv2dL-}Lx<pp5fJpz!le z5K0Dr4vL(A1AY~}A7y+FTnEL^A15e5t>6Vv<m-XLo3DBN7AQRZHmJbA2U${Z9mG_@ zLwpoHJq3#0e*=6H{4OYV{#Wn}_{m4h`65u-{SGL4_#OyFg8%f-4?ITf<oQ|f{ot$M zdqCmnJzVlbRc;Qsmo?wVb&gByh#4Jkf#9h8@ju)x_!O6{ReqwwX?Mq59z_nB6Uw+8 zaSS}eB|njQmg{bL;3u{~G#5)gBrj?|(W~g@5Z4F%`xn7QF5!y&PM6@gd5U|9P4ZJ* z!ZV3!ySYS1!auR4@b@^E{7_dg&n32%ALey_g1X&LxN*YYf7)Xm2#djcxo{sBcf?lm zJ6nR|g4k7jSbleL{kpp=^OoE~f#7}q-7_A=cH*}ST*CkTTytFFn}@lc=OVN^UlAS& z*9cvke)sb964%S}cF#n%N3~X!U~o*uCcm7dU1icVNmbHr7pV#ND(>?YqcW2YOsd*Z zl9|xGX(w@P+PO_)RmA3%KKCY!R-3`G=U-G)YBu&a7mD27O;@j`m3vi$Hc|aZueNmC z&)N*0Eo_uGY^)ahMt4mb9M^H2<jRI7&h7H53eCW_jgz@qeN6f$)wxlZZN8EexzZwL zyIXyhIaHRXM)y?9v~`ggWf?M4CT^#zeZ+QM)jSOsj1E`TiG?{vU(s>L#vPTKEQt!Y zQk|=`K$0FqWJ)AkHMz=)em_YWhfYao+Ui`A^krE*7E$Qhd3C8g@w%*iGg+=%k<C_A zO{t@XGH5kQhuQi%)jgA&G*jrlrjS~@p6;twvAisemeZtnlV)fxR@zy@kF$)uE2GpW zzC}xQqO=Q2X&KQON)Clw8Xc`b9Nq6nwyi~pcQWkK3L`?iOlX!YJK|jsp%;@P4%Omn zmYZH>ijf&);#_)~$n+r2oy_=BQm8PA_vC6t4~&9ZJ)61dF^JQGxI?L}TaTNXc9MoD z<W8EZpGt-rA(U7X-irWO0-C2b-y)17Hw*O+9z(5W;H~K*M7#9Bw(jRd1ce7ogs)75 zJGH@oUCbaR*kub5kfW#bO<lsoln&&rrUv+UqWm<QnhL3kY<259@jhJL%T-yVE;=2{ zMnr`^fnmosIZ-Ta1}9zk!_P!fGP-Wr2(2NlXtNx`$DiA8JELYL;s~v@8XSnGRhU|M z-Bia{4B^i%`;g?mPE}vMG?fV_#HDhPWQ$8zVvp!nwy1k{GdQJfge^u(OX56Dq6~}X zscjW9?&f$h>H_oI5)6&%(TrFs(e?&y`0;5>2qX-u=jKnIR<@@*rka~?CN6qqxb7$T zRVy;y@+C*Ix`t7ItXxu(&|Vuv!XWu6#kZA>#k5-_S98StRu$*9O7Q`aOOnS;#_=5a z=?8K|!T{zo1qo(#Cq>CRO3}7o#THRB&q@h|!d5(S>%zD1fn{&Mi|xcZatSl;<SVxl zf1snHBm=oi2(`0N=p-d8)F=n@odsD7al`x9L{?i!*(WB3?66vNGor*TEFd{}A}Z9G zwK~IPfRQ9)7EEMY8#zICV80CH$+XEnH;z>5jz%)t4(dCtZ5*5-j`vrR*aWjN$zN=A z{KWV^)VWs6QF6H~;F?>$`1;2cck+#?ZHOHx4Klk%$bU|%uqp`<S(hcj2Ip*S6s4TQ z3siD*ww)%W7;{N%^CS(<C+hiybMz(8a?et%AHGzli$Z(Vv5T`+6?WN1k$5M$F)jLK zw{i0JqF&Y#aS@{F@?p<*R&t6|L-m;`9mz_22?;4rb(~50rTS@-Cv6F7$j~DIxYFaY zrQTyQm&OU{l9^IB*y%-A6yiq<ON;Z$ypo&PW%_<pQ24pk+?iN5CN{D*t!^>4vpBV8 zq<SW_+A9XCNe$`>VxPOl^H(*^=Agdd3JfWSQX*UVB#G-byD!e4m^~#1E^oxbi$*H{ zdL@cwi@sWR>7&Vaw-dM_e`m&YU2WkTWD=ZPI#j|;x)t%orNwb&yd+hW%YhP`YH5|~ zYfELI<5ks-lgqK1y@0+b@+q|Mpubpr)RXY!`j+K}t5nd{GN}=UIEq1jw`CA^vZ;|R zjVnW48}U+&nJFw>E9!Phh-By<*4w6Co+NOQ6;zGXg*aMueZ@}8HqE4>s&z#i?-;IT z^Ys@D7O7;9F`k8{Hf|@qe#Cy@_F8+#rx?7+z*Ut}Gf6YJ=!!G{sy*6{v{^S3mpcvB zPm*X$(~uzJO0ag@^u>KIlNc#6$$C;ql=+N4?5}zzm`{^SXuL5SHZGPm|BUKnd872l ztkFr5P)#+bn^U_MjJSMbF6-E^@odq_8cWHHTFLYN%)WiCqO(Sb(albrP|hZ4XWy>* z3rmgTA}%|L#tCMhQPY!C2O5(H8<YFh)S;Ql$tNbKCnssxSfEajK(MLZfyVTtntF0( z|Dh))_tWm2MzSRdJ`rIwoly&RMW<n==2J>uD#lDbmG-Oqqn#f9)5KO!(=+ZAR7H&? zSTm!}>3m=*be?jNjKO5)oKKBtaFktPo;5S)-eif6X|hir4>6;n!LGU4xszjsO*JQX z9fzg3Ut?*t&pLA=+djx+<HJ(NrKtVL^Gl~1hsNz>8Eh6CCt;K97G~6;md$s~M@6cm z#wk*7Hlt$fz+-k~|6#Z&w?`h0C#EKk9GOy&Jfh@wa`%y`DfNt+R5Vw+k8tx0hXLsN zvBSGwY@9Y!Ev2^3C0$a`n!%n2cLndf`t^zIomao1>{{POp;pxkGD>c{TIIv_ZlqOr z_}0dHsQ0RYwmw^-=h$?#4TtNwRobo%hF4P}svcMqCzpy|Q5{KGV=ifbD#6VDep-#+ zb6>u9TVkDOUA^&IvT;qvBqKjJ+0(Q()|rJskSUrB-{MTbX2E$g(Cl>czFtEXhE0d- zZ97^D`NTCC7~5qpqSMxJy~VgKv!?n*)MYEX@tPiuQqIlc0<<W4cCWgWpoJ^SrfTDw zT~1|w#e9-6$RyRN#q8R~wc&ScnrHpt)k_Qy@8aRQTZ7jwOz1LDUvFHKTRHi$ri<V$ zjEkZrT%V<YN9{WAz~D8*^18Cxw(UlKp)z`<Ww$*-ma=}Zehrwy*pP5qvxP|PTUGjq zlSpTxFn_R-7B0G$>LV45so>PdsMh3+O4Knsw{;@oT@ZqOm$PYQlufp^UX<H!uV%e* zM@qD7M0qNcw#6)wlQ5>NsyJ~QGN_H;9j>cmrMSZ@nOYR~VZlXW!0>91J9iR-+GFCF zGnR%6?5WCQ4v2my(>+)8P_!N}THmr$H*lmU^Xh!~mM-AVUIjmRbix-Ep>M4$l&qn% zXI-V;YM?Ea*xFcaD;L=ojt<`{1~5YChVK-&FJEQ$ic2hv5u8(47fWs;a7vK(d`0U? zri-o%D5d$$h@0q8d_TuPFikdQazwIYE4C5CD-yKyC7hAij_&dA?K+K&T^21ei-=y_ z*p}cx1l)Md^m2XUS26ZxbyGh$BE!@hg_YK810ACAom=@(HN0|(8t7~lqBGcQdN?Z9 z^0A1b$&WO4>t?W^L!sR$w%0mJ1g(XD@lZ3PTS%Pa8nU**fmu0N(Q>k4v!<FKUP)Wx z_w2|dVMsePL^C;IshZs|zY9pn&Bm;yZGMw*R9h))628-g1=iz?K_BOhU88W46<X8T zAkKBmjWX-fa`M6}rto^%oGwN^%ODQ5`rW9=2<TTFcS%1`W{`9vdy4^d-c3SMMtLa1 z{(E>eD(bQoYZBol`j0i65OG}L=h;~h5g>OrL7Rl}+!6RnKJtS4c%=~~sBc_LQ30`4 zj1QfxXz4~8s98@FF=(0R{Lx6s&|42KTrK{e2H%t~<N(fe2b}KQWG&mtS}n$Dpjg{R z1Kaf)yOtI{;z}I84cDct**;5dB3xyJ|D#bj85&-p3d?faPmy4IU2nGx7VQc+2qno_ zf_J$b=ioOXJsSsCDsA!-Mlx3V)=9*1QO(VW(@;6&G=N4aV(#o)l}@XQtsZYSvA3?p zF##}Tb(mC>p+2ayI1<;5E{8$eHorrOh4W4ww>9`C<ySVjL7P>Q<TSz>U391uf@1|n zmuiGO(WSzq_@f+@1E}gz_W1?-f{pb|N|jo*?Azb0!Fdykhj%0#COu8g>A?}v4<Q}f zlY%o<JD#G_Ui6hwS-Fp%T<tz*yJ@nV#981EsIowgr^?({dJj7)H@M`4cr?2UP7;)* zP#m3CQG0X7WV_Vq35i;2<MY(Zt~M6Yq(&aq&AwPS%~~*{aF;@hzP_%KR7B+Lj!&+1 zd34oH2;(A?Mjd?JSSP7$JxS_oc5-Y0@I=PN7yE1vLhAFT`d<rH9$O8s-tJtA{YLHN z3KdbFHUn3`Zc2akLbV=2sZ?h-)re?)kmT7dhQN=<btPkzhgO~h?j)<+zSSM8+Jg`d zq*ShLMd<I2vfKu8RATi^HyU1b<yE~wl98r~yC^(j`$q5;y2B%XuC@I}iA8QHU`Ay} zT{RSs>{Sc3CRXja<Tzd@zQmaqyYf+qmZ^s)vWLeNOns>GoQu|kNPlX>TBO26-WU^; zxhVq*p)}=$-{In5Yy!08X{K>@l;(!F8Ouz;Qo^dkB~4iMJJU@a%I19vFJX8H8`gZg zOGQ&HmHSK|NZHlnN0!Q7YF`n!HZygacR2ogfgJgk6?P>6hsK*5i~Ri4a|egK&Gu!~ z*}1u|n8k>rDyKT)@>!)6%xxV<8(z0H#j7{gBWPM4o{gKcli7GpHgxKeE=X3YtHZQV T1Q(Jj@volaA($L6NC^HP&6|Kn delta 2810 zcmajfTWnNC7{KxAQs~9fN=t!WXiv9ypzH3oT&y7XTg3)NQHelK*<;;qyIb~b_n}eO zddI{|m>|)RDAB~2m6+HU4G=Z%K7bEC2qvJylW2HB4Dx`8{=ai}xrm9AOn)=8bLRR@ z_iQ=4Ds`r^aGxUek?YCB9;GZiQpg|D=4ncm;R7grc3?4ngeCZCu6`s}&tf(0-{PJ4 zGs?J^u>q@!l<L7C)+v=zgA_VxcplsF5VqmTT>DkrO1+I)cjMFe2wuQ>xSmx!igE15 zZ%`)s8(XlURH<fMjV2Ca2OdK&^Q+$}1Zk+g!&#Bqfa|G;a07mfi|`K&-~x`rhdWTd zdktmcFHt7Ege$OSx?A6dvVat};`_J|k6|J6tG_9*SXEfA6mzI@tif93h*S?&;%4M9 z)GlQ6DuS$CC35X4l<!|gS+K^p@HocNtWfGMJb_H93b~(@pF$-C8E`eqLN;L|Zbbu= zD0jLa{dfr5@eKCjv>EPIti&$r!@2r9C>zNl*RRgvwF0Hip)B<0D$aimg^N{g!=jn4 zt8(_|+=g@M_XN(y7f?>-0LqbnhU@SrlwfONwGu-saUMR2vS5upco?_iZ`GWCl0yG1 zrJ|Tc*<lZ}NZrC^cmkWSa*i9UJt*}ZIF8Sv#KNB_ckE-^3-KW|@Kt;i(>V)kmD)&s zdy2v;3LoMkJdaDTiR~@MZ74g~i(Bw0${o&No6^1#r9O-+@c_ydp2_(ua{cOelm!=X zj9zR;)~ZtLC`gB$C_xcL8Q>|Dn0N^}RrLnSLO;O$_zS*>Dc;%woJzoOsw#*Q0~=88 zIGOV~lzy+HfrpU=rPPlU<mj%U9DRUa<=G9O>@1D)`wtkva=wy@R-i0!D;8ir$t1*= zT1u89mR%BFPLl5{$@9rFMyb4i*{viA5J__UJYna5z;fiZIR8*2pd>M$ljKcHR7*hd z5S;&x;5<>nMcqS|{|geJvN1`rU`Y}qPGWxNztL1A_LPS#$K6ThK(42?lzPcrzq*$! zM=KF8K_=HCi7R$aO3D&Da*75ypYF~T3iA#4n3PwOr;sH8xmM>%g7bFe3VdXVkriY~ zPT;vkCzzxtcfO1)F+>dW)=n0k(^rZYO)f9_%A?PgmFRcNdh~^|d3x>iuXJ~Lz5cPh zOutwDr9N6wr1w@Vn7mkVxnT0I8GW9~?`C!vXlvH|62C9t_XU^uf_mSq`$~Jd0!xfQ zu(xNiK0mAO&On#{?k<1O2n2eA-CcgauAbfG$)qP2&z@gU?k`o|R@)ni8G?Rh&ew%b zp|7S*e^TS~n8W&P&FrcDR?>{?`dZ8Vbx&<em2^}6X3_{-_Gm^AnIpFTqPAoDtt}U7 z*Vc^2V}o&XWW@CSyZ?pSc0E*AUtsB1>e_DmvR$95yW~!Ivc6;Ls5zcV@0~l>Z8<)- ztwWYzL}kM9q#3eomJ-jTcUeC5pc%?c*hVCCB%2PIdUr$B45xE`t#+@mQNP{rh`!j+ z*eSpG)O~JW8N-a&iCDsj#td^T6pqmp$xOr(re4<A?auyrqfamM7VG7P;Wi8!59bT3 zJZ3_dG<n^+-&?JpX{u-(8@CggiBKjzG&VA3%h<Wa+V06qzfy0*^^b}pv1lS58@BZQ z-Z^gTh<E22cdh+acsyh!WsBFxP24)5F=}QH#_7k^u#ZH<%p8ej51LWa*452TMY-?v z(&o;kH;oaE#Ye{SBZZx%acloQogDg@Uf0~X@TLKh868h#(gR~gYskp&AuN^KwtS_z z%afVV9WBNbcA_`71g34uq@&>>{dP-m&W$l`H*TU<GHgXneY)lG>3w4(a@%g;={2qU z^y${#qR}`vl|87d+IE+j1H*R0l$}IO{bpP9{55g5pP4XhQ-+Cg4g5Nuw8A0xSd8fP zUFuV9!Fk~!)3Arbkp#CDGWqLMTf-qMW^jl@jPryU9tL?A-?ujuhi#|D)>qp*Z&bQE z>O7XM`#M@u`3^=nZVbd2A;INEnUxWY1oLo7cErrS6iYBw_C5NKG6ma=(`nQku)>4? j|B0+B_en?|!(e`r?*E=8lXf4F`*585R$C-iIAHY;v^qLT diff --git a/po/lv.po b/po/lv.po index 3606ae7d1..143eb0ec2 100644 --- a/po/lv.po +++ b/po/lv.po @@ -4,13 +4,14 @@ # Arvis LÄcis <arvis.lacis@inbox.lv>, 2009. # Rihards Prieditis <rprieditis@gmail.com>, 2010. # Rihards Prieditis <rprieditis@gmail.com>, 2011. +# RÅ«dolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014. msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good 0.10.28.2\n" +"Project-Id-Version: gst-plugins-good 1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" -"PO-Revision-Date: 2011-09-02 11:23-0000\n" -"Last-Translator: Rihards PriedÄ«tis <rprieditis@gmail.com>\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" +"PO-Revision-Date: 2014-04-20 16:38+0300\n" +"Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n" "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n" "Language: lv\n" "MIME-Version: 1.0\n" @@ -18,10 +19,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "2);\n" -"X-Generator: Lokalize 1.0\n" +"X-Generator: Lokalize 1.5\n" msgid "Jack server not found" -msgstr "" +msgstr "Nav atrasts Jack serveris" msgid "Failed to decode JPEG image" msgstr "NeizdevÄs atkodÄ“t JPEG attÄ“lu" @@ -29,105 +30,105 @@ msgstr "NeizdevÄs atkodÄ“t JPEG attÄ“lu" #. TRANSLATORS: 'song title' by 'artist name' #, c-format msgid "'%s' by '%s'" -msgstr "\"%s\"ko \"%s\"" +msgstr "“%s†izpilda “%sâ€" msgid "Could not connect to server" -msgstr "Nevar savienoties ar serveri" +msgstr "NevarÄ“ja savienoties ar serveri" msgid "No URL set." -msgstr "URL nav uzstÄdÄ«ts." +msgstr "URL nav iestatÄ«ts." msgid "Server does not support seeking." msgstr "Serveris neatbalsta meklÄ“Å¡anu." msgid "Could not resolve server name." -msgstr "Nevar atpazÄ«t servera nosaukumu." +msgstr "Nevar atrast servera nosaukumu." msgid "Could not establish connection to server." msgstr "Nevar izveidot savienojumu ar serveri." msgid "Secure connection setup failed." -msgstr "DroÅ¡Ä savienojuma izveidoÅ¡ana neizdevÄs." +msgstr "NeizdevÄs izveidot droÅ¡o savienojumu." msgid "" "A network error occured, or the server closed the connection unexpectedly." msgstr "Notika tÄ«kla kļūda, vai serveris negaidÄ«ti aizvÄ“ra savienojumu." msgid "Server sent bad data." -msgstr "Serveris nosÅ«tija sliktus datus." +msgstr "Serveris nosÅ«tÄ«ja sliktus datus." msgid "Internal data stream error." -msgstr "IekÅ¡Ä“jÄs datu plÅ«smas kļūda." +msgstr "IekÅ¡Ä“ja datu plÅ«smas kļūda." msgid "No or invalid input audio, AVI stream will be corrupt." -msgstr "Nav neviena vai nederÄ«gs ievades audio, AVI straume tiks bojÄta." +msgstr "Nav vai nederÄ«gs ievades audio, AVI straume tiks bojÄta." msgid "This file contains no playable streams." -msgstr "Å is fails nesatur nevienu atskaņojamu straumi." +msgstr "Å Ä« datne nesatur nevienu atskaņojamu straumi." msgid "This file is invalid and cannot be played." -msgstr "Å is fails ir nederÄ«gs un nevar tikt atskaņots." +msgstr "Å Ä« datne ir nederÄ«ga un to nevar atskaņot." msgid "Cannot play stream because it is encrypted with PlayReady DRM." -msgstr "" +msgstr "Nevar atskaņot straumi, jo tÄ ir Å¡ifrÄ“ta ar PlayReady DRM." msgid "This file is corrupt and cannot be played." -msgstr "Å is fails ir bojÄts un nevar tikt atskaņots." +msgstr "Å Ä« datne ir bojÄta un to nevar atskaņot." msgid "Invalid atom size." msgstr "NederÄ«gs atoma izmÄ“rs." msgid "This file is incomplete and cannot be played." -msgstr "Å is pails ir nepabeigts un nevar tikt atskaņots." +msgstr "Å Ä« datne ir nepabeigta un to nevar atskaņot." msgid "The video in this file might not play correctly." -msgstr "Video Å¡ajÄ failÄ var tikt atskaņots nepareizi." +msgstr "Video Å¡ajÄ datnÄ“ varÄ“tu tikt atskaņots nepareizi." #, c-format msgid "This file contains too many streams. Only playing first %d" -msgstr "Å is fails satur pÄrÄk daudz straumes. Tiek atskaņota tikai pirmÄ %d" +msgstr "Å Ä« datne satur pÄrÄk daudz straumju. Tiek atskaņota tikai pirmÄ %d" msgid "" "No supported stream was found. You might need to install a GStreamer RTSP " "extension plugin for Real media streams." msgstr "" -"Netika atrasta atbalstÄ«ta straume. IespÄ“jams jums jÄinstalÄ“ GStreamer RTSP " -"paplaÅ¡inÄjuma spraudni priekÅ¡ Real media straumÄ“m." +"Netika atrasta atbalstÄ«ta straume. IespÄ“jams, jums jÄinstalÄ“ GStreamer RTSP " +"paplaÅ¡inÄjuma spraudni Real media straumÄ“m." msgid "" "No supported stream was found. You might need to allow more transport " "protocols or may otherwise be missing the right GStreamer RTSP extension " "plugin." msgstr "" -"Netika atrasta atbalstÄ«ta straume. Jums iespÄ“jams jÄatļauj vairÄk transporta " -"protokoli vai arÄ« trÅ«kst GStreamer RTSP paplaÅ¡inÄjuma spraudnis. " +"Netika atrasta atbalstÄ«ta straume. IespÄ“jams, jums jÄatļauj vairÄk " +"transporta protokoli vai arÄ« trÅ«kst GStreamer RTSP paplaÅ¡inÄjuma spraudnis. " msgid "Internal data flow error." -msgstr "IekÅ¡Ä“jÄ datu plÅ«smas kļūda." +msgstr "IekÅ¡Ä“ja datu plÅ«smas kļūda." msgid "" "Could not open audio device for playback. Device is being used by another " "application." msgstr "" -"Nav iespÄ“jams atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai. IerÄ«ci paÅ¡laik izmanto cita " -"programma." +"NevarÄ“ja atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai. IerÄ«ci paÅ¡laik izmanto cita " +"lietotne." msgid "" "Could not open audio device for playback. You don't have permission to open " "the device." msgstr "" -"Nav iespÄ“jams atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai. Jums nav nepiecieÅ¡amÄs " -"atļaujas, lai atvÄ“rtu ierÄ«ci." +"Nevar atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai. Jums nav nepiecieÅ¡amÄs atļaujas, lai " +"atvÄ“rtu ierÄ«ci." msgid "Could not open audio device for playback." -msgstr "Nav iespÄ“jams atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai." +msgstr "NevarÄ“ja atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai." msgid "" "Could not open audio device for playback. This version of the Open Sound " "System is not supported by this element." msgstr "" -"Nav iespÄ“jams atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai. Å Ä« AtvÄ“rtÄs Skaņas Sistemas " -"versija neatbalsta Å¡o elementu." +"Nevar atvÄ“rt audio ierÄ«ci atskaņoÅ¡anai. Å Ä« AtvÄ“rtÄs Skaņas SistÄ“mas versija " +"neatbalsta Å¡o elementu." msgid "Playback is not supported by this audio device." msgstr "Å Ä« audio ierÄ«ce neatbalsta atskaņoÅ¡anu." @@ -136,10 +137,10 @@ msgid "Audio playback error." msgstr "Audio atskaņoÅ¡anas kļūda." msgid "Recording is not supported by this audio device." -msgstr "Å Ä« audio ierÄ«ce neatablsta ierkastÄ«Å¡anu." +msgstr "Å Ä« audio ierÄ«ce neatbalsta ierakstÄ«Å¡anu." msgid "Error recording from audio device." -msgstr "Kļūda ierakstot no audio iekÄrtas." +msgstr "Kļūda, ierakstot no audio ierÄ«ces." msgid "" "Could not open audio device for recording. You don't have permission to open " @@ -158,7 +159,7 @@ msgid "Microphone" msgstr "Mikrofons" msgid "Line In" -msgstr "LÄ«nijas ieeja" +msgstr "Skaņas ieeja" msgid "Internal CD" msgstr "IekÅ¡Ä“jais CD" @@ -172,13 +173,11 @@ msgstr "AUX 1 ieeja" msgid "AUX 2 In" msgstr "AUX 2 ieeja" -#, fuzzy msgid "Codec Loopback" -msgstr "Atpakaļcikls" +msgstr "Kodeka atgriezeniskais cikls" -#, fuzzy msgid "SunVTS Loopback" -msgstr "Atpakaļcikls" +msgstr "SunVTS atgriezeniskais cikls" msgid "Volume" msgstr "Skaļums" @@ -209,87 +208,98 @@ msgstr "AUX 2 izeja" #, c-format msgid "Error reading %d bytes from device '%s'." -msgstr "RadÄs kļūda nolasot %d baitus no ierÄ«ces \"%s\"." +msgstr "RadÄs kļūda, nolasot %d baitus no ierÄ«ces “%sâ€." #, c-format msgid "Failed to enumerate possible video formats device '%s' can work with" -msgstr "" +msgstr "NeizdevÄs uzskaitÄ«t iespÄ“jamos video formÄtus, ar ko var strÄdÄt “%sâ€" #, c-format msgid "Could not map buffers from device '%s'" -msgstr "Nevar izvietot buferus no ierÄ«ces \"%s\"" +msgstr "Nevar izvietot buferus no ierÄ«ces “%sâ€" -#, fuzzy, c-format +#, c-format msgid "The driver of device '%s' does not support the IO method %d" -msgstr "" -"IerÄ«ces \"%s\" draiveris neatbalsta nevienu zinÄmo ierakstÄ«Å¡anas metodi." +msgstr "IerÄ«ces \"%s\" draiveris neatbalsta IO metodi %d" -#, fuzzy, c-format +#, c-format msgid "The driver of device '%s' does not support any known IO method." -msgstr "" -"IerÄ«ces \"%s\" draiveris neatbalsta nevienu zinÄmo ierakstÄ«Å¡anas metodi." +msgstr "IerÄ«ces “%s†draiveris neatbalsta nevienu zinÄmo ierakstÄ«Å¡anas metodi." -#, fuzzy, c-format +#, c-format msgid "Device '%s' does not support video capture" -msgstr "IerÄ«ce \"%s\" nav izvades ierÄ«ce." +msgstr "IerÄ«ce “%s†neatbalsta video tverÅ¡anu" #, c-format msgid "Device '%s' is busy" -msgstr "" +msgstr "IerÄ«ce “%s†ir aizņemta" -#, fuzzy, c-format +#, c-format msgid "Device '%s' cannot capture at %dx%d" -msgstr "IerÄ«ce \"%s\" nav ierakstÄ«Å¡anas ierÄ«ce." +msgstr "IerÄ«ce “%s†nevar tvert ar %dx%d" -#, fuzzy, c-format +#, c-format msgid "Device '%s' cannot capture in the specified format" -msgstr "IerÄ«ce \"%s\" nav ierakstÄ«Å¡anas ierÄ«ce." +msgstr "IerÄ«ce “%s†nevar tvert norÄdÄ«tajÄ formÄtÄ" + +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "IerÄ«ce “%s†neatbalsta video tverÅ¡anu" #, c-format msgid "Could not get parameters on device '%s'" -msgstr "Nevar nolasÄ«t parametrus no ierÄ«ces \"%s\"" +msgstr "Nevar nolasÄ«t parametrus no ierÄ«ces “%sâ€" -#, fuzzy msgid "Video device did not accept new frame rate setting." -msgstr "Video ievades ierÄ«ce nepieņem jaunos kadra frekvences uzstÄdÄ«jumus." +msgstr "Video ierÄ«ce nepieņēma jaunos kadru Ätruma iestatÄ«jumus." msgid "Video device could not create buffer pool." +msgstr "Video ierÄ«ce nevarÄ“ja izveidot bufera pÅ«lu." + +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Video ierÄ«ce nepieņēma jaunos kadru Ätruma iestatÄ«jumus." + +msgid "Video device returned invalid dimensions." msgstr "" -#, fuzzy, c-format +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "IerÄ«ces \"%s\" draiveris neatbalsta IO metodi %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + +#, c-format msgid "Failed to get settings of tuner %d on device '%s'." -msgstr "NeizdevÄs saņemt skaņotÄja %d uzstÄdÄ«jumus no ierÄ«ces \"%s\"." +msgstr "NeizdevÄs saņemt skaņotÄja %d iestatÄ«jumus no ierÄ«ces “%sâ€." -#, fuzzy, c-format +#, c-format msgid "Error getting capabilities for device '%s'." -msgstr "RadÄs kļūda nolasot %d baitus no ierÄ«ces \"%s\"." +msgstr "Kļūda, saņemot iespÄ“jas no ierÄ«ces “%sâ€." -#, fuzzy, c-format +#, c-format msgid "Device '%s' is not a tuner." -msgstr "IerÄ«ce \"%s\" nav izvades ierÄ«ce." +msgstr "IerÄ«ce “%s†nav skaņotÄjs." -#, fuzzy, c-format +#, c-format msgid "Failed to get radio input on device '%s'. " -msgstr "NeizdevÄs uzstÄdÄ«t ievadi %d uz ierÄ«ces %s." +msgstr "NeizdevÄs saņemt radio ievadi uz ierÄ«ces “%sâ€." #, c-format msgid "Failed to set input %d on device %s." -msgstr "NeizdevÄs uzstÄdÄ«t ievadi %d uz ierÄ«ces %s." - -#, fuzzy, c-format -msgid "Failed to change mute state for device '%s'." -msgstr "NeizdevÄs saņemt signÄla stiprumu no ierÄ«ces \"%s\"." +msgstr "NeizdevÄs iestatÄ«t ievadi %d uz ierÄ«ces %s." #, c-format -msgid "Cannot identify device '%s'." -msgstr "Nevar atpazÄ«t ierÄ«ci \"%s\"" +msgid "Failed to change mute state for device '%s'." +msgstr "NeizdevÄs mainÄ«t apklusinÄÅ¡anas stÄvokli ierÄ«cei “%sâ€." #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " "it is a v4l1 driver." msgstr "" -"RadÄs kļūda saņemot ierÄ«ces \"%s\" iespÄ“jas: IespÄ“jams tas nav v4I2 " +"RadÄs kļūda, saņemot ierÄ«ces “%s†iespÄ“jas: iespÄ“jams tas nav v4I2 " "draiveris. PÄrbaudiet vai tas ir v4I1 draiveris." #, c-format @@ -298,88 +308,97 @@ msgstr "NeizdevÄs noteikt atribÅ«tus ievadei %d no ierÄ«ces %s" #, c-format msgid "Failed to get setting of tuner %d on device '%s'." -msgstr "NeizdevÄs saņemt skaņotÄja %d uzstÄdÄ«jumus no ierÄ«ces \"%s\"." +msgstr "NeizdevÄs saņemt skaņotÄja %d iestatÄ«jumus no ierÄ«ces “%sâ€." #, c-format msgid "Failed to query norm on device '%s'." -msgstr "NeizdevÄs noskaidrot normu ierÄ«cei \"%s\"." +msgstr "NeizdevÄs noskaidrot normu ierÄ«cei “%sâ€." #, c-format msgid "Failed getting controls attributes on device '%s'." -msgstr "NeizdevÄs iegÅ«t kontroles atribÅ«tus ierÄ«cei \"%s\"." +msgstr "NeizdevÄs iegÅ«t kontroles atribÅ«tus ierÄ«cei “%sâ€." + +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nevar atpazÄ«t ierÄ«ci “%sâ€." #, c-format msgid "This isn't a device '%s'." -msgstr "Å Ä« nav ierÄ«ce \"%s\"" +msgstr "Å Ä« nav ierÄ«ce “%sâ€." #, c-format msgid "Could not open device '%s' for reading and writing." -msgstr "NevarÄ“ja atvÄ“rt ierÄ«ci \"%s\" lasÄ«Å¡anai vai rakstÄ«Å¡anai." +msgstr "NevarÄ“ja atvÄ“rt ierÄ«ci “%s†lasÄ«Å¡anai vai rakstÄ«Å¡anai." #, c-format msgid "Device '%s' is not a capture device." -msgstr "IerÄ«ce \"%s\" nav ierakstÄ«Å¡anas ierÄ«ce." +msgstr "IerÄ«ce “%s†nav ierakstÄ«Å¡anas ierÄ«ce." #, c-format msgid "Device '%s' is not a output device." -msgstr "IerÄ«ce \"%s\" nav izvades ierÄ«ce." +msgstr "IerÄ«ce “%s†nav izvades ierÄ«ce." + +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "IerÄ«ce “%s†nav izvades ierÄ«ce." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "NevarÄ“ja atvÄ“rt ierÄ«ci “%s†lasÄ«Å¡anai vai rakstÄ«Å¡anai." #, c-format msgid "Failed to set norm for device '%s'." -msgstr "NeizdevÄs uzstÄdÄ«t normu ierÄ«cei \"%s\"." +msgstr "NeizdevÄs iestatÄ«t normu ierÄ«cei “%sâ€." #, c-format msgid "Failed to get current tuner frequency for device '%s'." -msgstr "NeizdevÄs saņemt paÅ¡reizÄ“jo atkaņoÅ¡anas frekvenci no ierÄ«ces \"%s\"." +msgstr "NeizdevÄs saņemt paÅ¡reizÄ“jo atskaņoÅ¡anas frekvenci no ierÄ«ces “%sâ€." #, c-format msgid "Failed to set current tuner frequency for device '%s' to %lu Hz." msgstr "" -"NeizdevÄs uzstÄdÄ«t ierÄ«ces \"%s\" paÅ¡reizÄ“jo atkaļoÅ¡anas frekvenci uz %lu Hz." +"NeizdevÄs iestatÄ«t ierÄ«ces “%s†paÅ¡reizÄ“jo skaņotÄja frekvenci uz %lu Hz." #, c-format msgid "Failed to get signal strength for device '%s'." -msgstr "NeizdevÄs saņemt signÄla stiprumu no ierÄ«ces \"%s\"." +msgstr "NeizdevÄs saņemt signÄla stiprumu no ierÄ«ces “%sâ€." #, c-format msgid "Failed to get value for control %d on device '%s'." -msgstr "NeizdevÄs saņemt kontroles vÄ“rtÄ«bu %d ierÄ«cei \"%s\"." +msgstr "NeizdevÄs saņemt vadÄ«klas vÄ“rtÄ«bu %d ierÄ«cei “%sâ€." #, c-format msgid "Failed to set value %d for control %d on device '%s'." -msgstr "NeizdevÄs uzstÄdÄ«t vÄ“rtÄ«bu %d kontrolei %d no ierÄ«ces \"%s\"." +msgstr "NeizdevÄs iestatÄ«t vÄ“rtÄ«bu %d vadÄ«klai %d no ierÄ«ces “%sâ€." #, c-format msgid "Failed to get current input on device '%s'. May be it is a radio device" msgstr "" -"NeizdevÄs saņemt paÅ¡reizÄ“jo ievadi no ierÄ«ces \"%s\". IespÄ“jams tÄ ir radio " +"NeizdevÄs saņemt paÅ¡reizÄ“jo ievadi no ierÄ«ces “%sâ€. IespÄ“jams tÄ ir radio " "ierÄ«ce" #, c-format msgid "" "Failed to get current output on device '%s'. May be it is a radio device" msgstr "" -"NeizdevÄs saņemt paÅ¡reizÄ“jo izvadu no ierÄ«ces \"%s\". IespÄ“jams tÄ ir radio " +"NeizdevÄs saņemt paÅ¡reizÄ“jo izvadu no ierÄ«ces “%sâ€. IespÄ“jams tÄ ir radio " "ierÄ«ce" #, c-format msgid "Failed to set output %d on device %s." -msgstr "NeizdevÄs uzstÄdÄ«t izvadu %d uz ierÄ«ces %s." +msgstr "NeizdevÄs iestatÄ«t izvadi %d uz ierÄ«ces %s." msgid "Changing resolution at runtime is not yet supported." -msgstr "IzÅ¡Ä·irtspÄ“jas mainÄ«Å¡ana izpildlaikÄ paÅ¡alik netiek atbalstÄ«ta." +msgstr "IzÅ¡Ä·irtspÄ“jas mainÄ«Å¡ana izpildlaikÄ paÅ¡laik netiek atbalstÄ«ta." msgid "Cannot operate without a clock" msgstr "Nevar veikt darbÄ«bas bez pulksteņa" -#~ msgid "Got unexpected frame size of %u instead of %u." -#~ msgstr "Saņēmu negaidÄ«tu kadra izmÄ“ru %u, nevis %u." - -#~ msgid "Failed trying to get video frames from device '%s'." -#~ msgstr "NeizdevÄs saņemt video kadrus no ierÄ«ces \"%s\"." +#~ msgid "Could not establish connection to sound server" +#~ msgstr "Nevar izveidot savienojumu ar skaņas serveri" -#~ msgid "Failed after %d tries. device %s. system error: %s" -#~ msgstr "Neveiksme pÄ“c %d mÄ“Ä£inÄjumiem. ierÄ«ce %s. sistÄ“mas kļūda: %s" +#~ msgid "Failed to query sound server capabilities" +#~ msgstr "NeizdevÄs noskaidrot skaņas servera iespÄ“jas" #~ msgid "Bass" #~ msgstr "Basi" @@ -706,14 +725,17 @@ msgstr "Nevar veikt darbÄ«bas bez pulksteņa" #~ msgid "%s Function" #~ msgstr "%s funkcija" -#~ msgid "Could not establish connection to sound server" -#~ msgstr "Nevar izveidot savienojumu ar skaņas serveri" - -#~ msgid "Failed to query sound server capabilities" -#~ msgstr "NeizdevÄs noskaidrot skaņas servera iespÄ“jas" +#~ msgid "Got unexpected frame size of %u instead of %u." +#~ msgstr "Saņēmu negaidÄ«tu kadra izmÄ“ru %u, nevis %u." #~ msgid "Error reading %d bytes on device '%s'." #~ msgstr "RadÄs kļūda nolasot %d baitus no ierÄ«ces \"%s\"." #~ msgid "Could not enqueue buffers in device '%s'." #~ msgstr "Nevar ierindod buferus ierÄ«cÄ“ \"%s\"." + +#~ msgid "Failed trying to get video frames from device '%s'." +#~ msgstr "NeizdevÄs saņemt video kadrus no ierÄ«ces \"%s\"." + +#~ msgid "Failed after %d tries. device %s. system error: %s" +#~ msgstr "Neveiksme pÄ“c %d mÄ“Ä£inÄjumiem. ierÄ«ce %s. sistÄ“mas kļūda: %s" diff --git a/po/mt.gmo b/po/mt.gmo index 9af710c8b2a610e5cc258d68a324ef0a36e82e44..31e1e3f647a5f25f4914a9f41ce3b8d995133332 100644 GIT binary patch delta 23 ecmdm{w@q)uF&-{cT?1nULklYdgUuIs(zpO#^9MWt delta 23 ecmdm{w@q)uF&-`xT|)~6LnA8_^UW7{(zpO$JqJbr diff --git a/po/mt.po b/po/mt.po index 06b7926f1..6bedda9db 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -238,6 +238,10 @@ msgstr "Appart '%s' ma jistax jagħmel capture bi %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Appart '%s' ma jistax jagħmel capture f'dan il-format" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Device '%s' mhux capture device." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Mhux possibli nÄ¡ib parametri tal-apparat '%s'" @@ -250,6 +254,22 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"Apparat li jaqra video input ma aÄ‹Ä‹ettax is-settings Ä¡odda tal-frame rate." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "" +"Id-driver tal-apparat '%s' ma jissapportja l-ebda capture method mifhum." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Problema biex inÄ¡ib settings tat-tuner %d fuq l-appart '%s'" @@ -274,10 +294,6 @@ msgstr "Problema biex nissettja input %d fuq apparat %s." msgid "Failed to change mute state for device '%s'." msgstr "Problema biex inÄ¡ib signal strength fuq l-apparat '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Device '%s' mhux identifikat." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -302,6 +318,10 @@ msgstr "Ma stajx nfittex norm fuq apparat '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "L-attributi ta' kontroll ta' device '%s' ma nqrawx." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Device '%s' mhux identifikat." + #, c-format msgid "This isn't a device '%s'." msgstr "Dan mhux device %s." @@ -318,6 +338,14 @@ msgstr "Device '%s' mhux capture device." msgid "Device '%s' is not a output device." msgstr "Device '%s' mhux capture device." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Device '%s' mhux capture device." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Device '%s' ma nistax niftaħu biex naqra jew nikteb." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Ma stajtx nissetja norm fuq apparat '%s'." diff --git a/po/nb.gmo b/po/nb.gmo index 18a414fa3e561127d66548988e5ea357f43a8c82..314bb07dac45fb8a328c2540dd2e87f92331a130 100644 GIT binary patch delta 23 fcmZ4JztDff12HaBT?1nULklYdgUzqRwhI6NWNioY delta 23 fcmZ4JztDff12HZWT|)~6LnA8_^UbfswhI6NWVZ+X diff --git a/po/nb.po b/po/nb.po index ece524b0a..b5cde9549 100644 --- a/po/nb.po +++ b/po/nb.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2014-01-22 17:49+0100\n" "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n" "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n" @@ -240,6 +240,10 @@ msgstr "Enhet «%s» kan ikke fange ved %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Enhet «%s» kan ikke fange i det angitte formatet" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Enhet «%s» støtter ikke videoopptak" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Kunne ikke fÃ¥ parametere pÃ¥ enheten «%s»." @@ -250,6 +254,20 @@ msgstr "Videoenheten aksepterte ikke ny bildefrekvensinnstilling." msgid "Video device could not create buffer pool." msgstr "Videoenhet kan ikke opprette bufferkø" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Videoenheten aksepterte ikke ny bildefrekvensinnstilling." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Driveren av enheten «%s» støtter ikke IO metoden %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Kunne ikke hente innstillingene fra mottakeren %d pÃ¥ enheten «%s»." @@ -274,10 +292,6 @@ msgstr "Klarte ikke Ã¥ sette inngang %d pÃ¥ enhet %s." msgid "Failed to change mute state for device '%s'." msgstr "Klarte ikke Ã¥ endre dempe-modus for enheten «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kan ikke identifisere enhet «%s»." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -302,6 +316,10 @@ msgstr "Feil ved norm-spørring pÃ¥ enhet %s." msgid "Failed getting controls attributes on device '%s'." msgstr "Kunne ikke Ã¥ fÃ¥ inn kontrollattributter pÃ¥ enhet «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kan ikke identifisere enhet «%s»." + #, c-format msgid "This isn't a device '%s'." msgstr "Dette er ikke en enhet «%s»." @@ -318,6 +336,14 @@ msgstr "Enhet «%s» kan ikke fange data." msgid "Device '%s' is not a output device." msgstr "Enhet «%s» er ikke en utgangsenhet." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Enhet «%s» er ikke en utgangsenhet." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Kunne ikke Ã¥pne enhet «%s» for lesing og skriving." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Kunne ikke sette normen for enhet «%s»." diff --git a/po/nl.gmo b/po/nl.gmo index 8ad02d0c755ee82be30bf9303afdf06807b0ffd1..d16154001d1403e2dd8bf456e092d38d5cfa74ea 100644 GIT binary patch delta 23 ecmaDH^f+k412HaBT?1nULklYdgUzqRDun=V$p}FJ delta 23 ecmaDH^f+k412HZWT|)~6LnA8_^UbfsDun=W69`KH diff --git a/po/nl.po b/po/nl.po index 877318e56..e66923a1c 100644 --- a/po/nl.po +++ b/po/nl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -243,6 +243,10 @@ msgstr "Apparaat '%s' kan geen opname maken met %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Apparaat '%s' kan geen opname maken in het gespecificeerde formaat" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Apparaat '%s' ondersteunt het opnemen van video niet" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Kan de parameters op apparaat '%s' niet verkrijgen" @@ -253,6 +257,20 @@ msgstr "Videoapparaat heeft de nieuwe frame-snelheid niet geaccepteerd." msgid "Video device could not create buffer pool." msgstr "Videoapparaat kon geen bufferpool aanmaken." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Videoapparaat heeft de nieuwe frame-snelheid niet geaccepteerd." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Het stuurprogramma van apparaat '%s' ondersteunt de IO-methode %d niet" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Instellingen van tuner %d op apparaat '%s' ophalen is mislukt." @@ -277,10 +295,6 @@ msgstr "Kan invoer %d op apparaat '%s' niet instellen." msgid "Failed to change mute state for device '%s'." msgstr "De gedempte status van apparaat '%s' wijzigen is mislukt." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kan apparaat '%s' niet identificeren." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -305,6 +319,10 @@ msgstr "Kan de norm op apparaat '%s' niet opvragen." msgid "Failed getting controls attributes on device '%s'." msgstr "Kan de knopeigenschappen op apparaat '%s' niet verkrijgen." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kan apparaat '%s' niet identificeren." + #, c-format msgid "This isn't a device '%s'." msgstr "Dit is geen apparaat '%s'." @@ -321,6 +339,14 @@ msgstr "Apparaat '%s' is geen opnameapparaat." msgid "Device '%s' is not a output device." msgstr "Apparaat '%s' is geen uitvoerapparaat." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Apparaat '%s' is geen uitvoerapparaat." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Kan apparaat '%s' niet openen voor lezen en schrijven." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Kan norm niet instellen voor apparaat '%s'." diff --git a/po/or.gmo b/po/or.gmo index 1eeac6bec78a1d58b99c6d0528902843be4958ec..a46d03b03b76ea722b48742106fb0e41b6c8f6da 100644 GIT binary patch delta 23 ecmX@Wc7Sbz7bBOcu7R<Fp@o%!!R8RgH;e#Jng(wG delta 23 ecmX@Wc7Sbz7bBO6uAzm3p^=q|`Q{MDH;e#J<OX>F diff --git a/po/or.po b/po/or.po index ba35dc7a2..554f68128 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -237,6 +237,10 @@ msgstr "\"%s\" ଯନàତàର ଗà‹à¬Ÿà¬¿à¬ ଅନàଲିପିକାର msgid "Device '%s' cannot capture in the specified format" msgstr "\"%s\" ଯନàତàର ଗà‹à¬Ÿà¬¿à¬ ଅନàଲିପିକାର ନàହà‡à¬." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "\"%s\" ଯନàତàର ଗà‹à¬Ÿà¬¿à¬ ଅନàଲିପିକାର ନàହà‡à¬." + #, fuzzy, c-format msgid "Could not get parameters on device '%s'" msgstr "\"%s\" ଯନàତàରରà ଅସàଥାàŸà€ ସଞàà¬šàŸ à¬¸àଥାନ ଆଣିହà‡à¬²à¬¾ ନାହିà¬." @@ -247,6 +251,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "\"%s\" ଯନàତàରରà ପରàଯàଯାପàତ ଅସàଥାàŸà€ ସଞàà¬šàŸ à¬¸àଥାନ ଆଣିହà‡à¬²à¬¾ ନାହିà¬." @@ -271,10 +287,6 @@ msgstr "\"%s\" ଧàବନି ଯନàତàର ବନàଦ à¬•à¬°à¬¿à¬¹à‡ msgid "Failed to change mute state for device '%s'." msgstr "\"%s\" ଯନàତàରରà ଅସàଥାàŸà€ ସଞàà¬šàŸ à¬¸àଥାନ ଆଣିହà‡à¬²à¬¾ ନାହିà¬." -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "\"%s\" ଯନàତàà¬°à¬°à‡ à¬²à‡à¬–ିହà‡à¬²à¬¾ ନାହିà¬." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -297,6 +309,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "\"%s\" ଯନàତàà¬°à¬°à‡ à¬²à‡à¬–ିହà‡à¬²à¬¾ ନାହିà¬." + #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -313,6 +329,14 @@ msgstr "\"%s\" ଯନàତàର ଗà‹à¬Ÿà¬¿à¬ ଅନàଲିପିକାର msgid "Device '%s' is not a output device." msgstr "\"%s\" ଯନàତàର ଗà‹à¬Ÿà¬¿à¬ ଅନàଲିପିକାର ନàହà‡à¬." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "\"%s\" ଯନàତàର ଗà‹à¬Ÿà¬¿à¬ ଅନàଲିପିକାର ନàହà‡à¬." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "\"%s\" ଯନàତàର ପଢ଼ିବା ଓ ଲà‡à¬–ିବା ପାଇଠଖà‹à¬²à¬¿à¬¹à‡à¬²à¬¾ ନାହିà¬." + #, fuzzy, c-format msgid "Failed to set norm for device '%s'." msgstr "\"%s\" ଯନàତàରରà ଅସàଥାàŸà€ ସଞàà¬šàŸ à¬¸àଥାନ ଆଣିହà‡à¬²à¬¾ ନାହିà¬." diff --git a/po/pl.gmo b/po/pl.gmo index 20143b368c686531c3cd6b34bbb3cd5769834a9f..92c727f01799a1bf66a6d28eae4053e09b36230d 100644 GIT binary patch delta 23 ecmbOoHal#?12HaBT?1nULklYdgUzqR3`GEAg9mc} delta 23 ecmbOoHal#?12HZWT|)~6LnA8_^Ubfs3`GEA%?Et| diff --git a/po/pl.po b/po/pl.po index b3c155be8..ae70fe2cf 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -240,6 +240,10 @@ msgstr "UrzÄ…dzenie '%s' nie potrafi przechwytywać obrazu %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "UrzÄ…dzenie '%s' nie potrafi przechwytywać obrazu w podanym formacie" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "UrzÄ…dzenie '%s' nie obsÅ‚uguje przechwytywania obrazu" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nie udaÅ‚o siÄ™ uzyskać parametrów urzÄ…dzenia '%s'" @@ -251,6 +255,21 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "UrzÄ™dzenie obrazu nie mogÅ‚o utworzyć puli buforów." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"UrzÄ…dzenie obrazu nie przyjęło nowego ustawienia czÄ™stotliwoÅ›ci klatek." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Sterownik urzÄ…dzenia '%s' nie obsÅ‚uguje metody we/wy %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Nie udaÅ‚o siÄ™ uzyskać ustawieÅ„ tunera %d urzÄ…dzenia '%s'." @@ -275,10 +294,6 @@ msgstr "Nie udaÅ‚o siÄ™ ustawić wejÅ›cia %d urzÄ…dzenia %s." msgid "Failed to change mute state for device '%s'." msgstr "Nie udaÅ‚o siÄ™ zmienić stanu wyciszenia dla urzÄ…dzenia '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Nie można zidentyfikować urzÄ…dzenia '%s'." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -303,6 +318,10 @@ msgstr "Nie udaÅ‚o siÄ™ odpytać normalizacji urzÄ…dzenia '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Nie udaÅ‚o siÄ™ uzyskać atrybutów sterujÄ…cych urzÄ…dzenia '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Nie można zidentyfikować urzÄ…dzenia '%s'." + #, c-format msgid "This isn't a device '%s'." msgstr "To nie jest urzÄ…dzenie '%s'." @@ -319,6 +338,14 @@ msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem przechwytujÄ…cym." msgid "Device '%s' is not a output device." msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem wyjÅ›ciowym." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "UrzÄ…dzenie '%s' nie jest urzÄ…dzeniem wyjÅ›ciowym." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Nie udaÅ‚o siÄ™ otworzyć urzÄ…dzenia '%s' do odczytu i zapisu." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Nie udaÅ‚o siÄ™ ustawić normalizacji dla urzÄ…dzenia '%s'." diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 0454dd23af35339e5247061a1e7257ff741e665f..eba14c5182b1da93ccc06f4a42173e37c14fb338 100644 GIT binary patch delta 23 ecmbOoHal#?12HaBT?1nULklYdgUzqR3`GEAg9mc} delta 23 ecmbOoHal#?12HZWT|)~6LnA8_^Ubfs3`GEA%?Et| diff --git a/po/pt_BR.po b/po/pt_BR.po index ff2f499b4..edd0c130c 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2013-12-29 17:48-0200\n" "Last-Translator: FabrÃcio Godoy <skarllot@gmail.com>\n" "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge." @@ -251,6 +251,10 @@ msgstr "O dispositivo \"%s\" não realiza captura a %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "O dispositivo \"%s\" não realiza captura no formato especificado" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "O dispositivo \"%s\" não tem suporte a captura de vÃdeo" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Não foi possÃvel obter os parâmetros no dispositivo \"%s\"" @@ -261,6 +265,20 @@ msgstr "O dispositivo de vÃdeo não aceita definir uma nova taxa de quadros." msgid "Video device could not create buffer pool." msgstr "O dispositivo de vÃdeo não pôde reservar um buffer." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "O dispositivo de vÃdeo não aceita definir uma nova taxa de quadros." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "O driver do dispositivo \"%s\" não tem suporte ao método %d de E/S" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Falha ao obter configurações do sintonizador %d no dispositivo \"%s\"." @@ -285,10 +303,6 @@ msgstr "Falha ao definir a entrada %d no dispositivo %s." msgid "Failed to change mute state for device '%s'." msgstr "Falha ao alternar entre com e sem áudio para o dispositivo \"%s\"." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "O dispositivo \"%s\" não pôde ser identificado." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -313,6 +327,10 @@ msgstr "Falha ao examinar as normas no dispositivo \"%s\"." msgid "Failed getting controls attributes on device '%s'." msgstr "Falha ao obter atributos de controle no dispositivo \"%s\"." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "O dispositivo \"%s\" não pôde ser identificado." + #, c-format msgid "This isn't a device '%s'." msgstr "\"%s\" não é um dispositivo." @@ -329,6 +347,14 @@ msgstr "O dispositivo \"%s\" não é um dispositivo de captura." msgid "Device '%s' is not a output device." msgstr "O dispositivo \"%s\" não é um dispositivo de saÃda." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "O dispositivo \"%s\" não é um dispositivo de saÃda." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Não foi possÃvel abrir o dispositivo \"%s\" para leitura e gravação." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Falha ao definir as normas para o dispositivo \"%s\"." diff --git a/po/ro.gmo b/po/ro.gmo index c3a6901ea039e3db396c3a519753fff488abcfb1..6f2078a3345ab377facc74f7ee189f1780b34008 100644 GIT binary patch delta 23 ecmX?TchGKwm;jflu7R<Fp@o%!!Da;kMScKOA_dw2 delta 23 ecmX?TchGKwm;jfFuAzm3p^=q|`DO(HMScKOYz5>1 diff --git a/po/ro.po b/po/ro.po index 6545c3f69..8627528ea 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -249,6 +249,10 @@ msgstr "Dispozitivul „%s†nu este un dispozitiv de captură." msgid "Device '%s' cannot capture in the specified format" msgstr "Dispozitivul „%s†nu este un dispozitiv de captură." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Dispozitivul „%s†nu este un dispozitiv de ieÈ™ire." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nu s-au putut obÈ›ine parametrii pentru dispozitivul „%sâ€" @@ -261,6 +265,23 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"Dispozitivul de intrare video nu a acceptat noua configurare de rate cadre." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "" +"Driverul pentru dispozitivul „%s†nu suport nici o metodă de captură " +"cunoscută." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -286,10 +307,6 @@ msgstr "Definirea valorii %d pentru dispozitivul „%s†a eÈ™uat." msgid "Failed to change mute state for device '%s'." msgstr "ObÈ›inerea nivelului semnalului pentru dispozitivul „%s†a eÈ™uat." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Dispozitivul „%s†nu poate fi identificat." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -315,6 +332,10 @@ msgstr "Interogarea normei pentru dispozitivul „%s†a eÈ™uat." msgid "Failed getting controls attributes on device '%s'." msgstr "ObÈ›inerea atributelor de control pentru dispozitivul „%s†a eÈ™uat." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Dispozitivul „%s†nu poate fi identificat." + #, c-format msgid "This isn't a device '%s'." msgstr "Acesta nu este un dispozitiv „%sâ€." @@ -331,6 +352,14 @@ msgstr "Dispozitivul „%s†nu este un dispozitiv de captură." msgid "Device '%s' is not a output device." msgstr "Dispozitivul „%s†nu este un dispozitiv de ieÈ™ire." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Dispozitivul „%s†nu este un dispozitiv de ieÈ™ire." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Nu se poate deschide dispozitivul „%s†pentru citire È™i scriere." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Definirea normei pentru dispozitivul „%s†a eÈ™uat." diff --git a/po/ru.gmo b/po/ru.gmo index 18a9dc2dd855be2839c5a3b9a4a956b76991c1b6..fc79f5f130c48ab396789bda49908c21a8fc31d5 100644 GIT binary patch delta 23 ecmZ3Gw;*rB12HaBT?1nULklYdgUzqR%oG4<We2_h delta 23 ecmZ3Gw;*rB12HZWT|)~6LnA8_^Ubfs%oG4<uLsBg diff --git a/po/ru.po b/po/ru.po index 2c45591ad..e192a1cb8 100644 --- a/po/ru.po +++ b/po/ru.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2013-12-08 12:55+0400\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Language-Team: Russian <gnu@mx.ru>\n" @@ -251,6 +251,10 @@ msgstr "УÑтройÑтво «%s» не может оÑущеÑтвлÑÑ‚ÑŒ з msgid "Device '%s' cannot capture in the specified format" msgstr "УÑтройÑтво «%s» не может оÑущеÑтвлÑÑ‚ÑŒ захват в указанном формате" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "УÑтройÑтво «%s» не поддерживает захват видео" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Ðе удалоÑÑŒ получить параметры уÑтройÑтва «%s»" @@ -261,6 +265,20 @@ msgstr "Видео-уÑтройÑтво не принÑло новое знач msgid "Video device could not create buffer pool." msgstr "Видео-уÑтройÑтво не может Ñоздать буферный пул." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Видео-уÑтройÑтво не принÑло новое значение наÑтройки кадровой чаÑтоты." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Драйвер уÑтройÑтва «%s» не поддерживает метод ввода-вывода %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Ðе удалоÑÑŒ получить наÑтройки тюнера %d уÑтройÑтва «%s»." @@ -285,10 +303,6 @@ msgstr "Ðе удалоÑÑŒ выбрать вход %d Ð´Ð»Ñ ÑƒÑтройÑтв msgid "Failed to change mute state for device '%s'." msgstr "Ðе удалоÑÑŒ изменить ÑоÑтоÑние Ð¿Ñ€Ð¸Ð³Ð»ÑƒÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑƒÑтройÑтва «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ðе удаётÑÑ Ñ€Ð°Ñпознать уÑтройÑтво «%s»." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -313,6 +327,10 @@ msgstr "Ошибка запроÑа Ñтандарта уÑтройÑтва «%s msgid "Failed getting controls attributes on device '%s'." msgstr "Ошибка Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð² ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑтройÑтва «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ðе удаётÑÑ Ñ€Ð°Ñпознать уÑтройÑтво «%s»." + #, c-format msgid "This isn't a device '%s'." msgstr "«%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом." @@ -329,6 +347,14 @@ msgstr "УÑтройÑтво «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом msgid "Device '%s' is not a output device." msgstr "УÑтройÑтво «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом вывода." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "УÑтройÑтво «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом вывода." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Ðе удалоÑÑŒ открыть уÑтройÑтво «%s» Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸ запиÑи." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Ошибка уÑтановки Ñтандарта уÑтройÑтва «%s»." diff --git a/po/sk.gmo b/po/sk.gmo index c5426b43bb078b642005002cf640a61e05928855..809c909dd3467579c911042313979fcb4805ca5f 100644 GIT binary patch delta 23 ecmeAT?G4@VK#a>&*T7i8(89{VVDl@n#liq#)Ca}@ delta 23 ecmeAT?G4@VK#a>o*U&=2(8$WfeDf=@#liq$9tY3> diff --git a/po/sk.po b/po/sk.po index bb8a217f2..21c306b27 100644 --- a/po/sk.po +++ b/po/sk.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2014-01-30 11:08+0100\n" "Last-Translator: Peter Tuharsky <tuharsky@misbb.sk>\n" "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n" @@ -243,6 +243,10 @@ msgstr "Zariadenie '%s' nevie nahrávaÅ¥ na %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Zariadenie '%s' nedokáže nahrávaÅ¥ v uvedenom formáte" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Zariadenie '%s' nie je urÄené pre nahrávanie videa" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Nepodarilo sa zÃskaÅ¥ parametre zariadenia '%s'" @@ -253,6 +257,20 @@ msgstr "Video zariadenie odmietlo nové nastavenie frekvencie snÃmok." msgid "Video device could not create buffer pool." msgstr "Video zariadenie nemohlo vytvoriÅ¥ oblasÅ¥ vyrovnávacej pamäte." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Video zariadenie odmietlo nové nastavenie frekvencie snÃmok." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Tento ovládaÄ zariadenia '%s' nepodporuje IO metódu %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Nepodarilo sa zÃskaÅ¥ nastavenie prijÃmaÄa %d od zariadenia '%s'." @@ -277,10 +295,6 @@ msgstr "Nepodarilo sa nastaviÅ¥ vstup %d na zariadenà %s." msgid "Failed to change mute state for device '%s'." msgstr "Nepodarilo sa zmeniÅ¥ stav stlmenia pre zariadenie '%s'." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Neviem identifikovaÅ¥ zariadenie '%s'." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -305,6 +319,10 @@ msgstr "Zlyhala požiadavka norm na zariadenà '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Nepodarilo sa zÃskaÅ¥ atribúty ovládacÃch prvkov na zariadenà '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Neviem identifikovaÅ¥ zariadenie '%s'." + #, c-format msgid "This isn't a device '%s'." msgstr "Toto nie je zariadenie '%s'." @@ -321,6 +339,14 @@ msgstr "Zariadenie '%s' nie je urÄené pre nahrávanie." msgid "Device '%s' is not a output device." msgstr "Zariadenie '%s' nie je urÄené pre výstup." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Zariadenie '%s' nie je urÄené pre výstup." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Nepodarilo sa otvoriÅ¥ zariadenie '%s' pre ÄÃtanie a zápis." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Zlyhalo nastavenie norm na zariadenà '%s'." diff --git a/po/sl.gmo b/po/sl.gmo index 2e5a40ad3e52683b984f16ab5d05423aab81eab8..efa9a38ebf2e533ea74d7bcb7033021c316136b6 100644 GIT binary patch delta 2767 zcmZwHdu$X%9Ki8uDYRB7rKOZtVG0EbrS<M;5ekJCjz?d#_Mki@l5KA(+oQYn?s_~7 zHU?u5d>|Jkk<bKV<PV8x8WJ>WG=V?RNEFcc01RqCMWTQBj}g@GZ*K)8PMH17Opn=_ z-*0BGG#zZ~znquxqM~f1PNd#USE?T`4&_1lGE=GH_!TzbRm?&^kNdD1r62VA%~(Kx zE#_hm%Dj)`Bs_$R@Exp_SN%aFhk*)an}9Vq6W8Mm+>O)mb#MF}w$s0fk76jBm*Hug zg+=!(wGLO}96W;Z;?Hp^{*D10%dTe0RvT&LGmyX%+>7$V<0uO{k7f8P8aQEuQl+>H zr{HTS6Q04@coXIS&16?WT!t%fFRsLMI2R|3WC0TDHX451g)-4`tibQQ{wU%oI|-sJ za68uGVXuD~Wx+#6DK!meU==oF2JS|JrS>43R|jw$4q(5m^dyZuynvFsYe<^aEhIZ? zD1RinDhFkJ9Lhw+C_5>~moSV`{1YEQo3IiLHGn=mhBDtJlm%VQC;pRZ{KkOB+|j88 z_>s-46}TAJ;sQK~GSPXIvys7St8q3;?z^xY4|x3#P<DFV>kl21ilh&RF&-X6{BNWw z6=8risP$tx57>jU<F`?Eddlm6>h-@t$@MiPNNO~1k+U!zB?a|Ziw@4iH<2}{pHNcx zH%f|2`p2hs6!Lr$1N`9xw&9Q1f(yvgCftV-+UqD+b^>>+3b&&~<PCffzrZ<|Q<OTa zOOUBl1Z9Cwp~n7WG~{}Gf^si^!452AP(t|}%1Ylw*~xX3Q(QvcWXC-y3*GPeJ%;Gd z)v46&#Txn_;d0C>R%$i2APenRuhN*yz(uUXd}fuEufYa<8q4qkR-znr34Ik-V+YD% zI_!BAC1r0RQ>ynozeR~a8u8aS5l6`Vuc5(}RE;R7a|6oZ=tP2{x=}*D2VcgMxC=wX zQ5N<Y@@Y`Fa3*H+wUV<_iL#KzSc;7(^Tm<9r~_EQ`_%~=i|}KdkJ%(rb{0h0X+KH` zkD)~BXOsvPGpj^o4d&xsl!Xr9Vmymkn8T{lu#h^8DurOUbIJSN@bL{%O;kB-lc};G zDYfo1_2Aa24OBVFQaHr!VU_k0c~B(8@=}h8n?6bDN~#oDTs?KDbSPY&em7*9bVj;E zcOJ5H4zYXaB)n4AQRQ$gln!M@3im`Wr!8TZqN&TMToU&T$N`pHB2khEFQrN;mHfBT zkZ?;OwQf#{uv_Ho74+H<d)|%Q{dB72brw}VPEs0ExHo7O?X_M%10V9*?P8cp+SL&0 zP$X|sB;S%-xmv5KlJ91!pSpm$hMGs^3b}_#4jSLE{}egY>!}-)mxgr|)Z40V%{uMZ zEq!sf70~r|a!ICBW7xJ6*S%Yf9Xb||nnsWAFguODn5nI}wqn|}JEJ>#<7QZIv*KHH zD?e;AjqnZ~Y-_Ga9?zUNJZyIACdcXRFghcHKV)voN?#gG&d+V|H!z@MW;9_&wY+4r z(`ScOlVzK{Jf$qB+3Jisy;~gH9Nd@tOj@Q6IepPiGntz=FP%l!<#mh<_1W#KLwDZt zO5VcsA%O~i^2+GOKvlVKj`q*1_W8<u0iQ3swWYkxOjt3?vCD%-+^p6CpTDx)$G`bH z5U8#S3_enDG%eV^#R+RSDyn|xo%ZeFz+J-u)l39>qh>f^bQ^ZJ*`s$RoQRPuE-IYV z-W4^vP1};8Q_tE~M6EJ<qejBiQ>MkHBqvWVNLq!ZwXIPz&VSMTu*d1*m*(vW<JN2) zAxhn*K7GX69JQi`tz-8Fdw*edL93I98gbjuI}Mw;B2L(h7=vdDZ={Xd;J)3|w)b*7 z`NY`#B16Y)vqzR(q5k(5gW2Oh95zn2XB)A&k=W|(&zmMWv8Xipm)@3PY0~<9aY^!p z;_8(ZD#T$q{XUyDbVJ?J#=CcA8{KhB)!D{Yr;E)di0z%8C7~wgk*KrTu?N2{K9n}R r-HQIZN+TJcT9)nRAk-SHU!EM8y6xUgr%uD*=#sN(8E%BHPJ8Shq`s(l delta 2106 zcmYk+e@xVM9LMp`A>v68!YPO#eCq^J#O@B{X9@TlIY1PF(yg6wvlH$P5lJz3ZEdwV zZMkn|D>rJ{_`|I^Z^QXlZPp)Ut+m`*YhzN&HHX=3`G@^c&)0oV*Jph0@%em@@Av!u zyx*VCo!>ndOw1N!o-?#wdMW*4hA~lGw~!Cott?}5a1M9kAGjEs7CCOlWz4&93BH7S z&N!CgS**j$Sc1Rd8g#jhS#3<hR5PgL!XDHYlh}_J@i6{_0~qD4Yw=4Q#6PhXJF=Y@ zokTD53mCx9aV`FZ9xQvpm{k}+{oeqV@P2cGK{Xf7V+gNf6;`n9r?DILz{9u>FQQiR zJ#N9fxE%wz#_YgJtjFu903M<rE1q<oGl1)vpVFN7n`;cTl6h2wR-Q3!xD_>j0~PTl ztibPZ1OAPfSWVtZhVfxBHlqUU!vY*dl4xE>vTsf!Yc%g*LXm#R;9dL?$1s*}%riKL zKFsGSdch_v#~@lbf~x%)Y{ieU1%E}|S5DrkvDt;qcnp=1B-Y@phy3e8&Qd4x2GqP4 zYw=ZNznRN;*JaFA<X-bhp)s9!4YiVmMUMHnocT&5c2kck;SN;hhOrUPqB8q+5&2gw z?r}j8mvOi3!2rI7yD^D9m_>eH#C}wUW^g~=MwMjq3TMT~v4QzVsD=E5+EcmIg`ufO z1=O2hU@>?FbzI)Vjd&Fg-~&{up65&{&^NIWXHc8%9%_Y+E1f|1rTrB5aNWg2Rhqr{ z9G=5%_yhJ~Vnw+VX&ki|rm-DoQIT7gbME`Fn)wv!xZXgWhWprz<xe?#<b||D$e)R& zeH%%Vxq|F-^9@qkg!!2P!J1!CDb;e`2Oplq8>km|a0J%iQB=*RP$|8Hy8k9B6Zdf= zE~CIr*oO-6EmXi?p)&CR>vjI?D1=rzjCDAL9=wSP=yz<z<t$srXb@efmn##!bT!?( ziLUaf?Q%#RIR%_S*XHh~>oidTt>4*+{6?gL*rJOxHo9SRr)sVvmPuDr2DZ{!WU5RG zC`i|e9<`ke*fy!QgwGB-+r%uOD+5}TGNqQ#ZqK2&(3M7|Y9ZZE=TJOuD;|%W`dQ4W zpXo|p&qn<UD)l7nanmW%$xtaCH7fn6B~q#8bfsDkpF8OK(NN9v=-QP3Z#oS+TAlP~ z=_-vj);7AD&V8E(G=7Itt(?!z8m+E4vf4Uu+>)l<iiPbvi@Fx{938iV?zsKXU7u`S zyx(n4=eN0okyzN`o8<C>(=Pjp$8XPj_9X|Fwqz{ut*^Du6?SIV)%Y7Nf1tUp!M;;i zl3QEj^Vj$`Sbkr#uQpjwH0>H{-#cjet;pod@gbveAU*C5jfRFp*63JxXd-kd6gw2M zCMV*<A=7_wEOaOwi)i}AnOJ1lbVsac{2-ICH54Dg$autxg+|9h6XDc4?Cr%>_T}QH z<iEx9F8f%i$L=oixR1obQJx#Nn@XyZ?WLb(xzq2A+AeRgJyVu%N4+_A&^uz^_LkbW ryv=#0Jr){?ALQk!fRhJSec-aQE7#hsl@rMumEXEDl{WiA)rtQA!#D&F diff --git a/po/sl.po b/po/sl.po index 888456785..b628aa4d2 100644 --- a/po/sl.po +++ b/po/sl.po @@ -1,17 +1,17 @@ # Slovenian translation for gst-plugins-good. # This file is distributed under the same license as the gst-plugins-good package. -# Copyright (C) 2005 - 2013 Free Software Foundation, Inc. +# Copyright (C) 2005 - 2014 Free Software Foundation, Inc. # # Robert Horvat <robi@hipnos.net>, 2010. # Matej UrbanÄiÄ <matej.urban@gmail.com>, 2010 - 2011. -# Klemen KoÅ¡ir <klemen913@gmail.com>, 2012 - 2013. +# Klemen KoÅ¡ir <klemen913@gmail.com>, 2012 - 2014. # msgid "" msgstr "" -"Project-Id-Version: gst-plugins-good-1.0.3\n" +"Project-Id-Version: gst-plugins-good-1.2.1\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" -"PO-Revision-Date: 2013-01-05 10:03+0100\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" +"PO-Revision-Date: 2014-04-09 22:52+0100\n" "Last-Translator: Klemen KoÅ¡ir <klemen913@gmail.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" "Language: sl\n" @@ -22,7 +22,7 @@ msgstr "" "%100==4 ? 3 : 0);\n" msgid "Jack server not found" -msgstr "" +msgstr "Strežnika JACK ni mogoÄe najti" msgid "Failed to decode JPEG image" msgstr "Napaka med dekodiranjem JPEG slike" @@ -71,13 +71,13 @@ msgid "This file is invalid and cannot be played." msgstr "Datoteka je napaÄna, zato je ni mogoÄe predvajati." msgid "Cannot play stream because it is encrypted with PlayReady DRM." -msgstr "" +msgstr "Pretoka ni mogoÄe predvajati, ker je Å¡ifriran s PlayReady DRM." msgid "This file is corrupt and cannot be played." msgstr "Datoteka je pokvarjena, zato je ni mogoÄe predvajati." msgid "Invalid atom size." -msgstr "Neveljavna velikost atoma" +msgstr "Neveljavna velikost atoma." msgid "This file is incomplete and cannot be played." msgstr "Datoteka ni popolna, zato je ni mogoÄe predvajati." @@ -135,7 +135,7 @@ msgid "Playback is not supported by this audio device." msgstr "Predvajane s to zvoÄno napravo ni podprto." msgid "Audio playback error." -msgstr "Napaka predvajanja zvoka" +msgstr "Med predvajanjem zvoka je priÅ¡lo do napake." msgid "Recording is not supported by this audio device." msgstr "Snemanje s to zvoÄno napravo ni podprto." @@ -147,42 +147,38 @@ msgid "" "Could not open audio device for recording. You don't have permission to open " "the device." msgstr "" -"Ni mogoÄe odpreti zvoÄne naprave za snemanje. Ni ustreznih dovoljenj za " +"ZvoÄne naprave ni mogoÄe odpreti za snemanje. Ni ustreznih dovoljenj za " "odpiranje naprave." msgid "Could not open audio device for recording." -msgstr "Ni mogoÄe odpreti zvoÄne naprave za snemanje." +msgstr "ZvoÄne naprave ni mogoÄe odpreti za snemanje." msgid "Record Source" -msgstr "" +msgstr "Vir snemanja" msgid "Microphone" -msgstr "" +msgstr "Mikrofon" -#, fuzzy msgid "Line In" -msgstr "Analogni izhod" +msgstr "Analogni vhod" msgid "Internal CD" -msgstr "" +msgstr "Notranji CD" -#, fuzzy msgid "SPDIF In" -msgstr "Izhod SPDIF" +msgstr "Vhod SPDIF" -#, fuzzy msgid "AUX 1 In" -msgstr "AUX 1 izhod" +msgstr "Vhod AUX 1" -#, fuzzy msgid "AUX 2 In" -msgstr "AUX 2 izhod" +msgstr "Vhod AUX 2" msgid "Codec Loopback" -msgstr "" +msgstr "Povratna zanka kodeka" msgid "SunVTS Loopback" -msgstr "" +msgstr "Povratna zanka SunVTS" msgid "Volume" msgstr "Glasnost" @@ -206,10 +202,10 @@ msgid "SPDIF Out" msgstr "Izhod SPDIF" msgid "AUX 1 Out" -msgstr "AUX 1 izhod" +msgstr "Izhod AUX 1" msgid "AUX 2 Out" -msgstr "AUX 2 izhod" +msgstr "Izhod AUX 2" #, c-format msgid "Error reading %d bytes from device '%s'." @@ -249,6 +245,10 @@ msgstr "Naprava \"%s\" ne podpira zajemanja v loÄljivosti %dx%d." msgid "Device '%s' cannot capture in the specified format" msgstr "Naprava \"%s\" ne podpira zajemanja v izbrani obliki." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Naprava \"%s\" ne podpira zajemanja videa." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Ni mogoÄe pridobiti parametrov na napravi '%s'." @@ -259,6 +259,20 @@ msgstr "Napravi ni mogoÄe doloÄiti novih nastavitev hitrosti sliÄic." msgid "Video device could not create buffer pool." msgstr "Naprava ne more ustvariti zaloge medpomnilnika." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Napravi ni mogoÄe doloÄiti novih nastavitev hitrosti sliÄic." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Gonilnik naprave \"%s\" ne podpira nobenega naÄina I/O %d." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -286,10 +300,6 @@ msgid "Failed to change mute state for device '%s'." msgstr "" "Med nastavljanjem stanja glasnosti na napravi \"%s\" je priÅ¡lo do napake." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ni mogoÄe doloÄiti naprave '%s'." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -314,9 +324,13 @@ msgstr "Napaka med poizvedovanjem uravnanosti naprave '%s'." msgid "Failed getting controls attributes on device '%s'." msgstr "Napaka med pridobivanjem atributov nadzora naprave '%s'." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Naprave \"%s\" ni mogoÄe doloÄiti." + #, c-format msgid "This isn't a device '%s'." -msgstr "To ni naprava '%s'." +msgstr "To ni naprava \"%s\"." #, c-format msgid "Could not open device '%s' for reading and writing." @@ -330,9 +344,17 @@ msgstr "Naprava '%s' ni naprava za zajemanje." msgid "Device '%s' is not a output device." msgstr "Naprava '%s' ni izhodna naprava." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Naprava '%s' ni izhodna naprava." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Ni mogoÄe odpreti naprave '%s' za branje in pisanje." + #, c-format msgid "Failed to set norm for device '%s'." -msgstr "Napaka med nastavljanjem naprave '%s'." +msgstr "Med nastavljanjem naprave \"%s\" je priÅ¡lo do napake." #, c-format msgid "Failed to get current tuner frequency for device '%s'." diff --git a/po/sq.gmo b/po/sq.gmo index 467ce5153c1658d62b917db47a317ec1e298e105..5fc4d274bbf607d46230cd368bd06f87c1cb280b 100644 GIT binary patch delta 23 ecmZ3>x|Vf=7bBOcu7R<Fp@o%!!R8RgNJaol1_iVL delta 23 ecmZ3>x|Vf=7bBO6uAzm3p^=q|`Q{MDNJaolPzAmK diff --git a/po/sq.po b/po/sq.po index 1c3fd72d5..71792c614 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -233,6 +233,10 @@ msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje." msgid "Device '%s' cannot capture in the specified format" msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje." +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje." + #, fuzzy, c-format msgid "Could not get parameters on device '%s'" msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"." @@ -243,6 +247,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "E pamundur marrja e buffers të mjaftueshëm nga dispozitivi \"%s\"." @@ -267,10 +283,6 @@ msgstr "E pamundur mbyllja e dispozitivit audio \"%s\"." msgid "Failed to change mute state for device '%s'." msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"." -#, fuzzy, c-format -msgid "Cannot identify device '%s'." -msgstr "I pamundur shkrimi në dispozitivin \"%s\"." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -293,6 +305,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, fuzzy, c-format +msgid "Cannot identify device '%s'." +msgstr "I pamundur shkrimi në dispozitivin \"%s\"." + #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -309,6 +325,14 @@ msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje." msgid "Device '%s' is not a output device." msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Dispozitivi \"%s\" nuk është një dispozitiv marrje." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "E pamundur hapja e dispozitivit \"%s\" për lexim dhe shkrim." + #, fuzzy, c-format msgid "Failed to set norm for device '%s'." msgstr "E pamundur marrja e buffers nga dispozitivi \"%s\"." diff --git a/po/sr.gmo b/po/sr.gmo index 8cb45760be880d85e6d22d9990d966e8c90ca3ea..d431335f649670b3defe87d78baa56fb1b208684 100644 GIT binary patch delta 23 ecmZ3Lvnpr912HaBT?1nULklYdgUzqR9OMCM+y~bH delta 23 ecmZ3Lvnpr912HZWT|)~6LnA8_^Ubfs9OMCNCI{gF diff --git a/po/sr.po b/po/sr.po index 8b0d7e7da..b92f89479 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+0200\n" "PO-Revision-Date: 2013-10-04 12:15+0200\n" "Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n" "Language-Team: Serbian <(nothing)>\n" @@ -244,6 +244,10 @@ msgstr "Уређај „%s“ не може да Ñнима на %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Уређај „%s“ не може да Ñнима у наведеном запиÑу" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Уређај „%s“ не подржава видео Ñнимање" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Ðе могу да добавим параметре на уређају „%s“" @@ -254,6 +258,20 @@ msgstr "Видео уређај не прихвата нове поÑтавке msgid "Video device could not create buffer pool." msgstr "Видео уређај не може да направи Ñмештај међумеморије." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Видео уређај не прихвата нове поÑтавке протока кадрова." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Управљачки програм уређаја „%s“ не подржава УИ начин %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "ÐиÑам уÑпео да добавим подешавања тјунера %d на уређају „%s“." @@ -278,10 +296,6 @@ msgstr "ÐиÑам уÑпео да подеÑим улаз %d на уређај msgid "Failed to change mute state for device '%s'." msgstr "ÐиÑам уÑпео да изменим Ñтање утишаноÑти за уређај „%s“." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ðе могу да раÑпознам уређај „%s“." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -306,6 +320,10 @@ msgstr "ÐиÑам уÑпео да пропитам норму на уређај msgid "Failed getting controls attributes on device '%s'." msgstr "ÐиÑам уÑпео да добавим ÑвојÑтва контрола на уређају „%s“." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ðе могу да раÑпознам уређај „%s“." + #, c-format msgid "This isn't a device '%s'." msgstr "Ово није уређај „%s“." @@ -322,6 +340,14 @@ msgstr "Уређај „%s“ није уређај за Ñнимање." msgid "Device '%s' is not a output device." msgstr "Уређај „%s“ није излазни уређај." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Уређај „%s“ није излазни уређај." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Ðе могу да покренем уређај „%s“ ради читања и упиÑа." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "ÐиÑам уÑпео да подеÑим норму за уређај „%s“." diff --git a/po/sv.gmo b/po/sv.gmo index af0f15c311e62806096fdce071be94fa01b387ef..fc90dbee099b8fe73e0d22c7162fc5399bdeb089 100644 GIT binary patch delta 23 ecmbR1I@fiBu`rjZu7R<Fp@o%!!Dd_G1bzTgPzE0W delta 23 ecmbR1I@fiBu`rj3uAzm3p^=q|`DR<;1bzTgng%HV diff --git a/po/sv.po b/po/sv.po index 7b4c34d6c..2e5211280 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -244,6 +244,10 @@ msgstr "Enheten \"%s\" kan inte fÃ¥nga i %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Enheten \"%s\" kan inte fÃ¥nga i det angivna formatet" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Enheten \"%s\" är ingen utgÃ¥ngsenhet." + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Kunde inte fÃ¥ tag i parametrar pÃ¥ enheten \"%s\"" @@ -255,6 +259,20 @@ msgstr "VideoingÃ¥ngsenheten accepterade inte ny inställning för bildfrekvens. msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "VideoingÃ¥ngsenheten accepterade inte ny inställning för bildfrekvens." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Drivrutinen för enheten \"%s\" saknar stöd för nÃ¥gon känd fÃ¥ngstmetod." + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -281,10 +299,6 @@ msgstr "Kunde inte ställa in ingÃ¥ng %d pÃ¥ enheten %s." msgid "Failed to change mute state for device '%s'." msgstr "Misslyckades med att fÃ¥ tag pÃ¥ signalstyrka för enheten \"%s\"." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Kunde inte identifiera enheten \"%s\"." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -311,6 +325,10 @@ msgstr "Misslyckades med att frÃ¥ga efter norm pÃ¥ enheten \"%s\"." msgid "Failed getting controls attributes on device '%s'." msgstr "Misslyckades med att fÃ¥ tag pÃ¥ kontrollattributen pÃ¥ enheten \"%s\"." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Kunde inte identifiera enheten \"%s\"." + #, c-format msgid "This isn't a device '%s'." msgstr "Det här är inte en enhet \"%s\"." @@ -327,6 +345,14 @@ msgstr "Enheten \"%s\" är ingen fÃ¥ngstenhet." msgid "Device '%s' is not a output device." msgstr "Enheten \"%s\" är ingen utgÃ¥ngsenhet." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Enheten \"%s\" är ingen utgÃ¥ngsenhet." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Kunde inte öppna enheten \"%s\" för läsning och skrivning." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Misslyckades med att ställa in norm för enheten \"%s\"." diff --git a/po/tr.gmo b/po/tr.gmo index ee57fef6e394f7f7be9ee809f11a86ef88ff069a..0888d365055413395efb7b49a4dc6c45f3ef6ce3 100644 GIT binary patch delta 23 ecmdn%yVrMvju@Azu7R<Fp@o%!!DchDb^!oc5eAO{ delta 23 ecmdn%yVrMvju@ATuAzm3p^=q|`DQb*b^!ocTLzf` diff --git a/po/tr.po b/po/tr.po index 8f611d48d..f38fa9009 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -239,6 +239,10 @@ msgstr "Aygıt '%s' görüntü yakalayamadı%dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Aygıt '%s' belirtilen kipte görüntü yakalayamadı" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Aygıt '%s' video yakalamayı desteklemiyor" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "DeÄŸiÅŸtirgeler aygıttan '%s' alınamıyor" @@ -249,6 +253,20 @@ msgstr "Vidyo aygıtı yeni çerçeve oranı ayarlarını kabul etmedi." msgid "Video device could not create buffer pool." msgstr "Video aygıtı tampon havuzu yaratamadı." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Vidyo aygıtı yeni çerçeve oranı ayarlarını kabul etmedi." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Bu aygıtın sürücüsü '%s' IO yöntemini desteklemiyor %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Ä°stasyon ayarlarını bulma iÅŸlemi %d ÅŸu aygıtta '%s' baÅŸarılamadı." @@ -273,10 +291,6 @@ msgstr "GiriÅŸ deÄŸeri olarak bu %d ÅŸu aygıtta %s ayarlanamadı." msgid "Failed to change mute state for device '%s'." msgstr "Aygıt '%s' susturulmaya ayarlanamadı." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Aygıt tanımlanamıyor '%s'." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -301,6 +315,10 @@ msgstr "Åžu aygıtta '%s' sorgu normuna eriÅŸilemedi." msgid "Failed getting controls attributes on device '%s'." msgstr "Denetim davranışları ÅŸu aygıtta '%s' bulunamadı." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Aygıt tanımlanamıyor '%s'." + #, c-format msgid "This isn't a device '%s'." msgstr "Bu bir aygıt deÄŸil'%s'." @@ -317,6 +335,14 @@ msgstr "Aygıt '%s' bir yakalama aygıtı deÄŸil." msgid "Device '%s' is not a output device." msgstr "Aygıt '%s' bir çıkış aygıtı deÄŸil." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Aygıt '%s' bir çıkış aygıtı deÄŸil." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Åžu aygıtı '%s' okuma ve yazma için açamıyor." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Aygıt için '%s' norm deÄŸerleri ayarlanamadı." diff --git a/po/uk.gmo b/po/uk.gmo index 7b1f67768accae8996e420b69681b09abc3efa6e..53dbcb1550f2fd1d75060dee92638f3e699775b4 100644 GIT binary patch delta 23 ecmbQ3H!*L+12HaBT?1nULklYdgUzqR)D-|_vj>p? delta 23 ecmbQ3H!*L+12HZWT|)~6LnA8_^Ubfs)D-|_{Rf)> diff --git a/po/uk.po b/po/uk.po index 88040bf6c..0befc669f 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good 1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -251,6 +251,10 @@ msgstr "ПриÑтрій \"%s\" не здатний захоплювати ві msgid "Device '%s' cannot capture in the specified format" msgstr "ПриÑтрій \"%s\" не здатний захоплювати відео у вказаному форматі" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "ПриÑтрій «%s» не може захоплювати відеодані" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ параметри приÑтрою «%s»." @@ -262,6 +266,21 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "ВідеоприÑтрою не вдалоÑÑ Ñтворити Ñховище буферизованих даних." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "" +"ВідеоприÑтроєм не підтримуєтьÑÑ Ð½Ð¾Ð²Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° чаÑтоти кадрів." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Драйвер приÑтрою «%s» не підтримує метод введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо приймача %d приÑтрою «%s»." @@ -286,10 +305,6 @@ msgstr "Ðе вдалоÑÑ Ð²Ñтановити ввід %d приÑтрою « msgid "Failed to change mute state for device '%s'." msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ñтан Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·Ð²ÑƒÐºÑƒ на приÑтрої «%s»." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Ðе вдалоÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ приÑтрій «%s»." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -314,6 +329,10 @@ msgstr "Помилка при запиті норми приÑтрою «%s»." msgid "Failed getting controls attributes on device '%s'." msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ атрибути регулÑторів ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтрою «%s»." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Ðе вдалоÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ приÑтрій «%s»." + #, c-format msgid "This isn't a device '%s'." msgstr "Це не приÑтрій «%s»." @@ -330,6 +349,14 @@ msgstr "ПриÑтрій «%s» не Ñ” приÑтроєм захопленнÑ. msgid "Device '%s' is not a output device." msgstr "ПриÑтрій «%s» не Ñ” приÑтроєм Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "ПриÑтрій «%s» не Ñ” приÑтроєм Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ приÑтрій «%s» Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð° запиÑу." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Ðе вдалоÑÑ Ð²Ñтановити норму приÑтрою «%s»." diff --git a/po/vi.gmo b/po/vi.gmo index f91fd5dd051426f3889e84c5ba7b3d49ad5f05ec..43b38374720db95b66004ed7a2a02a743dcedef0 100644 GIT binary patch delta 23 fcmdlJzbAgf12HaBT?1nULklYdgUzqRE=d3YYwrkb delta 23 fcmdlJzbAgf12HZWT|)~6LnA8_^UbfsE=d3YY&i&a diff --git a/po/vi.po b/po/vi.po index 832e22058..236e0cd90 100644 --- a/po/vi.po +++ b/po/vi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gst-plugins-good-1.1.4\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -248,6 +248,10 @@ msgstr "Thiết bị “%s†không thể chụp tại %dx%d" msgid "Device '%s' cannot capture in the specified format" msgstr "Thiết bị “%s†không thể chụp ở định dạng đã cho" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "Thiết bị “%s†không há»— trợ chức năng quay video" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "Không thể lấy các tham số vá» thiết bị “%sâ€." @@ -258,6 +262,20 @@ msgstr "Thiết bị video không chấp nháºn cà i đặt vá» tốc Ä‘á»™ khu msgid "Video device could not create buffer pool." msgstr "Thiết bị video không thể tạo kho đệm." +#, fuzzy +msgid "Video device did not provide output format." +msgstr "Thiết bị video không chấp nháºn cà i đặt vá» tốc Ä‘á»™ khung hình má»›i." + +msgid "Video device returned invalid dimensions." +msgstr "" + +#, fuzzy +msgid "Video devices uses an unsupported interlacing method." +msgstr "Trình Ä‘iá»u khiển của thiết bị “%s†không há»— trợ phÆ°Æ¡ng pháp VR %d" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -283,10 +301,6 @@ msgstr "Gặp lá»—i khi đặt dữ liệu nháºp %d và o thiết bị “%sâ€. msgid "Failed to change mute state for device '%s'." msgstr "Gặp lá»—i khi thay đổi trạng thái ngắt tiếng cho thiết bị “%sâ€." -#, c-format -msgid "Cannot identify device '%s'." -msgstr "Không thể nháºn diện thiết bị “%sâ€." - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -311,6 +325,10 @@ msgstr "Lá»—i truy vấn chỉ tiêu trên thiết bị “%sâ€." msgid "Failed getting controls attributes on device '%s'." msgstr "Lá»—i lấy các thuá»™c tÃnh của bá»™ Ä‘iá»u khiển trên thiết bị “%sâ€." +#, c-format +msgid "Cannot identify device '%s'." +msgstr "Không thể nháºn diện thiết bị “%sâ€." + #, c-format msgid "This isn't a device '%s'." msgstr "Không phải là thiết bị “%sâ€." @@ -327,6 +345,14 @@ msgstr "Thiết bị “%s†không phải là thiết bị bắt hình/tiếng msgid "Device '%s' is not a output device." msgstr "Thiết bị “%s†không phải là thiết bị xuất ra." +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "Thiết bị “%s†không phải là thiết bị xuất ra." + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "Không thể mở thiết bị “%s†để Ä‘á»c và ghi." + #, c-format msgid "Failed to set norm for device '%s'." msgstr "Gặp lá»—i khi đặt chỉ tiêu cho thiết bị “%sâ€." diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index 646060a5027088cdb1ad0febf21381bea3fc62c8..ae6e9df4002110064a182d67fbd172093f0ede17 100644 GIT binary patch delta 23 ecmbPkINfkVH6NF$u7R<Fp@o%!!RA&zAua$@D+V3_ delta 23 ecmbPkINfkVH6NFWuAzm3p^=q|`Q}zWAua$@bp|K^ diff --git a/po/zh_CN.po b/po/zh_CN.po index 587da0462..eb2719554 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -239,6 +239,10 @@ msgstr "设备‘%s’ä¸èƒ½åœ¨ %dx%d 处æ•èŽ·" msgid "Device '%s' cannot capture in the specified format" msgstr "设备‘%sâ€™æ— æ³•ä»¥æŒ‡å®šæ ¼å¼æ•èŽ·" +#, fuzzy, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "设备‘%s’ä¸æ”¯æŒè§†é¢‘æ•èŽ·" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "æ— æ³•èŽ·å–设备‘%s’的å‚æ•°" @@ -250,6 +254,19 @@ msgstr "视频输入设备ä¸æŽ¥å—新的帧率设置。" msgid "Video device could not create buffer pool." msgstr "" +#, fuzzy +msgid "Video device did not provide output format." +msgstr "视频输入设备ä¸æŽ¥å—新的帧率设置。" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, fuzzy, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "获å–设备 %2$s 上的微调钮 %1$d 的设置时出错" @@ -274,10 +291,6 @@ msgstr "设置设备 %2$s 上的输入 %1$d 时出错。" msgid "Failed to change mute state for device '%s'." msgstr "获å–设备‘%s’的信å·é•¿åº¦æ—¶å‡ºé”™ã€‚" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "æ— æ³•ç¡®è®¤è®¾å¤‡â€˜%s’。" - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -300,6 +313,10 @@ msgstr "查寻设备 ‘%s’上的基准时出错。" msgid "Failed getting controls attributes on device '%s'." msgstr "获å–设备‘%s’上的控制属性时出错。" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "æ— æ³•ç¡®è®¤è®¾å¤‡â€˜%s’。" + #, c-format msgid "This isn't a device '%s'." msgstr "ä¸æ˜¯è®¾å¤‡â€˜%s’。" @@ -316,6 +333,14 @@ msgstr "‘%s’ä¸æ˜¯ä¸€ä¸ªæ•èŽ·è®¾å¤‡ã€‚" msgid "Device '%s' is not a output device." msgstr "‘%s’ä¸æ˜¯è¾“出设备。" +#, fuzzy, c-format +msgid "Device '%s' is not a M2M device." +msgstr "‘%s’ä¸æ˜¯è¾“出设备。" + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "æ— æ³•æ‰“å¼€è®¾å¤‡â€˜%s’读写。" + #, fuzzy, c-format msgid "Failed to set norm for device '%s'." msgstr "设置设备‘%s’的基准时出错。" diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo index e6b788b57572f0e302e3c89b8564163f8be08272..61147f40c6b0e3ca5f58ba7dbe6fb1715677a3b8 100644 GIT binary patch delta 23 ecmZ3?vzTW?5;K>nu7R<Fp@o%!!R8$1?MwhoX$C<6 delta 23 ecmZ3?vzTW?5;K>HuAzm3p^=q|`Q{wv?Mwhovj$55 diff --git a/po/zh_HK.po b/po/zh_HK.po index 839c90c98..132f0dd8c 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -228,6 +228,10 @@ msgstr "" msgid "Device '%s' cannot capture in the specified format" msgstr "" +#, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "" @@ -238,6 +242,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -262,10 +278,6 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -288,6 +300,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -304,6 +320,14 @@ msgstr "" msgid "Device '%s' is not a output device." msgstr "" +#, c-format +msgid "Device '%s' is not a M2M device." +msgstr "" + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘æ–‡ä»¶è¿›è¡Œæ··éŸ³æŽ§åˆ¶æ“作。" + #, c-format msgid "Failed to set norm for device '%s'." msgstr "" @@ -347,9 +371,6 @@ msgstr "" msgid "Cannot operate without a clock" msgstr "" -#~ msgid "Could not open audio device for mixer control handling." -#~ msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘æ–‡ä»¶è¿›è¡Œæ··éŸ³æŽ§åˆ¶æ“作。" - #~ msgid "" #~ "Could not open audio device for mixer control handling. This version of " #~ "the Open Sound System is not supported by this element." diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index c15d17a240db1f979739f15c8c774341e162929d..6cef7b21c91ded6b731da2aac13777c31be6d62a 100644 GIT binary patch delta 23 ecmZ3)vxsLy5;K>nu7R<Fp@o%!!R8$1ZA<`7I|e=g delta 23 ecmZ3)vxsLy5;K>HuAzm3p^=q|`Q{wvZA<`7g$76f diff --git a/po/zh_TW.po b/po/zh_TW.po index 16582a906..8369c2d15 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: 2014-04-18 12:47+0200\n" +"POT-Creation-Date: 2014-05-03 18:00+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" @@ -228,6 +228,10 @@ msgstr "" msgid "Device '%s' cannot capture in the specified format" msgstr "" +#, c-format +msgid "Device '%s' does support non-contiguous planes" +msgstr "" + #, c-format msgid "Could not get parameters on device '%s'" msgstr "" @@ -238,6 +242,18 @@ msgstr "" msgid "Video device could not create buffer pool." msgstr "" +msgid "Video device did not provide output format." +msgstr "" + +msgid "Video device returned invalid dimensions." +msgstr "" + +msgid "Video devices uses an unsupported interlacing method." +msgstr "" + +msgid "Video devices uses an unsupported pixel format." +msgstr "" + #, c-format msgid "Failed to get settings of tuner %d on device '%s'." msgstr "" @@ -262,10 +278,6 @@ msgstr "" msgid "Failed to change mute state for device '%s'." msgstr "" -#, c-format -msgid "Cannot identify device '%s'." -msgstr "" - #, c-format msgid "" "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if " @@ -288,6 +300,10 @@ msgstr "" msgid "Failed getting controls attributes on device '%s'." msgstr "" +#, c-format +msgid "Cannot identify device '%s'." +msgstr "" + #, c-format msgid "This isn't a device '%s'." msgstr "" @@ -304,6 +320,14 @@ msgstr "" msgid "Device '%s' is not a output device." msgstr "" +#, c-format +msgid "Device '%s' is not a M2M device." +msgstr "" + +#, fuzzy, c-format +msgid "Could not dup device '%s' for reading and writing." +msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘æ–‡ä»¶è¿›è¡Œæ··éŸ³æŽ§åˆ¶æ“作。" + #, c-format msgid "Failed to set norm for device '%s'." msgstr "" @@ -347,9 +371,6 @@ msgstr "" msgid "Cannot operate without a clock" msgstr "" -#~ msgid "Could not open audio device for mixer control handling." -#~ msgstr "æ— æ³•æ‰“å¼€éŸ³é¢‘æ–‡ä»¶è¿›è¡Œæ··éŸ³æŽ§åˆ¶æ“作。" - #~ msgid "" #~ "Could not open audio device for mixer control handling. This version of " #~ "the Open Sound System is not supported by this element." diff --git a/sys/Makefile.in b/sys/Makefile.in index cac90a70b..b8c435cdc 100644 --- a/sys/Makefile.in +++ b/sys/Makefile.in @@ -98,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -114,7 +113,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -471,7 +469,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in index 672e66e9a..6ff8d4bcc 100644 --- a/sys/directsound/Makefile.in +++ b/sys/directsound/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -490,7 +488,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in index 95e0c2c98..823f7dbb9 100644 --- a/sys/oss/Makefile.in +++ b/sys/oss/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in index 44ff5142f..c48d0b2a0 100644 --- a/sys/oss4/Makefile.in +++ b/sys/oss4/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/oss4/oss4-audio.c b/sys/oss4/oss4-audio.c index 56d12b15e..0896081d7 100644 --- a/sys/oss4/oss4-audio.c +++ b/sys/oss4/oss4-audio.c @@ -271,7 +271,7 @@ gst_oss4_audio_set_ringbuffer_channel_layout (GstObject * obj, gint fd, GstAudioChannelPosition ch_layout[8] = { 0, }; num_channels = GST_AUDIO_INFO_CHANNELS (&spec->info); - if (num_channels < 3 || num_channels > 9) + if (num_channels < 3 || num_channels > 8) return; if (spec->type != GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW) diff --git a/sys/oss4/oss4-audio.h b/sys/oss4/oss4-audio.h index 054ecf926..54128c0d8 100644 --- a/sys/oss4/oss4-audio.h +++ b/sys/oss4/oss4-audio.h @@ -18,7 +18,7 @@ */ #ifndef GST_OSS4_AUDIO_H -#define GST_OSS4_AUDIO_H_ +#define GST_OSS4_AUDIO_H #include <gst/gst.h> #include <gst/audio/audio.h> diff --git a/sys/oss4/oss4-property-probe.c b/sys/oss4/oss4-property-probe.c index 2e164f285..4644ea126 100644 --- a/sys/oss4/oss4-property-probe.c +++ b/sys/oss4/oss4-property-probe.c @@ -114,17 +114,6 @@ gst_oss4_property_probe_needs_probe (GstPropertyProbe * probe, #endif -static gint -oss4_mixerinfo_priority_cmp (struct oss_mixerinfo *mi1, - struct oss_mixerinfo *mi2) -{ - /* return negative vaue if mi1 comes before mi2 */ - if (mi1->priority != mi2->priority) - return mi2->priority - mi1->priority; - - return strcmp (mi1->devnode, mi2->devnode); -} - /* caller must ensure LOCK is taken (e.g. if ioctls need to be serialised) */ gboolean gst_oss4_property_probe_find_device_name (GstObject * obj, int fd, @@ -189,65 +178,6 @@ gst_oss4_property_probe_find_device_name_nofd (GstObject * obj, return res; } -static GList * -gst_oss4_property_probe_get_mixer_devices (GstObject * obj, int fd, - struct oss_sysinfo *si) -{ - GList *m, *mixers = NULL; - GList *devices = NULL; - - int i; - - GST_LOG_OBJECT (obj, "%d mixer devices", si->nummixers); - - /* first, find suitable mixer devices and sort by priority */ - for (i = 0; i < si->nummixers; ++i) { - struct oss_mixerinfo mi = { 0, }; - - mi.dev = i; - if (ioctl (fd, SNDCTL_MIXERINFO, &mi) == -1) { - GST_DEBUG_OBJECT (obj, "MIXERINFO ioctl for device %d failed", i); - continue; - } - - GST_INFO_OBJECT (obj, "mixer device %d:", i); - GST_INFO_OBJECT (obj, " enabled : %s", (mi.enabled) ? "yes" : - "no (powered off or unplugged)"); - GST_INFO_OBJECT (obj, " priority : %d", mi.priority); - GST_INFO_OBJECT (obj, " devnode : %s", mi.devnode); - GST_INFO_OBJECT (obj, " handle : %s", mi.handle); - GST_INFO_OBJECT (obj, " caps : 0x%02x", mi.caps); - GST_INFO_OBJECT (obj, " name : %s", mi.name); - - if (!mi.enabled) { - GST_DEBUG_OBJECT (obj, "mixer device is not usable/enabled, skipping"); - continue; - } - - /* only want mixers that control hardware directly */ - if ((mi.caps & MIXER_CAP_VIRTUAL)) { - GST_DEBUG_OBJECT (obj, "mixer device is a virtual device, skipping"); - continue; - } - - mixers = g_list_insert_sorted (mixers, g_memdup (&mi, sizeof (mi)), - (GCompareFunc) oss4_mixerinfo_priority_cmp); - } - - /* then create device list according to priority */ - for (m = mixers; m != NULL; m = m->next) { - struct oss_mixerinfo *mi = (struct oss_mixerinfo *) m->data; - - GST_LOG_OBJECT (obj, "mixer device: '%s'", mi->devnode); - devices = g_list_prepend (devices, g_strdup (mi->devnode)); - g_free (m->data); - } - g_list_free (mixers); - mixers = NULL; - - return g_list_reverse (devices); -} - static GList * gst_oss4_property_probe_get_audio_devices (GstObject * obj, int fd, struct oss_sysinfo *si, int cap_mask) @@ -315,7 +245,8 @@ gst_oss4_property_probe_get_values (GstObject * probe, const gchar * pname) fd = GST_OSS4_SOURCE (probe)->fd; } else { GST_OBJECT_UNLOCK (obj); - g_return_val_if_reached (NULL); + g_assert_not_reached (); + return NULL; } /* copy fd if it's open, so we can just unconditionally close() later */ @@ -334,14 +265,10 @@ gst_oss4_property_probe_get_values (GstObject * probe, const gchar * pname) if (ioctl (fd, SNDCTL_SYSINFO, &si) == -1) goto no_sysinfo; - if (cap_mask != 0) { - devices = - gst_oss4_property_probe_get_audio_devices (obj, fd, &si, cap_mask); - } else { - devices = gst_oss4_property_probe_get_mixer_devices (obj, fd, &si); - } + devices = gst_oss4_property_probe_get_audio_devices (obj, fd, &si, cap_mask); if (devices == NULL) { + GST_OBJECT_UNLOCK (obj); GST_DEBUG_OBJECT (obj, "No devices found"); goto done; } diff --git a/sys/oss4/oss4-sink.c b/sys/oss4/oss4-sink.c index eb3ada0fe..84028e7a5 100644 --- a/sys/oss4/oss4-sink.c +++ b/sys/oss4/oss4-sink.c @@ -38,8 +38,6 @@ * ]| will play an Ogg/Vorbis audio file and output it using the Open Sound System * version 4. * </refsect2> - * - * Since: 0.10.7 */ #ifdef HAVE_CONFIG_H diff --git a/sys/oss4/oss4-source.c b/sys/oss4/oss4-source.c index e8c667e09..84b315d35 100644 --- a/sys/oss4/oss4-source.c +++ b/sys/oss4/oss4-source.c @@ -31,8 +31,6 @@ * Ogg/Vorbis file (this will only work if your mixer settings are right * and the right inputs areenabled etc.) * </refsect2> - * - * Since: 0.10.7 */ /* FIXME: make sure we're not doing ioctls from the app thread (e.g. via the diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in index 72f1c7c95..3ba5028c3 100644 --- a/sys/osxaudio/Makefile.in +++ b/sys/osxaudio/Makefile.in @@ -90,7 +90,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -106,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -494,7 +492,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/osxaudio/gstosxaudioringbuffer.c b/sys/osxaudio/gstosxaudioringbuffer.c index 997ae975c..14faa7835 100644 --- a/sys/osxaudio/gstosxaudioringbuffer.c +++ b/sys/osxaudio/gstosxaudioringbuffer.c @@ -87,11 +87,9 @@ static void gst_osx_audio_ring_buffer_class_init (GstOsxAudioRingBufferClass * klass) { GObjectClass *gobject_class; - GstObjectClass *gstobject_class; GstAudioRingBufferClass *gstringbuffer_class; gobject_class = (GObjectClass *) klass; - gstobject_class = (GstObjectClass *) klass; gstringbuffer_class = (GstAudioRingBufferClass *) klass; ring_parent_class = g_type_class_peek_parent (klass); diff --git a/sys/osxaudio/gstosxaudiosink.c b/sys/osxaudio/gstosxaudiosink.c index 8f01a3bad..0479ce1ce 100644 --- a/sys/osxaudio/gstosxaudiosink.c +++ b/sys/osxaudio/gstosxaudiosink.c @@ -58,8 +58,6 @@ * gst-launch-1.0 filesrc location=sine.ogg ! oggdemux ! vorbisdec ! audioconvert ! audioresample ! osxaudiosink * ]| Play an Ogg/Vorbis file. * </refsect2> - * - * Last reviewed on 2006-03-01 (0.10.4) */ #ifdef HAVE_CONFIG_H @@ -394,10 +392,6 @@ done: static GstBuffer * gst_osx_audio_sink_sink_payload (GstAudioBaseSink * sink, GstBuffer * buf) { - GstOsxAudioSink *osxsink; - - osxsink = GST_OSX_AUDIO_SINK (sink); - if (RINGBUFFER_IS_SPDIF (sink->ringbuffer->spec.type)) { gint framesize = gst_audio_iec61937_frame_size (&sink->ringbuffer->spec); GstBuffer *out; diff --git a/sys/osxaudio/gstosxcoreaudio.h b/sys/osxaudio/gstosxcoreaudio.h index 421ff6245..78cd4b997 100644 --- a/sys/osxaudio/gstosxcoreaudio.h +++ b/sys/osxaudio/gstosxcoreaudio.h @@ -34,7 +34,7 @@ #else #include <CoreAudio/CoreAudio.h> #include <AudioToolbox/AudioToolbox.h> - #if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_5 + #if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 #include <CoreServices/CoreServices.h> #define AudioComponentFindNext FindNextComponent #define AudioComponentInstanceNew OpenAComponent diff --git a/sys/osxvideo/Makefile.am b/sys/osxvideo/Makefile.am index 994b48c88..e90869573 100644 --- a/sys/osxvideo/Makefile.am +++ b/sys/osxvideo/Makefile.am @@ -3,9 +3,9 @@ plugin_LTLIBRARIES = libgstosxvideosink.la libgstosxvideosink_la_SOURCES = osxvideosink.m cocoawindow.m libgstosxvideosink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) -DRUN_NS_APP_THREAD + $(GST_PLUGINS_BASE_CFLAGS) libgstosxvideosink_la_OBJCFLAGS = $(GST_OBJCFLAGS) $(GST_BASE_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) -DRUN_NS_APP_THREAD + $(GST_PLUGINS_BASE_CFLAGS) libgstosxvideosink_la_LIBADD = \ $(GST_LIBS) \ $(GST_BASE_LIBS) \ @@ -13,6 +13,6 @@ libgstosxvideosink_la_LIBADD = \ -lgstvideo-$(GST_API_VERSION) libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,QuickTime -Wl,-framework -Wl,OpenGL -libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) +libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC noinst_HEADERS = osxvideosink.h cocoawindow.h diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in index d838d7b61..70f5440f3 100644 --- a/sys/osxvideo/Makefile.in +++ b/sys/osxvideo/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -560,10 +557,10 @@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstosxvideosink.la libgstosxvideosink_la_SOURCES = osxvideosink.m cocoawindow.m libgstosxvideosink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) -DRUN_NS_APP_THREAD + $(GST_PLUGINS_BASE_CFLAGS) libgstosxvideosink_la_OBJCFLAGS = $(GST_OBJCFLAGS) $(GST_BASE_CFLAGS) \ - $(GST_PLUGINS_BASE_CFLAGS) -DRUN_NS_APP_THREAD + $(GST_PLUGINS_BASE_CFLAGS) libgstosxvideosink_la_LIBADD = \ $(GST_LIBS) \ @@ -572,7 +569,7 @@ libgstosxvideosink_la_LIBADD = \ -lgstvideo-$(GST_API_VERSION) libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,QuickTime -Wl,-framework -Wl,OpenGL -libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) +libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC noinst_HEADERS = osxvideosink.h cocoawindow.h all: all-am diff --git a/sys/osxvideo/cocoawindow.h b/sys/osxvideo/cocoawindow.h index a896d228b..a7e7f9804 100644 --- a/sys/osxvideo/cocoawindow.h +++ b/sys/osxvideo/cocoawindow.h @@ -63,7 +63,7 @@ struct _GstOSXImage; - (void) setFullScreen: (BOOL) flag; - (void) setKeepAspectRatio: (BOOL) flag; - (void) reshape; -- (void) setVideoSize: (int) w: (int) h; +- (void) setVideoSize:(int)w : (int)h; - (NSRect) getDrawingBounds; - (BOOL) haveSuperview; - (void) haveSuperviewReal: (NSMutableArray *)closure; diff --git a/sys/osxvideo/cocoawindow.m b/sys/osxvideo/cocoawindow.m index 0491ab979..03bd4c15b 100644 --- a/sys/osxvideo/cocoawindow.m +++ b/sys/osxvideo/cocoawindow.m @@ -16,8 +16,8 @@ * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, * Boston, MA 02110-1301, USA. - * - * The development of this code was made possible due to the involvement of Pioneers + * + * The development of this code was made possible due to the involvement of Pioneers * of the Inevitable, the creators of the Songbird Music player * */ @@ -41,54 +41,6 @@ /* Debugging category */ #include <gst/gstinfo.h> -#if MAC_OS_X_VERSION_MAX_ALLOWED <= 1040 -#define kVK_ANSI_Keypad0 0x52 -#define kVK_ANSI_Keypad1 0x53 -#define kVK_ANSI_Keypad2 0x54 -#define kVK_ANSI_Keypad3 0x55 -#define kVK_ANSI_Keypad4 0x56 -#define kVK_ANSI_Keypad5 0x57 -#define kVK_ANSI_Keypad6 0x58 -#define kVK_ANSI_Keypad7 0x59 -#define kVK_ANSI_Keypad8 0x5b -#define kVK_ANSI_Keypad9 0x5c -#define kVK_ANSI_KeypadDecimal 0x41 -#define kVK_ANSI_KeypadDivide 0x4b -#define kVK_ANSI_KeypadEnter 0x4c -#define kVK_ANSI_KeypadMinus 0x4e -#define kVK_ANSI_KeypadMultiply 0x43 -#define kVK_ANSI_KeypadPlus 0x45 -#define kVK_Control 0x3b -#define kVK_Delete 0x33 -#define kVK_DownArrow 0x7d -#define kVK_End 0x77 -#define kVK_Escape 0x35 -#define kVK_F1 0x7a -#define kVK_F10 0x6d -#define kVK_F11 0x67 -#define kVK_F12 0x6f -#define kVK_F2 0x78 -#define kVK_F3 0x63 -#define kVK_F4 0x76 -#define kVK_F5 0x60 -#define kVK_F6 0x61 -#define kVK_F7 0x62 -#define kVK_F8 0x64 -#define kVK_F9 0x65 -#define kVK_ForwardDelete 0x75 -#define kVK_Help 0x72 -#define kVK_Home 0x73 -#define kVK_LeftArrow 0x7b -#define kVK_Option 0x3a -#define kVK_PageDown 0x79 -#define kVK_PageUp 0x74 -#define kVK_Return 0x24 -#define kVK_RightArrow 0x7c -#define kVK_Shift 0x38 -#define kVK_Tab 0x30 -#define kVK_UpArrow 0x7e -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED <= 1040 */ - static const gchar* gst_keycode_to_keyname(gint16 keycode) { @@ -331,20 +283,20 @@ const gchar* gst_keycode_to_keyname(gint16 keycode) /* The object has to be released */ - (id) initWithContentNSRect: (NSRect) rect styleMask: (unsigned int) styleMask - backing: (NSBackingStoreType) bufferingType + backing: (NSBackingStoreType) bufferingType defer: (BOOL) flag screen:(NSScreen *) aScreen { self = [super initWithContentRect: rect styleMask: styleMask - backing: bufferingType - defer: flag + backing: bufferingType + defer: flag screen:aScreen]; GST_DEBUG ("Initializing GstOSXvideoSinkWindow"); gstview = [[GstGLView alloc] initWithFrame:rect]; - + if (gstview) [self setContentView:gstview]; [self setTitle:@"GStreamer Video Output"]; @@ -496,7 +448,7 @@ const gchar* gst_keycode_to_keyname(gint16 keycode) glPixelStorei (GL_UNPACK_ALIGNMENT, 1); glPixelStorei (GL_UNPACK_ROW_LENGTH, width); - + glBindTexture (GL_TEXTURE_RECTANGLE_EXT, pi_texture); /* Use VRAM texturing */ @@ -520,7 +472,7 @@ const gchar* gst_keycode_to_keyname(gint16 keycode) // glPixelStorei (GL_UNPACK_ROW_LENGTH, 0); WHY ?? glTexImage2D (GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA, - width, height, 0, + width, height, 0, GL_YCBCR_422_APPLE, GL_UNSIGNED_SHORT_8_8_APPLE, data); @@ -661,7 +613,7 @@ const gchar* gst_keycode_to_keyname(gint16 keycode) } else if (fullscreen && !flag) { // fullscreen now and needs to go back to normal initDone = NO; - + actualContext = [self openGLContext]; [NSOpenGLContext clearCurrentContext]; @@ -681,15 +633,12 @@ const gchar* gst_keycode_to_keyname(gint16 keycode) } } -- (void) setVideoSize: (int) w:(int) h { +- (void) setVideoSize: (int)w : (int)h { GST_LOG ("width:%d, height:%d", w, h); width = w; height = h; -// if (data) g_free(data); - -// data = g_malloc0 (2 * w * h); [self initTextures]; [self reshape]; } @@ -769,7 +718,7 @@ const gchar* gst_keycode_to_keyname(gint16 keycode) navigation = nav; } -- (void)sendMouseEvent:(NSEvent *)event: (const char *)event_name +- (void)sendMouseEvent:(NSEvent *)event : (const char *)event_name { NSPoint location; gint button; @@ -806,7 +755,7 @@ const gchar* gst_keycode_to_keyname(gint16 keycode) gst_navigation_send_mouse_event (navigation, event_name, button, x, y); } -- (void)sendKeyEvent:(NSEvent *)event: (const char *)event_name +- (void)sendKeyEvent:(NSEvent *)event : (const char *)event_name { if (!navigation) return; diff --git a/sys/osxvideo/osxvideosink.h b/sys/osxvideo/osxvideosink.h index da912dfaf..6d51bf397 100644 --- a/sys/osxvideo/osxvideosink.h +++ b/sys/osxvideo/osxvideosink.h @@ -27,6 +27,7 @@ #ifndef __GST_OSX_VIDEO_SINK_H__ #define __GST_OSX_VIDEO_SINK_H__ +#include <gst/video/video.h> #include <gst/video/gstvideosink.h> #include <string.h> @@ -40,14 +41,6 @@ GST_DEBUG_CATEGORY_EXTERN (gst_debug_osx_video_sink); #define GST_CAT_DEFAULT gst_debug_osx_video_sink -/* The hack doesn't work on leopard, the _CFMainPThread symbol - * is doesn't exist in the CoreFoundation library */ -#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_5 -#ifdef RUN_NS_APP_THREAD -#undef RUN_NS_APP_THREAD -#endif -#endif - G_BEGIN_DECLS #define GST_TYPE_OSX_VIDEO_SINK \ @@ -91,26 +84,21 @@ struct _GstOSXVideoSink { NSView *superview; gboolean keep_par; gboolean embed; + GstVideoInfo info; }; struct _GstOSXVideoSinkClass { GstVideoSinkClass parent_class; GstOSXVideoSinkRunLoopState run_loop_state; -#ifdef RUN_NS_APP_THREAD NSThread *ns_app_thread; -#else - guint cocoa_timeout; -#endif }; GType gst_osx_video_sink_get_type(void); -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 @interface NSApplication(AppleMenu) - (void)setAppleMenu:(NSMenu *)menu; @end -#endif @interface GstBufferObject : NSObject { @@ -122,11 +110,7 @@ GType gst_osx_video_sink_get_type(void); @end -#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_5 -@interface GstWindowDelegate : NSObject -#else @interface GstWindowDelegate : NSObject <NSWindowDelegate> -#endif { @public GstOSXVideoSink *osxvideosink; @@ -146,11 +130,9 @@ GType gst_osx_video_sink_get_type(void); -(void) destroy; -(void) showFrame: (GstBufferObject*) buf; -(void) setView: (NSView*) view; -#ifdef RUN_NS_APP_THREAD + (BOOL) isMainThread; -(void) nsAppThread; -(void) checkMainRunLoop; -#endif @end G_END_DECLS diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m index f8c45ee6f..84a445bd6 100644 --- a/sys/osxvideo/osxvideosink.m +++ b/sys/osxvideo/osxvideosink.m @@ -2,7 +2,7 @@ * OSX video sink * Copyright (C) 2004-6 Zaheer Abbas Merali <zaheerabbas at merali dot org> * Copyright (C) 2007,2008,2009 Pioneers of the Inevitable <songbird@songbirdnest.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 @@ -20,7 +20,7 @@ * * The development of this code was made possible due to the involvement of * Pioneers of the Inevitable, the creators of the Songbird Music player. - * + * */ /** @@ -29,9 +29,9 @@ * The OSXVideoSink renders video frames to a MacOSX window. The video output * must be directed to a window embedded in an existing NSApp. * - * When the NSView to be embedded is created an element #GstMessage with a - * name of 'have-ns-view' will be created and posted on the bus. - * The pointer to the NSView to embed will be in the 'nsview' field of that + * When the NSView to be embedded is created an element #GstMessage with a + * name of 'have-ns-view' will be created and posted on the bus. + * The pointer to the NSView to embed will be in the 'nsview' field of that * message. The application MUST handle this message and embed the view * appropriately. */ @@ -39,6 +39,7 @@ #include "config.h" #include <gst/video/videooverlay.h> #include <gst/video/navigation.h> +#include <gst/video/video.h> #include "osxvideosink.h" #include <unistd.h> @@ -47,11 +48,9 @@ GST_DEBUG_CATEGORY (gst_debug_osx_video_sink); #define GST_CAT_DEFAULT gst_debug_osx_video_sink -#ifdef RUN_NS_APP_THREAD #include <pthread.h> -extern void _CFRunLoopSetCurrent(CFRunLoopRef rl); +extern void _CFRunLoopSetCurrent (CFRunLoopRef rl); extern pthread_t _CFMainPThread; -#endif @@ -111,12 +110,8 @@ run_ns_app_loop (void) { NSAutoreleasePool *pool =[[NSAutoreleasePool alloc] init]; NSDate *pollTime = nil; -#ifdef RUN_NS_APP_THREAD /* when running the loop in a thread we want to sleep as long as possible */ pollTime = [NSDate distantFuture]; -#else - pollTime = [NSDate distantPast]; -#endif do { event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:pollTime @@ -196,7 +191,6 @@ gst_osx_video_sink_run_cocoa_loop (GstOSXVideoSink * sink ) } if (sink_class->ns_app_thread == NULL) { -#ifdef RUN_NS_APP_THREAD /* run the main runloop in a separate thread */ /* override [NSThread isMainThread] with our own implementation so that we can @@ -217,12 +211,6 @@ gst_osx_video_sink_run_cocoa_loop (GstOSXVideoSink * sink ) g_mutex_lock (&_run_loop_mutex); g_cond_wait (&_run_loop_cond, &_run_loop_mutex); g_mutex_unlock (&_run_loop_mutex); -#else - /* assume that there is a GMainLoop and iterate the main runloop from there - */ - sink_class->cocoa_timeout = g_timeout_add (10, - (GSourceFunc) run_ns_app_loop, NULL); -#endif } g_mutex_unlock (&_run_loop_check_mutex); @@ -231,10 +219,6 @@ gst_osx_video_sink_run_cocoa_loop (GstOSXVideoSink * sink ) static void gst_osx_video_sink_stop_cocoa_loop (GstOSXVideoSink * osxvideosink) { -#ifndef RUN_NS_APP_THREAD - if (sink_class->cocoa_timeout) - g_source_remove(sink_klass->cocoa_timeout); -#endif } /* This function handles osx window creation */ @@ -357,7 +341,7 @@ gst_osx_video_sink_osxwindow_resize (GstOSXVideoSink * osxvideosink, /* Directly resize the underlying view */ GST_DEBUG_OBJECT (osxvideosink, "Calling setVideoSize on %p", osxwindow->gstview); - gst_osx_video_sink_call_from_main_thread(osxvideosink, object, + gst_osx_video_sink_call_from_main_thread (osxvideosink, object, @selector(resize), (id)nil, YES); [pool release]; @@ -391,6 +375,9 @@ gst_osx_video_sink_setcaps (GstBaseSink * bsink, GstCaps * caps) gst_osx_video_sink_osxwindow_resize (osxvideosink, osxvideosink->osxwindow, video_width, video_height); + + gst_video_info_from_caps (&osxvideosink->info, caps); + result = TRUE; beach: @@ -407,7 +394,7 @@ gst_osx_video_sink_change_state (GstElement * element, osxvideosink = GST_OSX_VIDEO_SINK (element); - GST_DEBUG_OBJECT (osxvideosink, "%s => %s", + GST_DEBUG_OBJECT (osxvideosink, "%s => %s", gst_element_state_get_name(GST_STATE_TRANSITION_CURRENT (transition)), gst_element_state_get_name(GST_STATE_TRANSITION_NEXT (transition))); @@ -527,6 +514,14 @@ gst_osx_video_sink_get_property (GObject * object, guint prop_id, } } +static gboolean +gst_osx_video_sink_propose_allocation (GstBaseSink * base_sink, GstQuery * query) +{ + gst_query_add_allocation_meta (query, + GST_VIDEO_META_API_TYPE, NULL); + + return TRUE; +} static void gst_osx_video_sink_init (GstOSXVideoSink * sink) @@ -588,6 +583,7 @@ gst_osx_video_sink_class_init (GstOSXVideoSinkClass * klass) gstbasesink_class->set_caps = gst_osx_video_sink_setcaps; gstbasesink_class->preroll = gst_osx_video_sink_show_frame; gstbasesink_class->render = gst_osx_video_sink_show_frame; + gstbasesink_class->propose_allocation = gst_osx_video_sink_propose_allocation; gstelement_class->change_state = gst_osx_video_sink_change_state; /** @@ -793,7 +789,6 @@ gst_osx_video_sink_get_type (void) -(void) createInternalWindow { GstOSXWindow *osxwindow = osxvideosink->osxwindow; - ProcessSerialNumber psn; NSRect rect; unsigned int mask; @@ -810,19 +805,6 @@ gst_osx_video_sink_get_type (void) rect.size.width = (float) osxwindow->width; rect.size.height = (float) osxwindow->height; -#ifndef RUN_NS_APP_THREAD - if (!osxvideosink->app_started) { - [NSApplication sharedApplication]; - [NSApp finishLaunching]; - osxvideosink->app_started = TRUE; - } -#endif - - if (!GetCurrentProcess(&psn)) { - TransformProcessType(&psn, kProcessTransformToForegroundApplication); - SetFrontProcess(&psn); - } - osxwindow->win =[[[GstOSXVideoSinkWindow alloc] initWithContentNSRect: rect styleMask: mask @@ -830,20 +812,18 @@ gst_osx_video_sink_get_type (void) defer: NO screen: nil] retain]; GST_DEBUG("VideoSinkWindow created, %p", osxwindow->win); - [osxwindow->win makeKeyAndOrderFront:NSApp]; + [osxwindow->win orderFrontRegardless]; osxwindow->gstview =[osxwindow->win gstView]; [osxwindow->win setDelegate:[[GstWindowDelegate alloc] initWithSink:osxvideosink]]; } -#ifdef RUN_NS_APP_THREAD + (BOOL) isMainThread { /* FIXME: ideally we should return YES only for ->ns_app_thread here */ return YES; } -#endif - (void) setView: (NSView*)view { @@ -898,30 +878,56 @@ gst_osx_video_sink_get_type (void) - (void) showFrame: (GstBufferObject *) object { - GstMapInfo info; - guint8 *viewdata; + GstVideoFrame frame; + guint8 *data, *readp, *writep; + gint i, active_width, stride; + guint8 *texture_buffer; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; GstBuffer *buf = object->buf; GST_OBJECT_LOCK (osxvideosink); - if (osxvideosink->osxwindow != NULL) - { - gst_buffer_map (buf, &info, GST_MAP_READ); - viewdata = (guint8 *) [osxvideosink->osxwindow->gstview getTextureBuffer]; - - if (G_UNLIKELY (viewdata == NULL)) { - GST_ELEMENT_ERROR (osxvideosink, RESOURCE, WRITE, - ("Could not get a texture buffer"), (NULL)); - } else { - memcpy (viewdata, info.data, info.size); - [osxvideosink->osxwindow->gstview displayTexture]; - gst_buffer_unmap (buf, &info); - } + if (osxvideosink->osxwindow == NULL) + goto no_window; + + texture_buffer = (guint8 *) [osxvideosink->osxwindow->gstview getTextureBuffer]; + if (G_UNLIKELY (texture_buffer == NULL)) + goto no_texture_buffer; + + if (!gst_video_frame_map (&frame, &osxvideosink->info, buf, GST_MAP_READ)) + goto no_map; + + data = readp = GST_VIDEO_FRAME_PLANE_DATA (&frame, 0); + stride = GST_VIDEO_FRAME_PLANE_STRIDE (&frame, 0); + writep = texture_buffer; + active_width = GST_VIDEO_SINK_WIDTH (osxvideosink) * sizeof (short); + for (i = 0; i < GST_VIDEO_SINK_HEIGHT (osxvideosink); i++) { + memcpy (writep, readp, active_width); + writep += active_width; + readp += stride; } + [osxvideosink->osxwindow->gstview displayTexture]; + + gst_video_frame_unmap (&frame); + +out: GST_OBJECT_UNLOCK (osxvideosink); [object release]; [pool release]; + return; + +no_map: + GST_WARNING_OBJECT (osxvideosink, "couldn't map frame"); + goto out; + +no_window: + GST_WARNING_OBJECT (osxvideosink, "not showing frame since we have no window (!?)"); + goto out; + +no_texture_buffer: + GST_ELEMENT_ERROR (osxvideosink, RESOURCE, WRITE, (NULL), + ("the texture buffer is NULL")); + goto out; } -(void) destroy @@ -951,7 +957,6 @@ gst_osx_video_sink_get_type (void) [pool release]; } -#ifdef RUN_NS_APP_THREAD -(void) nsAppThread { NSAutoreleasePool *pool; @@ -981,7 +986,6 @@ gst_osx_video_sink_get_type (void) [pool release]; } -#endif -(void) checkMainRunLoop { @@ -1012,7 +1016,7 @@ plugin_init (GstPlugin * plugin) { if (!gst_element_register (plugin, "osxvideosink", - GST_RANK_PRIMARY, GST_TYPE_OSX_VIDEO_SINK)) + GST_RANK_MARGINAL, GST_TYPE_OSX_VIDEO_SINK)) return FALSE; GST_DEBUG_CATEGORY_INIT (gst_debug_osx_video_sink, "osxvideosink", 0, diff --git a/sys/sunaudio/Makefile.in b/sys/sunaudio/Makefile.in index 8211f750a..cbcf4f838 100644 --- a/sys/sunaudio/Makefile.in +++ b/sys/sunaudio/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -492,7 +490,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/v4l2/Makefile.am b/sys/v4l2/Makefile.am index da138ae56..dfde1f6c2 100644 --- a/sys/v4l2/Makefile.am +++ b/sys/v4l2/Makefile.am @@ -1,29 +1,22 @@ plugin_LTLIBRARIES = libgstvideo4linux2.la -if USE_XVIDEO -xv_source = gstv4l2videooverlay.c -xv_libs = $(X_LIBS) $(XVIDEO_LIBS) -else -xv_source = -xv_libs = -endif - include $(top_srcdir)/common/gst-glib-gen.mak libgstvideo4linux2_la_SOURCES = gstv4l2.c \ gstv4l2colorbalance.c \ + gstv4l2devicemonitor.c \ gstv4l2object.c \ gstv4l2bufferpool.c \ gstv4l2sink.c \ gstv4l2src.c \ gstv4l2radio.c \ gstv4l2tuner.c \ + gstv4l2videodec.c \ gstv4l2vidorient.c \ v4l2_calls.c \ tuner.c \ tunerchannel.c \ - tunernorm.c \ - $(xv_source) + tunernorm.c libgstvideo4linux2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ @@ -39,21 +32,25 @@ libgstvideo4linux2_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ -lgstvideo-$(GST_API_VERSION) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ - $(xv_libs) \ $(LIBV4L2_LIBS) \ $(GUDEV_LIBS) \ $(LIBRT) noinst_HEADERS = \ + ext/types-compat.h \ + ext/v4l2-common.h \ + ext/v4l2-controls.h \ + ext/videodev2.h \ gstv4l2bufferpool.h \ gstv4l2colorbalance.h \ + gstv4l2devicemonitor.h \ gstv4l2object.h \ gstv4l2sink.h \ gstv4l2src.h \ gstv4l2radio.h \ gstv4l2tuner.h \ + gstv4l2videodec.h \ gstv4l2vidorient.h \ - gstv4l2videooverlay.h \ v4l2_calls.h \ tuner.h \ tunerchannel.h \ diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in index f49003335..3621e8c8c 100644 --- a/sys/v4l2/Makefile.in +++ b/sys/v4l2/Makefile.in @@ -98,7 +98,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -114,7 +113,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -163,32 +161,25 @@ am__uninstall_files_from_dir = { \ am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = -@USE_XVIDEO_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) \ -@USE_XVIDEO_TRUE@ $(am__DEPENDENCIES_1) libgstvideo4linux2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am__libgstvideo4linux2_la_SOURCES_DIST = gstv4l2.c \ - gstv4l2colorbalance.c gstv4l2object.c gstv4l2bufferpool.c \ - gstv4l2sink.c gstv4l2src.c gstv4l2radio.c gstv4l2tuner.c \ - gstv4l2vidorient.c v4l2_calls.c tuner.c tunerchannel.c \ - tunernorm.c gstv4l2videooverlay.c -@USE_XVIDEO_TRUE@am__objects_1 = \ -@USE_XVIDEO_TRUE@ libgstvideo4linux2_la-gstv4l2videooverlay.lo + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) am_libgstvideo4linux2_la_OBJECTS = libgstvideo4linux2_la-gstv4l2.lo \ libgstvideo4linux2_la-gstv4l2colorbalance.lo \ + libgstvideo4linux2_la-gstv4l2devicemonitor.lo \ libgstvideo4linux2_la-gstv4l2object.lo \ libgstvideo4linux2_la-gstv4l2bufferpool.lo \ libgstvideo4linux2_la-gstv4l2sink.lo \ libgstvideo4linux2_la-gstv4l2src.lo \ libgstvideo4linux2_la-gstv4l2radio.lo \ libgstvideo4linux2_la-gstv4l2tuner.lo \ + libgstvideo4linux2_la-gstv4l2videodec.lo \ libgstvideo4linux2_la-gstv4l2vidorient.lo \ libgstvideo4linux2_la-v4l2_calls.lo \ libgstvideo4linux2_la-tuner.lo \ libgstvideo4linux2_la-tunerchannel.lo \ - libgstvideo4linux2_la-tunernorm.lo $(am__objects_1) + libgstvideo4linux2_la-tunernorm.lo libgstvideo4linux2_la_OBJECTS = $(am_libgstvideo4linux2_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -233,7 +224,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgstvideo4linux2_la_SOURCES) -DIST_SOURCES = $(am__libgstvideo4linux2_la_SOURCES_DIST) +DIST_SOURCES = $(libgstvideo4linux2_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -518,7 +509,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -588,25 +578,22 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugin_LTLIBRARIES = libgstvideo4linux2.la -@USE_XVIDEO_FALSE@xv_source = -@USE_XVIDEO_TRUE@xv_source = gstv4l2videooverlay.c -@USE_XVIDEO_FALSE@xv_libs = -@USE_XVIDEO_TRUE@xv_libs = $(X_LIBS) $(XVIDEO_LIBS) enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\") libgstvideo4linux2_la_SOURCES = gstv4l2.c \ gstv4l2colorbalance.c \ + gstv4l2devicemonitor.c \ gstv4l2object.c \ gstv4l2bufferpool.c \ gstv4l2sink.c \ gstv4l2src.c \ gstv4l2radio.c \ gstv4l2tuner.c \ + gstv4l2videodec.c \ gstv4l2vidorient.c \ v4l2_calls.c \ tuner.c \ tunerchannel.c \ - tunernorm.c \ - $(xv_source) + tunernorm.c libgstvideo4linux2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ @@ -622,21 +609,25 @@ libgstvideo4linux2_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ -lgstvideo-$(GST_API_VERSION) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ - $(xv_libs) \ $(LIBV4L2_LIBS) \ $(GUDEV_LIBS) \ $(LIBRT) noinst_HEADERS = \ + ext/types-compat.h \ + ext/v4l2-common.h \ + ext/v4l2-controls.h \ + ext/videodev2.h \ gstv4l2bufferpool.h \ gstv4l2colorbalance.h \ + gstv4l2devicemonitor.h \ gstv4l2object.h \ gstv4l2sink.h \ gstv4l2src.h \ gstv4l2radio.h \ gstv4l2tuner.h \ + gstv4l2videodec.h \ gstv4l2vidorient.h \ - gstv4l2videooverlay.h \ v4l2_calls.h \ tuner.h \ tunerchannel.h \ @@ -725,12 +716,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2bufferpool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2colorbalance.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2devicemonitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2radio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2sink.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2src.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2tuner.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2videooverlay.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-tuner.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo4linux2_la-tunerchannel.Plo@am__quote@ @@ -775,6 +767,13 @@ libgstvideo4linux2_la-gstv4l2colorbalance.lo: gstv4l2colorbalance.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2colorbalance.lo `test -f 'gstv4l2colorbalance.c' || echo '$(srcdir)/'`gstv4l2colorbalance.c +libgstvideo4linux2_la-gstv4l2devicemonitor.lo: gstv4l2devicemonitor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2devicemonitor.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2devicemonitor.Tpo -c -o libgstvideo4linux2_la-gstv4l2devicemonitor.lo `test -f 'gstv4l2devicemonitor.c' || echo '$(srcdir)/'`gstv4l2devicemonitor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2devicemonitor.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2devicemonitor.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2devicemonitor.c' object='libgstvideo4linux2_la-gstv4l2devicemonitor.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2devicemonitor.lo `test -f 'gstv4l2devicemonitor.c' || echo '$(srcdir)/'`gstv4l2devicemonitor.c + libgstvideo4linux2_la-gstv4l2object.lo: gstv4l2object.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2object.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Tpo -c -o libgstvideo4linux2_la-gstv4l2object.lo `test -f 'gstv4l2object.c' || echo '$(srcdir)/'`gstv4l2object.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2object.Plo @@ -817,6 +816,13 @@ libgstvideo4linux2_la-gstv4l2tuner.lo: gstv4l2tuner.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2tuner.lo `test -f 'gstv4l2tuner.c' || echo '$(srcdir)/'`gstv4l2tuner.c +libgstvideo4linux2_la-gstv4l2videodec.lo: gstv4l2videodec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2videodec.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Tpo -c -o libgstvideo4linux2_la-gstv4l2videodec.lo `test -f 'gstv4l2videodec.c' || echo '$(srcdir)/'`gstv4l2videodec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videodec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2videodec.c' object='libgstvideo4linux2_la-gstv4l2videodec.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2videodec.lo `test -f 'gstv4l2videodec.c' || echo '$(srcdir)/'`gstv4l2videodec.c + libgstvideo4linux2_la-gstv4l2vidorient.lo: gstv4l2vidorient.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2vidorient.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Tpo -c -o libgstvideo4linux2_la-gstv4l2vidorient.lo `test -f 'gstv4l2vidorient.c' || echo '$(srcdir)/'`gstv4l2vidorient.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2vidorient.Plo @@ -852,13 +858,6 @@ libgstvideo4linux2_la-tunernorm.lo: tunernorm.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c -libgstvideo4linux2_la-gstv4l2videooverlay.lo: gstv4l2videooverlay.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux2_la-gstv4l2videooverlay.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videooverlay.Tpo -c -o libgstvideo4linux2_la-gstv4l2videooverlay.lo `test -f 'gstv4l2videooverlay.c' || echo '$(srcdir)/'`gstv4l2videooverlay.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videooverlay.Tpo $(DEPDIR)/libgstvideo4linux2_la-gstv4l2videooverlay.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l2videooverlay.c' object='libgstvideo4linux2_la-gstv4l2videooverlay.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 $(libgstvideo4linux2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux2_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux2_la-gstv4l2videooverlay.lo `test -f 'gstv4l2videooverlay.c' || echo '$(srcdir)/'`gstv4l2videooverlay.c - mostlyclean-libtool: -rm -f *.lo diff --git a/sys/v4l2/ext/types-compat.h b/sys/v4l2/ext/types-compat.h new file mode 100644 index 000000000..27482483e --- /dev/null +++ b/sys/v4l2/ext/types-compat.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2014 Collabora Ltd. + * Author: Nicolas Dufresne <nicolas@ndufresne.ca> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should 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. + * + */ + +#include <glib.h> + +#ifndef __TYPES_COMPAT_H__ +#define __TYPES_COMPAT_H__ + +/* From linux/types.h */ +#ifdef __CHECKER__ +#define __bitwise__ __attribute__((bitwise)) +#else +#define __bitwise__ +#endif +#ifdef __CHECK_ENDIAN__ +#define __bitwise __bitwise__ +#else +#define __bitwise +#endif + +#define __u64 guint64 +#define __u32 guint32 +#define __u16 guint16 +#define __u8 guint8 +#define __s64 gint64 +#define __s32 gint32 +#define __le32 guint32 __bitwise + +#endif /* __TYPES_COMPAT_H__ */ diff --git a/sys/v4l2/ext/v4l2-common.h b/sys/v4l2/ext/v4l2-common.h new file mode 100644 index 000000000..4f0667e01 --- /dev/null +++ b/sys/v4l2/ext/v4l2-common.h @@ -0,0 +1,71 @@ +/* + * include/linux/v4l2-common.h + * + * Common V4L2 and V4L2 subdev definitions. + * + * Users are advised to #include this file either through videodev2.h + * (V4L2) or through v4l2-subdev.h (V4L2 subdev) rather than to refer + * to this file directly. + * + * Copyright (C) 2012 Nokia Corporation + * Contact: Sakari Ailus <sakari.ailus@iki.fi> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef __V4L2_COMMON__ +#define __V4L2_COMMON__ + +/* + * + * Selection interface definitions + * + */ + +/* Current cropping area */ +#define V4L2_SEL_TGT_CROP 0x0000 +/* Default cropping area */ +#define V4L2_SEL_TGT_CROP_DEFAULT 0x0001 +/* Cropping bounds */ +#define V4L2_SEL_TGT_CROP_BOUNDS 0x0002 +/* Current composing area */ +#define V4L2_SEL_TGT_COMPOSE 0x0100 +/* Default composing area */ +#define V4L2_SEL_TGT_COMPOSE_DEFAULT 0x0101 +/* Composing bounds */ +#define V4L2_SEL_TGT_COMPOSE_BOUNDS 0x0102 +/* Current composing area plus all padding pixels */ +#define V4L2_SEL_TGT_COMPOSE_PADDED 0x0103 + +/* Backward compatibility target definitions --- to be removed. */ +#define V4L2_SEL_TGT_CROP_ACTIVE V4L2_SEL_TGT_CROP +#define V4L2_SEL_TGT_COMPOSE_ACTIVE V4L2_SEL_TGT_COMPOSE +#define V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL V4L2_SEL_TGT_CROP +#define V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL V4L2_SEL_TGT_COMPOSE +#define V4L2_SUBDEV_SEL_TGT_CROP_BOUNDS V4L2_SEL_TGT_CROP_BOUNDS +#define V4L2_SUBDEV_SEL_TGT_COMPOSE_BOUNDS V4L2_SEL_TGT_COMPOSE_BOUNDS + +/* Selection flags */ +#define V4L2_SEL_FLAG_GE (1 << 0) +#define V4L2_SEL_FLAG_LE (1 << 1) +#define V4L2_SEL_FLAG_KEEP_CONFIG (1 << 2) + +/* Backward compatibility flag definitions --- to be removed. */ +#define V4L2_SUBDEV_SEL_FLAG_SIZE_GE V4L2_SEL_FLAG_GE +#define V4L2_SUBDEV_SEL_FLAG_SIZE_LE V4L2_SEL_FLAG_LE +#define V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG V4L2_SEL_FLAG_KEEP_CONFIG + +#endif /* __V4L2_COMMON__ */ diff --git a/sys/v4l2/ext/v4l2-controls.h b/sys/v4l2/ext/v4l2-controls.h new file mode 100644 index 000000000..1666aabbb --- /dev/null +++ b/sys/v4l2/ext/v4l2-controls.h @@ -0,0 +1,889 @@ +/* + * Video for Linux Two controls header file + * + * Copyright (C) 1999-2012 the contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Alternatively you can redistribute this file under the terms of the + * BSD license as stated below: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. The names of its contributors may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The contents of this header was split off from videodev2.h. All control + * definitions should be added to this header, which is included by + * videodev2.h. + */ + +#ifndef __LINUX_V4L2_CONTROLS_H +#define __LINUX_V4L2_CONTROLS_H + +/* Control classes */ +#define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ +#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ +#define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ +#define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator controls */ +#define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */ +#define V4L2_CTRL_CLASS_JPEG 0x009d0000 /* JPEG-compression controls */ +#define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000 /* Image source controls */ +#define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */ +#define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */ +#define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ + +/* User-class control IDs */ + +#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) +#define V4L2_CID_USER_BASE V4L2_CID_BASE +#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1) +#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0) +#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1) +#define V4L2_CID_SATURATION (V4L2_CID_BASE+2) +#define V4L2_CID_HUE (V4L2_CID_BASE+3) +#define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5) +#define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6) +#define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7) +#define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) +#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) +#define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) +#define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) /* Deprecated */ +#define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) +#define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) +#define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) +#define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) +#define V4L2_CID_GAMMA (V4L2_CID_BASE+16) +#define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* Deprecated */ +#define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) +#define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) +#define V4L2_CID_GAIN (V4L2_CID_BASE+19) +#define V4L2_CID_HFLIP (V4L2_CID_BASE+20) +#define V4L2_CID_VFLIP (V4L2_CID_BASE+21) + +#define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) +enum v4l2_power_line_frequency { + V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, + V4L2_CID_POWER_LINE_FREQUENCY_50HZ = 1, + V4L2_CID_POWER_LINE_FREQUENCY_60HZ = 2, + V4L2_CID_POWER_LINE_FREQUENCY_AUTO = 3, +}; +#define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25) +#define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26) +#define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27) +#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28) +#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29) +#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30) +#define V4L2_CID_COLORFX (V4L2_CID_BASE+31) +enum v4l2_colorfx { + V4L2_COLORFX_NONE = 0, + V4L2_COLORFX_BW = 1, + V4L2_COLORFX_SEPIA = 2, + V4L2_COLORFX_NEGATIVE = 3, + V4L2_COLORFX_EMBOSS = 4, + V4L2_COLORFX_SKETCH = 5, + V4L2_COLORFX_SKY_BLUE = 6, + V4L2_COLORFX_GRASS_GREEN = 7, + V4L2_COLORFX_SKIN_WHITEN = 8, + V4L2_COLORFX_VIVID = 9, + V4L2_COLORFX_AQUA = 10, + V4L2_COLORFX_ART_FREEZE = 11, + V4L2_COLORFX_SILHOUETTE = 12, + V4L2_COLORFX_SOLARIZATION = 13, + V4L2_COLORFX_ANTIQUE = 14, + V4L2_COLORFX_SET_CBCR = 15, +}; +#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) +#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) + +#define V4L2_CID_ROTATE (V4L2_CID_BASE+34) +#define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35) + +#define V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36) + +#define V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37) +#define V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38) + +#define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39) +#define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40) + +#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41) +#define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42) + +/* last CID + 1 */ +#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) + +/* USER-class private control IDs */ + +/* The base for the meye driver controls. See linux/meye.h for the list + * of controls. We reserve 16 controls for this driver. */ +#define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000) + +/* The base for the bttv driver controls. + * We reserve 32 controls for this driver. */ +#define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010) + + +/* The base for the s2255 driver controls. + * We reserve 16 controls for this driver. */ +#define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030) + +/* The base for the si476x driver controls. See include/media/si476x.h for the list + * of controls. Total of 16 controls is reserved for this driver */ +#define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040) + +/* The base for the TI VPE driver controls. Total of 16 controls is reserved for + * this driver */ +#define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050) + +/* MPEG-class control IDs */ +/* The MPEG controls are applicable to all codec controls + * and the 'MPEG' part of the define is historical */ + +#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) +#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) + +/* MPEG streams, specific to multiplexed streams */ +#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) +enum v4l2_mpeg_stream_type { + V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */ + V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */ + V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2, /* MPEG-1 system stream */ + V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3, /* MPEG-2 DVD-compatible stream */ + V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */ + V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */ +}; +#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) +#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) +#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) +#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) +#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) +#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) +#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) +enum v4l2_mpeg_stream_vbi_fmt { + V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */ + V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */ +}; + +/* MPEG audio controls specific to multiplexed streams */ +#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) +enum v4l2_mpeg_audio_sampling_freq { + V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, + V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, + V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, +}; +#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) +enum v4l2_mpeg_audio_encoding { + V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, + V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, + V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2, + V4L2_MPEG_AUDIO_ENCODING_AAC = 3, + V4L2_MPEG_AUDIO_ENCODING_AC3 = 4, +}; +#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) +enum v4l2_mpeg_audio_l1_bitrate { + V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, + V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2, + V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3, + V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4, + V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5, + V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6, + V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7, + V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8, + V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9, + V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10, + V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11, + V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, + V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, +}; +#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103) +enum v4l2_mpeg_audio_l2_bitrate { + V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, + V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2, + V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3, + V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4, + V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5, + V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6, + V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7, + V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8, + V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9, + V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10, + V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11, + V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, + V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, +}; +#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) +enum v4l2_mpeg_audio_l3_bitrate { + V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, + V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2, + V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3, + V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4, + V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5, + V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6, + V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7, + V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8, + V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9, + V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10, + V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11, + V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, + V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, +}; +#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) +enum v4l2_mpeg_audio_mode { + V4L2_MPEG_AUDIO_MODE_STEREO = 0, + V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, + V4L2_MPEG_AUDIO_MODE_DUAL = 2, + V4L2_MPEG_AUDIO_MODE_MONO = 3, +}; +#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) +enum v4l2_mpeg_audio_mode_extension { + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, +}; +#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) +enum v4l2_mpeg_audio_emphasis { + V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, + V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, + V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, +}; +#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) +enum v4l2_mpeg_audio_crc { + V4L2_MPEG_AUDIO_CRC_NONE = 0, + V4L2_MPEG_AUDIO_CRC_CRC16 = 1, +}; +#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109) +#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110) +#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111) +enum v4l2_mpeg_audio_ac3_bitrate { + V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0, + V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1, + V4L2_MPEG_AUDIO_AC3_BITRATE_48K = 2, + V4L2_MPEG_AUDIO_AC3_BITRATE_56K = 3, + V4L2_MPEG_AUDIO_AC3_BITRATE_64K = 4, + V4L2_MPEG_AUDIO_AC3_BITRATE_80K = 5, + V4L2_MPEG_AUDIO_AC3_BITRATE_96K = 6, + V4L2_MPEG_AUDIO_AC3_BITRATE_112K = 7, + V4L2_MPEG_AUDIO_AC3_BITRATE_128K = 8, + V4L2_MPEG_AUDIO_AC3_BITRATE_160K = 9, + V4L2_MPEG_AUDIO_AC3_BITRATE_192K = 10, + V4L2_MPEG_AUDIO_AC3_BITRATE_224K = 11, + V4L2_MPEG_AUDIO_AC3_BITRATE_256K = 12, + V4L2_MPEG_AUDIO_AC3_BITRATE_320K = 13, + V4L2_MPEG_AUDIO_AC3_BITRATE_384K = 14, + V4L2_MPEG_AUDIO_AC3_BITRATE_448K = 15, + V4L2_MPEG_AUDIO_AC3_BITRATE_512K = 16, + V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17, + V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18, +}; +#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112) +enum v4l2_mpeg_audio_dec_playback { + V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT = 2, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT = 3, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4, + V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5, +}; +#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113) + +/* MPEG video controls specific to multiplexed streams */ +#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) +enum v4l2_mpeg_video_encoding { + V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, + V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, + V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2, +}; +#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) +enum v4l2_mpeg_video_aspect { + V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, + V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, + V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, + V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, +}; +#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) +#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) +#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) +#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) +#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) +enum v4l2_mpeg_video_bitrate_mode { + V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, + V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, +}; +#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) +#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) +#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) +#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) +#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) +#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212) +#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213) +#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214) +#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215) +#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216) +enum v4l2_mpeg_video_header_mode { + V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0, + V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1, + +}; +#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217) +#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220) +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221) +enum v4l2_mpeg_video_multi_slice_mode { + V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0, + V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1, + V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2, +}; +#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) +#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) +#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) +#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) +#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) + +#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) +#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) +#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302) +#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303) +#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304) +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350) +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351) +#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352) +#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353) +#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354) +#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355) +#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356) +#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357) +enum v4l2_mpeg_video_h264_entropy_mode { + V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0, + V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358) +#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359) +enum v4l2_mpeg_video_h264_level { + V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0, + V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1, + V4L2_MPEG_VIDEO_H264_LEVEL_1_1 = 2, + V4L2_MPEG_VIDEO_H264_LEVEL_1_2 = 3, + V4L2_MPEG_VIDEO_H264_LEVEL_1_3 = 4, + V4L2_MPEG_VIDEO_H264_LEVEL_2_0 = 5, + V4L2_MPEG_VIDEO_H264_LEVEL_2_1 = 6, + V4L2_MPEG_VIDEO_H264_LEVEL_2_2 = 7, + V4L2_MPEG_VIDEO_H264_LEVEL_3_0 = 8, + V4L2_MPEG_VIDEO_H264_LEVEL_3_1 = 9, + V4L2_MPEG_VIDEO_H264_LEVEL_3_2 = 10, + V4L2_MPEG_VIDEO_H264_LEVEL_4_0 = 11, + V4L2_MPEG_VIDEO_H264_LEVEL_4_1 = 12, + V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13, + V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14, + V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15, +}; +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361) +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362) +enum v4l2_mpeg_video_h264_loop_filter_mode { + V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0, + V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1, + V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, +}; +#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363) +enum v4l2_mpeg_video_h264_profile { + V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0, + V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1, + V4L2_MPEG_VIDEO_H264_PROFILE_MAIN = 2, + V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED = 3, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH = 4, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10 = 5, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 = 6, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE = 7, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA = 8, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA = 9, + V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA = 10, + V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA = 11, + V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE = 12, + V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH = 13, + V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14, + V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15, + V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16, +}; +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366) +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367) +enum v4l2_mpeg_video_h264_vui_sar_idc { + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11 = 2, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11 = 3, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11 = 4, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33 = 5, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11 = 6, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11 = 7, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11 = 8, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33 = 9, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11 = 10, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11 = 11, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33 = 12, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99 = 13, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3 = 14, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2 = 15, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, + V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, +}; +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369) +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370) +enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW = 2, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE = 3, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4, + V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372) +enum v4l2_mpeg_video_h264_fmo_map_type { + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER = 2, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT = 3, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN = 4, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5, + V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374) +enum v4l2_mpeg_video_h264_fmo_change_dir { + V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0, + V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375) +#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376) +#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377) +#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380) +enum v4l2_mpeg_video_h264_hierarchical_coding_type { + V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0, + V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1, +}; +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) +#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) +#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) +#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403) +#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404) +#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405) +enum v4l2_mpeg_video_mpeg4_level { + V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_1 = 2, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_2 = 3, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_3 = 4, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B = 5, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6, + V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7, +}; +#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406) +enum v4l2_mpeg_video_mpeg4_profile { + V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE = 2, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3, + V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4, +}; +#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407) + +/* Control IDs for VP8 streams + * Although VP8 is not part of MPEG we add these controls to the MPEG class + * as that class is already handling other video compression standards + */ +#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_MPEG_BASE+500) +enum v4l2_vp8_num_partitions { + V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION = 0, + V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS = 1, + V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS = 2, + V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS = 3, +}; +#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_MPEG_BASE+501) +#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_MPEG_BASE+502) +enum v4l2_vp8_num_ref_frames { + V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME = 0, + V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME = 1, + V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME = 2, +}; +#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_MPEG_BASE+503) +#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_MPEG_BASE+504) +#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_MPEG_BASE+505) +#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_MPEG_BASE+506) +enum v4l2_vp8_golden_frame_sel { + V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0, + V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1, +}; + +/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ +#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) +enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { + V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, + V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1) +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2) +enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, + V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3) +enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { + V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, + V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4) +enum v4l2_mpeg_cx2341x_video_temporal_filter_mode { + V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, + V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5) +#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6) +enum v4l2_mpeg_cx2341x_video_median_filter_type { + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, + V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4, +}; +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7) +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8) +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9) +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) +#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11) + +/* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */ +#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100) + +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0) +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1) +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2) +enum v4l2_mpeg_mfc51_video_frame_skip_mode { + V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, + V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, + V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, +}; +#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3) +enum v4l2_mpeg_mfc51_video_force_frame_type { + V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0, + V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1, + V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2, +}; +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4) +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6) +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) + + +/* Camera class control IDs */ + +#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) +#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1) + +#define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1) +enum v4l2_exposure_auto_type { + V4L2_EXPOSURE_AUTO = 0, + V4L2_EXPOSURE_MANUAL = 1, + V4L2_EXPOSURE_SHUTTER_PRIORITY = 2, + V4L2_EXPOSURE_APERTURE_PRIORITY = 3 +}; +#define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2) +#define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3) + +#define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4) +#define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5) +#define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6) +#define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7) + +#define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8) +#define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9) + +#define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10) +#define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11) +#define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12) + +#define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13) +#define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14) +#define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15) + +#define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16) + +#define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17) +#define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18) + +#define V4L2_CID_AUTO_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+19) + +#define V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (V4L2_CID_CAMERA_CLASS_BASE+20) +enum v4l2_auto_n_preset_white_balance { + V4L2_WHITE_BALANCE_MANUAL = 0, + V4L2_WHITE_BALANCE_AUTO = 1, + V4L2_WHITE_BALANCE_INCANDESCENT = 2, + V4L2_WHITE_BALANCE_FLUORESCENT = 3, + V4L2_WHITE_BALANCE_FLUORESCENT_H = 4, + V4L2_WHITE_BALANCE_HORIZON = 5, + V4L2_WHITE_BALANCE_DAYLIGHT = 6, + V4L2_WHITE_BALANCE_FLASH = 7, + V4L2_WHITE_BALANCE_CLOUDY = 8, + V4L2_WHITE_BALANCE_SHADE = 9, +}; + +#define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21) +#define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22) + +#define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23) +#define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24) +enum v4l2_iso_sensitivity_auto_type { + V4L2_ISO_SENSITIVITY_MANUAL = 0, + V4L2_ISO_SENSITIVITY_AUTO = 1, +}; + +#define V4L2_CID_EXPOSURE_METERING (V4L2_CID_CAMERA_CLASS_BASE+25) +enum v4l2_exposure_metering { + V4L2_EXPOSURE_METERING_AVERAGE = 0, + V4L2_EXPOSURE_METERING_CENTER_WEIGHTED = 1, + V4L2_EXPOSURE_METERING_SPOT = 2, + V4L2_EXPOSURE_METERING_MATRIX = 3, +}; + +#define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26) +enum v4l2_scene_mode { + V4L2_SCENE_MODE_NONE = 0, + V4L2_SCENE_MODE_BACKLIGHT = 1, + V4L2_SCENE_MODE_BEACH_SNOW = 2, + V4L2_SCENE_MODE_CANDLE_LIGHT = 3, + V4L2_SCENE_MODE_DAWN_DUSK = 4, + V4L2_SCENE_MODE_FALL_COLORS = 5, + V4L2_SCENE_MODE_FIREWORKS = 6, + V4L2_SCENE_MODE_LANDSCAPE = 7, + V4L2_SCENE_MODE_NIGHT = 8, + V4L2_SCENE_MODE_PARTY_INDOOR = 9, + V4L2_SCENE_MODE_PORTRAIT = 10, + V4L2_SCENE_MODE_SPORTS = 11, + V4L2_SCENE_MODE_SUNSET = 12, + V4L2_SCENE_MODE_TEXT = 13, +}; + +#define V4L2_CID_3A_LOCK (V4L2_CID_CAMERA_CLASS_BASE+27) +#define V4L2_LOCK_EXPOSURE (1 << 0) +#define V4L2_LOCK_WHITE_BALANCE (1 << 1) +#define V4L2_LOCK_FOCUS (1 << 2) + +#define V4L2_CID_AUTO_FOCUS_START (V4L2_CID_CAMERA_CLASS_BASE+28) +#define V4L2_CID_AUTO_FOCUS_STOP (V4L2_CID_CAMERA_CLASS_BASE+29) +#define V4L2_CID_AUTO_FOCUS_STATUS (V4L2_CID_CAMERA_CLASS_BASE+30) +#define V4L2_AUTO_FOCUS_STATUS_IDLE (0 << 0) +#define V4L2_AUTO_FOCUS_STATUS_BUSY (1 << 0) +#define V4L2_AUTO_FOCUS_STATUS_REACHED (1 << 1) +#define V4L2_AUTO_FOCUS_STATUS_FAILED (1 << 2) + +#define V4L2_CID_AUTO_FOCUS_RANGE (V4L2_CID_CAMERA_CLASS_BASE+31) +enum v4l2_auto_focus_range { + V4L2_AUTO_FOCUS_RANGE_AUTO = 0, + V4L2_AUTO_FOCUS_RANGE_NORMAL = 1, + V4L2_AUTO_FOCUS_RANGE_MACRO = 2, + V4L2_AUTO_FOCUS_RANGE_INFINITY = 3, +}; + + +/* FM Modulator class control IDs */ + +#define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) +#define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) + +#define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1) +#define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2) +#define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3) +#define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5) +#define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6) + +#define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64) +#define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65) +#define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66) + +#define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80) +#define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81) +#define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82) +#define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83) +#define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84) + +#define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96) +#define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97) +#define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98) + +#define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112) +enum v4l2_preemphasis { + V4L2_PREEMPHASIS_DISABLED = 0, + V4L2_PREEMPHASIS_50_uS = 1, + V4L2_PREEMPHASIS_75_uS = 2, +}; +#define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113) +#define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114) + + +/* Flash and privacy (indicator) light controls */ + +#define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900) +#define V4L2_CID_FLASH_CLASS (V4L2_CTRL_CLASS_FLASH | 1) + +#define V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1) +enum v4l2_flash_led_mode { + V4L2_FLASH_LED_MODE_NONE, + V4L2_FLASH_LED_MODE_FLASH, + V4L2_FLASH_LED_MODE_TORCH, +}; + +#define V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2) +enum v4l2_flash_strobe_source { + V4L2_FLASH_STROBE_SOURCE_SOFTWARE, + V4L2_FLASH_STROBE_SOURCE_EXTERNAL, +}; + +#define V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3) +#define V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4) +#define V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5) + +#define V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6) +#define V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7) +#define V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8) +#define V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9) + +#define V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10) +#define V4L2_FLASH_FAULT_OVER_VOLTAGE (1 << 0) +#define V4L2_FLASH_FAULT_TIMEOUT (1 << 1) +#define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2) +#define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) +#define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4) +#define V4L2_FLASH_FAULT_INDICATOR (1 << 5) + +#define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) +#define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) + + +/* JPEG-class control IDs */ + +#define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900) +#define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1) + +#define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1) +enum v4l2_jpeg_chroma_subsampling { + V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0, + V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1, + V4L2_JPEG_CHROMA_SUBSAMPLING_420 = 2, + V4L2_JPEG_CHROMA_SUBSAMPLING_411 = 3, + V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4, + V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5, +}; +#define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2) +#define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3) + +#define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4) +#define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0) +#define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1) +#define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16) +#define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) +#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) + + +/* Image source controls */ +#define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) +#define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) + +#define V4L2_CID_VBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1) +#define V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2) +#define V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3) + + +/* Image processing controls */ + +#define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) +#define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1) + +#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1) +#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) +#define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) + + +/* DV-class control IDs defined by V4L2 */ +#define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) +#define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) + +#define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) +#define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) +#define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) +#define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) +enum v4l2_dv_tx_mode { + V4L2_DV_TX_MODE_DVI_D = 0, + V4L2_DV_TX_MODE_HDMI = 1, +}; +#define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5) +enum v4l2_dv_rgb_range { + V4L2_DV_RGB_RANGE_AUTO = 0, + V4L2_DV_RGB_RANGE_LIMITED = 1, + V4L2_DV_RGB_RANGE_FULL = 2, +}; + +#define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) +#define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) + +#define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900) +#define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1) + +#define V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1) +enum v4l2_deemphasis { + V4L2_DEEMPHASIS_DISABLED = V4L2_PREEMPHASIS_DISABLED, + V4L2_DEEMPHASIS_50_uS = V4L2_PREEMPHASIS_50_uS, + V4L2_DEEMPHASIS_75_uS = V4L2_PREEMPHASIS_75_uS, +}; + +#define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) + +#endif diff --git a/sys/v4l2/ext/videodev2.h b/sys/v4l2/ext/videodev2.h new file mode 100644 index 000000000..2b4d1f5e0 --- /dev/null +++ b/sys/v4l2/ext/videodev2.h @@ -0,0 +1,1964 @@ +/* + * Video for Linux Two header file + * + * Copyright (C) 1999-2012 the contributors + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Alternatively you can redistribute this file under the terms of the + * BSD license as stated below: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. The names of its contributors may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Header file for v4l or V4L2 drivers and applications + * with public API. + * All kernel-specific stuff were moved to media/v4l2-dev.h, so + * no #if __KERNEL tests are allowed here + * + * See http://linuxtv.org for more info + * + * Author: Bill Dirks <bill@thedirks.org> + * Justin Schoeman + * Hans Verkuil <hverkuil@xs4all.nl> + * et al. + */ +#ifndef __LINUX_VIDEODEV2_H +#define __LINUX_VIDEODEV2_H + +#include <sys/time.h> +#include <sys/ioctl.h> + +#include "ext/types-compat.h" +#include "ext/v4l2-common.h" +#include "ext/v4l2-controls.h" + +/* + * Common stuff for both V4L1 and V4L2 + * Moved from videodev.h + */ +#define VIDEO_MAX_FRAME 32 +#define VIDEO_MAX_PLANES 8 + +/* + * M I S C E L L A N E O U S + */ + +/* Four-character-code (FOURCC) */ +#define v4l2_fourcc(a, b, c, d)\ + ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24)) + +/* + * E N U M S + */ +enum v4l2_field { + V4L2_FIELD_ANY = 0, /* driver can choose from none, + top, bottom, interlaced + depending on whatever it thinks + is approximate ... */ + V4L2_FIELD_NONE = 1, /* this device has no fields ... */ + V4L2_FIELD_TOP = 2, /* top field only */ + V4L2_FIELD_BOTTOM = 3, /* bottom field only */ + V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */ + V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one + buffer, top-bottom order */ + V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */ + V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into + separate buffers */ + V4L2_FIELD_INTERLACED_TB = 8, /* both fields interlaced, top field + first and the top field is + transmitted first */ + V4L2_FIELD_INTERLACED_BT = 9, /* both fields interlaced, top field + first and the bottom field is + transmitted first */ +}; +#define V4L2_FIELD_HAS_TOP(field) \ + ((field) == V4L2_FIELD_TOP ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) +#define V4L2_FIELD_HAS_BOTTOM(field) \ + ((field) == V4L2_FIELD_BOTTOM ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) +#define V4L2_FIELD_HAS_BOTH(field) \ + ((field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_INTERLACED_TB ||\ + (field) == V4L2_FIELD_INTERLACED_BT ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) + +enum v4l2_buf_type { + V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, + V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, + V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, + V4L2_BUF_TYPE_VBI_CAPTURE = 4, + V4L2_BUF_TYPE_VBI_OUTPUT = 5, + V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, + V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, +#if 1 + /* Experimental */ + V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY = 8, +#endif + V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE = 9, + V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE = 10, + /* Deprecated, do not use */ + V4L2_BUF_TYPE_PRIVATE = 0x80, +}; + +#define V4L2_TYPE_IS_MULTIPLANAR(type) \ + ((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE \ + || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) + +#define V4L2_TYPE_IS_OUTPUT(type) \ + ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT \ + || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE \ + || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY \ + || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \ + || (type) == V4L2_BUF_TYPE_VBI_OUTPUT \ + || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) + +enum v4l2_tuner_type { + V4L2_TUNER_RADIO = 1, + V4L2_TUNER_ANALOG_TV = 2, + V4L2_TUNER_DIGITAL_TV = 3, +}; + +enum v4l2_memory { + V4L2_MEMORY_MMAP = 1, + V4L2_MEMORY_USERPTR = 2, + V4L2_MEMORY_OVERLAY = 3, + V4L2_MEMORY_DMABUF = 4, +}; + +/* see also http://vektor.theorem.ca/graphics/ycbcr/ */ +enum v4l2_colorspace { + /* ITU-R 601 -- broadcast NTSC/PAL */ + V4L2_COLORSPACE_SMPTE170M = 1, + + /* 1125-Line (US) HDTV */ + V4L2_COLORSPACE_SMPTE240M = 2, + + /* HD and modern captures. */ + V4L2_COLORSPACE_REC709 = 3, + + /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */ + V4L2_COLORSPACE_BT878 = 4, + + /* These should be useful. Assume 601 extents. */ + V4L2_COLORSPACE_470_SYSTEM_M = 5, + V4L2_COLORSPACE_470_SYSTEM_BG = 6, + + /* I know there will be cameras that send this. So, this is + * unspecified chromaticities and full 0-255 on each of the + * Y'CbCr components + */ + V4L2_COLORSPACE_JPEG = 7, + + /* For RGB colourspaces, this is probably a good start. */ + V4L2_COLORSPACE_SRGB = 8, +}; + +enum v4l2_priority { + V4L2_PRIORITY_UNSET = 0, /* not initialized */ + V4L2_PRIORITY_BACKGROUND = 1, + V4L2_PRIORITY_INTERACTIVE = 2, + V4L2_PRIORITY_RECORD = 3, + V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE, +}; + +struct v4l2_rect { + __s32 left; + __s32 top; + __s32 width; + __s32 height; +}; + +struct v4l2_fract { + __u32 numerator; + __u32 denominator; +}; + +/** + * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP + * + * @driver: name of the driver module (e.g. "bttv") + * @card: name of the card (e.g. "Hauppauge WinTV") + * @bus_info: name of the bus (e.g. "PCI:" + pci_name(pci_dev) ) + * @version: KERNEL_VERSION + * @capabilities: capabilities of the physical device as a whole + * @device_caps: capabilities accessed via this particular device (node) + * @reserved: reserved fields for future extensions + */ +struct v4l2_capability { + __u8 driver[16]; + __u8 card[32]; + __u8 bus_info[32]; + __u32 version; + __u32 capabilities; + __u32 device_caps; + __u32 reserved[3]; +}; + +/* Values for 'capabilities' field */ +#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */ +#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */ +#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */ +#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */ +#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */ +#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */ +#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */ +#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */ +#define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 /* Can do video output overlay */ +#define V4L2_CAP_HW_FREQ_SEEK 0x00000400 /* Can do hardware frequency seek */ +#define V4L2_CAP_RDS_OUTPUT 0x00000800 /* Is an RDS encoder */ + +/* Is a video capture device that supports multiplanar formats */ +#define V4L2_CAP_VIDEO_CAPTURE_MPLANE 0x00001000 +/* Is a video output device that supports multiplanar formats */ +#define V4L2_CAP_VIDEO_OUTPUT_MPLANE 0x00002000 +/* Is a video mem-to-mem device that supports multiplanar formats */ +#define V4L2_CAP_VIDEO_M2M_MPLANE 0x00004000 +/* Is a video mem-to-mem device */ +#define V4L2_CAP_VIDEO_M2M 0x00008000 + +#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */ +#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */ +#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ +#define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */ + +#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ +#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ +#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ + +#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */ + +/* + * V I D E O I M A G E F O R M A T + */ +struct v4l2_pix_format { + __u32 width; + __u32 height; + __u32 pixelformat; + __u32 field; /* enum v4l2_field */ + __u32 bytesperline; /* for padding, zero if unused */ + __u32 sizeimage; + __u32 colorspace; /* enum v4l2_colorspace */ + __u32 priv; /* private data, depends on pixelformat */ +}; + +/* Pixel format FOURCC depth Description */ + +/* RGB formats */ +#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */ +#define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ +#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */ +#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ +#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ +#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ +#define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */ +#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ +#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ +#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ +#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ + +/* Grey formats */ +#define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ +#define V4L2_PIX_FMT_Y4 v4l2_fourcc('Y', '0', '4', ' ') /* 4 Greyscale */ +#define V4L2_PIX_FMT_Y6 v4l2_fourcc('Y', '0', '6', ' ') /* 6 Greyscale */ +#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* 10 Greyscale */ +#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* 12 Greyscale */ +#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* 16 Greyscale */ + +/* Grey bit-packed formats */ +#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */ + +/* Palette formats */ +#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */ + +/* Chrominance formats */ +#define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ') /* 8 UV 4:4 */ + +/* Luminance+Chrominance formats */ +#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9') /* 9 YVU 4:1:0 */ +#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */ +#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */ +#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_VYUY v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */ +#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */ +#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */ +#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ +#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */ +#define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */ +#define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ +#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ +#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y', 'U', '1', '2') /* 12 YUV 4:2:0 */ +#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */ +#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ +#define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */ + +/* two planes -- one Y, one Cr + Cb interleaved */ +#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */ +#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ +#define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */ +#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ +#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ +#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ + +/* two non contiguous planes - one Y, one Cr + Cb interleaved */ +#define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */ +#define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */ +#define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6') /* 16 Y/CbCr 4:2:2 */ +#define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1') /* 16 Y/CrCb 4:2:2 */ +#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ +#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */ + +/* three non contiguous planes - Y, Cb, Cr */ +#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */ +#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */ + +/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ +#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ +#define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */ +#define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G') /* 8 GRGR.. BGBG.. */ +#define V4L2_PIX_FMT_SRGGB8 v4l2_fourcc('R', 'G', 'G', 'B') /* 8 RGRG.. GBGB.. */ +#define V4L2_PIX_FMT_SBGGR10 v4l2_fourcc('B', 'G', '1', '0') /* 10 BGBG.. GRGR.. */ +#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */ +#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */ +#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */ +#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */ +#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */ +#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */ +#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */ + /* 10bit raw bayer a-law compressed to 8 bits */ +#define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8') +#define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8') +#define V4L2_PIX_FMT_SGRBG10ALAW8 v4l2_fourcc('a', 'g', 'A', '8') +#define V4L2_PIX_FMT_SRGGB10ALAW8 v4l2_fourcc('a', 'R', 'A', '8') + /* 10bit raw bayer DPCM compressed to 8 bits */ +#define V4L2_PIX_FMT_SBGGR10DPCM8 v4l2_fourcc('b', 'B', 'A', '8') +#define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8') +#define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0') +#define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8') + /* + * 10bit raw bayer, expanded to 16 bits + * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb... + */ +#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */ + +/* compressed formats */ +#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */ +#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG */ +#define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd') /* 1394 */ +#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 Multiplexed */ +#define V4L2_PIX_FMT_H264 v4l2_fourcc('H', '2', '6', '4') /* H264 with start codes */ +#define V4L2_PIX_FMT_H264_NO_SC v4l2_fourcc('A', 'V', 'C', '1') /* H264 without start codes */ +#define V4L2_PIX_FMT_H264_MVC v4l2_fourcc('M', '2', '6', '4') /* H264 MVC */ +#define V4L2_PIX_FMT_H263 v4l2_fourcc('H', '2', '6', '3') /* H263 */ +#define V4L2_PIX_FMT_MPEG1 v4l2_fourcc('M', 'P', 'G', '1') /* MPEG-1 ES */ +#define V4L2_PIX_FMT_MPEG2 v4l2_fourcc('M', 'P', 'G', '2') /* MPEG-2 ES */ +#define V4L2_PIX_FMT_MPEG4 v4l2_fourcc('M', 'P', 'G', '4') /* MPEG-4 part 2 ES */ +#define V4L2_PIX_FMT_XVID v4l2_fourcc('X', 'V', 'I', 'D') /* Xvid */ +#define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ +#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */ +#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ + +/* Vendor-specific formats */ +#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */ +#define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ +#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */ +#define V4L2_PIX_FMT_SN9C20X_I420 v4l2_fourcc('S', '9', '2', '0') /* SN9C20x YUV 4:2:0 */ +#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ +#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ +#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ +#define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1') /* YUYV per line */ +#define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */ +#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */ +#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ +#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ +#define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */ +#define V4L2_PIX_FMT_JL2005BCD v4l2_fourcc('J', 'L', '2', '0') /* compressed RGGB bayer */ +#define V4L2_PIX_FMT_SN9C2028 v4l2_fourcc('S', 'O', 'N', 'X') /* compressed GBRG bayer */ +#define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */ +#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ +#define V4L2_PIX_FMT_OV511 v4l2_fourcc('O', '5', '1', '1') /* ov511 JPEG */ +#define V4L2_PIX_FMT_OV518 v4l2_fourcc('O', '5', '1', '8') /* ov518 JPEG */ +#define V4L2_PIX_FMT_STV0680 v4l2_fourcc('S', '6', '8', '0') /* stv0680 bayer */ +#define V4L2_PIX_FMT_TM6000 v4l2_fourcc('T', 'M', '6', '0') /* tm5600/tm60x0 */ +#define V4L2_PIX_FMT_CIT_YYVYUY v4l2_fourcc('C', 'I', 'T', 'V') /* one line of Y then 1 line of VYUY */ +#define V4L2_PIX_FMT_KONICA420 v4l2_fourcc('K', 'O', 'N', 'I') /* YUV420 planar in blocks of 256 pixels */ +#define V4L2_PIX_FMT_JPGL v4l2_fourcc('J', 'P', 'G', 'L') /* JPEG-Lite */ +#define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */ +#define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */ + +/* + * F O R M A T E N U M E R A T I O N + */ +struct v4l2_fmtdesc { + __u32 index; /* Format number */ + __u32 type; /* enum v4l2_buf_type */ + __u32 flags; + __u8 description[32]; /* Description string */ + __u32 pixelformat; /* Format fourcc */ + __u32 reserved[4]; +}; + +#define V4L2_FMT_FLAG_COMPRESSED 0x0001 +#define V4L2_FMT_FLAG_EMULATED 0x0002 + +#if 1 + /* Experimental Frame Size and frame rate enumeration */ +/* + * F R A M E S I Z E E N U M E R A T I O N + */ +enum v4l2_frmsizetypes { + V4L2_FRMSIZE_TYPE_DISCRETE = 1, + V4L2_FRMSIZE_TYPE_CONTINUOUS = 2, + V4L2_FRMSIZE_TYPE_STEPWISE = 3, +}; + +struct v4l2_frmsize_discrete { + __u32 width; /* Frame width [pixel] */ + __u32 height; /* Frame height [pixel] */ +}; + +struct v4l2_frmsize_stepwise { + __u32 min_width; /* Minimum frame width [pixel] */ + __u32 max_width; /* Maximum frame width [pixel] */ + __u32 step_width; /* Frame width step size [pixel] */ + __u32 min_height; /* Minimum frame height [pixel] */ + __u32 max_height; /* Maximum frame height [pixel] */ + __u32 step_height; /* Frame height step size [pixel] */ +}; + +struct v4l2_frmsizeenum { + __u32 index; /* Frame size number */ + __u32 pixel_format; /* Pixel format */ + __u32 type; /* Frame size type the device supports. */ + + union { /* Frame size */ + struct v4l2_frmsize_discrete discrete; + struct v4l2_frmsize_stepwise stepwise; + }; + + __u32 reserved[2]; /* Reserved space for future use */ +}; + +/* + * F R A M E R A T E E N U M E R A T I O N + */ +enum v4l2_frmivaltypes { + V4L2_FRMIVAL_TYPE_DISCRETE = 1, + V4L2_FRMIVAL_TYPE_CONTINUOUS = 2, + V4L2_FRMIVAL_TYPE_STEPWISE = 3, +}; + +struct v4l2_frmival_stepwise { + struct v4l2_fract min; /* Minimum frame interval [s] */ + struct v4l2_fract max; /* Maximum frame interval [s] */ + struct v4l2_fract step; /* Frame interval step size [s] */ +}; + +struct v4l2_frmivalenum { + __u32 index; /* Frame format index */ + __u32 pixel_format; /* Pixel format */ + __u32 width; /* Frame width */ + __u32 height; /* Frame height */ + __u32 type; /* Frame interval type the device supports. */ + + union { /* Frame interval */ + struct v4l2_fract discrete; + struct v4l2_frmival_stepwise stepwise; + }; + + __u32 reserved[2]; /* Reserved space for future use */ +}; +#endif + +/* + * T I M E C O D E + */ +struct v4l2_timecode { + __u32 type; + __u32 flags; + __u8 frames; + __u8 seconds; + __u8 minutes; + __u8 hours; + __u8 userbits[4]; +}; + +/* Type */ +#define V4L2_TC_TYPE_24FPS 1 +#define V4L2_TC_TYPE_25FPS 2 +#define V4L2_TC_TYPE_30FPS 3 +#define V4L2_TC_TYPE_50FPS 4 +#define V4L2_TC_TYPE_60FPS 5 + +/* Flags */ +#define V4L2_TC_FLAG_DROPFRAME 0x0001 /* "drop-frame" mode */ +#define V4L2_TC_FLAG_COLORFRAME 0x0002 +#define V4L2_TC_USERBITS_field 0x000C +#define V4L2_TC_USERBITS_USERDEFINED 0x0000 +#define V4L2_TC_USERBITS_8BITCHARS 0x0008 +/* The above is based on SMPTE timecodes */ + +struct v4l2_jpegcompression { + int quality; + + int APPn; /* Number of APP segment to be written, + * must be 0..15 */ + int APP_len; /* Length of data in JPEG APPn segment */ + char APP_data[60]; /* Data in the JPEG APPn segment. */ + + int COM_len; /* Length of data in JPEG COM segment */ + char COM_data[60]; /* Data in JPEG COM segment */ + + __u32 jpeg_markers; /* Which markers should go into the JPEG + * output. Unless you exactly know what + * you do, leave them untouched. + * Including less markers will make the + * resulting code smaller, but there will + * be fewer applications which can read it. + * The presence of the APP and COM marker + * is influenced by APP_len and COM_len + * ONLY, not by this property! */ + +#define V4L2_JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */ +#define V4L2_JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */ +#define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */ +#define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */ +#define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will + * always use APP0 */ +}; + +/* + * M E M O R Y - M A P P I N G B U F F E R S + */ +struct v4l2_requestbuffers { + __u32 count; + __u32 type; /* enum v4l2_buf_type */ + __u32 memory; /* enum v4l2_memory */ + __u32 reserved[2]; +}; + +/** + * struct v4l2_plane - plane info for multi-planar buffers + * @bytesused: number of bytes occupied by data in the plane (payload) + * @length: size of this plane (NOT the payload) in bytes + * @mem_offset: when memory in the associated struct v4l2_buffer is + * V4L2_MEMORY_MMAP, equals the offset from the start of + * the device memory for this plane (or is a "cookie" that + * should be passed to mmap() called on the video node) + * @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer + * pointing to this plane + * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file + * descriptor associated with this plane + * @data_offset: offset in the plane to the start of data; usually 0, + * unless there is a header in front of the data + * + * Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer + * with two planes can have one plane for Y, and another for interleaved CbCr + * components. Each plane can reside in a separate memory buffer, or even in + * a completely separate memory node (e.g. in embedded devices). + */ +struct v4l2_plane { + __u32 bytesused; + __u32 length; + union { + __u32 mem_offset; + unsigned long userptr; + __s32 fd; + } m; + __u32 data_offset; + __u32 reserved[11]; +}; + +/** + * struct v4l2_buffer - video buffer info + * @index: id number of the buffer + * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for + * multiplanar buffers); + * @bytesused: number of bytes occupied by data in the buffer (payload); + * unused (set to 0) for multiplanar buffers + * @flags: buffer informational flags + * @field: enum v4l2_field; field order of the image in the buffer + * @timestamp: frame timestamp + * @timecode: frame timecode + * @sequence: sequence count of this frame + * @memory: enum v4l2_memory; the method, in which the actual video data is + * passed + * @offset: for non-multiplanar buffers with memory == V4L2_MEMORY_MMAP; + * offset from the start of the device memory for this plane, + * (or a "cookie" that should be passed to mmap() as offset) + * @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR; + * a userspace pointer pointing to this buffer + * @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF; + * a userspace file descriptor associated with this buffer + * @planes: for multiplanar buffers; userspace pointer to the array of plane + * info structs for this buffer + * @length: size in bytes of the buffer (NOT its payload) for single-plane + * buffers (when type != *_MPLANE); number of elements in the + * planes array for multi-plane buffers + * @input: input number from which the video data has has been captured + * + * Contains data exchanged by application and driver using one of the Streaming + * I/O methods. + */ +struct v4l2_buffer { + __u32 index; + __u32 type; + __u32 bytesused; + __u32 flags; + __u32 field; + struct timeval timestamp; + struct v4l2_timecode timecode; + __u32 sequence; + + /* memory location */ + __u32 memory; + union { + __u32 offset; + unsigned long userptr; + struct v4l2_plane *planes; + __s32 fd; + } m; + __u32 length; + __u32 reserved2; + __u32 reserved; +}; + +/* Flags for 'flags' field */ +#define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */ +#define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */ +#define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */ +#define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */ +#define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */ +#define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */ +/* Buffer is ready, but the data contained within is corrupted. */ +#define V4L2_BUF_FLAG_ERROR 0x0040 +#define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */ +#define V4L2_BUF_FLAG_PREPARED 0x0400 /* Buffer is prepared for queuing */ +/* Cache handling flags */ +#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800 +#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000 +/* Timestamp type */ +#define V4L2_BUF_FLAG_TIMESTAMP_MASK 0xe000 +#define V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN 0x0000 +#define V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC 0x2000 +#define V4L2_BUF_FLAG_TIMESTAMP_COPY 0x4000 + +/** + * struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor + * + * @index: id number of the buffer + * @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for + * multiplanar buffers); + * @plane: index of the plane to be exported, 0 for single plane queues + * @flags: flags for newly created file, currently only O_CLOEXEC is + * supported, refer to manual of open syscall for more details + * @fd: file descriptor associated with DMABUF (set by driver) + * + * Contains data used for exporting a video buffer as DMABUF file descriptor. + * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF + * (identical to the cookie used to mmap() the buffer to userspace). All + * reserved fields must be set to zero. The field reserved0 is expected to + * become a structure 'type' allowing an alternative layout of the structure + * content. Therefore this field should not be used for any other extensions. + */ +struct v4l2_exportbuffer { + __u32 type; /* enum v4l2_buf_type */ + __u32 index; + __u32 plane; + __u32 flags; + __s32 fd; + __u32 reserved[11]; +}; + +/* + * O V E R L A Y P R E V I E W + */ +struct v4l2_framebuffer { + __u32 capability; + __u32 flags; +/* FIXME: in theory we should pass something like PCI device + memory + * region + offset instead of some physical address */ + void *base; + struct v4l2_pix_format fmt; +}; +/* Flags for the 'capability' field. Read only */ +#define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001 +#define V4L2_FBUF_CAP_CHROMAKEY 0x0002 +#define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004 +#define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008 +#define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010 +#define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020 +#define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040 +#define V4L2_FBUF_CAP_SRC_CHROMAKEY 0x0080 +/* Flags for the 'flags' field. */ +#define V4L2_FBUF_FLAG_PRIMARY 0x0001 +#define V4L2_FBUF_FLAG_OVERLAY 0x0002 +#define V4L2_FBUF_FLAG_CHROMAKEY 0x0004 +#define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008 +#define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010 +#define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020 +#define V4L2_FBUF_FLAG_SRC_CHROMAKEY 0x0040 + +struct v4l2_clip { + struct v4l2_rect c; + struct v4l2_clip *next; +}; + +struct v4l2_window { + struct v4l2_rect w; + __u32 field; /* enum v4l2_field */ + __u32 chromakey; + struct v4l2_clip *clips; + __u32 clipcount; + void *bitmap; + __u8 global_alpha; +}; + +/* + * C A P T U R E P A R A M E T E R S + */ +struct v4l2_captureparm { + __u32 capability; /* Supported modes */ + __u32 capturemode; /* Current mode */ + struct v4l2_fract timeperframe; /* Time per frame in seconds */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 readbuffers; /* # of buffers for read */ + __u32 reserved[4]; +}; + +/* Flags for 'capability' and 'capturemode' fields */ +#define V4L2_MODE_HIGHQUALITY 0x0001 /* High quality imaging mode */ +#define V4L2_CAP_TIMEPERFRAME 0x1000 /* timeperframe field is supported */ + +struct v4l2_outputparm { + __u32 capability; /* Supported modes */ + __u32 outputmode; /* Current mode */ + struct v4l2_fract timeperframe; /* Time per frame in seconds */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 writebuffers; /* # of buffers for write */ + __u32 reserved[4]; +}; + +/* + * I N P U T I M A G E C R O P P I N G + */ +struct v4l2_cropcap { + __u32 type; /* enum v4l2_buf_type */ + struct v4l2_rect bounds; + struct v4l2_rect defrect; + struct v4l2_fract pixelaspect; +}; + +struct v4l2_crop { + __u32 type; /* enum v4l2_buf_type */ + struct v4l2_rect c; +}; + +/** + * struct v4l2_selection - selection info + * @type: buffer type (do not use *_MPLANE types) + * @target: Selection target, used to choose one of possible rectangles; + * defined in v4l2-common.h; V4L2_SEL_TGT_* . + * @flags: constraints flags, defined in v4l2-common.h; V4L2_SEL_FLAG_*. + * @r: coordinates of selection window + * @reserved: for future use, rounds structure size to 64 bytes, set to zero + * + * Hardware may use multiple helper windows to process a video stream. + * The structure is used to exchange this selection areas between + * an application and a driver. + */ +struct v4l2_selection { + __u32 type; + __u32 target; + __u32 flags; + struct v4l2_rect r; + __u32 reserved[9]; +}; + + +/* + * A N A L O G V I D E O S T A N D A R D + */ + +typedef __u64 v4l2_std_id; + +/* one bit for each */ +#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) +#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002) +#define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004) +#define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008) +#define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010) +#define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020) +#define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040) +#define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080) + +#define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100) +#define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200) +#define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400) +#define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800) + +#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) /* BTSC */ +#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) /* EIA-J */ +#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) +#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) /* FM A2 */ + +#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) +#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) +#define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000) +#define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000) +#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) +#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) +#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) +#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000) + +/* ATSC/HDTV */ +#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) +#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000) + +/* FIXME: + Although std_id is 64 bits, there is an issue on PPC32 architecture that + makes switch(__u64) to break. So, there's a hack on v4l2-common.c rounding + this value to 32 bits. + As, currently, the max value is for V4L2_STD_ATSC_16_VSB (30 bits wide), + it should work fine. However, if needed to add more than two standards, + v4l2-common.c should be fixed. + */ + +/* + * Some macros to merge video standards in order to make live easier for the + * drivers and V4L2 applications + */ + +/* + * "Common" NTSC/M - It should be noticed that V4L2_STD_NTSC_443 is + * Missing here. + */ +#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\ + V4L2_STD_NTSC_M_JP |\ + V4L2_STD_NTSC_M_KR) +/* Secam macros */ +#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ + V4L2_STD_SECAM_K |\ + V4L2_STD_SECAM_K1) +/* All Secam Standards */ +#define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\ + V4L2_STD_SECAM_G |\ + V4L2_STD_SECAM_H |\ + V4L2_STD_SECAM_DK |\ + V4L2_STD_SECAM_L |\ + V4L2_STD_SECAM_LC) +/* PAL macros */ +#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\ + V4L2_STD_PAL_B1 |\ + V4L2_STD_PAL_G) +#define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\ + V4L2_STD_PAL_D1 |\ + V4L2_STD_PAL_K) +/* + * "Common" PAL - This macro is there to be compatible with the old + * V4L1 concept of "PAL": /BGDKHI. + * Several PAL standards are missing here: /M, /N and /Nc + */ +#define V4L2_STD_PAL (V4L2_STD_PAL_BG |\ + V4L2_STD_PAL_DK |\ + V4L2_STD_PAL_H |\ + V4L2_STD_PAL_I) +/* Chroma "agnostic" standards */ +#define V4L2_STD_B (V4L2_STD_PAL_B |\ + V4L2_STD_PAL_B1 |\ + V4L2_STD_SECAM_B) +#define V4L2_STD_G (V4L2_STD_PAL_G |\ + V4L2_STD_SECAM_G) +#define V4L2_STD_H (V4L2_STD_PAL_H |\ + V4L2_STD_SECAM_H) +#define V4L2_STD_L (V4L2_STD_SECAM_L |\ + V4L2_STD_SECAM_LC) +#define V4L2_STD_GH (V4L2_STD_G |\ + V4L2_STD_H) +#define V4L2_STD_DK (V4L2_STD_PAL_DK |\ + V4L2_STD_SECAM_DK) +#define V4L2_STD_BG (V4L2_STD_B |\ + V4L2_STD_G) +#define V4L2_STD_MN (V4L2_STD_PAL_M |\ + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc |\ + V4L2_STD_NTSC) + +/* Standards where MTS/BTSC stereo could be found */ +#define V4L2_STD_MTS (V4L2_STD_NTSC_M |\ + V4L2_STD_PAL_M |\ + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc) + +/* Standards for Countries with 60Hz Line frequency */ +#define V4L2_STD_525_60 (V4L2_STD_PAL_M |\ + V4L2_STD_PAL_60 |\ + V4L2_STD_NTSC |\ + V4L2_STD_NTSC_443) +/* Standards for Countries with 50Hz Line frequency */ +#define V4L2_STD_625_50 (V4L2_STD_PAL |\ + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc |\ + V4L2_STD_SECAM) + +#define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\ + V4L2_STD_ATSC_16_VSB) +/* Macros with none and all analog standards */ +#define V4L2_STD_UNKNOWN 0 +#define V4L2_STD_ALL (V4L2_STD_525_60 |\ + V4L2_STD_625_50) + +struct v4l2_standard { + __u32 index; + v4l2_std_id id; + __u8 name[24]; + struct v4l2_fract frameperiod; /* Frames, not fields */ + __u32 framelines; + __u32 reserved[4]; +}; + +/* + * D V B T T I M I N G S + */ + +/** struct v4l2_bt_timings - BT.656/BT.1120 timing data + * @width: total width of the active video in pixels + * @height: total height of the active video in lines + * @interlaced: Interlaced or progressive + * @polarities: Positive or negative polarities + * @pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000 + * @hfrontporch:Horizontal front porch in pixels + * @hsync: Horizontal Sync length in pixels + * @hbackporch: Horizontal back porch in pixels + * @vfrontporch:Vertical front porch in lines + * @vsync: Vertical Sync length in lines + * @vbackporch: Vertical back porch in lines + * @il_vfrontporch:Vertical front porch for the even field + * (aka field 2) of interlaced field formats + * @il_vsync: Vertical Sync length for the even field + * (aka field 2) of interlaced field formats + * @il_vbackporch:Vertical back porch for the even field + * (aka field 2) of interlaced field formats + * @standards: Standards the timing belongs to + * @flags: Flags + * @reserved: Reserved fields, must be zeroed. + * + * A note regarding vertical interlaced timings: height refers to the total + * height of the active video frame (= two fields). The blanking timings refer + * to the blanking of each field. So the height of the total frame is + * calculated as follows: + * + * tot_height = height + vfrontporch + vsync + vbackporch + + * il_vfrontporch + il_vsync + il_vbackporch + * + * The active height of each field is height / 2. + */ +struct v4l2_bt_timings { + __u32 width; + __u32 height; + __u32 interlaced; + __u32 polarities; + __u64 pixelclock; + __u32 hfrontporch; + __u32 hsync; + __u32 hbackporch; + __u32 vfrontporch; + __u32 vsync; + __u32 vbackporch; + __u32 il_vfrontporch; + __u32 il_vsync; + __u32 il_vbackporch; + __u32 standards; + __u32 flags; + __u32 reserved[14]; +} __attribute__ ((packed)); + +/* Interlaced or progressive format */ +#define V4L2_DV_PROGRESSIVE 0 +#define V4L2_DV_INTERLACED 1 + +/* Polarities. If bit is not set, it is assumed to be negative polarity */ +#define V4L2_DV_VSYNC_POS_POL 0x00000001 +#define V4L2_DV_HSYNC_POS_POL 0x00000002 + +/* Timings standards */ +#define V4L2_DV_BT_STD_CEA861 (1 << 0) /* CEA-861 Digital TV Profile */ +#define V4L2_DV_BT_STD_DMT (1 << 1) /* VESA Discrete Monitor Timings */ +#define V4L2_DV_BT_STD_CVT (1 << 2) /* VESA Coordinated Video Timings */ +#define V4L2_DV_BT_STD_GTF (1 << 3) /* VESA Generalized Timings Formula */ + +/* Flags */ + +/* CVT/GTF specific: timing uses reduced blanking (CVT) or the 'Secondary + GTF' curve (GTF). In both cases the horizontal and/or vertical blanking + intervals are reduced, allowing a higher resolution over the same + bandwidth. This is a read-only flag. */ +#define V4L2_DV_FL_REDUCED_BLANKING (1 << 0) +/* CEA-861 specific: set for CEA-861 formats with a framerate of a multiple + of six. These formats can be optionally played at 1 / 1.001 speed. + This is a read-only flag. */ +#define V4L2_DV_FL_CAN_REDUCE_FPS (1 << 1) +/* CEA-861 specific: only valid for video transmitters, the flag is cleared + by receivers. + If the framerate of the format is a multiple of six, then the pixelclock + used to set up the transmitter is divided by 1.001 to make it compatible + with 60 Hz based standards such as NTSC and PAL-M that use a framerate of + 29.97 Hz. Otherwise this flag is cleared. If the transmitter can't generate + such frequencies, then the flag will also be cleared. */ +#define V4L2_DV_FL_REDUCED_FPS (1 << 2) +/* Specific to interlaced formats: if set, then field 1 is really one half-line + longer and field 2 is really one half-line shorter, so each field has + exactly the same number of half-lines. Whether half-lines can be detected + or used depends on the hardware. */ +#define V4L2_DV_FL_HALF_LINE (1 << 3) + +/* A few useful defines to calculate the total blanking and frame sizes */ +#define V4L2_DV_BT_BLANKING_WIDTH(bt) \ + (bt->hfrontporch + bt->hsync + bt->hbackporch) +#define V4L2_DV_BT_FRAME_WIDTH(bt) \ + (bt->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) +#define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ + (bt->vfrontporch + bt->vsync + bt->vbackporch + \ + bt->il_vfrontporch + bt->il_vsync + bt->il_vbackporch) +#define V4L2_DV_BT_FRAME_HEIGHT(bt) \ + (bt->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) + +/** struct v4l2_dv_timings - DV timings + * @type: the type of the timings + * @bt: BT656/1120 timings + */ +struct v4l2_dv_timings { + __u32 type; + union { + struct v4l2_bt_timings bt; + __u32 reserved[32]; + }; +} __attribute__ ((packed)); + +/* Values for the type field */ +#define V4L2_DV_BT_656_1120 0 /* BT.656/1120 timing type */ + + +/** struct v4l2_enum_dv_timings - DV timings enumeration + * @index: enumeration index + * @reserved: must be zeroed + * @timings: the timings for the given index + */ +struct v4l2_enum_dv_timings { + __u32 index; + __u32 reserved[3]; + struct v4l2_dv_timings timings; +}; + +/** struct v4l2_bt_timings_cap - BT.656/BT.1120 timing capabilities + * @min_width: width in pixels + * @max_width: width in pixels + * @min_height: height in lines + * @max_height: height in lines + * @min_pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000 + * @max_pixelclock: Pixel clock in HZ. Ex. 74.25MHz->74250000 + * @standards: Supported standards + * @capabilities: Supported capabilities + * @reserved: Must be zeroed + */ +struct v4l2_bt_timings_cap { + __u32 min_width; + __u32 max_width; + __u32 min_height; + __u32 max_height; + __u64 min_pixelclock; + __u64 max_pixelclock; + __u32 standards; + __u32 capabilities; + __u32 reserved[16]; +} __attribute__ ((packed)); + +/* Supports interlaced formats */ +#define V4L2_DV_BT_CAP_INTERLACED (1 << 0) +/* Supports progressive formats */ +#define V4L2_DV_BT_CAP_PROGRESSIVE (1 << 1) +/* Supports CVT/GTF reduced blanking */ +#define V4L2_DV_BT_CAP_REDUCED_BLANKING (1 << 2) +/* Supports custom formats */ +#define V4L2_DV_BT_CAP_CUSTOM (1 << 3) + +/** struct v4l2_dv_timings_cap - DV timings capabilities + * @type: the type of the timings (same as in struct v4l2_dv_timings) + * @bt: the BT656/1120 timings capabilities + */ +struct v4l2_dv_timings_cap { + __u32 type; + __u32 reserved[3]; + union { + struct v4l2_bt_timings_cap bt; + __u32 raw_data[32]; + }; +}; + + +/* + * V I D E O I N P U T S + */ +struct v4l2_input { + __u32 index; /* Which input */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of input */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 tuner; /* enum v4l2_tuner_type */ + v4l2_std_id std; + __u32 status; + __u32 capabilities; + __u32 reserved[3]; +}; + +/* Values for the 'type' field */ +#define V4L2_INPUT_TYPE_TUNER 1 +#define V4L2_INPUT_TYPE_CAMERA 2 + +/* field 'status' - general */ +#define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */ +#define V4L2_IN_ST_NO_SIGNAL 0x00000002 +#define V4L2_IN_ST_NO_COLOR 0x00000004 + +/* field 'status' - sensor orientation */ +/* If sensor is mounted upside down set both bits */ +#define V4L2_IN_ST_HFLIP 0x00000010 /* Frames are flipped horizontally */ +#define V4L2_IN_ST_VFLIP 0x00000020 /* Frames are flipped vertically */ + +/* field 'status' - analog */ +#define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */ +#define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */ + +/* field 'status' - digital */ +#define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */ +#define V4L2_IN_ST_NO_EQU 0x00020000 /* No equalizer lock */ +#define V4L2_IN_ST_NO_CARRIER 0x00040000 /* Carrier recovery failed */ + +/* field 'status' - VCR and set-top box */ +#define V4L2_IN_ST_MACROVISION 0x01000000 /* Macrovision detected */ +#define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */ +#define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */ + +/* capabilities flags */ +#define V4L2_IN_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */ +#define V4L2_IN_CAP_CUSTOM_TIMINGS V4L2_IN_CAP_DV_TIMINGS /* For compatibility */ +#define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */ + +/* + * V I D E O O U T P U T S + */ +struct v4l2_output { + __u32 index; /* Which output */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of output */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 modulator; /* Associated modulator */ + v4l2_std_id std; + __u32 capabilities; + __u32 reserved[3]; +}; +/* Values for the 'type' field */ +#define V4L2_OUTPUT_TYPE_MODULATOR 1 +#define V4L2_OUTPUT_TYPE_ANALOG 2 +#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3 + +/* capabilities flags */ +#define V4L2_OUT_CAP_DV_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */ +#define V4L2_OUT_CAP_CUSTOM_TIMINGS V4L2_OUT_CAP_DV_TIMINGS /* For compatibility */ +#define V4L2_OUT_CAP_STD 0x00000004 /* Supports S_STD */ + +/* + * C O N T R O L S + */ +struct v4l2_control { + __u32 id; + __s32 value; +}; + +struct v4l2_ext_control { + __u32 id; + __u32 size; + __u32 reserved2[1]; + union { + __s32 value; + __s64 value64; + char *string; + }; +} __attribute__ ((packed)); + +struct v4l2_ext_controls { + __u32 ctrl_class; + __u32 count; + __u32 error_idx; + __u32 reserved[2]; + struct v4l2_ext_control *controls; +}; + +#define V4L2_CTRL_ID_MASK (0x0fffffff) +#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) +#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000) + +enum v4l2_ctrl_type { + V4L2_CTRL_TYPE_INTEGER = 1, + V4L2_CTRL_TYPE_BOOLEAN = 2, + V4L2_CTRL_TYPE_MENU = 3, + V4L2_CTRL_TYPE_BUTTON = 4, + V4L2_CTRL_TYPE_INTEGER64 = 5, + V4L2_CTRL_TYPE_CTRL_CLASS = 6, + V4L2_CTRL_TYPE_STRING = 7, + V4L2_CTRL_TYPE_BITMASK = 8, + V4L2_CTRL_TYPE_INTEGER_MENU = 9, +}; + +/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ +struct v4l2_queryctrl { + __u32 id; + __u32 type; /* enum v4l2_ctrl_type */ + __u8 name[32]; /* Whatever */ + __s32 minimum; /* Note signedness */ + __s32 maximum; + __s32 step; + __s32 default_value; + __u32 flags; + __u32 reserved[2]; +}; + +/* Used in the VIDIOC_QUERYMENU ioctl for querying menu items */ +struct v4l2_querymenu { + __u32 id; + __u32 index; + union { + __u8 name[32]; /* Whatever */ + __s64 value; + }; + __u32 reserved; +} __attribute__ ((packed)); + +/* Control flags */ +#define V4L2_CTRL_FLAG_DISABLED 0x0001 +#define V4L2_CTRL_FLAG_GRABBED 0x0002 +#define V4L2_CTRL_FLAG_READ_ONLY 0x0004 +#define V4L2_CTRL_FLAG_UPDATE 0x0008 +#define V4L2_CTRL_FLAG_INACTIVE 0x0010 +#define V4L2_CTRL_FLAG_SLIDER 0x0020 +#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040 +#define V4L2_CTRL_FLAG_VOLATILE 0x0080 + +/* Query flag, to be ORed with the control ID */ +#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000 + +/* User-class control IDs defined by V4L2 */ +#define V4L2_CID_MAX_CTRLS 1024 +/* IDs reserved for driver specific controls */ +#define V4L2_CID_PRIVATE_BASE 0x08000000 + + +/* + * T U N I N G + */ +struct v4l2_tuner { + __u32 index; + __u8 name[32]; + __u32 type; /* enum v4l2_tuner_type */ + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 rxsubchans; + __u32 audmode; + __s32 signal; + __s32 afc; + __u32 reserved[4]; +}; + +struct v4l2_modulator { + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 txsubchans; + __u32 reserved[4]; +}; + +/* Flags for the 'capability' field */ +#define V4L2_TUNER_CAP_LOW 0x0001 +#define V4L2_TUNER_CAP_NORM 0x0002 +#define V4L2_TUNER_CAP_HWSEEK_BOUNDED 0x0004 +#define V4L2_TUNER_CAP_HWSEEK_WRAP 0x0008 +#define V4L2_TUNER_CAP_STEREO 0x0010 +#define V4L2_TUNER_CAP_LANG2 0x0020 +#define V4L2_TUNER_CAP_SAP 0x0020 +#define V4L2_TUNER_CAP_LANG1 0x0040 +#define V4L2_TUNER_CAP_RDS 0x0080 +#define V4L2_TUNER_CAP_RDS_BLOCK_IO 0x0100 +#define V4L2_TUNER_CAP_RDS_CONTROLS 0x0200 +#define V4L2_TUNER_CAP_FREQ_BANDS 0x0400 +#define V4L2_TUNER_CAP_HWSEEK_PROG_LIM 0x0800 + +/* Flags for the 'rxsubchans' field */ +#define V4L2_TUNER_SUB_MONO 0x0001 +#define V4L2_TUNER_SUB_STEREO 0x0002 +#define V4L2_TUNER_SUB_LANG2 0x0004 +#define V4L2_TUNER_SUB_SAP 0x0004 +#define V4L2_TUNER_SUB_LANG1 0x0008 +#define V4L2_TUNER_SUB_RDS 0x0010 + +/* Values for the 'audmode' field */ +#define V4L2_TUNER_MODE_MONO 0x0000 +#define V4L2_TUNER_MODE_STEREO 0x0001 +#define V4L2_TUNER_MODE_LANG2 0x0002 +#define V4L2_TUNER_MODE_SAP 0x0002 +#define V4L2_TUNER_MODE_LANG1 0x0003 +#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004 + +struct v4l2_frequency { + __u32 tuner; + __u32 type; /* enum v4l2_tuner_type */ + __u32 frequency; + __u32 reserved[8]; +}; + +#define V4L2_BAND_MODULATION_VSB (1 << 1) +#define V4L2_BAND_MODULATION_FM (1 << 2) +#define V4L2_BAND_MODULATION_AM (1 << 3) + +struct v4l2_frequency_band { + __u32 tuner; + __u32 type; /* enum v4l2_tuner_type */ + __u32 index; + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 modulation; + __u32 reserved[9]; +}; + +struct v4l2_hw_freq_seek { + __u32 tuner; + __u32 type; /* enum v4l2_tuner_type */ + __u32 seek_upward; + __u32 wrap_around; + __u32 spacing; + __u32 rangelow; + __u32 rangehigh; + __u32 reserved[5]; +}; + +/* + * R D S + */ + +struct v4l2_rds_data { + __u8 lsb; + __u8 msb; + __u8 block; +} __attribute__ ((packed)); + +#define V4L2_RDS_BLOCK_MSK 0x7 +#define V4L2_RDS_BLOCK_A 0 +#define V4L2_RDS_BLOCK_B 1 +#define V4L2_RDS_BLOCK_C 2 +#define V4L2_RDS_BLOCK_D 3 +#define V4L2_RDS_BLOCK_C_ALT 4 +#define V4L2_RDS_BLOCK_INVALID 7 + +#define V4L2_RDS_BLOCK_CORRECTED 0x40 +#define V4L2_RDS_BLOCK_ERROR 0x80 + +/* + * A U D I O + */ +struct v4l2_audio { + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 mode; + __u32 reserved[2]; +}; + +/* Flags for the 'capability' field */ +#define V4L2_AUDCAP_STEREO 0x00001 +#define V4L2_AUDCAP_AVL 0x00002 + +/* Flags for the 'mode' field */ +#define V4L2_AUDMODE_AVL 0x00001 + +struct v4l2_audioout { + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 mode; + __u32 reserved[2]; +}; + +/* + * M P E G S E R V I C E S + * + * NOTE: EXPERIMENTAL API + */ +#if 1 +#define V4L2_ENC_IDX_FRAME_I (0) +#define V4L2_ENC_IDX_FRAME_P (1) +#define V4L2_ENC_IDX_FRAME_B (2) +#define V4L2_ENC_IDX_FRAME_MASK (0xf) + +struct v4l2_enc_idx_entry { + __u64 offset; + __u64 pts; + __u32 length; + __u32 flags; + __u32 reserved[2]; +}; + +#define V4L2_ENC_IDX_ENTRIES (64) +struct v4l2_enc_idx { + __u32 entries; + __u32 entries_cap; + __u32 reserved[4]; + struct v4l2_enc_idx_entry entry[V4L2_ENC_IDX_ENTRIES]; +}; + + +#define V4L2_ENC_CMD_START (0) +#define V4L2_ENC_CMD_STOP (1) +#define V4L2_ENC_CMD_PAUSE (2) +#define V4L2_ENC_CMD_RESUME (3) + +/* Flags for V4L2_ENC_CMD_STOP */ +#define V4L2_ENC_CMD_STOP_AT_GOP_END (1 << 0) + +struct v4l2_encoder_cmd { + __u32 cmd; + __u32 flags; + union { + struct { + __u32 data[8]; + } raw; + }; +}; + +/* Decoder commands */ +#define V4L2_DEC_CMD_START (0) +#define V4L2_DEC_CMD_STOP (1) +#define V4L2_DEC_CMD_PAUSE (2) +#define V4L2_DEC_CMD_RESUME (3) + +/* Flags for V4L2_DEC_CMD_START */ +#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0) + +/* Flags for V4L2_DEC_CMD_PAUSE */ +#define V4L2_DEC_CMD_PAUSE_TO_BLACK (1 << 0) + +/* Flags for V4L2_DEC_CMD_STOP */ +#define V4L2_DEC_CMD_STOP_TO_BLACK (1 << 0) +#define V4L2_DEC_CMD_STOP_IMMEDIATELY (1 << 1) + +/* Play format requirements (returned by the driver): */ + +/* The decoder has no special format requirements */ +#define V4L2_DEC_START_FMT_NONE (0) +/* The decoder requires full GOPs */ +#define V4L2_DEC_START_FMT_GOP (1) + +/* The structure must be zeroed before use by the application + This ensures it can be extended safely in the future. */ +struct v4l2_decoder_cmd { + __u32 cmd; + __u32 flags; + union { + struct { + __u64 pts; + } stop; + + struct { + /* 0 or 1000 specifies normal speed, + 1 specifies forward single stepping, + -1 specifies backward single stepping, + >1: playback at speed/1000 of the normal speed, + <-1: reverse playback at (-speed/1000) of the normal speed. */ + __s32 speed; + __u32 format; + } start; + + struct { + __u32 data[16]; + } raw; + }; +}; +#endif + + +/* + * D A T A S E R V I C E S ( V B I ) + * + * Data services API by Michael Schimek + */ + +/* Raw VBI */ +struct v4l2_vbi_format { + __u32 sampling_rate; /* in 1 Hz */ + __u32 offset; + __u32 samples_per_line; + __u32 sample_format; /* V4L2_PIX_FMT_* */ + __s32 start[2]; + __u32 count[2]; + __u32 flags; /* V4L2_VBI_* */ + __u32 reserved[2]; /* must be zero */ +}; + +/* VBI flags */ +#define V4L2_VBI_UNSYNC (1 << 0) +#define V4L2_VBI_INTERLACED (1 << 1) + +/* Sliced VBI + * + * This implements is a proposal V4L2 API to allow SLICED VBI + * required for some hardware encoders. It should change without + * notice in the definitive implementation. + */ + +struct v4l2_sliced_vbi_format { + __u16 service_set; + /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field + service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field + (equals frame lines 313-336 for 625 line video + standards, 263-286 for 525 line standards) */ + __u16 service_lines[2][24]; + __u32 io_size; + __u32 reserved[2]; /* must be zero */ +}; + +/* Teletext World System Teletext + (WST), defined on ITU-R BT.653-2 */ +#define V4L2_SLICED_TELETEXT_B (0x0001) +/* Video Program System, defined on ETS 300 231*/ +#define V4L2_SLICED_VPS (0x0400) +/* Closed Caption, defined on EIA-608 */ +#define V4L2_SLICED_CAPTION_525 (0x1000) +/* Wide Screen System, defined on ITU-R BT1119.1 */ +#define V4L2_SLICED_WSS_625 (0x4000) + +#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) +#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) + +struct v4l2_sliced_vbi_cap { + __u16 service_set; + /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field + service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field + (equals frame lines 313-336 for 625 line video + standards, 263-286 for 525 line standards) */ + __u16 service_lines[2][24]; + __u32 type; /* enum v4l2_buf_type */ + __u32 reserved[3]; /* must be 0 */ +}; + +struct v4l2_sliced_vbi_data { + __u32 id; + __u32 field; /* 0: first field, 1: second field */ + __u32 line; /* 1-23 */ + __u32 reserved; /* must be 0 */ + __u8 data[48]; +}; + +/* + * Sliced VBI data inserted into MPEG Streams + */ + +/* + * V4L2_MPEG_STREAM_VBI_FMT_IVTV: + * + * Structure of payload contained in an MPEG 2 Private Stream 1 PES Packet in an + * MPEG-2 Program Pack that contains V4L2_MPEG_STREAM_VBI_FMT_IVTV Sliced VBI + * data + * + * Note, the MPEG-2 Program Pack and Private Stream 1 PES packet header + * definitions are not included here. See the MPEG-2 specifications for details + * on these headers. + */ + +/* Line type IDs */ +#define V4L2_MPEG_VBI_IVTV_TELETEXT_B (1) +#define V4L2_MPEG_VBI_IVTV_CAPTION_525 (4) +#define V4L2_MPEG_VBI_IVTV_WSS_625 (5) +#define V4L2_MPEG_VBI_IVTV_VPS (7) + +struct v4l2_mpeg_vbi_itv0_line { + __u8 id; /* One of V4L2_MPEG_VBI_IVTV_* above */ + __u8 data[42]; /* Sliced VBI data for the line */ +} __attribute__ ((packed)); + +struct v4l2_mpeg_vbi_itv0 { + __le32 linemask[2]; /* Bitmasks of VBI service lines present */ + struct v4l2_mpeg_vbi_itv0_line line[35]; +} __attribute__ ((packed)); + +struct v4l2_mpeg_vbi_ITV0 { + struct v4l2_mpeg_vbi_itv0_line line[36]; +} __attribute__ ((packed)); + +#define V4L2_MPEG_VBI_IVTV_MAGIC0 "itv0" +#define V4L2_MPEG_VBI_IVTV_MAGIC1 "ITV0" + +struct v4l2_mpeg_vbi_fmt_ivtv { + __u8 magic[4]; + union { + struct v4l2_mpeg_vbi_itv0 itv0; + struct v4l2_mpeg_vbi_ITV0 ITV0; + }; +} __attribute__ ((packed)); + +/* + * A G G R E G A T E S T R U C T U R E S + */ + +/** + * struct v4l2_plane_pix_format - additional, per-plane format definition + * @sizeimage: maximum size in bytes required for data, for which + * this plane will be used + * @bytesperline: distance in bytes between the leftmost pixels in two + * adjacent lines + */ +struct v4l2_plane_pix_format { + __u32 sizeimage; + __u16 bytesperline; + __u16 reserved[7]; +} __attribute__ ((packed)); + +/** + * struct v4l2_pix_format_mplane - multiplanar format definition + * @width: image width in pixels + * @height: image height in pixels + * @pixelformat: little endian four character code (fourcc) + * @field: enum v4l2_field; field order (for interlaced video) + * @colorspace: enum v4l2_colorspace; supplemental to pixelformat + * @plane_fmt: per-plane information + * @num_planes: number of planes for this format + */ +struct v4l2_pix_format_mplane { + __u32 width; + __u32 height; + __u32 pixelformat; + __u32 field; + __u32 colorspace; + + struct v4l2_plane_pix_format plane_fmt[VIDEO_MAX_PLANES]; + __u8 num_planes; + __u8 reserved[11]; +} __attribute__ ((packed)); + +/** + * struct v4l2_format - stream data format + * @type: enum v4l2_buf_type; type of the data stream + * @pix: definition of an image format + * @pix_mp: definition of a multiplanar image format + * @win: definition of an overlaid image + * @vbi: raw VBI capture or output parameters + * @sliced: sliced VBI capture or output parameters + * @raw_data: placeholder for future extensions and custom formats + */ +struct v4l2_format { + __u32 type; + union { + struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */ + struct v4l2_pix_format_mplane pix_mp; /* V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE */ + struct v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ + struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ + struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ + __u8 raw_data[200]; /* user-defined */ + } fmt; +}; + +/* Stream type-dependent parameters + */ +struct v4l2_streamparm { + __u32 type; /* enum v4l2_buf_type */ + union { + struct v4l2_captureparm capture; + struct v4l2_outputparm output; + __u8 raw_data[200]; /* user-defined */ + } parm; +}; + +/* + * E V E N T S + */ + +#define V4L2_EVENT_ALL 0 +#define V4L2_EVENT_VSYNC 1 +#define V4L2_EVENT_EOS 2 +#define V4L2_EVENT_CTRL 3 +#define V4L2_EVENT_FRAME_SYNC 4 +#define V4L2_EVENT_PRIVATE_START 0x08000000 + +/* Payload for V4L2_EVENT_VSYNC */ +struct v4l2_event_vsync { + /* Can be V4L2_FIELD_ANY, _NONE, _TOP or _BOTTOM */ + __u8 field; +} __attribute__ ((packed)); + +/* Payload for V4L2_EVENT_CTRL */ +#define V4L2_EVENT_CTRL_CH_VALUE (1 << 0) +#define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1) +#define V4L2_EVENT_CTRL_CH_RANGE (1 << 2) + +struct v4l2_event_ctrl { + __u32 changes; + __u32 type; + union { + __s32 value; + __s64 value64; + }; + __u32 flags; + __s32 minimum; + __s32 maximum; + __s32 step; + __s32 default_value; +}; + +struct v4l2_event_frame_sync { + __u32 frame_sequence; +}; + +struct v4l2_event { + __u32 type; + union { + struct v4l2_event_vsync vsync; + struct v4l2_event_ctrl ctrl; + struct v4l2_event_frame_sync frame_sync; + __u8 data[64]; + } u; + __u32 pending; + __u32 sequence; + struct timespec timestamp; + __u32 id; + __u32 reserved[8]; +}; + +#define V4L2_EVENT_SUB_FL_SEND_INITIAL (1 << 0) +#define V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK (1 << 1) + +struct v4l2_event_subscription { + __u32 type; + __u32 id; + __u32 flags; + __u32 reserved[5]; +}; + +/* + * A D V A N C E D D E B U G G I N G + * + * NOTE: EXPERIMENTAL API, NEVER RELY ON THIS IN APPLICATIONS! + * FOR DEBUGGING, TESTING AND INTERNAL USE ONLY! + */ + +/* VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER */ + +#define V4L2_CHIP_MATCH_BRIDGE 0 /* Match against chip ID on the bridge (0 for the bridge) */ +#define V4L2_CHIP_MATCH_SUBDEV 4 /* Match against subdev index */ + +/* The following four defines are no longer in use */ +#define V4L2_CHIP_MATCH_HOST V4L2_CHIP_MATCH_BRIDGE +#define V4L2_CHIP_MATCH_I2C_DRIVER 1 /* Match against I2C driver name */ +#define V4L2_CHIP_MATCH_I2C_ADDR 2 /* Match against I2C 7-bit address */ +#define V4L2_CHIP_MATCH_AC97 3 /* Match against ancillary AC97 chip */ + +struct v4l2_dbg_match { + __u32 type; /* Match type */ + union { /* Match this chip, meaning determined by type */ + __u32 addr; + char name[32]; + }; +} __attribute__ ((packed)); + +struct v4l2_dbg_register { + struct v4l2_dbg_match match; + __u32 size; /* register size in bytes */ + __u64 reg; + __u64 val; +} __attribute__ ((packed)); + +#define V4L2_CHIP_FL_READABLE (1 << 0) +#define V4L2_CHIP_FL_WRITABLE (1 << 1) + +/* VIDIOC_DBG_G_CHIP_INFO */ +struct v4l2_dbg_chip_info { + struct v4l2_dbg_match match; + char name[32]; + __u32 flags; + __u32 reserved[32]; +} __attribute__ ((packed)); + +/** + * struct v4l2_create_buffers - VIDIOC_CREATE_BUFS argument + * @index: on return, index of the first created buffer + * @count: entry: number of requested buffers, + * return: number of created buffers + * @memory: enum v4l2_memory; buffer memory type + * @format: frame format, for which buffers are requested + * @reserved: future extensions + */ +struct v4l2_create_buffers { + __u32 index; + __u32 count; + __u32 memory; + struct v4l2_format format; + __u32 reserved[8]; +}; + +/* + * I O C T L C O D E S F O R V I D E O D E V I C E S + * + */ +#define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability) +#define VIDIOC_RESERVED _IO('V', 1) +#define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc) +#define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format) +#define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format) +#define VIDIOC_REQBUFS _IOWR('V', 8, struct v4l2_requestbuffers) +#define VIDIOC_QUERYBUF _IOWR('V', 9, struct v4l2_buffer) +#define VIDIOC_G_FBUF _IOR('V', 10, struct v4l2_framebuffer) +#define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer) +#define VIDIOC_OVERLAY _IOW('V', 14, int) +#define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer) +#define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer) +#define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer) +#define VIDIOC_STREAMON _IOW('V', 18, int) +#define VIDIOC_STREAMOFF _IOW('V', 19, int) +#define VIDIOC_G_PARM _IOWR('V', 21, struct v4l2_streamparm) +#define VIDIOC_S_PARM _IOWR('V', 22, struct v4l2_streamparm) +#define VIDIOC_G_STD _IOR('V', 23, v4l2_std_id) +#define VIDIOC_S_STD _IOW('V', 24, v4l2_std_id) +#define VIDIOC_ENUMSTD _IOWR('V', 25, struct v4l2_standard) +#define VIDIOC_ENUMINPUT _IOWR('V', 26, struct v4l2_input) +#define VIDIOC_G_CTRL _IOWR('V', 27, struct v4l2_control) +#define VIDIOC_S_CTRL _IOWR('V', 28, struct v4l2_control) +#define VIDIOC_G_TUNER _IOWR('V', 29, struct v4l2_tuner) +#define VIDIOC_S_TUNER _IOW('V', 30, struct v4l2_tuner) +#define VIDIOC_G_AUDIO _IOR('V', 33, struct v4l2_audio) +#define VIDIOC_S_AUDIO _IOW('V', 34, struct v4l2_audio) +#define VIDIOC_QUERYCTRL _IOWR('V', 36, struct v4l2_queryctrl) +#define VIDIOC_QUERYMENU _IOWR('V', 37, struct v4l2_querymenu) +#define VIDIOC_G_INPUT _IOR('V', 38, int) +#define VIDIOC_S_INPUT _IOWR('V', 39, int) +#define VIDIOC_G_OUTPUT _IOR('V', 46, int) +#define VIDIOC_S_OUTPUT _IOWR('V', 47, int) +#define VIDIOC_ENUMOUTPUT _IOWR('V', 48, struct v4l2_output) +#define VIDIOC_G_AUDOUT _IOR('V', 49, struct v4l2_audioout) +#define VIDIOC_S_AUDOUT _IOW('V', 50, struct v4l2_audioout) +#define VIDIOC_G_MODULATOR _IOWR('V', 54, struct v4l2_modulator) +#define VIDIOC_S_MODULATOR _IOW('V', 55, struct v4l2_modulator) +#define VIDIOC_G_FREQUENCY _IOWR('V', 56, struct v4l2_frequency) +#define VIDIOC_S_FREQUENCY _IOW('V', 57, struct v4l2_frequency) +#define VIDIOC_CROPCAP _IOWR('V', 58, struct v4l2_cropcap) +#define VIDIOC_G_CROP _IOWR('V', 59, struct v4l2_crop) +#define VIDIOC_S_CROP _IOW('V', 60, struct v4l2_crop) +#define VIDIOC_G_JPEGCOMP _IOR('V', 61, struct v4l2_jpegcompression) +#define VIDIOC_S_JPEGCOMP _IOW('V', 62, struct v4l2_jpegcompression) +#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id) +#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format) +#define VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio) +#define VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout) +#define VIDIOC_G_PRIORITY _IOR('V', 67, __u32) /* enum v4l2_priority */ +#define VIDIOC_S_PRIORITY _IOW('V', 68, __u32) /* enum v4l2_priority */ +#define VIDIOC_G_SLICED_VBI_CAP _IOWR('V', 69, struct v4l2_sliced_vbi_cap) +#define VIDIOC_LOG_STATUS _IO('V', 70) +#define VIDIOC_G_EXT_CTRLS _IOWR('V', 71, struct v4l2_ext_controls) +#define VIDIOC_S_EXT_CTRLS _IOWR('V', 72, struct v4l2_ext_controls) +#define VIDIOC_TRY_EXT_CTRLS _IOWR('V', 73, struct v4l2_ext_controls) +#define VIDIOC_ENUM_FRAMESIZES _IOWR('V', 74, struct v4l2_frmsizeenum) +#define VIDIOC_ENUM_FRAMEINTERVALS _IOWR('V', 75, struct v4l2_frmivalenum) +#define VIDIOC_G_ENC_INDEX _IOR('V', 76, struct v4l2_enc_idx) +#define VIDIOC_ENCODER_CMD _IOWR('V', 77, struct v4l2_encoder_cmd) +#define VIDIOC_TRY_ENCODER_CMD _IOWR('V', 78, struct v4l2_encoder_cmd) + +/* Experimental, meant for debugging, testing and internal use. + Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined. + You must be root to use these ioctls. Never use these in applications! */ +#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register) +#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register) + +#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek) + +#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) +#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) +#define VIDIOC_DQEVENT _IOR('V', 89, struct v4l2_event) +#define VIDIOC_SUBSCRIBE_EVENT _IOW('V', 90, struct v4l2_event_subscription) +#define VIDIOC_UNSUBSCRIBE_EVENT _IOW('V', 91, struct v4l2_event_subscription) + +/* Experimental, the below two ioctls may change over the next couple of kernel + versions */ +#define VIDIOC_CREATE_BUFS _IOWR('V', 92, struct v4l2_create_buffers) +#define VIDIOC_PREPARE_BUF _IOWR('V', 93, struct v4l2_buffer) + +/* Experimental selection API */ +#define VIDIOC_G_SELECTION _IOWR('V', 94, struct v4l2_selection) +#define VIDIOC_S_SELECTION _IOWR('V', 95, struct v4l2_selection) + +/* Experimental, these two ioctls may change over the next couple of kernel + versions. */ +#define VIDIOC_DECODER_CMD _IOWR('V', 96, struct v4l2_decoder_cmd) +#define VIDIOC_TRY_DECODER_CMD _IOWR('V', 97, struct v4l2_decoder_cmd) + +/* Experimental, these three ioctls may change over the next couple of kernel + versions. */ +#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) +#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings) +#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap) + +/* Experimental, this ioctl may change over the next couple of kernel + versions. */ +#define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band) + +/* Experimental, meant for debugging, testing and internal use. + Never use these in applications! */ +#define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info) + +/* Reminder: when adding new ioctls please add support for them to + drivers/media/video/v4l2-compat-ioctl32.c as well! */ + +#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */ + +#endif /* __LINUX_VIDEODEV2_H */ diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c index a61d6ab70..a5361d748 100644 --- a/sys/v4l2/gstv4l2.c +++ b/sys/v4l2/gstv4l2.c @@ -33,6 +33,8 @@ #include "gstv4l2src.h" #include "gstv4l2sink.h" #include "gstv4l2radio.h" +#include "gstv4l2videodec.h" +#include "gstv4l2devicemonitor.h" /* #include "gstv4l2jpegsrc.h" */ /* #include "gstv4l2mjpegsrc.h" */ /* #include "gstv4l2mjpegsink.h" */ @@ -51,6 +53,9 @@ plugin_init (GstPlugin * plugin) GST_TYPE_V4L2SINK) || !gst_element_register (plugin, "v4l2radio", GST_RANK_NONE, GST_TYPE_V4L2RADIO) || + !gst_v4l2_video_dec_register (plugin) || + !gst_device_monitor_register (plugin, "v4l2monitor", + GST_RANK_PRIMARY, GST_TYPE_V4L2_DEVICE_MONITOR) || /* !gst_element_register (plugin, "v4l2jpegsrc", */ /* GST_RANK_NONE, GST_TYPE_V4L2JPEGSRC) || */ /* !gst_element_register (plugin, "v4l2mjpegsrc", */ diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c index 463dd44fe..5e669c905 100644 --- a/sys/v4l2/gstv4l2bufferpool.c +++ b/sys/v4l2/gstv4l2bufferpool.c @@ -26,12 +26,10 @@ # include <config.h> #endif -#if HAVE_DECL_V4L2_MEMORY_DMABUF #ifndef _GNU_SOURCE # define _GNU_SOURCE /* O_CLOEXEC */ #endif #include <fcntl.h> -#endif #include <sys/mman.h> #include <string.h> @@ -48,15 +46,6 @@ #include "gst/gst-i18n-plugin.h" #include <gst/glib-compat-private.h> -/* videodev2.h is not versioned and we can't easily check for the presence - * of enum values at compile time, but the V4L2_CAP_VIDEO_OUTPUT_OVERLAY define - * was added in the same commit as V4L2_FIELD_INTERLACED_{TB,BT} (b2787845) */ -#ifndef V4L2_CAP_VIDEO_OUTPUT_OVERLAY -#define V4L2_FIELD_INTERLACED_TB 8 -#define V4L2_FIELD_INTERLACED_BT 9 -#endif - - GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); #define GST_CAT_DEFAULT v4l2_debug @@ -117,16 +106,21 @@ gst_v4l2_buffer_pool_free_buffer (GstBufferPool * bpool, GstBuffer * buffer) { GstV4l2Meta *meta; gint index; + gint i = 0; meta = GST_V4L2_META_GET (buffer); g_assert (meta != NULL); index = meta->vbuffer.index; - GST_LOG_OBJECT (pool, - "unmap buffer %p idx %d (data %p, len %u)", buffer, - index, meta->mem, meta->vbuffer.length); - v4l2_munmap (meta->mem, meta->vbuffer.length); + for (i = 0; i < meta->n_planes; i++) { + GST_LOG_OBJECT (pool, + "unmap multiplanar buffer %p idx %d (data %p, len %u, plane %u)", + buffer, index, meta->mem[i], meta->vplanes[i].length, i); + + v4l2_munmap (meta->mem[i], meta->vplanes[i].length); + } + pool->buffers[index] = NULL; break; } @@ -148,6 +142,7 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, GstV4l2Object *obj; GstVideoInfo *info; guint index; + gint i; obj = pool->obj; info = &obj->info; @@ -162,7 +157,6 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, case GST_V4L2_IO_MMAP: case GST_V4L2_IO_DMABUF: { -#ifdef VIDIOC_CREATE_BUFS if (pool->num_allocated == pool->num_buffers) { struct v4l2_create_buffers create_bufs; @@ -183,7 +177,7 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, pool->buffers = g_renew (GstBuffer *, pool->buffers, pool->num_buffers); pool->buffers[pool->num_buffers - 1] = NULL; } -#endif + newbuf = gst_buffer_new (); meta = GST_V4L2_META_ADD (newbuf); @@ -191,36 +185,75 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, GST_LOG_OBJECT (pool, "creating buffer %u, %p", index, newbuf); + /* prepare the buffer */ memset (&meta->vbuffer, 0x0, sizeof (struct v4l2_buffer)); meta->vbuffer.index = index; meta->vbuffer.type = obj->type; meta->vbuffer.memory = V4L2_MEMORY_MMAP; + /* main information */ + meta->n_planes = obj->n_v4l2_planes; + + /* prepare the planes of the buffer */ + if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) { + /* length is the number of elements in the + * vplanes array */ + meta->vbuffer.length = obj->n_v4l2_planes; + meta->vbuffer.m.planes = meta->vplanes; + } + + /* the buffer is prepared, now fill in it with meaningful values */ if (v4l2_ioctl (pool->video_fd, VIDIOC_QUERYBUF, &meta->vbuffer) < 0) goto querybuf_failed; + /* in non MPLANE mode we emulate one plane in order to + * factorize the code */ + if (!V4L2_TYPE_IS_MULTIPLANAR (obj->type)) { + /* here meta->n_planes == 1 */ + meta->vplanes[0].length = meta->vbuffer.length; + meta->vplanes[0].bytesused = meta->vbuffer.bytesused; + meta->vplanes[0].m.mem_offset = meta->vbuffer.m.offset; + meta->vplanes[0].data_offset = 0; + } + GST_LOG_OBJECT (pool, " index: %u", meta->vbuffer.index); GST_LOG_OBJECT (pool, " type: %d", meta->vbuffer.type); - GST_LOG_OBJECT (pool, " bytesused: %u", meta->vbuffer.bytesused); GST_LOG_OBJECT (pool, " flags: %08x", meta->vbuffer.flags); GST_LOG_OBJECT (pool, " field: %d", meta->vbuffer.field); GST_LOG_OBJECT (pool, " memory: %d", meta->vbuffer.memory); - if (meta->vbuffer.memory == V4L2_MEMORY_MMAP) - GST_LOG_OBJECT (pool, " MMAP offset: %u", meta->vbuffer.m.offset); + GST_LOG_OBJECT (pool, " planes: %d", meta->n_planes); + +#ifndef GST_DISABLE_GST_DEBUG + if (meta->vbuffer.memory == V4L2_MEMORY_MMAP) { + for (i = 0; i < meta->n_planes; i++) { + GST_LOG_OBJECT (pool, " bytesused: %u, plane: %u", + meta->vplanes[i].bytesused, i); + GST_LOG_OBJECT (pool, " MMAP offset: %u, plane: %u", + meta->vplanes[i].m.mem_offset, i); + } + } +#endif if (obj->mode == GST_V4L2_IO_MMAP) { - meta->mem = v4l2_mmap (0, meta->vbuffer.length, - PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, - meta->vbuffer.m.offset); - if (meta->mem == MAP_FAILED) - goto mmap_failed; - - gst_buffer_append_memory (newbuf, - gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, - meta->mem, meta->vbuffer.length, 0, meta->vbuffer.length, NULL, - NULL)); + /* append one gstmemory for each plane */ + for (i = 0; i < meta->n_planes; i++) { + meta->mem[i] = v4l2_mmap (0, meta->vplanes[i].length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, + meta->vplanes[i].m.mem_offset); + if (meta->mem[i] == MAP_FAILED) + goto mmap_failed; + + GST_LOG_OBJECT (pool, " buffer length %d, data offset %d, plane %d", + meta->vplanes[i].length, meta->vplanes[i].data_offset, i); + + gst_buffer_append_memory (newbuf, + gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, + meta->mem[i], meta->vplanes[i].length, + meta->vplanes[i].data_offset, + meta->vplanes[i].length, NULL, NULL)); + } } -#if HAVE_DECL_V4L2_MEMORY_DMABUF + if (obj->mode == GST_V4L2_IO_DMABUF) { struct v4l2_exportbuffer expbuf; @@ -228,53 +261,82 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, expbuf.type = meta->vbuffer.type; expbuf.index = meta->vbuffer.index; expbuf.flags = O_CLOEXEC; - if (v4l2_ioctl (pool->video_fd, VIDIOC_EXPBUF, &expbuf) < 0) - goto expbuf_failed; + + for (i = 0; i < meta->n_planes; i++) { + expbuf.plane = i; + + if (v4l2_ioctl (pool->video_fd, VIDIOC_EXPBUF, &expbuf) < 0) + goto expbuf_failed; + + gst_buffer_append_memory (newbuf, + gst_dmabuf_allocator_alloc (pool->allocator, expbuf.fd, + meta->vplanes[i].length)); + } meta->vbuffer.memory = V4L2_MEMORY_DMABUF; - gst_buffer_append_memory (newbuf, - gst_dmabuf_allocator_alloc (pool->allocator, expbuf.fd, - meta->vbuffer.length)); + + /* in non-MPLANE mode our meta is not automatically updated + * because the plane is emulated (not referenced by + * meta->vbuffer) */ + if (!V4L2_TYPE_IS_MULTIPLANAR (obj->type)) + meta->vplanes[0].m.fd = meta->vbuffer.m.fd; } -#endif + /* add metadata to raw video buffers */ if (pool->add_videometa && info->finfo) { const GstVideoFormatInfo *finfo = info->finfo; gsize offset[GST_VIDEO_MAX_PLANES]; - gint width, height, n_planes, offs, i, stride[GST_VIDEO_MAX_PLANES]; + gint width, height, n_gst_planes, offs, i, stride[GST_VIDEO_MAX_PLANES]; width = GST_VIDEO_INFO_WIDTH (info); height = GST_VIDEO_INFO_HEIGHT (info); - n_planes = GST_VIDEO_INFO_N_PLANES (info); - GST_DEBUG_OBJECT (pool, "adding video meta, bytesperline %d", - obj->bytesperline); + /* n_gst_planes is the number of planes + * (RGB: 1, YUY2: 1, NV12: 2, I420: 3) + * It's greater or equal than the number of v4l2 planes. */ + n_gst_planes = GST_VIDEO_INFO_N_PLANES (info); + /* the basic are common between MPLANE mode and non MPLANE mode + * except a special case inside the loop at the end + */ offs = 0; - for (i = 0; i < n_planes; i++) { + for (i = 0; i < n_gst_planes; i++) { + GST_DEBUG_OBJECT (pool, "adding video meta, bytesperline %d", + obj->bytesperline[i]); + offset[i] = offs; - 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; + if (GST_VIDEO_FORMAT_INFO_IS_TILED (finfo)) { + guint x_tiles, y_tiles, ws, hs, tile_height; + + ws = GST_VIDEO_FORMAT_INFO_TILE_WS (finfo); + hs = GST_VIDEO_FORMAT_INFO_TILE_HS (finfo); + tile_height = 1 << hs; + + x_tiles = obj->bytesperline[i] >> ws; + y_tiles = GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, i, + GST_ROUND_UP_N (height, tile_height) >> hs); + stride[i] = GST_VIDEO_TILE_MAKE_STRIDE (x_tiles, y_tiles); + } else { + stride[i] = obj->bytesperline[i]; } - offs += - stride[i] * GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, i, height); + /* when using multiplanar mode and if there is more then one v4l + * plane for each gst plane + */ + if (V4L2_TYPE_IS_MULTIPLANAR (obj->type) && meta->n_planes > 1) + /* non_contiguous case here so we have to make sure that gst goes to the + * next plane (using default gstvideometa.c::default_map). + * And the next plane is after length bytes of the previous one from + * the gst buffer point of view. */ + offs += meta->vplanes[i].length; + else + offs += obj->bytesperline[i] * + GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (finfo, i, height); } + gst_buffer_add_video_meta_full (newbuf, GST_VIDEO_FRAME_FLAG_NONE, - GST_VIDEO_INFO_FORMAT (info), width, height, n_planes, + GST_VIDEO_INFO_FORMAT (info), width, height, n_gst_planes, offset, stride); } break; @@ -292,7 +354,6 @@ gst_v4l2_buffer_pool_alloc_buffer (GstBufferPool * bpool, GstBuffer ** buffer, return GST_FLOW_OK; /* ERRORS */ -#ifdef VIDIOC_CREATE_BUFS g_fmt_failed: { gint errnosave = errno; @@ -309,7 +370,6 @@ create_bufs_failed: errno = errnosave; return GST_FLOW_ERROR; } -#endif querybuf_failed: { gint errnosave = errno; @@ -328,7 +388,6 @@ mmap_failed: errno = errnosave; return GST_FLOW_ERROR; } -#if HAVE_DECL_V4L2_MEMORY_DMABUF expbuf_failed: { gint errnosave = errno; @@ -338,7 +397,6 @@ expbuf_failed: errno = errnosave; return GST_FLOW_ERROR; } -#endif } static gboolean @@ -347,10 +405,9 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (bpool); GstV4l2Object *obj = pool->obj; GstCaps *caps; - guint size, min_buffers, max_buffers, num_buffers, copy_threshold; + guint size, min_buffers, max_buffers; GstAllocator *allocator; GstAllocationParams params; - struct v4l2_requestbuffers breq; GST_DEBUG_OBJECT (pool, "set config"); @@ -360,17 +417,28 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) if (!pool->add_videometa && GST_VIDEO_INFO_FORMAT (&obj->info) != GST_VIDEO_FORMAT_ENCODED) { - gint stride; - - /* we don't have video metadata, and we are not dealing with raw video, - * see if the strides are compatible */ - stride = GST_VIDEO_INFO_PLANE_STRIDE (&obj->info, 0); + /* in non MPLANE mode, there is only one bytesperline field */ + gint nb_checked_planes = + V4L2_TYPE_IS_MULTIPLANAR (obj->type) ? GST_VIDEO_INFO_N_PLANES (&obj-> + info) : 1; + gint stride = 0; + gint i = 0; + for (i = 0; i < nb_checked_planes; i++) { + /* we don't have video metadata, and we are dealing with raw video, + * see if the strides are compatible */ + stride = GST_VIDEO_INFO_PLANE_STRIDE (&obj->info, i); + + if (GST_VIDEO_FORMAT_INFO_IS_TILED (obj->info.finfo)) { + stride = GST_VIDEO_TILE_X_TILES (stride) << + GST_VIDEO_FORMAT_INFO_TILE_WS ((obj->info.finfo)); + } - GST_DEBUG_OBJECT (pool, "no videometadata, checking strides %d and %u", - stride, obj->bytesperline); + GST_DEBUG_OBJECT (pool, "no videometadata, checking strides %d and %u", + stride, obj->bytesperline[i]); - if (stride != obj->bytesperline) - goto missing_video_api; + if (stride != obj->bytesperline[i]) + goto missing_video_api; + } } /* parse the config and keep around */ @@ -378,11 +446,92 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) &max_buffers)) goto wrong_config; + /* FIXME Check alignement, and S_FMT with new size if different */ + if (!gst_buffer_pool_config_get_allocator (config, &allocator, ¶ms)) goto wrong_config; GST_DEBUG_OBJECT (pool, "config %" GST_PTR_FORMAT, config); + if (obj->mode == GST_V4L2_IO_DMABUF) + allocator = gst_dmabuf_allocator_new (); + else if (allocator) + gst_object_ref (allocator); + + if (pool->allocator) + gst_object_unref (pool->allocator); + pool->allocator = allocator; + + pool->params = params; + + gst_buffer_pool_config_set_params (config, caps, size, min_buffers, + max_buffers); + + return GST_BUFFER_POOL_CLASS (parent_class)->set_config (bpool, config); + + /* ERRORS */ +missing_video_api: + { + GST_ERROR_OBJECT (pool, "missing GstMetaVideo API in config, " + "default stride: %d, wanted stride %u", + GST_VIDEO_INFO_PLANE_STRIDE (&obj->info, 0), obj->bytesperline[0]); + return FALSE; + } +wrong_config: + { + GST_ERROR_OBJECT (pool, "invalid config %" GST_PTR_FORMAT, config); + return FALSE; + } +} + +static gboolean +start_streaming (GstV4l2BufferPool * pool) +{ + GstV4l2Object *obj = pool->obj; + + switch (obj->mode) { + case GST_V4L2_IO_RW: + break; + case GST_V4L2_IO_MMAP: + case GST_V4L2_IO_USERPTR: + case GST_V4L2_IO_DMABUF: + GST_DEBUG_OBJECT (pool, "STREAMON"); + if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMON, &obj->type) < 0) + goto start_failed; + break; + default: + g_assert_not_reached (); + break; + } + + pool->streaming = TRUE; + + return TRUE; + + /* ERRORS */ +start_failed: + { + GST_ERROR_OBJECT (pool, "error with STREAMON %d (%s)", errno, + g_strerror (errno)); + return FALSE; + } +} + +static gboolean +gst_v4l2_buffer_pool_start (GstBufferPool * bpool) +{ + GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (bpool); + GstV4l2Object *obj = pool->obj; + GstStructure *config; + GstCaps *caps; + guint size, num_buffers, min_buffers, max_buffers, copy_threshold; + struct v4l2_requestbuffers breq; + + config = gst_buffer_pool_get_config (bpool); + if (!gst_buffer_pool_config_get_params (config, &caps, &size, &min_buffers, + &max_buffers)) + goto wrong_config; + switch (obj->mode) { case GST_V4L2_IO_RW: /* we preallocate 1 buffer, this value also instructs the latency @@ -396,7 +545,7 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) /* request a reasonable number of buffers when no max specified. We will * copy when we run out of buffers */ if (max_buffers == 0) - num_buffers = 4; + num_buffers = MAX (4, min_buffers); else num_buffers = max_buffers; @@ -437,6 +586,9 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) * copy */ copy_threshold = 0; } + + /* FIXME try to call CREATEBUFS with count 0 to check if max shall + * remain 0 */ break; } case GST_V4L2_IO_USERPTR: @@ -451,28 +603,29 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config) pool->num_buffers = num_buffers; pool->copy_threshold = copy_threshold; - if (obj->mode == GST_V4L2_IO_DMABUF) - allocator = gst_dmabuf_allocator_new (); - - if (pool->allocator) - gst_object_unref (pool->allocator); - if ((pool->allocator = allocator)) - gst_object_ref (allocator); - pool->params = params; - gst_buffer_pool_config_set_params (config, caps, size, min_buffers, max_buffers); + GST_BUFFER_POOL_CLASS (parent_class)->set_config (bpool, config); - return GST_BUFFER_POOL_CLASS (parent_class)->set_config (bpool, config); + pool->obj = obj; + pool->buffers = g_new0 (GstBuffer *, pool->num_buffers); + pool->num_allocated = 0; + + /* now, allocate the buffers: */ + if (!GST_BUFFER_POOL_CLASS (parent_class)->start (bpool)) + goto start_failed; + + /* we can start capturing now, we wait for the playback case until we queued + * the first buffer */ + if (!V4L2_TYPE_IS_OUTPUT (obj->type)) + if (!start_streaming (pool)) + goto start_failed; + + gst_poll_set_flushing (obj->poll, FALSE); + + return TRUE; /* ERRORS */ -missing_video_api: - { - GST_ERROR_OBJECT (pool, "missing GstMetaVideo API in config, " - "default stride: %d, wanted stride %u", - GST_VIDEO_INFO_PLANE_STRIDE (&obj->info, 0), obj->bytesperline); - return FALSE; - } wrong_config: { GST_ERROR_OBJECT (pool, "invalid config %" GST_PTR_FORMAT, config); @@ -491,90 +644,74 @@ no_buffers: breq.count, obj->videodev, GST_V4L2_MIN_BUFFERS); return FALSE; } +start_failed: + { + GST_ERROR_OBJECT (pool, "failed to start streaming"); + return FALSE; + } +} + +static void +gst_v4l2_buffer_pool_free_buffers (GstV4l2BufferPool * pool) +{ + if (pool->num_buffers > 0) { + struct v4l2_requestbuffers breq; + memset (&breq, 0, sizeof (struct v4l2_requestbuffers)); + breq.type = pool->obj->type; + breq.count = 0; + breq.memory = V4L2_MEMORY_MMAP; + if (v4l2_ioctl (pool->video_fd, VIDIOC_REQBUFS, &breq) < 0) { + GST_ERROR_OBJECT (pool, "error releasing buffers: %s", + g_strerror (errno)); + } + pool->num_buffers = 0; + } } static gboolean -start_streaming (GstV4l2BufferPool * pool) +stop_streaming (GstV4l2BufferPool * pool) { GstV4l2Object *obj = pool->obj; + GST_DEBUG_OBJECT (pool, "stopping stream"); + + gst_poll_set_flushing (obj->poll, TRUE); + + if (!pool->streaming) { + /* it avoid error: STREAMOFF 22 (Invalid argument) when + * attempting to stop a stream not previously started */ + GST_DEBUG_OBJECT (pool, "no need to stop, was not previously started"); + return TRUE; + } + switch (obj->mode) { case GST_V4L2_IO_RW: break; case GST_V4L2_IO_MMAP: case GST_V4L2_IO_USERPTR: case GST_V4L2_IO_DMABUF: - GST_DEBUG_OBJECT (pool, "STREAMON"); - if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMON, &obj->type) < 0) - goto start_failed; + GST_DEBUG_OBJECT (pool, "STREAMOFF"); + if (v4l2_ioctl (pool->video_fd, VIDIOC_STREAMOFF, &obj->type) < 0) + goto stop_failed; break; default: g_assert_not_reached (); break; } - pool->streaming = TRUE; + pool->streaming = FALSE; return TRUE; /* ERRORS */ -start_failed: +stop_failed: { - GST_ERROR_OBJECT (pool, "error with STREAMON %d (%s)", errno, + GST_ERROR_OBJECT (pool, "error with STREAMOFF %d (%s)", errno, g_strerror (errno)); return FALSE; } } -static gboolean -gst_v4l2_buffer_pool_start (GstBufferPool * bpool) -{ - GstV4l2BufferPool *pool = GST_V4L2_BUFFER_POOL (bpool); - GstV4l2Object *obj = pool->obj; - - pool->obj = obj; - pool->buffers = g_new0 (GstBuffer *, pool->num_buffers); - pool->num_allocated = 0; - - /* now, allocate the buffers: */ - if (!GST_BUFFER_POOL_CLASS (parent_class)->start (bpool)) - goto start_failed; - - /* we can start capturing now, we wait for the playback case until we queued - * the first buffer */ - if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) - if (!start_streaming (pool)) - goto start_failed; - - gst_poll_set_flushing (obj->poll, FALSE); - - return TRUE; - - /* ERRORS */ -start_failed: - { - GST_ERROR_OBJECT (pool, "failed to start streaming"); - return FALSE; - } -} - -static void -gst_v4l2_buffer_pool_free_buffers (GstV4l2BufferPool * pool) -{ - if (pool->num_buffers > 0) { - struct v4l2_requestbuffers breq; - memset (&breq, 0, sizeof (struct v4l2_requestbuffers)); - breq.type = pool->obj->type; - breq.count = 0; - breq.memory = V4L2_MEMORY_MMAP; - if (v4l2_ioctl (pool->video_fd, VIDIOC_REQBUFS, &breq) < 0) { - GST_ERROR_OBJECT (pool, "error releasing buffers: %s", - g_strerror (errno)); - } - pool->num_buffers = 0; - } -} - static gboolean gst_v4l2_buffer_pool_stop (GstBufferPool * bpool) { @@ -674,6 +811,7 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf) { GstV4l2Meta *meta; gint index; + gint i = 0; meta = GST_V4L2_META_GET (buf); if (meta == NULL) { @@ -684,12 +822,19 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf) } index = meta->vbuffer.index; + + /* this field is common to MPLANE and not MPLANE */ meta->vbuffer.bytesused = gst_buffer_get_size (buf); - GST_LOG_OBJECT (pool, - "enqueue buffer %p, index:%d, queued:%d, flags:%08x mem:%p used:%d", - buf, index, pool->num_queued, meta->vbuffer.flags, - meta->mem, meta->vbuffer.bytesused); + for (i = 0; i < meta->n_planes; i++) { + meta->vplanes[i].bytesused = + gst_buffer_get_sizes_range (buf, i, 1, NULL, NULL); + + GST_LOG_OBJECT (pool, + "enqueue buffer %p, index:%d, queued:%d, flags:%08x mem:%p used:%d, plane:%d", + buf, index, pool->num_queued, meta->vbuffer.flags, + meta->mem[i], meta->vplanes[i].bytesused, i); + } if (pool->buffers[index] != NULL) goto already_queued; @@ -723,22 +868,33 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer) GstFlowReturn res; GstBuffer *outbuf; struct v4l2_buffer vbuffer; + struct v4l2_plane vplanes[GST_VIDEO_MAX_PLANES]; GstV4l2Object *obj = pool->obj; GstClockTime timestamp; GstV4l2Meta *meta; + gint i; if ((res = gst_v4l2_object_poll (obj)) != GST_FLOW_OK) goto poll_error; + /* prepare the buffer */ memset (&vbuffer, 0x00, sizeof (vbuffer)); vbuffer.type = obj->type; -#if HAVE_DECL_V4L2_MEMORY_DMABUF + if (obj->mode == GST_V4L2_IO_DMABUF) vbuffer.memory = V4L2_MEMORY_DMABUF; else -#endif vbuffer.memory = V4L2_MEMORY_MMAP; + /* prepare the planes of the buffer */ + if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) { + /* length is the number of elements in the + * vplanes array */ + vbuffer.length = obj->n_v4l2_planes; + vbuffer.m.planes = vplanes; + } + + /* the buffer is prepared, now fill in it with meaningful values */ GST_LOG_OBJECT (pool, "doing DQBUF"); if (v4l2_ioctl (pool->video_fd, VIDIOC_DQBUF, &vbuffer) < 0) goto error; @@ -759,30 +915,76 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer) meta = GST_V4L2_META_GET (outbuf); g_assert (meta != NULL); - GST_LOG_OBJECT (pool, - "dequeued buffer %p seq:%d (ix=%d), mem %p used %d, flags %08x, ts %" - GST_TIME_FORMAT ", pool-queued=%d, buffer=%p", outbuf, vbuffer.sequence, - vbuffer.index, meta->mem, vbuffer.bytesused, vbuffer.flags, - GST_TIME_ARGS (timestamp), pool->num_queued, outbuf); + /* The size can change at every frame, esp. with jpeg. The GstMemory + * inside the GstBuffer could have been changed by some other + * element. So update our meta */ + if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + || obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { + + /* this field is common to MPLANE and not MPLANE */ + meta->vbuffer.length = vbuffer.length; + meta->vbuffer.bytesused = vbuffer.bytesused; + + if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { + for (i = 0; i < meta->n_planes; i++) { + /* the following also update meta->vbuffer.m.planes[i].length */ + meta->vplanes[i].length = vbuffer.m.planes[i].length; + /* the following also update meta->vbuffer.m.planes[i].bytesused */ + meta->vplanes[i].bytesused = vbuffer.m.planes[i].bytesused; + /* the following also update meta->vbuffer.m.planes[i].data_offset */ + meta->vplanes[i].data_offset = vbuffer.m.planes[i].data_offset; + } + } else { + meta->vplanes[0].length = vbuffer.length; + meta->vplanes[0].bytesused = vbuffer.bytesused; + meta->vplanes[0].data_offset = 0; + } + } +#ifndef GST_DISABLE_GST_DEBUG + for (i = 0; i < meta->n_planes; i++) { + GST_LOG_OBJECT (pool, + "dequeued buffer %p seq:%d (ix=%d), mem %p used %d, plane=%d, flags %08x, ts %" + GST_TIME_FORMAT ", pool-queued=%d, buffer=%p", outbuf, + vbuffer.sequence, vbuffer.index, meta->mem[i], + meta->vplanes[i].bytesused, i, vbuffer.flags, + GST_TIME_ARGS (timestamp), pool->num_queued, outbuf); + } +#endif /* set top/bottom field first if v4l2_buffer has the information */ if (vbuffer.field == V4L2_FIELD_INTERLACED_TB) { + GST_BUFFER_FLAG_SET (outbuf, GST_VIDEO_BUFFER_FLAG_INTERLACED); GST_BUFFER_FLAG_SET (outbuf, GST_VIDEO_BUFFER_FLAG_TFF); - } - if (vbuffer.field == V4L2_FIELD_INTERLACED_BT) { + } else if (vbuffer.field == V4L2_FIELD_INTERLACED_BT) { + GST_BUFFER_FLAG_SET (outbuf, GST_VIDEO_BUFFER_FLAG_INTERLACED); + GST_BUFFER_FLAG_UNSET (outbuf, GST_VIDEO_BUFFER_FLAG_TFF); + } else { + GST_BUFFER_FLAG_UNSET (outbuf, GST_VIDEO_BUFFER_FLAG_INTERLACED); GST_BUFFER_FLAG_UNSET (outbuf, GST_VIDEO_BUFFER_FLAG_TFF); } + if (GST_VIDEO_INFO_FORMAT (&obj->info) == GST_VIDEO_FORMAT_ENCODED) { + if (vbuffer.flags & V4L2_BUF_FLAG_KEYFRAME) + GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT); + else + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT); + } + /* The size can change at every frame, esp. with jpeg. The GstMemory * inside the GstBuffer could have been changed by some other * element, so just put back the original one. We always set it as * no share, so if it's not there, it's not used at all. */ - if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { + if (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + || obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { gst_buffer_remove_all_memory (outbuf); - gst_buffer_append_memory (outbuf, - gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, - meta->mem, vbuffer.length, 0, vbuffer.bytesused, NULL, NULL)); + for (i = 0; i < meta->n_planes; i++) { + gst_buffer_append_memory (outbuf, + gst_memory_new_wrapped (GST_MEMORY_FLAG_NO_SHARE, + meta->mem[i], meta->vplanes[i].length, + meta->vplanes[i].data_offset, + meta->vplanes[i].bytesused, NULL, NULL)); + } } GST_BUFFER_TIMESTAMP (outbuf) = timestamp; @@ -868,6 +1070,7 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer, switch (obj->type) { case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: /* capture, This function should return a buffer with new captured data */ switch (obj->mode) { case GST_V4L2_IO_RW: @@ -887,7 +1090,7 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer, /* start copying buffers when we are running low on buffers */ if (pool->num_queued < pool->copy_threshold) { GstBuffer *copy; -#ifdef VIDIOC_CREATE_BUFS + if (pool->can_alloc) { if (GST_BUFFER_POOL_CLASS (parent_class)->acquire_buffer (bpool, ©, params) == GST_FLOW_OK) { @@ -897,7 +1100,6 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer, pool->can_alloc = FALSE; } } -#endif /* copy the buffer */ copy = gst_buffer_copy_region (*buffer, @@ -919,6 +1121,7 @@ gst_v4l2_buffer_pool_acquire_buffer (GstBufferPool * bpool, GstBuffer ** buffer, break; case V4L2_BUF_TYPE_VIDEO_OUTPUT: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: /* playback, This function should return an empty buffer */ switch (obj->mode) { case GST_V4L2_IO_RW: @@ -967,6 +1170,7 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer) switch (obj->type) { case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: /* capture, put the buffer back in the queue so that we can refill it * later. */ switch (obj->mode) { @@ -989,6 +1193,7 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer) break; case V4L2_BUF_TYPE_VIDEO_OUTPUT: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: switch (obj->mode) { case GST_V4L2_IO_RW: /* release back in the pool */ @@ -1010,7 +1215,25 @@ gst_v4l2_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer) index); /* reset to the full length, in case it was changed */ - gst_buffer_resize (buffer, 0, meta->vbuffer.length); + if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) { + gint i = 0; + gint total_length = 0; + for (i = 0; i < meta->n_planes; i++) + total_length += meta->vplanes[i].length; + + if (total_length != gst_buffer_get_size (buffer) && + obj->info.finfo->n_planes > 1) { + /* FIXME if the lengths has actually changed it may require + * to restore the sizes of the individual memories and + * re-add them */ + GST_WARNING_OBJECT (pool, + "lengths changed, more work required"); + } + + gst_buffer_resize (buffer, 0, total_length); + } else { + gst_buffer_resize (buffer, 0, meta->vbuffer.length); + } /* playback, put the buffer back in the queue to refill later. */ GST_BUFFER_POOL_CLASS (parent_class)->release_buffer (bpool, @@ -1089,7 +1312,8 @@ GstBufferPool * gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps) { GstV4l2BufferPool *pool; - GstStructure *s; + GstStructure *config; + gboolean res = FALSE; gint fd; fd = v4l2_dup (obj->video_fd); @@ -1101,9 +1325,12 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps) pool->obj = obj; pool->can_alloc = TRUE; - s = gst_buffer_pool_get_config (GST_BUFFER_POOL_CAST (pool)); - gst_buffer_pool_config_set_params (s, caps, obj->sizeimage, 2, 0); - gst_buffer_pool_set_config (GST_BUFFER_POOL_CAST (pool), s); + config = gst_buffer_pool_get_config (GST_BUFFER_POOL_CAST (pool)); + gst_buffer_pool_config_set_params (config, caps, obj->sizeimage, 2, 0); + + res = gst_buffer_pool_set_config (GST_BUFFER_POOL_CAST (pool), config); + if (!res) + goto config_failed; gst_object_ref (obj->element); @@ -1115,6 +1342,11 @@ dup_failed: GST_DEBUG ("failed to dup fd %d (%s)", errno, g_strerror (errno)); return NULL; } +config_failed: + { + GST_WARNING ("failed to set pool config"); + return NULL; + } } static GstFlowReturn @@ -1201,6 +1433,7 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf) switch (obj->type) { case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: /* capture */ switch (obj->mode) { case GST_V4L2_IO_RW: @@ -1237,6 +1470,7 @@ gst_v4l2_buffer_pool_process (GstV4l2BufferPool * pool, GstBuffer * buf) break; case V4L2_BUF_TYPE_VIDEO_OUTPUT: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: /* playback */ switch (obj->mode) { case GST_V4L2_IO_RW: @@ -1346,3 +1580,89 @@ start_failed: return GST_FLOW_ERROR; } } + + +/** + * gst_v4l2_buffer_pool_flush: + * @bpool: a #GstBufferPool + * + * First, set obj->poll to be flushing + * Call STREAMOFF to clear QUEUED flag on every driver buffers. + * Then release all buffers that are in pool->buffers array. + * Finally call STREAMON if CAPTURE type + * The caller is responsible to unset flushing on obj->pool + * + * Returns: TRUE on success. + */ +gboolean +gst_v4l2_buffer_pool_flush (GstV4l2BufferPool * pool) +{ + GstBufferPool *bpool = GST_BUFFER_POOL_CAST (pool); + GstV4l2Object *obj = pool->obj; + gint i = 0; + + GST_DEBUG_OBJECT (pool, "flush"); + + stop_streaming (pool); + + switch (obj->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + switch (obj->mode) { + case GST_V4L2_IO_RW: + break; + case GST_V4L2_IO_MMAP: + case GST_V4L2_IO_USERPTR: + case GST_V4L2_IO_DMABUF: + { + for (i = 0; i < pool->num_buffers; i++) { + GstBuffer *buf = pool->buffers[i]; + if (buf) { + /* it's necessary to set to NULL before to call + * gst_v4l2_buffer_pool_release_buffer + * otherwise it won't go back to the pool */ + pool->buffers[i] = NULL; + + /* dicrease counter */ + pool->num_queued--; + + /* in CAPTURE mode the pool->num_queued will be re-incremented + * because the buffers are queued when released */ + if (buf->pool) + gst_buffer_unref (buf); + else + gst_v4l2_buffer_pool_release_buffer (bpool, buf); + } + } + + /* do not set pool->num_queued to 0 because + * the buffers are queued when released */ + break; + } + + default: + g_assert_not_reached (); + break; + } + break; + default: + g_assert_not_reached (); + break; + } + /* we can start capturing now, we wait for the playback + * case until we queued the first buffer */ + if (!V4L2_TYPE_IS_OUTPUT (obj->type)) + if (!start_streaming (pool)) + goto start_failed; + + return TRUE; + + /* ERRORS */ +start_failed: + { + GST_ERROR_OBJECT (pool, "failed to start streaming"); + return FALSE; + } +} diff --git a/sys/v4l2/gstv4l2bufferpool.h b/sys/v4l2/gstv4l2bufferpool.h index 3582bcea9..7a7f8c733 100644 --- a/sys/v4l2/gstv4l2bufferpool.h +++ b/sys/v4l2/gstv4l2bufferpool.h @@ -74,7 +74,26 @@ struct _GstV4l2BufferPoolClass struct _GstV4l2Meta { GstMeta meta; - gpointer mem; + /* number of v4l2 planes + * In MPLANE and non MPLANE case it can be one so + * it contains all yuv planes + * In MPLANE mode it can be one per yuv plane. + * For example, 2 for NV12 and 3 for I420 + * + * In non MPLANE mode it's always equal to 1 + * In MPLANE mode it's equivalent to vbuffer.length + */ + guint n_planes; + + /* only useful in GST_V4L2_IO_MMAP case. + * it contains address at which the mapping + * was placed for each v4l2 plane */ + gpointer mem[GST_VIDEO_MAX_PLANES]; + + /* plane info for multi-planar buffers */ + struct v4l2_plane vplanes[GST_VIDEO_MAX_PLANES]; + + /* video buffer info */ struct v4l2_buffer vbuffer; }; @@ -89,6 +108,8 @@ GstBufferPool * gst_v4l2_buffer_pool_new (GstV4l2Object *obj, GstCaps *c GstFlowReturn gst_v4l2_buffer_pool_process (GstV4l2BufferPool * bpool, GstBuffer * buf); +gboolean gst_v4l2_buffer_pool_flush (GstV4l2BufferPool * pool); + G_END_DECLS #endif /*__GST_V4L2_BUFFER_POOL_H__ */ diff --git a/sys/v4l2/gstv4l2devicemonitor.c b/sys/v4l2/gstv4l2devicemonitor.c new file mode 100644 index 000000000..db2f974f1 --- /dev/null +++ b/sys/v4l2/gstv4l2devicemonitor.c @@ -0,0 +1,509 @@ +/* GStreamer + * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com> + * + * gstv4l2devicemonitor.c: V4l2 device probing and monitoring + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstv4l2devicemonitor.h" + +#include <string.h> +#include <sys/stat.h> + +#include <gst/gst.h> + +#include "gstv4l2object.h" +#include "v4l2_calls.h" + +#ifdef HAVE_GUDEV +#include <gudev/gudev.h> +#endif + +static GstV4l2Device *gst_v4l2_device_new (const gchar * device_path, + const gchar * device_name, GstCaps * caps, GstV4l2DeviceType type); + + +G_DEFINE_TYPE (GstV4l2DeviceMonitor, gst_v4l2_device_monitor, + GST_TYPE_DEVICE_MONITOR); + +static void gst_v4l2_device_monitor_finalize (GObject * object); +static GList *gst_v4l2_device_monitor_probe (GstDeviceMonitor * monitor); + +#if HAVE_GUDEV +static gboolean gst_v4l2_device_monitor_start (GstDeviceMonitor * monitor); +static void gst_v4l2_device_monitor_stop (GstDeviceMonitor * monitor); +#endif + + +static void +gst_v4l2_device_monitor_class_init (GstV4l2DeviceMonitorClass * klass) +{ + GstDeviceMonitorClass *dm_class = GST_DEVICE_MONITOR_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + dm_class->probe = gst_v4l2_device_monitor_probe; + +#if HAVE_GUDEV + dm_class->start = gst_v4l2_device_monitor_start; + dm_class->stop = gst_v4l2_device_monitor_stop; +#endif + + gobject_class->finalize = gst_v4l2_device_monitor_finalize; + + gst_device_monitor_class_set_static_metadata (dm_class, + "Video (video4linux2) Device Monitor", "Source/Sink/Video", + "List and monitor video4linux2 source and sink devices", + "Olivier Crete <olivier.crete@collabora.com>"); +} + +static void +gst_v4l2_device_monitor_init (GstV4l2DeviceMonitor * monitor) +{ +#if HAVE_GUDEV + g_cond_init (&monitor->started_cond); +#endif +} + +static void +gst_v4l2_device_monitor_finalize (GObject * object) +{ +#if HAVE_GUDEV + GstV4l2DeviceMonitor *monitor = GST_V4L2_DEVICE_MONITOR (object); + + g_cond_clear (&monitor->started_cond); +#endif + + G_OBJECT_CLASS (gst_v4l2_device_monitor_parent_class)->finalize (object); +} + +static GstV4l2Device * +gst_v4l2_device_monitor_probe_device (GstV4l2DeviceMonitor * monitor, + const gchar * device_path, const gchar * device_name) +{ + GstV4l2Object *v4l2obj; + GstCaps *caps; + GstV4l2Device *device = NULL; + struct stat st; + GstV4l2DeviceType type = GST_V4L2_DEVICE_TYPE_INVALID; + + if (stat (device_path, &st) == -1) + return NULL; + + if (!S_ISCHR (st.st_mode)) + return NULL; + + v4l2obj = gst_v4l2_object_new ((GstElement *) monitor, + V4L2_BUF_TYPE_VIDEO_CAPTURE, device_path, NULL, NULL, NULL); + + if (!gst_v4l2_open (v4l2obj)) + goto destroy; + + + if (v4l2obj->vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE) + type = GST_V4L2_DEVICE_TYPE_SOURCE; + + if (v4l2obj->vcap.capabilities & V4L2_CAP_VIDEO_OUTPUT) { + /* Morph it in case our initial guess was wrong */ + v4l2obj->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; + + if (type == GST_V4L2_DEVICE_TYPE_INVALID) + type = GST_V4L2_DEVICE_TYPE_SINK; + else + /* We ignore M2M devices that are both capture and output for now + * The monitor is not for them + */ + goto close; + } + + caps = gst_v4l2_object_get_caps (v4l2obj, NULL); + + if (caps == NULL) + goto close; + if (gst_caps_is_empty (caps)) { + gst_caps_unref (caps); + goto close; + } + + device = gst_v4l2_device_new (device_path, + device_name ? device_name : (gchar *) v4l2obj->vcap.card, caps, type); + gst_caps_unref (caps); + +close: + + gst_v4l2_close (v4l2obj); + +destroy: + + gst_v4l2_object_destroy (v4l2obj); + + return device; +} + + +static GList * +gst_v4l2_device_monitor_probe (GstDeviceMonitor * monitor) +{ + GstV4l2DeviceMonitor *self = GST_V4L2_DEVICE_MONITOR (monitor); + GList *devices = NULL; + const gchar *dev_base[] = { "/dev/video", "/dev/v4l2/video", NULL }; + gint base, n; + + /* + * detect /dev entries + */ + for (n = 0; n < 64; n++) { + for (base = 0; dev_base[base] != NULL; base++) { + gchar *dev = g_strdup_printf ("%s%d", dev_base[base], n); + GstV4l2Device *device; + + device = gst_v4l2_device_monitor_probe_device (self, dev, NULL); + + if (device) { + gst_object_ref_sink (device); + devices = g_list_prepend (devices, device); + } + + g_free (dev); + } + } + + return devices; +} + +#if HAVE_GUDEV + +static GstDevice * +gst_v4l2_device_monitor_device_from_udev (GstV4l2DeviceMonitor * monitor, + GUdevDevice * udev_device) +{ + GstV4l2Device *gstdev; + const gchar *device_path = g_udev_device_get_device_file (udev_device); + const gchar *device_name; + + device_name = g_udev_device_get_property (udev_device, "ID_V4L_PRODUCT"); + if (!device_name) + device_name = g_udev_device_get_property (udev_device, "ID_MODEL_ENC"); + if (!device_name) + device_name = g_udev_device_get_property (udev_device, "ID_MODEL"); + + gstdev = gst_v4l2_device_monitor_probe_device (monitor, device_path, + device_name); + + if (gstdev) + gstdev->syspath = g_strdup (g_udev_device_get_sysfs_path (udev_device)); + + return GST_DEVICE (gstdev); +} + +static void +uevent_cb (GUdevClient * client, const gchar * action, GUdevDevice * device, + GstV4l2DeviceMonitor * self) +{ + GstDeviceMonitor *monitor = GST_DEVICE_MONITOR (self); + + /* Not V4L2, ignoring */ + if (g_udev_device_get_property_as_int (device, "ID_V4L_VERSION") != 2) + return; + + if (!strcmp (action, "add")) { + GstDevice *gstdev = NULL; + + gstdev = gst_v4l2_device_monitor_device_from_udev (self, device); + + if (gstdev) + gst_device_monitor_device_add (monitor, gstdev); + } else if (!strcmp (action, "remove")) { + GstV4l2Device *gstdev = NULL; + GList *item; + + GST_OBJECT_LOCK (self); + for (item = monitor->devices; item; item = item->next) { + gstdev = item->data; + + if (!strcmp (gstdev->syspath, g_udev_device_get_sysfs_path (device))) { + gst_object_ref (gstdev); + break; + } + + gstdev = NULL; + } + GST_OBJECT_UNLOCK (monitor); + + if (gstdev) { + gst_device_monitor_device_remove (monitor, GST_DEVICE (gstdev)); + g_object_unref (gstdev); + } + } else { + GST_WARNING ("Unhandled action %s", action); + } +} + +static gpointer +monitor_thread (gpointer data) +{ + GstV4l2DeviceMonitor *monitor = data; + GMainContext *context = NULL; + GMainLoop *loop = NULL; + GUdevClient *client; + GList *devices; + static const gchar *subsystems[] = { "video4linux", NULL }; + + GST_OBJECT_LOCK (monitor); + if (monitor->context) + context = g_main_context_ref (monitor->context); + if (monitor->loop) + loop = g_main_loop_ref (monitor->loop); + + if (context == NULL || loop == NULL) { + monitor->started = TRUE; + g_cond_broadcast (&monitor->started_cond); + GST_OBJECT_UNLOCK (monitor); + return NULL; + } + GST_OBJECT_UNLOCK (monitor); + + g_main_context_push_thread_default (context); + + client = g_udev_client_new (subsystems); + + g_signal_connect (client, "uevent", G_CALLBACK (uevent_cb), monitor); + + devices = g_udev_client_query_by_subsystem (client, "video4linux"); + + while (devices) { + GUdevDevice *udev_device = devices->data; + GstDevice *gstdev; + + devices = g_list_remove (devices, udev_device); + + if (g_udev_device_get_property_as_int (udev_device, "ID_V4L_VERSION") == 2) { + gstdev = gst_v4l2_device_monitor_device_from_udev (monitor, udev_device); + if (gstdev) + gst_device_monitor_device_add (GST_DEVICE_MONITOR (monitor), gstdev); + } + + g_object_unref (udev_device); + } + + GST_OBJECT_LOCK (monitor); + monitor->started = TRUE; + g_cond_broadcast (&monitor->started_cond); + GST_OBJECT_UNLOCK (monitor); + + g_main_loop_run (loop); + g_main_loop_unref (loop); + + g_object_unref (client); + g_main_context_unref (context); + + gst_object_unref (monitor); + + return NULL; +} + +static gboolean +gst_v4l2_device_monitor_start (GstDeviceMonitor * monitor) +{ + GstV4l2DeviceMonitor *self = GST_V4L2_DEVICE_MONITOR (monitor); + + GST_OBJECT_LOCK (self); + g_assert (self->context == NULL); + + self->context = g_main_context_new (); + self->loop = g_main_loop_new (self->context, FALSE); + + self->thread = g_thread_new ("v4l2-device-monitor", monitor_thread, + g_object_ref (self)); + + while (self->started == FALSE) + g_cond_wait (&self->started_cond, GST_OBJECT_GET_LOCK (self)); + + GST_OBJECT_UNLOCK (self); + + return TRUE; +} + +static void +gst_v4l2_device_monitor_stop (GstDeviceMonitor * monitor) +{ + GstV4l2DeviceMonitor *self = GST_V4L2_DEVICE_MONITOR (monitor); + GMainContext *context; + GMainLoop *loop; + GSource *idle_stop_source; + + GST_OBJECT_LOCK (self); + context = self->context; + loop = self->loop; + self->context = NULL; + self->loop = NULL; + GST_OBJECT_UNLOCK (self); + + if (!context || !loop) + return; + + idle_stop_source = g_idle_source_new (); + g_source_set_callback (idle_stop_source, (GSourceFunc) g_main_loop_quit, loop, + (GDestroyNotify) g_main_loop_unref); + g_source_attach (idle_stop_source, context); + g_source_unref (idle_stop_source); + g_main_context_unref (context); + + g_thread_join (self->thread); + g_thread_unref (self->thread); + self->thread = NULL; + self->started = FALSE; +} + +#endif + +enum +{ + PROP_DEVICE_PATH = 1, +}; + +G_DEFINE_TYPE (GstV4l2Device, gst_v4l2_device, GST_TYPE_DEVICE); + +static void gst_v4l2_device_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_v4l2_device_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_v4l2_device_finalize (GObject * object); +static GstElement *gst_v4l2_device_create_element (GstDevice * device, + const gchar * name); + +static void +gst_v4l2_device_class_init (GstV4l2DeviceClass * klass) +{ + GstDeviceClass *dev_class = GST_DEVICE_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + dev_class->create_element = gst_v4l2_device_create_element; + + object_class->get_property = gst_v4l2_device_get_property; + object_class->set_property = gst_v4l2_device_set_property; + object_class->finalize = gst_v4l2_device_finalize; + + g_object_class_install_property (object_class, PROP_DEVICE_PATH, + g_param_spec_string ("device-path", "Device Path", + "The Path of the device node", "", + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); +} + +static void +gst_v4l2_device_init (GstV4l2Device * device) +{ +} + +static void +gst_v4l2_device_finalize (GObject * object) +{ + GstV4l2Device *device = GST_V4L2_DEVICE (object); + + g_free (device->device_path); + g_free (device->syspath); + + G_OBJECT_CLASS (gst_v4l2_device_parent_class)->finalize (object); +} + +static GstElement * +gst_v4l2_device_create_element (GstDevice * device, const gchar * name) +{ + GstV4l2Device *v4l2_dev = GST_V4L2_DEVICE (device); + GstElement *elem; + + elem = gst_element_factory_make (v4l2_dev->element, name); + g_object_set (elem, "device", v4l2_dev->device_path, NULL); + + return elem; +} + +static GstV4l2Device * +gst_v4l2_device_new (const gchar * device_path, const gchar * device_name, + GstCaps * caps, GstV4l2DeviceType type) +{ + GstV4l2Device *gstdev; + const gchar *element; + const gchar *klass; + + g_return_val_if_fail (device_path, NULL); + g_return_val_if_fail (device_name, NULL); + g_return_val_if_fail (caps, NULL); + + switch (type) { + case GST_V4L2_DEVICE_TYPE_SOURCE: + element = "v4l2src"; + klass = "Video/Source"; + break; + case GST_V4L2_DEVICE_TYPE_SINK: + element = "v4l2sink"; + klass = "Video/Sink"; + break; + default: + g_assert_not_reached (); + break; + } + + gstdev = g_object_new (GST_TYPE_V4L2_DEVICE, "device-path", device_path, + "display-name", device_name, "caps", caps, "klass", klass, NULL); + + gstdev->element = element; + + + return gstdev; +} + + +static void +gst_v4l2_device_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstV4l2Device *device; + + device = GST_V4L2_DEVICE_CAST (object); + + switch (prop_id) { + case PROP_DEVICE_PATH: + g_value_set_string (value, device->device_path); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + +static void +gst_v4l2_device_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstV4l2Device *device; + + device = GST_V4L2_DEVICE_CAST (object); + + switch (prop_id) { + case PROP_DEVICE_PATH: + device->device_path = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} diff --git a/sys/v4l2/gstv4l2devicemonitor.h b/sys/v4l2/gstv4l2devicemonitor.h new file mode 100644 index 000000000..4e3050e44 --- /dev/null +++ b/sys/v4l2/gstv4l2devicemonitor.h @@ -0,0 +1,101 @@ +/* GStreamer + * Copyright (C) 2012 Olivier Crete <olivier.crete@collabora.com> + * + * gstv4l2devicemonitor.h: V4l2 device probing and monitoring + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_V4L2_DEVICE_MONITOR_H__ +#define __GST_V4L2_DEVICE_MONITOR_H__ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <gst/gst.h> + +#ifdef HAVE_GUDEV +#include <gudev/gudev.h> +#endif + +G_BEGIN_DECLS + +typedef struct _GstV4l2DeviceMonitor GstV4l2DeviceMonitor; +typedef struct _GstV4l2DeviceMonitorPrivate GstV4l2DeviceMonitorPrivate; +typedef struct _GstV4l2DeviceMonitorClass GstV4l2DeviceMonitorClass; + +#define GST_TYPE_V4L2_DEVICE_MONITOR (gst_v4l2_device_monitor_get_type()) +#define GST_IS_V4L2_DEVICE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_DEVICE_MONITOR)) +#define GST_IS_V4L2_DEVICE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_V4L2_DEVICE_MONITOR)) +#define GST_V4L2_DEVICE_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_V4L2_DEVICE_MONITOR, GstV4l2DeviceMonitorClass)) +#define GST_V4L2_DEVICE_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_DEVICE_MONITOR, GstV4l2DeviceMonitor)) +#define GST_V4L2_DEVICE_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE_MONITOR, GstV4l2DeviceMonitorClass)) +#define GST_V4L2_DEVICE_MONITOR_CAST(obj) ((GstV4l2DeviceMonitor *)(obj)) + +struct _GstV4l2DeviceMonitor { + GstDeviceMonitor parent; + +#ifdef HAVE_GUDEV + GMainContext *context; + GMainLoop *loop; + GThread *thread; + gboolean started; + GCond started_cond; +#endif +}; + +typedef enum { + GST_V4L2_DEVICE_TYPE_INVALID = 0, + GST_V4L2_DEVICE_TYPE_SOURCE, + GST_V4L2_DEVICE_TYPE_SINK +} GstV4l2DeviceType; + +struct _GstV4l2DeviceMonitorClass { + GstDeviceMonitorClass parent_class; +}; + +GType gst_v4l2_device_monitor_get_type (void); + + +typedef struct _GstV4l2Device GstV4l2Device; +typedef struct _GstV4l2DevicePrivate GstV4l2DevicePrivate; +typedef struct _GstV4l2DeviceClass GstV4l2DeviceClass; + +#define GST_TYPE_V4L2_DEVICE (gst_v4l2_device_get_type()) +#define GST_IS_V4L2_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_DEVICE)) +#define GST_IS_V4L2_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_V4L2_DEVICE)) +#define GST_V4L2_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_V4L2_DEVICE, GstV4l2DeviceClass)) +#define GST_V4L2_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_DEVICE, GstV4l2Device)) +#define GST_V4L2_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE, GstV4l2DeviceClass)) +#define GST_V4L2_DEVICE_CAST(obj) ((GstV4l2Device *)(obj)) + +struct _GstV4l2Device { + GstDevice parent; + + gchar *device_path; + gchar *syspath; + const gchar *element; +}; + +struct _GstV4l2DeviceClass { + GstDeviceClass parent_class; +}; + +GType gst_v4l2_device_get_type (void); + +#endif /* __GST_V4L2_DEVICE_MONITOR_H__ */ diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index ee57d5f6b..4313c3468 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -38,28 +38,17 @@ #include "v4l2_calls.h" #include "gstv4l2tuner.h" -#ifdef HAVE_XVIDEO -#include "gstv4l2videooverlay.h" -#endif #include "gstv4l2colorbalance.h" #include "gst/gst-i18n-plugin.h" #include <gst/video/video.h> -/* videodev2.h is not versioned and we can't easily check for the presence - * of enum values at compile time, but the V4L2_CAP_VIDEO_OUTPUT_OVERLAY define - * was added in the same commit as V4L2_FIELD_INTERLACED_{TB,BT} (b2787845) */ -#ifndef V4L2_CAP_VIDEO_OUTPUT_OVERLAY -#define V4L2_FIELD_INTERLACED_TB 8 -#define V4L2_FIELD_INTERLACED_BT 9 -#endif - GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE); #define GST_CAT_DEFAULT v4l2_debug -#define DEFAULT_PROP_DEVICE_NAME NULL +#define DEFAULT_PROP_DEVICE_NAME NULL #define DEFAULT_PROP_DEVICE_FD -1 #define DEFAULT_PROP_FLAGS 0 #define DEFAULT_PROP_TV_NORM 0 @@ -67,6 +56,8 @@ GST_DEBUG_CATEGORY_EXTERN (GST_CAT_PERFORMANCE); #define DEFAULT_PROP_FREQUENCY 0 #define DEFAULT_PROP_IO_MODE GST_V4L2_IO_AUTO +#define ENCODED_BUFFER_SIZE (1 * 1024 * 1024) + enum { PROP_0, @@ -75,229 +66,6 @@ enum static GSList *gst_v4l2_object_get_format_list (GstV4l2Object * v4l2object); -#if 0 -G_LOCK_DEFINE_STATIC (probe_lock); - -const GList * -gst_v4l2_probe_get_properties (GstPropertyProbe * probe) -{ - GObjectClass *klass = G_OBJECT_GET_CLASS (probe); - static GList *list = NULL; - - G_LOCK (probe_lock); - - if (!list) { - list = g_list_append (NULL, g_object_class_find_property (klass, "device")); - } - - G_UNLOCK (probe_lock); - - return list; -} - -static gboolean init = FALSE; -static GList *devices = NULL; - -#ifdef HAVE_GUDEV -static gboolean -gst_v4l2_class_probe_devices_with_udev (GstElementClass * klass, gboolean check, - GList ** klass_devices) -{ - GUdevClient *client = NULL; - GList *item; - - if (!check) { - while (devices) { - gchar *device = devices->data; - devices = g_list_remove (devices, device); - g_free (device); - } - - GST_INFO ("Enumerating video4linux devices from udev"); - client = g_udev_client_new (NULL); - if (!client) { - GST_WARNING ("Failed to initialize gudev client"); - goto finish; - } - - item = g_udev_client_query_by_subsystem (client, "video4linux"); - while (item) { - GUdevDevice *device = item->data; - gchar *devnode = g_strdup (g_udev_device_get_device_file (device)); - gint api = g_udev_device_get_property_as_int (device, "ID_V4L_VERSION"); - GST_INFO ("Found new device: %s, API: %d", devnode, api); - /* Append v4l2 devices only. If api is 0 probably v4l_id has - been stripped out of the current udev installation, append - anyway */ - if (api == 0) { - GST_WARNING - ("Couldn't retrieve ID_V4L_VERSION, silly udev installation?"); - } - if ((api == 2 || api == 0)) { - devices = g_list_append (devices, devnode); - } else { - g_free (devnode); - } - g_object_unref (device); - item = item->next; - } - g_list_free (item); - init = TRUE; - } - -finish: - if (client) { - g_object_unref (client); - } - - *klass_devices = devices; - - return init; -} -#endif /* HAVE_GUDEV */ - -static gboolean -gst_v4l2_class_probe_devices (GstElementClass * klass, gboolean check, - GList ** klass_devices) -{ - if (!check) { - const gchar *dev_base[] = { "/dev/video", "/dev/v4l2/video", NULL }; - gint base, n, fd; - - while (devices) { - gchar *device = devices->data; - devices = g_list_remove (devices, device); - g_free (device); - } - - /* - * detect /dev entries - */ - for (n = 0; n < 64; n++) { - for (base = 0; dev_base[base] != NULL; base++) { - struct stat s; - gchar *device = g_strdup_printf ("%s%d", - dev_base[base], - n); - - /* - * does the /dev/ entry exist at all? - */ - if (stat (device, &s) == 0) { - /* - * yes: is a device attached? - */ - if (S_ISCHR (s.st_mode)) { - - if ((fd = open (device, O_RDWR | O_NONBLOCK)) > 0 || errno == EBUSY) { - if (fd > 0) - close (fd); - - devices = g_list_append (devices, device); - break; - } - } - } - g_free (device); - } - } - init = TRUE; - } - - *klass_devices = devices; - - return init; -} - -void -gst_v4l2_probe_probe_property (GstPropertyProbe * probe, - guint prop_id, const GParamSpec * pspec, GList ** klass_devices) -{ - GstElementClass *klass = GST_ELEMENT_GET_CLASS (probe); - - switch (prop_id) { - case PROP_DEVICE: -#ifdef HAVE_GUDEV - if (!gst_v4l2_class_probe_devices_with_udev (klass, FALSE, klass_devices)) - gst_v4l2_class_probe_devices (klass, FALSE, klass_devices); -#else /* !HAVE_GUDEV */ - gst_v4l2_class_probe_devices (klass, FALSE, klass_devices); -#endif /* HAVE_GUDEV */ - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); - break; - } -} - -gboolean -gst_v4l2_probe_needs_probe (GstPropertyProbe * probe, - guint prop_id, const GParamSpec * pspec, GList ** klass_devices) -{ - GstElementClass *klass = GST_ELEMENT_GET_CLASS (probe); - gboolean ret = FALSE; - - switch (prop_id) { - case PROP_DEVICE: -#ifdef HAVE_GUDEV - ret = - !gst_v4l2_class_probe_devices_with_udev (klass, FALSE, klass_devices); -#else /* !HAVE_GUDEV */ - ret = !gst_v4l2_class_probe_devices (klass, TRUE, klass_devices); -#endif /* HAVE_GUDEV */ - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); - break; - } - return ret; -} - -static GValueArray * -gst_v4l2_class_list_devices (GstElementClass * klass, GList ** klass_devices) -{ - GValueArray *array; - GValue value = { 0 }; - GList *item; - - if (!*klass_devices) - return NULL; - - array = g_value_array_new (g_list_length (*klass_devices)); - item = *klass_devices; - g_value_init (&value, G_TYPE_STRING); - while (item) { - gchar *device = item->data; - - g_value_set_string (&value, device); - g_value_array_append (array, &value); - - item = item->next; - } - g_value_unset (&value); - - return array; -} - -GValueArray * -gst_v4l2_probe_get_values (GstPropertyProbe * probe, - guint prop_id, const GParamSpec * pspec, GList ** klass_devices) -{ - GstElementClass *klass = GST_ELEMENT_GET_CLASS (probe); - GValueArray *array = NULL; - - switch (prop_id) { - case PROP_DEVICE: - array = gst_v4l2_class_list_devices (klass, klass_devices); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); - break; - } - - return array; -} -#endif #define GST_TYPE_V4L2_DEVICE_FLAGS (gst_v4l2_device_get_type ()) static GType @@ -379,8 +147,7 @@ gst_v4l2_tv_norm_get_type (void) return v4l2_tv_norm; } -#define GST_TYPE_V4L2_IO_MODE (gst_v4l2_io_mode_get_type ()) -static GType +GType gst_v4l2_io_mode_get_type (void) { static GType v4l2_io_mode = 0; @@ -421,11 +188,9 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** - * GstV4l2Src:brightness + * GstV4l2Src:brightness: * * Picture brightness, or more precisely, the black level - * - * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_BRIGHTNESS, g_param_spec_int ("brightness", "Brightness", @@ -433,11 +198,9 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE)); /** - * GstV4l2Src:contrast + * GstV4l2Src:contrast: * * Picture contrast or luma gain - * - * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_CONTRAST, g_param_spec_int ("contrast", "Contrast", @@ -445,11 +208,9 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE)); /** - * GstV4l2Src:saturation + * GstV4l2Src:saturation: * * Picture color saturation or chroma gain - * - * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_SATURATION, g_param_spec_int ("saturation", "Saturation", @@ -457,11 +218,9 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE)); /** - * GstV4l2Src:hue + * GstV4l2Src:hue: * * Hue or color balance - * - * Since: 0.10.26 */ g_object_class_install_property (gobject_class, PROP_HUE, g_param_spec_int ("hue", "Hue", @@ -470,11 +229,9 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | GST_PARAM_CONTROLLABLE)); /** - * GstV4l2Src:norm + * GstV4l2Src:norm: * * TV norm - * - * Since: 0.10.31 */ g_object_class_install_property (gobject_class, PROP_TV_NORM, g_param_spec_enum ("norm", "TV norm", @@ -483,7 +240,7 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstV4l2Src:io-mode + * GstV4l2Src:io-mode: * * IO Mode */ @@ -494,7 +251,7 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstV4l2Src:extra-controls + * GstV4l2Src:extra-controls: * * Additional v4l2 controls for the device. The controls are identified * by the control name (lowercase with '_' for any non-alphanumeric @@ -508,7 +265,7 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstV4l2Src:pixel-aspect-ratio + * GstV4l2Src:pixel-aspect-ratio: * * The pixel aspect ratio of the device. This overwrites the pixel aspect * ratio queried from the device. @@ -521,7 +278,7 @@ gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstV4l2Src:force-aspect-ratio + * GstV4l2Src:force-aspect-ratio: * * When enabled, the pixel aspect ratio queried from the device or set * with the pixel-aspect-ratio property will be enforced. @@ -571,6 +328,30 @@ gst_v4l2_object_new (GstElement * element, v4l2object->keep_aspect = TRUE; + v4l2object->n_v4l2_planes = 0; + + /* + * this boolean only applies in v4l2-MPLANE mode. + * TRUE: means it prefers to use several v4l2 (non contiguous) + * planes. For example if the device supports NV12 and NV12M + * both in MPLANE mode, then it will prefer NV12M + * FALSE: means it prefers to use one v4l2 plane (which contains + * all gst planes as if it was working in non-v4l2-MPLANE mode. + * For example if the device supports NV12 and NV12M + * both in MPLANE mode, then it will prefer NV12 + * + * this boolean is also used to manage the case where the + * device only supports the mode MPLANE and at the same time it + * does not support both NV12 and NV12M. So in this case we first + * try to use the prefered config, and at least try the other case + * if it fails. For example in MPLANE mode if it has NV12 and not + * NV21M then even if you set prefered_non_contiguous to TRUE it will + * try NV21 as well. + */ + v4l2object->prefered_non_contiguous = TRUE; + + v4l2object->no_initial_format = FALSE; + return v4l2object; } @@ -777,6 +558,12 @@ gst_v4l2_object_get_property_helper (GstV4l2Object * v4l2object, V4L2_CAP_VIDEO_OVERLAY | V4L2_CAP_VBI_CAPTURE | V4L2_CAP_VBI_OUTPUT | V4L2_CAP_TUNER | V4L2_CAP_AUDIO); + + if (v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE_MPLANE) + flags |= V4L2_CAP_VIDEO_CAPTURE; + + if (v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_OUTPUT_MPLANE) + flags |= V4L2_CAP_VIDEO_OUTPUT; } g_value_set_flags (value, flags); break; @@ -888,20 +675,22 @@ gst_v4l2_object_open (GstV4l2Object * v4l2object) else return FALSE; -#ifdef HAVE_XVIDEO - gst_v4l2_video_overlay_start (v4l2object); -#endif - return TRUE; } gboolean -gst_v4l2_object_close (GstV4l2Object * v4l2object) +gst_v4l2_object_open_shared (GstV4l2Object * v4l2object, GstV4l2Object * other) { -#ifdef HAVE_XVIDEO - gst_v4l2_video_overlay_stop (v4l2object); -#endif + gboolean ret; + ret = gst_v4l2_dup (v4l2object, other); + + return ret; +} + +gboolean +gst_v4l2_object_close (GstV4l2Object * v4l2object) +{ if (!gst_v4l2_close (v4l2object)) return FALSE; @@ -918,81 +707,79 @@ gst_v4l2_object_close (GstV4l2Object * v4l2object) /* * common format / caps utilities: */ +typedef enum +{ + GST_V4L2_RAW = 1 << 0, + GST_V4L2_CODEC = 1 << 1, + GST_V4L2_TRANSPORT = 1 << 2, + GST_V4L2_NO_PARSE = 1 << 3, + GST_V4L2_ALL = 0xffff +} GstV4L2FormatFlags; + typedef struct { guint32 format; gboolean dimensions; + GstV4L2FormatFlags flags; } GstV4L2FormatDesc; static const GstV4L2FormatDesc gst_v4l2_formats[] = { /* from Linux 2.6.15 videodev2.h */ - {V4L2_PIX_FMT_RGB332, TRUE}, - {V4L2_PIX_FMT_RGB555, TRUE}, - {V4L2_PIX_FMT_RGB565, TRUE}, - {V4L2_PIX_FMT_RGB555X, TRUE}, - {V4L2_PIX_FMT_RGB565X, TRUE}, - {V4L2_PIX_FMT_BGR24, TRUE}, - {V4L2_PIX_FMT_RGB24, TRUE}, - {V4L2_PIX_FMT_BGR32, TRUE}, - {V4L2_PIX_FMT_RGB32, TRUE}, - {V4L2_PIX_FMT_GREY, TRUE}, - {V4L2_PIX_FMT_YVU410, TRUE}, - {V4L2_PIX_FMT_YVU420, TRUE}, - {V4L2_PIX_FMT_YUYV, TRUE}, - {V4L2_PIX_FMT_UYVY, TRUE}, - {V4L2_PIX_FMT_YUV422P, TRUE}, - {V4L2_PIX_FMT_YUV411P, TRUE}, - {V4L2_PIX_FMT_Y41P, TRUE}, + {V4L2_PIX_FMT_RGB332, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_RGB555, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_RGB565, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_RGB555X, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_RGB565X, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_BGR24, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_RGB24, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_BGR32, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_RGB32, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_GREY, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_YVU410, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_YVU420, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_YUYV, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_UYVY, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_YUV422P, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_YUV411P, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_Y41P, TRUE, GST_V4L2_RAW}, /* two planes -- one Y, one Cr + Cb interleaved */ - {V4L2_PIX_FMT_NV12, TRUE}, - {V4L2_PIX_FMT_NV21, TRUE}, + {V4L2_PIX_FMT_NV12, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_NV12M, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_NV12MT, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_NV21, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_NV21M, TRUE, GST_V4L2_RAW}, /* The following formats are not defined in the V4L2 specification */ - {V4L2_PIX_FMT_YUV410, TRUE}, - {V4L2_PIX_FMT_YUV420, TRUE}, - {V4L2_PIX_FMT_YYUV, TRUE}, - {V4L2_PIX_FMT_HI240, TRUE}, + {V4L2_PIX_FMT_YUV410, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_YUV420, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_YYUV, TRUE, GST_V4L2_RAW}, + {V4L2_PIX_FMT_HI240, TRUE, GST_V4L2_RAW}, /* see http://www.siliconimaging.com/RGB%20Bayer.htm */ -#ifdef V4L2_PIX_FMT_SBGGR8 - {V4L2_PIX_FMT_SBGGR8, TRUE}, -#endif + {V4L2_PIX_FMT_SBGGR8, TRUE, GST_V4L2_CODEC}, /* compressed formats */ - {V4L2_PIX_FMT_MJPEG, TRUE}, - {V4L2_PIX_FMT_JPEG, TRUE}, -#ifdef V4L2_PIX_FMT_PJPG - {V4L2_PIX_FMT_PJPG, TRUE}, -#endif - {V4L2_PIX_FMT_DV, TRUE}, - {V4L2_PIX_FMT_MPEG, FALSE}, -#ifdef V4L2_PIX_FMT_MPEG4 - {V4L2_PIX_FMT_MPEG4, TRUE}, -#endif - -#ifdef V4L2_PIX_FMT_H263 - {V4L2_PIX_FMT_H263, TRUE}, -#endif -#ifdef V4L2_PIX_FMT_H264 - {V4L2_PIX_FMT_H264, TRUE}, -#endif + {V4L2_PIX_FMT_MJPEG, FALSE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_JPEG, FALSE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_PJPG, FALSE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_DV, FALSE, GST_V4L2_TRANSPORT}, + {V4L2_PIX_FMT_MPEG, FALSE, GST_V4L2_TRANSPORT}, + {V4L2_PIX_FMT_MPEG1, FALSE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_MPEG2, FALSE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_MPEG4, FALSE, GST_V4L2_CODEC}, + + {V4L2_PIX_FMT_H263, FALSE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_H264, FALSE, GST_V4L2_CODEC}, + /* VP8 not parseable */ + {V4L2_PIX_FMT_VP8, FALSE, GST_V4L2_CODEC | GST_V4L2_NO_PARSE}, /* Vendor-specific formats */ - {V4L2_PIX_FMT_WNVA, TRUE}, - -#ifdef V4L2_PIX_FMT_SN9C10X - {V4L2_PIX_FMT_SN9C10X, TRUE}, -#endif -#ifdef V4L2_PIX_FMT_PWC1 - {V4L2_PIX_FMT_PWC1, TRUE}, -#endif -#ifdef V4L2_PIX_FMT_PWC2 - {V4L2_PIX_FMT_PWC2, TRUE}, -#endif -#ifdef V4L2_PIX_FMT_YVYU - {V4L2_PIX_FMT_YVYU, TRUE}, -#endif + {V4L2_PIX_FMT_WNVA, TRUE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_SN9C10X, TRUE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_PWC1, TRUE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_PWC2, TRUE, GST_V4L2_CODEC}, + {V4L2_PIX_FMT_YVYU, TRUE, GST_V4L2_RAW}, }; #define GST_V4L2_FORMAT_COUNT (G_N_ELEMENTS (gst_v4l2_formats)) @@ -1015,16 +802,10 @@ gst_v4l2_object_get_format_from_fourcc (GstV4l2Object * v4l2object, return fmt; /* special case for jpeg */ if (fmt->pixelformat == V4L2_PIX_FMT_MJPEG || - fmt->pixelformat == V4L2_PIX_FMT_JPEG -#ifdef V4L2_PIX_FMT_PJPG - || fmt->pixelformat == V4L2_PIX_FMT_PJPG -#endif - ) { - if (fourcc == V4L2_PIX_FMT_JPEG || fourcc == V4L2_PIX_FMT_MJPEG -#ifdef V4L2_PIX_FMT_PJPG - || fourcc == V4L2_PIX_FMT_PJPG -#endif - ) { + fmt->pixelformat == V4L2_PIX_FMT_JPEG || + fmt->pixelformat == V4L2_PIX_FMT_PJPG) { + if (fourcc == V4L2_PIX_FMT_JPEG || fourcc == V4L2_PIX_FMT_MJPEG || + fourcc == V4L2_PIX_FMT_PJPG) { return fmt; } } @@ -1050,13 +831,6 @@ gst_v4l2_object_get_format_from_fourcc (GstV4l2Object * v4l2object, #define GREY_BASE_RANK 5 #define PWC_BASE_RANK 1 -/* This flag is already used by libv4l2 although - * it was added to the Linux kernel in 2.6.32 - */ -#ifndef V4L2_FMT_FLAG_EMULATED -#define V4L2_FMT_FLAG_EMULATED 0x0002 -#endif - static gint gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt) { @@ -1066,11 +840,9 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt) switch (fourcc) { case V4L2_PIX_FMT_MJPEG: -#ifdef V4L2_PIX_FMT_PJPG case V4L2_PIX_FMT_PJPG: rank = JPEG_BASE_RANK; break; -#endif case V4L2_PIX_FMT_JPEG: rank = JPEG_BASE_RANK + 1; break; @@ -1101,7 +873,10 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt) break; case V4L2_PIX_FMT_NV12: /* 12 Y/CbCr 4:2:0 */ + case V4L2_PIX_FMT_NV12M: /* Same as NV12 */ + case V4L2_PIX_FMT_NV12MT: /* NV12 64x32 tile */ case V4L2_PIX_FMT_NV21: /* 12 Y/CrCb 4:2:0 */ + case V4L2_PIX_FMT_NV21M: /* Same as NV21 */ case V4L2_PIX_FMT_YYUV: /* 16 YUV 4:2:2 */ case V4L2_PIX_FMT_HI240: /* 8 8-bit color */ rank = YUV_ODD_BASE_RANK; @@ -1143,28 +918,20 @@ gst_v4l2_object_format_get_rank (const struct v4l2_fmtdesc *fmt) rank = 0; break; -#ifdef V4L2_PIX_FMT_SBGGR8 case V4L2_PIX_FMT_SBGGR8: rank = BAYER_BASE_RANK; break; -#endif -#ifdef V4L2_PIX_FMT_SN9C10X case V4L2_PIX_FMT_SN9C10X: rank = S910_BASE_RANK; break; -#endif -#ifdef V4L2_PIX_FMT_PWC1 case V4L2_PIX_FMT_PWC1: rank = PWC_BASE_RANK; break; -#endif -#ifdef V4L2_PIX_FMT_PWC2 case V4L2_PIX_FMT_PWC2: rank = PWC_BASE_RANK; break; -#endif default: rank = 0; @@ -1202,7 +969,8 @@ format_cmp_func (gconstpointer a, gconstpointer b) * return value: TRUE on success, FALSE on error ******************************************************/ static gboolean -gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object) +gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object, + enum v4l2_buf_type type) { gint n; struct v4l2_fmtdesc *format; @@ -1214,7 +982,7 @@ gst_v4l2_object_fill_format_list (GstV4l2Object * v4l2object) format = g_new0 (struct v4l2_fmtdesc, 1); format->index = n; - format->type = v4l2object->type; + format->type = type; if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_ENUM_FMT, format) < 0) { if (errno == EINVAL) { @@ -1268,17 +1036,119 @@ failed: } /* - * Get the list of supported capture formats, a list of - * <code>struct v4l2_fmtdesc</code>. - */ + * Get the list of supported capture formats, a list of + * <code>struct v4l2_fmtdesc</code>. + */ static GSList * gst_v4l2_object_get_format_list (GstV4l2Object * v4l2object) { - if (!v4l2object->formats) - gst_v4l2_object_fill_format_list (v4l2object); + if (!v4l2object->formats) { + + /* check usual way */ + gst_v4l2_object_fill_format_list (v4l2object, v4l2object->type); + + /* if our driver supports multi-planar + * and if formats are still empty then we can workaround driver bug + * by also looking up formats as if our device was not supporting + * multiplanar */ + if (!v4l2object->formats) { + switch (v4l2object->type) { + case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: + gst_v4l2_object_fill_format_list (v4l2object, + V4L2_BUF_TYPE_VIDEO_CAPTURE); + break; + + case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: + gst_v4l2_object_fill_format_list (v4l2object, + V4L2_BUF_TYPE_VIDEO_OUTPUT); + break; + + default: + break; + } + } + } return v4l2object->formats; } +static GstVideoFormat +gst_v4l2_object_v4l2fourcc_to_video_format (guint32 fourcc) +{ + GstVideoFormat format; + + switch (fourcc) { + case V4L2_PIX_FMT_GREY: /* 8 Greyscale */ + format = GST_VIDEO_FORMAT_GRAY8; + break; + case V4L2_PIX_FMT_RGB555: + format = GST_VIDEO_FORMAT_RGB15; + break; + case V4L2_PIX_FMT_RGB565: + format = GST_VIDEO_FORMAT_RGB16; + break; + case V4L2_PIX_FMT_RGB24: + format = GST_VIDEO_FORMAT_RGB; + break; + case V4L2_PIX_FMT_BGR24: + format = GST_VIDEO_FORMAT_BGR; + break; + case V4L2_PIX_FMT_RGB32: + format = GST_VIDEO_FORMAT_xRGB; + break; + case V4L2_PIX_FMT_BGR32: + format = GST_VIDEO_FORMAT_BGRx; + break; + case V4L2_PIX_FMT_NV12: + case V4L2_PIX_FMT_NV12M: + format = GST_VIDEO_FORMAT_NV12; + break; + case V4L2_PIX_FMT_NV12MT: + format = GST_VIDEO_FORMAT_NV12_64Z32; + break; + case V4L2_PIX_FMT_NV21: + case V4L2_PIX_FMT_NV21M: + format = GST_VIDEO_FORMAT_NV21; + break; + case V4L2_PIX_FMT_YVU410: + format = GST_VIDEO_FORMAT_YVU9; + break; + case V4L2_PIX_FMT_YUV410: + format = GST_VIDEO_FORMAT_YUV9; + break; + case V4L2_PIX_FMT_YUV420: + format = GST_VIDEO_FORMAT_I420; + break; + case V4L2_PIX_FMT_YUYV: + format = GST_VIDEO_FORMAT_YUY2; + break; + case V4L2_PIX_FMT_YVU420: + format = GST_VIDEO_FORMAT_YV12; + break; + case V4L2_PIX_FMT_UYVY: + format = GST_VIDEO_FORMAT_UYVY; + break; +#if 0 + case V4L2_PIX_FMT_Y41P: + format = GST_VIDEO_FORMAT_Y41P; + break; +#endif + case V4L2_PIX_FMT_YUV411P: + format = GST_VIDEO_FORMAT_Y41B; + break; + case V4L2_PIX_FMT_YUV422P: + format = GST_VIDEO_FORMAT_Y42B; + break; + case V4L2_PIX_FMT_YVYU: + format = GST_VIDEO_FORMAT_YVYU; + break; + default: + format = GST_VIDEO_FORMAT_UNKNOWN; + g_assert_not_reached (); + break; + } + + return format; +} GstStructure * gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) @@ -1287,9 +1157,7 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) switch (fourcc) { case V4L2_PIX_FMT_MJPEG: /* Motion-JPEG */ -#ifdef V4L2_PIX_FMT_PJPG case V4L2_PIX_FMT_PJPG: /* Progressive-JPEG */ -#endif case V4L2_PIX_FMT_JPEG: /* JFIF JPEG */ structure = gst_structure_new_empty ("image/jpeg"); break; @@ -1297,24 +1165,31 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) case V4L2_PIX_FMT_HI240: /* 8 8-bit color */ /* FIXME: get correct fourccs here */ break; -#ifdef V4L2_PIX_FMT_MPEG4 + case V4L2_PIX_FMT_MPEG1: + structure = gst_structure_new ("video/mpeg", + "mpegversion", G_TYPE_INT, 2, NULL); + break; + case V4L2_PIX_FMT_MPEG2: + structure = gst_structure_new ("video/mpeg", + "mpegversion", G_TYPE_INT, 2, NULL); + break; case V4L2_PIX_FMT_MPEG4: structure = gst_structure_new ("video/mpeg", "mpegversion", G_TYPE_INT, 4, "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); break; -#endif -#ifdef V4L2_PIX_FMT_H263 case V4L2_PIX_FMT_H263: structure = gst_structure_new ("video/x-h263", "variant", G_TYPE_STRING, "itu", NULL); break; -#endif -#ifdef V4L2_PIX_FMT_H264 case V4L2_PIX_FMT_H264: /* H.264 */ - structure = gst_structure_new_empty ("video/x-h264"); + structure = gst_structure_new ("video/x-h264", + "stream-format", G_TYPE_STRING, "byte-stream", "alignment", + G_TYPE_STRING, "au", NULL); + break; + case V4L2_PIX_FMT_VP8: + structure = gst_structure_new_empty ("video/x-vp8"); break; -#endif case V4L2_PIX_FMT_RGB332: case V4L2_PIX_FMT_RGB555X: case V4L2_PIX_FMT_RGB565X: @@ -1328,7 +1203,10 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) case V4L2_PIX_FMT_RGB32: case V4L2_PIX_FMT_BGR32: case V4L2_PIX_FMT_NV12: /* 12 Y/CbCr 4:2:0 */ + case V4L2_PIX_FMT_NV12M: + case V4L2_PIX_FMT_NV12MT: case V4L2_PIX_FMT_NV21: /* 12 Y/CrCb 4:2:0 */ + case V4L2_PIX_FMT_NV21M: case V4L2_PIX_FMT_YVU410: case V4L2_PIX_FMT_YUV410: case V4L2_PIX_FMT_YUV420: /* I420/IYUV */ @@ -1339,81 +1217,13 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) case V4L2_PIX_FMT_Y41P: #endif case V4L2_PIX_FMT_YUV422P: -#ifdef V4L2_PIX_FMT_YVYU case V4L2_PIX_FMT_YVYU: -#endif case V4L2_PIX_FMT_YUV411P:{ GstVideoFormat format; - - switch (fourcc) { - case V4L2_PIX_FMT_GREY: /* 8 Greyscale */ - format = GST_VIDEO_FORMAT_GRAY8; - break; - case V4L2_PIX_FMT_RGB555: - format = GST_VIDEO_FORMAT_RGB15; - break; - case V4L2_PIX_FMT_RGB565: - format = GST_VIDEO_FORMAT_RGB16; - break; - case V4L2_PIX_FMT_RGB24: - format = GST_VIDEO_FORMAT_RGB; - break; - case V4L2_PIX_FMT_BGR24: - format = GST_VIDEO_FORMAT_BGR; - break; - case V4L2_PIX_FMT_RGB32: - format = GST_VIDEO_FORMAT_RGBx; - break; - case V4L2_PIX_FMT_BGR32: - format = GST_VIDEO_FORMAT_BGRx; - break; - case V4L2_PIX_FMT_NV12: - format = GST_VIDEO_FORMAT_NV12; - break; - case V4L2_PIX_FMT_NV21: - format = GST_VIDEO_FORMAT_NV21; - break; - case V4L2_PIX_FMT_YVU410: - format = GST_VIDEO_FORMAT_YVU9; - break; - case V4L2_PIX_FMT_YUV410: - format = GST_VIDEO_FORMAT_YUV9; - break; - case V4L2_PIX_FMT_YUV420: - format = GST_VIDEO_FORMAT_I420; - break; - case V4L2_PIX_FMT_YUYV: - format = GST_VIDEO_FORMAT_YUY2; - break; - case V4L2_PIX_FMT_YVU420: - format = GST_VIDEO_FORMAT_YV12; - break; - case V4L2_PIX_FMT_UYVY: - format = GST_VIDEO_FORMAT_UYVY; - break; -#if 0 - case V4L2_PIX_FMT_Y41P: - format = GST_VIDEO_FORMAT_Y41P; - break; -#endif - case V4L2_PIX_FMT_YUV411P: - format = GST_VIDEO_FORMAT_Y41B; - break; - case V4L2_PIX_FMT_YUV422P: - format = GST_VIDEO_FORMAT_Y42B; - break; -#ifdef V4L2_PIX_FMT_YVYU - case V4L2_PIX_FMT_YVYU: - format = GST_VIDEO_FORMAT_YVYU; - break; -#endif - default: - format = GST_VIDEO_FORMAT_UNKNOWN; - g_assert_not_reached (); - break; - } - structure = gst_structure_new ("video/x-raw", - "format", G_TYPE_STRING, gst_video_format_to_string (format), NULL); + format = gst_v4l2_object_v4l2fourcc_to_video_format (fourcc); + if (format != GST_VIDEO_FORMAT_UNKNOWN) + structure = gst_structure_new ("video/x-raw", + "format", G_TYPE_STRING, gst_video_format_to_string (format), NULL); break; } case V4L2_PIX_FMT_DV: @@ -1427,26 +1237,18 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) break; case V4L2_PIX_FMT_WNVA: /* Winnov hw compres */ break; -#ifdef V4L2_PIX_FMT_SBGGR8 case V4L2_PIX_FMT_SBGGR8: structure = gst_structure_new_empty ("video/x-bayer"); break; -#endif -#ifdef V4L2_PIX_FMT_SN9C10X case V4L2_PIX_FMT_SN9C10X: structure = gst_structure_new_empty ("video/x-sonix"); break; -#endif -#ifdef V4L2_PIX_FMT_PWC1 case V4L2_PIX_FMT_PWC1: structure = gst_structure_new_empty ("video/x-pwc1"); break; -#endif -#ifdef V4L2_PIX_FMT_PWC2 case V4L2_PIX_FMT_PWC2: structure = gst_structure_new_empty ("video/x-pwc2"); break; -#endif default: GST_DEBUG ("Unknown fourcc 0x%08x %" GST_FOURCC_FORMAT, fourcc, GST_FOURCC_ARGS (fourcc)); @@ -1457,36 +1259,99 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc) } +static GstCaps * +gst_v4l2_object_get_caps_helper (GstV4L2FormatFlags flags) +{ + GstStructure *structure; + GstCaps *caps; + guint i; + + caps = gst_caps_new_empty (); + for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) { + + if ((gst_v4l2_formats[i].flags & flags) == 0) + continue; + + structure = + gst_v4l2_object_v4l2fourcc_to_structure (gst_v4l2_formats[i].format); + if (structure) { + if (gst_v4l2_formats[i].dimensions) { + gst_structure_set (structure, + "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE, + "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL); + } + gst_caps_append_structure (caps, structure); + } + } + + return gst_caps_simplify (caps); +} GstCaps * gst_v4l2_object_get_all_caps (void) { static GstCaps *caps = NULL; - if (caps == NULL) { - GstStructure *structure; + if (caps == NULL) + caps = gst_v4l2_object_get_caps_helper (GST_V4L2_ALL); - guint i; + return gst_caps_ref (caps); +} - caps = gst_caps_new_empty (); - for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) { - structure = - gst_v4l2_object_v4l2fourcc_to_structure (gst_v4l2_formats[i].format); - if (structure) { - if (gst_v4l2_formats[i].dimensions) { - gst_structure_set (structure, - "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE, - "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE, - "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL); - } - gst_caps_append_structure (caps, structure); - } - } - } +GstCaps * +gst_v4l2_object_get_raw_caps (void) +{ + static GstCaps *caps = NULL; + + if (caps == NULL) + caps = gst_v4l2_object_get_caps_helper (GST_V4L2_RAW); return gst_caps_ref (caps); } +GstCaps * +gst_v4l2_object_get_codec_caps (void) +{ + static GstCaps *caps = NULL; + + if (caps == NULL) + caps = gst_v4l2_object_get_caps_helper (GST_V4L2_CODEC); + + return gst_caps_ref (caps); +} + +/* gst_v4l2_object_choose_fourcc: + * @obj a #GstV4l2Object + * @fourcc_splane The format type in single plane representation + * @fourcc_mplane The format type in multi-plane representation + * @fourcc Set to the first format to try + * @fourcc_alt The alternative format to use, or zero if mplane is not + * supported. Note that if alternate is used, the prefered_non_contiguous + * setting need to be inversed. + * + * Certain format can be stored into multi-planar buffer type with two + * representation. As an example, NV12, which has two planes, can be stored + * into 1 plane of multi-planar buffer sturcture, or two. This function will + * choose the right format to use base on the object settings. + */ +static void +gst_v4l2_object_choose_fourcc (GstV4l2Object * obj, guint32 fourcc_splane, + guint32 fourcc_mplane, guint32 * fourcc, guint32 * fourcc_alt) +{ + if (V4L2_TYPE_IS_MULTIPLANAR (obj->type)) { + if (obj->prefered_non_contiguous) { + *fourcc = fourcc_mplane; + *fourcc_alt = fourcc_splane; + } else { + *fourcc = fourcc_splane; + *fourcc_alt = fourcc_mplane; + } + } else { + *fourcc = fourcc_splane; + *fourcc_alt = 0; + } +} /* collect data for the given caps * @caps: given input caps @@ -1500,7 +1365,7 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, struct v4l2_fmtdesc **format, GstVideoInfo * info) { GstStructure *structure; - guint32 fourcc; + guint32 fourcc, fourcc_alt = 0; const gchar *mimetype; struct v4l2_fmtdesc *fmt; @@ -1540,16 +1405,19 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, fourcc = V4L2_PIX_FMT_YUV422P; break; case GST_VIDEO_FORMAT_NV12: - fourcc = V4L2_PIX_FMT_NV12; + gst_v4l2_object_choose_fourcc (v4l2object, V4L2_PIX_FMT_NV12, + V4L2_PIX_FMT_NV12M, &fourcc, &fourcc_alt); + break; + case GST_VIDEO_FORMAT_NV12_64Z32: + fourcc = V4L2_PIX_FMT_NV12MT; break; case GST_VIDEO_FORMAT_NV21: - fourcc = V4L2_PIX_FMT_NV21; + gst_v4l2_object_choose_fourcc (v4l2object, V4L2_PIX_FMT_NV21, + V4L2_PIX_FMT_NV21M, &fourcc, &fourcc_alt); break; -#ifdef V4L2_PIX_FMT_YVYU case GST_VIDEO_FORMAT_YVYU: fourcc = V4L2_PIX_FMT_YVYU; break; -#endif case GST_VIDEO_FORMAT_RGB15: fourcc = V4L2_PIX_FMT_RGB555; break; @@ -1562,8 +1430,8 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, case GST_VIDEO_FORMAT_BGR: fourcc = V4L2_PIX_FMT_BGR24; break; - case GST_VIDEO_FORMAT_RGBx: - case GST_VIDEO_FORMAT_RGBA: + case GST_VIDEO_FORMAT_xRGB: + case GST_VIDEO_FORMAT_ARGB: fourcc = V4L2_PIX_FMT_RGB32; break; case GST_VIDEO_FORMAT_BGRx: @@ -1582,41 +1450,53 @@ gst_v4l2_object_get_caps_info (GstV4l2Object * v4l2object, GstCaps * caps, fourcc = V4L2_PIX_FMT_DV; } else if (g_str_equal (mimetype, "image/jpeg")) { fourcc = V4L2_PIX_FMT_JPEG; -#ifdef V4L2_PIX_FMT_MPEG4 } else if (g_str_equal (mimetype, "video/mpeg")) { - fourcc = V4L2_PIX_FMT_MPEG4; -#endif -#ifdef V4L2_PIX_FMT_H263 + gint version; + if (gst_structure_get_int (structure, "mpegversion", &version)) { + switch (version) { + case 1: + fourcc = V4L2_PIX_FMT_MPEG1; + break; + case 2: + fourcc = V4L2_PIX_FMT_MPEG2; + break; + case 4: + fourcc = V4L2_PIX_FMT_MPEG4; + break; + default: + break; + } + } } else if (g_str_equal (mimetype, "video/x-h263")) { fourcc = V4L2_PIX_FMT_H263; -#endif -#ifdef V4L2_PIX_FMT_H264 } else if (g_str_equal (mimetype, "video/x-h264")) { fourcc = V4L2_PIX_FMT_H264; -#endif -#ifdef V4L2_PIX_FMT_SBGGR8 + } else if (g_str_equal (mimetype, "video/x-vp8")) { + fourcc = V4L2_PIX_FMT_VP8; } else if (g_str_equal (mimetype, "video/x-bayer")) { fourcc = V4L2_PIX_FMT_SBGGR8; -#endif -#ifdef V4L2_PIX_FMT_SN9C10X } else if (g_str_equal (mimetype, "video/x-sonix")) { fourcc = V4L2_PIX_FMT_SN9C10X; -#endif -#ifdef V4L2_PIX_FMT_PWC1 } else if (g_str_equal (mimetype, "video/x-pwc1")) { fourcc = V4L2_PIX_FMT_PWC1; -#endif -#ifdef V4L2_PIX_FMT_PWC2 } else if (g_str_equal (mimetype, "video/x-pwc2")) { fourcc = V4L2_PIX_FMT_PWC2; } -#endif } if (fourcc == 0) goto unhandled_format; fmt = gst_v4l2_object_get_format_from_fourcc (v4l2object, fourcc); + + if (fmt == NULL && fourcc_alt != 0) { + GST_DEBUG_OBJECT (v4l2object, "No support for %" GST_FOURCC_FORMAT + " trying %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (fourcc), + GST_FOURCC_ARGS (fourcc_alt)); + v4l2object->prefered_non_contiguous = !v4l2object->prefered_non_contiguous; + fmt = gst_v4l2_object_get_format_from_fourcc (v4l2object, fourcc_alt); + } + if (fmt == NULL) goto unsupported_format; @@ -1642,7 +1522,6 @@ unsupported_format: } } - static gboolean gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, guint32 pixelformat, gint * width, gint * height, gboolean * interlaced); @@ -1686,7 +1565,6 @@ cropcap_failed: /* The frame interval enumeration code first appeared in Linux 2.6.19. */ -#ifdef VIDIOC_ENUM_FRAMEINTERVALS static GstStructure * gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object, guint32 pixelformat, @@ -1701,11 +1579,7 @@ gst_v4l2_object_probe_caps_for_format_and_size (GstV4l2Object * v4l2object, gint int_width = width; gint int_height = height; - if (!strcmp ((char *) v4l2object->vcap.driver, "uvcvideo")) { - /* - * UVC devices are never interlaced, and doing VIDIOC_TRY_FMT on them - * causes expensive and slow USB IO, so don't probe them for interlaced - */ + if (v4l2object->never_interlaced) { interlaced = FALSE; } else { /* Interlaced detection using VIDIOC_TRY/S_FMT */ @@ -1881,7 +1755,8 @@ return_data: * value */ gst_structure_set_value (s, "framerate", &rates); g_value_unset (&rates); - } else { + } else if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE || + v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { gst_structure_set (s, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL); } @@ -1904,9 +1779,7 @@ unknown_type: return NULL; } } -#endif /* defined VIDIOC_ENUM_FRAMEINTERVALS */ -#ifdef VIDIOC_ENUM_FRAMESIZES static gint sort_by_frame_size (GstStructure * s1, GstStructure * s2) { @@ -1920,7 +1793,28 @@ sort_by_frame_size (GstStructure * s1, GstStructure * s2) /* I think it's safe to assume that this won't overflow for a while */ return ((w2 * h2) - (w1 * h1)); } -#endif + +static void +gst_v4l2_object_update_and_append (GstV4l2Object * v4l2object, + guint32 format, GstCaps * caps, GstStructure * s) +{ + /* Encoded stream on output buffer need to be parsed */ + if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_OUTPUT || + v4l2object->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { + gint i = 0; + + for (; i < GST_V4L2_FORMAT_COUNT; i++) { + if (format == gst_v4l2_formats[i].format && + gst_v4l2_formats[i].flags & GST_V4L2_CODEC && + !(gst_v4l2_formats[i].flags & GST_V4L2_NO_PARSE)) { + gst_structure_set (s, "parsed", G_TYPE_BOOLEAN, TRUE, NULL); + break; + } + } + } + + gst_caps_append_structure (caps, s); +} static GstCaps * gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object, @@ -1928,22 +1822,23 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object, { GstCaps *ret = gst_caps_new_empty (); GstStructure *tmp; - -#ifdef VIDIOC_ENUM_FRAMESIZES gint fd = v4l2object->video_fd; struct v4l2_frmsizeenum size; GList *results = NULL; guint32 w, h; - if (pixelformat == GST_MAKE_FOURCC ('M', 'P', 'E', 'G')) - return gst_caps_new_simple ("video/mpegts", - "systemstream", G_TYPE_BOOLEAN, TRUE, NULL); + if (pixelformat == GST_MAKE_FOURCC ('M', 'P', 'E', 'G')) { + gst_caps_append_structure (ret, gst_structure_copy (template)); + return ret; + } memset (&size, 0, sizeof (struct v4l2_frmsizeenum)); size.index = 0; size.pixel_format = pixelformat; - GST_DEBUG_OBJECT (v4l2object->element, "Enumerating frame sizes"); + GST_DEBUG_OBJECT (v4l2object->element, + "Enumerating frame sizes for %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (pixelformat)); if (v4l2_ioctl (fd, VIDIOC_ENUM_FRAMESIZES, &size) < 0) goto enum_framesizes_failed; @@ -2026,7 +1921,7 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object, NULL); /* no point using the results list here, since there's only one struct */ - gst_caps_append_structure (ret, tmp); + gst_v4l2_object_update_and_append (v4l2object, pixelformat, ret, tmp); } } else { goto unknown_type; @@ -2039,7 +1934,8 @@ gst_v4l2_object_probe_caps_for_format (GstV4l2Object * v4l2object, * resolution last, since order in caps matters for things like fixation. */ results = g_list_sort (results, (GCompareFunc) sort_by_frame_size); while (results != NULL) { - gst_caps_append_structure (ret, GST_STRUCTURE (results->data)); + gst_v4l2_object_update_and_append (v4l2object, pixelformat, ret, + results->data); results = g_list_delete_link (results, results); } @@ -2074,8 +1970,8 @@ unknown_type: ": %u", GST_FOURCC_ARGS (pixelformat), size.type); goto default_frame_sizes; } + default_frame_sizes: -#endif /* defined VIDIOC_ENUM_FRAMESIZES */ { gint min_w, max_w, min_h, max_h, fix_num = 0, fix_denom = 0; gboolean interlaced; @@ -2119,7 +2015,8 @@ default_frame_sizes: if (fix_num) { gst_structure_set (tmp, "framerate", GST_TYPE_FRACTION, fix_num, fix_denom, NULL); - } else { + } else if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE || + v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { /* if norm can't be used, copy the template framerate */ gst_structure_set (tmp, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL); @@ -2140,8 +2037,7 @@ default_frame_sizes: (interlaced ? "mixed" : "progressive"), NULL); gst_v4l2_object_add_aspect_ratio (v4l2object, tmp); - gst_caps_append_structure (ret, tmp); - + gst_v4l2_object_update_and_append (v4l2object, pixelformat, ret, tmp); return ret; } } @@ -2153,7 +2049,7 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, struct v4l2_format fmt, prevfmt; int fd; int r; - int prevfmt_valid; + int prevfmt_valid = FALSE; gboolean ret = FALSE; g_return_val_if_fail (width != NULL, FALSE); @@ -2165,11 +2061,16 @@ gst_v4l2_object_get_nearest_size (GstV4l2Object * v4l2object, fd = v4l2object->video_fd; + memset (&fmt, 0, sizeof (struct v4l2_format)); + memset (&prevfmt, 0, sizeof (struct v4l2_format)); + /* Some drivers are buggy and will modify the currently set format when processing VIDIOC_TRY_FMT, so we remember what is set at the minute, and will reset it when done. */ - prevfmt.type = v4l2object->type; - prevfmt_valid = (v4l2_ioctl (fd, VIDIOC_G_FMT, &prevfmt) >= 0); + if (!v4l2object->no_initial_format) { + prevfmt.type = v4l2object->type; + prevfmt_valid = (v4l2_ioctl (fd, VIDIOC_G_FMT, &prevfmt) >= 0); + } /* get size delimiters */ memset (&fmt, 0, sizeof (fmt)); @@ -2327,6 +2228,68 @@ no_supported_capture_method: } } +static void +gst_v4l2_object_save_format (GstV4l2Object * v4l2object, + struct v4l2_fmtdesc *fmtdesc, struct v4l2_format *format, + GstVideoInfo * info) +{ + const GstVideoFormatInfo *finfo = info->finfo; + gint i; + + if (V4L2_TYPE_IS_MULTIPLANAR (v4l2object->type)) { + /* figure out the frame layout */ + v4l2object->n_v4l2_planes = MAX (1, format->fmt.pix_mp.num_planes); + v4l2object->sizeimage = 0; + for (i = 0; i < format->fmt.pix_mp.num_planes; i++) { + v4l2object->bytesperline[i] = + format->fmt.pix_mp.plane_fmt[i].bytesperline; + v4l2object->sizeimage += format->fmt.pix_mp.plane_fmt[i].sizeimage; + } + } else { + /* only one plane in non-MPLANE mode */ + v4l2object->n_v4l2_planes = 1; + + /* figure out the frame layout */ + for (i = 0; i < finfo->n_planes; i++) { + guint stride = format->fmt.pix.bytesperline; + + switch (finfo->format) { + case GST_VIDEO_FORMAT_NV12: + case GST_VIDEO_FORMAT_NV21: + case GST_VIDEO_FORMAT_NV16: + case GST_VIDEO_FORMAT_NV24: + v4l2object->bytesperline[i] = (i == 0 ? 1 : 2) * + GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i, stride); + break; + default: + v4l2object->bytesperline[i] = + GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (finfo, i, stride); + break; + } + + GST_DEBUG_OBJECT (v4l2object->element, + "Extrapolated stride for plane %d from %d to %d", i, stride, + v4l2object->bytesperline[i]); + } + + v4l2object->sizeimage = format->fmt.pix.sizeimage; + } + + GST_DEBUG_OBJECT (v4l2object->element, "Got sizeimage %u", + v4l2object->sizeimage); + + v4l2object->info = *info; + v4l2object->fmtdesc = fmtdesc; + + /* if we have a framerate pre-calculate duration */ + if (info->fps_n > 0 && info->fps_d > 0) { + v4l2object->duration = gst_util_uint64_scale_int (GST_SECOND, info->fps_d, + info->fps_n); + } else { + v4l2object->duration = GST_CLOCK_TIME_NONE; + } +} + gboolean gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps) { @@ -2337,7 +2300,11 @@ gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps) guint32 pixelformat; struct v4l2_fmtdesc *fmtdesc; GstVideoInfo info; - gint width, height, fps_n, fps_d, stride; + gint width, height, fps_n, fps_d; + gint i = 0; + + GST_V4L2_CHECK_OPEN (v4l2object); + GST_V4L2_CHECK_NOT_ACTIVE (v4l2object); if (!gst_v4l2_object_get_caps_info (v4l2object, caps, &fmtdesc, &info)) goto invalid_caps; @@ -2347,7 +2314,10 @@ gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps) height = GST_VIDEO_INFO_HEIGHT (&info); fps_n = GST_VIDEO_INFO_FPS_N (&info); fps_d = GST_VIDEO_INFO_FPS_D (&info); - stride = GST_VIDEO_INFO_PLANE_STRIDE (&info, 0); + + /* get bytesperline for each plane */ + for (i = 0; i < GST_VIDEO_INFO_N_PLANES (&info); i++) + v4l2object->bytesperline[i] = GST_VIDEO_INFO_PLANE_STRIDE (&info, i); if (GST_VIDEO_INFO_IS_INTERLACED (&info)) { GST_DEBUG_OBJECT (v4l2object->element, "interlaced video"); @@ -2362,73 +2332,156 @@ gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps) GST_DEBUG_OBJECT (v4l2object->element, "Desired format %dx%d, format " "%" GST_FOURCC_FORMAT " stride: %d", width, height, - GST_FOURCC_ARGS (pixelformat), stride); - - GST_V4L2_CHECK_OPEN (v4l2object); - GST_V4L2_CHECK_NOT_ACTIVE (v4l2object); + GST_FOURCC_ARGS (pixelformat), v4l2object->bytesperline[0]); memset (&format, 0x00, sizeof (struct v4l2_format)); format.type = v4l2object->type; - if (v4l2_ioctl (fd, VIDIOC_G_FMT, &format) < 0) - goto get_fmt_failed; + if (!v4l2object->no_initial_format) { + if (v4l2_ioctl (fd, VIDIOC_G_FMT, &format) < 0) + goto get_fmt_failed; + } + + if (V4L2_TYPE_IS_MULTIPLANAR (v4l2object->type)) { + GST_DEBUG_OBJECT (v4l2object->element, "Got format to %dx%d, format " + "%" GST_FOURCC_FORMAT " colorspace %d, nb planes %d", + format.fmt.pix_mp.width, format.fmt.pix_mp.height, + GST_FOURCC_ARGS (format.fmt.pix.pixelformat), + format.fmt.pix_mp.colorspace, format.fmt.pix_mp.num_planes); + + /* If no size in caps, use configured size */ + if (width == 0 && height == 0) { + width = format.fmt.pix_mp.width; + height = format.fmt.pix_mp.height; + } + + if (format.type != v4l2object->type || + format.fmt.pix_mp.width != width || + format.fmt.pix_mp.height != height || + format.fmt.pix_mp.pixelformat != pixelformat || + format.fmt.pix_mp.field != field) { + /* even in v4l2 multiplanar mode we can work in contiguous mode + * if the device supports it */ + gint n_v4l_planes = GST_VIDEO_INFO_N_PLANES (&info); + + /* if encoded format (GST_VIDEO_INFO_N_PLANES return 0) + * or if contiguous is prefered */ + if (!n_v4l_planes || !v4l2object->prefered_non_contiguous) + n_v4l_planes = 1; + + /* something different, set the format */ + GST_DEBUG_OBJECT (v4l2object->element, "Setting format to %dx%d, format " + "%" GST_FOURCC_FORMAT, width, height, GST_FOURCC_ARGS (pixelformat)); + + format.type = v4l2object->type; + format.fmt.pix_mp.pixelformat = pixelformat; + format.fmt.pix_mp.width = width; + format.fmt.pix_mp.height = height; + format.fmt.pix_mp.field = field; + format.fmt.pix_mp.num_planes = n_v4l_planes; + /* try to ask our prefered stride but it's not a failure + * if not accepted */ + for (i = 0; i < format.fmt.pix_mp.num_planes; i++) + format.fmt.pix_mp.plane_fmt[i].bytesperline = + v4l2object->bytesperline[i]; + + if (GST_VIDEO_INFO_FORMAT (&info) == GST_VIDEO_FORMAT_ENCODED) { + format.fmt.pix_mp.plane_fmt[0].sizeimage = ENCODED_BUFFER_SIZE; + } + + if (v4l2_ioctl (fd, VIDIOC_S_FMT, &format) < 0) + goto set_fmt_failed; - GST_DEBUG_OBJECT (v4l2object->element, "Got format to %dx%d, format " - "%" GST_FOURCC_FORMAT " bytesperline %d, colorspace %d", - format.fmt.pix.width, format.fmt.pix.height, - GST_FOURCC_ARGS (format.fmt.pix.pixelformat), format.fmt.pix.bytesperline, - format.fmt.pix.colorspace); - - /* If no size in caps, use configured size */ - if (width == 0 && height == 0) { - width = format.fmt.pix_mp.width; - height = format.fmt.pix_mp.height; - } - - if (format.type != v4l2object->type || - format.fmt.pix.width != width || - format.fmt.pix.height != height || - format.fmt.pix.pixelformat != pixelformat || - format.fmt.pix.field != field || format.fmt.pix.bytesperline != stride) { - /* something different, set the format */ - GST_DEBUG_OBJECT (v4l2object->element, "Setting format to %dx%d, format " - "%" GST_FOURCC_FORMAT " bytesperline %d", width, height, - GST_FOURCC_ARGS (pixelformat), stride); - - format.type = v4l2object->type; - format.fmt.pix.width = width; - format.fmt.pix.height = height; - format.fmt.pix.pixelformat = pixelformat; - format.fmt.pix.field = field; - /* try to ask our prefered stride */ - format.fmt.pix.bytesperline = stride; - - if (v4l2_ioctl (fd, VIDIOC_S_FMT, &format) < 0) - goto set_fmt_failed; + GST_DEBUG_OBJECT (v4l2object->element, "Got format to %dx%d, format " + "%" GST_FOURCC_FORMAT ", nb planes %d", format.fmt.pix.width, + format.fmt.pix_mp.height, + GST_FOURCC_ARGS (format.fmt.pix.pixelformat), + format.fmt.pix_mp.num_planes); +#ifndef GST_DISABLE_GST_DEBUG + for (i = 0; i < format.fmt.pix_mp.num_planes; i++) + GST_DEBUG_OBJECT (v4l2object->element, " stride %d", + format.fmt.pix_mp.plane_fmt[i].bytesperline); +#endif + + if (format.fmt.pix_mp.pixelformat != pixelformat) + goto invalid_pixelformat; + + /* we set the dimensions just in case but don't validate them afterwards + * For some codecs the dimensions are *not* in the bitstream, IIRC VC1 + * in ASF mode for example. */ + if (info.finfo->format != GST_VIDEO_FORMAT_ENCODED) { + if (format.fmt.pix_mp.width != width + || format.fmt.pix_mp.height != height) + goto invalid_dimensions; + } + + if (format.fmt.pix_mp.num_planes != n_v4l_planes) + goto invalid_planes; + } + + /* figure out the frame layout */ + v4l2object->n_v4l2_planes = format.fmt.pix_mp.num_planes; + v4l2object->sizeimage = 0; + for (i = 0; i < format.fmt.pix_mp.num_planes; i++) { + v4l2object->bytesperline[i] = format.fmt.pix_mp.plane_fmt[i].bytesperline; + v4l2object->sizeimage += format.fmt.pix_mp.plane_fmt[i].sizeimage; + } + } else { GST_DEBUG_OBJECT (v4l2object->element, "Got format to %dx%d, format " - "%" GST_FOURCC_FORMAT " stride %d", format.fmt.pix.width, - format.fmt.pix.height, GST_FOURCC_ARGS (format.fmt.pix.pixelformat), - format.fmt.pix.bytesperline); - - /* we set the dimensions just in case but don't validate them afterwards - * For some codecs the dimensions are *not* in the bitstream, IIRC VC1 - * in ASF mode for example. */ - if (info.finfo->format != GST_VIDEO_FORMAT_ENCODED) { - if (format.fmt.pix.width != width || format.fmt.pix.height != height) - goto invalid_dimensions; + "%" GST_FOURCC_FORMAT " bytesperline %d, colorspace %d", + format.fmt.pix.width, format.fmt.pix.height, + GST_FOURCC_ARGS (format.fmt.pix.pixelformat), + format.fmt.pix.bytesperline, format.fmt.pix.colorspace); + + /* If no size in caps, use configured size */ + if (width == 0 && height == 0) { + width = format.fmt.pix_mp.width; + height = format.fmt.pix_mp.height; } - if (format.fmt.pix.pixelformat != pixelformat) - goto invalid_pixelformat; - } + if (format.type != v4l2object->type || + format.fmt.pix.width != width || + format.fmt.pix.height != height || + format.fmt.pix.pixelformat != pixelformat || + format.fmt.pix.field != field) { + /* something different, set the format */ + GST_DEBUG_OBJECT (v4l2object->element, "Setting format to %dx%d, format " + "%" GST_FOURCC_FORMAT " bytesperline %d", width, height, + GST_FOURCC_ARGS (pixelformat), v4l2object->bytesperline[0]); + + format.type = v4l2object->type; + format.fmt.pix.width = width; + format.fmt.pix.height = height; + format.fmt.pix.pixelformat = pixelformat; + format.fmt.pix.field = field; + /* try to ask our prefered stride */ + format.fmt.pix.bytesperline = v4l2object->bytesperline[0]; + + if (GST_VIDEO_INFO_FORMAT (&info) == GST_VIDEO_FORMAT_ENCODED) { + format.fmt.pix.sizeimage = ENCODED_BUFFER_SIZE; + } - /* figure out the frame layout */ - v4l2object->bytesperline = format.fmt.pix.bytesperline; - v4l2object->sizeimage = format.fmt.pix.sizeimage; + if (v4l2_ioctl (fd, VIDIOC_S_FMT, &format) < 0) + goto set_fmt_failed; - GST_DEBUG_OBJECT (v4l2object->element, "Got sizeimage %u", - v4l2object->sizeimage); + GST_DEBUG_OBJECT (v4l2object->element, "Got format to %dx%d, format " + "%" GST_FOURCC_FORMAT " stride %d", format.fmt.pix.width, + format.fmt.pix.height, GST_FOURCC_ARGS (format.fmt.pix.pixelformat), + format.fmt.pix.bytesperline); + + /* we set the dimensions just in case but don't validate them afterwards + * For some codecs the dimensions are *not* in the bitstream, IIRC VC1 + * in ASF mode for example. */ + if (info.finfo->format != GST_VIDEO_FORMAT_ENCODED) { + if (format.fmt.pix.width != width || format.fmt.pix.height != height) + goto invalid_dimensions; + } + + if (format.fmt.pix.pixelformat != pixelformat) + goto invalid_pixelformat; + } + } /* Is there a reason we require the caller to always specify a framerate? */ GST_DEBUG_OBJECT (v4l2object->element, "Desired framerate: %u/%u", fps_n, @@ -2444,7 +2497,8 @@ gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps) streamparm.parm.capture.timeperframe.denominator; GST_VIDEO_INFO_FPS_D (&info) = streamparm.parm.capture.timeperframe.numerator; - if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { + if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + || v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { GST_DEBUG_OBJECT (v4l2object->element, "Got framerate: %u/%u", streamparm.parm.capture.timeperframe.denominator, streamparm.parm.capture.timeperframe.numerator); @@ -2484,14 +2538,7 @@ gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps) } done: - /* if we have a framerate pre-calculate duration */ - if (fps_n > 0 && fps_d > 0) { - v4l2object->duration = gst_util_uint64_scale_int (GST_SECOND, fps_d, fps_n); - } else { - v4l2object->duration = GST_CLOCK_TIME_NONE; - } - v4l2object->info = info; - v4l2object->fmtdesc = fmtdesc; + gst_v4l2_object_save_format (v4l2object, fmtdesc, &format, &info); /* now configure ther pools */ if (!gst_v4l2_object_setup_pool (v4l2object, caps)) @@ -2552,6 +2599,14 @@ invalid_pixelformat: GST_FOURCC_ARGS (format.fmt.pix.pixelformat))); return FALSE; } +invalid_planes: + { + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, + (_("Device '%s' does support non-contiguous planes"), + v4l2object->videodev), + ("Device wants %d planes", format.fmt.pix_mp.num_planes)); + return FALSE; + } get_parm_failed: { /* it's possible that this call is not supported */ @@ -2577,6 +2632,124 @@ pool_failed: } } +/** + * gst_v4l2_object_setup_format: + * @v4l2object the object + * @info a GstVideoInfo to be filled + * @align a GstVideoAlignment to be filled + * + * Setup the format base on the currently configured format. This is useful in + * decoder or encoder elements where the output format is dictated by the + * input. + * + * Returns: %TRUE on success, %FALSE on failure. + */ +gboolean +gst_v4l2_object_setup_format (GstV4l2Object * v4l2object, + GstVideoInfo * info, GstVideoAlignment * align) +{ + struct v4l2_fmtdesc *fmtdesc; + struct v4l2_format fmt; + struct v4l2_crop crop; + GstVideoFormat format; + guint width, height; + + gst_video_info_init (info); + gst_video_alignment_reset (align); + + memset (&fmt, 0x00, sizeof (struct v4l2_format)); + fmt.type = v4l2object->type; + if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_FMT, &fmt) < 0) + goto get_fmt_failed; + + fmtdesc = gst_v4l2_object_get_format_from_fourcc (v4l2object, + fmt.fmt.pix.pixelformat); + if (fmtdesc == NULL) + goto unsupported_format; + + /* No need to care about mplane, the four first params are the same */ + format = gst_v4l2_object_v4l2fourcc_to_video_format (fmt.fmt.pix.pixelformat); + + /* FIXME do more work in the whole function if + * format is GST_VIDEO_FORMAT_ENCODED + * Also gst_v4l2_object_v4l2fourcc_to_video_format should be improved + * because for now it never returns GST_VIDEO_FORMAT_ENCODED + */ + + /* fails if we do no translate the fmt.pix.pixelformat to GstVideoFormat */ + if (format == GST_VIDEO_FORMAT_UNKNOWN) + goto unsupported_format; + + if (fmt.fmt.pix.width == 0 || fmt.fmt.pix.height == 0) + goto invalid_dimensions; + + width = fmt.fmt.pix.width; + height = fmt.fmt.pix.height; + + memset (&crop, 0, sizeof (struct v4l2_crop)); + crop.type = v4l2object->type; + if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_CROP, &crop) >= 0) { + align->padding_left = crop.c.left; + align->padding_top = crop.c.top; + align->padding_right = width - crop.c.width - crop.c.left; + align->padding_bottom = height - crop.c.height - crop.c.top; + width = crop.c.width; + height = crop.c.height; + } + + gst_video_info_set_format (info, format, width, height); + + switch (fmt.fmt.pix.field) { + case V4L2_FIELD_ANY: + case V4L2_FIELD_NONE: + info->interlace_mode = GST_VIDEO_INTERLACE_MODE_PROGRESSIVE; + break; + case V4L2_FIELD_INTERLACED: + case V4L2_FIELD_INTERLACED_TB: + case V4L2_FIELD_INTERLACED_BT: + info->interlace_mode = GST_VIDEO_INTERLACE_MODE_INTERLEAVED; + break; + default: + goto unsupported_field; + } + + gst_v4l2_object_save_format (v4l2object, fmtdesc, &fmt, info); + + /* Shall we setup the pool ? */ + + return TRUE; + +get_fmt_failed: + { + GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS, + (_("Video device did not provide output format.")), GST_ERROR_SYSTEM); + return FALSE; + } +invalid_dimensions: + { + GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS, + (_("Video device returned invalid dimensions.")), + ("Expected non 0 dimensions, got %dx%d", fmt.fmt.pix.width, + fmt.fmt.pix.height)); + return FALSE; + } +unsupported_field: + { + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, + (_("Video devices uses an unsupported interlacing method.")), + ("V4L2 field type %d not supported", fmt.fmt.pix.field)); + return FALSE; + } +unsupported_format: + { + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS, + (_("Video devices uses an unsupported pixel format.")), + ("V4L2 format %" GST_FOURCC_FORMAT " not supported", + GST_FOURCC_ARGS (fmt.fmt.pix.pixelformat))); + return FALSE; + } +} + gboolean gst_v4l2_object_caps_equal (GstV4l2Object * v4l2object, GstCaps * caps) { @@ -2731,3 +2904,129 @@ gst_v4l2_object_get_caps (GstV4l2Object * v4l2object, GstCaps * filter) return ret; } + +gboolean +gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query) +{ + GstBufferPool *pool; + guint size, min, max; + gboolean update; + struct v4l2_control ctl = { 0, }; + + GST_DEBUG_OBJECT (obj->element, "decide allocation"); + + g_return_val_if_fail (obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE || + obj->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, FALSE); + + if (obj->pool == NULL) { + GstCaps *caps; + gst_query_parse_allocation (query, &caps, NULL); + + if (!gst_v4l2_object_setup_pool (obj, caps)) + goto pool_failed; + } + + if (gst_query_get_n_allocation_pools (query) > 0) { + gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max); + update = TRUE; + } else { + pool = NULL; + min = max = 0; + size = 0; + update = FALSE; + } + + GST_DEBUG_OBJECT (obj->element, "allocation: size:%u min:%u max:%u pool:%" + GST_PTR_FORMAT, size, min, max, pool); + + if (min != 0) { + /* if there is a min-buffers suggestion, use it. We add 1 because we need 1 + * buffer extra to capture while the other two buffers are downstream */ + min += 1; + } else { + min = 2; + } + + /* Certain driver may expose a minimum through controls */ + ctl.id = V4L2_CID_MIN_BUFFERS_FOR_CAPTURE; + if (v4l2_ioctl (obj->video_fd, VIDIOC_G_CTRL, &ctl) >= 0) { + GST_DEBUG_OBJECT (obj->element, "driver require a minimum of %d buffers", + ctl.value); + obj->min_buffers_for_capture = ctl.value; + min += ctl.value; + } + + /* Request a bigger max, if one was suggested but it's too small */ + if (max != 0 && max < min) + max = min; + + /* select a pool */ + switch (obj->mode) { + case GST_V4L2_IO_RW: + if (pool == NULL) { + /* no downstream pool, use our own then */ + GST_DEBUG_OBJECT (obj->element, + "read/write mode: no downstream pool, using our own"); + pool = GST_BUFFER_POOL_CAST (obj->pool); + size = obj->sizeimage; + } else { + /* in READ/WRITE mode, prefer a downstream pool because our own pool + * doesn't help much, we have to write to it as well */ + GST_DEBUG_OBJECT (obj->element, + "read/write mode: using downstream pool"); + /* use the bigest size, when we use our own pool we can't really do any + * other size than what the hardware gives us but for downstream pools + * we can try */ + size = MAX (size, obj->sizeimage); + } + break; + case GST_V4L2_IO_MMAP: + case GST_V4L2_IO_USERPTR: + case GST_V4L2_IO_DMABUF: + /* in streaming mode, prefer our own pool */ + if (pool) + gst_object_unref (pool); + pool = GST_BUFFER_POOL_CAST (obj->pool); + size = obj->sizeimage; + max = 0; + GST_DEBUG_OBJECT (obj->element, + "streaming mode: using our own pool %" GST_PTR_FORMAT, pool); + break; + case GST_V4L2_IO_AUTO: + default: + GST_WARNING_OBJECT (obj->element, "unhandled mode"); + break; + } + + if (pool) { + GstStructure *config; + GstCaps *caps; + + config = gst_buffer_pool_get_config (pool); + gst_buffer_pool_config_get_params (config, &caps, NULL, NULL, NULL); + gst_buffer_pool_config_set_params (config, caps, size, min, max); + + /* if downstream supports video metadata, add this to the pool config */ + if (gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL)) { + GST_DEBUG_OBJECT (pool, "activate Video Meta"); + gst_buffer_pool_config_add_option (config, + GST_BUFFER_POOL_OPTION_VIDEO_META); + } + + gst_buffer_pool_set_config (pool, config); + } + + if (update) + gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max); + else + gst_query_add_allocation_pool (query, pool, size, min, max); + + return TRUE; + +pool_failed: + { + GST_ELEMENT_ERROR (obj->element, RESOURCE, SETTINGS, + (_("Video device could not create buffer pool.")), GST_ERROR_SYSTEM); + return FALSE; + } +} diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h index fbfff925d..c205b2ef4 100644 --- a/sys/v4l2/gstv4l2object.h +++ b/sys/v4l2/gstv4l2object.h @@ -24,30 +24,7 @@ #ifndef __GST_V4L2_OBJECT_H__ #define __GST_V4L2_OBJECT_H__ -/* Because of some really cool feature in video4linux1, also known as - * 'not including sys/types.h and sys/time.h', we had to include it - * ourselves. In all their intelligence, these people decided to fix - * this in the next version (video4linux2) in such a cool way that it - * breaks all compilations of old stuff... - * The real problem is actually that linux/time.h doesn't use proper - * macro checks before defining types like struct timeval. The proper - * fix here is to either fuck the kernel header (which is what we do - * by defining _LINUX_TIME_H, an innocent little hack) or by fixing it - * upstream, which I'll consider doing later on. If you get compiler - * errors here, check your linux/time.h && sys/time.h header setup. - */ -#include <sys/ioctl.h> -#include <sys/types.h> -#ifdef __sun -#include <sys/videodev2.h> -#elif defined(__FreeBSD__) -#include <linux/videodev2.h> -#else /* linux */ -#include <linux/types.h> -#define _LINUX_TIME_H -#define __user -#include <linux/videodev2.h> -#endif +#include "ext/videodev2.h" #include <gst/gst.h> #include <gst/base/gstpushsrc.h> @@ -69,6 +46,9 @@ typedef struct _GstV4l2Xv GstV4l2Xv; G_BEGIN_DECLS +#define GST_TYPE_V4L2_IO_MODE (gst_v4l2_io_mode_get_type ()) +GType gst_v4l2_io_mode_get_type (void); + #define GST_V4L2_OBJECT(obj) (GstV4l2Object *)(obj) typedef enum { @@ -118,10 +98,26 @@ struct _GstV4l2Object { struct v4l2_fmtdesc *fmtdesc; GstVideoInfo info; - guint32 bytesperline; + /* only used if the device supports MPLANE + * nb planes is meaning of v4l2 planes + * the gstreamer equivalent is gst_buffer_n_memory + */ + gint n_v4l2_planes; + + guint32 bytesperline[GST_VIDEO_MAX_PLANES]; guint32 sizeimage; GstClockTime duration; + /* if the MPLANE device support both contiguous and non contiguous + * it allows to select which one we want. But we prefered_non_contiguous + * non contiguous mode. + */ + gboolean prefered_non_contiguous; + + /* This will be set if supported in decide_allocation. It can be used to + * calculate the minimum latency of a m2m decoder. */ + guint32 min_buffers_for_capture; + /* wanted mode */ GstV4l2IOMode req_mode; @@ -162,6 +158,13 @@ struct _GstV4l2Object { GstV4l2GetInOutFunction get_in_out_func; GstV4l2SetInOutFunction set_in_out_func; GstV4l2UpdateFpsFunction update_fps_func; + + /* Quirks */ + /* Skips interlacing probes */ + gboolean never_interlaced; + /* Allow to skip reading initial format through G_FMT. Some devices + * just fails if you don't call S_FMT first. (ex: M2M decoders) */ + gboolean no_initial_format; }; struct _GstV4l2ObjectClassHelper { @@ -171,43 +174,47 @@ struct _GstV4l2ObjectClassHelper { GType gst_v4l2_object_get_type (void); -#define V4L2_STD_OBJECT_PROPS \ - PROP_DEVICE, \ - PROP_DEVICE_NAME, \ - PROP_DEVICE_FD, \ - PROP_FLAGS, \ - PROP_BRIGHTNESS, \ - PROP_CONTRAST, \ - PROP_SATURATION, \ - PROP_HUE, \ - PROP_TV_NORM, \ - PROP_IO_MODE, \ - PROP_EXTRA_CONTROLS, \ - PROP_PIXEL_ASPECT_RATIO, \ +#define V4L2_STD_OBJECT_PROPS \ + PROP_DEVICE, \ + PROP_DEVICE_NAME, \ + PROP_DEVICE_FD, \ + PROP_FLAGS, \ + PROP_BRIGHTNESS, \ + PROP_CONTRAST, \ + PROP_SATURATION, \ + PROP_HUE, \ + PROP_TV_NORM, \ + PROP_IO_MODE, \ + PROP_EXTRA_CONTROLS, \ + PROP_PIXEL_ASPECT_RATIO, \ PROP_FORCE_ASPECT_RATIO /* create/destroy */ -GstV4l2Object * gst_v4l2_object_new (GstElement * element, - enum v4l2_buf_type type, - const char *default_device, - GstV4l2GetInOutFunction get_in_out_func, - GstV4l2SetInOutFunction set_in_out_func, - GstV4l2UpdateFpsFunction update_fps_func); -void gst_v4l2_object_destroy (GstV4l2Object * v4l2object); +GstV4l2Object* gst_v4l2_object_new (GstElement * element, + enum v4l2_buf_type type, + const char * default_device, + GstV4l2GetInOutFunction get_in_out_func, + GstV4l2SetInOutFunction set_in_out_func, + GstV4l2UpdateFpsFunction update_fps_func); + +void gst_v4l2_object_destroy (GstV4l2Object * v4l2object); /* properties */ -void gst_v4l2_object_install_properties_helper (GObjectClass *gobject_class, const char *default_device); +void gst_v4l2_object_install_properties_helper (GObjectClass * gobject_class, + const char * default_device); -gboolean gst_v4l2_object_set_property_helper (GstV4l2Object *v4l2object, - guint prop_id, const GValue * value, - GParamSpec * pspec); -gboolean gst_v4l2_object_get_property_helper (GstV4l2Object *v4l2object, - guint prop_id, GValue * value, - GParamSpec * pspec); +gboolean gst_v4l2_object_set_property_helper (GstV4l2Object * v4l2object, + guint prop_id, + const GValue * value, + GParamSpec * pspec); +gboolean gst_v4l2_object_get_property_helper (GstV4l2Object *v4l2object, + guint prop_id, GValue * value, + GParamSpec * pspec); /* open/close */ -gboolean gst_v4l2_object_open (GstV4l2Object *v4l2object); -gboolean gst_v4l2_object_close (GstV4l2Object *v4l2object); +gboolean gst_v4l2_object_open (GstV4l2Object *v4l2object); +gboolean gst_v4l2_object_open_shared (GstV4l2Object *v4l2object, GstV4l2Object *other); +gboolean gst_v4l2_object_close (GstV4l2Object *v4l2object); /* probing */ #if 0 @@ -226,64 +233,75 @@ GValueArray* gst_v4l2_probe_get_values (GstPropertyProbe * probe, guint pro GstCaps* gst_v4l2_object_get_all_caps (void); -GstStructure* gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc); +GstCaps* gst_v4l2_object_get_raw_caps (void); + +GstCaps* gst_v4l2_object_get_codec_caps (void); -gboolean gst_v4l2_object_set_format (GstV4l2Object *v4l2object, GstCaps * caps); +gboolean gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps); gboolean gst_v4l2_object_caps_equal (GstV4l2Object * v4l2object, GstCaps * caps); -gboolean gst_v4l2_object_unlock (GstV4l2Object *v4l2object); -gboolean gst_v4l2_object_unlock_stop (GstV4l2Object *v4l2object); +gboolean gst_v4l2_object_unlock (GstV4l2Object * v4l2object); +gboolean gst_v4l2_object_unlock_stop (GstV4l2Object * v4l2object); -gboolean gst_v4l2_object_stop (GstV4l2Object *v4l2object); +gboolean gst_v4l2_object_stop (GstV4l2Object * v4l2object); gboolean gst_v4l2_object_copy (GstV4l2Object * v4l2object, - GstBuffer * dest, GstBuffer *src); + GstBuffer * dest, GstBuffer * src); GstCaps * gst_v4l2_object_get_caps (GstV4l2Object * v4l2object, GstCaps * filter); +gboolean gst_v4l2_object_setup_format (GstV4l2Object * v4l2object, + GstVideoInfo * info, + GstVideoAlignment * align); + +gboolean gst_v4l2_object_decide_allocation (GstV4l2Object * v4l2object, + GstQuery * query); + +GstStructure * gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc); + #define GST_IMPLEMENT_V4L2_PROBE_METHODS(Type_Class, interface_as_function) \ \ static void \ interface_as_function ## _probe_probe_property (GstPropertyProbe * probe, \ - guint prop_id, \ + guint prop_id, \ const GParamSpec * pspec) \ { \ Type_Class *this_class = (Type_Class*) G_OBJECT_GET_CLASS (probe); \ gst_v4l2_probe_probe_property (probe, prop_id, pspec, \ - &this_class->v4l2_class_devices); \ + &this_class->v4l2_class_devices); \ } \ \ static gboolean \ interface_as_function ## _probe_needs_probe (GstPropertyProbe * probe, \ - guint prop_id, \ + guint prop_id, \ const GParamSpec * pspec) \ { \ Type_Class *this_class = (Type_Class*) G_OBJECT_GET_CLASS (probe); \ return gst_v4l2_probe_needs_probe (probe, prop_id, pspec, \ - &this_class->v4l2_class_devices); \ + &this_class->v4l2_class_devices); \ } \ \ static GValueArray * \ interface_as_function ## _probe_get_values (GstPropertyProbe * probe, \ - guint prop_id, \ + guint prop_id, \ const GParamSpec * pspec) \ { \ Type_Class *this_class = (Type_Class*) G_OBJECT_GET_CLASS (probe); \ return gst_v4l2_probe_get_values (probe, prop_id, pspec, \ - &this_class->v4l2_class_devices); \ + &this_class->v4l2_class_devices); \ } \ \ -static void \ +static void \ interface_as_function ## _property_probe_interface_init (GstPropertyProbeInterface * iface) \ { \ iface->get_properties = gst_v4l2_probe_get_properties; \ iface->probe_property = interface_as_function ## _probe_probe_property; \ iface->needs_probe = interface_as_function ## _probe_needs_probe; \ - iface->get_values = interface_as_function ## _probe_get_values; \ + iface->get_values = interface_as_function ## _probe_get_values; \ } G_END_DECLS diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c index ef0941216..24f6d3f9d 100644 --- a/sys/v4l2/gstv4l2sink.c +++ b/sys/v4l2/gstv4l2sink.c @@ -57,9 +57,6 @@ #include "gstv4l2colorbalance.h" #include "gstv4l2tuner.h" -#ifdef HAVE_XVIDEO -#include "gstv4l2videooverlay.h" -#endif #include "gstv4l2vidorient.h" #include "gstv4l2sink.h" @@ -89,29 +86,11 @@ enum GST_IMPLEMENT_V4L2_COLOR_BALANCE_METHODS (GstV4l2Sink, gst_v4l2sink); GST_IMPLEMENT_V4L2_TUNER_METHODS (GstV4l2Sink, gst_v4l2sink); -#ifdef HAVE_XVIDEO -GST_IMPLEMENT_V4L2_VIDEO_OVERLAY_METHODS (GstV4l2Sink, gst_v4l2sink); -#endif GST_IMPLEMENT_V4L2_VIDORIENT_METHODS (GstV4l2Sink, gst_v4l2sink); -#ifdef HAVE_XVIDEO -static void gst_v4l2sink_navigation_send_event (GstNavigation * navigation, - GstStructure * structure); -static void -gst_v4l2sink_navigation_init (GstNavigationInterface * iface) -{ - iface->send_event = gst_v4l2sink_navigation_send_event; -} -#endif - #define gst_v4l2sink_parent_class parent_class G_DEFINE_TYPE_WITH_CODE (GstV4l2Sink, gst_v4l2sink, GST_TYPE_VIDEO_SINK, G_IMPLEMENT_INTERFACE (GST_TYPE_TUNER, gst_v4l2sink_tuner_interface_init); -#ifdef HAVE_XVIDEO - G_IMPLEMENT_INTERFACE (GST_TYPE_VIDEO_OVERLAY, - gst_v4l2sink_video_overlay_interface_init); - G_IMPLEMENT_INTERFACE (GST_TYPE_NAVIGATION, gst_v4l2sink_navigation_init); -#endif G_IMPLEMENT_INTERFACE (GST_TYPE_COLOR_BALANCE, gst_v4l2sink_color_balance_interface_init); G_IMPLEMENT_INTERFACE (GST_TYPE_VIDEO_ORIENTATION, @@ -526,10 +505,6 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps) gst_v4l2sink_sync_overlay_fields (v4l2sink); gst_v4l2sink_sync_crop_fields (v4l2sink); -#ifdef HAVE_XVIDEO - gst_v4l2_video_overlay_prepare_window_handle (v4l2sink->v4l2object, TRUE); -#endif - GST_INFO_OBJECT (v4l2sink, "outputting buffers via mmap()"); v4l2sink->video_width = GST_V4L2_WIDTH (v4l2sink->v4l2object); @@ -643,47 +618,3 @@ not_negotiated: return GST_FLOW_NOT_NEGOTIATED; } } - -#ifdef HAVE_XVIDEO -static void -gst_v4l2sink_navigation_send_event (GstNavigation * navigation, - GstStructure * structure) -{ - GstV4l2Sink *v4l2sink = GST_V4L2SINK (navigation); - GstV4l2Xv *xv = v4l2sink->v4l2object->xv; - GstPad *peer; - - if (!xv) - return; - - if ((peer = gst_pad_get_peer (GST_VIDEO_SINK_PAD (v4l2sink)))) { - GstVideoRectangle rect; - gdouble x, y, xscale = 1.0, yscale = 1.0; - - gst_v4l2_video_overlay_get_render_rect (v4l2sink->v4l2object, &rect); - - /* We calculate scaling using the original video frames geometry to - * include pixel aspect ratio scaling. - */ - xscale = (gdouble) v4l2sink->video_width / rect.w; - yscale = (gdouble) v4l2sink->video_height / rect.h; - - /* Converting pointer coordinates to the non scaled geometry */ - if (gst_structure_get_double (structure, "pointer_x", &x)) { - x = MIN (x, rect.x + rect.w); - x = MAX (x - rect.x, 0); - gst_structure_set (structure, "pointer_x", G_TYPE_DOUBLE, - (gdouble) x * xscale, NULL); - } - if (gst_structure_get_double (structure, "pointer_y", &y)) { - y = MIN (y, rect.y + rect.h); - y = MAX (y - rect.y, 0); - gst_structure_set (structure, "pointer_y", G_TYPE_DOUBLE, - (gdouble) y * yscale, NULL); - } - - gst_pad_send_event (peer, gst_event_new_navigation (structure)); - gst_object_unref (peer); - } -} -#endif diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index f0fcb353d..e388a3f3c 100644 --- a/sys/v4l2/gstv4l2src.c +++ b/sys/v4l2/gstv4l2src.c @@ -44,8 +44,6 @@ #include <config.h> #endif -#undef HAVE_XVIDEO - #include <string.h> #include <sys/time.h> #include <unistd.h> @@ -57,9 +55,6 @@ #include "gstv4l2colorbalance.h" #include "gstv4l2tuner.h" -#ifdef HAVE_XVIDEO -#include "gstv4l2xoverlay.h" -#endif #include "gstv4l2vidorient.h" #include "gst/gst-i18n-plugin.h" @@ -87,9 +82,6 @@ static guint gst_v4l2_signals[LAST_SIGNAL] = { 0 }; GST_IMPLEMENT_V4L2_COLOR_BALANCE_METHODS (GstV4l2Src, gst_v4l2src); GST_IMPLEMENT_V4L2_TUNER_METHODS (GstV4l2Src, gst_v4l2src); -#ifdef HAVE_XVIDEO -GST_IMPLEMENT_V4L2_XOVERLAY_METHODS (GstV4l2Src, gst_v4l2src); -#endif GST_IMPLEMENT_V4L2_VIDORIENT_METHODS (GstV4l2Src, gst_v4l2src); static void gst_v4l2src_uri_handler_init (gpointer g_iface, @@ -99,11 +91,6 @@ static void gst_v4l2src_uri_handler_init (gpointer g_iface, G_DEFINE_TYPE_WITH_CODE (GstV4l2Src, gst_v4l2src, GST_TYPE_PUSH_SRC, G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER, gst_v4l2src_uri_handler_init); G_IMPLEMENT_INTERFACE (GST_TYPE_TUNER, gst_v4l2src_tuner_interface_init); -#ifdef HAVE_XVIDEO - /* FIXME: does GstXOverlay for v4l2src make sense in a GStreamer context? */ - G_IMPLEMENT_INTERFACE (GST_TYPE_X_OVERLAY, - gst_v4l2src_xoverlay_interface_init); -#endif G_IMPLEMENT_INTERFACE (GST_TYPE_COLOR_BALANCE, gst_v4l2src_color_balance_interface_init); G_IMPLEMENT_INTERFACE (GST_TYPE_VIDEO_ORIENTATION, @@ -471,94 +458,13 @@ gst_v4l2src_set_caps (GstBaseSrc * src, GstCaps * caps) static gboolean gst_v4l2src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query) { - GstV4l2Src *src; - GstV4l2Object *obj; - GstBufferPool *pool; - guint size, min, max; - gboolean update; - - src = GST_V4L2SRC (bsrc); - obj = src->v4l2object; - - if (gst_query_get_n_allocation_pools (query) > 0) { - gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max); - update = TRUE; - } else { - pool = NULL; - min = max = 0; - size = 0; - update = FALSE; - } + GstV4l2Src *src = GST_V4L2SRC (bsrc); + gboolean ret = FALSE; - GST_DEBUG_OBJECT (src, "allocation: size:%u min:%u max:%u pool:%" - GST_PTR_FORMAT, size, min, max, pool); + if (gst_v4l2_object_decide_allocation (src->v4l2object, query)) + ret = GST_BASE_SRC_CLASS (parent_class)->decide_allocation (bsrc, query); - if (min != 0) { - /* if there is a min-buffers suggestion, use it. We add 1 because we need 1 - * buffer extra to capture while the other two buffers are downstream */ - min += 1; - } else { - min = 2; - } - - /* select a pool */ - switch (obj->mode) { - case GST_V4L2_IO_RW: - if (pool == NULL) { - /* no downstream pool, use our own then */ - GST_DEBUG_OBJECT (src, - "read/write mode: no downstream pool, using our own"); - pool = GST_BUFFER_POOL_CAST (obj->pool); - size = obj->sizeimage; - } else { - /* in READ/WRITE mode, prefer a downstream pool because our own pool - * doesn't help much, we have to write to it as well */ - GST_DEBUG_OBJECT (src, "read/write mode: using downstream pool"); - /* use the bigest size, when we use our own pool we can't really do any - * other size than what the hardware gives us but for downstream pools - * we can try */ - size = MAX (size, obj->sizeimage); - } - break; - case GST_V4L2_IO_MMAP: - case GST_V4L2_IO_USERPTR: - case GST_V4L2_IO_DMABUF: - /* in streaming mode, prefer our own pool */ - pool = GST_BUFFER_POOL_CAST (obj->pool); - size = obj->sizeimage; - GST_DEBUG_OBJECT (src, - "streaming mode: using our own pool %" GST_PTR_FORMAT, pool); - break; - case GST_V4L2_IO_AUTO: - default: - GST_WARNING_OBJECT (src, "unhandled mode"); - break; - } - - if (pool) { - GstStructure *config; - GstCaps *caps; - - config = gst_buffer_pool_get_config (pool); - gst_buffer_pool_config_get_params (config, &caps, NULL, NULL, NULL); - gst_buffer_pool_config_set_params (config, caps, size, min, max); - - /* if downstream supports video metadata, add this to the pool config */ - if (gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL)) { - GST_DEBUG_OBJECT (pool, "activate Video Meta"); - gst_buffer_pool_config_add_option (config, - GST_BUFFER_POOL_OPTION_VIDEO_META); - } - - gst_buffer_pool_set_config (pool, config); - } - - if (update) - gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max); - else - gst_query_add_allocation_pool (query, pool, size, min, max); - - return GST_BASE_SRC_CLASS (parent_class)->decide_allocation (bsrc, query); + return ret; } static gboolean diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c new file mode 100644 index 000000000..50a51104f --- /dev/null +++ b/sys/v4l2/gstv4l2videodec.c @@ -0,0 +1,945 @@ +/* + * Copyright (C) 2014 Collabora Ltd. + * Author: Nicolas Dufresne <nicolas.dufresne@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 <sys/stat.h> +#include <fcntl.h> +#include <errno.h> +#include <unistd.h> +#include <string.h> + +#include "gstv4l2videodec.h" +#include "v4l2_calls.h" + +#include <string.h> +#include <gst/gst-i18n-plugin.h> + +#define DEFAULT_PROP_DEVICE "/dev/video0" + +#define V4L2_VIDEO_DEC_QUARK \ + g_quark_from_static_string("gst-v4l2-video-dec-info") + +GST_DEBUG_CATEGORY_STATIC (gst_v4l2_video_dec_debug); +#define GST_CAT_DEFAULT gst_v4l2_video_dec_debug + +static gboolean gst_v4l2_video_dec_flush (GstVideoDecoder * decoder); + +typedef struct +{ + gchar *device; + GstCaps *sink_caps; + GstCaps *src_caps; +} Gstv4l2VideoDecQData; + +enum +{ + PROP_0, + V4L2_STD_OBJECT_PROPS, + PROP_CAPTURE_IO_MODE, +}; + +static void gst_v4l2_video_dec_class_init (GstV4l2VideoDecClass * klass); +static void gst_v4l2_video_dec_init (GstV4l2VideoDec * self, gpointer g_class); +static void gst_v4l2_video_dec_base_init (gpointer g_class); + +static GstVideoDecoderClass *parent_class = NULL; + +GType +gst_v4l2_video_dec_get_type (void) +{ + static volatile gsize type = 0; + + if (g_once_init_enter (&type)) { + GType _type; + static const GTypeInfo info = { + sizeof (GstV4l2VideoDecClass), + gst_v4l2_video_dec_base_init, + NULL, + (GClassInitFunc) gst_v4l2_video_dec_class_init, + NULL, + NULL, + sizeof (GstV4l2VideoDec), + 0, + (GInstanceInitFunc) gst_v4l2_video_dec_init, + NULL + }; + + _type = g_type_register_static (GST_TYPE_VIDEO_DECODER, "GstV4l2VideoDec", + &info, 0); + + g_once_init_leave (&type, _type); + } + return type; +} + +static void +gst_v4l2_video_dec_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (object); + + switch (prop_id) { + /* Split IO mode so output is configure through 'io-mode' and capture + * through 'capture-io-mode' */ + case PROP_IO_MODE: + gst_v4l2_object_set_property_helper (self->v4l2output, prop_id, value, + pspec); + break; + case PROP_CAPTURE_IO_MODE: + gst_v4l2_object_set_property_helper (self->v4l2capture, prop_id, value, + pspec); + break; + + case PROP_DEVICE: + gst_v4l2_object_set_property_helper (self->v4l2output, prop_id, value, + pspec); + gst_v4l2_object_set_property_helper (self->v4l2capture, prop_id, value, + pspec); + break; + + /* By default, only set on output */ + default: + if (!gst_v4l2_object_set_property_helper (self->v4l2output, + prop_id, value, pspec)) { + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } + break; + } +} + +static void +gst_v4l2_video_dec_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (object); + + switch (prop_id) { + case PROP_IO_MODE: + gst_v4l2_object_get_property_helper (self->v4l2output, prop_id, value, + pspec); + break; + case PROP_CAPTURE_IO_MODE: + gst_v4l2_object_get_property_helper (self->v4l2output, PROP_IO_MODE, + value, pspec); + break; + + /* By default read from output */ + default: + if (!gst_v4l2_object_get_property_helper (self->v4l2output, + prop_id, value, pspec)) { + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } + break; + } +} + +static gboolean +gst_v4l2_video_dec_open (GstVideoDecoder * decoder) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + GST_DEBUG_OBJECT (self, "Opening"); + + if (!gst_v4l2_object_open (self->v4l2output)) + goto failure; + + if (!gst_v4l2_object_open_shared (self->v4l2capture, self->v4l2output)) + goto failure; + + self->probed_sinkcaps = gst_v4l2_object_get_caps (self->v4l2output, + gst_v4l2_object_get_codec_caps ()); + + if (gst_caps_is_empty (self->probed_sinkcaps)) + goto no_encoded_format; + + self->probed_srccaps = gst_v4l2_object_get_caps (self->v4l2capture, + gst_v4l2_object_get_raw_caps ()); + + if (gst_caps_is_empty (self->probed_srccaps)) + goto no_raw_format; + + return TRUE; + +no_encoded_format: + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + (_("Encoder on device %s has no supported input format"), + self->v4l2output->videodev), (NULL)); + goto failure; + + +no_raw_format: + GST_ELEMENT_ERROR (self, RESOURCE, SETTINGS, + (_("Encoder on device %s has no supported output format"), + self->v4l2output->videodev), (NULL)); + goto failure; + +failure: + if (GST_V4L2_IS_OPEN (self->v4l2output)) + gst_v4l2_object_close (self->v4l2output); + + if (GST_V4L2_IS_OPEN (self->v4l2capture)) + gst_v4l2_object_close (self->v4l2capture); + + gst_caps_replace (&self->probed_srccaps, NULL); + gst_caps_replace (&self->probed_sinkcaps, NULL); + + return FALSE; +} + +static gboolean +gst_v4l2_video_dec_close (GstVideoDecoder * decoder) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + GST_DEBUG_OBJECT (self, "Closing"); + + gst_v4l2_object_close (self->v4l2output); + gst_v4l2_object_close (self->v4l2capture); + gst_caps_replace (&self->probed_srccaps, NULL); + gst_caps_replace (&self->probed_sinkcaps, NULL); + + return TRUE; +} + +static gboolean +gst_v4l2_video_dec_start (GstVideoDecoder * decoder) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + GST_DEBUG_OBJECT (self, "Starting"); + + gst_v4l2_object_unlock (self->v4l2output); + g_atomic_int_set (&self->active, TRUE); + self->output_flow = GST_FLOW_OK; + + return TRUE; +} + +static gboolean +gst_v4l2_video_dec_stop (GstVideoDecoder * decoder) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + GST_DEBUG_OBJECT (self, "Stopping"); + + /* Should have been flushed already */ + g_assert (g_atomic_int_get (&self->active) == FALSE); + g_assert (g_atomic_int_get (&self->processing) == FALSE); + + gst_v4l2_object_stop (self->v4l2output); + gst_v4l2_object_stop (self->v4l2capture); + + if (self->input_state) { + gst_video_codec_state_unref (self->input_state); + self->input_state = NULL; + } + + GST_DEBUG_OBJECT (self, "Stopped"); + + return TRUE; +} + +static gboolean +gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder, + GstVideoCodecState * state) +{ + gboolean ret = TRUE; + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + GST_DEBUG_OBJECT (self, "Setting format: %" GST_PTR_FORMAT, state->caps); + + if (self->input_state) { + if (gst_v4l2_object_caps_equal (self->v4l2output, state->caps)) { + GST_DEBUG_OBJECT (self, "Compatible caps"); + goto done; + } + gst_video_codec_state_unref (self->input_state); + + /* FIXME we probably need to do more work if pools are active */ + } + + ret = gst_v4l2_object_set_format (self->v4l2output, state->caps); + + if (ret) + self->input_state = gst_video_codec_state_ref (state); + +done: + return ret; +} + +static gboolean +gst_v4l2_video_dec_flush (GstVideoDecoder * decoder) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + GST_DEBUG_OBJECT (self, "Flushing"); + + /* Wait for capture thread to stop */ + gst_pad_stop_task (decoder->srcpad); + self->output_flow = GST_FLOW_OK; + + gst_v4l2_buffer_pool_flush (GST_V4L2_BUFFER_POOL (self->v4l2output->pool)); + gst_v4l2_buffer_pool_flush (GST_V4L2_BUFFER_POOL (self->v4l2capture->pool)); + + /* Output will remain flushing until new frame comes in */ + gst_v4l2_object_unlock_stop (self->v4l2capture); + + return TRUE; +} + +static gboolean +gst_v4l2_video_dec_negotiate (GstVideoDecoder * decoder) +{ + return GST_VIDEO_DECODER_CLASS (parent_class)->negotiate (decoder); +} + +static GstFlowReturn +gst_v4l2_video_dec_finish (GstVideoDecoder * decoder) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + GstFlowReturn ret = GST_FLOW_OK; + GstBuffer *buffer; + + if (!self->input_state) + goto done; + + GST_DEBUG_OBJECT (self, "Finishing decoding"); + + /* Keep queuing empty buffers until the processing thread has stopped, + * _pool_process() will return FLUSHING when that happened */ + GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); + while (ret == GST_FLOW_OK) { + buffer = gst_buffer_new (); + ret = + gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL (self-> + v4l2output->pool), buffer); + gst_buffer_unref (buffer); + } + GST_VIDEO_DECODER_STREAM_LOCK (decoder); + + g_assert (g_atomic_int_get (&self->processing) == FALSE); + + if (ret == GST_FLOW_FLUSHING) + ret = self->output_flow; + + GST_DEBUG_OBJECT (decoder, "Done draining buffers"); + +done: + return ret; +} + +static GstVideoCodecFrame * +gst_v4l2_video_dec_get_oldest_frame (GstVideoDecoder * decoder) +{ + GstVideoCodecFrame *frame = NULL; + GList *frames, *l; + gint count = 0; + + frames = gst_video_decoder_get_frames (decoder); + + for (l = frames; l != NULL; l = l->next) { + GstVideoCodecFrame *f = l->data; + + if (!frame || frame->pts > f->pts) + frame = f; + + count++; + } + + if (frame) { + GST_LOG_OBJECT (decoder, + "Oldest frame is %d %" GST_TIME_FORMAT " and %d frames left", + frame->system_frame_number, GST_TIME_ARGS (frame->pts), count - 1); + gst_video_codec_frame_ref (frame); + } + + g_list_free_full (frames, (GDestroyNotify) gst_video_codec_frame_unref); + + return frame; +} + +static void +gst_v4l2_video_dec_loop (GstVideoDecoder * decoder) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + GstBufferPool *pool; + GstVideoCodecFrame *frame; + GstBuffer *buffer = NULL; + GstFlowReturn ret; + + GST_LOG_OBJECT (decoder, "Allocate output buffer"); + + /* We cannot use the base class allotate helper since it taking the internal + * stream lock. we know that the acquire may need to poll until more frames + * comes in and holding this lock would prevent that. + */ + pool = gst_video_decoder_get_buffer_pool (decoder); + ret = gst_buffer_pool_acquire_buffer (pool, &buffer, NULL); + g_object_unref (pool); + + if (ret != GST_FLOW_OK) + goto beach; + + /* Check if buffer isn't the last one */ + if (gst_buffer_get_size (buffer) == 0) + goto beach; + + GST_LOG_OBJECT (decoder, "Process output buffer"); + ret = + gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL (self-> + v4l2capture->pool), buffer); + + if (ret != GST_FLOW_OK) + goto beach; + + frame = gst_v4l2_video_dec_get_oldest_frame (decoder); + + if (frame) { + frame->output_buffer = buffer; + buffer = NULL; + ret = gst_video_decoder_finish_frame (decoder, frame); + + if (ret != GST_FLOW_OK) + goto beach; + } else { + GST_WARNING_OBJECT (decoder, "Decoder is producing too many buffers"); + gst_buffer_unref (buffer); + } + + return; + +beach: + GST_DEBUG_OBJECT (decoder, "Leaving output thread"); + + gst_buffer_replace (&buffer, NULL); + self->output_flow = ret; + g_atomic_int_set (&self->processing, FALSE); + gst_v4l2_object_unlock (self->v4l2output); + gst_pad_pause_task (decoder->srcpad); +} + +static GstFlowReturn +gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder, + GstVideoCodecFrame * frame) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + GstFlowReturn ret = GST_FLOW_OK; + + GST_DEBUG_OBJECT (self, "Handling frame %d", frame->system_frame_number); + + if (G_UNLIKELY (!g_atomic_int_get (&self->active))) + goto flushing; + + if (G_UNLIKELY (!GST_V4L2_IS_ACTIVE (self->v4l2output))) { + if (!gst_v4l2_object_set_format (self->v4l2output, self->input_state->caps)) + goto not_negotiated; + } + + if (G_UNLIKELY (!GST_V4L2_IS_ACTIVE (self->v4l2capture))) { + GstVideoInfo info; + GstVideoCodecState *output_state; + GstBuffer *codec_data; + + GST_DEBUG_OBJECT (self, "Sending header"); + + codec_data = self->input_state->codec_data; + + /* We are running in byte-stream mode, so we don't know the headers, but + * we need to send something, otherwise the decoder will refuse to + * intialize. + */ + if (codec_data) { + gst_buffer_ref (codec_data); + } else { + codec_data = frame->input_buffer; + frame->input_buffer = NULL; + } + + GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); + gst_v4l2_object_unlock_stop (self->v4l2output); + ret = + gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL (self-> + v4l2output->pool), codec_data); + gst_v4l2_object_unlock (self->v4l2output); + GST_VIDEO_DECODER_STREAM_LOCK (decoder); + + gst_buffer_unref (codec_data); + + if (!gst_v4l2_object_setup_format (self->v4l2capture, &info, &self->align)) + goto not_negotiated; + + output_state = gst_video_decoder_set_output_state (decoder, + info.finfo->format, info.width, info.height, self->input_state); + + /* Copy the rest of the information, there might be more in the future */ + output_state->info.interlace_mode = info.interlace_mode; + gst_video_codec_state_unref (output_state); + + if (!gst_video_decoder_negotiate (decoder)) { + if (GST_PAD_IS_FLUSHING (decoder->srcpad)) + goto flushing; + else + goto not_negotiated; + } + } + + if (g_atomic_int_get (&self->processing) == FALSE) { + /* It possible that the processing thread stopped due to an error */ + if (self->output_flow != GST_FLOW_OK) { + GST_DEBUG_OBJECT (self, "Processing loop stopped with error, leaving"); + ret = self->output_flow; + goto drop; + } + + GST_DEBUG_OBJECT (self, "Starting decoding thread"); + + /* Enable processing input */ + gst_v4l2_object_unlock_stop (self->v4l2output); + + /* Start the processing task, when it quits, the task will disable input + * processing to unlock input if draining, or prevent potential block */ + g_atomic_int_set (&self->processing, TRUE); + gst_pad_start_task (decoder->srcpad, + (GstTaskFunction) gst_v4l2_video_dec_loop, self, NULL); + } + + if (frame->input_buffer) { + GST_VIDEO_DECODER_STREAM_UNLOCK (decoder); + ret = + gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL (self->v4l2output-> + pool), frame->input_buffer); + GST_VIDEO_DECODER_STREAM_LOCK (decoder); + + if (ret == GST_FLOW_FLUSHING) { + if (g_atomic_int_get (&self->processing) == FALSE) + ret = self->output_flow; + } + + /* No need to keep input arround */ + gst_buffer_replace (&frame->input_buffer, NULL); + } + + gst_video_codec_frame_unref (frame); + return ret; + + /* ERRORS */ +not_negotiated: + { + GST_ERROR_OBJECT (self, "not negotiated"); + ret = GST_FLOW_NOT_NEGOTIATED; + goto drop; + } +flushing: + { + ret = GST_FLOW_FLUSHING; + goto drop; + } +drop: + { + gst_video_decoder_drop_frame (decoder, frame); + return ret; + } +} + +static gboolean +gst_v4l2_video_dec_decide_allocation (GstVideoDecoder * decoder, + GstQuery * query) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + GstClockTime latency; + gboolean ret = FALSE; + + if (gst_v4l2_object_decide_allocation (self->v4l2capture, query)) + ret = GST_VIDEO_DECODER_CLASS (parent_class)->decide_allocation (decoder, + query); + + latency = self->v4l2capture->min_buffers_for_capture * + self->v4l2capture->duration; + gst_video_decoder_set_latency (decoder, latency, latency); + + return ret; +} + +static gboolean +gst_v4l2_video_dec_src_query (GstVideoDecoder * decoder, GstQuery * query) +{ + gboolean ret = TRUE; + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS:{ + GstCaps *filter, *result = NULL; + gst_query_parse_caps (query, &filter); + + if (self->probed_srccaps) + result = gst_caps_ref (self->probed_srccaps); + else + result = gst_v4l2_object_get_raw_caps (); + + if (filter) { + GstCaps *tmp = result; + result = + gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (tmp); + } + + GST_DEBUG_OBJECT (self, "Returning src caps %" GST_PTR_FORMAT, result); + + gst_query_set_caps_result (query, result); + gst_caps_unref (result); + break; + } + + default: + ret = GST_VIDEO_DECODER_CLASS (parent_class)->src_query (decoder, query); + break; + } + + return ret; +} + +static gboolean +gst_v4l2_video_dec_sink_query (GstVideoDecoder * decoder, GstQuery * query) +{ + gboolean ret = TRUE; + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CAPS:{ + GstCaps *filter, *result = NULL; + gst_query_parse_caps (query, &filter); + + if (self->probed_sinkcaps) + result = gst_caps_ref (self->probed_sinkcaps); + else + result = gst_v4l2_object_get_codec_caps (); + + if (filter) { + GstCaps *tmp = result; + result = + gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST); + gst_caps_unref (tmp); + } + + GST_DEBUG_OBJECT (self, "Returning sink caps %" GST_PTR_FORMAT, result); + + gst_query_set_caps_result (query, result); + gst_caps_unref (result); + break; + } + + default: + ret = GST_VIDEO_DECODER_CLASS (parent_class)->sink_query (decoder, query); + break; + } + + return ret; +} + +static gboolean +gst_v4l2_video_dec_sink_event (GstVideoDecoder * decoder, GstEvent * event) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + gst_v4l2_object_unlock (self->v4l2output); + gst_v4l2_object_unlock (self->v4l2capture); + default: + break; + } + + return GST_VIDEO_DECODER_CLASS (parent_class)->sink_event (decoder, event); +} + +static GstStateChangeReturn +gst_v4l2_video_dec_change_state (GstElement * element, + GstStateChange transition) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (element); + + if (transition == GST_STATE_CHANGE_PAUSED_TO_READY) { + g_atomic_int_set (&self->active, FALSE); + gst_v4l2_object_unlock (self->v4l2output); + gst_v4l2_object_unlock (self->v4l2capture); + } + + return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); +} + +static void +gst_v4l2_video_dec_dispose (GObject * object) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (object); + + gst_caps_replace (&self->probed_sinkcaps, NULL); + gst_caps_replace (&self->probed_srccaps, NULL); + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +static void +gst_v4l2_video_dec_finalize (GObject * object) +{ + GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (object); + + gst_v4l2_object_destroy (self->v4l2capture); + gst_v4l2_object_destroy (self->v4l2output); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_v4l2_video_dec_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + Gstv4l2VideoDecQData *qdata; + GstPadTemplate *templ; + + qdata = g_type_get_qdata (G_TYPE_FROM_CLASS (g_class), V4L2_VIDEO_DEC_QUARK); + if (!qdata) + return; + + templ = + gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, + qdata->sink_caps); + gst_element_class_add_pad_template (element_class, templ); + + templ = + gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, + qdata->src_caps); + gst_element_class_add_pad_template (element_class, templ); +} + +static void +gst_v4l2_video_dec_init (GstV4l2VideoDec * self, gpointer g_class) +{ + GstVideoDecoder *decoder = (GstVideoDecoder *) self; + Gstv4l2VideoDecQData *qdata; + + qdata = g_type_get_qdata (G_TYPE_FROM_CLASS (g_class), V4L2_VIDEO_DEC_QUARK); + if (!qdata) + return; + + gst_video_decoder_set_packetized (decoder, TRUE); + + self->v4l2output = gst_v4l2_object_new (GST_ELEMENT (self), + V4L2_BUF_TYPE_VIDEO_OUTPUT, qdata->device, + gst_v4l2_get_output, gst_v4l2_set_output, NULL); + self->v4l2output->no_initial_format = TRUE; + self->v4l2output->keep_aspect = FALSE; + + self->v4l2capture = gst_v4l2_object_new (GST_ELEMENT (self), + V4L2_BUF_TYPE_VIDEO_CAPTURE, qdata->device, + gst_v4l2_get_input, gst_v4l2_set_input, NULL); + self->v4l2capture->no_initial_format = TRUE; + self->v4l2output->keep_aspect = FALSE; + + g_object_set (self, "device", qdata->device, NULL); +} + +static void +gst_v4l2_video_dec_class_init (GstV4l2VideoDecClass * klass) +{ + GstElementClass *element_class; + GObjectClass *gobject_class; + GstVideoDecoderClass *video_decoder_class; + + parent_class = g_type_class_peek_parent (klass); + + element_class = (GstElementClass *) klass; + gobject_class = (GObjectClass *) klass; + video_decoder_class = (GstVideoDecoderClass *) klass; + + gst_element_class_set_static_metadata (element_class, + "V4L2 Video Decoder", + "Codec/Decoder/Video", + "Decode video streams via V4L2 API", + "Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>"); + + gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_dispose); + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_finalize); + gobject_class->set_property = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_set_property); + gobject_class->get_property = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_get_property); + + video_decoder_class->open = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_open); + video_decoder_class->close = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_close); + video_decoder_class->start = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_start); + video_decoder_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_stop); + video_decoder_class->finish = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_finish); + video_decoder_class->flush = GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_flush); + video_decoder_class->set_format = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_set_format); + video_decoder_class->negotiate = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_negotiate); + video_decoder_class->decide_allocation = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_decide_allocation); + /* FIXME propose_allocation or not ? */ + video_decoder_class->handle_frame = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_handle_frame); + video_decoder_class->sink_query = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_sink_query); + video_decoder_class->src_query = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_src_query); + video_decoder_class->sink_event = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_sink_event); + + element_class->change_state = + GST_DEBUG_FUNCPTR (gst_v4l2_video_dec_change_state); + + gst_v4l2_object_install_properties_helper (gobject_class, + DEFAULT_PROP_DEVICE); + + /** + * GstV4l2VideoDec:capture-io-mode + * + * Capture IO Mode + */ + g_object_class_install_property (gobject_class, PROP_IO_MODE, + g_param_spec_enum ("capture-io-mode", "Capture IO mode", + "Capture I/O mode", + GST_TYPE_V4L2_IO_MODE, GST_V4L2_IO_AUTO, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +/* Probing functions */ +static GstCaps * +gst_v4l2_video_dec_probe_caps (gchar * device, gint video_fd, + enum v4l2_buf_type type, GstCaps * filter) +{ + gint n; + struct v4l2_fmtdesc format; + GstCaps *ret, *caps; + + GST_DEBUG ("Getting %s format enumerations", device); + caps = gst_caps_new_empty (); + + for (n = 0;; n++) { + GstStructure *template; + + memset (&format, 0, sizeof (format)); + + format.index = n; + format.type = type; + + if (v4l2_ioctl (video_fd, VIDIOC_ENUM_FMT, &format) < 0) + break; /* end of enumeration */ + + GST_LOG ("index: %u", format.index); + GST_LOG ("type: %d", format.type); + GST_LOG ("flags: %08x", format.flags); + GST_LOG ("description: '%s'", format.description); + GST_LOG ("pixelformat: %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (format.pixelformat)); + + template = gst_v4l2_object_v4l2fourcc_to_structure (format.pixelformat); + + if (template) + gst_caps_append_structure (caps, template); + } + + caps = gst_caps_simplify (caps); + + ret = gst_caps_intersect (filter, caps); + gst_caps_unref (filter); + gst_caps_unref (caps); + + return ret; +} + +gboolean +gst_v4l2_video_dec_register (GstPlugin * plugin) +{ + gint i = -1; + gchar *device = NULL; + + GST_DEBUG_CATEGORY_INIT (gst_v4l2_video_dec_debug, "v4l2videodec", 0, + "V4L2 Video Decoder"); + + while (TRUE) { + GstCaps *src_caps, *sink_caps; + gint video_fd; + + g_free (device); + device = g_strdup_printf ("/dev/video%d", ++i); + + if (!g_file_test (device, G_FILE_TEST_EXISTS)) + break; + + video_fd = open (device, O_RDWR); + if (video_fd == -1) { + GST_WARNING ("Failed to open %s", device); + continue; + } + + /* get sink supported format (no MPLANE for codec) */ + sink_caps = gst_v4l2_video_dec_probe_caps (device, video_fd, + V4L2_BUF_TYPE_VIDEO_OUTPUT, gst_v4l2_object_get_codec_caps ()); + + /* get src supported format */ + src_caps = gst_caps_merge (gst_v4l2_video_dec_probe_caps (device, video_fd, + V4L2_BUF_TYPE_VIDEO_CAPTURE, gst_v4l2_object_get_raw_caps ()), + gst_v4l2_video_dec_probe_caps (device, video_fd, + V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, + gst_v4l2_object_get_raw_caps ())); + + if (!gst_caps_is_empty (sink_caps) && !gst_caps_is_empty (src_caps)) { + GTypeQuery type_query; + GTypeInfo type_info = { 0, }; + GType type, subtype; + gchar *type_name; + Gstv4l2VideoDecQData *qdata; + + type = gst_v4l2_video_dec_get_type (); + g_type_query (type, &type_query); + memset (&type_info, 0, sizeof (type_info)); + type_info.class_size = type_query.class_size; + type_info.instance_size = type_query.instance_size; + + type_name = g_strdup_printf ("v4l2video%ddec", i); + subtype = g_type_register_static (type, type_name, &type_info, 0); + + qdata = g_new0 (Gstv4l2VideoDecQData, 1); + qdata->device = g_strdup (device); + qdata->sink_caps = gst_caps_ref (sink_caps); + qdata->src_caps = gst_caps_ref (src_caps); + + g_type_set_qdata (subtype, V4L2_VIDEO_DEC_QUARK, qdata); + + gst_element_register (plugin, type_name, GST_RANK_PRIMARY + 1, subtype); + + g_free (type_name); + } + + close (video_fd); + gst_caps_unref (src_caps); + gst_caps_unref (sink_caps); + } + + g_free (device); + + return TRUE; +} diff --git a/sys/v4l2/gstv4l2videodec.h b/sys/v4l2/gstv4l2videodec.h new file mode 100644 index 000000000..6ff2e7361 --- /dev/null +++ b/sys/v4l2/gstv4l2videodec.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2014 Collabora Ltd. + * Author: Nicolas Dufresne <nicolas.dufresne@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. + * + */ + +#ifndef __GST_V4L2_VIDEO_DEC_H__ +#define __GST_V4L2_VIDEO_DEC_H__ + +#include <gst/gst.h> +#include <gst/video/video.h> +#include <gst/video/gstvideodecoder.h> +#include <gst/video/gstvideometa.h> + +#include <gstv4l2object.h> +#include <gstv4l2bufferpool.h> + +GST_DEBUG_CATEGORY_EXTERN (v4l2videodec_debug); + +G_BEGIN_DECLS + +#define GST_TYPE_V4L2_VIDEO_DEC \ + (gst_v4l2_video_dec_get_type()) +#define GST_V4L2_VIDEO_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2_VIDEO_DEC,GstV4l2VideoDec)) +#define GST_V4L2_VIDEO_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2_VIDEO_DEC,GstV4l2VideoDecClass)) +#define GST_IS_V4L2_VIDEO_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2_VIDEO_DEC)) +#define GST_IS_V4L2_VIDEO_DEC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2_VIDEO_DEC)) + +typedef struct _GstV4l2VideoDec GstV4l2VideoDec; +typedef struct _GstV4l2VideoDecClass GstV4l2VideoDecClass; + +struct _GstV4l2VideoDec +{ + GstVideoDecoder parent; + + /* < private > */ + GstV4l2Object * v4l2output; + GstV4l2Object * v4l2capture; + + /* pads */ + GstCaps *probed_srccaps; + GstCaps *probed_sinkcaps; + + /* State */ + GstVideoCodecState *input_state; + gboolean active; + gboolean processing; + GstFlowReturn output_flow; + + GstVideoAlignment align; +}; + +struct _GstV4l2VideoDecClass +{ + GstVideoDecoderClass parent_class; +}; + +GType gst_v4l2_video_dec_get_type (void); + +gboolean gst_v4l2_video_dec_register (GstPlugin * plugin); + +G_END_DECLS + +#endif /* __GST_V4L2_VIDEO_DEC_H__ */ diff --git a/sys/v4l2/gstv4l2videooverlay.c b/sys/v4l2/gstv4l2videooverlay.c deleted file mode 100644 index 66d2109be..000000000 --- a/sys/v4l2/gstv4l2videooverlay.c +++ /dev/null @@ -1,492 +0,0 @@ -/* GStreamer - * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> - * 2006 Edgard Lima <edgard.lima@indt.org.br> - * - * gstv4l2video_overlay.c: X-based overlay interface implementation for V4L2 - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should 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 <string.h> -#include <gst/gst.h> -#include <X11/X.h> -#include <X11/Xlib.h> -#include <X11/extensions/Xv.h> -#include <X11/extensions/Xvlib.h> -#include <sys/stat.h> -/* for XkbKeycodeToKeysym */ -#include <X11/XKBlib.h> - -#include <gst/video/navigation.h> - -#include "gstv4l2videooverlay.h" -#include "gstv4l2object.h" -#include "v4l2_calls.h" - -#include "gst/gst-i18n-plugin.h" -#include <gst/glib-compat-private.h> - -struct _GstV4l2Xv -{ - Display *dpy; - gint port, idle_id, event_id; - GMutex mutex; /* to serialize calls to X11 */ -}; - -GST_DEBUG_CATEGORY_STATIC (v4l2xv_debug); -#define GST_CAT_DEFAULT v4l2xv_debug - -void -gst_v4l2_video_overlay_interface_init (GstVideoOverlayInterface * iface) -{ - GST_DEBUG_CATEGORY_INIT (v4l2xv_debug, "v4l2xv", 0, - "V4L2 GstVideoOverlay interface debugging"); -} - -static void -gst_v4l2_video_overlay_open (GstV4l2Object * v4l2object) -{ - struct stat s; - GstV4l2Xv *v4l2xv; - const gchar *name = g_getenv ("DISPLAY"); - unsigned int ver, rel, req, ev, err, anum; - int i, id = 0, first_id = 0, min; - XvAdaptorInfo *ai; - Display *dpy; - - /* we need a display, obviously */ - if (!name || !(dpy = XOpenDisplay (name))) { - GST_WARNING_OBJECT (v4l2object->element, - "No $DISPLAY set or failed to open - no overlay"); - return; - } - - /* First let's check that XVideo extension is available */ - if (!XQueryExtension (dpy, "XVideo", &i, &i, &i)) { - GST_WARNING_OBJECT (v4l2object->element, - "Xv extension not available - no overlay"); - XCloseDisplay (dpy); - return; - } - - /* find port that belongs to this device */ - if (XvQueryExtension (dpy, &ver, &rel, &req, &ev, &err) != Success) { - GST_WARNING_OBJECT (v4l2object->element, - "Xv extension not supported - no overlay"); - XCloseDisplay (dpy); - return; - } - if (XvQueryAdaptors (dpy, DefaultRootWindow (dpy), &anum, &ai) != Success) { - GST_WARNING_OBJECT (v4l2object->element, "Failed to query Xv adaptors"); - XCloseDisplay (dpy); - return; - } - if (fstat (v4l2object->video_fd, &s) < 0) { - GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, NOT_FOUND, - (_("Cannot identify device '%s'."), v4l2object->videodev), - GST_ERROR_SYSTEM); - XCloseDisplay (dpy); - return; - } - min = s.st_rdev & 0xff; - for (i = 0; i < anum; i++) { - GST_DEBUG_OBJECT (v4l2object->element, "found adapter: %s", ai[i].name); - if (!strcmp (ai[i].name, "video4linux2") || - !strcmp (ai[i].name, "video4linux")) { - if (first_id == 0) - first_id = ai[i].base_id; - - GST_DEBUG_OBJECT (v4l2object->element, - "first_id=%d, base_id=%lu, min=%d", first_id, ai[i].base_id, min); - - /* hmm... */ - if (first_id != 0 && ai[i].base_id == first_id + min) - id = ai[i].base_id; - } - } - XvFreeAdaptorInfo (ai); - - if (id == 0) { - GST_WARNING_OBJECT (v4l2object->element, - "Did not find XvPortID for device - no overlay"); - XCloseDisplay (dpy); - return; - } - - v4l2xv = g_new0 (GstV4l2Xv, 1); - v4l2xv->dpy = dpy; - v4l2xv->port = id; - g_mutex_init (&v4l2xv->mutex); - v4l2xv->idle_id = 0; - v4l2xv->event_id = 0; - v4l2object->xv = v4l2xv; - - if (v4l2object->xwindow_id) { - gst_v4l2_video_overlay_set_window_handle (v4l2object, - v4l2object->xwindow_id); - } -} - -static void -gst_v4l2_video_overlay_close (GstV4l2Object * v4l2object) -{ - GstV4l2Xv *v4l2xv = v4l2object->xv; - - if (!v4l2object->xv) - return; - - if (v4l2object->xwindow_id) { - gst_v4l2_video_overlay_set_window_handle (v4l2object, 0); - } - - XCloseDisplay (v4l2xv->dpy); - g_mutex_clear (&v4l2xv->mutex); - if (v4l2xv->idle_id) - g_source_remove (v4l2xv->idle_id); - if (v4l2xv->event_id) - g_source_remove (v4l2xv->event_id); - g_free (v4l2xv); - v4l2object->xv = NULL; -} - -void -gst_v4l2_video_overlay_start (GstV4l2Object * v4l2object) -{ - if (v4l2object->xwindow_id) { - gst_v4l2_video_overlay_open (v4l2object); - } -} - -void -gst_v4l2_video_overlay_stop (GstV4l2Object * v4l2object) -{ - gst_v4l2_video_overlay_close (v4l2object); -} - -/* should be called with mutex held */ -static gboolean -get_render_rect (GstV4l2Object * v4l2object, GstVideoRectangle * rect) -{ - GstV4l2Xv *v4l2xv = v4l2object->xv; - if (v4l2xv && v4l2xv->dpy && v4l2object->xwindow_id) { - XWindowAttributes attr; - XGetWindowAttributes (v4l2xv->dpy, v4l2object->xwindow_id, &attr); - /* this is where we'd add support to maintain aspect ratio */ - rect->x = 0; - rect->y = 0; - rect->w = attr.width; - rect->h = attr.height; - return TRUE; - } else { - return FALSE; - } -} - -gboolean -gst_v4l2_video_overlay_get_render_rect (GstV4l2Object * v4l2object, - GstVideoRectangle * rect) -{ - GstV4l2Xv *v4l2xv = v4l2object->xv; - gboolean ret = FALSE; - if (v4l2xv) { - g_mutex_lock (&v4l2xv->mutex); - ret = get_render_rect (v4l2object, rect); - g_mutex_unlock (&v4l2xv->mutex); - } - return ret; -} - -static void -update_geometry (GstV4l2Object * v4l2object) -{ - GstV4l2Xv *v4l2xv = v4l2object->xv; - GstVideoRectangle rect; - if (!get_render_rect (v4l2object, &rect)) - return; - /* note: we don't pass in valid video x/y/w/h.. currently the xserver - * doesn't need to know these, as they come from v4l2 by setting the - * crop.. - */ - XvPutVideo (v4l2xv->dpy, v4l2xv->port, v4l2object->xwindow_id, - DefaultGC (v4l2xv->dpy, DefaultScreen (v4l2xv->dpy)), - 0, 0, rect.w, rect.h, rect.x, rect.y, rect.w, rect.h); -} - -static gboolean -idle_refresh (gpointer data) -{ - GstV4l2Object *v4l2object = GST_V4L2_OBJECT (data); - GstV4l2Xv *v4l2xv = v4l2object->xv; - - GST_LOG_OBJECT (v4l2object->element, "idle refresh"); - - if (v4l2xv) { - g_mutex_lock (&v4l2xv->mutex); - - update_geometry (v4l2object); - - v4l2xv->idle_id = 0; - g_mutex_unlock (&v4l2xv->mutex); - } - - /* once */ - return FALSE; -} - - -static gboolean -event_refresh (gpointer data) -{ - GstV4l2Object *v4l2object = GST_V4L2_OBJECT (data); - GstV4l2Xv *v4l2xv = v4l2object->xv; - - GST_LOG_OBJECT (v4l2object->element, "event refresh"); - - if (v4l2xv) { - XEvent e; - - g_mutex_lock (&v4l2xv->mutex); - - /* If the element supports navigation, collect the relavent input - * events and push them upstream as navigation events - */ - if (GST_IS_NAVIGATION (v4l2object->element)) { - guint pointer_x = 0, pointer_y = 0; - gboolean pointer_moved = FALSE; - - /* We get all pointer motion events, only the last position is - * interesting. - */ - while (XCheckWindowEvent (v4l2xv->dpy, v4l2object->xwindow_id, - PointerMotionMask, &e)) { - switch (e.type) { - case MotionNotify: - pointer_x = e.xmotion.x; - pointer_y = e.xmotion.y; - pointer_moved = TRUE; - break; - default: - break; - } - } - if (pointer_moved) { - GST_DEBUG_OBJECT (v4l2object->element, - "pointer moved over window at %d,%d", pointer_x, pointer_y); - g_mutex_unlock (&v4l2xv->mutex); - gst_navigation_send_mouse_event (GST_NAVIGATION (v4l2object->element), - "mouse-move", 0, e.xbutton.x, e.xbutton.y); - g_mutex_lock (&v4l2xv->mutex); - } - - /* We get all events on our window to throw them upstream - */ - while (XCheckWindowEvent (v4l2xv->dpy, v4l2object->xwindow_id, - KeyPressMask | KeyReleaseMask | - ButtonPressMask | ButtonReleaseMask, &e)) { - KeySym keysym; - const char *key_str = NULL; - - g_mutex_unlock (&v4l2xv->mutex); - - switch (e.type) { - case ButtonPress: - GST_DEBUG_OBJECT (v4l2object->element, - "button %d pressed over window at %d,%d", - e.xbutton.button, e.xbutton.x, e.xbutton.y); - gst_navigation_send_mouse_event (GST_NAVIGATION - (v4l2object->element), "mouse-button-press", e.xbutton.button, - e.xbutton.x, e.xbutton.y); - break; - case ButtonRelease: - GST_DEBUG_OBJECT (v4l2object->element, - "button %d released over window at %d,%d", - e.xbutton.button, e.xbutton.x, e.xbutton.y); - gst_navigation_send_mouse_event (GST_NAVIGATION - (v4l2object->element), "mouse-button-release", e.xbutton.button, - e.xbutton.x, e.xbutton.y); - break; - case KeyPress: - case KeyRelease: - g_mutex_lock (&v4l2xv->mutex); - keysym = XkbKeycodeToKeysym (v4l2xv->dpy, e.xkey.keycode, 0, 0); - if (keysym != NoSymbol) { - key_str = XKeysymToString (keysym); - } else { - key_str = "unknown"; - } - g_mutex_unlock (&v4l2xv->mutex); - GST_DEBUG_OBJECT (v4l2object->element, - "key %d pressed over window at %d,%d (%s)", - e.xkey.keycode, e.xkey.x, e.xkey.y, key_str); - gst_navigation_send_key_event (GST_NAVIGATION (v4l2object->element), - e.type == KeyPress ? "key-press" : "key-release", key_str); - break; - default: - GST_DEBUG_OBJECT (v4l2object->element, - "unhandled X event (%d)", e.type); - } - - g_mutex_lock (&v4l2xv->mutex); - } - } - - /* Handle ConfigureNotify */ - while (XCheckWindowEvent (v4l2xv->dpy, v4l2object->xwindow_id, - StructureNotifyMask, &e)) { - switch (e.type) { - case ConfigureNotify: - update_geometry (v4l2object); - break; - default: - break; - } - } - g_mutex_unlock (&v4l2xv->mutex); - } - - /* repeat */ - return TRUE; -} - -void -gst_v4l2_video_overlay_set_window_handle (GstV4l2Object * v4l2object, - guintptr id) -{ - GstV4l2Xv *v4l2xv; - XID xwindow_id = id; - gboolean change = (v4l2object->xwindow_id != xwindow_id); - - GST_LOG_OBJECT (v4l2object->element, "Setting XID to %lx", - (gulong) xwindow_id); - - if (!v4l2object->xv && GST_V4L2_IS_OPEN (v4l2object)) - gst_v4l2_video_overlay_open (v4l2object); - - v4l2xv = v4l2object->xv; - - if (v4l2xv) - g_mutex_lock (&v4l2xv->mutex); - - if (change) { - if (v4l2object->xwindow_id && v4l2xv) { - GST_DEBUG_OBJECT (v4l2object->element, - "Deactivating old port %lx", v4l2object->xwindow_id); - - XvSelectPortNotify (v4l2xv->dpy, v4l2xv->port, 0); - XvSelectVideoNotify (v4l2xv->dpy, v4l2object->xwindow_id, 0); - XvStopVideo (v4l2xv->dpy, v4l2xv->port, v4l2object->xwindow_id); - } - - v4l2object->xwindow_id = xwindow_id; - } - - if (!v4l2xv || xwindow_id == 0) { - if (v4l2xv) - g_mutex_unlock (&v4l2xv->mutex); - return; - } - - if (change) { - GST_DEBUG_OBJECT (v4l2object->element, "Activating new port %lx", - xwindow_id); - - /* draw */ - XvSelectPortNotify (v4l2xv->dpy, v4l2xv->port, 1); - XvSelectVideoNotify (v4l2xv->dpy, v4l2object->xwindow_id, 1); - } - - update_geometry (v4l2object); - - if (v4l2xv->idle_id) - g_source_remove (v4l2xv->idle_id); - v4l2xv->idle_id = g_idle_add (idle_refresh, v4l2object); - g_mutex_unlock (&v4l2xv->mutex); -} - -/** - * gst_v4l2_video_overlay_prepare_window_handle: - * @v4l2object: the v4l2object - * @required: %TRUE if display is required (ie. TRUE for v4l2sink, but - * FALSE for any other element with optional overlay capabilities) - * - * Helper function to create a windo if none is set from the application. - */ -void -gst_v4l2_video_overlay_prepare_window_handle (GstV4l2Object * v4l2object, - gboolean required) -{ - GstVideoOverlay *overlay; - - if (!GST_V4L2_IS_OVERLAY (v4l2object)) - return; - - overlay = GST_VIDEO_OVERLAY (v4l2object->element); - gst_video_overlay_prepare_window_handle (overlay); - - if (required && !v4l2object->xwindow_id) { - GstV4l2Xv *v4l2xv; - Window win; - int width, height; - long event_mask; - - if (!v4l2object->xv && GST_V4L2_IS_OPEN (v4l2object)) - gst_v4l2_video_overlay_open (v4l2object); - - v4l2xv = v4l2object->xv; - - /* if video_overlay is not supported, just bail */ - if (!v4l2xv) - return; - - /* video_overlay is supported, but we don't have a window.. so create one */ - GST_DEBUG_OBJECT (v4l2object->element, "creating window"); - - g_mutex_lock (&v4l2xv->mutex); - - width = XDisplayWidth (v4l2xv->dpy, DefaultScreen (v4l2xv->dpy)); - height = XDisplayHeight (v4l2xv->dpy, DefaultScreen (v4l2xv->dpy)); - GST_DEBUG_OBJECT (v4l2object->element, "dpy=%p", v4l2xv->dpy); - - win = XCreateSimpleWindow (v4l2xv->dpy, - DefaultRootWindow (v4l2xv->dpy), - 0, 0, width, height, 0, 0, - XBlackPixel (v4l2xv->dpy, DefaultScreen (v4l2xv->dpy))); - - GST_DEBUG_OBJECT (v4l2object->element, "win=%lu", win); - - event_mask = ExposureMask | StructureNotifyMask; - if (GST_IS_NAVIGATION (v4l2object->element)) { - event_mask |= PointerMotionMask | - KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask; - } - XSelectInput (v4l2xv->dpy, win, event_mask); - v4l2xv->event_id = g_timeout_add (45, event_refresh, v4l2object); - - XMapRaised (v4l2xv->dpy, win); - - XSync (v4l2xv->dpy, FALSE); - - g_mutex_unlock (&v4l2xv->mutex); - - GST_DEBUG_OBJECT (v4l2object->element, "got window"); - - gst_v4l2_video_overlay_set_window_handle (v4l2object, win); - } -} diff --git a/sys/v4l2/gstv4l2videooverlay.h b/sys/v4l2/gstv4l2videooverlay.h deleted file mode 100644 index cd4091621..000000000 --- a/sys/v4l2/gstv4l2videooverlay.h +++ /dev/null @@ -1,69 +0,0 @@ -/* GStreamer - * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net> - * 2006 Edgard Lima <edgard.lima@indt.org.br> - * - * gstv4l2videooverlay.h: tv mixer interface implementation for V4L2 - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should 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_V4L2_VIDEO_OVERLAY_H__ -#define __GST_V4L2_VIDEO_OVERLAY_H__ - -#include <X11/X.h> - -#include <gst/gst.h> -#include <gst/video/navigation.h> -#include <gst/video/gstvideosink.h> /* for GstVideoRectange */ -#include <gst/video/videooverlay.h> - -#include "gstv4l2object.h" - -G_BEGIN_DECLS - -void gst_v4l2_video_overlay_start (GstV4l2Object *v4l2object); -void gst_v4l2_video_overlay_stop (GstV4l2Object *v4l2object); -gboolean gst_v4l2_video_overlay_get_render_rect (GstV4l2Object *v4l2object, - GstVideoRectangle *rect); - -void gst_v4l2_video_overlay_interface_init (GstVideoOverlayInterface * iface); -void gst_v4l2_video_overlay_set_window_handle (GstV4l2Object * v4l2object, - guintptr id); -void gst_v4l2_video_overlay_prepare_window_handle (GstV4l2Object * v4l2object, - gboolean required); - - -#define GST_IMPLEMENT_V4L2_VIDEO_OVERLAY_METHODS(Type, interface_as_function) \ - \ -static void \ -interface_as_function ## _video_overlay_set_window_handle (GstVideoOverlay * overlay, \ - guintptr id) \ -{ \ - Type *this = (Type*) overlay; \ - gst_v4l2_video_overlay_set_window_handle (this->v4l2object, id); \ -} \ - \ -static void \ -interface_as_function ## _video_overlay_interface_init (GstVideoOverlayInterface * iface) \ -{ \ - /* default virtual functions */ \ - iface->set_window_handle = interface_as_function ## _video_overlay_set_window_handle; \ - \ - gst_v4l2_video_overlay_interface_init (iface); \ -} \ - - -#endif /* __GST_V4L2_VIDEO_OVERLAY_H__ */ diff --git a/sys/v4l2/gstv4l2vidorient.c b/sys/v4l2/gstv4l2vidorient.c index 75589470f..7ce13c41c 100644 --- a/sys/v4l2/gstv4l2vidorient.c +++ b/sys/v4l2/gstv4l2vidorient.c @@ -33,14 +33,6 @@ GST_DEBUG_CATEGORY_STATIC (v4l2vo_debug); #define GST_CAT_DEFAULT v4l2vo_debug -/* Those are deprecated calls that have been replaced */ -#ifndef V4L2_CID_HCENTER -#define V4L2_CID_HCENTER V4L2_CID_PAN_RESET -#endif -#ifndef V4L2_CID_VCENTER -#define V4L2_CID_VCENTER V4L2_CID_TILT_RESET -#endif - void gst_v4l2_video_orientation_interface_init (GstVideoOrientationInterface * iface) { @@ -64,18 +56,20 @@ gst_v4l2_video_orientation_get_vflip (GstV4l2Object * v4l2object, return gst_v4l2_get_attribute (v4l2object, V4L2_CID_VFLIP, flip); } +/* named hcenter because of historical v4l2 naming */ gboolean gst_v4l2_video_orientation_get_hcenter (GstV4l2Object * v4l2object, gint * center) { - return gst_v4l2_get_attribute (v4l2object, V4L2_CID_HCENTER, center); + return gst_v4l2_get_attribute (v4l2object, V4L2_CID_PAN_RESET, center); } +/* named vcenter because of historical v4l2 naming */ gboolean gst_v4l2_video_orientation_get_vcenter (GstV4l2Object * v4l2object, gint * center) { - return gst_v4l2_get_attribute (v4l2object, V4L2_CID_VCENTER, center); + return gst_v4l2_get_attribute (v4l2object, V4L2_CID_TILT_RESET, center); } gboolean @@ -93,11 +87,11 @@ gst_v4l2_video_orientation_set_vflip (GstV4l2Object * v4l2object, gboolean flip) gboolean gst_v4l2_video_orientation_set_hcenter (GstV4l2Object * v4l2object, gint center) { - return gst_v4l2_set_attribute (v4l2object, V4L2_CID_HCENTER, center); + return gst_v4l2_set_attribute (v4l2object, V4L2_CID_PAN_RESET, center); } gboolean gst_v4l2_video_orientation_set_vcenter (GstV4l2Object * v4l2object, gint center) { - return gst_v4l2_set_attribute (v4l2object, V4L2_CID_VCENTER, center); + return gst_v4l2_set_attribute (v4l2object, V4L2_CID_TILT_RESET, center); } diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c index 1093037cb..186e78010 100644 --- a/sys/v4l2/v4l2_calls.c +++ b/sys/v4l2/v4l2_calls.c @@ -47,17 +47,10 @@ #include "gstv4l2src.h" #include "gstv4l2sink.h" +#include "gstv4l2videodec.h" #include "gst/gst-i18n-plugin.h" -/* Those are ioctl calls */ -#ifndef V4L2_CID_HCENTER -#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED -#endif -#ifndef V4L2_CID_VCENTER -#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED -#endif - GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); #define GST_CAT_DEFAULT v4l2_debug @@ -100,6 +93,29 @@ cap_failed: } } +/****************************************************** + * The video4linux command line tool v4l2-ctrl + * normalises the names of the controls received from + * the kernel like: + * + * "Exposure (absolute)" -> "exposure_absolute" + * + * We follow their lead here. @name is modified + * in-place. + ******************************************************/ +static void +gst_v4l2_normalise_control_name (gchar * name) +{ + int i, j; + for (i = 0, j = 0; name[j]; ++j) { + if (g_ascii_isalnum (name[j])) { + if (i > 0 && !g_ascii_isalnum (name[j - 1])) + name[i++] = '_'; + name[i++] = g_ascii_tolower (name[j]); + } + } + name[i++] = '\0'; +} /****************************************************** * gst_v4l2_empty_lists() and gst_v4l2_fill_lists(): @@ -242,14 +258,10 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) GST_DEBUG_OBJECT (e, " controls+menus"); /* and lastly, controls+menus (if appropriate) */ -#ifdef V4L2_CTRL_FLAG_NEXT_CTRL next = V4L2_CTRL_FLAG_NEXT_CTRL; n = 0; -#else - next = 0; - n = V4L2_CID_BASE; -#endif control.id = next; + while (TRUE) { GstV4l2ColorBalanceChannel *v4l2channel; GstColorBalanceChannel *channel; @@ -282,6 +294,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) if (n < V4L2_CID_PRIVATE_BASE) { GST_DEBUG_OBJECT (e, "skipping control %08x", n); /* continue so that we also check private controls */ + n = V4L2_CID_PRIVATE_BASE - 1; continue; } else { GST_DEBUG_OBJECT (e, "controls finished"); @@ -301,31 +314,21 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) GST_DEBUG_OBJECT (e, "skipping disabled control"); continue; } -#ifdef V4L2_CTRL_TYPE_CTRL_CLASS + if (control.type == V4L2_CTRL_TYPE_CTRL_CLASS) { GST_DEBUG_OBJECT (e, "starting control class '%s'", control.name); continue; } -#endif + switch (control.type) { case V4L2_CTRL_TYPE_INTEGER: case V4L2_CTRL_TYPE_BOOLEAN: case V4L2_CTRL_TYPE_MENU: -#ifdef V4L2_CTRL_TYPE_INTEGER_MENU case V4L2_CTRL_TYPE_INTEGER_MENU: -#endif -#ifdef V4L2_CTRL_TYPE_BITMASK case V4L2_CTRL_TYPE_BITMASK: -#endif case V4L2_CTRL_TYPE_BUTTON:{ - int i; control.name[31] = '\0'; - for (i = 0; control.name[i]; ++i) { - control.name[i] = g_ascii_tolower (control.name[i]); - if (!g_ascii_isalnum (control.name[i])) - control.name[i] = '_'; - } - GST_INFO_OBJECT (e, "adding generic controls '%s'", control.name); + gst_v4l2_normalise_control_name ((gchar *) control.name); g_datalist_id_set_data (&v4l2object->controls, g_quark_from_string ((const gchar *) control.name), GINT_TO_POINTER (n)); @@ -352,25 +355,13 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) case V4L2_CID_EXPOSURE: case V4L2_CID_AUTOGAIN: case V4L2_CID_GAIN: -#ifdef V4L2_CID_SHARPNESS case V4L2_CID_SHARPNESS: -#endif /* we only handle these for now (why?) */ break; case V4L2_CID_HFLIP: case V4L2_CID_VFLIP: -#ifndef V4L2_CID_PAN_RESET - case V4L2_CID_HCENTER: -#endif -#ifndef V4L2_CID_TILT_RESET - case V4L2_CID_VCENTER: -#endif -#ifdef V4L2_CID_PAN_RESET case V4L2_CID_PAN_RESET: -#endif -#ifdef V4L2_CID_TILT_RESET case V4L2_CID_TILT_RESET: -#endif /* not handled here, handled by VideoOrientation interface */ control.id++; break; @@ -380,8 +371,9 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object) case V4L2_CID_AUDIO_TREBLE: case V4L2_CID_AUDIO_MUTE: case V4L2_CID_AUDIO_LOUDNESS: - /* FIXME: We should implement GstMixer interface */ - /* fall through */ + /* FIXME: We should implement GstMixer interface instead */ + /* but let's not be pedantic and make element more useful for now */ + break; default: GST_DEBUG_OBJECT (e, "ControlID %s (%x) unhandled, FIXME", control.name, n); @@ -478,6 +470,37 @@ gst_v4l2_empty_lists (GstV4l2Object * v4l2object) g_datalist_clear (&v4l2object->controls); } +static void +gst_v4l2_adjust_buf_type (GstV4l2Object * v4l2object) +{ + /* when calling gst_v4l2_object_new the user decides the initial type + * so adjust it if multi-planar is supported + * the driver should make it exclusive. So the driver should + * not support both MPLANE and non-PLANE. + * Because even when using MPLANE it still possibles to use it + * in a contiguous manner. In this case the first v4l2 plane + * contains all the gst planes. + */ +#define CHECK_CAPS (V4L2_CAP_VIDEO_OUTPUT_MPLANE | V4L2_CAP_VIDEO_M2M_MPLANE) + switch (v4l2object->type) { + case V4L2_BUF_TYPE_VIDEO_OUTPUT: + if (v4l2object->vcap.capabilities & CHECK_CAPS) { + GST_DEBUG ("adjust type to multi-planar output"); + v4l2object->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; + } + break; + case V4L2_BUF_TYPE_VIDEO_CAPTURE: + if (v4l2object->vcap.capabilities & CHECK_CAPS) { + GST_DEBUG ("adjust type to multi-planar capture"); + v4l2object->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; + } + break; + default: + break; + } +#undef CHECK_CAPS +} + /****************************************************** * gst_v4l2_open(): * open the video device (v4l2object->videodev) @@ -533,13 +556,28 @@ gst_v4l2_open (GstV4l2Object * v4l2object) /* do we need to be a capture device? */ if (GST_IS_V4L2SRC (v4l2object->element) && - !(v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) + !(v4l2object->vcap.capabilities & (V4L2_CAP_VIDEO_CAPTURE | + V4L2_CAP_VIDEO_CAPTURE_MPLANE))) goto not_capture; if (GST_IS_V4L2SINK (v4l2object->element) && - !(v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_OUTPUT)) + !(v4l2object->vcap.capabilities & (V4L2_CAP_VIDEO_OUTPUT | + V4L2_CAP_VIDEO_OUTPUT_MPLANE))) goto not_output; + if (GST_IS_V4L2_VIDEO_DEC (v4l2object->element) && + /* Today's M2M device only expose M2M */ + !((v4l2object->vcap.capabilities & (V4L2_CAP_VIDEO_M2M | + V4L2_CAP_VIDEO_M2M_MPLANE)) || + /* But legacy driver may expose both CAPTURE and OUTPUT */ + ((v4l2object->vcap.capabilities & + (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_CAPTURE_MPLANE)) && + (v4l2object->vcap.capabilities & + (V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OUTPUT_MPLANE))))) + goto not_m2m; + + gst_v4l2_adjust_buf_type (v4l2object); + /* create enumerations, posts errors. */ if (!gst_v4l2_fill_lists (v4l2object)) goto error; @@ -550,7 +588,8 @@ gst_v4l2_open (GstV4l2Object * v4l2object) pollfd.fd = v4l2object->video_fd; gst_poll_add_fd (v4l2object->poll, &pollfd); - if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) + if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + || v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) gst_poll_fd_ctl_read (v4l2object->poll, &pollfd, TRUE); else gst_poll_fd_ctl_write (v4l2object->poll, &pollfd, TRUE); @@ -558,6 +597,13 @@ gst_v4l2_open (GstV4l2Object * v4l2object) if (v4l2object->extra_controls) gst_v4l2_set_controls (v4l2object, v4l2object->extra_controls); + /* UVC devices are never interlaced, and doing VIDIOC_TRY_FMT on them + * causes expensive and slow USB IO, so don't probe them for interlaced + */ + if (!strcmp ((char *) v4l2object->vcap.driver, "uvcusb")) { + v4l2object->never_interlaced = TRUE; + } + return TRUE; /* ERRORS */ @@ -598,6 +644,14 @@ not_output: ("Capabilities: 0x%x", v4l2object->vcap.capabilities)); goto error; } +not_m2m: + { + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, NOT_FOUND, + (_("Device '%s' is not a M2M device."), + v4l2object->videodev), + ("Capabilities: 0x%x", v4l2object->vcap.capabilities)); + goto error; + } error: { if (GST_V4L2_IS_OPEN (v4l2object)) { @@ -612,6 +666,56 @@ error: } } +gboolean +gst_v4l2_dup (GstV4l2Object * v4l2object, GstV4l2Object * other) +{ + GstPollFD pollfd = GST_POLL_FD_INIT; + + GST_DEBUG_OBJECT (v4l2object->element, "Trying to dup device %s", + other->videodev); + + GST_V4L2_CHECK_OPEN (other); + GST_V4L2_CHECK_NOT_OPEN (v4l2object); + GST_V4L2_CHECK_NOT_ACTIVE (other); + GST_V4L2_CHECK_NOT_ACTIVE (v4l2object); + + v4l2object->vcap = other->vcap; + gst_v4l2_adjust_buf_type (v4l2object); + + v4l2object->video_fd = v4l2_dup (other->video_fd); + if (!GST_V4L2_IS_OPEN (v4l2object)) + goto not_open; + + g_free (v4l2object->videodev); + v4l2object->videodev = g_strdup (other->videodev); + + GST_INFO_OBJECT (v4l2object->element, + "Cloned device '%s' (%s) successfully", + v4l2object->vcap.card, v4l2object->videodev); + + pollfd.fd = v4l2object->video_fd; + gst_poll_add_fd (v4l2object->poll, &pollfd); + if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE + || v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) + gst_poll_fd_ctl_read (v4l2object->poll, &pollfd, TRUE); + else + gst_poll_fd_ctl_write (v4l2object->poll, &pollfd, TRUE); + + v4l2object->never_interlaced = other->never_interlaced; + v4l2object->can_poll_device = TRUE; + + return TRUE; + +not_open: + { + GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, OPEN_READ_WRITE, + (_("Could not dup device '%s' for reading and writing."), + v4l2object->videodev), GST_ERROR_SYSTEM); + + return FALSE; + } +} + /****************************************************** * gst_v4l2_close(): @@ -884,10 +988,31 @@ ctrl_failed: } static gboolean -set_contol (GQuark field_id, const GValue * value, gpointer user_data) +set_control (GQuark field_id, const GValue * value, gpointer user_data) { GstV4l2Object *v4l2object = user_data; - gpointer *d = g_datalist_id_get_data (&v4l2object->controls, field_id); + GQuark normalised_field_id; + gpointer *d; + + /* 32 bytes is the maximum size for a control name according to v4l2 */ + gchar name[32]; + + /* Backwards compatibility: in the past GStreamer would normalise strings in + a subtly different way to v4l2-ctl. e.g. the kernel's "Focus (absolute)" + would become "focus__absolute_" whereas now it becomes "focus_absolute". + Please remove the following in GStreamer 1.5 for 1.6 */ + strncpy (name, g_quark_to_string (field_id), sizeof (name)); + name[31] = '\0'; + gst_v4l2_normalise_control_name (name); + normalised_field_id = g_quark_from_string (name); + if (normalised_field_id != field_id) + g_warning ("In GStreamer 1.4 the way V4L2 control names were normalised " + "changed. Instead of setting \"%s\" please use \"%s\". The former is " + "deprecated and will be removed in a future version of GStreamer", + g_quark_to_string (field_id), name); + field_id = normalised_field_id; + + d = g_datalist_id_get_data (&v4l2object->controls, field_id); if (!d) { GST_WARNING_OBJECT (v4l2object, "Control '%s' does not exist or has an unsupported type.", @@ -907,7 +1032,7 @@ set_contol (GQuark field_id, const GValue * value, gpointer user_data) gboolean gst_v4l2_set_controls (GstV4l2Object * v4l2object, GstStructure * controls) { - return gst_structure_foreach (controls, set_contol, v4l2object); + return gst_structure_foreach (controls, set_control, v4l2object); } gboolean diff --git a/sys/v4l2/v4l2_calls.h b/sys/v4l2/v4l2_calls.h index 221d26e07..3c85dae9f 100644 --- a/sys/v4l2/v4l2_calls.h +++ b/sys/v4l2/v4l2_calls.h @@ -91,6 +91,7 @@ /* open/close the device */ gboolean gst_v4l2_open (GstV4l2Object *v4l2object); +gboolean gst_v4l2_dup (GstV4l2Object *v4l2object, GstV4l2Object *other); gboolean gst_v4l2_close (GstV4l2Object *v4l2object); /* norm/input/output */ diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in index cfb4fe89b..242295356 100644 --- a/sys/waveform/Makefile.in +++ b/sys/waveform/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -488,7 +486,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in index 008609191..e36649daf 100644 --- a/sys/ximage/Makefile.in +++ b/sys/ximage/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -489,7 +487,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c index 644768d85..cdb4a1d97 100644 --- a/sys/ximage/gstximagesrc.c +++ b/sys/ximage/gstximagesrc.c @@ -1021,6 +1021,7 @@ gst_ximage_src_get_caps (GstBaseSrc * bs, GstCaps * filter) GstXContext *xcontext; gint width, height; GstVideoFormat format; + guint32 alpha_mask; if ((!s->xcontext) && (!gst_ximage_src_open_display (s, s->display_name))) return gst_pad_get_pad_template_caps (GST_BASE_SRC (s)->srcpad); @@ -1071,10 +1072,18 @@ gst_ximage_src_get_caps (GstBaseSrc * bs, GstCaps * filter) } GST_DEBUG ("width = %d, height=%d", width, height); + /* extrapolate alpha mask */ + if (xcontext->depth == 32) { + alpha_mask = ~(xcontext->r_mask_output + | xcontext->g_mask_output | xcontext->b_mask_output); + } else { + alpha_mask = 0; + } + format = gst_video_format_from_masks (xcontext->depth, xcontext->bpp, xcontext->endianness, xcontext->r_mask_output, xcontext->g_mask_output, - xcontext->b_mask_output, 0); + xcontext->b_mask_output, alpha_mask); return gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING, gst_video_format_to_string (format), @@ -1153,95 +1162,79 @@ gst_ximage_src_class_init (GstXImageSrcClass * klass) "Show mouse pointer (if XFixes extension enabled)", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstXImageSrc:use-damage + * GstXImageSrc:use-damage: * * Use XDamage (if the XDamage extension is enabled) - * - * Since: 0.10.4 - **/ + */ g_object_class_install_property (gc, PROP_USE_DAMAGE, g_param_spec_boolean ("use-damage", "Use XDamage", "Use XDamage (if XDamage extension enabled)", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstXImageSrc:startx + * GstXImageSrc:startx: * * X coordinate of top left corner of area to be recorded * (0 for top left of screen) - * - * Since: 0.10.4 - **/ + */ g_object_class_install_property (gc, PROP_STARTX, g_param_spec_uint ("startx", "Start X co-ordinate", "X coordinate of top left corner of area to be recorded (0 for top left of screen)", 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstXImageSrc:starty + * GstXImageSrc:starty: * * Y coordinate of top left corner of area to be recorded * (0 for top left of screen) - * - * Since: 0.10.4 - **/ + */ g_object_class_install_property (gc, PROP_STARTY, g_param_spec_uint ("starty", "Start Y co-ordinate", "Y coordinate of top left corner of area to be recorded (0 for top left of screen)", 0, G_MAXINT, 0, G_PARAM_READWRITE)); /** - * GstXImageSrc:endx + * GstXImageSrc:endx: * * X coordinate of bottom right corner of area to be recorded * (0 for bottom right of screen) - * - * Since: 0.10.4 - **/ + */ g_object_class_install_property (gc, PROP_ENDX, g_param_spec_uint ("endx", "End X", "X coordinate of bottom right corner of area to be recorded (0 for bottom right of screen)", 0, G_MAXINT, 0, G_PARAM_READWRITE)); /** - * GstXImageSrc:endy + * GstXImageSrc:endy: * * Y coordinate of bottom right corner of area to be recorded * (0 for bottom right of screen) - * - * Since: 0.10.4 - **/ + */ g_object_class_install_property (gc, PROP_ENDY, g_param_spec_uint ("endy", "End Y", "Y coordinate of bottom right corner of area to be recorded (0 for bottom right of screen)", 0, G_MAXINT, 0, G_PARAM_READWRITE)); /** - * GstXImageSrc:remote + * GstXImageSrc:remote: * * Whether the X display is remote. The element will try to use alternate calls * known to work better with remote displays. - * - * Since: 0.10.26 - **/ + */ g_object_class_install_property (gc, PROP_REMOTE, g_param_spec_boolean ("remote", "Remote dispay", "Whether the display is remote", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstXImageSrc:xid + * GstXImageSrc:xid: * * The XID of the window to capture. 0 for the root window (default). - * - * Since: 0.10.31 - **/ + */ g_object_class_install_property (gc, PROP_XID, g_param_spec_uint64 ("xid", "Window XID", "Window XID to capture from", 0, G_MAXUINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** - * GstXImageSrc:xname + * GstXImageSrc:xname: * * The name of the window to capture, if any. - * - * Since: 0.10.31 - **/ + */ g_object_class_install_property (gc, PROP_XNAME, g_param_spec_string ("xname", "Window name", "Window name to capture from", NULL, diff --git a/tests/Makefile.in b/tests/Makefile.in index ad07cb8b9..ab5953503 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -86,7 +86,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -102,7 +101,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -459,7 +457,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index cee4c1bdb..ce400431a 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -36,18 +36,145 @@ CLEANFILES = core.* test-registry.* clean-local: clean-local-check distclean-local: distclean-local-orc +if USE_PLUGIN_ALPHA +check_alpha = elements/alphacolor +else +check_alpha = +endif + +if USE_PLUGIN_AUDIOFX +check_audiofx = \ + elements/audioamplify \ + elements/audiochebband \ + elements/audiocheblimit \ + elements/audiodynamic \ + elements/audioecho \ + elements/audiofirfilter \ + elements/audioiirfilter \ + elements/audioinvert \ + elements/audiopanorama \ + elements/audiowsincband \ + elements/audiowsinclimit +else +check_audiofx = +endif + +if USE_PLUGIN_AUDIOPARSERS +check_audioparsers = \ + elements/aacparse \ + elements/ac3parse \ + elements/amrparse \ + elements/flacparse \ + elements/mpegaudioparse \ + elements/wavpackparse +else +check_audioparsers = +endif + +if USE_PLUGIN_AUTODETECT +check_autodetect = elements/autodetect +else +check_autodetect = +endif + +if USE_PLUGIN_AVI +check_avi = \ + elements/avimux \ + elements/avisubtitle +else +check_avi = +endif + +if USE_PLUGIN_DEBUGUTILS +check_debugutils = elements/capssetter +else +check_debugutils = +endif + +if USE_PLUGIN_DEINTERLACE +check_deinterlace = elements/deinterlace +else +check_deinterlace = +endif + +if USE_PLUGIN_DTMF +check_dtmf = elements/dtmf +else +check_dtmf = +endif + +if USE_PLUGIN_EFFECTV +check_effectv = pipelines/effectv +else +check_effectv = +endif + +if USE_PLUGIN_EQUALIZER +check_equalizer = elements/equalizer +else +check_equalizer = +endif + if USE_FLAC check_flac = pipelines/flacdec else check_flac = endif +if USE_PLUGIN_FLV +check_flv = \ + elements/flvdemux \ + elements/flvmux +else +check_flv = +endif + +if USE_PLUGIN_ISOMP4 +check_isomp4 = elements/qtmux +else +check_isomp4 = +endif + +if USE_PLUGIN_LAW +check_law = \ + elements/mulawdec \ + elements/mulawenc +else +check_law = +endif + if USE_GDK_PIXBUF check_gdkpixbuf = elements/gdkpixbufsink else check_gdkpixbuf = endif +if USE_PLUGIN_ICYDEMUX +check_icydemux = elements/icydemux +else +check_icydemux = +endif + +if USE_PLUGIN_ID3DEMUX +check_id3demux = elements/id3demux +else +check_id3demux = +endif + +if USE_PLUGIN_IMAGEFREEZE +check_imagefreeze = elements/imagefreeze +else +check_imagefreeze = +endif + +if USE_PLUGIN_INTERLEAVE +check_interleave = \ + elements/deinterleave \ + elements/interleave +else +check_interleave = +endif + if USE_JPEG check_jpeg = \ elements/jpegdec \ @@ -56,18 +183,79 @@ else check_jpeg = endif +if USE_PLUGIN_LEVEL +check_level = elements/level +else +check_level = +endif + +if USE_PLUGIN_MATROSKA +check_matroska = \ + elements/matroskamux \ + elements/matroskaparse +else +check_matroska = +endif + +if USE_PLUGIN_MULTIFILE +check_multifile = elements/multifile +else +check_multifile = +endif + +if USE_PLUGIN_REPLAYGAIN +check_replaygain = \ + elements/rganalysis \ + elements/rglimiter \ + elements/rgvolume +else +check_replaygain = +endif + +if USE_PLUGIN_RTP +check_rtp = elements/rtp-payloading +else +check_rtp = +endif + +if USE_PLUGIN_RTPMANAGER +check_rtpmanager = \ + elements/rtpaux \ + elements/rtpbin \ + elements/rtpbin_buffer_list \ + elements/rtpcollision \ + elements/rtpjitterbuffer \ + elements/rtpmux \ + elements/rtprtx \ + elements/rtpsession +else +check_rtpmanager = +endif + if USE_SOUP check_soup = elements/souphttpsrc else check_soup = endif +if USE_PLUGIN_SPECTRUM +check_spectrum = elements/spectrum +else +check_spectrum = +endif + if USE_SUNAUDIO check_sunaudio = elements/sunaudio else check_sunaudio = endif +if USE_PLUGIN_SHAPEWIPE +check_shapewipe = elements/shapewipe +else +check_shapewipe = +endif + if USE_TAGLIB check_taglib = \ elements/id3v2mux \ @@ -76,12 +264,46 @@ else check_taglib = endif +if USE_PLUGIN_UDP +check_udp = \ + elements/udpsink \ + elements/udpsrc +else +check_udp = +endif + +if USE_PLUGIN_VIDEOCROP +check_videocrop = \ + elements/aspectratiocrop \ + elements/videocrop +else +check_videocrop = +endif + +if USE_PLUGIN_VIDEOFILTER +check_videofilter = elements/videofilter +else +check_videofilter = +endif + +if USE_PLUGIN_VIDEOMIXER +check_videomixer = elements/videomixer +else +check_videomixer = +endif + if USE_VPX check_vpx=elements/vp8enc elements/vp8dec else check_vpx= endif +if USE_PLUGIN_WAVENC +check_wavenc = pipelines/wavenc +else +check_wavenc = +endif + if USE_WAVPACK check_wavpack = \ elements/wavpackdec \ @@ -91,6 +313,18 @@ else check_wavpack = endif +if USE_PLUGIN_WAVPARSE +check_wavparse = elements/wavparse +else +check_wavparse = +endif + +if USE_PLUGIN_Y4M +check_y4m = elements/y4menc +else +check_y4m = +endif + if HAVE_ORC check_orc = orc/deinterlace orc/videomixer orc/videobox else @@ -100,75 +334,48 @@ endif check_PROGRAMS = \ generic/states \ - elements/aacparse \ - elements/ac3parse \ - elements/amrparse \ - elements/alphacolor \ - elements/aspectratiocrop \ - elements/audioamplify \ - elements/audiochebband \ - elements/audiocheblimit \ - elements/audiodynamic \ - elements/audioecho \ - elements/audiofirfilter \ - elements/audioiirfilter \ - elements/audioinvert \ - elements/audiopanorama \ - elements/audiowsincband \ - elements/audiowsinclimit \ - elements/autodetect \ - elements/avimux \ - elements/avisubtitle \ - elements/capssetter \ - elements/deinterlace \ - elements/deinterleave \ - elements/dtmf \ - elements/equalizer \ - elements/flacparse \ - elements/flvdemux \ - elements/flvmux \ - elements/icydemux \ - elements/id3demux \ - elements/imagefreeze \ - elements/interleave \ - elements/level \ - elements/matroskamux \ - elements/matroskaparse \ - elements/mpegaudioparse \ - elements/mulawdec \ - elements/mulawenc \ - elements/multifile \ - elements/qtmux \ - elements/rganalysis \ - elements/rglimiter \ - elements/rgvolume \ - elements/rtp-payloading \ - elements/rtpbin \ - elements/rtpbin_buffer_list \ - elements/rtpjitterbuffer \ - elements/rtpmux \ - elements/shapewipe \ - elements/spectrum \ - elements/udpsink \ - elements/udpsrc \ - elements/videocrop \ - elements/videofilter \ - elements/wavpackparse \ - elements/wavparse \ - elements/y4menc \ - elements/videomixer \ pipelines/simple-launch-lines \ - pipelines/effectv \ pipelines/tagschecking \ - pipelines/wavenc \ + $(check_alpha) \ + $(check_audiofx) \ + $(check_audioparsers) \ + $(check_autodetect) \ + $(check_avi) \ + $(check_debugutils) \ + $(check_deinterlace) \ + $(check_dtmf) \ + $(check_effectv) \ + $(check_equalizer) \ $(check_flac) \ + $(check_flv) \ $(check_gdkpixbuf) \ + $(check_isomp4) \ + $(check_icydemux) \ + $(check_id3demux) \ + $(check_imagefreeze) \ + $(check_interleave) \ $(check_jpeg) \ + $(check_law) \ + $(check_level) \ + $(check_matroska) \ + $(check_multifile) \ + $(check_replaygain) \ + $(check_rtp) \ + $(check_rtpmanager) \ + $(check_shapewipe) \ $(check_soup) \ + $(check_spectrum) \ $(check_sunaudio) \ $(check_taglib) \ + $(check_udp) \ + $(check_videocrop) \ + $(check_videofilter) \ + $(check_videomixer) \ $(check_vpx) \ + $(check_wavenc) \ $(check_wavpack) \ + $(check_wavparse) \ + $(check_y4m) \ $(check_orc) VALGRIND_TO_FIX = \ @@ -241,6 +448,9 @@ elements_audiowsincband_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VE elements_audiowsinclimit_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_audiowsinclimit_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) +elements_autodetect_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_autodetect_LDADD = $(GST_BASE_LIBS) $(LDADD) + elements_equalizer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_equalizer_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) @@ -293,8 +503,8 @@ elements_qtmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-@GST_API_VERSION@ \ elements_rtpbin_buffer_list_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \ $(WARNING_CFLAGS) $(ERROR_CFLAGS) $(GST_CHECK_CFLAGS) $(AM_CFLAGS) elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \ - -lgstrtp-@GST_API_VERSION@ \ - $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) + -lgstrtp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD) elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) @@ -322,6 +532,18 @@ elements_videofilter_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSI elements_rtpjitterbuffer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_rtpjitterbuffer_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD) +elements_rtprtx_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtprtx_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD) + +elements_rtpsession_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD) + +elements_rtpcollision_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD) + +elements_rtpaux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtpaux_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 = \ diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in index e0a744128..b34317a05 100644 --- a/tests/check/Makefile.in +++ b/tests/check/Makefile.in @@ -82,44 +82,23 @@ target_triplet = @target@ DIST_COMMON = $(top_srcdir)/common/check.mak $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(top_srcdir)/depcomp \ $(top_srcdir)/test-driver -check_PROGRAMS = generic/states$(EXEEXT) elements/aacparse$(EXEEXT) \ - elements/ac3parse$(EXEEXT) elements/amrparse$(EXEEXT) \ - elements/alphacolor$(EXEEXT) elements/aspectratiocrop$(EXEEXT) \ - elements/audioamplify$(EXEEXT) elements/audiochebband$(EXEEXT) \ - elements/audiocheblimit$(EXEEXT) \ - elements/audiodynamic$(EXEEXT) elements/audioecho$(EXEEXT) \ - elements/audiofirfilter$(EXEEXT) \ - elements/audioiirfilter$(EXEEXT) elements/audioinvert$(EXEEXT) \ - elements/audiopanorama$(EXEEXT) \ - elements/audiowsincband$(EXEEXT) \ - elements/audiowsinclimit$(EXEEXT) elements/autodetect$(EXEEXT) \ - elements/avimux$(EXEEXT) elements/avisubtitle$(EXEEXT) \ - elements/capssetter$(EXEEXT) elements/deinterlace$(EXEEXT) \ - elements/deinterleave$(EXEEXT) elements/dtmf$(EXEEXT) \ - elements/equalizer$(EXEEXT) elements/flacparse$(EXEEXT) \ - elements/flvdemux$(EXEEXT) elements/flvmux$(EXEEXT) \ - elements/icydemux$(EXEEXT) elements/id3demux$(EXEEXT) \ - elements/imagefreeze$(EXEEXT) elements/interleave$(EXEEXT) \ - elements/level$(EXEEXT) elements/matroskamux$(EXEEXT) \ - elements/matroskaparse$(EXEEXT) \ - elements/mpegaudioparse$(EXEEXT) elements/mulawdec$(EXEEXT) \ - elements/mulawenc$(EXEEXT) elements/multifile$(EXEEXT) \ - elements/qtmux$(EXEEXT) elements/rganalysis$(EXEEXT) \ - elements/rglimiter$(EXEEXT) elements/rgvolume$(EXEEXT) \ - elements/rtp-payloading$(EXEEXT) elements/rtpbin$(EXEEXT) \ - elements/rtpbin_buffer_list$(EXEEXT) \ - elements/rtpjitterbuffer$(EXEEXT) elements/rtpmux$(EXEEXT) \ - elements/shapewipe$(EXEEXT) elements/spectrum$(EXEEXT) \ - elements/udpsink$(EXEEXT) elements/udpsrc$(EXEEXT) \ - elements/videocrop$(EXEEXT) elements/videofilter$(EXEEXT) \ - elements/wavpackparse$(EXEEXT) elements/wavparse$(EXEEXT) \ - elements/y4menc$(EXEEXT) elements/videomixer$(EXEEXT) \ +check_PROGRAMS = generic/states$(EXEEXT) \ pipelines/simple-launch-lines$(EXEEXT) \ - pipelines/effectv$(EXEEXT) pipelines/tagschecking$(EXEEXT) \ - pipelines/wavenc$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ - $(am__EXEEXT_3) $(am__EXEEXT_4) $(am__EXEEXT_5) \ - $(am__EXEEXT_6) $(am__EXEEXT_7) $(am__EXEEXT_8) \ - $(am__EXEEXT_9) + pipelines/tagschecking$(EXEEXT) $(am__EXEEXT_1) \ + $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \ + $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \ + $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \ + $(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \ + $(am__EXEEXT_14) $(am__EXEEXT_15) $(am__EXEEXT_16) \ + $(am__EXEEXT_17) $(am__EXEEXT_18) $(am__EXEEXT_19) \ + $(am__EXEEXT_20) $(am__EXEEXT_21) $(am__EXEEXT_22) \ + $(am__EXEEXT_23) $(am__EXEEXT_24) $(am__EXEEXT_25) \ + $(am__EXEEXT_26) $(am__EXEEXT_27) $(am__EXEEXT_28) \ + $(am__EXEEXT_29) $(am__EXEEXT_30) $(am__EXEEXT_31) \ + $(am__EXEEXT_32) $(am__EXEEXT_33) $(am__EXEEXT_34) \ + $(am__EXEEXT_35) $(am__EXEEXT_36) $(am__EXEEXT_37) \ + $(am__EXEEXT_38) $(am__EXEEXT_39) $(am__EXEEXT_40) \ + $(am__EXEEXT_41) subdir = tests/check ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ @@ -127,7 +106,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -143,7 +121,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -174,20 +151,98 @@ am__v_lt_1 = libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libparser_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -@USE_FLAC_TRUE@am__EXEEXT_1 = pipelines/flacdec$(EXEEXT) -@USE_GDK_PIXBUF_TRUE@am__EXEEXT_2 = elements/gdkpixbufsink$(EXEEXT) -@USE_JPEG_TRUE@am__EXEEXT_3 = elements/jpegdec$(EXEEXT) \ +@USE_PLUGIN_ALPHA_TRUE@am__EXEEXT_1 = elements/alphacolor$(EXEEXT) +@USE_PLUGIN_AUDIOFX_TRUE@am__EXEEXT_2 = \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioamplify$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiochebband$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiocheblimit$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiodynamic$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioecho$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiofirfilter$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioiirfilter$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioinvert$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiopanorama$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiowsincband$(EXEEXT) \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiowsinclimit$(EXEEXT) +@USE_PLUGIN_AUDIOPARSERS_TRUE@am__EXEEXT_3 = \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/aacparse$(EXEEXT) \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/ac3parse$(EXEEXT) \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/amrparse$(EXEEXT) \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/flacparse$(EXEEXT) \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/mpegaudioparse$(EXEEXT) \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/wavpackparse$(EXEEXT) +@USE_PLUGIN_AUTODETECT_TRUE@am__EXEEXT_4 = \ +@USE_PLUGIN_AUTODETECT_TRUE@ elements/autodetect$(EXEEXT) +@USE_PLUGIN_AVI_TRUE@am__EXEEXT_5 = elements/avimux$(EXEEXT) \ +@USE_PLUGIN_AVI_TRUE@ elements/avisubtitle$(EXEEXT) +@USE_PLUGIN_DEBUGUTILS_TRUE@am__EXEEXT_6 = \ +@USE_PLUGIN_DEBUGUTILS_TRUE@ elements/capssetter$(EXEEXT) +@USE_PLUGIN_DEINTERLACE_TRUE@am__EXEEXT_7 = \ +@USE_PLUGIN_DEINTERLACE_TRUE@ elements/deinterlace$(EXEEXT) +@USE_PLUGIN_DTMF_TRUE@am__EXEEXT_8 = elements/dtmf$(EXEEXT) +@USE_PLUGIN_EFFECTV_TRUE@am__EXEEXT_9 = pipelines/effectv$(EXEEXT) +@USE_PLUGIN_EQUALIZER_TRUE@am__EXEEXT_10 = \ +@USE_PLUGIN_EQUALIZER_TRUE@ elements/equalizer$(EXEEXT) +@USE_FLAC_TRUE@am__EXEEXT_11 = pipelines/flacdec$(EXEEXT) +@USE_PLUGIN_FLV_TRUE@am__EXEEXT_12 = elements/flvdemux$(EXEEXT) \ +@USE_PLUGIN_FLV_TRUE@ elements/flvmux$(EXEEXT) +@USE_GDK_PIXBUF_TRUE@am__EXEEXT_13 = elements/gdkpixbufsink$(EXEEXT) +@USE_PLUGIN_ISOMP4_TRUE@am__EXEEXT_14 = elements/qtmux$(EXEEXT) +@USE_PLUGIN_ICYDEMUX_TRUE@am__EXEEXT_15 = elements/icydemux$(EXEEXT) +@USE_PLUGIN_ID3DEMUX_TRUE@am__EXEEXT_16 = elements/id3demux$(EXEEXT) +@USE_PLUGIN_IMAGEFREEZE_TRUE@am__EXEEXT_17 = \ +@USE_PLUGIN_IMAGEFREEZE_TRUE@ elements/imagefreeze$(EXEEXT) +@USE_PLUGIN_INTERLEAVE_TRUE@am__EXEEXT_18 = \ +@USE_PLUGIN_INTERLEAVE_TRUE@ elements/deinterleave$(EXEEXT) \ +@USE_PLUGIN_INTERLEAVE_TRUE@ elements/interleave$(EXEEXT) +@USE_JPEG_TRUE@am__EXEEXT_19 = elements/jpegdec$(EXEEXT) \ @USE_JPEG_TRUE@ elements/jpegenc$(EXEEXT) -@USE_SOUP_TRUE@am__EXEEXT_4 = elements/souphttpsrc$(EXEEXT) -@USE_SUNAUDIO_TRUE@am__EXEEXT_5 = elements/sunaudio$(EXEEXT) -@USE_TAGLIB_TRUE@am__EXEEXT_6 = elements/id3v2mux$(EXEEXT) \ +@USE_PLUGIN_LAW_TRUE@am__EXEEXT_20 = elements/mulawdec$(EXEEXT) \ +@USE_PLUGIN_LAW_TRUE@ elements/mulawenc$(EXEEXT) +@USE_PLUGIN_LEVEL_TRUE@am__EXEEXT_21 = elements/level$(EXEEXT) +@USE_PLUGIN_MATROSKA_TRUE@am__EXEEXT_22 = \ +@USE_PLUGIN_MATROSKA_TRUE@ elements/matroskamux$(EXEEXT) \ +@USE_PLUGIN_MATROSKA_TRUE@ elements/matroskaparse$(EXEEXT) +@USE_PLUGIN_MULTIFILE_TRUE@am__EXEEXT_23 = \ +@USE_PLUGIN_MULTIFILE_TRUE@ elements/multifile$(EXEEXT) +@USE_PLUGIN_REPLAYGAIN_TRUE@am__EXEEXT_24 = \ +@USE_PLUGIN_REPLAYGAIN_TRUE@ elements/rganalysis$(EXEEXT) \ +@USE_PLUGIN_REPLAYGAIN_TRUE@ elements/rglimiter$(EXEEXT) \ +@USE_PLUGIN_REPLAYGAIN_TRUE@ elements/rgvolume$(EXEEXT) +@USE_PLUGIN_RTP_TRUE@am__EXEEXT_25 = elements/rtp-payloading$(EXEEXT) +@USE_PLUGIN_RTPMANAGER_TRUE@am__EXEEXT_26 = elements/rtpaux$(EXEEXT) \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpbin$(EXEEXT) \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpbin_buffer_list$(EXEEXT) \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpcollision$(EXEEXT) \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpjitterbuffer$(EXEEXT) \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpmux$(EXEEXT) \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtprtx$(EXEEXT) \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpsession$(EXEEXT) +@USE_PLUGIN_SHAPEWIPE_TRUE@am__EXEEXT_27 = \ +@USE_PLUGIN_SHAPEWIPE_TRUE@ elements/shapewipe$(EXEEXT) +@USE_SOUP_TRUE@am__EXEEXT_28 = elements/souphttpsrc$(EXEEXT) +@USE_PLUGIN_SPECTRUM_TRUE@am__EXEEXT_29 = elements/spectrum$(EXEEXT) +@USE_SUNAUDIO_TRUE@am__EXEEXT_30 = elements/sunaudio$(EXEEXT) +@USE_TAGLIB_TRUE@am__EXEEXT_31 = elements/id3v2mux$(EXEEXT) \ @USE_TAGLIB_TRUE@ elements/apev2mux$(EXEEXT) -@USE_VPX_TRUE@am__EXEEXT_7 = elements/vp8enc$(EXEEXT) \ +@USE_PLUGIN_UDP_TRUE@am__EXEEXT_32 = elements/udpsink$(EXEEXT) \ +@USE_PLUGIN_UDP_TRUE@ elements/udpsrc$(EXEEXT) +@USE_PLUGIN_VIDEOCROP_TRUE@am__EXEEXT_33 = \ +@USE_PLUGIN_VIDEOCROP_TRUE@ elements/aspectratiocrop$(EXEEXT) \ +@USE_PLUGIN_VIDEOCROP_TRUE@ elements/videocrop$(EXEEXT) +@USE_PLUGIN_VIDEOFILTER_TRUE@am__EXEEXT_34 = \ +@USE_PLUGIN_VIDEOFILTER_TRUE@ elements/videofilter$(EXEEXT) +@USE_PLUGIN_VIDEOMIXER_TRUE@am__EXEEXT_35 = \ +@USE_PLUGIN_VIDEOMIXER_TRUE@ elements/videomixer$(EXEEXT) +@USE_VPX_TRUE@am__EXEEXT_36 = elements/vp8enc$(EXEEXT) \ @USE_VPX_TRUE@ elements/vp8dec$(EXEEXT) -@USE_WAVPACK_TRUE@am__EXEEXT_8 = elements/wavpackdec$(EXEEXT) \ +@USE_PLUGIN_WAVENC_TRUE@am__EXEEXT_37 = pipelines/wavenc$(EXEEXT) +@USE_WAVPACK_TRUE@am__EXEEXT_38 = elements/wavpackdec$(EXEEXT) \ @USE_WAVPACK_TRUE@ elements/wavpackenc$(EXEEXT) \ @USE_WAVPACK_TRUE@ pipelines/wavpack$(EXEEXT) -@HAVE_ORC_TRUE@am__EXEEXT_9 = orc/deinterlace$(EXEEXT) \ +@USE_PLUGIN_WAVPARSE_TRUE@am__EXEEXT_39 = elements/wavparse$(EXEEXT) +@USE_PLUGIN_Y4M_TRUE@am__EXEEXT_40 = elements/y4menc$(EXEEXT) +@HAVE_ORC_TRUE@am__EXEEXT_41 = orc/deinterlace$(EXEEXT) \ @HAVE_ORC_TRUE@ orc/videomixer$(EXEEXT) orc/videobox$(EXEEXT) elements_aacparse_SOURCES = elements/aacparse.c elements_aacparse_OBJECTS = elements/aacparse.$(OBJEXT) @@ -312,9 +367,14 @@ elements_audiowsinclimit_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(elements_audiowsinclimit_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ elements_autodetect_SOURCES = elements/autodetect.c -elements_autodetect_OBJECTS = elements/autodetect.$(OBJEXT) -elements_autodetect_LDADD = $(LDADD) -elements_autodetect_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_autodetect_OBJECTS = \ + elements/elements_autodetect-autodetect.$(OBJEXT) +elements_autodetect_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +elements_autodetect_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_autodetect_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ elements_avimux_SOURCES = elements/avimux.c elements_avimux_OBJECTS = elements/avimux.$(OBJEXT) elements_avimux_LDADD = $(LDADD) @@ -509,6 +569,14 @@ elements_rtp_payloading_SOURCES = elements/rtp-payloading.c elements_rtp_payloading_OBJECTS = elements/rtp-payloading.$(OBJEXT) elements_rtp_payloading_LDADD = $(LDADD) elements_rtp_payloading_DEPENDENCIES = $(am__DEPENDENCIES_1) +elements_rtpaux_SOURCES = elements/rtpaux.c +elements_rtpaux_OBJECTS = elements/elements_rtpaux-rtpaux.$(OBJEXT) +elements_rtpaux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +elements_rtpaux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_rtpaux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ elements_rtpbin_SOURCES = elements/rtpbin.c elements_rtpbin_OBJECTS = elements/rtpbin.$(OBJEXT) elements_rtpbin_LDADD = $(LDADD) @@ -518,11 +586,20 @@ elements_rtpbin_buffer_list_OBJECTS = \ $(am_elements_rtpbin_buffer_list_OBJECTS) elements_rtpbin_buffer_list_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) elements_rtpbin_buffer_list_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ +elements_rtpcollision_SOURCES = elements/rtpcollision.c +elements_rtpcollision_OBJECTS = \ + elements/elements_rtpcollision-rtpcollision.$(OBJEXT) +elements_rtpcollision_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +elements_rtpcollision_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_rtpcollision_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ elements_rtpjitterbuffer_SOURCES = elements/rtpjitterbuffer.c elements_rtpjitterbuffer_OBJECTS = \ elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT) @@ -540,6 +617,23 @@ elements_rtpmux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(elements_rtpmux_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ +elements_rtprtx_SOURCES = elements/rtprtx.c +elements_rtprtx_OBJECTS = elements/elements_rtprtx-rtprtx.$(OBJEXT) +elements_rtprtx_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +elements_rtprtx_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_rtprtx_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +elements_rtpsession_SOURCES = elements/rtpsession.c +elements_rtpsession_OBJECTS = \ + elements/elements_rtpsession-rtpsession.$(OBJEXT) +elements_rtpsession_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +elements_rtpsession_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(elements_rtpsession_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ elements_shapewipe_SOURCES = elements/shapewipe.c elements_shapewipe_OBJECTS = elements/shapewipe.$(OBJEXT) elements_shapewipe_LDADD = $(LDADD) @@ -759,13 +853,14 @@ SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/mulawdec.c elements/mulawenc.c elements/multifile.c \ elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \ elements/rgvolume.c elements/rtp-payloading.c \ - elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \ - elements/rtpjitterbuffer.c elements/rtpmux.c \ - elements/shapewipe.c elements/souphttpsrc.c \ - elements/spectrum.c elements/sunaudio.c elements/udpsink.c \ - elements/udpsrc.c elements/videocrop.c elements/videofilter.c \ - elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \ - elements/wavpackdec.c elements/wavpackenc.c \ + elements/rtpaux.c elements/rtpbin.c \ + $(elements_rtpbin_buffer_list_SOURCES) elements/rtpcollision.c \ + elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \ + elements/rtpsession.c elements/shapewipe.c \ + elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \ + elements/udpsink.c elements/udpsrc.c elements/videocrop.c \ + elements/videofilter.c elements/videomixer.c elements/vp8dec.c \ + elements/vp8enc.c elements/wavpackdec.c elements/wavpackenc.c \ elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \ generic/states.c $(nodist_orc_deinterlace_SOURCES) \ $(nodist_orc_videobox_SOURCES) \ @@ -793,13 +888,14 @@ DIST_SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \ elements/mulawdec.c elements/mulawenc.c elements/multifile.c \ elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \ elements/rgvolume.c elements/rtp-payloading.c \ - elements/rtpbin.c $(elements_rtpbin_buffer_list_SOURCES) \ - elements/rtpjitterbuffer.c elements/rtpmux.c \ - elements/shapewipe.c elements/souphttpsrc.c \ - elements/spectrum.c elements/sunaudio.c elements/udpsink.c \ - elements/udpsrc.c elements/videocrop.c elements/videofilter.c \ - elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \ - elements/wavpackdec.c elements/wavpackenc.c \ + elements/rtpaux.c elements/rtpbin.c \ + $(elements_rtpbin_buffer_list_SOURCES) elements/rtpcollision.c \ + elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \ + elements/rtpsession.c elements/shapewipe.c \ + elements/souphttpsrc.c elements/spectrum.c elements/sunaudio.c \ + elements/udpsink.c elements/udpsrc.c elements/videocrop.c \ + elements/videofilter.c elements/videomixer.c elements/vp8dec.c \ + elements/vp8enc.c elements/wavpackdec.c elements/wavpackenc.c \ elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \ generic/states.c pipelines/effectv.c pipelines/flacdec.c \ pipelines/simple-launch-lines.c pipelines/tagschecking.c \ @@ -1291,7 +1387,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -1395,32 +1490,149 @@ TESTS_ENVIRONMENT = \ # the core dumps of some machines have PIDs appended CLEANFILES = core.* test-registry.* +@USE_PLUGIN_ALPHA_FALSE@check_alpha = +@USE_PLUGIN_ALPHA_TRUE@check_alpha = elements/alphacolor +@USE_PLUGIN_AUDIOFX_FALSE@check_audiofx = +@USE_PLUGIN_AUDIOFX_TRUE@check_audiofx = \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioamplify \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiochebband \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiocheblimit \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiodynamic \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioecho \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiofirfilter \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioiirfilter \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audioinvert \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiopanorama \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiowsincband \ +@USE_PLUGIN_AUDIOFX_TRUE@ elements/audiowsinclimit + +@USE_PLUGIN_AUDIOPARSERS_FALSE@check_audioparsers = +@USE_PLUGIN_AUDIOPARSERS_TRUE@check_audioparsers = \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/aacparse \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/ac3parse \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/amrparse \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/flacparse \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/mpegaudioparse \ +@USE_PLUGIN_AUDIOPARSERS_TRUE@ elements/wavpackparse + +@USE_PLUGIN_AUTODETECT_FALSE@check_autodetect = +@USE_PLUGIN_AUTODETECT_TRUE@check_autodetect = elements/autodetect +@USE_PLUGIN_AVI_FALSE@check_avi = +@USE_PLUGIN_AVI_TRUE@check_avi = \ +@USE_PLUGIN_AVI_TRUE@ elements/avimux \ +@USE_PLUGIN_AVI_TRUE@ elements/avisubtitle + +@USE_PLUGIN_DEBUGUTILS_FALSE@check_debugutils = +@USE_PLUGIN_DEBUGUTILS_TRUE@check_debugutils = elements/capssetter +@USE_PLUGIN_DEINTERLACE_FALSE@check_deinterlace = +@USE_PLUGIN_DEINTERLACE_TRUE@check_deinterlace = elements/deinterlace +@USE_PLUGIN_DTMF_FALSE@check_dtmf = +@USE_PLUGIN_DTMF_TRUE@check_dtmf = elements/dtmf +@USE_PLUGIN_EFFECTV_FALSE@check_effectv = +@USE_PLUGIN_EFFECTV_TRUE@check_effectv = pipelines/effectv +@USE_PLUGIN_EQUALIZER_FALSE@check_equalizer = +@USE_PLUGIN_EQUALIZER_TRUE@check_equalizer = elements/equalizer @USE_FLAC_FALSE@check_flac = @USE_FLAC_TRUE@check_flac = pipelines/flacdec +@USE_PLUGIN_FLV_FALSE@check_flv = +@USE_PLUGIN_FLV_TRUE@check_flv = \ +@USE_PLUGIN_FLV_TRUE@ elements/flvdemux \ +@USE_PLUGIN_FLV_TRUE@ elements/flvmux + +@USE_PLUGIN_ISOMP4_FALSE@check_isomp4 = +@USE_PLUGIN_ISOMP4_TRUE@check_isomp4 = elements/qtmux +@USE_PLUGIN_LAW_FALSE@check_law = +@USE_PLUGIN_LAW_TRUE@check_law = \ +@USE_PLUGIN_LAW_TRUE@ elements/mulawdec \ +@USE_PLUGIN_LAW_TRUE@ elements/mulawenc + @USE_GDK_PIXBUF_FALSE@check_gdkpixbuf = @USE_GDK_PIXBUF_TRUE@check_gdkpixbuf = elements/gdkpixbufsink +@USE_PLUGIN_ICYDEMUX_FALSE@check_icydemux = +@USE_PLUGIN_ICYDEMUX_TRUE@check_icydemux = elements/icydemux +@USE_PLUGIN_ID3DEMUX_FALSE@check_id3demux = +@USE_PLUGIN_ID3DEMUX_TRUE@check_id3demux = elements/id3demux +@USE_PLUGIN_IMAGEFREEZE_FALSE@check_imagefreeze = +@USE_PLUGIN_IMAGEFREEZE_TRUE@check_imagefreeze = elements/imagefreeze +@USE_PLUGIN_INTERLEAVE_FALSE@check_interleave = +@USE_PLUGIN_INTERLEAVE_TRUE@check_interleave = \ +@USE_PLUGIN_INTERLEAVE_TRUE@ elements/deinterleave \ +@USE_PLUGIN_INTERLEAVE_TRUE@ elements/interleave + @USE_JPEG_FALSE@check_jpeg = @USE_JPEG_TRUE@check_jpeg = \ @USE_JPEG_TRUE@ elements/jpegdec \ @USE_JPEG_TRUE@ elements/jpegenc +@USE_PLUGIN_LEVEL_FALSE@check_level = +@USE_PLUGIN_LEVEL_TRUE@check_level = elements/level +@USE_PLUGIN_MATROSKA_FALSE@check_matroska = +@USE_PLUGIN_MATROSKA_TRUE@check_matroska = \ +@USE_PLUGIN_MATROSKA_TRUE@ elements/matroskamux \ +@USE_PLUGIN_MATROSKA_TRUE@ elements/matroskaparse + +@USE_PLUGIN_MULTIFILE_FALSE@check_multifile = +@USE_PLUGIN_MULTIFILE_TRUE@check_multifile = elements/multifile +@USE_PLUGIN_REPLAYGAIN_FALSE@check_replaygain = +@USE_PLUGIN_REPLAYGAIN_TRUE@check_replaygain = \ +@USE_PLUGIN_REPLAYGAIN_TRUE@ elements/rganalysis \ +@USE_PLUGIN_REPLAYGAIN_TRUE@ elements/rglimiter \ +@USE_PLUGIN_REPLAYGAIN_TRUE@ elements/rgvolume + +@USE_PLUGIN_RTP_FALSE@check_rtp = +@USE_PLUGIN_RTP_TRUE@check_rtp = elements/rtp-payloading +@USE_PLUGIN_RTPMANAGER_FALSE@check_rtpmanager = +@USE_PLUGIN_RTPMANAGER_TRUE@check_rtpmanager = \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpaux \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpbin \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpbin_buffer_list \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpcollision \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpjitterbuffer \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpmux \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtprtx \ +@USE_PLUGIN_RTPMANAGER_TRUE@ elements/rtpsession + @USE_SOUP_FALSE@check_soup = @USE_SOUP_TRUE@check_soup = elements/souphttpsrc +@USE_PLUGIN_SPECTRUM_FALSE@check_spectrum = +@USE_PLUGIN_SPECTRUM_TRUE@check_spectrum = elements/spectrum @USE_SUNAUDIO_FALSE@check_sunaudio = @USE_SUNAUDIO_TRUE@check_sunaudio = elements/sunaudio +@USE_PLUGIN_SHAPEWIPE_FALSE@check_shapewipe = +@USE_PLUGIN_SHAPEWIPE_TRUE@check_shapewipe = elements/shapewipe @USE_TAGLIB_FALSE@check_taglib = @USE_TAGLIB_TRUE@check_taglib = \ @USE_TAGLIB_TRUE@ elements/id3v2mux \ @USE_TAGLIB_TRUE@ elements/apev2mux +@USE_PLUGIN_UDP_FALSE@check_udp = +@USE_PLUGIN_UDP_TRUE@check_udp = \ +@USE_PLUGIN_UDP_TRUE@ elements/udpsink \ +@USE_PLUGIN_UDP_TRUE@ elements/udpsrc + +@USE_PLUGIN_VIDEOCROP_FALSE@check_videocrop = +@USE_PLUGIN_VIDEOCROP_TRUE@check_videocrop = \ +@USE_PLUGIN_VIDEOCROP_TRUE@ elements/aspectratiocrop \ +@USE_PLUGIN_VIDEOCROP_TRUE@ elements/videocrop + +@USE_PLUGIN_VIDEOFILTER_FALSE@check_videofilter = +@USE_PLUGIN_VIDEOFILTER_TRUE@check_videofilter = elements/videofilter +@USE_PLUGIN_VIDEOMIXER_FALSE@check_videomixer = +@USE_PLUGIN_VIDEOMIXER_TRUE@check_videomixer = elements/videomixer @USE_VPX_FALSE@check_vpx = @USE_VPX_TRUE@check_vpx = elements/vp8enc elements/vp8dec +@USE_PLUGIN_WAVENC_FALSE@check_wavenc = +@USE_PLUGIN_WAVENC_TRUE@check_wavenc = pipelines/wavenc @USE_WAVPACK_FALSE@check_wavpack = @USE_WAVPACK_TRUE@check_wavpack = \ @USE_WAVPACK_TRUE@ elements/wavpackdec \ @USE_WAVPACK_TRUE@ elements/wavpackenc \ @USE_WAVPACK_TRUE@ pipelines/wavpack +@USE_PLUGIN_WAVPARSE_FALSE@check_wavparse = +@USE_PLUGIN_WAVPARSE_TRUE@check_wavparse = elements/wavparse +@USE_PLUGIN_Y4M_FALSE@check_y4m = +@USE_PLUGIN_Y4M_TRUE@check_y4m = elements/y4menc @HAVE_ORC_FALSE@check_orc = @HAVE_ORC_TRUE@check_orc = orc/deinterlace orc/videomixer orc/videobox VALGRIND_TO_FIX = \ @@ -1479,6 +1691,8 @@ elements_audiowsincband_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAG elements_audiowsincband_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) elements_audiowsinclimit_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_audiowsinclimit_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) +elements_autodetect_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_autodetect_LDADD = $(GST_BASE_LIBS) $(LDADD) elements_equalizer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) elements_equalizer_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD) elements_rganalysis_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) @@ -1521,8 +1735,8 @@ elements_rtpbin_buffer_list_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \ $(WARNING_CFLAGS) $(ERROR_CFLAGS) $(GST_CHECK_CFLAGS) $(AM_CFLAGS) elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \ - -lgstrtp-@GST_API_VERSION@ \ - $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) + -lgstrtp-$(GST_API_VERSION) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD) elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS) @@ -1545,6 +1759,14 @@ 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) +elements_rtprtx_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtprtx_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD) +elements_rtpsession_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD) +elements_rtpcollision_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD) +elements_rtpaux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS) +elements_rtpaux_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 @@ -1740,12 +1962,12 @@ elements/elements_audiowsinclimit-audiowsinclimit.$(OBJEXT): \ elements/audiowsinclimit$(EXEEXT): $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_DEPENDENCIES) $(EXTRA_elements_audiowsinclimit_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/audiowsinclimit$(EXEEXT) $(AM_V_CCLD)$(elements_audiowsinclimit_LINK) $(elements_audiowsinclimit_OBJECTS) $(elements_audiowsinclimit_LDADD) $(LIBS) -elements/autodetect.$(OBJEXT): elements/$(am__dirstamp) \ - elements/$(DEPDIR)/$(am__dirstamp) +elements/elements_autodetect-autodetect.$(OBJEXT): \ + elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp) elements/autodetect$(EXEEXT): $(elements_autodetect_OBJECTS) $(elements_autodetect_DEPENDENCIES) $(EXTRA_elements_autodetect_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/autodetect$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(elements_autodetect_OBJECTS) $(elements_autodetect_LDADD) $(LIBS) + $(AM_V_CCLD)$(elements_autodetect_LINK) $(elements_autodetect_OBJECTS) $(elements_autodetect_LDADD) $(LIBS) elements/avimux.$(OBJEXT): elements/$(am__dirstamp) \ elements/$(DEPDIR)/$(am__dirstamp) @@ -1926,6 +2148,12 @@ elements/rtp-payloading.$(OBJEXT): elements/$(am__dirstamp) \ elements/rtp-payloading$(EXEEXT): $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_DEPENDENCIES) $(EXTRA_elements_rtp_payloading_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtp-payloading$(EXEEXT) $(AM_V_CCLD)$(LINK) $(elements_rtp_payloading_OBJECTS) $(elements_rtp_payloading_LDADD) $(LIBS) +elements/elements_rtpaux-rtpaux.$(OBJEXT): elements/$(am__dirstamp) \ + elements/$(DEPDIR)/$(am__dirstamp) + +elements/rtpaux$(EXEEXT): $(elements_rtpaux_OBJECTS) $(elements_rtpaux_DEPENDENCIES) $(EXTRA_elements_rtpaux_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/rtpaux$(EXEEXT) + $(AM_V_CCLD)$(elements_rtpaux_LINK) $(elements_rtpaux_OBJECTS) $(elements_rtpaux_LDADD) $(LIBS) elements/rtpbin.$(OBJEXT): elements/$(am__dirstamp) \ elements/$(DEPDIR)/$(am__dirstamp) @@ -1938,6 +2166,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/elements_rtpcollision-rtpcollision.$(OBJEXT): \ + elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp) + +elements/rtpcollision$(EXEEXT): $(elements_rtpcollision_OBJECTS) $(elements_rtpcollision_DEPENDENCIES) $(EXTRA_elements_rtpcollision_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/rtpcollision$(EXEEXT) + $(AM_V_CCLD)$(elements_rtpcollision_LINK) $(elements_rtpcollision_OBJECTS) $(elements_rtpcollision_LDADD) $(LIBS) elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT): \ elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp) @@ -1950,6 +2184,18 @@ elements/elements_rtpmux-rtpmux.$(OBJEXT): elements/$(am__dirstamp) \ elements/rtpmux$(EXEEXT): $(elements_rtpmux_OBJECTS) $(elements_rtpmux_DEPENDENCIES) $(EXTRA_elements_rtpmux_DEPENDENCIES) elements/$(am__dirstamp) @rm -f elements/rtpmux$(EXEEXT) $(AM_V_CCLD)$(elements_rtpmux_LINK) $(elements_rtpmux_OBJECTS) $(elements_rtpmux_LDADD) $(LIBS) +elements/elements_rtprtx-rtprtx.$(OBJEXT): elements/$(am__dirstamp) \ + elements/$(DEPDIR)/$(am__dirstamp) + +elements/rtprtx$(EXEEXT): $(elements_rtprtx_OBJECTS) $(elements_rtprtx_DEPENDENCIES) $(EXTRA_elements_rtprtx_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/rtprtx$(EXEEXT) + $(AM_V_CCLD)$(elements_rtprtx_LINK) $(elements_rtprtx_OBJECTS) $(elements_rtprtx_LDADD) $(LIBS) +elements/elements_rtpsession-rtpsession.$(OBJEXT): \ + elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp) + +elements/rtpsession$(EXEEXT): $(elements_rtpsession_OBJECTS) $(elements_rtpsession_DEPENDENCIES) $(EXTRA_elements_rtpsession_DEPENDENCIES) elements/$(am__dirstamp) + @rm -f elements/rtpsession$(EXEEXT) + $(AM_V_CCLD)$(elements_rtpsession_LINK) $(elements_rtpsession_OBJECTS) $(elements_rtpsession_LDADD) $(LIBS) elements/shapewipe.$(OBJEXT): elements/$(am__dirstamp) \ elements/$(DEPDIR)/$(am__dirstamp) @@ -2142,7 +2388,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/apev2mux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/audiofirfilter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/audioiirfilter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/autodetect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/avimux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/avisubtitle.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/capssetter.Po@am__quote@ @@ -2157,6 +2402,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_audiopanorama-audiopanorama.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_audiowsincband-audiowsincband.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_audiowsinclimit-audiowsinclimit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_autodetect-autodetect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_deinterlace-deinterlace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_deinterleave-deinterleave.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_dtmf-dtmf.Po@am__quote@ @@ -2172,9 +2418,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rganalysis-rganalysis.Po@am__quote@ @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_rtpaux-rtpaux.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_rtpcollision-rtpcollision.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_rtprtx-rtprtx.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpsession-rtpsession.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@ @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_sunaudio-sunaudio.Po@am__quote@ @@ -2401,6 +2651,20 @@ elements/elements_audiowsinclimit-audiowsinclimit.obj: elements/audiowsinclimit. @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_audiowsinclimit_CFLAGS) $(CFLAGS) -c -o elements/elements_audiowsinclimit-audiowsinclimit.obj `if test -f 'elements/audiowsinclimit.c'; then $(CYGPATH_W) 'elements/audiowsinclimit.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiowsinclimit.c'; fi` +elements/elements_autodetect-autodetect.o: elements/autodetect.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_autodetect_CFLAGS) $(CFLAGS) -MT elements/elements_autodetect-autodetect.o -MD -MP -MF elements/$(DEPDIR)/elements_autodetect-autodetect.Tpo -c -o elements/elements_autodetect-autodetect.o `test -f 'elements/autodetect.c' || echo '$(srcdir)/'`elements/autodetect.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_autodetect-autodetect.Tpo elements/$(DEPDIR)/elements_autodetect-autodetect.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autodetect.c' object='elements/elements_autodetect-autodetect.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_autodetect_CFLAGS) $(CFLAGS) -c -o elements/elements_autodetect-autodetect.o `test -f 'elements/autodetect.c' || echo '$(srcdir)/'`elements/autodetect.c + +elements/elements_autodetect-autodetect.obj: elements/autodetect.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_autodetect_CFLAGS) $(CFLAGS) -MT elements/elements_autodetect-autodetect.obj -MD -MP -MF elements/$(DEPDIR)/elements_autodetect-autodetect.Tpo -c -o elements/elements_autodetect-autodetect.obj `if test -f 'elements/autodetect.c'; then $(CYGPATH_W) 'elements/autodetect.c'; else $(CYGPATH_W) '$(srcdir)/elements/autodetect.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_autodetect-autodetect.Tpo elements/$(DEPDIR)/elements_autodetect-autodetect.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/autodetect.c' object='elements/elements_autodetect-autodetect.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_autodetect_CFLAGS) $(CFLAGS) -c -o elements/elements_autodetect-autodetect.obj `if test -f 'elements/autodetect.c'; then $(CYGPATH_W) 'elements/autodetect.c'; else $(CYGPATH_W) '$(srcdir)/elements/autodetect.c'; fi` + elements/elements_deinterlace-deinterlace.o: elements/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_deinterlace_CFLAGS) $(CFLAGS) -MT elements/elements_deinterlace-deinterlace.o -MD -MP -MF elements/$(DEPDIR)/elements_deinterlace-deinterlace.Tpo -c -o elements/elements_deinterlace-deinterlace.o `test -f 'elements/deinterlace.c' || echo '$(srcdir)/'`elements/deinterlace.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_deinterlace-deinterlace.Tpo elements/$(DEPDIR)/elements_deinterlace-deinterlace.Po @@ -2611,6 +2875,20 @@ elements/elements_rgvolume-rgvolume.obj: elements/rgvolume.c @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_rgvolume_CFLAGS) $(CFLAGS) -c -o elements/elements_rgvolume-rgvolume.obj `if test -f 'elements/rgvolume.c'; then $(CYGPATH_W) 'elements/rgvolume.c'; else $(CYGPATH_W) '$(srcdir)/elements/rgvolume.c'; fi` +elements/elements_rtpaux-rtpaux.o: elements/rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpaux_CFLAGS) $(CFLAGS) -MT elements/elements_rtpaux-rtpaux.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpaux-rtpaux.Tpo -c -o elements/elements_rtpaux-rtpaux.o `test -f 'elements/rtpaux.c' || echo '$(srcdir)/'`elements/rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpaux-rtpaux.Tpo elements/$(DEPDIR)/elements_rtpaux-rtpaux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpaux.c' object='elements/elements_rtpaux-rtpaux.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_rtpaux_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpaux-rtpaux.o `test -f 'elements/rtpaux.c' || echo '$(srcdir)/'`elements/rtpaux.c + +elements/elements_rtpaux-rtpaux.obj: elements/rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpaux_CFLAGS) $(CFLAGS) -MT elements/elements_rtpaux-rtpaux.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtpaux-rtpaux.Tpo -c -o elements/elements_rtpaux-rtpaux.obj `if test -f 'elements/rtpaux.c'; then $(CYGPATH_W) 'elements/rtpaux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpaux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpaux-rtpaux.Tpo elements/$(DEPDIR)/elements_rtpaux-rtpaux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpaux.c' object='elements/elements_rtpaux-rtpaux.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_rtpaux_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpaux-rtpaux.obj `if test -f 'elements/rtpaux.c'; then $(CYGPATH_W) 'elements/rtpaux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpaux.c'; fi` + elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.o: elements/rtpbin_buffer_list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpbin_buffer_list_CFLAGS) $(CFLAGS) -MT elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo -c -o elements/elements_rtpbin_buffer_list-rtpbin_buffer_list.o `test -f 'elements/rtpbin_buffer_list.c' || echo '$(srcdir)/'`elements/rtpbin_buffer_list.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Tpo elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po @@ -2625,6 +2903,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_rtpcollision-rtpcollision.o: elements/rtpcollision.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpcollision_CFLAGS) $(CFLAGS) -MT elements/elements_rtpcollision-rtpcollision.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Tpo -c -o elements/elements_rtpcollision-rtpcollision.o `test -f 'elements/rtpcollision.c' || echo '$(srcdir)/'`elements/rtpcollision.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Tpo elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpcollision.c' object='elements/elements_rtpcollision-rtpcollision.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_rtpcollision_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpcollision-rtpcollision.o `test -f 'elements/rtpcollision.c' || echo '$(srcdir)/'`elements/rtpcollision.c + +elements/elements_rtpcollision-rtpcollision.obj: elements/rtpcollision.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpcollision_CFLAGS) $(CFLAGS) -MT elements/elements_rtpcollision-rtpcollision.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Tpo -c -o elements/elements_rtpcollision-rtpcollision.obj `if test -f 'elements/rtpcollision.c'; then $(CYGPATH_W) 'elements/rtpcollision.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpcollision.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Tpo elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpcollision.c' object='elements/elements_rtpcollision-rtpcollision.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_rtpcollision_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpcollision-rtpcollision.obj `if test -f 'elements/rtpcollision.c'; then $(CYGPATH_W) 'elements/rtpcollision.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpcollision.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 @@ -2653,6 +2945,34 @@ elements/elements_rtpmux-rtpmux.obj: elements/rtpmux.c @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_rtpmux_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpmux-rtpmux.obj `if test -f 'elements/rtpmux.c'; then $(CYGPATH_W) 'elements/rtpmux.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpmux.c'; fi` +elements/elements_rtprtx-rtprtx.o: elements/rtprtx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtprtx_CFLAGS) $(CFLAGS) -MT elements/elements_rtprtx-rtprtx.o -MD -MP -MF elements/$(DEPDIR)/elements_rtprtx-rtprtx.Tpo -c -o elements/elements_rtprtx-rtprtx.o `test -f 'elements/rtprtx.c' || echo '$(srcdir)/'`elements/rtprtx.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtprtx-rtprtx.Tpo elements/$(DEPDIR)/elements_rtprtx-rtprtx.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtprtx.c' object='elements/elements_rtprtx-rtprtx.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_rtprtx_CFLAGS) $(CFLAGS) -c -o elements/elements_rtprtx-rtprtx.o `test -f 'elements/rtprtx.c' || echo '$(srcdir)/'`elements/rtprtx.c + +elements/elements_rtprtx-rtprtx.obj: elements/rtprtx.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtprtx_CFLAGS) $(CFLAGS) -MT elements/elements_rtprtx-rtprtx.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtprtx-rtprtx.Tpo -c -o elements/elements_rtprtx-rtprtx.obj `if test -f 'elements/rtprtx.c'; then $(CYGPATH_W) 'elements/rtprtx.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtprtx.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtprtx-rtprtx.Tpo elements/$(DEPDIR)/elements_rtprtx-rtprtx.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtprtx.c' object='elements/elements_rtprtx-rtprtx.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_rtprtx_CFLAGS) $(CFLAGS) -c -o elements/elements_rtprtx-rtprtx.obj `if test -f 'elements/rtprtx.c'; then $(CYGPATH_W) 'elements/rtprtx.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtprtx.c'; fi` + +elements/elements_rtpsession-rtpsession.o: elements/rtpsession.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpsession_CFLAGS) $(CFLAGS) -MT elements/elements_rtpsession-rtpsession.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpsession-rtpsession.Tpo -c -o elements/elements_rtpsession-rtpsession.o `test -f 'elements/rtpsession.c' || echo '$(srcdir)/'`elements/rtpsession.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpsession-rtpsession.Tpo elements/$(DEPDIR)/elements_rtpsession-rtpsession.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpsession.c' object='elements/elements_rtpsession-rtpsession.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_rtpsession_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpsession-rtpsession.o `test -f 'elements/rtpsession.c' || echo '$(srcdir)/'`elements/rtpsession.c + +elements/elements_rtpsession-rtpsession.obj: elements/rtpsession.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpsession_CFLAGS) $(CFLAGS) -MT elements/elements_rtpsession-rtpsession.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtpsession-rtpsession.Tpo -c -o elements/elements_rtpsession-rtpsession.obj `if test -f 'elements/rtpsession.c'; then $(CYGPATH_W) 'elements/rtpsession.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpsession.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpsession-rtpsession.Tpo elements/$(DEPDIR)/elements_rtpsession-rtpsession.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/rtpsession.c' object='elements/elements_rtpsession-rtpsession.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_rtpsession_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpsession-rtpsession.obj `if test -f 'elements/rtpsession.c'; then $(CYGPATH_W) 'elements/rtpsession.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpsession.c'; fi` + elements/elements_souphttpsrc-souphttpsrc.o: elements/souphttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_souphttpsrc_CFLAGS) $(CFLAGS) -MT elements/elements_souphttpsrc-souphttpsrc.o -MD -MP -MF elements/$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Tpo -c -o elements/elements_souphttpsrc-souphttpsrc.o `test -f 'elements/souphttpsrc.c' || echo '$(srcdir)/'`elements/souphttpsrc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Tpo elements/$(DEPDIR)/elements_souphttpsrc-souphttpsrc.Po @@ -3045,23 +3365,16 @@ generic/states.log: generic/states$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/aacparse.log: elements/aacparse$(EXEEXT) - @p='elements/aacparse$(EXEEXT)'; \ - b='elements/aacparse'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/ac3parse.log: elements/ac3parse$(EXEEXT) - @p='elements/ac3parse$(EXEEXT)'; \ - b='elements/ac3parse'; \ +pipelines/simple-launch-lines.log: pipelines/simple-launch-lines$(EXEEXT) + @p='pipelines/simple-launch-lines$(EXEEXT)'; \ + b='pipelines/simple-launch-lines'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/amrparse.log: elements/amrparse$(EXEEXT) - @p='elements/amrparse$(EXEEXT)'; \ - b='elements/amrparse'; \ +pipelines/tagschecking.log: pipelines/tagschecking$(EXEEXT) + @p='pipelines/tagschecking$(EXEEXT)'; \ + b='pipelines/tagschecking'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ @@ -3073,13 +3386,6 @@ elements/alphacolor.log: elements/alphacolor$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/aspectratiocrop.log: elements/aspectratiocrop$(EXEEXT) - @p='elements/aspectratiocrop$(EXEEXT)'; \ - b='elements/aspectratiocrop'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) elements/audioamplify.log: elements/audioamplify$(EXEEXT) @p='elements/audioamplify$(EXEEXT)'; \ b='elements/audioamplify'; \ @@ -3157,6 +3463,48 @@ elements/audiowsinclimit.log: elements/audiowsinclimit$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/aacparse.log: elements/aacparse$(EXEEXT) + @p='elements/aacparse$(EXEEXT)'; \ + b='elements/aacparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/ac3parse.log: elements/ac3parse$(EXEEXT) + @p='elements/ac3parse$(EXEEXT)'; \ + b='elements/ac3parse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/amrparse.log: elements/amrparse$(EXEEXT) + @p='elements/amrparse$(EXEEXT)'; \ + b='elements/amrparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/flacparse.log: elements/flacparse$(EXEEXT) + @p='elements/flacparse$(EXEEXT)'; \ + b='elements/flacparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/mpegaudioparse.log: elements/mpegaudioparse$(EXEEXT) + @p='elements/mpegaudioparse$(EXEEXT)'; \ + b='elements/mpegaudioparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/wavpackparse.log: elements/wavpackparse$(EXEEXT) + @p='elements/wavpackparse$(EXEEXT)'; \ + b='elements/wavpackparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) elements/autodetect.log: elements/autodetect$(EXEEXT) @p='elements/autodetect$(EXEEXT)'; \ b='elements/autodetect'; \ @@ -3192,16 +3540,16 @@ elements/deinterlace.log: elements/deinterlace$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/deinterleave.log: elements/deinterleave$(EXEEXT) - @p='elements/deinterleave$(EXEEXT)'; \ - b='elements/deinterleave'; \ +elements/dtmf.log: elements/dtmf$(EXEEXT) + @p='elements/dtmf$(EXEEXT)'; \ + b='elements/dtmf'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/dtmf.log: elements/dtmf$(EXEEXT) - @p='elements/dtmf$(EXEEXT)'; \ - b='elements/dtmf'; \ +pipelines/effectv.log: pipelines/effectv$(EXEEXT) + @p='pipelines/effectv$(EXEEXT)'; \ + b='pipelines/effectv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ @@ -3213,9 +3561,9 @@ elements/equalizer.log: elements/equalizer$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/flacparse.log: elements/flacparse$(EXEEXT) - @p='elements/flacparse$(EXEEXT)'; \ - b='elements/flacparse'; \ +pipelines/flacdec.log: pipelines/flacdec$(EXEEXT) + @p='pipelines/flacdec$(EXEEXT)'; \ + b='pipelines/flacdec'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ @@ -3234,6 +3582,20 @@ elements/flvmux.log: elements/flvmux$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/gdkpixbufsink.log: elements/gdkpixbufsink$(EXEEXT) + @p='elements/gdkpixbufsink$(EXEEXT)'; \ + b='elements/gdkpixbufsink'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/qtmux.log: elements/qtmux$(EXEEXT) + @p='elements/qtmux$(EXEEXT)'; \ + b='elements/qtmux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) elements/icydemux.log: elements/icydemux$(EXEEXT) @p='elements/icydemux$(EXEEXT)'; \ b='elements/icydemux'; \ @@ -3255,6 +3617,13 @@ elements/imagefreeze.log: elements/imagefreeze$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/deinterleave.log: elements/deinterleave$(EXEEXT) + @p='elements/deinterleave$(EXEEXT)'; \ + b='elements/deinterleave'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) elements/interleave.log: elements/interleave$(EXEEXT) @p='elements/interleave$(EXEEXT)'; \ b='elements/interleave'; \ @@ -3262,58 +3631,58 @@ elements/interleave.log: elements/interleave$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/level.log: elements/level$(EXEEXT) - @p='elements/level$(EXEEXT)'; \ - b='elements/level'; \ +elements/jpegdec.log: elements/jpegdec$(EXEEXT) + @p='elements/jpegdec$(EXEEXT)'; \ + b='elements/jpegdec'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/matroskamux.log: elements/matroskamux$(EXEEXT) - @p='elements/matroskamux$(EXEEXT)'; \ - b='elements/matroskamux'; \ +elements/jpegenc.log: elements/jpegenc$(EXEEXT) + @p='elements/jpegenc$(EXEEXT)'; \ + b='elements/jpegenc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/matroskaparse.log: elements/matroskaparse$(EXEEXT) - @p='elements/matroskaparse$(EXEEXT)'; \ - b='elements/matroskaparse'; \ +elements/mulawdec.log: elements/mulawdec$(EXEEXT) + @p='elements/mulawdec$(EXEEXT)'; \ + b='elements/mulawdec'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/mpegaudioparse.log: elements/mpegaudioparse$(EXEEXT) - @p='elements/mpegaudioparse$(EXEEXT)'; \ - b='elements/mpegaudioparse'; \ +elements/mulawenc.log: elements/mulawenc$(EXEEXT) + @p='elements/mulawenc$(EXEEXT)'; \ + b='elements/mulawenc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/mulawdec.log: elements/mulawdec$(EXEEXT) - @p='elements/mulawdec$(EXEEXT)'; \ - b='elements/mulawdec'; \ +elements/level.log: elements/level$(EXEEXT) + @p='elements/level$(EXEEXT)'; \ + b='elements/level'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/mulawenc.log: elements/mulawenc$(EXEEXT) - @p='elements/mulawenc$(EXEEXT)'; \ - b='elements/mulawenc'; \ +elements/matroskamux.log: elements/matroskamux$(EXEEXT) + @p='elements/matroskamux$(EXEEXT)'; \ + b='elements/matroskamux'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/multifile.log: elements/multifile$(EXEEXT) - @p='elements/multifile$(EXEEXT)'; \ - b='elements/multifile'; \ +elements/matroskaparse.log: elements/matroskaparse$(EXEEXT) + @p='elements/matroskaparse$(EXEEXT)'; \ + b='elements/matroskaparse'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/qtmux.log: elements/qtmux$(EXEEXT) - @p='elements/qtmux$(EXEEXT)'; \ - b='elements/qtmux'; \ +elements/multifile.log: elements/multifile$(EXEEXT) + @p='elements/multifile$(EXEEXT)'; \ + b='elements/multifile'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ @@ -3346,6 +3715,13 @@ elements/rtp-payloading.log: elements/rtp-payloading$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rtpaux.log: elements/rtpaux$(EXEEXT) + @p='elements/rtpaux$(EXEEXT)'; \ + b='elements/rtpaux'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) elements/rtpbin.log: elements/rtpbin$(EXEEXT) @p='elements/rtpbin$(EXEEXT)'; \ b='elements/rtpbin'; \ @@ -3360,6 +3736,13 @@ elements/rtpbin_buffer_list.log: elements/rtpbin_buffer_list$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/rtpcollision.log: elements/rtpcollision$(EXEEXT) + @p='elements/rtpcollision$(EXEEXT)'; \ + b='elements/rtpcollision'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) elements/rtpjitterbuffer.log: elements/rtpjitterbuffer$(EXEEXT) @p='elements/rtpjitterbuffer$(EXEEXT)'; \ b='elements/rtpjitterbuffer'; \ @@ -3374,156 +3757,100 @@ elements/rtpmux.log: elements/rtpmux$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/shapewipe.log: elements/shapewipe$(EXEEXT) - @p='elements/shapewipe$(EXEEXT)'; \ - b='elements/shapewipe'; \ +elements/rtprtx.log: elements/rtprtx$(EXEEXT) + @p='elements/rtprtx$(EXEEXT)'; \ + b='elements/rtprtx'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/spectrum.log: elements/spectrum$(EXEEXT) - @p='elements/spectrum$(EXEEXT)'; \ - b='elements/spectrum'; \ +elements/rtpsession.log: elements/rtpsession$(EXEEXT) + @p='elements/rtpsession$(EXEEXT)'; \ + b='elements/rtpsession'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/udpsink.log: elements/udpsink$(EXEEXT) - @p='elements/udpsink$(EXEEXT)'; \ - b='elements/udpsink'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/udpsrc.log: elements/udpsrc$(EXEEXT) - @p='elements/udpsrc$(EXEEXT)'; \ - b='elements/udpsrc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/videocrop.log: elements/videocrop$(EXEEXT) - @p='elements/videocrop$(EXEEXT)'; \ - b='elements/videocrop'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/videofilter.log: elements/videofilter$(EXEEXT) - @p='elements/videofilter$(EXEEXT)'; \ - b='elements/videofilter'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/wavpackparse.log: elements/wavpackparse$(EXEEXT) - @p='elements/wavpackparse$(EXEEXT)'; \ - b='elements/wavpackparse'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/wavparse.log: elements/wavparse$(EXEEXT) - @p='elements/wavparse$(EXEEXT)'; \ - b='elements/wavparse'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/y4menc.log: elements/y4menc$(EXEEXT) - @p='elements/y4menc$(EXEEXT)'; \ - b='elements/y4menc'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/videomixer.log: elements/videomixer$(EXEEXT) - @p='elements/videomixer$(EXEEXT)'; \ - b='elements/videomixer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -pipelines/simple-launch-lines.log: pipelines/simple-launch-lines$(EXEEXT) - @p='pipelines/simple-launch-lines$(EXEEXT)'; \ - b='pipelines/simple-launch-lines'; \ +elements/shapewipe.log: elements/shapewipe$(EXEEXT) + @p='elements/shapewipe$(EXEEXT)'; \ + b='elements/shapewipe'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -pipelines/effectv.log: pipelines/effectv$(EXEEXT) - @p='pipelines/effectv$(EXEEXT)'; \ - b='pipelines/effectv'; \ +elements/souphttpsrc.log: elements/souphttpsrc$(EXEEXT) + @p='elements/souphttpsrc$(EXEEXT)'; \ + b='elements/souphttpsrc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -pipelines/tagschecking.log: pipelines/tagschecking$(EXEEXT) - @p='pipelines/tagschecking$(EXEEXT)'; \ - b='pipelines/tagschecking'; \ +elements/spectrum.log: elements/spectrum$(EXEEXT) + @p='elements/spectrum$(EXEEXT)'; \ + b='elements/spectrum'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -pipelines/wavenc.log: pipelines/wavenc$(EXEEXT) - @p='pipelines/wavenc$(EXEEXT)'; \ - b='pipelines/wavenc'; \ +elements/sunaudio.log: elements/sunaudio$(EXEEXT) + @p='elements/sunaudio$(EXEEXT)'; \ + b='elements/sunaudio'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -pipelines/flacdec.log: pipelines/flacdec$(EXEEXT) - @p='pipelines/flacdec$(EXEEXT)'; \ - b='pipelines/flacdec'; \ +elements/id3v2mux.log: elements/id3v2mux$(EXEEXT) + @p='elements/id3v2mux$(EXEEXT)'; \ + b='elements/id3v2mux'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/gdkpixbufsink.log: elements/gdkpixbufsink$(EXEEXT) - @p='elements/gdkpixbufsink$(EXEEXT)'; \ - b='elements/gdkpixbufsink'; \ +elements/apev2mux.log: elements/apev2mux$(EXEEXT) + @p='elements/apev2mux$(EXEEXT)'; \ + b='elements/apev2mux'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/jpegdec.log: elements/jpegdec$(EXEEXT) - @p='elements/jpegdec$(EXEEXT)'; \ - b='elements/jpegdec'; \ +elements/udpsink.log: elements/udpsink$(EXEEXT) + @p='elements/udpsink$(EXEEXT)'; \ + b='elements/udpsink'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/jpegenc.log: elements/jpegenc$(EXEEXT) - @p='elements/jpegenc$(EXEEXT)'; \ - b='elements/jpegenc'; \ +elements/udpsrc.log: elements/udpsrc$(EXEEXT) + @p='elements/udpsrc$(EXEEXT)'; \ + b='elements/udpsrc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/souphttpsrc.log: elements/souphttpsrc$(EXEEXT) - @p='elements/souphttpsrc$(EXEEXT)'; \ - b='elements/souphttpsrc'; \ +elements/aspectratiocrop.log: elements/aspectratiocrop$(EXEEXT) + @p='elements/aspectratiocrop$(EXEEXT)'; \ + b='elements/aspectratiocrop'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/sunaudio.log: elements/sunaudio$(EXEEXT) - @p='elements/sunaudio$(EXEEXT)'; \ - b='elements/sunaudio'; \ +elements/videocrop.log: elements/videocrop$(EXEEXT) + @p='elements/videocrop$(EXEEXT)'; \ + b='elements/videocrop'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/id3v2mux.log: elements/id3v2mux$(EXEEXT) - @p='elements/id3v2mux$(EXEEXT)'; \ - b='elements/id3v2mux'; \ +elements/videofilter.log: elements/videofilter$(EXEEXT) + @p='elements/videofilter$(EXEEXT)'; \ + b='elements/videofilter'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -elements/apev2mux.log: elements/apev2mux$(EXEEXT) - @p='elements/apev2mux$(EXEEXT)'; \ - b='elements/apev2mux'; \ +elements/videomixer.log: elements/videomixer$(EXEEXT) + @p='elements/videomixer$(EXEEXT)'; \ + b='elements/videomixer'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ @@ -3542,6 +3869,13 @@ elements/vp8dec.log: elements/vp8dec$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +pipelines/wavenc.log: pipelines/wavenc$(EXEEXT) + @p='pipelines/wavenc$(EXEEXT)'; \ + b='pipelines/wavenc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) elements/wavpackdec.log: elements/wavpackdec$(EXEEXT) @p='elements/wavpackdec$(EXEEXT)'; \ b='elements/wavpackdec'; \ @@ -3563,6 +3897,20 @@ pipelines/wavpack.log: pipelines/wavpack$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/wavparse.log: elements/wavparse$(EXEEXT) + @p='elements/wavparse$(EXEEXT)'; \ + b='elements/wavparse'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +elements/y4menc.log: elements/y4menc$(EXEEXT) + @p='elements/y4menc$(EXEEXT)'; \ + b='elements/y4menc'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) orc/deinterlace.log: orc/deinterlace$(EXEEXT) @p='orc/deinterlace$(EXEEXT)'; \ b='orc/deinterlace'; \ diff --git a/tests/check/elements/aacparse.c b/tests/check/elements/aacparse.c index b6112971a..220e09fab 100644 --- a/tests/check/elements/aacparse.c +++ b/tests/check/elements/aacparse.c @@ -185,6 +185,52 @@ GST_START_TEST (test_parse_handle_codec_data) GST_END_TEST; +GST_START_TEST (test_parse_proxy_constraints) +{ + GstCaps *caps; + GstElement *parse, *filter; + GstPad *sinkpad; + GstStructure *s; + + parse = gst_element_factory_make ("aacparse", NULL); + filter = gst_element_factory_make ("capsfilter", NULL); + + /* constraint on rate and version */ + caps = gst_caps_from_string ("audio/mpeg,mpegversion=2,rate=44100"); + g_object_set (filter, "caps", caps, NULL); + gst_caps_unref (caps); + + gst_element_link (parse, filter); + + sinkpad = gst_element_get_static_pad (parse, "sink"); + caps = gst_pad_query_caps (sinkpad, NULL); + GST_LOG ("caps %" GST_PTR_FORMAT, caps); + + fail_unless (gst_caps_get_size (caps) == 1); + + /* getcaps should proxy the rate constraint */ + s = gst_caps_get_structure (caps, 0); + fail_unless (gst_structure_has_name (s, "audio/mpeg")); + fail_unless_structure_field_int_equals (s, "rate", 44100); + gst_caps_unref (caps); + + /* should accept without the constraint */ + caps = gst_caps_from_string ("audio/mpeg,mpegversion=2"); + fail_unless (gst_pad_query_accept_caps (sinkpad, caps)); + gst_caps_unref (caps); + + /* should not accept with conflicting version */ + caps = gst_caps_from_string ("audio/mpeg,mpegversion=4"); + fail_if (gst_pad_query_accept_caps (sinkpad, caps)); + gst_caps_unref (caps); + + gst_object_unref (sinkpad); + + gst_object_unref (filter); + gst_object_unref (parse); +} + +GST_END_TEST; static Suite * aacparse_suite (void) @@ -207,6 +253,9 @@ aacparse_suite (void) /* Other tests */ tcase_add_test (tc_chain, test_parse_handle_codec_data); + /* caps tests */ + tcase_add_test (tc_chain, test_parse_proxy_constraints); + return s; } diff --git a/tests/check/elements/autodetect.c b/tests/check/elements/autodetect.c index c1ee314dd..578627cd6 100644 --- a/tests/check/elements/autodetect.c +++ b/tests/check/elements/autodetect.c @@ -22,22 +22,124 @@ # include <config.h> #endif +#include <gst/audio/audio.h> +#include <gst/base/gstbasesink.h> #include <gst/check/gstcheck.h> +#include <gst/video/video.h> -GST_START_TEST (test_autovideosink_ghostpad_error_case) +/* dummy sink elements */ + +#define GST_TYPE_FAKE_AUDIO_SINK (gst_fake_audio_sink_get_type ()) +typedef GstBaseSink GstFakeAudioSink; +typedef GstBaseSinkClass GstFakeAudioSinkClass; +GType gst_fake_audio_sink_get_type (void); +G_DEFINE_TYPE (GstFakeAudioSink, gst_fake_audio_sink, GST_TYPE_BASE_SINK); + +static void +gst_fake_audio_sink_class_init (GstFakeAudioSinkClass * klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + static GstStaticPadTemplate pad_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_AUDIO_CAPS_MAKE (GST_AUDIO_FORMATS_ALL) "; ")); + + gst_element_class_set_static_metadata (gstelement_class, "Fake Audio Sink", + "Sink/Audio", "Audio sink fake for testing", "Stefan Sauer"); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&pad_template)); +} + +static void +gst_fake_audio_sink_init (GstFakeAudioSink * sink) +{ +} + +#define GST_TYPE_FAKE_VIDEO_SINK (gst_fake_video_sink_get_type ()) +typedef GstBaseSink GstFakeVideoSink; +typedef GstBaseSinkClass GstFakeVideoSinkClass; +GType gst_fake_video_sink_get_type (void); +G_DEFINE_TYPE (GstFakeVideoSink, gst_fake_video_sink, GST_TYPE_BASE_SINK); + +static void +gst_fake_video_sink_class_init (GstFakeVideoSinkClass * klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + static GstStaticPadTemplate pad_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL) "; ")); + + gst_element_class_set_static_metadata (gstelement_class, "Fake Video Sink", + "Sink/Video", "Video sink fake for testing", "Stefan Sauer"); + gst_element_class_add_pad_template (gstelement_class, + gst_static_pad_template_get (&pad_template)); +} + +static void +gst_fake_video_sink_init (GstFakeVideoSink * sink) +{ +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "fakeaudiosink", G_MAXINT, + GST_TYPE_FAKE_AUDIO_SINK)) + return FALSE; + if (!gst_element_register (plugin, "fakevideosink", G_MAXINT, + GST_TYPE_FAKE_VIDEO_SINK)) + return FALSE; + return TRUE; +} + +/* tests */ + +static void +test_plugs_best (GstElement * sink, GType expected) { GstStateChangeReturn state_ret; - GstElement *pipeline, *src, *filter, *sink; - GstCaps *caps; - GstElement *fakesink; + GList *child; + + state_ret = gst_element_set_state (sink, GST_STATE_READY); + fail_unless (state_ret == GST_STATE_CHANGE_SUCCESS, NULL); + + child = GST_BIN_CHILDREN (sink); + fail_unless (child != NULL, "no elements plugged"); + ck_assert_int_eq (g_list_length (child), 1); + fail_unless (G_OBJECT_TYPE (child), expected); + + /* clean up */ + gst_element_set_state (sink, GST_STATE_NULL); + gst_object_unref (sink); +} + +GST_START_TEST (test_autovideosink_plugs_best) +{ + GstElement *sink = gst_element_factory_make ("autovideosink", NULL); + + test_plugs_best (sink, GST_TYPE_FAKE_VIDEO_SINK); +} + +GST_END_TEST; + +GST_START_TEST (test_autoaudiosink_plugs_best) +{ + GstElement *sink = gst_element_factory_make ("autoaudiosink", NULL); + + test_plugs_best (sink, GST_TYPE_FAKE_AUDIO_SINK); +} + +GST_END_TEST; + +static void +test_ghostpad_error_case (GstCaps * caps, GstElement * sink, + const gchar * fake_sink_name) +{ + GstStateChangeReturn state_ret; + GstElement *pipeline, *src, *filter, *fakesink; pipeline = gst_pipeline_new ("pipeline"); src = gst_element_factory_make ("fakesrc", NULL); filter = gst_element_factory_make ("capsfilter", NULL); - sink = gst_element_factory_make ("autovideosink", NULL); - - caps = gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING, - "ABCD", NULL); g_object_set (filter, "caps", caps, NULL); gst_caps_unref (caps); @@ -56,9 +158,9 @@ GST_START_TEST (test_autovideosink_ghostpad_error_case) state_ret = gst_element_get_state (pipeline, &state, &state, GST_CLOCK_TIME_NONE); } - fakesink = gst_bin_get_by_name (GST_BIN (sink), "fake-video-sink"); + fakesink = gst_bin_get_by_name (GST_BIN (sink), fake_sink_name); if (fakesink != NULL) { - /* no real video sink available */ + /* no real sink available */ fail_unless (state_ret == GST_STATE_CHANGE_SUCCESS, "pipeline _set_state() to PAUSED failed"); gst_object_unref (fakesink); @@ -79,67 +181,47 @@ GST_START_TEST (test_autovideosink_ghostpad_error_case) gst_object_unref (pipeline); } -GST_END_TEST; - -/* disable this for now, too many valgrind suppressions needed for libasound */ -#if 0 -GST_START_TEST (test_autoaudiosink_ghostpad_error_case) +GST_START_TEST (test_autovideosink_ghostpad_error_case) { - GstStateChangeReturn state_ret; - GstElement *pipeline, *src, *filter, *sink; - GstCaps *caps; - - pipeline = gst_pipeline_new ("pipeline"); - src = gst_element_factory_make ("fakesrc", NULL); - filter = gst_element_factory_make ("capsfilter", NULL); - sink = gst_element_factory_make ("autoaudiosink", NULL); - - caps = gst_caps_new_simple ("audio/x-raw", "width", G_TYPE_INT, 42, NULL); - - g_object_set (filter, "caps", caps, NULL); - gst_caps_unref (caps); - - gst_bin_add_many (GST_BIN (pipeline), src, filter, sink, NULL); + GstElement *sink = gst_element_factory_make ("autovideosink", NULL); + GstCaps *caps = gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING, + "ABCD", NULL); - fail_unless (gst_element_link (src, filter)); - fail_unless (gst_element_link (filter, sink)); + test_ghostpad_error_case (caps, sink, "fake-video-sink"); +} - /* this should fail, there's no such width (hopefully) */ - state_ret = gst_element_set_state (pipeline, GST_STATE_PAUSED); - fail_unless (state_ret == GST_STATE_CHANGE_FAILURE, - "pipeline _set_state() to PAUSED succeeded but should have failed"); +GST_END_TEST; - /* so, we hit an error and try to shut down the pipeline; this shouldn't - * deadlock or block anywhere when autoaudiosink resets the ghostpad - * targets etc. */ - state_ret = gst_element_set_state (pipeline, GST_STATE_NULL); - fail_unless (state_ret == GST_STATE_CHANGE_SUCCESS); +GST_START_TEST (test_autoaudiosink_ghostpad_error_case) +{ + GstElement *sink = gst_element_factory_make ("autoaudiosink", NULL); + GstCaps *caps = gst_caps_new_simple ("audio/x-raw", "format", G_TYPE_STRING, + "ABCD", NULL); - /* clean up */ - gst_object_unref (pipeline); + test_ghostpad_error_case (caps, sink, "fake-audio-sink"); } GST_END_TEST; -#endif static Suite * autodetect_suite (void) { - guint maj, min, mic, nano; - Suite *s = suite_create ("autodetect"); TCase *tc_chain = tcase_create ("general"); - suite_add_tcase (s, tc_chain); - - gst_version (&maj, &min, &mic, &nano); + gst_plugin_register_static (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "autodetect-test", + "autodetect test elements", + plugin_init, + VERSION, "LGPL", PACKAGE, PACKAGE_NAME, + "http://gstreamer.freedesktop.org"); - /* requires fixes from 0.10.10.1, but don't want to add a hard dependency - * in configure.ac just for this yet */ - if (maj > 0 || min > 10 || mic > 10 || (mic == 10 && nano > 0)) { - tcase_add_test (tc_chain, test_autovideosink_ghostpad_error_case); - /* tcase_add_test (tc_chain, test_autoaudiosink_ghostpad_error_case); */ - } + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_autovideosink_plugs_best); + tcase_add_test (tc_chain, test_autoaudiosink_plugs_best); + tcase_add_test (tc_chain, test_autovideosink_ghostpad_error_case); + tcase_add_test (tc_chain, test_autoaudiosink_ghostpad_error_case); return s; } diff --git a/tests/check/elements/interleave.c b/tests/check/elements/interleave.c index be0a4b6ba..51d169dc0 100644 --- a/tests/check/elements/interleave.c +++ b/tests/check/elements/interleave.c @@ -482,6 +482,8 @@ sink_handoff_float32 (GstElement * element, GstBuffer * buffer, GstPad * pad, GST_AUDIO_CHANNEL_POSITION_REAR_CENTER }; gst_audio_channel_positions_to_mask (pos, 2, FALSE, &mask); + } else { + g_assert_not_reached (); } caps = gst_caps_new_simple ("audio/x-raw", diff --git a/tests/check/elements/rtpaux.c b/tests/check/elements/rtpaux.c new file mode 100644 index 000000000..0fe5585a9 --- /dev/null +++ b/tests/check/elements/rtpaux.c @@ -0,0 +1,412 @@ +/* GStreamer + * + * Copyright (C) 2013 Collabora Ltd. + * @author Julien Isorce <julien.isorce@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. + */ + +#include <gst/check/gstcheck.h> +#include <gst/check/gstconsistencychecker.h> +#include <gst/check/gsttestclock.h> +#include <gst/rtp/gstrtpbuffer.h> + +static GMainLoop *main_loop; + +static void +message_received (GstBus * bus, GstMessage * message, GstPipeline * bin) +{ + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + switch (message->type) { + case GST_MESSAGE_EOS: + g_main_loop_quit (main_loop); + break; + case GST_MESSAGE_WARNING:{ + GError *gerror; + gchar *debug; + + gst_message_parse_warning (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + break; + } + case GST_MESSAGE_ERROR:{ + GError *gerror; + gchar *debug; + + gst_message_parse_error (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + g_main_loop_quit (main_loop); + break; + } + default: + break; + } +} + +typedef struct +{ + guint count; + guint nb_packets; + guint drop_every_n_packets; +} RTXSendData; + +static GstPadProbeReturn +rtprtxsend_srcpad_probe (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + GstPadProbeReturn ret = GST_PAD_PROBE_OK; + + if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) { + GstBuffer *buffer = GST_BUFFER (info->data); + RTXSendData *rtxdata = (RTXSendData *) user_data; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + guint payload_type = 0; + + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + payload_type = gst_rtp_buffer_get_payload_type (&rtp); + + /* main stream packets */ + if (payload_type == 96) { + /* count packets of the main stream */ + ++rtxdata->nb_packets; + /* drop some packets */ + if (rtxdata->count < rtxdata->drop_every_n_packets) { + ++rtxdata->count; + } else { + /* drop a packet every 'rtxdata->count' packets */ + rtxdata->count = 1; + ret = GST_PAD_PROBE_DROP; + } + } else { + /* retransmission packets */ + } + + gst_rtp_buffer_unmap (&rtp); + } + + return ret; +} + +static void +on_rtpbinreceive_pad_added (GstElement * element, GstPad * newPad, + gpointer data) +{ + GstElement *rtpdepayloader = GST_ELEMENT (data); + + gchar *padName = gst_pad_get_name (newPad); + if (g_str_has_prefix (padName, "recv_rtp_src_")) { + GstPad *sinkpad = gst_element_get_static_pad (rtpdepayloader, "sink"); + gst_pad_link (newPad, sinkpad); + gst_object_unref (sinkpad); + } + g_free (padName); +} + +static gboolean +on_timeout (gpointer data) +{ + GstEvent *eos = gst_event_new_eos (); + if (!gst_element_send_event (GST_ELEMENT (data), eos)) { + GST_ERROR ("failed to send end of stream event"); + gst_event_unref (eos); + } + + return FALSE; +} + +static GstElement * +request_aux_receive (GstElement * rtpbin, guint sessid, GstElement * receive) +{ + GstElement *bin; + GstPad *pad; + + GST_INFO ("creating AUX receiver"); + bin = gst_bin_new (NULL); + gst_bin_add (GST_BIN (bin), receive); + + pad = gst_element_get_static_pad (receive, "src"); + gst_element_add_pad (bin, gst_ghost_pad_new ("src_0", pad)); + gst_object_unref (pad); + pad = gst_element_get_static_pad (receive, "sink"); + gst_element_add_pad (bin, gst_ghost_pad_new ("sink_0", pad)); + gst_object_unref (pad); + + return bin; +} + +static GstElement * +request_aux_send (GstElement * rtpbin, guint sessid, GstElement * send) +{ + GstElement *bin; + GstPad *pad; + + GST_INFO ("creating AUX sender"); + bin = gst_bin_new (NULL); + gst_bin_add (GST_BIN (bin), send); + + pad = gst_element_get_static_pad (send, "src"); + gst_element_add_pad (bin, gst_ghost_pad_new ("src_0", pad)); + gst_object_unref (pad); + pad = gst_element_get_static_pad (send, "sink"); + gst_element_add_pad (bin, gst_ghost_pad_new ("sink_0", pad)); + gst_object_unref (pad); + + return bin; +} + + +GST_START_TEST (test_simple_rtpbin_aux) +{ + GstElement *binsend, *rtpbinsend, *src, *encoder, *rtppayloader, + *rtprtxsend, *sendrtp_udpsink, *sendrtcp_udpsink, *sendrtcp_udpsrc; + GstElement *binreceive, *rtpbinreceive, *recvrtp_udpsrc, *recvrtcp_udpsrc, + *recvrtcp_udpsink, *rtprtxreceive, *rtpdepayloader, *decoder, *converter, + *sink; + GstBus *bussend; + GstBus *busreceive; + gboolean res; + GstCaps *rtpcaps = NULL; + GstStructure *pt_map; + GstStateChangeReturn state_res = GST_STATE_CHANGE_FAILURE; + GstPad *srcpad = NULL; + guint nb_rtx_send_packets = 0; + guint nb_rtx_recv_packets = 0; + RTXSendData send_rtxdata; + send_rtxdata.count = 1; + send_rtxdata.nb_packets = 0; + send_rtxdata.drop_every_n_packets = 50; + + GST_INFO ("preparing test"); + + /* build pipeline */ + binsend = gst_pipeline_new ("pipeline_send"); + bussend = gst_element_get_bus (binsend); + gst_bus_add_signal_watch_full (bussend, G_PRIORITY_HIGH); + + binreceive = gst_pipeline_new ("pipeline_receive"); + busreceive = gst_element_get_bus (binreceive); + gst_bus_add_signal_watch_full (busreceive, G_PRIORITY_HIGH); + + rtpbinsend = gst_element_factory_make ("rtpbin", "rtpbinsend"); + g_object_set (rtpbinsend, "latency", 200, "do-retransmission", TRUE, NULL); + src = gst_element_factory_make ("audiotestsrc", "src"); + encoder = gst_element_factory_make ("speexenc", "encoder"); + rtppayloader = gst_element_factory_make ("rtpspeexpay", "rtppayloader"); + rtprtxsend = gst_element_factory_make ("rtprtxsend", "rtprtxsend"); + sendrtp_udpsink = gst_element_factory_make ("udpsink", "sendrtp_udpsink"); + g_object_set (sendrtp_udpsink, "host", "127.0.0.1", NULL); + g_object_set (sendrtp_udpsink, "port", 5006, NULL); + sendrtcp_udpsink = gst_element_factory_make ("udpsink", "sendrtcp_udpsink"); + g_object_set (sendrtcp_udpsink, "host", "127.0.0.1", NULL); + g_object_set (sendrtcp_udpsink, "port", 5007, NULL); + g_object_set (sendrtcp_udpsink, "sync", FALSE, NULL); + g_object_set (sendrtcp_udpsink, "async", FALSE, NULL); + sendrtcp_udpsrc = gst_element_factory_make ("udpsrc", "sendrtcp_udpsrc"); + g_object_set (sendrtcp_udpsrc, "port", 5009, NULL); + + rtpbinreceive = gst_element_factory_make ("rtpbin", "rtpbinreceive"); + g_object_set (rtpbinreceive, "latency", 200, "do-retransmission", TRUE, NULL); + recvrtp_udpsrc = gst_element_factory_make ("udpsrc", "recvrtp_udpsrc"); + g_object_set (recvrtp_udpsrc, "port", 5006, NULL); + rtpcaps = + gst_caps_from_string + ("application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)SPEEX,encoding-params=(string)1,octet-align=(string)1"); + g_object_set (recvrtp_udpsrc, "caps", rtpcaps, NULL); + gst_caps_unref (rtpcaps); + recvrtcp_udpsrc = gst_element_factory_make ("udpsrc", "recvrtcp_udpsrc"); + g_object_set (recvrtcp_udpsrc, "port", 5007, NULL); + recvrtcp_udpsink = gst_element_factory_make ("udpsink", "recvrtcp_udpsink"); + g_object_set (recvrtcp_udpsink, "host", "127.0.0.1", NULL); + g_object_set (recvrtcp_udpsink, "port", 5009, NULL); + g_object_set (recvrtcp_udpsink, "sync", FALSE, NULL); + g_object_set (recvrtcp_udpsink, "async", FALSE, NULL); + rtprtxreceive = gst_element_factory_make ("rtprtxreceive", "rtprtxreceive"); + rtpdepayloader = gst_element_factory_make ("rtpspeexdepay", "rtpdepayloader"); + decoder = gst_element_factory_make ("speexdec", "decoder"); + converter = gst_element_factory_make ("identity", "converter"); + sink = gst_element_factory_make ("fakesink", "sink"); + g_object_set (sink, "sync", TRUE, NULL); + + gst_bin_add_many (GST_BIN (binsend), rtpbinsend, src, encoder, rtppayloader, + sendrtp_udpsink, sendrtcp_udpsink, sendrtcp_udpsrc, NULL); + + gst_bin_add_many (GST_BIN (binreceive), rtpbinreceive, + recvrtp_udpsrc, recvrtcp_udpsrc, recvrtcp_udpsink, + rtpdepayloader, decoder, converter, sink, NULL); + + g_signal_connect (rtpbinreceive, "pad-added", + G_CALLBACK (on_rtpbinreceive_pad_added), rtpdepayloader); + + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "96", G_TYPE_UINT, 99, NULL); + g_object_set (rtppayloader, "pt", 96, NULL); + g_object_set (rtppayloader, "seqnum-offset", 1, NULL); + g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL); + g_object_set (rtprtxreceive, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + + /* set rtp aux receive */ + g_signal_connect (rtpbinreceive, "request-aux-receiver", (GCallback) + request_aux_receive, rtprtxreceive); + /* set rtp aux send */ + g_signal_connect (rtpbinsend, "request-aux-sender", (GCallback) + request_aux_send, rtprtxsend); + + /* gst-launch-1.0 rtpbin name=rtpbin audiotestsrc ! amrnbenc ! rtpamrpay ! \ + * rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! udpsink host="127.0.0.1" \ + * port=5002 rtpbin.send_rtcp_src_1 ! udpsink host="127.0.0.1" port=5003 \ + * sync=false async=false udpsrc port=5007 ! rtpbin.recv_rtcp_sink_1 + */ + + res = gst_element_link (src, encoder); + fail_unless (res == TRUE, NULL); + res = gst_element_link (encoder, rtppayloader); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (rtppayloader, "src", rtpbinsend, + "send_rtp_sink_0", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (rtpbinsend, "send_rtp_src_0", sendrtp_udpsink, + "sink", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (rtpbinsend, "send_rtcp_src_0", + sendrtcp_udpsink, "sink", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (sendrtcp_udpsrc, "src", rtpbinsend, + "recv_rtcp_sink_0", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + + srcpad = gst_element_get_static_pad (rtpbinsend, "send_rtp_src_0"); + gst_pad_add_probe (srcpad, + (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) rtprtxsend_srcpad_probe, &send_rtxdata, NULL); + gst_object_unref (srcpad); + + /* gst-launch-1.0 rtpbin name=rtpbin udpsrc caps="application/x-rtp,media=(string)audio, \ + * clock-rate=(int)8000,encoding-name=(string)AMR,encoding-params=(string)1,o + * ctet-align=(string)1" port=5002 ! rtpbin.recv_rtp_sink_1 rtpbin. ! rtpamrdepay ! \ + * amrnbdec ! fakesink sync=True udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1 \ + * rtpbin.send_rtcp_src_1 ! udpsink host="127.0.0.1" port=5007 sync=false async=false + */ + + res = + gst_element_link_pads_full (recvrtp_udpsrc, "src", rtpbinreceive, + "recv_rtp_sink_0", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (rtpdepayloader, "src", decoder, "sink", + GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = gst_element_link (decoder, converter); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (converter, "src", sink, "sink", + GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (recvrtcp_udpsrc, "src", rtpbinreceive, + "recv_rtcp_sink_0", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = + gst_element_link_pads_full (rtpbinreceive, "send_rtcp_src_0", + recvrtcp_udpsink, "sink", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bussend, "message::error", (GCallback) message_received, + binsend); + g_signal_connect (bussend, "message::warning", (GCallback) message_received, + binsend); + g_signal_connect (bussend, "message::eos", (GCallback) message_received, + binsend); + + g_signal_connect (busreceive, "message::error", (GCallback) message_received, + binreceive); + g_signal_connect (busreceive, "message::warning", + (GCallback) message_received, binreceive); + g_signal_connect (busreceive, "message::eos", (GCallback) message_received, + binreceive); + + state_res = gst_element_set_state (binreceive, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + state_res = gst_element_set_state (binsend, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + g_timeout_add (5000, on_timeout, binsend); + g_timeout_add (5000, on_timeout, binreceive); + + GST_INFO ("enter mainloop"); + g_main_loop_run (main_loop); + g_main_loop_run (main_loop); + GST_INFO ("exit mainloop"); + + /* check that FB NACK is working */ + g_object_get (G_OBJECT (rtprtxsend), "num-rtx-requests", &nb_rtx_send_packets, + NULL); + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-requests", + &nb_rtx_recv_packets, NULL); + + state_res = gst_element_set_state (binsend, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + state_res = gst_element_set_state (binreceive, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + GST_INFO ("nb_rtx_send_packets %d", nb_rtx_send_packets); + GST_INFO ("nb_rtx_recv_packets %d", nb_rtx_recv_packets); + fail_if (nb_rtx_send_packets < 1); + fail_if (nb_rtx_recv_packets < 1); + + /* cleanup */ + g_main_loop_unref (main_loop); + + gst_bus_remove_signal_watch (bussend); + gst_object_unref (bussend); + gst_object_unref (binsend); + + gst_bus_remove_signal_watch (busreceive); + gst_object_unref (busreceive); + gst_object_unref (binreceive); +} + +GST_END_TEST; + +static Suite * +rtpaux_suite (void) +{ + Suite *s = suite_create ("rtpaux"); + TCase *tc_chain = tcase_create ("general"); + + tcase_set_timeout (tc_chain, 10000); + + suite_add_tcase (s, tc_chain); + + tcase_add_test (tc_chain, test_simple_rtpbin_aux); + + return s; +} + +GST_CHECK_MAIN (rtpaux); diff --git a/tests/check/elements/rtpbin.c b/tests/check/elements/rtpbin.c index 389d3330b..fc52b38cb 100644 --- a/tests/check/elements/rtpbin.c +++ b/tests/check/elements/rtpbin.c @@ -154,7 +154,7 @@ chain_rtp_packet (GstPad * pad, CleanupData * data) data->seqnum = 0; } - gst_pad_send_event (pad, gst_event_new_stream_start (gst_pad_get_name (pad))); + gst_pad_send_event (pad, gst_event_new_stream_start (GST_OBJECT_NAME (pad))); gst_pad_send_event (pad, gst_event_new_caps (caps)); gst_segment_init (&segment, GST_FORMAT_TIME); gst_pad_send_event (pad, gst_event_new_segment (&segment)); @@ -430,6 +430,262 @@ GST_START_TEST (test_request_pad_by_template_name) GST_END_TEST; +static GstElement * +encoder_cb (GstElement * rtpbin, guint sessid, GstElement * bin) +{ + GstPad *srcpad, *sinkpad; + + fail_unless (sessid == 2); + + GST_DEBUG ("making encoder"); + sinkpad = gst_ghost_pad_new_no_target ("rtp_sink_2", GST_PAD_SINK); + srcpad = gst_ghost_pad_new_no_target ("rtp_src_2", GST_PAD_SRC); + + gst_element_add_pad (bin, sinkpad); + gst_element_add_pad (bin, srcpad); + + return gst_object_ref (bin); +} + +static GstElement * +encoder_cb2 (GstElement * rtpbin, guint sessid, GstElement * bin) +{ + GstPad *srcpad, *sinkpad; + + fail_unless (sessid == 3); + + GST_DEBUG ("making encoder"); + sinkpad = gst_ghost_pad_new_no_target ("rtp_sink_3", GST_PAD_SINK); + srcpad = gst_ghost_pad_new_no_target ("rtp_src_3", GST_PAD_SRC); + + gst_element_add_pad (bin, sinkpad); + gst_element_add_pad (bin, srcpad); + + return gst_object_ref (bin); +} + +GST_START_TEST (test_encoder) +{ + GstElement *rtpbin, *bin; + GstPad *rtp_sink1, *rtp_sink2; + gulong id; + + bin = gst_bin_new ("rtpenc"); + + rtpbin = gst_element_factory_make ("rtpbin", "rtpbin"); + + id = g_signal_connect (rtpbin, "request-rtp-encoder", (GCallback) encoder_cb, + bin); + + rtp_sink1 = gst_element_get_request_pad (rtpbin, "send_rtp_sink_2"); + fail_unless (rtp_sink1 != NULL); + fail_unless_equals_string (GST_PAD_NAME (rtp_sink1), "send_rtp_sink_2"); + ASSERT_OBJECT_REFCOUNT (rtp_sink1, "rtp_sink1", 2); + + g_signal_handler_disconnect (rtpbin, id); + + id = g_signal_connect (rtpbin, "request-rtp-encoder", (GCallback) encoder_cb2, + bin); + + rtp_sink2 = gst_element_get_request_pad (rtpbin, "send_rtp_sink_3"); + fail_unless (rtp_sink2 != NULL); + + /* remove the session */ + gst_element_release_request_pad (rtpbin, rtp_sink1); + gst_object_unref (rtp_sink1); + + gst_element_release_request_pad (rtpbin, rtp_sink2); + gst_object_unref (rtp_sink2); + + /* nothing left anymore now */ + fail_unless (rtpbin->numsinkpads == 0); + fail_unless (rtpbin->numsrcpads == 0); + + gst_object_unref (rtpbin); + gst_object_unref (bin); +} + +GST_END_TEST; + +static GstElement * +decoder_cb (GstElement * rtpbin, guint sessid, gpointer user_data) +{ + GstElement *bin; + GstPad *srcpad, *sinkpad; + + bin = gst_bin_new (NULL); + + GST_DEBUG ("making decoder"); + sinkpad = gst_ghost_pad_new_no_target ("rtp_sink", GST_PAD_SINK); + srcpad = gst_ghost_pad_new_no_target ("rtp_src", GST_PAD_SRC); + + gst_element_add_pad (bin, sinkpad); + gst_element_add_pad (bin, srcpad); + + return bin; +} + +GST_START_TEST (test_decoder) +{ + GstElement *rtpbin; + GstPad *rtp_sink1, *rtp_sink2; + gulong id; + + + rtpbin = gst_element_factory_make ("rtpbin", "rtpbin"); + + id = g_signal_connect (rtpbin, "request-rtp-decoder", (GCallback) decoder_cb, + NULL); + + rtp_sink1 = gst_element_get_request_pad (rtpbin, "recv_rtp_sink_2"); + fail_unless (rtp_sink1 != NULL); + fail_unless_equals_string (GST_PAD_NAME (rtp_sink1), "recv_rtp_sink_2"); + ASSERT_OBJECT_REFCOUNT (rtp_sink1, "rtp_sink1", 2); + + rtp_sink2 = gst_element_get_request_pad (rtpbin, "recv_rtp_sink_3"); + fail_unless (rtp_sink2 != NULL); + + g_signal_handler_disconnect (rtpbin, id); + + /* remove the session */ + gst_element_release_request_pad (rtpbin, rtp_sink1); + gst_object_unref (rtp_sink1); + + gst_element_release_request_pad (rtpbin, rtp_sink2); + gst_object_unref (rtp_sink2); + + /* nothing left anymore now */ + fail_unless (rtpbin->numsinkpads == 0); + fail_unless (rtpbin->numsrcpads == 0); + + gst_object_unref (rtpbin); +} + +GST_END_TEST; + +static GstElement * +aux_sender_cb (GstElement * rtpbin, guint sessid, gpointer user_data) +{ + GstElement *bin; + GstPad *srcpad, *sinkpad; + + bin = gst_bin_new (NULL); + + GST_DEBUG ("making AUX sender"); + sinkpad = gst_ghost_pad_new_no_target ("sink_2", GST_PAD_SINK); + gst_element_add_pad (bin, sinkpad); + + srcpad = gst_ghost_pad_new_no_target ("src_2", GST_PAD_SRC); + gst_element_add_pad (bin, srcpad); + srcpad = gst_ghost_pad_new_no_target ("src_1", GST_PAD_SRC); + gst_element_add_pad (bin, srcpad); + srcpad = gst_ghost_pad_new_no_target ("src_3", GST_PAD_SRC); + gst_element_add_pad (bin, srcpad); + + return bin; +} + +GST_START_TEST (test_aux_sender) +{ + GstElement *rtpbin; + GstPad *rtp_sink1, *rtp_src, *rtcp_src; + gulong id; + + rtpbin = gst_element_factory_make ("rtpbin", "rtpbin"); + + id = g_signal_connect (rtpbin, "request-aux-sender", + (GCallback) aux_sender_cb, NULL); + + rtp_sink1 = gst_element_get_request_pad (rtpbin, "send_rtp_sink_2"); + fail_unless (rtp_sink1 != NULL); + fail_unless_equals_string (GST_PAD_NAME (rtp_sink1), "send_rtp_sink_2"); + ASSERT_OBJECT_REFCOUNT (rtp_sink1, "rtp_sink1", 2); + + g_signal_handler_disconnect (rtpbin, id); + + rtp_src = gst_element_get_static_pad (rtpbin, "send_rtp_src_2"); + fail_unless (rtp_src != NULL); + gst_object_unref (rtp_src); + + rtp_src = gst_element_get_static_pad (rtpbin, "send_rtp_src_1"); + fail_unless (rtp_src != NULL); + gst_object_unref (rtp_src); + + rtcp_src = gst_element_get_request_pad (rtpbin, "send_rtcp_src_1"); + fail_unless (rtcp_src != NULL); + gst_element_release_request_pad (rtpbin, rtcp_src); + gst_object_unref (rtcp_src); + + rtp_src = gst_element_get_static_pad (rtpbin, "send_rtp_src_3"); + fail_unless (rtp_src != NULL); + gst_object_unref (rtp_src); + + /* remove the session */ + gst_element_release_request_pad (rtpbin, rtp_sink1); + gst_object_unref (rtp_sink1); + + gst_object_unref (rtpbin); +} + +GST_END_TEST; + +static GstElement * +aux_receiver_cb (GstElement * rtpbin, guint sessid, gpointer user_data) +{ + GstElement *bin; + GstPad *srcpad, *sinkpad; + + bin = gst_bin_new (NULL); + + GST_DEBUG ("making AUX receiver"); + srcpad = gst_ghost_pad_new_no_target ("src_2", GST_PAD_SRC); + gst_element_add_pad (bin, srcpad); + + sinkpad = gst_ghost_pad_new_no_target ("sink_2", GST_PAD_SINK); + gst_element_add_pad (bin, sinkpad); + sinkpad = gst_ghost_pad_new_no_target ("sink_1", GST_PAD_SINK); + gst_element_add_pad (bin, sinkpad); + sinkpad = gst_ghost_pad_new_no_target ("sink_3", GST_PAD_SINK); + gst_element_add_pad (bin, sinkpad); + + return bin; +} + +GST_START_TEST (test_aux_receiver) +{ + GstElement *rtpbin; + GstPad *rtp_sink1, *rtp_sink2, *rtcp_sink; + gulong id; + + rtpbin = gst_element_factory_make ("rtpbin", "rtpbin"); + + id = g_signal_connect (rtpbin, "request-aux-receiver", + (GCallback) aux_receiver_cb, NULL); + + rtp_sink1 = gst_element_get_request_pad (rtpbin, "recv_rtp_sink_2"); + fail_unless (rtp_sink1 != NULL); + + rtp_sink2 = gst_element_get_request_pad (rtpbin, "recv_rtp_sink_1"); + fail_unless (rtp_sink2 != NULL); + + g_signal_handler_disconnect (rtpbin, id); + + rtcp_sink = gst_element_get_request_pad (rtpbin, "recv_rtcp_sink_1"); + fail_unless (rtcp_sink != NULL); + gst_element_release_request_pad (rtpbin, rtcp_sink); + gst_object_unref (rtcp_sink); + + /* remove the session */ + gst_element_release_request_pad (rtpbin, rtp_sink1); + gst_object_unref (rtp_sink1); + gst_element_release_request_pad (rtpbin, rtp_sink2); + gst_object_unref (rtp_sink2); + + gst_object_unref (rtpbin); +} + +GST_END_TEST; + static Suite * gstrtpbin_suite (void) { @@ -442,6 +698,10 @@ gstrtpbin_suite (void) tcase_add_test (tc_chain, test_cleanup_recv); tcase_add_test (tc_chain, test_cleanup_recv2); tcase_add_test (tc_chain, test_request_pad_by_template_name); + tcase_add_test (tc_chain, test_encoder); + tcase_add_test (tc_chain, test_decoder); + tcase_add_test (tc_chain, test_aux_sender); + tcase_add_test (tc_chain, test_aux_receiver); return s; } diff --git a/tests/check/elements/rtpcollision.c b/tests/check/elements/rtpcollision.c new file mode 100644 index 000000000..6c09ef19e --- /dev/null +++ b/tests/check/elements/rtpcollision.c @@ -0,0 +1,462 @@ +/* GStreamer + * + * Copyright (C) 2013 Collabora Ltd. + * @author Julien Isorce <julien.isorce@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. + */ + +#include <gst/check/gstcheck.h> +#include <gst/net/gstnetaddressmeta.h> +#include <gst/rtp/gstrtpbuffer.h> +#include <gst/rtp/gstrtcpbuffer.h> + +static GMainLoop *main_loop; +static GstPad *srcpad; + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtcp") + ); + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtcp") + ); + +static void +message_received (GstBus * bus, GstMessage * message, GstPipeline * bin) +{ + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + switch (message->type) { + case GST_MESSAGE_EOS: + g_main_loop_quit (main_loop); + break; + case GST_MESSAGE_WARNING:{ + GError *gerror; + gchar *debug; + + gst_message_parse_warning (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + break; + } + case GST_MESSAGE_ERROR:{ + GError *gerror; + gchar *debug; + + gst_message_parse_error (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + g_main_loop_quit (main_loop); + break; + } + default: + break; + } +} + +static GstBuffer * +create_rtcp_app (guint32 ssrc) +{ + GInetAddress *inet_addr_0; + guint16 port = 5678; + GSocketAddress *socket_addr_0; + GstBuffer *rtcp_buffer; + GstRTCPPacket *rtcp_packet = NULL; + GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT; + + inet_addr_0 = g_inet_address_new_from_string ("192.168.1.1"); + socket_addr_0 = g_inet_socket_address_new (inet_addr_0, port); + g_object_unref (inet_addr_0); + + rtcp_buffer = gst_rtcp_buffer_new (1400); + gst_buffer_add_net_address_meta (rtcp_buffer, socket_addr_0); + g_object_unref (socket_addr_0); + + /* need to begin with rr */ + gst_rtcp_buffer_map (rtcp_buffer, GST_MAP_READWRITE, &rtcp); + rtcp_packet = g_slice_new0 (GstRTCPPacket); + gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_RR, rtcp_packet); + gst_rtcp_packet_rr_set_ssrc (rtcp_packet, ssrc); + g_slice_free (GstRTCPPacket, rtcp_packet); + + /* useful to make the rtcp buffer valid */ + rtcp_packet = g_slice_new0 (GstRTCPPacket); + gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_APP, rtcp_packet); + g_slice_free (GstRTCPPacket, rtcp_packet); + gst_rtcp_buffer_unmap (&rtcp); + + return rtcp_buffer; +} + +static guint nb_ssrc_changes; +static guint ssrc_prev; + +static GstPadProbeReturn +rtpsession_sinkpad_probe (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + GstPadProbeReturn ret = GST_PAD_PROBE_OK; + + if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) { + GstBuffer *buffer = GST_BUFFER (info->data); + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + GstBuffer *rtcp_buffer = 0; + guint ssrc = 0; + + /* retrieve current ssrc */ + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + ssrc = gst_rtp_buffer_get_ssrc (&rtp); + gst_rtp_buffer_unmap (&rtp); + + /* if not first buffer, check that our ssrc has changed */ + if (ssrc_prev != -1 && ssrc != ssrc_prev) + ++nb_ssrc_changes; + + /* update prev ssrc */ + ssrc_prev = ssrc; + + /* feint a collision on recv_rtcp_sink pad of gstrtpsession + * (note that after being marked as collied the rtpsession ignores + * all non bye packets) + */ + rtcp_buffer = create_rtcp_app (ssrc); + + /* push collied packet on recv_rtcp_sink */ + gst_pad_push (srcpad, rtcp_buffer); + } + + return ret; +} + +static GstFlowReturn +fake_udp_sink_chain_func (GstPad * pad, GstObject * parent, GstBuffer * buffer) +{ + gst_buffer_unref (buffer); + return GST_FLOW_OK; +} + +/* This test build the pipeline audiotestsrc ! speexenc ! rtpspeexpay ! \ + * rtpsession ! fakesink + * It manually pushs buffer into rtpsession with same ssrc but different + * ip so that collision can be detected + * The test checks that the payloader change their ssrc + */ +GST_START_TEST (test_master_ssrc_collision) +{ + GstElement *bin, *src, *encoder, *rtppayloader, *rtpsession, *sink; + GstBus *bus = NULL; + gboolean res = FALSE; + GstSegment segment; + GstPad *sinkpad = NULL; + GstPad *rtcp_sinkpad = NULL; + GstPad *fake_udp_sinkpad = NULL; + GstPad *rtcp_srcpad = NULL; + GstStateChangeReturn state_res = GST_STATE_CHANGE_FAILURE; + + GST_INFO ("preparing test"); + + nb_ssrc_changes = 0; + ssrc_prev = -1; + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src = gst_element_factory_make ("audiotestsrc", "src"); + g_object_set (src, "num-buffers", 5, NULL); + encoder = gst_element_factory_make ("speexenc", NULL); + rtppayloader = gst_element_factory_make ("rtpspeexpay", NULL); + g_object_set (rtppayloader, "pt", 96, NULL); + rtpsession = gst_element_factory_make ("rtpsession", NULL); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src, encoder, rtppayloader, + rtpsession, sink, NULL); + + /* link elements */ + res = gst_element_link (src, encoder); + fail_unless (res == TRUE, NULL); + res = gst_element_link (encoder, rtppayloader); + fail_unless (res == TRUE, NULL); + res = gst_element_link_pads_full (rtppayloader, "src", + rtpsession, "send_rtp_sink", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = gst_element_link_pads_full (rtpsession, "send_rtp_src", + sink, "sink", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + + /* add probe on rtpsession sink pad to induce collision */ + sinkpad = gst_element_get_static_pad (rtpsession, "send_rtp_sink"); + gst_pad_add_probe (sinkpad, + (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) rtpsession_sinkpad_probe, NULL, NULL); + gst_object_unref (sinkpad); + + /* setup rtcp link */ + srcpad = gst_pad_new_from_static_template (&srctemplate, "src"); + rtcp_sinkpad = gst_element_get_request_pad (rtpsession, "recv_rtcp_sink"); + fail_unless (gst_pad_link (srcpad, rtcp_sinkpad) == GST_PAD_LINK_OK, NULL); + gst_object_unref (rtcp_sinkpad); + res = gst_pad_set_active (srcpad, TRUE); + fail_if (res == FALSE); + res = + gst_pad_push_event (srcpad, + gst_event_new_stream_start ("my_rtcp_stream_id")); + fail_if (res == FALSE); + gst_segment_init (&segment, GST_FORMAT_TIME); + res = gst_pad_push_event (srcpad, gst_event_new_segment (&segment)); + fail_if (res == FALSE); + + fake_udp_sinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink"); + gst_pad_set_chain_function (fake_udp_sinkpad, fake_udp_sink_chain_func); + rtcp_srcpad = gst_element_get_request_pad (rtpsession, "send_rtcp_src"); + fail_unless (gst_pad_link (rtcp_srcpad, fake_udp_sinkpad) == GST_PAD_LINK_OK, + NULL); + gst_object_unref (rtcp_srcpad); + res = gst_pad_set_active (fake_udp_sinkpad, TRUE); + fail_if (res == FALSE); + + /* connect messages */ + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + GST_INFO ("running main loop"); + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* cleanup */ + gst_object_unref (srcpad); + gst_object_unref (fake_udp_sinkpad); + g_main_loop_unref (main_loop); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); + + /* check results */ + fail_unless_equals_int (nb_ssrc_changes, 7); +} + +GST_END_TEST; + +static guint ssrc_before; +static guint ssrc_after; +static guint rtx_ssrc_before; +static guint rtx_ssrc_after; + +static GstPadProbeReturn +rtpsession_sinkpad_probe2 (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + GstPadProbeReturn ret = GST_PAD_PROBE_OK; + + if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) { + GstBuffer *buffer = GST_BUFFER (info->data); + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + guint payload_type = 0; + + static gint i = 0; + + /* retrieve current ssrc for retransmission stream only */ + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + payload_type = gst_rtp_buffer_get_payload_type (&rtp); + if (payload_type == 99) { + if (i < 3) + rtx_ssrc_before = gst_rtp_buffer_get_ssrc (&rtp); + else + rtx_ssrc_after = gst_rtp_buffer_get_ssrc (&rtp); + } else { + /* ask to retransmit every packet */ + GstEvent *event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("GstRTPRetransmissionRequest", + "seqnum", G_TYPE_UINT, gst_rtp_buffer_get_seq (&rtp), + "ssrc", G_TYPE_UINT, gst_rtp_buffer_get_ssrc (&rtp), + NULL)); + gst_pad_push_event (pad, event); + + if (i < 3) + ssrc_before = gst_rtp_buffer_get_ssrc (&rtp); + else + ssrc_after = gst_rtp_buffer_get_ssrc (&rtp); + } + gst_rtp_buffer_unmap (&rtp); + + /* feint a collision on recv_rtcp_sink pad of gstrtpsession + * (note that after being marked as collied the rtpsession ignores + * all non bye packets) + */ + if (i == 2) { + GstBuffer *rtcp_buffer = create_rtcp_app (rtx_ssrc_before); + + /* push collied packet on recv_rtcp_sink */ + gst_pad_push (srcpad, rtcp_buffer); + } + + ++i; + } + + return ret; +} + +/* This test build the pipeline audiotestsrc ! speexenc ! rtpspeexpay ! \ + * rtprtxsend ! rtpsession ! fakesink + * It manually pushs buffer into rtpsession with same ssrc than rtx stream + * but different ip so that collision can be detected + * The test checks that the rtx elements changes its ssrc whereas + * the payloader keeps its master ssrc + */ +GST_START_TEST (test_rtx_ssrc_collision) +{ + GstElement *bin, *src, *encoder, *rtppayloader, *rtprtxsend, *rtpsession, + *sink; + GstBus *bus = NULL; + gboolean res = FALSE; + GstSegment segment; + GstPad *sinkpad = NULL; + GstPad *rtcp_sinkpad = NULL; + GstPad *fake_udp_sinkpad = NULL; + GstPad *rtcp_srcpad = NULL; + GstStateChangeReturn state_res = GST_STATE_CHANGE_FAILURE; + GstStructure *pt_map; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src = gst_element_factory_make ("audiotestsrc", "src"); + g_object_set (src, "num-buffers", 5, NULL); + encoder = gst_element_factory_make ("speexenc", NULL); + rtppayloader = gst_element_factory_make ("rtpspeexpay", NULL); + g_object_set (rtppayloader, "pt", 96, NULL); + rtprtxsend = gst_element_factory_make ("rtprtxsend", NULL); + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "96", G_TYPE_UINT, 99, NULL); + g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + rtpsession = gst_element_factory_make ("rtpsession", NULL); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src, encoder, rtppayloader, rtprtxsend, + rtpsession, sink, NULL); + + /* link elements */ + res = gst_element_link (src, encoder); + fail_unless (res == TRUE, NULL); + res = gst_element_link (encoder, rtppayloader); + fail_unless (res == TRUE, NULL); + res = gst_element_link (rtppayloader, rtprtxsend); + fail_unless (res == TRUE, NULL); + res = gst_element_link_pads_full (rtprtxsend, "src", + rtpsession, "send_rtp_sink", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + res = gst_element_link_pads_full (rtpsession, "send_rtp_src", + sink, "sink", GST_PAD_LINK_CHECK_NOTHING); + fail_unless (res == TRUE, NULL); + + /* add probe on rtpsession sink pad to induce collision */ + sinkpad = gst_element_get_static_pad (rtpsession, "send_rtp_sink"); + gst_pad_add_probe (sinkpad, + (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) rtpsession_sinkpad_probe2, NULL, NULL); + gst_object_unref (sinkpad); + + /* setup rtcp link */ + srcpad = gst_pad_new_from_static_template (&srctemplate, "src"); + rtcp_sinkpad = gst_element_get_request_pad (rtpsession, "recv_rtcp_sink"); + fail_unless (gst_pad_link (srcpad, rtcp_sinkpad) == GST_PAD_LINK_OK, NULL); + gst_object_unref (rtcp_sinkpad); + res = gst_pad_set_active (srcpad, TRUE); + fail_if (res == FALSE); + res = + gst_pad_push_event (srcpad, + gst_event_new_stream_start ("my_rtcp_stream_id")); + fail_if (res == FALSE); + gst_segment_init (&segment, GST_FORMAT_TIME); + res = gst_pad_push_event (srcpad, gst_event_new_segment (&segment)); + fail_if (res == FALSE); + + fake_udp_sinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink"); + gst_pad_set_chain_function (fake_udp_sinkpad, fake_udp_sink_chain_func); + rtcp_srcpad = gst_element_get_request_pad (rtpsession, "send_rtcp_src"); + fail_unless (gst_pad_link (rtcp_srcpad, fake_udp_sinkpad) == GST_PAD_LINK_OK, + NULL); + gst_object_unref (rtcp_srcpad); + res = gst_pad_set_active (fake_udp_sinkpad, TRUE); + fail_if (res == FALSE); + + /* connect messages */ + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + GST_INFO ("running main loop"); + g_main_loop_run (main_loop); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* cleanup */ + gst_object_unref (srcpad); + gst_object_unref (fake_udp_sinkpad); + g_main_loop_unref (main_loop); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); + + /* check results */ + fail_if (rtx_ssrc_before == rtx_ssrc_after); + fail_if (ssrc_before != ssrc_after); +} + +GST_END_TEST; + +static Suite * +rtpcollision_suite (void) +{ + Suite *s = suite_create ("rtpcollision"); + TCase *tc_chain = tcase_create ("general"); + + tcase_set_timeout (tc_chain, 10); + + suite_add_tcase (s, tc_chain); + + tcase_add_test (tc_chain, test_master_ssrc_collision); + tcase_add_test (tc_chain, test_rtx_ssrc_collision); + + return s; +} + +GST_CHECK_MAIN (rtpcollision); diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c index dff2e6cc5..578c8e9a8 100644 --- a/tests/check/elements/rtpjitterbuffer.c +++ b/tests/check/elements/rtpjitterbuffer.c @@ -481,6 +481,7 @@ setup_testharness (TestData * data) GstPad *jb_sink_pad, *jb_src_pad; GstSegment seg; GstMiniObject *obj; + GstCaps *caps; /* create the testclock */ data->clock = gst_test_clock_new (); @@ -518,7 +519,8 @@ setup_testharness (TestData * data) /* link in the test sink-pad */ data->test_sink_pad = gst_pad_new ("sink", GST_PAD_SINK); gst_pad_set_element_private (data->test_sink_pad, data); - gst_pad_set_caps (data->test_sink_pad, generate_caps ()); + caps = generate_caps (); + gst_pad_set_caps (data->test_sink_pad, 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_static_pad (data->jitter_buffer, "src"); @@ -533,11 +535,16 @@ setup_testharness (TestData * data) 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_set_caps (data->test_src_pad, caps); gst_pad_push_event (data->test_src_pad, gst_event_new_segment (&seg)); + gst_caps_unref (caps); - while ((obj = g_async_queue_try_pop (data->sink_event_queue))) - gst_mini_object_unref (obj); + obj = g_async_queue_pop (data->sink_event_queue); + gst_mini_object_unref (obj); + obj = g_async_queue_pop (data->sink_event_queue); + gst_mini_object_unref (obj); + obj = g_async_queue_pop (data->sink_event_queue); + gst_mini_object_unref (obj); } static void @@ -597,6 +604,8 @@ verify_lost_event (GstEvent * event, guint32 expected_seqnum, g_assert_cmpint (timestamp, ==, expected_timestamp); g_assert_cmpint (duration, ==, expected_duration); g_assert (late == expected_late); + + gst_event_unref (event); } static void @@ -628,6 +637,8 @@ verify_rtx_event (GstEvent * event, guint32 expected_seqnum, g_assert_cmpint (timestamp, ==, expected_timestamp); g_assert_cmpint (delay, ==, expected_delay); g_assert_cmpint (spacing, ==, expected_spacing); + + gst_event_unref (event); } GST_START_TEST (test_only_one_lost_event_on_large_gaps) @@ -655,14 +666,17 @@ GST_START_TEST (test_only_one_lost_event_on_large_gaps) /* 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); + test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + g_assert (test_id == id); + gst_clock_id_unref (test_id); + gst_clock_id_unref (id); /* check for the buffer coming out that was pushed in */ out_buf = g_async_queue_pop (data.buf_queue); g_assert (out_buf != NULL); g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, 0); g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, 0); + gst_buffer_unref (out_buf); /* move time ahead 10 seconds */ gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND); @@ -685,6 +699,8 @@ GST_START_TEST (test_only_one_lost_event_on_large_gaps) 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)); g_assert (id == test_id); + gst_clock_id_unref (test_id); + gst_clock_id_unref (id); /* we should now receive a packet-lost-event for buffers 1 through 489 */ out_event = g_async_queue_pop (data.sink_event_queue); @@ -700,7 +716,10 @@ GST_START_TEST (test_only_one_lost_event_on_large_gaps) 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)); + test_id = + gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + gst_clock_id_unref (test_id); + gst_clock_id_unref (id); } } @@ -712,6 +731,7 @@ GST_START_TEST (test_only_one_lost_event_on_large_gaps) gst_rtp_buffer_unmap (&rtp); g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, (10 * GST_SECOND)); g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, (10 * GST_SECOND)); + gst_buffer_unref (out_buf); /* we get as many lost events as the the number of buffers the jitterbuffer * is able to wait for (+ the one we already got) */ @@ -725,7 +745,7 @@ GST_END_TEST; GST_START_TEST (test_two_lost_one_arrives_in_time) { TestData data; - GstClockID id; + GstClockID id, test_id; GstBuffer *in_buf, *out_buf; GstEvent *out_event; gint jb_latency_ms = 100; @@ -744,8 +764,10 @@ GST_START_TEST (test_two_lost_one_arrives_in_time) 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); + test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + g_assert (test_id == id); + gst_clock_id_unref (test_id); + gst_clock_id_unref (id); out_buf = g_async_queue_pop (data.buf_queue); g_assert (out_buf != NULL); @@ -755,6 +777,7 @@ GST_START_TEST (test_two_lost_one_arrives_in_time) in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160); 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); + gst_buffer_unref (out_buf); /* check for the buffer coming out that was pushed in */ out_buf = g_async_queue_pop (data.buf_queue); @@ -762,6 +785,7 @@ GST_START_TEST (test_two_lost_one_arrives_in_time) g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, buffer_time); g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, buffer_time); } + gst_buffer_unref (out_buf); /* hop over 2 packets and make another one (gap of 2) */ b = 5; @@ -778,8 +802,10 @@ GST_START_TEST (test_two_lost_one_arrives_in_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); + test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + g_assert (test_id == id); + gst_clock_id_unref (test_id); + gst_clock_id_unref (id); /* we should now receive a packet-lost-event for buffer 3 */ out_event = g_async_queue_pop (data.sink_event_queue); @@ -801,6 +827,7 @@ GST_START_TEST (test_two_lost_one_arrives_in_time) 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); + gst_buffer_unref (out_buf); /* and see that buffer 5 now arrives in a normal fashion */ out_buf = g_async_queue_pop (data.buf_queue); @@ -809,6 +836,7 @@ GST_START_TEST (test_two_lost_one_arrives_in_time) 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); + gst_buffer_unref (out_buf); /* should still have only seen 1 packet lost event */ g_assert_cmpint (data.lost_event_count, ==, 1); @@ -821,7 +849,7 @@ GST_END_TEST; GST_START_TEST (test_late_packets_still_makes_lost_events) { TestData data; - GstClockID id; + GstClockID id, test_id; GstBuffer *in_buf, *out_buf; GstEvent *out_event; gint jb_latency_ms = 10; @@ -840,8 +868,10 @@ GST_START_TEST (test_late_packets_still_makes_lost_events) g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); 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); + test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + g_assert (test_id == id); + gst_clock_id_unref (id); + gst_clock_id_unref (test_id); out_buf = g_async_queue_pop (data.buf_queue); g_assert (out_buf != NULL); @@ -850,6 +880,7 @@ GST_START_TEST (test_late_packets_still_makes_lost_events) 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); + gst_buffer_unref (out_buf); /* check for the buffer coming out that was pushed in */ out_buf = g_async_queue_pop (data.buf_queue); @@ -857,6 +888,7 @@ GST_START_TEST (test_late_packets_still_makes_lost_events) g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, buffer_time); g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, buffer_time); } + gst_buffer_unref (out_buf); /* hop over 2 packets and make another one (gap of 2) */ b = 5; @@ -878,6 +910,7 @@ GST_START_TEST (test_late_packets_still_makes_lost_events) 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); + gst_buffer_unref (out_buf); /* should still have only seen 1 packet lost event */ g_assert_cmpint (data.lost_event_count, ==, 1); @@ -890,7 +923,7 @@ GST_END_TEST; GST_START_TEST (test_all_packets_are_timestamped_zero) { TestData data; - GstClockID id; + GstClockID id, test_id; GstBuffer *in_buf, *out_buf; GstEvent *out_event; gint jb_latency_ms = 10; @@ -908,8 +941,10 @@ GST_START_TEST (test_all_packets_are_timestamped_zero) g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK); 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); + test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + g_assert (test_id == id); + gst_clock_id_unref (test_id); + gst_clock_id_unref (id); out_buf = g_async_queue_pop (data.buf_queue); g_assert (out_buf != NULL); @@ -917,6 +952,7 @@ GST_START_TEST (test_all_packets_are_timestamped_zero) 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); + gst_buffer_unref (out_buf); /* check for the buffer coming out that was pushed in */ out_buf = g_async_queue_pop (data.buf_queue); @@ -924,6 +960,7 @@ GST_START_TEST (test_all_packets_are_timestamped_zero) g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, 0); g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, 0); } + gst_buffer_unref (out_buf); /* hop over 2 packets and make another one (gap of 2) */ b = 5; @@ -948,6 +985,7 @@ GST_START_TEST (test_all_packets_are_timestamped_zero) 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); + gst_buffer_unref (out_buf); /* should still have only seen 2 packet lost events */ g_assert_cmpint (data.lost_event_count, ==, 2); @@ -979,6 +1017,7 @@ GST_START_TEST (test_rtx_expected_next) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 20 * GST_MSECOND); gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); + gst_clock_id_unref (id); /* put second buffer, the jitterbuffer should now know that the packet spacing * is 20ms and should ask for retransmission of seqnum 2 in 20ms */ @@ -987,8 +1026,10 @@ GST_START_TEST (test_rtx_expected_next) gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 60 * GST_MSECOND); - g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) - == id); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + g_assert (tid == id); + gst_clock_id_unref (tid); + gst_clock_id_unref (id); out_event = g_async_queue_pop (data.src_event_queue); g_assert (out_event != NULL); @@ -999,6 +1040,8 @@ GST_START_TEST (test_rtx_expected_next) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 100 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (tid); + gst_clock_id_unref (id); out_event = g_async_queue_pop (data.src_event_queue); g_assert (out_event != NULL); @@ -1008,6 +1051,8 @@ GST_START_TEST (test_rtx_expected_next) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 140 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (tid); + gst_clock_id_unref (id); out_event = g_async_queue_pop (data.src_event_queue); g_assert (out_event != NULL); @@ -1017,15 +1062,20 @@ GST_START_TEST (test_rtx_expected_next) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 200 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (tid); + gst_clock_id_unref (id); out_buf = g_async_queue_pop (data.buf_queue); g_assert (out_buf != NULL); + gst_buffer_unref (out_buf); gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 260 * GST_MSECOND); - g_assert (gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)) - == id); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + g_assert (tid == id); + gst_clock_id_unref (tid); + gst_clock_id_unref (id); /* we should now receive a packet-lost-event for buffer 2 */ out_event = g_async_queue_pop (data.sink_event_queue); @@ -1045,6 +1095,8 @@ GST_START_TEST (test_rtx_two_missing) GstEvent *out_event; gint jb_latency_ms = 200; gint i; + GstStructure *rtx_stats; + const GValue *rtx_stat; GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; setup_testharness (&data); @@ -1074,8 +1126,10 @@ GST_START_TEST (test_rtx_two_missing) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 60 * GST_MSECOND); do { gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); - } while (id != - gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock))); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); + } while (id != tid); /* we should have 2 events now, one for 2 and another for 3 */ out_event = g_async_queue_pop (data.src_event_queue); @@ -1090,6 +1144,8 @@ GST_START_TEST (test_rtx_two_missing) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 100 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); /* we should have 2 events now, one for 2 and another for 3 */ out_event = g_async_queue_pop (data.src_event_queue); @@ -1113,6 +1169,8 @@ GST_START_TEST (test_rtx_two_missing) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 140 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); /* now we only get requests for 2 */ out_event = g_async_queue_pop (data.src_event_queue); @@ -1124,6 +1182,8 @@ GST_START_TEST (test_rtx_two_missing) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 200 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); for (i = 0; i < 2; i++) { GST_DEBUG ("popping %d", i); @@ -1132,6 +1192,7 @@ GST_START_TEST (test_rtx_two_missing) gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp); g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, i); gst_rtp_buffer_unmap (&rtp); + gst_buffer_unref (out_buf); } /* this is when 2 is lost */ @@ -1139,6 +1200,8 @@ GST_START_TEST (test_rtx_two_missing) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 240 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); /* we should now receive a packet-lost-event for buffer 2 */ out_event = g_async_queue_pop (data.sink_event_queue); @@ -1153,10 +1216,23 @@ GST_START_TEST (test_rtx_two_missing) gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp); g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, i); gst_rtp_buffer_unmap (&rtp); + gst_buffer_unref (out_buf); } /* should still have only seen 1 packet lost events */ g_assert_cmpint (data.lost_event_count, ==, 1); + g_object_get (data.jitter_buffer, "stats", &rtx_stats, NULL); + + rtx_stat = gst_structure_get_value (rtx_stats, "rtx-count"); + g_assert_cmpuint (g_value_get_uint64 (rtx_stat), ==, 5); + + rtx_stat = gst_structure_get_value (rtx_stats, "rtx-success-count"); + g_assert_cmpuint (g_value_get_uint64 (rtx_stat), ==, 1); + + rtx_stat = gst_structure_get_value (rtx_stats, "rtx-rtt"); + g_assert_cmpuint (g_value_get_uint64 (rtx_stat), ==, 0); + gst_structure_free (rtx_stats); + destroy_testharness (&data); } @@ -1225,6 +1301,8 @@ GST_START_TEST (test_rtx_packet_delay) gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); for (i = 6; i < 8; i++) { GST_DEBUG ("popping %d", i); @@ -1237,12 +1315,16 @@ GST_START_TEST (test_rtx_packet_delay) while (g_async_queue_length (data.buf_queue) < 1) { if (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock), &id)) { GstClockTime t = gst_clock_id_get_time (id); - if (t >= 240 * GST_MSECOND) + if (t >= 240 * GST_MSECOND) { + gst_clock_id_unref (id); break; + } 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)); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); } } @@ -1255,18 +1337,23 @@ GST_START_TEST (test_rtx_packet_delay) gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp); g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, i); gst_rtp_buffer_unmap (&rtp); + gst_buffer_unref (out_buf); } /* churn through sync_times until the next 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)) { GstClockTime t = gst_clock_id_get_time (id); - if (t >= 240 * GST_MSECOND) + if (t >= 240 * GST_MSECOND) { + gst_clock_id_unref (id); break; + } 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)); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); } } @@ -1287,6 +1374,7 @@ GST_START_TEST (test_rtx_packet_delay) gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp); g_assert_cmpint (gst_rtp_buffer_get_seq (&rtp), ==, i); gst_rtp_buffer_unmap (&rtp); + gst_buffer_unref (out_buf); } GST_DEBUG ("waiting for 240ms"); @@ -1294,6 +1382,8 @@ GST_START_TEST (test_rtx_packet_delay) gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 240 * GST_MSECOND); tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); g_assert (id == tid); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); GST_DEBUG ("popping lost event 10"); out_event = g_async_queue_pop (data.sink_event_queue); diff --git a/tests/check/elements/rtprtx.c b/tests/check/elements/rtprtx.c new file mode 100644 index 000000000..40e4a9527 --- /dev/null +++ b/tests/check/elements/rtprtx.c @@ -0,0 +1,1514 @@ +/* GStreamer + * + * Copyright (C) 2013 Collabora Ltd. + * @author Julien Isorce <julien.isorce@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. + */ + +#include <gst/check/gstcheck.h> +#include <gst/check/gstconsistencychecker.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 */ +static GstPad *srcpad, *sinkpad; +/* we also have a list of src buffers */ +static GList *inbuffers = NULL; + +static GMainLoop *main_loop; + +#define RTP_CAPS_STRING \ + "application/x-rtp, " \ + "media = (string)audio, " \ + "payload = (int) 0, " \ + "clock-rate = (int) 8000, " \ + "ssrc = (uint) 42, " \ + "encoding-name = (string)PCMU" + +#define RTP_FRAME_SIZE 20 + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp") + ); +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-rtp") + ); + +static void +setup_rtprtx (GstElement * rtprtxsend, GstElement * rtprtxreceive, + gint num_buffers) +{ + GstBuffer *buffer; + GstPad *sendsrcpad; + GstPad *receivesinkpad; + gboolean ret = FALSE; + + /* a 20 sample audio block (2,5 ms) generated with + * gst-launch audiotestsrc wave=silence blocksize=40 num-buffers=3 ! + * "audio/x-raw,channels=1,rate=8000" ! mulawenc ! rtppcmupay ! + * fakesink dump=1 + */ + guint8 in[] = { /* first 4 bytes are rtp-header, next 4 bytes are timestamp */ + 0x80, 0x80, 0x1c, 0x24, 0x46, 0xcd, 0xb7, 0x11, 0x3c, 0x3a, 0x7c, 0x5b, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + }; + GstClockTime ts = G_GUINT64_CONSTANT (0); + GstClockTime tso = gst_util_uint64_scale (RTP_FRAME_SIZE, GST_SECOND, 8000); + gint i; + + srcpad = gst_check_setup_src_pad (rtprtxsend, &srctemplate); + sendsrcpad = gst_element_get_static_pad (rtprtxsend, "src"); + ret = gst_pad_set_active (srcpad, TRUE); + fail_if (ret == FALSE); + + sinkpad = gst_check_setup_sink_pad (rtprtxreceive, &sinktemplate); + receivesinkpad = gst_element_get_static_pad (rtprtxreceive, "sink"); + ret = gst_pad_set_active (sinkpad, TRUE); + fail_if (ret == FALSE); + + fail_if (gst_pad_link (sendsrcpad, receivesinkpad) != GST_PAD_LINK_OK); + + ret = gst_pad_set_active (sendsrcpad, TRUE); + fail_if (ret == FALSE); + ret = gst_pad_set_active (receivesinkpad, TRUE); + fail_if (ret == FALSE); + + gst_object_unref (sendsrcpad); + gst_object_unref (receivesinkpad); + + for (i = 0; i < num_buffers; i++) { + buffer = gst_buffer_new_and_alloc (sizeof (in)); + gst_buffer_fill (buffer, 0, in, sizeof (in)); + GST_BUFFER_DTS (buffer) = ts; + GST_BUFFER_PTS (buffer) = ts; + GST_BUFFER_DURATION (buffer) = tso; + GST_DEBUG ("created buffer: %p", buffer); + + /*if (!i) + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT); */ + + inbuffers = g_list_append (inbuffers, buffer); + + /* hackish way to update the rtp header */ + in[1] = 0x00; + in[3]++; /* seqnumber */ + in[7] += RTP_FRAME_SIZE; /* inc. timestamp with framesize */ + ts += tso; + } +} + +static GstStateChangeReturn +start_rtprtx (GstElement * element) +{ + GstStateChangeReturn ret; + + ret = gst_element_set_state (element, GST_STATE_PLAYING); + ck_assert_int_ne (ret, GST_STATE_CHANGE_FAILURE); + + ret = gst_element_get_state (element, NULL, NULL, GST_CLOCK_TIME_NONE); + ck_assert_int_ne (ret, GST_STATE_CHANGE_FAILURE); + + return ret; +} + +static void +cleanup_rtprtx (GstElement * rtprtxsend, GstElement * rtprtxreceive) +{ + GST_DEBUG ("cleanup_rtprtx"); + + g_list_free (inbuffers); + inbuffers = NULL; + + gst_pad_set_active (srcpad, FALSE); + gst_check_teardown_src_pad (rtprtxsend); + gst_check_teardown_element (rtprtxsend); + + gst_pad_set_active (sinkpad, FALSE); + gst_check_teardown_sink_pad (rtprtxreceive); + gst_check_teardown_element (rtprtxreceive); +} + +static void +check_rtprtx_results (GstElement * rtprtxsend, GstElement * rtprtxreceive, + gint num_buffers) +{ + guint nbrtxrequests = 0; + guint nbrtxpackets = 0; + + g_object_get (G_OBJECT (rtprtxsend), "num-rtx-requests", &nbrtxrequests, + NULL); + fail_unless_equals_int (nbrtxrequests, 3); + + g_object_get (G_OBJECT (rtprtxsend), "num-rtx-packets", &nbrtxpackets, NULL); + fail_unless_equals_int (nbrtxpackets, 3); + + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-requests", &nbrtxrequests, + NULL); + fail_unless_equals_int (nbrtxrequests, 3); + + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-packets", &nbrtxpackets, + NULL); + fail_unless_equals_int (nbrtxpackets, 3); + + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-assoc-packets", + &nbrtxpackets, NULL); + fail_unless_equals_int (nbrtxpackets, 3); +} + + +GST_START_TEST (test_push_forward_seq) +{ + GstElement *rtprtxsend; + GstElement *rtprtxreceive; + const guint num_buffers = 4; + GList *node; + gint i = 0; + GstCaps *caps = NULL; + GstStructure *pt_map; + + rtprtxsend = gst_check_setup_element ("rtprtxsend"); + rtprtxreceive = gst_check_setup_element ("rtprtxreceive"); + setup_rtprtx (rtprtxsend, rtprtxreceive, num_buffers); + GST_DEBUG ("setup_rtprtx"); + + fail_unless (start_rtprtx (rtprtxsend) + == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); + + fail_unless (start_rtprtx (rtprtxreceive) + == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); + + caps = gst_caps_from_string (RTP_CAPS_STRING); + gst_check_setup_events (srcpad, rtprtxsend, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "0", G_TYPE_UINT, 97, NULL); + g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL); + g_object_set (rtprtxreceive, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + + /* push buffers: 0,1,2, */ + for (node = inbuffers; node; node = g_list_next (node)) { + GstEvent *event = NULL; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + GstBuffer *buffer = (GstBuffer *) node->data; + GList *last_out_buffer; + guint64 end_time; + gboolean res; + + gst_buffer_ref (buffer); + fail_unless_equals_int (gst_pad_push (srcpad, buffer), GST_FLOW_OK); + + if (i < 3) { + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("GstRTPRetransmissionRequest", + "seqnum", G_TYPE_UINT, (guint) gst_rtp_buffer_get_seq (&rtp), + "ssrc", G_TYPE_UINT, (guint) gst_rtp_buffer_get_ssrc (&rtp), + "payload-type", G_TYPE_UINT, + (guint) gst_rtp_buffer_get_payload_type (&rtp), NULL)); + gst_rtp_buffer_unmap (&rtp); + + /* synchronize with the chain() function of the "sinkpad" + * to make sure that rtxsend has pushed the rtx buffer out + * before continuing */ + last_out_buffer = g_list_last (buffers); + g_mutex_lock (&check_mutex); + fail_unless (gst_pad_push_event (sinkpad, event)); + end_time = g_get_monotonic_time () + G_TIME_SPAN_SECOND; + do + res = g_cond_wait_until (&check_cond, &check_mutex, end_time); + while (res == TRUE && last_out_buffer == g_list_last (buffers)); + g_mutex_unlock (&check_mutex); + } + gst_buffer_unref (buffer); + ++i; + } + + /* check the buffer list */ + check_rtprtx_results (rtprtxsend, rtprtxreceive, num_buffers); + + /* cleanup */ + cleanup_rtprtx (rtprtxsend, rtprtxreceive); +} + +GST_END_TEST; + +static void +message_received (GstBus * bus, GstMessage * message, GstPipeline * bin) +{ + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + switch (message->type) { + case GST_MESSAGE_EOS: + g_main_loop_quit (main_loop); + break; + case GST_MESSAGE_WARNING:{ + GError *gerror; + gchar *debug; + + gst_message_parse_warning (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + break; + } + case GST_MESSAGE_ERROR:{ + GError *gerror; + gchar *debug; + + gst_message_parse_error (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + g_main_loop_quit (main_loop); + break; + } + default: + break; + } +} + +typedef struct +{ + guint count; + guint nb_packets; + guint drop_every_n_packets; +} RTXSendData; + +typedef struct +{ + guint nb_packets; + guint seqnum_offset; + guint seqnum_prev; +} RTXReceiveData; + +static GstPadProbeReturn +rtprtxsend_srcpad_probe (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + GstPadProbeReturn ret = GST_PAD_PROBE_OK; + + if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) { + GstBuffer *buffer = GST_BUFFER (info->data); + RTXSendData *rtxdata = (RTXSendData *) user_data; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + guint payload_type = 0; + + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + payload_type = gst_rtp_buffer_get_payload_type (&rtp); + + /* main stream packets */ + if (payload_type == 96) { + /* count packets of the main stream */ + ++rtxdata->nb_packets; + /* drop some packets */ + if (rtxdata->count < rtxdata->drop_every_n_packets) { + ++rtxdata->count; + } else { + /* drop a packet every 'rtxdata->count' packets */ + rtxdata->count = 1; + ret = GST_PAD_PROBE_DROP; + } + } else { + /* retransmission packets */ + } + + gst_rtp_buffer_unmap (&rtp); + } + + return ret; +} + +static GstPadProbeReturn +rtprtxreceive_srcpad_probe (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) { + GstBuffer *buffer = GST_BUFFER (info->data); + RTXReceiveData *rtxdata = (RTXReceiveData *) user_data; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + guint seqnum = 0; + guint i = 0; + + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + seqnum = gst_rtp_buffer_get_seq (&rtp); + + /* check if there is a dropped packet */ + if (seqnum > rtxdata->seqnum_prev + rtxdata->seqnum_offset) { + GstPad *peerpad = gst_pad_get_peer (pad); + + /* ask retransmission of missing packet */ + for (i = rtxdata->seqnum_prev + rtxdata->seqnum_offset; i < seqnum; + i += rtxdata->seqnum_offset) { + GstEvent *event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("GstRTPRetransmissionRequest", + "seqnum", G_TYPE_UINT, i, + "ssrc", G_TYPE_UINT, gst_rtp_buffer_get_ssrc (&rtp), + "payload-type", G_TYPE_UINT, + gst_rtp_buffer_get_payload_type (&rtp), + NULL)); + gst_pad_push_event (peerpad, event); + } + gst_object_unref (peerpad); + + rtxdata->seqnum_prev = seqnum; + } else if (seqnum == rtxdata->seqnum_prev + rtxdata->seqnum_offset) { + /* also update previous seqnum in this case */ + rtxdata->seqnum_prev = seqnum; + } + + gst_rtp_buffer_unmap (&rtp); + + ++rtxdata->nb_packets; + } + + return GST_PAD_PROBE_OK; +} + +static void +start_test_drop_and_check_results (GstElement * bin, GstElement * rtppayloader, + GstElement * rtprtxsend, GstElement * rtprtxreceive, + RTXSendData * send_rtxdata, RTXReceiveData * receive_rtxdata, + guint drop_every_n_packets) +{ + GstStateChangeReturn state_res = GST_STATE_CHANGE_FAILURE; + guint nbrtxrequests = 0; + guint nbrtxpackets = 0; + guint nb_expected_requests = 0; + GstStructure *pt_map; + + GST_INFO ("starting test"); + + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "96", G_TYPE_UINT, 99, NULL); + g_object_set (rtppayloader, "pt", 96, NULL); + g_object_set (rtppayloader, "seqnum-offset", 1, NULL); + g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL); + g_object_set (rtprtxreceive, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + + send_rtxdata->count = 1; + send_rtxdata->nb_packets = 0; + send_rtxdata->drop_every_n_packets = drop_every_n_packets; + + receive_rtxdata->nb_packets = 0; + receive_rtxdata->seqnum_offset = 0; + receive_rtxdata->seqnum_prev = 0; + + /* retrieve offset before going to paused */ + g_object_get (G_OBJECT (rtppayloader), "seqnum-offset", + &receive_rtxdata->seqnum_offset, NULL); + + /* prepare playing */ + state_res = gst_element_set_state (bin, GST_STATE_PAUSED); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* wait for completion */ + state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + /* retrieve seqnum_prev here to make sure it has been reseted */ + g_object_get (G_OBJECT (rtppayloader), "seqnum", + &receive_rtxdata->seqnum_prev, NULL); + + /* run pipeline */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + GST_INFO ("running main loop"); + g_main_loop_run (main_loop); + + /* check results */ + + if (send_rtxdata->nb_packets % drop_every_n_packets == 0) { + /* special case because the last buffer will be dropped + * so the receiver cannot know if it has been dropped (no next packet) + */ + nb_expected_requests = send_rtxdata->nb_packets / drop_every_n_packets - 1; + fail_unless_equals_int (send_rtxdata->nb_packets, + receive_rtxdata->nb_packets + 1); + } else { + nb_expected_requests = send_rtxdata->nb_packets / drop_every_n_packets; + fail_unless_equals_int (send_rtxdata->nb_packets, + receive_rtxdata->nb_packets); + } + + g_object_get (G_OBJECT (rtprtxsend), "num-rtx-requests", &nbrtxrequests, + NULL); + fail_unless_equals_int (nbrtxrequests, nb_expected_requests); + + g_object_get (G_OBJECT (rtprtxsend), "num-rtx-packets", &nbrtxpackets, NULL); + fail_unless_equals_int (nbrtxpackets, nb_expected_requests); + + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-requests", &nbrtxrequests, + NULL); + fail_unless_equals_int (nbrtxrequests, nb_expected_requests); + + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-packets", &nbrtxpackets, + NULL); + fail_unless_equals_int (nbrtxpackets, nb_expected_requests); + + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-assoc-packets", + &nbrtxpackets, NULL); + fail_unless_equals_int (nbrtxpackets, nb_expected_requests); + + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); +} + +/* This test build the pipeline videotestsrc ! rtpvrawpay ! rtprtxsend ! rtprtxreceive ! fakesink + * and drop some buffer between rtprtxsend and rtprtxreceive + * Then it checks that every dropped packet has been re-sent and it checks that + * not too much requests has been sent. + */ +GST_START_TEST (test_drop_one_sender) +{ + GstElement *bin, *src, *rtppayloader, *rtprtxsend, *rtprtxreceive, *sink; + GstBus *bus; + gboolean res; + GstPad *srcpad, *sinkpad; + GstStreamConsistency *chk_1, *chk_2, *chk_3; + gint num_buffers = 20; + guint drop_every_n_packets = 0; + RTXSendData send_rtxdata; + RTXReceiveData receive_rtxdata; + + GST_INFO ("preparing test"); + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + src = gst_element_factory_make ("videotestsrc", "src"); + g_object_set (src, "num-buffers", num_buffers, NULL); + rtppayloader = gst_element_factory_make ("rtpvrawpay", "rtppayloader"); + rtprtxsend = gst_element_factory_make ("rtprtxsend", "rtprtxsend"); + rtprtxreceive = gst_element_factory_make ("rtprtxreceive", "rtprtxreceive"); + sink = gst_element_factory_make ("fakesink", "sink"); + gst_bin_add_many (GST_BIN (bin), src, rtppayloader, rtprtxsend, rtprtxreceive, + sink, NULL); + + res = gst_element_link (src, rtppayloader); + fail_unless (res == TRUE, NULL); + res = gst_element_link (rtppayloader, rtprtxsend); + fail_unless (res == TRUE, NULL); + res = gst_element_link (rtprtxsend, rtprtxreceive); + fail_unless (res == TRUE, NULL); + res = gst_element_link (rtprtxreceive, sink); + fail_unless (res == TRUE, NULL); + + /* create consistency checkers for the pads */ + + srcpad = gst_element_get_static_pad (rtppayloader, "src"); + chk_1 = gst_consistency_checker_new (srcpad); + gst_object_unref (srcpad); + + srcpad = gst_element_get_static_pad (rtprtxsend, "src"); + gst_pad_add_probe (srcpad, + (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) rtprtxsend_srcpad_probe, &send_rtxdata, NULL); + sinkpad = gst_pad_get_peer (srcpad); + fail_if (sinkpad == NULL); + chk_2 = gst_consistency_checker_new (sinkpad); + gst_object_unref (sinkpad); + gst_object_unref (srcpad); + + srcpad = gst_element_get_static_pad (rtprtxreceive, "src"); + gst_pad_add_probe (srcpad, + (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) rtprtxreceive_srcpad_probe, &receive_rtxdata, NULL); + sinkpad = gst_pad_get_peer (srcpad); + fail_if (sinkpad == NULL); + chk_3 = gst_consistency_checker_new (sinkpad); + gst_object_unref (sinkpad); + gst_object_unref (srcpad); + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::error", (GCallback) message_received, bin); + g_signal_connect (bus, "message::warning", (GCallback) message_received, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received, bin); + + for (drop_every_n_packets = 2; drop_every_n_packets < 10; + drop_every_n_packets++) { + start_test_drop_and_check_results (bin, rtppayloader, rtprtxsend, + rtprtxreceive, &send_rtxdata, &receive_rtxdata, drop_every_n_packets); + } + + /* cleanup */ + g_main_loop_unref (main_loop); + gst_consistency_checker_free (chk_1); + gst_consistency_checker_free (chk_2); + gst_consistency_checker_free (chk_3); + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); +} + +GST_END_TEST; + +GMutex lock_eos; +static gint nb_sources; +static gint nb_eos; + +static void +message_received_multiple (GstBus * bus, GstMessage * message, + GstPipeline * bin) +{ + GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT, + GST_MESSAGE_SRC (message), message); + + switch (message->type) { + case GST_MESSAGE_EOS: + g_main_loop_quit (main_loop); + break; + case GST_MESSAGE_WARNING:{ + GError *gerror; + gchar *debug; + + gst_message_parse_warning (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + break; + } + case GST_MESSAGE_ERROR:{ + GError *gerror; + gchar *debug; + + gst_message_parse_error (message, &gerror, &debug); + gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug); + g_error_free (gerror); + g_free (debug); + g_main_loop_quit (main_loop); + break; + } + default: + break; + } +} + +typedef struct +{ + guint count; + guint nb_packets; + guint drop_every_n_packets; + guint payload_type_master; +} RTXSendMultipleData; + +/* drop some packets */ +static GstPadProbeReturn +rtprtxsend_srcpad_probe_multiple (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + GstPadProbeReturn ret = GST_PAD_PROBE_OK; + + if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) { + GstBuffer *buffer = GST_BUFFER (info->data); + RTXSendMultipleData *rtxdata = (RTXSendMultipleData *) user_data; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + guint payload_type = 0; + + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + payload_type = gst_rtp_buffer_get_payload_type (&rtp); + + /* main stream packets */ + if (payload_type == rtxdata->payload_type_master) { + /* count packets of the main stream */ + ++rtxdata->nb_packets; + /* drop some packets */ + if (rtxdata->count < rtxdata->drop_every_n_packets) { + ++rtxdata->count; + } else { + /* drop a packet every 'rtxdata->count' packets */ + rtxdata->count = 1; + ret = GST_PAD_PROBE_DROP; + } + } else { + /* retransmission packets */ + } + + gst_rtp_buffer_unmap (&rtp); + } + + return ret; +} + +/* make sure every sources has sent all their buffers */ +static GstPadProbeReturn +source_srcpad_probe_multiple (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + GstPadProbeReturn ret = GST_PAD_PROBE_OK; + + if (info->type == + (GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | GST_PAD_PROBE_TYPE_PUSH)) { + GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info); + if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) { + g_mutex_lock (&lock_eos); + ++nb_eos; + if (nb_eos < nb_sources) + ret = GST_PAD_PROBE_DROP; + g_mutex_unlock (&lock_eos); + } + } + + return ret; +} + +/* add one branch videotestsrc ! rtpvrawpay ! rtprtxsend ! queue ! funnel. */ +static RTXSendMultipleData * +add_sender (GstElement * bin, const gchar * src_name, + const gchar * payloader_name, guint payload_type_master, + guint payload_type_aux) +{ + GstElement *src = NULL; + GstElement *rtppayloader = NULL; + GstElement *rtprtxsend = NULL; + GstElement *queue = NULL; + GstElement *funnel = NULL; + GstPad *srcpad = NULL; + gboolean res = FALSE; + RTXSendMultipleData *send_rtxdata = g_slice_new0 (RTXSendMultipleData); + gchar *pt_master; + GstStructure *pt_map; + + send_rtxdata->count = 1; + send_rtxdata->nb_packets = 0; + send_rtxdata->drop_every_n_packets = 0; + send_rtxdata->payload_type_master = payload_type_master; + + src = gst_element_factory_make (src_name, NULL); + rtppayloader = gst_element_factory_make (payloader_name, NULL); + rtprtxsend = gst_element_factory_make ("rtprtxsend", NULL); + queue = gst_element_factory_make ("queue", NULL); + funnel = gst_bin_get_by_name (GST_BIN (bin), "funnel"); + + pt_master = g_strdup_printf ("%" G_GUINT32_FORMAT, payload_type_master); + pt_map = gst_structure_new ("application/x-rtp-pt-map", + pt_master, G_TYPE_UINT, payload_type_aux, NULL); + g_free (pt_master); + + g_object_set (src, "num-buffers", 25, NULL); + g_object_set (rtppayloader, "pt", payload_type_master, NULL); + g_object_set (rtppayloader, "seqnum-offset", 1, NULL); + g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL); + /* we want that every drop packet be resent fast */ + g_object_set (queue, "max-size-buffers", 1, NULL); + g_object_set (queue, "flush-on-eos", FALSE, NULL); + + gst_structure_free (pt_map); + + gst_bin_add_many (GST_BIN (bin), src, rtppayloader, rtprtxsend, queue, NULL); + + res = gst_element_link (src, rtppayloader); + fail_unless (res == TRUE, NULL); + res = gst_element_link (rtppayloader, rtprtxsend); + fail_unless (res == TRUE, NULL); + res = gst_element_link (rtprtxsend, queue); + fail_unless (res == TRUE, NULL); + res = gst_element_link (queue, funnel); + fail_unless (res == TRUE, NULL); + gst_object_unref (funnel); + + /* to drop some packets */ + srcpad = gst_element_get_static_pad (rtprtxsend, "src"); + gst_pad_add_probe (srcpad, + (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) rtprtxsend_srcpad_probe_multiple, send_rtxdata, + NULL); + gst_object_unref (srcpad); + + /* to make sure every sources has sent all their buffers */ + srcpad = gst_element_get_static_pad (queue, "src"); + gst_pad_add_probe (srcpad, + (GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) source_srcpad_probe_multiple, NULL, NULL); + gst_object_unref (srcpad); + + ++nb_sources; + + return send_rtxdata; +} + +typedef struct +{ + GHashTable *ssrc_to_nb_packets_map; + GHashTable *ssrc_to_seqnum_offset_map; + guint seqnum_offset; +} RTXReceiveMultipleData; + +static GstPadProbeReturn +rtprtxreceive_srcpad_probe_multiple (GstPad * pad, GstPadProbeInfo * info, + gpointer user_data) +{ + if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) { + GstBuffer *buffer = GST_BUFFER (info->data); + RTXReceiveMultipleData *rtxdata = (RTXReceiveMultipleData *) user_data; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + guint ssrc = 0; + guint seqnum = 0; + gpointer seqnum_prev = 0; + guint nb_packets = 0; + + gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + ssrc = gst_rtp_buffer_get_ssrc (&rtp); + seqnum = gst_rtp_buffer_get_seq (&rtp); + + if (!g_hash_table_lookup_extended (rtxdata->ssrc_to_seqnum_offset_map, + GUINT_TO_POINTER (ssrc), NULL, &seqnum_prev)) { + /*In our test we take care to never drop the first buffer */ + g_hash_table_insert (rtxdata->ssrc_to_seqnum_offset_map, + GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (seqnum)); + g_hash_table_insert (rtxdata->ssrc_to_nb_packets_map, + GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (1)); + gst_rtp_buffer_unmap (&rtp); + return GST_PAD_PROBE_OK; + } + + /* check if there is a dropped packet + * (in our test every packet arrived in increasing order) */ + if (seqnum > GPOINTER_TO_UINT (seqnum_prev) + rtxdata->seqnum_offset) { + GstPad *peerpad = gst_pad_get_peer (pad); + guint i = 0; + + /* ask retransmission of missing packets */ + for (i = GPOINTER_TO_UINT (seqnum_prev) + rtxdata->seqnum_offset; + i < seqnum; i += rtxdata->seqnum_offset) { + GstEvent *event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("GstRTPRetransmissionRequest", + "seqnum", G_TYPE_UINT, i, + "ssrc", G_TYPE_UINT, gst_rtp_buffer_get_ssrc (&rtp), + "payload-type", G_TYPE_UINT, + gst_rtp_buffer_get_payload_type (&rtp), + NULL)); + gst_pad_push_event (peerpad, event); + } + gst_object_unref (peerpad); + + g_hash_table_insert (rtxdata->ssrc_to_seqnum_offset_map, + GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (seqnum)); + } else if (seqnum == + GPOINTER_TO_UINT (seqnum_prev) + rtxdata->seqnum_offset) { + /* also update previous seqnum in this case */ + g_hash_table_insert (rtxdata->ssrc_to_seqnum_offset_map, + GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (seqnum)); + } else { + /* receive retransmited packet */ + } + + gst_rtp_buffer_unmap (&rtp); + + nb_packets = + GPOINTER_TO_UINT (g_hash_table_lookup (rtxdata->ssrc_to_nb_packets_map, + GUINT_TO_POINTER (ssrc))); + g_hash_table_insert (rtxdata->ssrc_to_nb_packets_map, + GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (++nb_packets)); + } + + return GST_PAD_PROBE_OK; +} + +static void +reset_rtx_send_data (RTXSendMultipleData * send_rtxdata, gpointer data) +{ + send_rtxdata->count = 1; + send_rtxdata->nb_packets = 0; + send_rtxdata->drop_every_n_packets = *(guint *) data; +} + +/* compute number of all packets sent by all sender */ +static void +compute_total_packets_sent (RTXSendMultipleData * send_rtxdata, gpointer data) +{ + guint *sum = (guint *) data; + *sum += send_rtxdata->nb_packets; +} + +/* compute number of all packets received by rtprtxreceive::src pad */ +static void +compute_total_packets_received (gpointer key, gpointer value, gpointer data) +{ + guint *sum = (guint *) data; + *sum += GPOINTER_TO_UINT (value); +} + +static void +start_test_drop_multiple_and_check_results (GstElement * bin, + GList * send_rtxdata_list, RTXReceiveMultipleData * receive_rtxdata, + guint drop_every_n_packets) +{ + GstStateChangeReturn state_res = GST_STATE_CHANGE_FAILURE; + GstElement *rtprtxreceive = + gst_bin_get_by_name (GST_BIN (bin), "rtprtxreceive"); + guint sum_all_packets_sent = 0; + guint sum_rtx_packets_sent = 0; + guint sum_all_packets_received = 0; + guint sum_rtx_packets_received = 0; + guint sum_rtx_assoc_packets_received = 0; + guint sum_rtx_dropped_packets_received = 0; + gdouble error_sent_recv = 0; + GstIterator *itr_elements = NULL; + gboolean done = FALSE; + GValue item = { 0 }; + GstElement *element = NULL; + gchar *name = NULL; + + GST_INFO ("starting test"); + + g_hash_table_remove_all (receive_rtxdata->ssrc_to_nb_packets_map); + g_hash_table_remove_all (receive_rtxdata->ssrc_to_seqnum_offset_map); + + g_list_foreach (send_rtxdata_list, (GFunc) reset_rtx_send_data, + &drop_every_n_packets); + + /* run pipeline */ + state_res = gst_element_set_state (bin, GST_STATE_PLAYING); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); + + GST_INFO ("running main loop"); + g_main_loop_run (main_loop); + + /* check results */ + itr_elements = gst_bin_iterate_elements (GST_BIN (bin)); + done = FALSE; + while (!done) { + switch (gst_iterator_next (itr_elements, &item)) { + case GST_ITERATOR_OK: + element = GST_ELEMENT (g_value_get_object (&item)); + name = gst_element_get_name (element); + if (g_str_has_prefix (name, "rtprtxsend") > 0) { + guint nb_packets = 0; + g_object_get (G_OBJECT (element), "num-rtx-packets", &nb_packets, + NULL); + sum_rtx_packets_sent += nb_packets; + } + g_free (name); + g_value_reset (&item); + break; + case GST_ITERATOR_RESYNC: + gst_iterator_resync (itr_elements); + break; + case GST_ITERATOR_ERROR: + done = TRUE; + break; + case GST_ITERATOR_DONE: + done = TRUE; + break; + } + } + g_value_unset (&item); + gst_iterator_free (itr_elements); + + /* compute number of all packets sent by all sender */ + g_list_foreach (send_rtxdata_list, (GFunc) compute_total_packets_sent, + &sum_all_packets_sent); + + /* compute number of all packets received by rtprtxreceive::src pad */ + g_hash_table_foreach (receive_rtxdata->ssrc_to_nb_packets_map, + compute_total_packets_received, (gpointer) & sum_all_packets_received); + + /* check that we sent as many packets as received */ + /* when eos is received by sources we cannot ensure that every packets + * will be received by sinks (maybe queue flush ?) + */ + fail_if (sum_all_packets_sent < sum_all_packets_received); + + /* some packet are not received, I still have to figure out why + * but I suspect it comes from pipeline setup/shutdown + */ + if (sum_all_packets_sent != sum_all_packets_received) { + error_sent_recv = + 1 - sum_all_packets_received / (gdouble) sum_all_packets_sent; + fail_if (error_sent_recv > 0.30); + /* it should be 0% */ + } + + /* retrieve number of retransmit packets received by rtprtxreceive */ + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-packets", + &sum_rtx_packets_received, NULL); + + /* some of rtx packet are not received because the receiver avoids + * collision (= requests that have the same seqnum) + */ + fail_if (sum_rtx_packets_sent < sum_rtx_packets_received); + g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-assoc-packets", + &sum_rtx_assoc_packets_received, NULL); + sum_rtx_dropped_packets_received = + sum_rtx_packets_received - sum_rtx_assoc_packets_received; + fail_unless_equals_int (sum_rtx_packets_sent, + sum_rtx_assoc_packets_received + sum_rtx_dropped_packets_received); + + gst_object_unref (rtprtxreceive); + state_res = gst_element_set_state (bin, GST_STATE_NULL); + ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE); +} + +static void +free_rtx_send_data (gpointer data) +{ + g_slice_free (RTXSendMultipleData, data); +} + +/* This test build the pipeline funnel name=funnel + * videotestsrc ! rtpvrawpay ! rtprtxsend ! queue ! funnel. + * videotestsrc ! rtpvrawpay ! rtprtxsend ! queue ! funnel. + * N + * funnel. ! rtprtxreceive ! fakesink + * and drop some buffer just after each rtprtxsend + * Then it checks that every dropped packet has been re-sent and it checks + * that not too much requests has been sent. + */ +GST_START_TEST (test_drop_multiple_sender) +{ + GstElement *bin, *funnel, *rtprtxreceive, *sink; + GstBus *bus; + gboolean res; + GstPad *srcpad; + guint drop_every_n_packets = 0; + GList *send_rtxdata_list = NULL; + RTXReceiveMultipleData receive_rtxdata; + GstStructure *pt_map; + + GST_INFO ("preparing test"); + + receive_rtxdata.ssrc_to_nb_packets_map = + g_hash_table_new (g_direct_hash, g_direct_equal); + receive_rtxdata.ssrc_to_seqnum_offset_map = + g_hash_table_new (g_direct_hash, g_direct_equal); + receive_rtxdata.seqnum_offset = 1; + + /* build pipeline */ + bin = gst_pipeline_new ("pipeline"); + bus = gst_element_get_bus (bin); + gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); + + funnel = gst_element_factory_make ("funnel", "funnel"); + rtprtxreceive = gst_element_factory_make ("rtprtxreceive", "rtprtxreceive"); + sink = gst_element_factory_make ("fakesink", "sink"); + g_object_set (sink, "sync", TRUE, NULL); + g_object_set (sink, "qos", FALSE, NULL); + gst_bin_add_many (GST_BIN (bin), funnel, rtprtxreceive, sink, NULL); + + nb_sources = 0; + g_mutex_init (&lock_eos); + + send_rtxdata_list = + g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc", + "rtpvrawpay", 96, 121)); + send_rtxdata_list = + g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc", + "rtpvrawpay", 97, 122)); + send_rtxdata_list = + g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc", + "rtpvrawpay", 98, 123)); + send_rtxdata_list = + g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc", + "rtpvrawpay", 99, 124)); + + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "96", G_TYPE_UINT, 121, "97", G_TYPE_UINT, 122, + "98", G_TYPE_UINT, 123, "99", G_TYPE_UINT, 124, NULL); + g_object_set (rtprtxreceive, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + + res = gst_element_link (funnel, rtprtxreceive); + fail_unless (res == TRUE, NULL); + res = gst_element_link (rtprtxreceive, sink); + fail_unless (res == TRUE, NULL); + + srcpad = gst_element_get_static_pad (rtprtxreceive, "src"); + gst_pad_add_probe (srcpad, + (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH), + (GstPadProbeCallback) rtprtxreceive_srcpad_probe_multiple, + &receive_rtxdata, NULL); + gst_object_unref (srcpad); + + main_loop = g_main_loop_new (NULL, FALSE); + g_signal_connect (bus, "message::error", + (GCallback) message_received_multiple, bin); + g_signal_connect (bus, "message::warning", + (GCallback) message_received_multiple, bin); + g_signal_connect (bus, "message::eos", (GCallback) message_received_multiple, + bin); + + for (drop_every_n_packets = 2; drop_every_n_packets < 10; + drop_every_n_packets++) { + nb_eos = 0; + start_test_drop_multiple_and_check_results (bin, send_rtxdata_list, + &receive_rtxdata, drop_every_n_packets); + } + + /* cleanup */ + g_main_loop_unref (main_loop); + + g_list_free_full (send_rtxdata_list, free_rtx_send_data); + g_hash_table_destroy (receive_rtxdata.ssrc_to_nb_packets_map); + g_hash_table_destroy (receive_rtxdata.ssrc_to_seqnum_offset_map); + + gst_bus_remove_signal_watch (bus); + gst_object_unref (bus); + gst_object_unref (bin); + + g_mutex_clear (&lock_eos); +} + +GST_END_TEST; + +struct GenerateTestBuffersData +{ + GstElement *src, *capsfilter, *payloader, *sink; + GMutex mutex; + GCond cond; + GList *buffers; + gint num_buffers; + guint last_seqnum; +}; + +static void +fakesink_handoff (GstElement * sink, GstBuffer * buf, GstPad * pad, + gpointer user_data) +{ + struct GenerateTestBuffersData *data = user_data; + + g_mutex_lock (&data->mutex); + + if (data->num_buffers > 0) + data->buffers = g_list_append (data->buffers, gst_buffer_ref (buf)); + + /* if we have collected enough buffers, unblock the main thread to stop */ + if (--data->num_buffers <= 0) + g_cond_signal (&data->cond); + + if (data->num_buffers == 0) + g_object_get (data->payloader, "seqnum", &data->last_seqnum, NULL); + + g_mutex_unlock (&data->mutex); +} + +static GList * +generate_test_buffers (const gint num_buffers, guint ssrc, guint * payload_type) +{ + GstElement *bin; + GstCaps *videotestsrc_caps; + gboolean res; + struct GenerateTestBuffersData data; + + fail_unless (num_buffers > 0); + + g_mutex_init (&data.mutex); + g_cond_init (&data.cond); + data.buffers = NULL; + data.num_buffers = num_buffers; + + bin = gst_pipeline_new (NULL); + data.src = gst_element_factory_make ("videotestsrc", NULL); + data.capsfilter = gst_element_factory_make ("capsfilter", NULL); + data.payloader = gst_element_factory_make ("rtpvrawpay", NULL); + data.sink = gst_element_factory_make ("fakesink", NULL); + + /* small frame size will cause vrawpay to generate exactly one rtp packet + * per video frame, which we need for the max-size-time test */ + videotestsrc_caps = + gst_caps_from_string + ("video/x-raw,format=I420,width=10,height=10,framerate=30/1"); + + g_object_set (data.src, "do-timestamp", TRUE, NULL); + g_object_set (data.capsfilter, "caps", videotestsrc_caps, NULL); + g_object_set (data.payloader, "seqnum-offset", 1, "ssrc", ssrc, NULL); + g_object_set (data.sink, "signal-handoffs", TRUE, NULL); + g_signal_connect (data.sink, "handoff", (GCallback) fakesink_handoff, &data); + + gst_caps_unref (videotestsrc_caps); + + gst_bin_add_many (GST_BIN (bin), data.src, data.capsfilter, data.payloader, + data.sink, NULL); + res = gst_element_link_many (data.src, data.capsfilter, data.payloader, + data.sink, NULL); + fail_unless_equals_int (res, TRUE); + + g_mutex_lock (&data.mutex); + ASSERT_SET_STATE (bin, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC); + while (data.num_buffers > 0) + g_cond_wait (&data.cond, &data.mutex); + g_mutex_unlock (&data.mutex); + + g_object_get (data.payloader, "pt", payload_type, NULL); + + ASSERT_SET_STATE (bin, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS); + + fail_unless_equals_int (g_list_length (data.buffers), num_buffers); + fail_unless_equals_int (num_buffers, data.last_seqnum); + + g_mutex_clear (&data.mutex); + g_cond_clear (&data.cond); + gst_object_unref (bin); + + return data.buffers; +} + +static GstEvent * +create_rtx_event (guint seqnum, guint ssrc, guint payload_type) +{ + return gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, + gst_structure_new ("GstRTPRetransmissionRequest", + "seqnum", G_TYPE_UINT, seqnum, + "ssrc", G_TYPE_UINT, ssrc, + "payload-type", G_TYPE_UINT, payload_type, NULL)); +} + +static void +test_rtxsender_packet_retention (gboolean test_with_time) +{ + const gint num_buffers = test_with_time ? 30 : 10; + const gint half_buffers = num_buffers / 2; + const guint ssrc = 1234567; + const guint rtx_ssrc = 7654321; + const guint rtx_payload_type = 99; + GstStructure *pt_map; + GstStructure *ssrc_map; + GList *in_buffers, *node; + guint payload_type; + GstElement *rtxsend; + GstPad *srcpad, *sinkpad; + GstCaps *caps; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + gint i, j; + gboolean res; + + /* generate test data */ + in_buffers = generate_test_buffers (num_buffers, ssrc, &payload_type); + + /* clear the global buffers list, which we are going to use later */ + gst_check_drop_buffers (); + + /* setup element & pads */ + rtxsend = gst_check_setup_element ("rtprtxsend"); + + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "96", G_TYPE_UINT, rtx_payload_type, NULL); + ssrc_map = gst_structure_new ("application/x-rtp-ssrc-map", + "1234567", G_TYPE_UINT, rtx_ssrc, NULL); + + /* in both cases we want the rtxsend queue to store 'half_buffers' + * amount of buffers at most. In max-size-packets mode, it's trivial. + * In max-size-time mode, we specify almost half a second, which is + * the equivalent of 15 frames in a 30fps video stream */ + g_object_set (rtxsend, + "max-size-packets", test_with_time ? 0 : half_buffers, + "max-size-time", test_with_time ? 499 : 0, + "payload-type-map", pt_map, "ssrc-map", ssrc_map, NULL); + gst_structure_free (pt_map); + gst_structure_free (ssrc_map); + + srcpad = gst_check_setup_src_pad (rtxsend, &srctemplate); + fail_unless_equals_int (gst_pad_set_active (srcpad, TRUE), TRUE); + + sinkpad = gst_check_setup_sink_pad (rtxsend, &sinktemplate); + fail_unless_equals_int (gst_pad_set_active (sinkpad, TRUE), TRUE); + + ASSERT_SET_STATE (rtxsend, GST_STATE_PLAYING, GST_STATE_CHANGE_SUCCESS); + + caps = gst_caps_from_string ("application/x-rtp, " + "media = (string)video, payload = (int)96, " + "ssrc = (uint)1234567, clock-rate = (int)90000, " + "encoding-name = (string)RAW"); + gst_check_setup_events (srcpad, rtxsend, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + + /* now push all buffers and request retransmission every time for all of them */ + node = in_buffers; + for (i = 1; i <= num_buffers; i++) { + GstBuffer *buffer = GST_BUFFER (node->data); + + /* verify that the original packets are correct */ + res = gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp); + fail_unless_equals_int (res, TRUE); + fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp), ssrc); + fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&rtp), + payload_type); + fail_unless_equals_int (gst_rtp_buffer_get_seq (&rtp), i); + gst_rtp_buffer_unmap (&rtp); + + /* retransmit all the previous ones */ + for (j = 1; j < i; j++) { + /* synchronize with the chain() function of the "sinkpad" + * to make sure that rtxsend has pushed the rtx buffer out + * before continuing */ + GList *last_out_buffer = g_list_last (buffers); + g_mutex_lock (&check_mutex); + fail_unless_equals_int (gst_pad_push_event (sinkpad, + create_rtx_event (j, ssrc, payload_type)), TRUE); + /* wait for the rtx packet only if we expect the element + * to actually retransmit something */ + if (j >= MAX (i - half_buffers, 1)) { + guint64 end_time = g_get_monotonic_time () + G_TIME_SPAN_SECOND; + do + res = g_cond_wait_until (&check_cond, &check_mutex, end_time); + while (res == TRUE && last_out_buffer == g_list_last (buffers)); + fail_unless_equals_int (res, TRUE); + } + g_mutex_unlock (&check_mutex); + } + + /* push this one */ + gst_pad_push (srcpad, gst_buffer_ref (buffer)); + node = g_list_next (node); + } + + /* verify the result. buffers should be in this order (numbers are seqnums): + * 1, 1rtx, 2, 1rtx, 2rtx, 3, ... , 9, 5rtx, 6rtx, 7rtx, 8rtx, 9rtx, 10 */ + { + GstRTPBuffer orig_rtp = GST_RTP_BUFFER_INIT; + gint expected_rtx_requests, expected_rtx_packets; + gint real_rtx_requests, real_rtx_packets; + + /* verify statistics first */ + expected_rtx_packets = half_buffers * half_buffers + + ((half_buffers - 1) / 2.0f) * half_buffers; + for (i = 1, expected_rtx_requests = 0; i < num_buffers; i++) + expected_rtx_requests += i; + + g_object_get (rtxsend, "num-rtx-requests", &real_rtx_requests, + "num-rtx-packets", &real_rtx_packets, NULL); + fail_unless_equals_int (expected_rtx_requests, real_rtx_requests); + fail_unless_equals_int (expected_rtx_packets, real_rtx_packets); + + /* and the number of actual buffers that we were pushed out of rtxsend */ + fail_unless_equals_int (g_list_length (buffers), + num_buffers + expected_rtx_packets); + + node = buffers; + for (i = 1; i <= num_buffers; i++) { + /* verify the retransmission packets */ + for (j = MAX (i - half_buffers, 1); j < i; j++) { + GST_INFO ("checking %d, %d", i, j); + + res = gst_rtp_buffer_map (GST_BUFFER (node->data), GST_MAP_READ, &rtp); + fail_unless_equals_int (res, TRUE); + + fail_if (gst_rtp_buffer_get_ssrc (&rtp) == ssrc); + fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp), rtx_ssrc); + fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&rtp), + rtx_payload_type); + fail_unless_equals_int (GST_READ_UINT16_BE (gst_rtp_buffer_get_payload (&rtp)), j); /* j == rtx seqnum */ + + /* open the original packet for this rtx packet and verify timestamps */ + res = gst_rtp_buffer_map (GST_BUFFER (g_list_nth_data (in_buffers, + j - 1)), GST_MAP_READ, &orig_rtp); + fail_unless_equals_int (res, TRUE); + fail_unless_equals_int (gst_rtp_buffer_get_timestamp (&orig_rtp), + gst_rtp_buffer_get_timestamp (&rtp)); + gst_rtp_buffer_unmap (&orig_rtp); + + gst_rtp_buffer_unmap (&rtp); + node = g_list_next (node); + } + + /* verify the normal rtp flow packet */ + res = gst_rtp_buffer_map (GST_BUFFER (node->data), GST_MAP_READ, &rtp); + fail_unless_equals_int (res, TRUE); + fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp), ssrc); + fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&rtp), + payload_type); + fail_unless_equals_int (gst_rtp_buffer_get_seq (&rtp), i); + gst_rtp_buffer_unmap (&rtp); + node = g_list_next (node); + } + } + + g_list_free_full (in_buffers, (GDestroyNotify) gst_buffer_unref); + gst_check_drop_buffers (); + + gst_check_teardown_src_pad (rtxsend); + gst_check_teardown_sink_pad (rtxsend); + gst_check_teardown_element (rtxsend); +} + +GST_START_TEST (test_rtxsender_max_size_packets) +{ + test_rtxsender_packet_retention (FALSE); +} + +GST_END_TEST; + +GST_START_TEST (test_rtxsender_max_size_time) +{ + test_rtxsender_packet_retention (TRUE); +} + +GST_END_TEST; + +static void +compare_rtp_packets (GstBuffer * a, GstBuffer * b) +{ + GstRTPBuffer rtp_a = GST_RTP_BUFFER_INIT; + GstRTPBuffer rtp_b = GST_RTP_BUFFER_INIT; + + gst_rtp_buffer_map (a, GST_MAP_READ, &rtp_a); + gst_rtp_buffer_map (b, GST_MAP_READ, &rtp_b); + + fail_unless_equals_int (gst_rtp_buffer_get_header_len (&rtp_a), + gst_rtp_buffer_get_header_len (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_version (&rtp_a), + gst_rtp_buffer_get_version (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp_a), + gst_rtp_buffer_get_ssrc (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_seq (&rtp_a), + gst_rtp_buffer_get_seq (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_csrc_count (&rtp_a), + gst_rtp_buffer_get_csrc_count (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_marker (&rtp_a), + gst_rtp_buffer_get_marker (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&rtp_a), + gst_rtp_buffer_get_payload_type (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_timestamp (&rtp_a), + gst_rtp_buffer_get_timestamp (&rtp_b)); + fail_unless_equals_int (gst_rtp_buffer_get_extension (&rtp_a), + gst_rtp_buffer_get_extension (&rtp_b)); + + fail_unless_equals_int (gst_rtp_buffer_get_payload_len (&rtp_a), + gst_rtp_buffer_get_payload_len (&rtp_b)); + fail_unless_equals_int (memcmp (gst_rtp_buffer_get_payload (&rtp_a), + gst_rtp_buffer_get_payload (&rtp_b), + gst_rtp_buffer_get_payload_len (&rtp_a)), 0); + + gst_rtp_buffer_unmap (&rtp_a); + gst_rtp_buffer_unmap (&rtp_b); +} + +GST_START_TEST (test_rtxreceive_data_reconstruction) +{ + const guint ssrc = 1234567; + GList *in_buffers; + guint payload_type; + GstElement *rtxsend, *rtxrecv; + GstPad *srcpad, *sinkpad; + GstCaps *caps; + GstBuffer *buffer; + GstStructure *pt_map; + + /* generate test data */ + in_buffers = generate_test_buffers (1, ssrc, &payload_type); + + /* clear the global buffers list, which we are going to use later */ + gst_check_drop_buffers (); + + /* setup element & pads */ + rtxsend = gst_check_setup_element ("rtprtxsend"); + rtxrecv = gst_check_setup_element ("rtprtxreceive"); + + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "96", G_TYPE_UINT, 99, NULL); + g_object_set (rtxsend, "payload-type-map", pt_map, NULL); + g_object_set (rtxrecv, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + + fail_unless_equals_int (gst_element_link (rtxsend, rtxrecv), TRUE); + + srcpad = gst_check_setup_src_pad (rtxsend, &srctemplate); + fail_unless_equals_int (gst_pad_set_active (srcpad, TRUE), TRUE); + + sinkpad = gst_check_setup_sink_pad (rtxrecv, &sinktemplate); + fail_unless_equals_int (gst_pad_set_active (sinkpad, TRUE), TRUE); + + ASSERT_SET_STATE (rtxsend, GST_STATE_PLAYING, GST_STATE_CHANGE_SUCCESS); + ASSERT_SET_STATE (rtxrecv, GST_STATE_PLAYING, GST_STATE_CHANGE_SUCCESS); + + caps = gst_caps_from_string ("application/x-rtp, " + "media = (string)video, payload = (int)96, " + "ssrc = (uint)1234567, clock-rate = (int)90000, " + "encoding-name = (string)RAW"); + gst_check_setup_events (srcpad, rtxsend, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + + /* push buffer */ + buffer = gst_buffer_ref (GST_BUFFER (in_buffers->data)); + fail_unless_equals_int (gst_pad_push (srcpad, buffer), GST_FLOW_OK); + + /* push retransmission request */ + { + GList *last_out_buffer; + guint64 end_time; + gboolean res; + + /* synchronize with the chain() function of the "sinkpad" + * to make sure that rtxsend has pushed the rtx buffer out + * before continuing */ + last_out_buffer = g_list_last (buffers); + g_mutex_lock (&check_mutex); + fail_unless_equals_int (gst_pad_push_event (sinkpad, + create_rtx_event (1, ssrc, payload_type)), TRUE); + end_time = g_get_monotonic_time () + G_TIME_SPAN_SECOND; + do + res = g_cond_wait_until (&check_cond, &check_mutex, end_time); + while (res == TRUE && last_out_buffer == g_list_last (buffers)); + fail_unless_equals_int (res, TRUE); + g_mutex_unlock (&check_mutex); + } + + /* verify */ + fail_unless_equals_int (g_list_length (buffers), 2); + compare_rtp_packets (GST_BUFFER (buffers->data), + GST_BUFFER (buffers->next->data)); + + /* cleanup */ + g_list_free_full (in_buffers, (GDestroyNotify) gst_buffer_unref); + gst_check_drop_buffers (); + + gst_check_teardown_src_pad (rtxsend); + gst_check_teardown_sink_pad (rtxrecv); + gst_element_unlink (rtxsend, rtxrecv); + gst_check_teardown_element (rtxsend); + gst_check_teardown_element (rtxrecv); +} + +GST_END_TEST; + +static Suite * +rtprtx_suite (void) +{ + Suite *s = suite_create ("rtprtx"); + TCase *tc_chain = tcase_create ("general"); + + tcase_set_timeout (tc_chain, 120); + + suite_add_tcase (s, tc_chain); + + tcase_add_test (tc_chain, test_push_forward_seq); + tcase_add_test (tc_chain, test_drop_one_sender); + tcase_add_test (tc_chain, test_drop_multiple_sender); + tcase_add_test (tc_chain, test_rtxsender_max_size_packets); + tcase_add_test (tc_chain, test_rtxsender_max_size_time); + tcase_add_test (tc_chain, test_rtxreceive_data_reconstruction); + + return s; +} + +GST_CHECK_MAIN (rtprtx); diff --git a/tests/check/elements/rtpsession.c b/tests/check/elements/rtpsession.c new file mode 100644 index 000000000..8f4049f42 --- /dev/null +++ b/tests/check/elements/rtpsession.c @@ -0,0 +1,435 @@ +/* GStreamer + * + * unit test for gstrtpsession + * + * Copyright (C) <2009> Wim Taymans <wim.taymans@gmail.com> + * Copyright (C) 2013 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should 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. + */ + +#include <gst/check/gstcheck.h> +#include <gst/check/gsttestclock.h> + +#include <gst/rtp/gstrtpbuffer.h> +#include <gst/rtp/gstrtcpbuffer.h> + +static const guint payload_size = 160; +static const guint clock_rate = 8000; +static const guint payload_type = 0; + +typedef struct +{ + GstElement *session; + GstPad *src, *rtcp_sink, *rtpsrc; + GstClock *clock; + GAsyncQueue *rtcp_queue; +} TestData; + +static GstCaps * +generate_caps (void) +{ + return gst_caps_new_simple ("application/x-rtp", + "clock-rate", G_TYPE_INT, clock_rate, + "payload-type", G_TYPE_INT, payload_type, NULL); +} + +static GstBuffer * +generate_test_buffer (GstClockTime gst_ts, + gboolean marker_bit, guint seq_num, guint32 rtp_ts, guint ssrc) +{ + GstBuffer *buf; + guint8 *payload; + guint i; + GstRTPBuffer rtp = GST_RTP_BUFFER_INIT; + + buf = gst_rtp_buffer_new_allocate (payload_size, 0, 0); + GST_BUFFER_DTS (buf) = gst_ts; + GST_BUFFER_PTS (buf) = gst_ts; + + gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp); + gst_rtp_buffer_set_payload_type (&rtp, 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, 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, GstObject * parent, GstBuffer * buffer) +{ + TestData *data = gst_pad_get_element_private (pad); + g_async_queue_push (data->rtcp_queue, buffer); + GST_DEBUG ("chained"); + return GST_FLOW_OK; +} + +static GstCaps * +pt_map_requested (GstElement * elemen, guint pt, gpointer data) +{ + return generate_caps (); +} + +static void +destroy_testharness (TestData * data) +{ + g_assert_cmpint (gst_element_set_state (data->session, GST_STATE_NULL), + ==, GST_STATE_CHANGE_SUCCESS); + gst_object_unref (data->session); + data->session = NULL; + + gst_object_unref (data->src); + data->src = NULL; + + gst_object_unref (data->rtcp_sink); + data->rtcp_sink = NULL; + + gst_object_unref (data->rtpsrc); + data->rtpsrc = NULL; + + gst_object_unref (data->clock); + data->clock = NULL; + + g_async_queue_unref (data->rtcp_queue); + data->rtcp_queue = NULL; +} + +static void +setup_testharness (TestData * data, gboolean session_as_sender) +{ + GstPad *rtp_sink_pad, *rtcp_src_pad, *rtp_src_pad; + GstSegment seg; + GstMiniObject *obj; + GstCaps *caps; + + data->clock = gst_test_clock_new (); + GST_DEBUG ("Setting default system clock to test clock"); + gst_system_clock_set_default (data->clock); + g_assert (data->clock); + gst_test_clock_set_time (GST_TEST_CLOCK (data->clock), 0); + + data->session = gst_element_factory_make ("rtpsession", NULL); + g_signal_connect (data->session, "request-pt-map", + (GCallback) pt_map_requested, data); + g_assert (data->session); + gst_element_set_clock (data->session, data->clock); + g_assert_cmpint (gst_element_set_state (data->session, + GST_STATE_PLAYING), !=, GST_STATE_CHANGE_FAILURE); + + data->rtcp_queue = + g_async_queue_new_full ((GDestroyNotify) gst_mini_object_unref); + + /* link in the test source-pad */ + data->src = gst_pad_new ("src", GST_PAD_SRC); + g_assert (data->src); + rtp_sink_pad = gst_element_get_request_pad (data->session, + session_as_sender ? "send_rtp_sink" : "recv_rtp_sink"); + g_assert (rtp_sink_pad); + g_assert_cmpint (gst_pad_link (data->src, rtp_sink_pad), ==, GST_PAD_LINK_OK); + gst_object_unref (rtp_sink_pad); + + data->rtpsrc = gst_pad_new ("sink", GST_PAD_SINK); + g_assert (data->rtpsrc); + rtp_src_pad = gst_element_get_static_pad (data->session, + session_as_sender ? "send_rtp_src" : "recv_rtp_src"); + g_assert (rtp_src_pad); + g_assert_cmpint (gst_pad_link (rtp_src_pad, data->rtpsrc), ==, + GST_PAD_LINK_OK); + gst_object_unref (rtp_src_pad); + + /* link in the test sink-pad */ + data->rtcp_sink = gst_pad_new ("sink", GST_PAD_SINK); + g_assert (data->rtcp_sink); + gst_pad_set_element_private (data->rtcp_sink, data); + caps = generate_caps (); + gst_pad_set_caps (data->rtcp_sink, caps); + gst_pad_set_chain_function (data->rtcp_sink, test_sink_pad_chain_cb); + rtcp_src_pad = gst_element_get_request_pad (data->session, "send_rtcp_src"); + g_assert (rtcp_src_pad); + g_assert_cmpint (gst_pad_link (rtcp_src_pad, data->rtcp_sink), ==, + GST_PAD_LINK_OK); + gst_object_unref (rtcp_src_pad); + + g_assert (gst_pad_set_active (data->src, TRUE)); + g_assert (gst_pad_set_active (data->rtcp_sink, TRUE)); + + gst_segment_init (&seg, GST_FORMAT_TIME); + gst_pad_push_event (data->src, gst_event_new_stream_start ("stream0")); + gst_pad_set_caps (data->src, caps); + gst_pad_push_event (data->src, gst_event_new_segment (&seg)); + gst_caps_unref (caps); + + while ((obj = g_async_queue_try_pop (data->rtcp_queue))) + gst_mini_object_unref (obj); +} + +GST_START_TEST (test_multiple_ssrc_rr) +{ + TestData data; + GstFlowReturn res; + GstClockID id, tid; + GstBuffer *in_buf, *out_buf; + GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT; + GstRTCPPacket rtcp_packet; + int i; + guint32 ssrc, exthighestseq, jitter, lsr, dlsr; + gint32 packetslost; + guint8 fractionlost; + + setup_testharness (&data, FALSE); + + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_MSECOND); + + for (i = 0; i < 5; i++) { + GST_DEBUG ("Push %i", i); + in_buf = + generate_test_buffer (i * 20 * GST_MSECOND, FALSE, i, i * 20, + 0x01BADBAD); + res = gst_pad_push (data.src, in_buf); + fail_unless (res == GST_FLOW_OK || res == GST_FLOW_FLUSHING); + + + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + gst_clock_id_unref (id); + if (tid) + gst_clock_id_unref (tid); + + in_buf = + generate_test_buffer (i * 20 * GST_MSECOND, FALSE, i, i * 20, + 0xDEADBEEF); + res = gst_pad_push (data.src, in_buf); + fail_unless (res == GST_FLOW_OK || res == GST_FLOW_FLUSHING); + + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + GST_DEBUG ("pushed %i", i); + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), + gst_clock_id_get_time (id)); + gst_clock_id_unref (id); + if (tid) + gst_clock_id_unref (tid); + } + + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), + gst_clock_id_get_time (id) + (2 * GST_SECOND)); + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); + + out_buf = g_async_queue_pop (data.rtcp_queue); + g_assert (out_buf != NULL); + g_assert (gst_rtcp_buffer_validate (out_buf)); + gst_rtcp_buffer_map (out_buf, GST_MAP_READ, &rtcp); + g_assert (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet)); + g_assert (gst_rtcp_packet_get_type (&rtcp_packet) == GST_RTCP_TYPE_RR); + g_assert_cmpint (gst_rtcp_packet_get_rb_count (&rtcp_packet), ==, 2); + + gst_rtcp_packet_get_rb (&rtcp_packet, 0, &ssrc, &fractionlost, &packetslost, + &exthighestseq, &jitter, &lsr, &dlsr); + + g_assert_cmpint (ssrc, ==, 0x01BADBAD); + + gst_rtcp_packet_get_rb (&rtcp_packet, 1, &ssrc, &fractionlost, &packetslost, + &exthighestseq, &jitter, &lsr, &dlsr); + g_assert_cmpint (ssrc, ==, 0xDEADBEEF); + gst_rtcp_buffer_unmap (&rtcp); + gst_buffer_unref (out_buf); + + destroy_testharness (&data); +} + +GST_END_TEST; + +/* This verifies that rtpsession will correctly place RBs round-robin + * across multiple SRs when there are too many senders that their RBs + * do not fit in one SR */ +GST_START_TEST (test_multiple_senders_roundrobin_rbs) +{ + TestData data; + GstFlowReturn res; + GstClockID id, tid; + GstBuffer *buf; + GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT; + GstRTCPPacket rtcp_packet; + GstClockTime time; + gint queue_length; + gint i, j, k; + guint32 ssrc; + GHashTable *sr_ssrcs, *rb_ssrcs, *tmp_set; + + setup_testharness (&data, TRUE); + + /* only the RTCP thread waits on the clock */ + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id); + + for (i = 0; i < 2; i++) { /* cycles between SR reports */ + for (j = 0; j < 5; j++) { /* packets per ssrc */ + gint seq = (i * 5) + j; + GST_DEBUG ("Push %i", seq); + + gst_test_clock_advance_time (GST_TEST_CLOCK (data.clock), + 200 * GST_MSECOND); + + for (k = 0; k < 35; k++) { /* number of ssrcs */ + buf = + generate_test_buffer (seq * 200 * GST_MSECOND, FALSE, seq, + seq * 200, 10000 + k); + res = gst_pad_push (data.src, buf); + fail_unless (res == GST_FLOW_OK || res == GST_FLOW_FLUSHING); + } + + GST_DEBUG ("pushed %i", seq); + } + + queue_length = g_async_queue_length (data.rtcp_queue); + + do { + /* crank the RTCP pad thread */ + time = gst_clock_id_get_time (id); + GST_DEBUG ("Advancing time to %" GST_TIME_FORMAT, GST_TIME_ARGS (time)); + gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), time); + tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock)); + fail_unless_equals_pointer (tid, id); + gst_clock_id_unref (id); + gst_clock_id_unref (tid); + + /* wait for the RTCP pad thread to output its data + * and start waiting on the next timeout */ + gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), + &id); + + /* and retry as long as there are no new RTCP packets out, + * because the RTCP thread may randomly decide to reschedule + * the RTCP timeout for later */ + } while (g_async_queue_length (data.rtcp_queue) == queue_length); + + GST_DEBUG ("RTCP timeout processed"); + } + gst_clock_id_unref (id); + + sr_ssrcs = g_hash_table_new (g_direct_hash, g_direct_equal); + rb_ssrcs = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, + (GDestroyNotify) g_hash_table_unref); + + /* verify the rtcp packets */ + for (i = 0; i < 2 * 35; i++) { + guint expected_rb_count = (i < 35) ? GST_RTCP_MAX_RB_COUNT : + (35 - GST_RTCP_MAX_RB_COUNT - 1); + + GST_DEBUG ("pop %d", i); + + buf = g_async_queue_pop (data.rtcp_queue); + g_assert (buf != NULL); + g_assert (gst_rtcp_buffer_validate (buf)); + + gst_rtcp_buffer_map (buf, GST_MAP_READ, &rtcp); + g_assert (gst_rtcp_buffer_get_first_packet (&rtcp, &rtcp_packet)); + g_assert_cmpint (gst_rtcp_packet_get_type (&rtcp_packet), ==, + GST_RTCP_TYPE_SR); + + gst_rtcp_packet_sr_get_sender_info (&rtcp_packet, &ssrc, NULL, NULL, NULL, + NULL); + g_assert_cmpint (ssrc, >=, 10000); + g_assert_cmpint (ssrc, <=, 10035); + g_hash_table_add (sr_ssrcs, GUINT_TO_POINTER (ssrc)); + + /* inspect the RBs */ + g_assert_cmpint (gst_rtcp_packet_get_rb_count (&rtcp_packet), ==, + expected_rb_count); + + if (i < 35) { + tmp_set = g_hash_table_new (g_direct_hash, g_direct_equal); + g_hash_table_insert (rb_ssrcs, GUINT_TO_POINTER (ssrc), tmp_set); + } else { + tmp_set = g_hash_table_lookup (rb_ssrcs, GUINT_TO_POINTER (ssrc)); + g_assert (tmp_set); + } + + for (j = 0; j < expected_rb_count; j++) { + gst_rtcp_packet_get_rb (&rtcp_packet, j, &ssrc, NULL, NULL, + NULL, NULL, NULL, NULL); + g_assert_cmpint (ssrc, >=, 10000); + g_assert_cmpint (ssrc, <=, 10035); + g_hash_table_add (tmp_set, GUINT_TO_POINTER (ssrc)); + } + + gst_rtcp_buffer_unmap (&rtcp); + gst_buffer_unref (buf); + + /* cycle done, verify all ssrcs have issued SR reports */ + if ((i + 1) == 35 || (i + 1) == (2 * 35)) { + g_assert_cmpint (g_hash_table_size (sr_ssrcs), ==, 35); + g_hash_table_remove_all (sr_ssrcs); + } + } + + /* now verify all other ssrcs have been reported on each ssrc's SR */ + g_assert_cmpint (g_hash_table_size (rb_ssrcs), ==, 35); + for (i = 10000; i < 10035; i++) { + tmp_set = g_hash_table_lookup (rb_ssrcs, GUINT_TO_POINTER (i)); + g_assert (tmp_set); + /* SR contains RBs for each other ssrc except the ssrc of the SR */ + g_assert_cmpint (g_hash_table_size (tmp_set), ==, 34); + g_assert (!g_hash_table_contains (tmp_set, GUINT_TO_POINTER (i))); + } + + g_hash_table_unref (sr_ssrcs); + g_hash_table_unref (rb_ssrcs); + + destroy_testharness (&data); +} + +GST_END_TEST; + +static Suite * +gstrtpsession_suite (void) +{ + Suite *s = suite_create ("rtpsession"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_multiple_ssrc_rr); + tcase_add_test (tc_chain, test_multiple_senders_roundrobin_rbs); + + return s; +} + +int +main (int argc, char **argv) +{ + int nf; + + Suite *s = gstrtpsession_suite (); + SRunner *sr = srunner_create (s); + + gst_check_init (&argc, &argv); + + srunner_run_all (sr, CK_NORMAL); + nf = srunner_ntests_failed (sr); + srunner_free (sr); + + return nf; +} diff --git a/tests/check/elements/shapewipe.c b/tests/check/elements/shapewipe.c index 40496009f..e68d38bd4 100644 --- a/tests/check/elements/shapewipe.c +++ b/tests/check/elements/shapewipe.c @@ -96,16 +96,10 @@ GST_START_TEST (test_general) gst_pad_new_from_static_template (&videosrctemplate, "videosrc"); gst_element_add_pad (videosrc, myvideosrcpad); gst_pad_set_active (myvideosrcpad, TRUE); - caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING); - gst_check_setup_events (myvideosrcpad, videosrc, caps, GST_FORMAT_TIME); - gst_caps_unref (caps); mymasksrcpad = gst_pad_new_from_static_template (&masksrctemplate, "masksrc"); gst_element_add_pad (masksrc, mymasksrcpad); gst_pad_set_active (mymasksrcpad, TRUE); - caps = gst_caps_from_string (SHAPEWIPE_MASK_CAPS_STRING); - gst_check_setup_events (mymasksrcpad, masksrc, caps, GST_FORMAT_TIME); - gst_caps_unref (caps); mysinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink"); gst_element_add_pad (sink, mysinkpad); @@ -125,6 +119,14 @@ GST_START_TEST (test_general) fail_unless (gst_element_set_state (bin, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS); + caps = gst_caps_from_string (SHAPEWIPE_MASK_CAPS_STRING); + gst_check_setup_events (mymasksrcpad, masksrc, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + + caps = gst_caps_from_string (SHAPEWIPE_VIDEO_CAPS_STRING); + gst_check_setup_events (myvideosrcpad, videosrc, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); + mask = gst_buffer_new_and_alloc (400 * 400); gst_buffer_map (mask, &map, GST_MAP_WRITE); data = map.data; diff --git a/tests/check/elements/souphttpsrc.c b/tests/check/elements/souphttpsrc.c index 2112843e7..4a275d5d4 100644 --- a/tests/check/elements/souphttpsrc.c +++ b/tests/check/elements/souphttpsrc.c @@ -508,7 +508,7 @@ do_get (SoupMessage * msg, const char *path) int buflen = 4096; - SoupKnownStatusCode status = SOUP_STATUS_OK; + SoupStatus status = SOUP_STATUS_OK; uri = soup_uri_to_string (soup_message_get_uri (msg), FALSE); GST_DEBUG ("request: \"%s\"", uri); @@ -535,7 +535,7 @@ do_get (SoupMessage * msg, const char *path) soup_message_headers_append (msg->response_headers, "Location", redir_uri); g_free (redir_uri); } - if (status != SOUP_STATUS_OK && !send_error_doc) + if (status != (SoupStatus) SOUP_STATUS_OK && !send_error_doc) goto leave; if (msg->method == SOUP_METHOD_GET) { diff --git a/tests/check/elements/videofilter.c b/tests/check/elements/videofilter.c index 2b5ae565c..17b67f880 100644 --- a/tests/check/elements/videofilter.c +++ b/tests/check/elements/videofilter.c @@ -75,8 +75,8 @@ cleanup_filter (GstElement * filter) } static void -check_filter_caps (const gchar * name, GstCaps * caps, gint size, - gint num_buffers, const gchar * prop, va_list varargs) +check_filter_caps (const gchar * name, GstEvent * event, GstCaps * caps, + gint size, gint num_buffers, const gchar * prop, va_list varargs) { GstElement *filter; GstBuffer *inbuffer, *outbuffer; @@ -94,6 +94,9 @@ check_filter_caps (const gchar * name, GstCaps * caps, gint size, gst_segment_init (&segment, GST_FORMAT_TIME); fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))); + if (event) + fail_unless (gst_pad_push_event (mysrcpad, event)); + for (i = 0; i < num_buffers; ++i) { inbuffer = gst_buffer_new_and_alloc (size); /* makes valgrind's memcheck happier */ @@ -131,7 +134,8 @@ check_filter_caps (const gchar * name, GstCaps * caps, gint size, } static void -check_filter (const gchar * name, gint num_buffers, const gchar * prop, ...) +check_filter_varargs (const gchar * name, GstEvent * event, gint num_buffers, + const gchar * prop, va_list varargs) { static const struct { @@ -143,7 +147,6 @@ check_filter (const gchar * name, gint num_buffers, const gchar * prop, ...) gint i, n, r; gint size; GstCaps *allcaps, *templ = gst_caps_from_string (VIDEO_CAPS_TEMPLATE_STRING); - va_list varargs; allcaps = gst_caps_normalize (templ); @@ -158,6 +161,7 @@ check_filter (const gchar * name, gint num_buffers, const gchar * prop, ...) /* try various resolutions */ for (r = 0; r < G_N_ELEMENTS (resolutions); ++r) { GstVideoInfo info; + va_list args_cp; caps = gst_caps_make_writable (caps); gst_caps_set_simple (caps, "width", G_TYPE_INT, resolutions[r].width, @@ -168,15 +172,39 @@ check_filter (const gchar * name, gint num_buffers, const gchar * prop, ...) gst_video_info_from_caps (&info, caps); size = GST_VIDEO_INFO_SIZE (&info); - va_start (varargs, prop); - check_filter_caps (name, caps, size, num_buffers, prop, varargs); - va_end (varargs); + if (event) + gst_event_ref (event); + + va_copy (args_cp, varargs); + check_filter_caps (name, event, caps, size, num_buffers, prop, args_cp); + va_end (args_cp); } gst_caps_unref (caps); } gst_caps_unref (allcaps); + if (event) + gst_event_unref (event); +} + +static void +check_filter (const gchar * name, gint num_buffers, const gchar * prop, ...) +{ + va_list varargs; + va_start (varargs, prop); + check_filter_varargs (name, NULL, num_buffers, prop, varargs); + va_end (varargs); +} + +static void +check_filter_with_event (const gchar * name, GstEvent * event, + gint num_buffers, const gchar * prop, ...) +{ + va_list varargs; + va_start (varargs, prop); + check_filter_varargs (name, event, num_buffers, prop, varargs); + va_end (varargs); } GST_START_TEST (test_videobalance) @@ -190,11 +218,24 @@ GST_END_TEST; GST_START_TEST (test_videoflip) { + GstEvent *event; + /* these we can handle with the caps */ check_filter ("videoflip", 2, "method", 0, NULL); check_filter ("videoflip", 2, "method", 2, NULL); check_filter ("videoflip", 2, "method", 4, NULL); check_filter ("videoflip", 2, "method", 5, NULL); + + event = gst_event_new_tag (gst_tag_list_new_empty ()); + check_filter_with_event ("videoflip", event, 2, "method", 8, NULL); + + event = gst_event_new_tag (gst_tag_list_new (GST_TAG_IMAGE_ORIENTATION, + "rotate-180", NULL)); + check_filter_with_event ("videoflip", event, 2, "method", 8, NULL); + + event = gst_event_new_tag (gst_tag_list_new (GST_TAG_IMAGE_ORIENTATION, + "invalid", NULL)); + check_filter_with_event ("videoflip", event, 2, "method", 8, NULL); } GST_END_TEST; diff --git a/tests/check/elements/videomixer.c b/tests/check/elements/videomixer.c index 7296cb3ee..e428332ab 100644 --- a/tests/check/elements/videomixer.c +++ b/tests/check/elements/videomixer.c @@ -1019,6 +1019,8 @@ GST_START_TEST (test_flush_start_flush_stop) /* cleanup */ gst_element_set_state (pipeline, GST_STATE_NULL); + gst_object_unref (sinkpad1); + gst_object_unref (sinkpad2); gst_object_unref (pipeline); } diff --git a/tests/check/elements/wavpackdec.c b/tests/check/elements/wavpackdec.c index 65c108dd5..9b30db56b 100644 --- a/tests/check/elements/wavpackdec.c +++ b/tests/check/elements/wavpackdec.c @@ -63,18 +63,21 @@ static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", "channels = (int) 1, " "rate = (int) 44100") ); +#define WAVPACK_CAPS "audio/x-wavpack, " \ + "depth = (int) 16, " \ + "channels = (int) 1, " "rate = (int) 44100, " "framed = (boolean) true" + static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-wavpack, " - "width = (int) 16, " - "channels = (int) 1, " "rate = (int) 44100, " "framed = (boolean) true") + GST_STATIC_CAPS (WAVPACK_CAPS) ); static GstElement * setup_wavpackdec (void) { GstElement *wavpackdec; + GstCaps *caps; GST_DEBUG ("setup_wavpackdec"); wavpackdec = gst_check_setup_element ("wavpackdec"); @@ -82,7 +85,10 @@ setup_wavpackdec (void) mysinkpad = gst_check_setup_sink_pad (wavpackdec, &sinktemplate); gst_pad_set_active (mysrcpad, TRUE); gst_pad_set_active (mysinkpad, TRUE); - gst_check_setup_events (mysrcpad, wavpackdec, NULL, GST_FORMAT_TIME); + + caps = gst_caps_from_string (WAVPACK_CAPS); + gst_check_setup_events (mysrcpad, wavpackdec, caps, GST_FORMAT_TIME); + gst_caps_unref (caps); fail_unless (gst_element_set_state (wavpackdec, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, diff --git a/tests/check/elements/wavparse.c b/tests/check/elements/wavparse.c index e4fee9207..10e2ea707 100644 --- a/tests/check/elements/wavparse.c +++ b/tests/check/elements/wavparse.c @@ -58,9 +58,15 @@ do_test_empty_file (gboolean can_activate_pull) gst_object_unref (pipeline); } -GST_START_TEST (test_empty_file) +GST_START_TEST (test_empty_file_pull) { do_test_empty_file (TRUE); +} + +GST_END_TEST; + +GST_START_TEST (test_empty_file_push) +{ do_test_empty_file (FALSE); } @@ -73,7 +79,8 @@ wavparse_suite (void) TCase *tc_chain = tcase_create ("wavparse"); suite_add_tcase (s, tc_chain); - tcase_add_test (tc_chain, test_empty_file); + tcase_add_test (tc_chain, test_empty_file_pull); + tcase_add_test (tc_chain, test_empty_file_push); return s; } diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in index 3267ca082..0083c25df 100644 --- a/tests/examples/Makefile.in +++ b/tests/examples/Makefile.in @@ -92,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -108,7 +107,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -465,7 +463,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in index 5b8a3be67..13e4496fb 100644 --- a/tests/examples/audiofx/Makefile.in +++ b/tests/examples/audiofx/Makefile.in @@ -90,7 +90,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -106,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -470,7 +468,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in index cc50e730c..930c099e8 100644 --- a/tests/examples/cairo/Makefile.in +++ b/tests/examples/cairo/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -456,7 +454,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in index 44a447ba7..f5f983d24 100644 --- a/tests/examples/equalizer/Makefile.in +++ b/tests/examples/equalizer/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -456,7 +454,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in index fc50877d6..ea21769ea 100644 --- a/tests/examples/jack/Makefile.in +++ b/tests/examples/jack/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -455,7 +453,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in index b3212061b..58248d710 100644 --- a/tests/examples/level/Makefile.in +++ b/tests/examples/level/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -456,7 +454,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/pulse/Makefile.in b/tests/examples/pulse/Makefile.in index b84292b25..9a2e895df 100644 --- a/tests/examples/pulse/Makefile.in +++ b/tests/examples/pulse/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -456,7 +454,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/rtp/Makefile.am b/tests/examples/rtp/Makefile.am index 0f57d3fa5..6bc3496d5 100644 --- a/tests/examples/rtp/Makefile.am +++ b/tests/examples/rtp/Makefile.am @@ -1,8 +1,17 @@ -noinst_PROGRAMS = server-alsasrc-PCMA client-PCMA +noinst_PROGRAMS = server-alsasrc-PCMA client-PCMA \ + client-rtpaux server-rtpaux # FIXME 0.11: ignore GValueArray warnings for now until this is sorted ERROR_CFLAGS= +server_rtpaux_SOURCES = server-rtpaux.c +server_rtpaux_CFLAGS = $(GST_CFLAGS) +server_rtpaux_LDADD = $(GST_LIBS) + +client_rtpaux_SOURCES = client-rtpaux.c +client_rtpaux_CFLAGS = $(GST_CFLAGS) +client_rtpaux_LDADD = $(GST_LIBS) + server_alsasrc_PCMA_SOURCES = server-alsasrc-PCMA.c server_alsasrc_PCMA_CFLAGS = $(GST_CFLAGS) server_alsasrc_PCMA_LDADD = $(GST_LIBS) $(LIBM) diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in index 01b860aad..e631999d5 100644 --- a/tests/examples/rtp/Makefile.in +++ b/tests/examples/rtp/Makefile.in @@ -80,7 +80,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -noinst_PROGRAMS = server-alsasrc-PCMA$(EXEEXT) client-PCMA$(EXEEXT) +noinst_PROGRAMS = server-alsasrc-PCMA$(EXEEXT) client-PCMA$(EXEEXT) \ + client-rtpaux$(EXEEXT) server-rtpaux$(EXEEXT) subdir = tests/examples/rtp DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp @@ -90,7 +91,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -106,7 +106,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -137,6 +136,12 @@ am__v_lt_1 = client_PCMA_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(client_PCMA_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am_client_rtpaux_OBJECTS = client_rtpaux-client-rtpaux.$(OBJEXT) +client_rtpaux_OBJECTS = $(am_client_rtpaux_OBJECTS) +client_rtpaux_DEPENDENCIES = $(am__DEPENDENCIES_1) +client_rtpaux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(client_rtpaux_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_server_alsasrc_PCMA_OBJECTS = \ server_alsasrc_PCMA-server-alsasrc-PCMA.$(OBJEXT) server_alsasrc_PCMA_OBJECTS = $(am_server_alsasrc_PCMA_OBJECTS) @@ -146,6 +151,12 @@ server_alsasrc_PCMA_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ +am_server_rtpaux_OBJECTS = server_rtpaux-server-rtpaux.$(OBJEXT) +server_rtpaux_OBJECTS = $(am_server_rtpaux_OBJECTS) +server_rtpaux_DEPENDENCIES = $(am__DEPENDENCIES_1) +server_rtpaux_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(server_rtpaux_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SCRIPTS = $(noinst_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -181,8 +192,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES) -DIST_SOURCES = $(client_PCMA_SOURCES) $(server_alsasrc_PCMA_SOURCES) +SOURCES = $(client_PCMA_SOURCES) $(client_rtpaux_SOURCES) \ + $(server_alsasrc_PCMA_SOURCES) $(server_rtpaux_SOURCES) +DIST_SOURCES = $(client_PCMA_SOURCES) $(client_rtpaux_SOURCES) \ + $(server_alsasrc_PCMA_SOURCES) $(server_rtpaux_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -468,7 +481,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -537,6 +549,12 @@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +server_rtpaux_SOURCES = server-rtpaux.c +server_rtpaux_CFLAGS = $(GST_CFLAGS) +server_rtpaux_LDADD = $(GST_LIBS) +client_rtpaux_SOURCES = client-rtpaux.c +client_rtpaux_CFLAGS = $(GST_CFLAGS) +client_rtpaux_LDADD = $(GST_LIBS) server_alsasrc_PCMA_SOURCES = server-alsasrc-PCMA.c server_alsasrc_PCMA_CFLAGS = $(GST_CFLAGS) server_alsasrc_PCMA_LDADD = $(GST_LIBS) $(LIBM) @@ -604,10 +622,18 @@ client-PCMA$(EXEEXT): $(client_PCMA_OBJECTS) $(client_PCMA_DEPENDENCIES) $(EXTRA @rm -f client-PCMA$(EXEEXT) $(AM_V_CCLD)$(client_PCMA_LINK) $(client_PCMA_OBJECTS) $(client_PCMA_LDADD) $(LIBS) +client-rtpaux$(EXEEXT): $(client_rtpaux_OBJECTS) $(client_rtpaux_DEPENDENCIES) $(EXTRA_client_rtpaux_DEPENDENCIES) + @rm -f client-rtpaux$(EXEEXT) + $(AM_V_CCLD)$(client_rtpaux_LINK) $(client_rtpaux_OBJECTS) $(client_rtpaux_LDADD) $(LIBS) + server-alsasrc-PCMA$(EXEEXT): $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_DEPENDENCIES) $(EXTRA_server_alsasrc_PCMA_DEPENDENCIES) @rm -f server-alsasrc-PCMA$(EXEEXT) $(AM_V_CCLD)$(server_alsasrc_PCMA_LINK) $(server_alsasrc_PCMA_OBJECTS) $(server_alsasrc_PCMA_LDADD) $(LIBS) +server-rtpaux$(EXEEXT): $(server_rtpaux_OBJECTS) $(server_rtpaux_DEPENDENCIES) $(EXTRA_server_rtpaux_DEPENDENCIES) + @rm -f server-rtpaux$(EXEEXT) + $(AM_V_CCLD)$(server_rtpaux_LINK) $(server_rtpaux_OBJECTS) $(server_rtpaux_LDADD) $(LIBS) + mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -615,7 +641,9 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client_PCMA-client-PCMA.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client_rtpaux-client-rtpaux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/server_rtpaux-server-rtpaux.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @@ -655,6 +683,20 @@ client_PCMA-client-PCMA.obj: client-PCMA.c @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) $(client_PCMA_CFLAGS) $(CFLAGS) -c -o client_PCMA-client-PCMA.obj `if test -f 'client-PCMA.c'; then $(CYGPATH_W) 'client-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/client-PCMA.c'; fi` +client_rtpaux-client-rtpaux.o: client-rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_rtpaux_CFLAGS) $(CFLAGS) -MT client_rtpaux-client-rtpaux.o -MD -MP -MF $(DEPDIR)/client_rtpaux-client-rtpaux.Tpo -c -o client_rtpaux-client-rtpaux.o `test -f 'client-rtpaux.c' || echo '$(srcdir)/'`client-rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/client_rtpaux-client-rtpaux.Tpo $(DEPDIR)/client_rtpaux-client-rtpaux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client-rtpaux.c' object='client_rtpaux-client-rtpaux.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) $(client_rtpaux_CFLAGS) $(CFLAGS) -c -o client_rtpaux-client-rtpaux.o `test -f 'client-rtpaux.c' || echo '$(srcdir)/'`client-rtpaux.c + +client_rtpaux-client-rtpaux.obj: client-rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(client_rtpaux_CFLAGS) $(CFLAGS) -MT client_rtpaux-client-rtpaux.obj -MD -MP -MF $(DEPDIR)/client_rtpaux-client-rtpaux.Tpo -c -o client_rtpaux-client-rtpaux.obj `if test -f 'client-rtpaux.c'; then $(CYGPATH_W) 'client-rtpaux.c'; else $(CYGPATH_W) '$(srcdir)/client-rtpaux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/client_rtpaux-client-rtpaux.Tpo $(DEPDIR)/client_rtpaux-client-rtpaux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='client-rtpaux.c' object='client_rtpaux-client-rtpaux.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) $(client_rtpaux_CFLAGS) $(CFLAGS) -c -o client_rtpaux-client-rtpaux.obj `if test -f 'client-rtpaux.c'; then $(CYGPATH_W) 'client-rtpaux.c'; else $(CYGPATH_W) '$(srcdir)/client-rtpaux.c'; fi` + server_alsasrc_PCMA-server-alsasrc-PCMA.o: server-alsasrc-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -MT server_alsasrc_PCMA-server-alsasrc-PCMA.o -MD -MP -MF $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Tpo -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.o `test -f 'server-alsasrc-PCMA.c' || echo '$(srcdir)/'`server-alsasrc-PCMA.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Tpo $(DEPDIR)/server_alsasrc_PCMA-server-alsasrc-PCMA.Po @@ -669,6 +711,20 @@ server_alsasrc_PCMA-server-alsasrc-PCMA.obj: server-alsasrc-PCMA.c @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) $(server_alsasrc_PCMA_CFLAGS) $(CFLAGS) -c -o server_alsasrc_PCMA-server-alsasrc-PCMA.obj `if test -f 'server-alsasrc-PCMA.c'; then $(CYGPATH_W) 'server-alsasrc-PCMA.c'; else $(CYGPATH_W) '$(srcdir)/server-alsasrc-PCMA.c'; fi` +server_rtpaux-server-rtpaux.o: server-rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_rtpaux_CFLAGS) $(CFLAGS) -MT server_rtpaux-server-rtpaux.o -MD -MP -MF $(DEPDIR)/server_rtpaux-server-rtpaux.Tpo -c -o server_rtpaux-server-rtpaux.o `test -f 'server-rtpaux.c' || echo '$(srcdir)/'`server-rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/server_rtpaux-server-rtpaux.Tpo $(DEPDIR)/server_rtpaux-server-rtpaux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server-rtpaux.c' object='server_rtpaux-server-rtpaux.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) $(server_rtpaux_CFLAGS) $(CFLAGS) -c -o server_rtpaux-server-rtpaux.o `test -f 'server-rtpaux.c' || echo '$(srcdir)/'`server-rtpaux.c + +server_rtpaux-server-rtpaux.obj: server-rtpaux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(server_rtpaux_CFLAGS) $(CFLAGS) -MT server_rtpaux-server-rtpaux.obj -MD -MP -MF $(DEPDIR)/server_rtpaux-server-rtpaux.Tpo -c -o server_rtpaux-server-rtpaux.obj `if test -f 'server-rtpaux.c'; then $(CYGPATH_W) 'server-rtpaux.c'; else $(CYGPATH_W) '$(srcdir)/server-rtpaux.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/server_rtpaux-server-rtpaux.Tpo $(DEPDIR)/server_rtpaux-server-rtpaux.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server-rtpaux.c' object='server_rtpaux-server-rtpaux.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) $(server_rtpaux_CFLAGS) $(CFLAGS) -c -o server_rtpaux-server-rtpaux.obj `if test -f 'server-rtpaux.c'; then $(CYGPATH_W) 'server-rtpaux.c'; else $(CYGPATH_W) '$(srcdir)/server-rtpaux.c'; fi` + mostlyclean-libtool: -rm -f *.lo diff --git a/tests/examples/rtp/client-rtpaux.c b/tests/examples/rtp/client-rtpaux.c new file mode 100644 index 000000000..2352ed183 --- /dev/null +++ b/tests/examples/rtp/client-rtpaux.c @@ -0,0 +1,373 @@ +/* GStreamer + * Copyright (C) 2013 Collabora Ltd. + * @author Torrie Fischer <torrie.fischer@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. + */ +#include <gst/gst.h> +#include <stdlib.h> + +/* + * RTP receiver with RFC4588 retransmission handling enabled + * + * In this example we have two RTP sessions, one for video and one for audio. + * Video is received on port 5000, with its RTCP stream received on port 5001 + * and sent on port 5005. Audio is received on port 5005, with its RTCP stream + * received on port 5006 and sent on port 5011. + * + * In both sessions, we set "rtprtxreceive" as the session's "aux" element + * in rtpbin, which enables RFC4588 retransmission handling for that session. + * + * .-------. .----------. .-----------. .---------. .-------------. + * RTP |udpsrc | | rtpbin | |theoradepay| |theoradec| |autovideosink| + * port=5000 | src->recv_rtp_0 recv_rtp_0->sink src->sink src->sink | + * '-------' | | '-----------' '---------' '-------------' + * | | + * | | .-------. + * | | |udpsink| RTCP + * | send_rtcp_0->sink | port=5005 + * .-------. | | '-------' sync=false + * RTCP |udpsrc | | | async=false + * port=5001 | src->recv_rtcp_0 | + * '-------' | | + * | | + * .-------. | | .---------. .-------. .-------------. + * RTP |udpsrc | | | |pcmadepay| |alawdec| |autoaudiosink| + * port=5006 | src->recv_rtp_1 recv_rtp_1->sink src->sink src->sink | + * '-------' | | '---------' '-------' '-------------' + * | | + * | | .-------. + * | | |udpsink| RTCP + * | send_rtcp_1->sink | port=5011 + * .-------. | | '-------' sync=false + * RTCP |udpsrc | | | async=false + * port=5007 | src->recv_rtcp_1 | + * '-------' '----------' + * + */ + +GMainLoop *loop = NULL; + +typedef struct _SessionData +{ + int ref; + GstElement *rtpbin; + guint sessionNum; + GstCaps *caps; + GstElement *output; +} SessionData; + +static SessionData * +session_ref (SessionData * data) +{ + g_atomic_int_inc (&data->ref); + return data; +} + +static void +session_unref (gpointer data) +{ + SessionData *session = (SessionData *) data; + if (g_atomic_int_dec_and_test (&session->ref)) { + g_object_unref (session->rtpbin); + gst_caps_unref (session->caps); + g_free (session); + } +} + +static SessionData * +session_new (guint sessionNum) +{ + SessionData *ret = g_new0 (SessionData, 1); + ret->sessionNum = sessionNum; + return session_ref (ret); +} + +static void +setup_ghost_sink (GstElement * sink, GstBin * bin) +{ + GstPad *sinkPad = gst_element_get_static_pad (sink, "sink"); + GstPad *binPad = gst_ghost_pad_new ("sink", sinkPad); + gst_element_add_pad (GST_ELEMENT (bin), binPad); +} + +static SessionData * +make_audio_session (guint sessionNum) +{ + SessionData *ret = session_new (sessionNum); + GstBin *bin = GST_BIN (gst_bin_new ("audio")); + GstElement *queue = gst_element_factory_make ("queue", NULL); + GstElement *sink = gst_element_factory_make ("autoaudiosink", NULL); + GstElement *audioconvert = gst_element_factory_make ("audioconvert", NULL); + GstElement *audioresample = gst_element_factory_make ("audioresample", NULL); + GstElement *depayloader = gst_element_factory_make ("rtppcmadepay", NULL); + GstElement *decoder = gst_element_factory_make ("alawdec", NULL); + + gst_bin_add_many (bin, queue, depayloader, decoder, audioconvert, + audioresample, sink, NULL); + gst_element_link_many (queue, depayloader, decoder, audioconvert, + audioresample, sink, NULL); + + setup_ghost_sink (queue, bin); + + ret->output = GST_ELEMENT (bin); + ret->caps = gst_caps_new_simple ("application/x-rtp", + "media", G_TYPE_STRING, "audio", + "clock-rate", G_TYPE_INT, 8000, + "encoding-name", G_TYPE_STRING, "PCMA", NULL); + + return ret; +} + +static SessionData * +make_video_session (guint sessionNum) +{ + SessionData *ret = session_new (sessionNum); + GstBin *bin = GST_BIN (gst_bin_new ("video")); + GstElement *queue = gst_element_factory_make ("queue", NULL); + GstElement *depayloader = gst_element_factory_make ("rtptheoradepay", NULL); + GstElement *decoder = gst_element_factory_make ("theoradec", NULL); + GstElement *converter = gst_element_factory_make ("videoconvert", NULL); + GstElement *sink = gst_element_factory_make ("autovideosink", NULL); + + gst_bin_add_many (bin, depayloader, decoder, converter, queue, sink, NULL); + gst_element_link_many (queue, depayloader, decoder, converter, sink, NULL); + + setup_ghost_sink (queue, bin); + + ret->output = GST_ELEMENT (bin); + ret->caps = gst_caps_new_simple ("application/x-rtp", + "media", G_TYPE_STRING, "video", + "clock-rate", G_TYPE_INT, 90000, + "encoding-name", G_TYPE_STRING, "THEORA", NULL); + + return ret; +} + +static GstCaps * +request_pt_map (GstElement * rtpbin, guint session, guint pt, + gpointer user_data) +{ + SessionData *data = (SessionData *) user_data; + g_print ("Looking for caps for pt %u in session %u, have %u\n", pt, session, + data->sessionNum); + if (session == data->sessionNum) { + g_print ("Returning %s\n", gst_caps_to_string (data->caps)); + return gst_caps_ref (data->caps); + } + return NULL; +} + +static void +cb_eos (GstBus * bus, GstMessage * message, gpointer data) +{ + g_print ("Got EOS\n"); + g_main_loop_quit (loop); +} + +static void +cb_state (GstBus * bus, GstMessage * message, gpointer data) +{ + GstObject *pipe = GST_OBJECT (data); + GstState old, new, pending; + gst_message_parse_state_changed (message, &old, &new, &pending); + if (message->src == pipe) { + g_print ("Pipeline %s changed state from %s to %s\n", + GST_OBJECT_NAME (message->src), + gst_element_state_get_name (old), gst_element_state_get_name (new)); + } +} + +static void +cb_warning (GstBus * bus, GstMessage * message, gpointer data) +{ + GError *error = NULL; + gst_message_parse_warning (message, &error, NULL); + g_printerr ("Got warning from %s: %s\n", GST_OBJECT_NAME (message->src), + error->message); + g_error_free (error); +} + +static void +cb_error (GstBus * bus, GstMessage * message, gpointer data) +{ + GError *error = NULL; + gst_message_parse_error (message, &error, NULL); + g_printerr ("Got error from %s: %s\n", GST_OBJECT_NAME (message->src), + error->message); + g_error_free (error); + g_main_loop_quit (loop); +} + +static void +handle_new_stream (GstElement * element, GstPad * newPad, gpointer data) +{ + SessionData *session = (SessionData *) data; + gchar *padName; + gchar *myPrefix; + + padName = gst_pad_get_name (newPad); + myPrefix = g_strdup_printf ("recv_rtp_src_%u", session->sessionNum); + + g_print ("New pad: %s, looking for %s_*\n", padName, myPrefix); + + if (g_str_has_prefix (padName, myPrefix)) { + GstPad *outputSinkPad; + + gst_bin_add (GST_BIN (gst_element_get_parent (session->rtpbin)), + session->output); + gst_element_sync_state_with_parent (session->output); + + outputSinkPad = gst_element_get_static_pad (session->output, "sink"); + g_assert_cmpint (gst_pad_link (newPad, outputSinkPad), ==, GST_PAD_LINK_OK); + gst_object_unref (outputSinkPad); + + g_print ("Linked!\n"); + } + g_free (myPrefix); + g_free (padName); +} + +static GstElement * +request_aux_receiver (GstElement * rtpbin, guint sessid, SessionData * session) +{ + GstElement *rtx, *bin; + GstPad *pad; + gchar *name; + GstStructure *pt_map; + + GST_INFO ("creating AUX receiver"); + bin = gst_bin_new (NULL); + rtx = gst_element_factory_make ("rtprtxreceive", NULL); + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "8", G_TYPE_UINT, 98, "96", G_TYPE_UINT, 99, NULL); + g_object_set (rtx, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + gst_bin_add (GST_BIN (bin), rtx); + + pad = gst_element_get_static_pad (rtx, "src"); + name = g_strdup_printf ("src_%u", sessid); + gst_element_add_pad (bin, gst_ghost_pad_new (name, pad)); + g_free (name); + gst_object_unref (pad); + + pad = gst_element_get_static_pad (rtx, "sink"); + name = g_strdup_printf ("sink_%u", sessid); + gst_element_add_pad (bin, gst_ghost_pad_new (name, pad)); + g_free (name); + gst_object_unref (pad); + + return bin; +} + +static void +join_session (GstElement * pipeline, GstElement * rtpBin, SessionData * session) +{ + GstElement *rtpSrc; + GstElement *rtcpSrc; + GstElement *rtcpSink; + gchar *padName; + guint basePort; + + g_print ("Joining session %p\n", session); + + session->rtpbin = g_object_ref (rtpBin); + + basePort = 5000 + (session->sessionNum * 6); + + rtpSrc = gst_element_factory_make ("udpsrc", NULL); + rtcpSrc = gst_element_factory_make ("udpsrc", NULL); + rtcpSink = gst_element_factory_make ("udpsink", NULL); + g_object_set (rtpSrc, "port", basePort, "caps", session->caps, NULL); + g_object_set (rtcpSink, "port", basePort + 5, "host", "127.0.0.1", "sync", + FALSE, "async", FALSE, NULL); + g_object_set (rtcpSrc, "port", basePort + 1, NULL); + + g_print ("Connecting to %i/%i/%i\n", basePort, basePort + 1, basePort + 5); + + /* enable RFC4588 retransmission handling by setting rtprtxreceive + * as the "aux" element of rtpbin */ + g_signal_connect (rtpBin, "request-aux-receiver", + (GCallback) request_aux_receiver, session); + + gst_bin_add_many (GST_BIN (pipeline), rtpSrc, rtcpSrc, rtcpSink, NULL); + + g_signal_connect_data (rtpBin, "pad-added", G_CALLBACK (handle_new_stream), + session_ref (session), (GClosureNotify) session_unref, 0); + + g_signal_connect_data (rtpBin, "request-pt-map", G_CALLBACK (request_pt_map), + session_ref (session), (GClosureNotify) session_unref, 0); + + padName = g_strdup_printf ("recv_rtp_sink_%u", session->sessionNum); + gst_element_link_pads (rtpSrc, "src", rtpBin, padName); + g_free (padName); + + padName = g_strdup_printf ("recv_rtcp_sink_%u", session->sessionNum); + gst_element_link_pads (rtcpSrc, "src", rtpBin, padName); + g_free (padName); + + padName = g_strdup_printf ("send_rtcp_src_%u", session->sessionNum); + gst_element_link_pads (rtpBin, padName, rtcpSink, "sink"); + g_free (padName); + + session_unref (session); +} + +int +main (int argc, char **argv) +{ + GstPipeline *pipe; + SessionData *videoSession; + SessionData *audioSession; + GstElement *rtpBin; + GstBus *bus; + + gst_init (&argc, &argv); + + loop = g_main_loop_new (NULL, FALSE); + pipe = GST_PIPELINE (gst_pipeline_new (NULL)); + + bus = gst_element_get_bus (GST_ELEMENT (pipe)); + g_signal_connect (bus, "message::error", G_CALLBACK (cb_error), pipe); + g_signal_connect (bus, "message::warning", G_CALLBACK (cb_warning), pipe); + g_signal_connect (bus, "message::state-changed", G_CALLBACK (cb_state), pipe); + g_signal_connect (bus, "message::eos", G_CALLBACK (cb_eos), NULL); + gst_bus_add_signal_watch (bus); + gst_object_unref (bus); + + rtpBin = gst_element_factory_make ("rtpbin", NULL); + gst_bin_add (GST_BIN (pipe), rtpBin); + g_object_set (rtpBin, "latency", 200, "do-retransmission", TRUE, NULL); + + videoSession = make_video_session (0); + audioSession = make_audio_session (1); + + join_session (GST_ELEMENT (pipe), rtpBin, videoSession); + join_session (GST_ELEMENT (pipe), rtpBin, audioSession); + + g_print ("starting client pipeline\n"); + gst_element_set_state (GST_ELEMENT (pipe), GST_STATE_PLAYING); + + g_main_loop_run (loop); + + g_print ("stoping client pipeline\n"); + gst_element_set_state (GST_ELEMENT (pipe), GST_STATE_NULL); + + gst_object_unref (pipe); + g_main_loop_unref (loop); + + return 0; +} diff --git a/tests/examples/rtp/server-rtpaux.c b/tests/examples/rtp/server-rtpaux.c new file mode 100644 index 000000000..838900fb1 --- /dev/null +++ b/tests/examples/rtp/server-rtpaux.c @@ -0,0 +1,295 @@ +/* GStreamer + * Copyright (C) 2013 Collabora Ltd. + * @author Torrie Fischer <torrie.fischer@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. + */ +#include <gst/gst.h> + +/* + * An RTP server + * creates two sessions and streams audio on one, video on the other, with RTCP + * on both sessions. The destination is 127.0.0.1. + * + * In both sessions, we set "rtprtxsend" as the session's "aux" element + * in rtpbin, which enables RFC4588 retransmission for that session. + * + * .-------. .-------. .-------. .------------. .-------. + * |audiots| |alawenc| |pcmapay| | rtpbin | |udpsink| + * | src->sink src->sink src->send_rtp_0 send_rtp_0->sink | + * '-------' '-------' '-------' | | '-------' + * | | + * .-------. .---------. .---------. | | .-------. + * |audiots| |theoraenc| |theorapay| | | |udpsink| + * | src->sink src->sink src->send_rtp_1 send_rtp_1->sink | + * '-------' '---------' '---------' | | '-------' + * | | + * .------. | | + * |udpsrc| | | .-------. + * | src->recv_rtcp_0 | |udpsink| + * '------' | send_rtcp_0->sink | + * | | '-------' + * .------. | | + * |udpsrc| | | .-------. + * | src->recv_rtcp_1 | |udpsink| + * '------' | send_rtcp_1->sink | + * '------------' '-------' + * + * To keep the set of ports consistent across both this server and the + * corresponding client, a SessionData struct maps a rtpbin session number to + * a GstBin and is used to create the corresponding udp sinks with correct + * ports. + */ + +typedef struct _SessionData +{ + int ref; + guint sessionNum; + GstElement *input; +} SessionData; + +static SessionData * +session_ref (SessionData * data) +{ + g_atomic_int_inc (&data->ref); + return data; +} + +static void +session_unref (gpointer data) +{ + SessionData *session = (SessionData *) data; + if (g_atomic_int_dec_and_test (&session->ref)) { + g_free (session); + } +} + +static SessionData * +session_new (guint sessionNum) +{ + SessionData *ret = g_new0 (SessionData, 1); + ret->sessionNum = sessionNum; + return session_ref (ret); +} + +/* + * Used to generate informative messages during pipeline startup + */ +static void +cb_state (GstBus * bus, GstMessage * message, gpointer data) +{ + GstObject *pipe = GST_OBJECT (data); + GstState old, new, pending; + gst_message_parse_state_changed (message, &old, &new, &pending); + if (message->src == pipe) { + g_print ("Pipeline %s changed state from %s to %s\n", + GST_OBJECT_NAME (message->src), + gst_element_state_get_name (old), gst_element_state_get_name (new)); + } +} + +/* + * Creates a GstGhostPad named "src" on the given bin, pointed at the "src" pad + * of the given element + */ +static void +setup_ghost (GstElement * src, GstBin * bin) +{ + GstPad *srcPad = gst_element_get_static_pad (src, "src"); + GstPad *binPad = gst_ghost_pad_new ("src", srcPad); + gst_element_add_pad (GST_ELEMENT (bin), binPad); +} + +static SessionData * +make_audio_session (guint sessionNum) +{ + SessionData *session; + GstBin *audioBin = GST_BIN (gst_bin_new (NULL)); + GstElement *audioSrc = gst_element_factory_make ("audiotestsrc", NULL); + GstElement *encoder = gst_element_factory_make ("alawenc", NULL); + GstElement *payloader = gst_element_factory_make ("rtppcmapay", NULL); + g_object_set (audioSrc, "is-live", TRUE, NULL); + + gst_bin_add_many (audioBin, audioSrc, encoder, payloader, NULL); + gst_element_link_many (audioSrc, encoder, payloader, NULL); + + setup_ghost (payloader, audioBin); + + session = session_new (sessionNum); + session->input = GST_ELEMENT (audioBin); + + return session; +} + +static SessionData * +make_video_session (guint sessionNum) +{ + GstBin *videoBin = GST_BIN (gst_bin_new (NULL)); + GstElement *videoSrc = gst_element_factory_make ("videotestsrc", NULL); + GstElement *encoder = gst_element_factory_make ("theoraenc", NULL); + GstElement *payloader = gst_element_factory_make ("rtptheorapay", NULL); + GstCaps *videoCaps; + SessionData *session; + g_object_set (videoSrc, "is-live", TRUE, "horizontal-speed", 1, NULL); + g_object_set (payloader, "config-interval", 2, NULL); + + gst_bin_add_many (videoBin, videoSrc, encoder, payloader, NULL); + videoCaps = gst_caps_new_simple ("video/x-raw", + "width", G_TYPE_INT, 352, + "height", G_TYPE_INT, 288, "framerate", GST_TYPE_FRACTION, 15, 1, NULL); + gst_element_link_filtered (videoSrc, encoder, videoCaps); + gst_element_link (encoder, payloader); + + setup_ghost (payloader, videoBin); + + session = session_new (sessionNum); + session->input = GST_ELEMENT (videoBin); + + return session; +} + +static GstElement * +request_aux_sender (GstElement * rtpbin, guint sessid, SessionData * session) +{ + GstElement *rtx, *bin; + GstPad *pad; + gchar *name; + GstStructure *pt_map; + + GST_INFO ("creating AUX sender"); + bin = gst_bin_new (NULL); + rtx = gst_element_factory_make ("rtprtxsend", NULL); + pt_map = gst_structure_new ("application/x-rtp-pt-map", + "8", G_TYPE_UINT, 98, "96", G_TYPE_UINT, 99, NULL); + g_object_set (rtx, "payload-type-map", pt_map, NULL); + gst_structure_free (pt_map); + gst_bin_add (GST_BIN (bin), rtx); + + pad = gst_element_get_static_pad (rtx, "src"); + name = g_strdup_printf ("src_%u", sessid); + gst_element_add_pad (bin, gst_ghost_pad_new (name, pad)); + g_free (name); + gst_object_unref (pad); + + pad = gst_element_get_static_pad (rtx, "sink"); + name = g_strdup_printf ("sink_%u", sessid); + gst_element_add_pad (bin, gst_ghost_pad_new (name, pad)); + g_free (name); + gst_object_unref (pad); + + return bin; +} + +/* + * This function sets up the UDP sinks and sources for RTP/RTCP, adds the + * given session's bin into the pipeline, and links it to the properly numbered + * pads on the rtpbin + */ +static void +add_stream (GstPipeline * pipe, GstElement * rtpBin, SessionData * session) +{ + GstElement *rtpSink = gst_element_factory_make ("udpsink", NULL); + GstElement *rtcpSink = gst_element_factory_make ("udpsink", NULL); + GstElement *rtcpSrc = gst_element_factory_make ("udpsrc", NULL); + GstElement *identity = gst_element_factory_make ("identity", NULL); + int basePort; + gchar *padName; + + basePort = 5000 + (session->sessionNum * 6); + + gst_bin_add_many (GST_BIN (pipe), rtpSink, rtcpSink, rtcpSrc, identity, + session->input, NULL); + + /* enable retransmission by setting rtprtxsend as the "aux" element of rtpbin */ + g_signal_connect (rtpBin, "request-aux-sender", + (GCallback) request_aux_sender, session); + + g_object_set (rtpSink, "port", basePort, "host", "127.0.0.1", NULL); + g_object_set (rtcpSink, "port", basePort + 1, "host", "127.0.0.1", "sync", + FALSE, "async", FALSE, NULL); + g_object_set (rtcpSrc, "port", basePort + 5, NULL); + + /* this is just to drop some rtp packets at random, to demonstrate + * that rtprtxsend actually works */ + g_object_set (identity, "drop-probability", 0.01, NULL); + + padName = g_strdup_printf ("send_rtp_sink_%u", session->sessionNum); + gst_element_link_pads (session->input, "src", rtpBin, padName); + g_free (padName); + + /* link rtpbin to udpsink directly here if you don't want + * artificial packet loss */ + padName = g_strdup_printf ("send_rtp_src_%u", session->sessionNum); + gst_element_link_pads (rtpBin, padName, identity, "sink"); + gst_element_link (identity, rtpSink); + g_free (padName); + + padName = g_strdup_printf ("send_rtcp_src_%u", session->sessionNum); + gst_element_link_pads (rtpBin, padName, rtcpSink, "sink"); + g_free (padName); + + padName = g_strdup_printf ("recv_rtcp_sink_%u", session->sessionNum); + gst_element_link_pads (rtcpSrc, "src", rtpBin, padName); + g_free (padName); + + g_print ("New RTP stream on %i/%i/%i\n", basePort, basePort + 1, + basePort + 5); + + session_unref (session); +} + +int +main (int argc, char **argv) +{ + GstPipeline *pipe; + GstBus *bus; + SessionData *videoSession; + SessionData *audioSession; + GstElement *rtpBin; + GMainLoop *loop; + + gst_init (&argc, &argv); + + loop = g_main_loop_new (NULL, FALSE); + + pipe = GST_PIPELINE (gst_pipeline_new (NULL)); + bus = gst_element_get_bus (GST_ELEMENT (pipe)); + g_signal_connect (bus, "message::state-changed", G_CALLBACK (cb_state), pipe); + gst_bus_add_signal_watch (bus); + gst_object_unref (bus); + + rtpBin = gst_element_factory_make ("rtpbin", NULL); + + gst_bin_add (GST_BIN (pipe), rtpBin); + + videoSession = make_video_session (0); + audioSession = make_audio_session (1); + add_stream (pipe, rtpBin, videoSession); + add_stream (pipe, rtpBin, audioSession); + + g_print ("starting server pipeline\n"); + gst_element_set_state (GST_ELEMENT (pipe), GST_STATE_PLAYING); + + g_main_loop_run (loop); + + g_print ("stopping server pipeline\n"); + gst_element_set_state (GST_ELEMENT (pipe), GST_STATE_NULL); + + gst_object_unref (pipe); + g_main_loop_unref (loop); + + return 0; +} diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in index b71007d9a..5a7340007 100644 --- a/tests/examples/shapewipe/Makefile.in +++ b/tests/examples/shapewipe/Makefile.in @@ -90,7 +90,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -106,7 +105,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -460,7 +458,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in index bfd5c5f29..670f38f71 100644 --- a/tests/examples/spectrum/Makefile.in +++ b/tests/examples/spectrum/Makefile.in @@ -91,7 +91,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -107,7 +106,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -478,7 +476,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in index 8c8efbb87..f7f1b9be1 100644 --- a/tests/examples/v4l2/Makefile.in +++ b/tests/examples/v4l2/Makefile.in @@ -89,7 +89,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -105,7 +104,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -456,7 +454,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in index 6eb1ca798..7dc2e3205 100644 --- a/tests/files/Makefile.in +++ b/tests/files/Makefile.in @@ -86,7 +86,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -102,7 +101,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -400,7 +398,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ diff --git a/tests/icles/Makefile.am b/tests/icles/Makefile.am index 706a5bd0d..9ff34a9c5 100644 --- a/tests/icles/Makefile.am +++ b/tests/icles/Makefile.am @@ -7,7 +7,6 @@ else GTK_TESTS = endif -if USE_GST_V4L2 V4L2_TESTS = v4l2src-test v4l2src_test_SOURCES = v4l2src-test.c @@ -15,10 +14,6 @@ v4l2src_test_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) v4l2src_test_LDADD = $(GST_PLUGINS_BASE_LIBS) \ -lgstvideo-$(GST_API_VERSION) -else -V4L2_TESTS = -endif - if USE_OSS4 OSS4_TESTS=test-oss4 diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in index 7c10795e0..f878d195c 100644 --- a/tests/icles/Makefile.in +++ b/tests/icles/Makefile.in @@ -92,7 +92,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/as-compiler-flag.m4 \ $(top_srcdir)/common/m4/as-gcc-inline-assembly.m4 \ $(top_srcdir)/common/m4/as-libtool.m4 \ - $(top_srcdir)/common/m4/as-scrub-include.m4 \ $(top_srcdir)/common/m4/as-version.m4 \ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/common/m4/gst-arch.m4 \ @@ -108,7 +107,6 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ $(top_srcdir)/common/m4/gst-platform.m4 \ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ $(top_srcdir)/common/m4/gst-plugindir.m4 \ - $(top_srcdir)/common/m4/gst-x11.m4 \ $(top_srcdir)/common/m4/gst.m4 \ $(top_srcdir)/common/m4/gtk-doc.m4 \ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ @@ -129,7 +127,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @HAVE_GTK_TRUE@am__EXEEXT_1 = gdkpixbufsink-test$(EXEEXT) @USE_OSS4_TRUE@am__EXEEXT_2 = test-oss4$(EXEEXT) -@USE_GST_V4L2_TRUE@am__EXEEXT_3 = v4l2src-test$(EXEEXT) +am__EXEEXT_3 = v4l2src-test$(EXEEXT) @USE_X_TRUE@am__EXEEXT_4 = ximagesrc-test$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am_equalizer_test_OBJECTS = equalizer_test-equalizer-test.$(OBJEXT) @@ -161,11 +159,9 @@ test_oss4_OBJECTS = $(am_test_oss4_OBJECTS) test_oss4_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_oss4_CFLAGS) \ $(CFLAGS) $(test_oss4_LDFLAGS) $(LDFLAGS) -o $@ -am__v4l2src_test_SOURCES_DIST = v4l2src-test.c -@USE_GST_V4L2_TRUE@am_v4l2src_test_OBJECTS = \ -@USE_GST_V4L2_TRUE@ v4l2src_test-v4l2src-test.$(OBJEXT) +am_v4l2src_test_OBJECTS = v4l2src_test-v4l2src-test.$(OBJEXT) v4l2src_test_OBJECTS = $(am_v4l2src_test_OBJECTS) -@USE_GST_V4L2_TRUE@v4l2src_test_DEPENDENCIES = $(am__DEPENDENCIES_1) +v4l2src_test_DEPENDENCIES = $(am__DEPENDENCIES_1) v4l2src_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(v4l2src_test_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -239,7 +235,7 @@ SOURCES = $(equalizer_test_SOURCES) $(gdkpixbufsink_test_SOURCES) \ $(videocrop2_test_SOURCES) $(ximagesrc_test_SOURCES) DIST_SOURCES = $(equalizer_test_SOURCES) \ $(am__gdkpixbufsink_test_SOURCES_DIST) \ - $(am__test_oss4_SOURCES_DIST) $(am__v4l2src_test_SOURCES_DIST) \ + $(am__test_oss4_SOURCES_DIST) $(v4l2src_test_SOURCES) \ $(videobox_test_SOURCES) $(videocrop_test_SOURCES) \ $(videocrop2_test_SOURCES) $(am__ximagesrc_test_SOURCES_DIST) am__can_run_installinfo = \ @@ -525,7 +521,6 @@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XMKMF = @XMKMF@ XSHM_LIBS = @XSHM_LIBS@ -XVIDEO_LIBS = @XVIDEO_LIBS@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ @@ -599,12 +594,11 @@ top_srcdir = @top_srcdir@ @HAVE_GTK_TRUE@gdkpixbufsink_test_SOURCES = gdkpixbufsink-test.c @HAVE_GTK_TRUE@gdkpixbufsink_test_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) @HAVE_GTK_TRUE@gdkpixbufsink_test_LDADD = $(GST_LIBS) $(GTK_LIBS) -@USE_GST_V4L2_FALSE@V4L2_TESTS = -@USE_GST_V4L2_TRUE@V4L2_TESTS = v4l2src-test -@USE_GST_V4L2_TRUE@v4l2src_test_SOURCES = v4l2src-test.c -@USE_GST_V4L2_TRUE@v4l2src_test_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) -@USE_GST_V4L2_TRUE@v4l2src_test_LDADD = $(GST_PLUGINS_BASE_LIBS) \ -@USE_GST_V4L2_TRUE@ -lgstvideo-$(GST_API_VERSION) +V4L2_TESTS = v4l2src-test +v4l2src_test_SOURCES = v4l2src-test.c +v4l2src_test_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +v4l2src_test_LDADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstvideo-$(GST_API_VERSION) @USE_OSS4_FALSE@OSS4_TESTS = @USE_OSS4_TRUE@OSS4_TESTS = test-oss4 diff --git a/win32/common/config.h b/win32/common/config.h index 5c496977f..1728c6a3e 100644 --- a/win32/common/config.h +++ b/win32/common/config.h @@ -58,17 +58,11 @@ #define GST_PACKAGE_ORIGIN "Unknown package origin" /* GStreamer package release date/time for plugins as YYYY-MM-DD */ -#define GST_PACKAGE_RELEASE_DATETIME "2014-04-18" +#define GST_PACKAGE_RELEASE_DATETIME "2014-05-03" /* Define if static plugins should be built */ #undef GST_PLUGIN_BUILD_STATIC -/* struct v4l2_buffer missing */ -#undef GST_V4L2_MISSING_BUFDECL - -/* I know the API is subject to change. */ -#undef G_UDEV_API_IS_SUBJECT_TO_CHANGE - /* Define to enable aalib ASCII Art library (used by aasink). */ #undef HAVE_AALIB @@ -142,10 +136,6 @@ */ #undef HAVE_DCGETTEXT -/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0 - if you don't. */ -#undef HAVE_DECL_V4L2_MEMORY_DMABUF - /* Define to enable DirectSound plug-in (used by directsoundsink). */ #undef HAVE_DIRECTSOUND @@ -191,7 +181,7 @@ /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT -/* Define to enable Video 4 Linux 2 (used by v4l2src). */ +/* Define to enable Video 4 Linux 2 (used by video4linux2). */ #undef HAVE_GST_V4L2 /* Whether gudev is available for device detection */ @@ -359,9 +349,6 @@ /* Define to enable X Shared Memory extension. */ #undef HAVE_XSHM -/* Define to enable X11 XVideo extensions. */ -#undef HAVE_XVIDEO - /* Define to enable zlib support for qtdemux/matroska. */ #undef HAVE_ZLIB @@ -385,7 +372,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.2.4" +#define PACKAGE_STRING "GStreamer Good Plug-ins 1.3.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gst-plugins-good" @@ -394,7 +381,7 @@ #undef PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.2.4" +#define PACKAGE_VERSION "1.3.1" /* directory where plugins are located */ #ifdef _DEBUG @@ -428,7 +415,7 @@ #undef TARGET_CPU /* Version number of package */ -#define VERSION "1.2.4" +#define VERSION "1.3.1" /* old wavpack API */ #undef WAVPACK_OLD_API -- GitLab