aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-05-21 11:42:31 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-05-21 11:42:31 +0200
commitf403357d0ccd615874b3e491c1497b8633906136 (patch)
tree8df1e11c9076a9e8d985ae6c803fec369c237c30
parent9cccb5bfaa3615b69fe3af57bff8604bc410d730 (diff)
Imported Upstream version 0.11.91upstream/0.11.91
-rw-r--r--ChangeLog962
-rw-r--r--Makefile.in15
-rw-r--r--NEWS9
-rw-r--r--RELEASE28
-rw-r--r--aclocal.m429
-rwxr-xr-xautogen.sh10
-rw-r--r--common/Makefile.in2
-rw-r--r--common/gst-autogen.sh32
-rw-r--r--common/m4/Makefile.in2
-rw-r--r--common/m4/as-libtool.m43
-rw-r--r--common/release.mak6
-rw-r--r--config.h.in5
-rwxr-xr-xconfigure1130
-rw-r--r--configure.ac21
-rw-r--r--docs/Makefile.in2
-rw-r--r--docs/design/Makefile.in2
-rw-r--r--docs/libs/Makefile.am3
-rw-r--r--docs/libs/Makefile.in5
-rw-r--r--docs/libs/gst-plugins-base-libs-docs.sgml19
-rw-r--r--docs/libs/gst-plugins-base-libs-sections.txt370
-rw-r--r--docs/libs/gst-plugins-base-libs.types10
-rw-r--r--docs/libs/html/api-index-full.html844
-rw-r--r--docs/libs/html/compiling.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html1089
-rw-r--r--docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html758
-rw-r--r--docs/libs/html/gst-plugins-base-libs-appsink.html10
-rw-r--r--docs/libs/html/gst-plugins-base-libs-appsrc.html6
-rw-r--r--docs/libs/html/gst-plugins-base-libs-encoding-profile.html22
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html90
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstfftf64.html4
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstmixer.html918
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstmixeroptions.html119
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstmixertrack.html259
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstnavigation.html1202
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstpbutils.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstrtspextension.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gststreamvolume.html6
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttag.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttagdemux.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttagid3.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html9
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html5
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttagmux.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html8
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttagxmp.html4
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttuner.html777
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttunerchannel.html264
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gsttunernorm.html99
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstvideo.html1362
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstvideofilter.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html36
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstvideosink.html2
-rw-r--r--docs/libs/html/gst-plugins-base-libs-gstvideoutils.html600
-rw-r--r--docs/libs/html/gst-plugins-base-libs.devhelp2444
-rw-r--r--docs/libs/html/gstreamer-audio.html12
-rw-r--r--docs/libs/html/gstreamer-ffft.html4
-rw-r--r--docs/libs/html/gstreamer-interfaces.html52
-rw-r--r--docs/libs/html/gstreamer-libs-hierarchy.html12
-rw-r--r--docs/libs/html/gstreamer-plugins-base.html39
-rw-r--r--docs/libs/html/gstreamer-riff.html4
-rw-r--r--docs/libs/html/gstreamer-video.html9
-rw-r--r--docs/libs/html/index.html41
-rw-r--r--docs/libs/html/index.sgml423
-rw-r--r--docs/plugins/Makefile.am1
-rw-r--r--docs/plugins/Makefile.in3
-rw-r--r--docs/plugins/html/ch01.html2
-rw-r--r--docs/plugins/html/ch02.html2
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-adder.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-alsamixer.html58
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-alsasink.html8
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-alsasrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-appsink.html10
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-appsrc.html10
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-audioconvert.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-audiorate.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-audioresample.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-decodebin.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-encodebin.html22
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-gdpdepay.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-gdppay.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-giosink.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-giosrc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-multifdsink.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-oggdemux.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-oggmux.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-playbin.html30
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-app.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-decodebin.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-gdp.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-textoverlay.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-textrender.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-theoradec.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-theoraenc.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-theoraparse.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-videoconvert.html8
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-videorate.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-videoscale.html8
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-volume.html10
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html6
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-vorbistag.html4
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-ximagesink.html8
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html8
-rw-r--r--docs/plugins/html/gst-plugins-base-plugins.devhelp2255
-rw-r--r--docs/plugins/html/index.html2
-rw-r--r--docs/plugins/html/index.sgml8
-rw-r--r--ext/Makefile.in2
-rw-r--r--ext/alsa/Makefile.am9
-rw-r--r--ext/alsa/Makefile.in52
-rw-r--r--ext/alsa/gstalsa.c4
-rw-r--r--ext/alsa/gstalsa.h9
-rw-r--r--ext/alsa/gstalsamixer.c950
-rw-r--r--ext/alsa/gstalsamixer.h217
-rw-r--r--ext/alsa/gstalsamixerelement.c218
-rw-r--r--ext/alsa/gstalsamixerelement.h61
-rw-r--r--ext/alsa/gstalsamixeroptions.c109
-rw-r--r--ext/alsa/gstalsamixeroptions.h62
-rw-r--r--ext/alsa/gstalsamixertrack.c356
-rw-r--r--ext/alsa/gstalsamixertrack.h79
-rw-r--r--ext/alsa/gstalsaplugin.c4
-rw-r--r--ext/alsa/gstalsasink.c133
-rw-r--r--ext/alsa/gstalsasrc.c32
-rw-r--r--ext/alsa/gstalsasrc.h3
-rw-r--r--ext/cdparanoia/Makefile.in4
-rw-r--r--ext/libvisual/Makefile.in4
-rw-r--r--ext/ogg/Makefile.in4
-rw-r--r--ext/ogg/gstoggdemux.c4
-rw-r--r--ext/ogg/gstoggmux.c80
-rw-r--r--ext/ogg/gstoggmux.h8
-rw-r--r--ext/pango/Makefile.in4
-rw-r--r--ext/theora/Makefile.in4
-rw-r--r--ext/theora/gsttheoradec.c1441
-rw-r--r--ext/theora/gsttheoradec.h53
-rw-r--r--ext/theora/gsttheoraenc.c1285
-rw-r--r--ext/theora/gsttheoraenc.h34
-rw-r--r--ext/vorbis/Makefile.in4
-rw-r--r--gst-libs/Makefile.in2
-rw-r--r--gst-libs/gst/Makefile.am8
-rw-r--r--gst-libs/gst/Makefile.in11
-rw-r--r--gst-libs/gst/app/Makefile.am4
-rw-r--r--gst-libs/gst/app/Makefile.in14
-rw-r--r--gst-libs/gst/app/gstappsrc.c1
-rw-r--r--gst-libs/gst/audio/Makefile.am21
-rw-r--r--gst-libs/gst/audio/Makefile.in72
-rw-r--r--gst-libs/gst/audio/mixer.c821
-rw-r--r--gst-libs/gst/audio/mixer.h205
-rw-r--r--gst-libs/gst/audio/mixeroptions.c146
-rw-r--r--gst-libs/gst/audio/mixeroptions.h88
-rw-r--r--gst-libs/gst/audio/mixertrack.c288
-rw-r--r--gst-libs/gst/audio/mixertrack.h121
-rw-r--r--gst-libs/gst/audio/mixerutils.c251
-rw-r--r--gst-libs/gst/audio/mixerutils.h50
-rw-r--r--gst-libs/gst/fft/Makefile.am4
-rw-r--r--gst-libs/gst/fft/Makefile.in14
-rw-r--r--gst-libs/gst/interfaces/Makefile.am121
-rw-r--r--gst-libs/gst/interfaces/Makefile.in1099
-rw-r--r--gst-libs/gst/interfaces/interfaces-marshal.list2
-rw-r--r--gst-libs/gst/interfaces/tuner.c577
-rw-r--r--gst-libs/gst/interfaces/tuner.h141
-rw-r--r--gst-libs/gst/interfaces/tunerchannel.c148
-rw-r--r--gst-libs/gst/interfaces/tunerchannel.h116
-rw-r--r--gst-libs/gst/interfaces/tunernorm.c111
-rw-r--r--gst-libs/gst/interfaces/tunernorm.h70
-rw-r--r--gst-libs/gst/pbutils/Makefile.am6
-rw-r--r--gst-libs/gst/pbutils/Makefile.in18
-rw-r--r--gst-libs/gst/pbutils/descriptions.c10
-rw-r--r--gst-libs/gst/pbutils/gstdiscoverer.c82
-rw-r--r--gst-libs/gst/riff/Makefile.am11
-rw-r--r--gst-libs/gst/riff/Makefile.in21
-rw-r--r--gst-libs/gst/rtp/Makefile.am8
-rw-r--r--gst-libs/gst/rtp/Makefile.in18
-rw-r--r--gst-libs/gst/rtsp/Makefile.am4
-rw-r--r--gst-libs/gst/rtsp/Makefile.in16
-rw-r--r--gst-libs/gst/sdp/Makefile.am4
-rw-r--r--gst-libs/gst/sdp/Makefile.in14
-rw-r--r--gst-libs/gst/tag/Makefile.am8
-rw-r--r--gst-libs/gst/tag/Makefile.in20
-rw-r--r--gst-libs/gst/tag/gstvorbistag.c5
-rw-r--r--gst-libs/gst/tag/gstxmptag.c3
-rw-r--r--gst-libs/gst/tag/lang.c4
-rw-r--r--gst-libs/gst/tag/licenses.c4
-rw-r--r--gst-libs/gst/video/Makefile.am30
-rw-r--r--gst-libs/gst/video/Makefile.in92
-rw-r--r--gst-libs/gst/video/TODO51
-rw-r--r--gst-libs/gst/video/colorbalance.c4
-rw-r--r--gst-libs/gst/video/colorbalancechannel.c3
-rw-r--r--gst-libs/gst/video/gstvideodecoder.c2818
-rw-r--r--gst-libs/gst/video/gstvideodecoder.h367
-rw-r--r--gst-libs/gst/video/gstvideoencoder.c1693
-rw-r--r--gst-libs/gst/video/gstvideoencoder.h304
-rw-r--r--gst-libs/gst/video/gstvideofilter.c46
-rw-r--r--gst-libs/gst/video/gstvideometa.c19
-rw-r--r--gst-libs/gst/video/gstvideometa.h6
-rw-r--r--gst-libs/gst/video/gstvideopool.c5
-rw-r--r--gst-libs/gst/video/gstvideoutils.c165
-rw-r--r--gst-libs/gst/video/gstvideoutils.h271
-rw-r--r--gst-libs/gst/video/navigation.c (renamed from gst-libs/gst/interfaces/navigation.c)4
-rw-r--r--gst-libs/gst/video/navigation.h (renamed from gst-libs/gst/interfaces/navigation.h)0
-rw-r--r--gst-libs/gst/video/video-marshal.list1
-rw-r--r--gst-libs/gst/video/video.c106
-rw-r--r--gst-libs/gst/video/video.h59
-rw-r--r--gst-libs/gst/video/videoorientation.c1
-rw-r--r--gst-libs/gst/video/videoorientation.h1
-rw-r--r--gst-libs/gst/video/videooverlay.c4
-rw-r--r--gst-plugins-base.doap10
-rw-r--r--gst-plugins-base.spec2
-rw-r--r--gst/Makefile.in2
-rw-r--r--gst/adder/Makefile.in4
-rw-r--r--gst/adder/gstadder.c79
-rw-r--r--gst/adder/gstadder.h4
-rw-r--r--gst/app/Makefile.in4
-rw-r--r--gst/audioconvert/Makefile.in4
-rw-r--r--gst/audiorate/Makefile.in4
-rw-r--r--gst/audioresample/Makefile.in4
-rw-r--r--gst/audiotestsrc/Makefile.in4
-rw-r--r--gst/encoding/Makefile.in4
-rw-r--r--gst/gdp/Makefile.in4
-rw-r--r--gst/gdp/gstgdppay.c1
-rw-r--r--gst/gio/Makefile.in4
-rw-r--r--gst/playback/Makefile.am1
-rw-r--r--gst/playback/Makefile.in6
-rw-r--r--gst/playback/gstdecodebin2.c86
-rw-r--r--gst/playback/gstplaybin2.c39
-rw-r--r--gst/playback/gstplaysink.c90
-rw-r--r--gst/playback/gstplaysink.h1
-rw-r--r--gst/playback/gsturidecodebin.c75
-rw-r--r--gst/subparse/Makefile.in4
-rw-r--r--gst/subparse/gstsubparse.c3
-rw-r--r--gst/tcp/Makefile.in4
-rw-r--r--gst/tcp/gsttcpclientsink.c2
-rw-r--r--gst/typefind/Makefile.in4
-rw-r--r--gst/typefind/gsttypefindfunctions.c407
-rw-r--r--gst/videoconvert/Makefile.in4
-rw-r--r--gst/videoconvert/gstvideoconvert.c5
-rw-r--r--gst/videorate/Makefile.in4
-rw-r--r--gst/videoscale/Makefile.in4
-rw-r--r--gst/videotestsrc/Makefile.in4
-rw-r--r--gst/videotestsrc/gstvideotestsrc.c2
-rw-r--r--gst/volume/Makefile.am1
-rw-r--r--gst/volume/Makefile.in8
-rw-r--r--gst/volume/gstvolume.c93
-rw-r--r--m4/Makefile.in2
-rw-r--r--pkgconfig/Makefile.am3
-rw-r--r--pkgconfig/Makefile.in16
-rw-r--r--pkgconfig/gstreamer-audio-uninstalled.pc.in2
-rw-r--r--pkgconfig/gstreamer-audio.pc.in2
-rw-r--r--pkgconfig/gstreamer-interfaces-uninstalled.pc.in16
-rw-r--r--pkgconfig/gstreamer-interfaces.pc.in16
-rw-r--r--pkgconfig/gstreamer-plugins-base-uninstalled.pc.in4
-rw-r--r--pkgconfig/gstreamer-plugins-base.pc.in2
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/af.gmobin763 -> 525 bytes
-rw-r--r--po/af.po61
-rw-r--r--po/az.gmobin821 -> 588 bytes
-rw-r--r--po/az.po61
-rw-r--r--po/bg.gmobin16473 -> 15986 bytes
-rw-r--r--po/bg.po68
-rw-r--r--po/ca.gmobin12988 -> 12557 bytes
-rw-r--r--po/ca.po68
-rw-r--r--po/cs.gmobin12578 -> 12154 bytes
-rw-r--r--po/cs.po68
-rw-r--r--po/da.gmobin12281 -> 11865 bytes
-rw-r--r--po/da.po68
-rw-r--r--po/de.gmobin12822 -> 12400 bytes
-rw-r--r--po/de.po68
-rw-r--r--po/el.gmobin16330 -> 15817 bytes
-rw-r--r--po/el.po68
-rw-r--r--po/en_GB.gmobin761 -> 529 bytes
-rw-r--r--po/en_GB.po61
-rw-r--r--po/eo.gmobin3729 -> 3409 bytes
-rw-r--r--po/eo.po59
-rw-r--r--po/es.gmobin12974 -> 12536 bytes
-rw-r--r--po/es.po68
-rw-r--r--po/eu.gmobin8612 -> 8196 bytes
-rw-r--r--po/eu.po68
-rw-r--r--po/fi.gmobin11972 -> 11553 bytes
-rw-r--r--po/fi.po68
-rw-r--r--po/fr.gmobin13361 -> 12930 bytes
-rw-r--r--po/fr.po68
-rw-r--r--po/gl.gmobin12976 -> 12542 bytes
-rw-r--r--po/gl.po68
-rw-r--r--po/gst-plugins-base-1.0.pot217
-rw-r--r--po/hu.gmobin12638 -> 12209 bytes
-rw-r--r--po/hu.po68
-rw-r--r--po/id.gmobin12339 -> 11921 bytes
-rw-r--r--po/id.po68
-rw-r--r--po/it.gmobin8822 -> 8432 bytes
-rw-r--r--po/it.po68
-rw-r--r--po/ja.gmobin10707 -> 10257 bytes
-rw-r--r--po/ja.po68
-rw-r--r--po/lt.gmobin6797 -> 6356 bytes
-rw-r--r--po/lt.po68
-rw-r--r--po/lv.gmobin12676 -> 12249 bytes
-rw-r--r--po/lv.po68
-rw-r--r--po/nb.gmobin2651 -> 2238 bytes
-rw-r--r--po/nb.po68
-rw-r--r--po/nl.gmobin12653 -> 12234 bytes
-rw-r--r--po/nl.po68
-rw-r--r--po/or.gmobin975 -> 604 bytes
-rw-r--r--po/or.po61
-rw-r--r--po/pl.gmobin12692 -> 12269 bytes
-rw-r--r--po/pl.po68
-rw-r--r--po/pt_BR.gmobin13032 -> 12596 bytes
-rw-r--r--po/pt_BR.po68
-rw-r--r--po/ro.gmobin8308 -> 7912 bytes
-rw-r--r--po/ro.po68
-rw-r--r--po/ru.gmobin15931 -> 15414 bytes
-rw-r--r--po/ru.po68
-rw-r--r--po/sk.gmobin12233 -> 11823 bytes
-rw-r--r--po/sk.po68
-rw-r--r--po/sl.gmobin12623 -> 12184 bytes
-rw-r--r--po/sl.po68
-rw-r--r--po/sq.gmobin779 -> 538 bytes
-rw-r--r--po/sq.po61
-rw-r--r--po/sr.gmobin15675 -> 15219 bytes
-rw-r--r--po/sr.po68
-rw-r--r--po/sv.gmobin8321 -> 7936 bytes
-rw-r--r--po/sv.po68
-rw-r--r--po/tr.gmobin12461 -> 12055 bytes
-rw-r--r--po/tr.po68
-rw-r--r--po/uk.gmobin16728 -> 16206 bytes
-rw-r--r--po/uk.po68
-rw-r--r--po/vi.gmobin9687 -> 9308 bytes
-rw-r--r--po/vi.po68
-rw-r--r--po/zh_CN.gmobin6352 -> 5928 bytes
-rw-r--r--po/zh_CN.po68
-rw-r--r--sys/Makefile.in2
-rw-r--r--sys/ximage/Makefile.am1
-rw-r--r--sys/ximage/Makefile.in5
-rw-r--r--sys/ximage/ximagepool.c4
-rw-r--r--sys/ximage/ximagesink.c2
-rw-r--r--sys/xvimage/Makefile.am1
-rw-r--r--sys/xvimage/Makefile.in5
-rw-r--r--sys/xvimage/xvimagepool.c4
-rw-r--r--sys/xvimage/xvimagesink.c2
-rw-r--r--tests/Makefile.in2
-rw-r--r--tests/check/Makefile.am37
-rw-r--r--tests/check/Makefile.in145
-rw-r--r--tests/check/elements/alsa.c139
-rw-r--r--tests/check/elements/videorate.c3
-rw-r--r--tests/check/elements/volume.c23
-rw-r--r--tests/check/libs/audiocdsrc.c2
-rw-r--r--tests/check/libs/gstlibscpp.cc16
-rw-r--r--tests/check/libs/libsabi.c4
-rw-r--r--tests/check/libs/mixer.c216
-rw-r--r--tests/check/libs/navigation.c2
-rw-r--r--tests/check/libs/struct_arm.h10
-rw-r--r--tests/check/libs/struct_i386.h10
-rw-r--r--tests/check/libs/struct_i386_osx.h10
-rw-r--r--tests/check/libs/struct_x86_64.h10
-rw-r--r--tests/check/pipelines/streamheader.c4
-rw-r--r--tests/check/pipelines/theoraenc.c121
-rw-r--r--tests/examples/Makefile.in2
-rw-r--r--tests/examples/app/Makefile.in2
-rw-r--r--tests/examples/audio/Makefile.in2
-rw-r--r--tests/examples/dynamic/Makefile.in2
-rw-r--r--tests/examples/encoding/Makefile.in2
-rw-r--r--tests/examples/fft/Makefile.in2
-rw-r--r--tests/examples/gio/Makefile.in2
-rw-r--r--tests/examples/overlay/Makefile.in2
-rw-r--r--tests/examples/playback/Makefile.am1
-rw-r--r--tests/examples/playback/Makefile.in6
-rw-r--r--tests/examples/playback/playback-test.c8
-rw-r--r--tests/examples/playrec/Makefile.in2
-rw-r--r--tests/examples/seek/Makefile.am1
-rw-r--r--tests/examples/seek/Makefile.in7
-rw-r--r--tests/examples/snapshot/Makefile.in2
-rw-r--r--tests/files/Makefile.in2
-rw-r--r--tests/icles/Makefile.am1
-rw-r--r--tests/icles/Makefile.in6
-rw-r--r--tests/icles/playback/Makefile.in2
-rw-r--r--tools/Makefile.in2
-rw-r--r--tools/gst-discoverer.c14
-rw-r--r--win32/MANIFEST3
-rw-r--r--win32/common/_stdint.h2
-rw-r--r--win32/common/config.h13
-rw-r--r--win32/common/interfaces-enumtypes.c134
-rw-r--r--win32/common/interfaces-enumtypes.h29
-rw-r--r--win32/common/libgstaudio.def26
-rw-r--r--win32/common/libgstinterfaces.def51
-rw-r--r--win32/common/libgstvideo.def70
-rw-r--r--win32/common/video-enumtypes.c133
-rw-r--r--win32/common/video-enumtypes.h12
439 files changed, 16529 insertions, 17576 deletions
diff --git a/ChangeLog b/ChangeLog
index 3e96745..b92861c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,959 @@
+=== release 0.11.91 ===
+
+2012-05-13 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ releasing 0.11.91, "Fee-fi-fo-fum"
+
+2012-05-13 15:55:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From dc70203 to 3429ba6
+
+2012-05-12 16:24:09 +0400 Руслан Ижбулатов <lrn1986@gmail.com>
+
+ * gst/playback/gstplaysink.c:
+ playsink: fix printf arguments in debug message
+
+2012-05-11 17:37:14 +0300 Vivia Nikolaidou <vivia.nikolaidou@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: Ported fix for bug #673504 to 0.11
+
+2012-05-10 23:08:21 +0300 Vivia Nikolaidou <vivia.nikolaidou@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: Wait until an update/filler newsegment event or buffer for subtitle streams
+ This makes sure that we wait until we received all tags for the
+ subtitle streams and have all information that is collected by
+ the discoverer.
+ Fixes bug #673504.
+
+2012-05-11 16:16:33 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/playback/gsturidecodebin.c:
+ uridecodebin: fix format strings
+
+2012-05-11 15:33:31 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: fix format strings
+
+2012-05-11 09:26:47 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: fix compilation
+
+2012-05-10 13:15:26 -0400 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * gst/playback/gstdecodebin2.c:
+ * gst/playback/gsturidecodebin.c:
+ playback: Check type when setting "connection-speed" on unknown elements
+ Clamp the values if needed
+
+2012-05-10 13:11:47 -0400 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * gst/playback/gstdecodebin2.c:
+ * gst/playback/gsturidecodebin.c:
+ decodebin2: Add a connection-speed property to set it on demuxers when needed
+ Proxy it from uridecodebin
+
+2012-05-03 15:45:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst-libs/gst/video/video.c:
+ video: Key unit event properties are optional
+ https://bugzilla.gnome.org/show_bug.cgi?id=675758
+
+2012-05-09 17:16:37 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * win32/common/video-enumtypes.c:
+ * win32/common/video-enumtypes.h:
+ win32: Update for new video enumtypes
+
+2012-05-09 17:16:19 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * win32/MANIFEST:
+ win32: Update manifest for removed interfaces library
+
+2012-05-09 12:03:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Initialize variable to silence wrong compiler warning
+
+2012-05-09 10:30:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Port changes to 0.11
+
+2012-05-08 15:42:02 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gstplaysink.h:
+ playbin2: properly reconfigure upon subsequent no-more-pads
+ ... such as during switch in chained ogg.
+
+2012-05-08 17:35:45 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/alsa/gstalsasink.c:
+ alsasink: really use local ringbuffer spec helper var and init it a bit more
+ ... to avoid assertion failures
+ Conflicts:
+ ext/alsa/gstalsasink.c
+
+2012-04-27 10:19:15 +0200 Andoni Morales Alastruey <ylatuya@gmail.com>
+
+ * ext/alsa/gstalsa.c:
+ * ext/alsa/gstalsa.h:
+ * ext/alsa/gstalsasink.c:
+ alsasink: use the iec958 payloader to support non-payloaded input streams
+
+2012-05-05 23:26:20 +0100 Sebastian Rasmussen <sebrn@axis.com>
+
+ * gst-libs/gst/app/Makefile.am:
+ * gst-libs/gst/audio/Makefile.am:
+ * gst-libs/gst/fft/Makefile.am:
+ * gst-libs/gst/pbutils/Makefile.am:
+ * gst-libs/gst/riff/Makefile.am:
+ * gst-libs/gst/rtp/Makefile.am:
+ * gst-libs/gst/rtsp/Makefile.am:
+ * gst-libs/gst/sdp/Makefile.am:
+ * gst-libs/gst/tag/Makefile.am:
+ * gst-libs/gst/video/Makefile.am:
+ gst-libs: make pkg-config get path to pkg-config dirs from configure
+ When --with-pkg-config-path is supplied to configure this path is now
+ explicitly propagated to pkg-config.
+ https://bugzilla.gnome.org/show_bug.cgi?id=673377
+
+2012-05-03 18:07:37 +0300 Vivia Nikolaidou <vivia.nikolaidou@collabora.co.uk>
+
+ * tests/examples/playback/playback-test.c:
+ playback: Display subseconds as proper milliseconds instead of the last 2 digits of the milliseconds
+
+2012-05-01 23:09:22 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/libs/audiocdsrc.c:
+ tests: update audiocdsrc test for stricter URI protocol checking incore
+
+2012-05-01 16:55:13 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ videodecoder: Also change gst_video_decoder_get_oldest_frame() to return a new reference
+
+2012-05-01 16:12:40 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideoencoder.c:
+ videoencoder: _get_oldest_frame: return a reference
+
+2012-05-01 16:11:58 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideoencoder.c:
+ videoencoder: Add a reference to frame passed to subclass
+ We have one reference owned by the internal frame list and one reference
+ passed to the subclass.
+
+2012-05-01 16:09:12 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ videodecoder: Add a reference to frame passed to subclass
+ We have one reference owned by the internal frame list and one reference
+ passed to the subclass.
+
+2012-05-01 15:35:47 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideoutils.c:
+ videodecoder: don't leak events
+ When need to push out all the previously received events, concatenate all the
+ events from the previous frames (instead of leaking the old ones)
+ Improve debugging a little
+ Conflicts:
+ gst-libs/gst/video/gstvideodecoder.c
+
+2012-05-01 14:46:06 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ videodecoder: don't leak frames
+ Frames receive a refcount when added to the frames list so release that refcount
+ in gst_video_decoder_do_finish_frame(). Also release the ref on the frame
+ because gst_video_decoder_do_finish_frame() takes ownership of the passed frame.
+
+2012-05-01 14:45:46 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ videodecoder: avoid double unlock
+
+2012-05-01 13:26:57 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ theoradec: Correctly handle crop metadata and update for videodecoder API changes
+
+2012-04-30 13:06:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/videotestsrc/gstvideotestsrc.c:
+ videotestsrc: Update for basesrc API changes
+
+2012-04-26 18:12:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideofilter.c:
+ videofilter: Use a GstVideoBufferPool if none was provided
+
+2012-04-26 18:11:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ videodecoder: Do bufferpool configuration inside the default decide_allocation() implementation
+ This allows subclasses to override it, as is necessary for e.g. the
+ video-crop meta. It is now necessary that after decide_allocation()
+ there is always a allocator and a configured buffer pool inside the
+ query.
+
+2012-04-27 16:13:27 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: make playsink reusable
+ The sinkpads are unblocked when going from PAUSED->READY, we need to block them
+ again when going READY->PAUSED. The blocking of the pad previously only happened
+ when it was freshly obtained with _request_pad or when the caps changed. If we
+ don't release the pad when going to READY it was previously never blocked again
+ causing not-linked errors.
+
+2012-04-27 12:54:15 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: don't leak the colorbalance element
+
+2012-04-29 17:16:38 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstvorbistag.c:
+ * gst-libs/gst/tag/gstxmptag.c:
+ * gst-libs/gst/tag/lang.c:
+ * gst-libs/gst/tag/licenses.c:
+ tag: improve gobject-introspection annotations
+
+2012-04-28 19:16:52 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/libs/gstlibscpp.cc:
+ tests: fix libscpp compilation
+ Don't include marshaller headers that have gone away and/or
+ aren't public headers anyway so don't need to be tested for
+ C++ compiler compatibility.
+
+2012-04-28 15:56:25 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * win32/common/libgstvideo.def:
+ win32: add new video base class API to .def file
+ Fixes make check.
+
+2012-04-28 15:32:56 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/descriptions.c:
+ pbutils: update descriptions for new webm/matroska media types
+
+2012-04-28 15:29:54 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefinding: more fine-grained matroska/webm typefinding
+ Typefind to audio/x-matroska, video/x-matroska, audio/webm,
+ video/webm and video/x-matroska-3d.
+ http://www.webmproject.org/code/specs/container/#naming
+ http://matroska.org/technical/specs/notes.html
+
+2012-04-25 18:07:21 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/gdp/gstgdppay.c:
+ gdppay: plug buffer leak
+
+2012-04-25 18:43:59 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/check/elements/volume.c:
+ volume: add a control point for the test
+
+2012-04-25 18:42:04 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/check/elements/volume.c:
+ volume: cast outputs to correct type before comparing
+
+2012-04-25 18:21:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideoencoder.c:
+ * gst-libs/gst/video/gstvideoutils.h:
+ video: Remove interlaced handling from the video base classes
+ This must be handled by the subclasses in 0.11 because interlacing
+ is much more complex now and can't be handled in a generic way.
+
+2012-04-25 15:27:04 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * docs/design/part-mediatype-video-raw.txt:
+ * gst-libs/gst/video/video.h:
+ video: improve docs and design of multiview interlaced
+ Put fields of interlaced frames after eachother.
+ Improve the docs of the video interlaced enums.
+
+2012-04-25 14:44:33 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * docs/design/part-mediatype-video-raw.txt:
+ * gst-libs/gst/video/video.h:
+ video: add fields interlacing enum
+ Add an enum and docs for the fields interlace mode.
+ Improve the video caps docs for the fields interlace mode.
+
+2012-04-25 10:39:16 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ videodec: remove some FIXMEs
+
+2012-04-25 14:34:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ theoradec: Unref state when we're done with it
+
+2012-04-25 13:52:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideoencoder.c:
+ video: Fix latency query handling if the element's own max_latency is GST_CLOCK_TIME_NONE
+
+2012-04-25 13:46:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/video.c:
+ video: Only use the interlacing buffer flags if the caps specify interlaced video
+
+2012-04-25 13:44:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideoencoder.c:
+ videoencoder: Proxy the interlaced buffer flags to the GstVideoCodecFrame
+
+2012-04-25 13:15:05 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ theoradec: Update for video decoder API changes
+ And also improve the buffer pool handling.
+
+2012-04-25 12:43:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: Update for video encoder API changes and propose video-meta for allocation
+
+2012-04-25 12:39:48 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideoencoder.c:
+ * gst-libs/gst/video/gstvideoencoder.h:
+ videoencoder: Don't propose video-meta by default
+
+2012-04-25 12:37:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideodecoder.h:
+ videodecoder: Change configure_buffer_pool() vfunc to decide_allocation() with same semantics as in basetransform
+
+2012-04-19 14:41:40 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/check/pipelines/streamheader.c:
+ tests: initialize variables
+
+2012-04-24 22:42:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideoencoder.c:
+ * gst-libs/gst/video/gstvideoencoder.h:
+ videoencoder: Add support for subclasses to propose allocation parameters
+
+2012-04-24 22:35:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ * ext/theora/gsttheoradec.h:
+ theoradec: Use crop metadata if possible and refactor cropping code a bit
+
+2012-04-24 22:35:29 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideodecoder.h:
+ videodecoder: Add support for subclasses to configure the buffer pool
+
+2012-04-24 22:05:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ theoradec: Set some more information on the output caps
+
+2012-04-24 21:32:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ * ext/theora/gsttheoradec.h:
+ * ext/theora/gsttheoraenc.c:
+ * ext/theora/gsttheoraenc.h:
+ theora: Port to 0.11 again with the new base classes
+
+2012-04-24 21:32:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideoencoder.c:
+ * gst-libs/gst/video/video.c:
+ video: Some porting bugfixes
+
+2012-04-24 20:04:48 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideodecoder.h:
+ videodecoder: Add minimal support for buffer pools
+
+2012-04-24 19:51:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideodecoder.h:
+ videodecoder: Require to chain up to the parent classes event functions
+
+2012-04-24 19:42:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideoencoder.c:
+ * gst-libs/gst/video/gstvideoencoder.h:
+ videoencoder: Require to chain up to the parent's sink event functions
+
+2012-04-24 19:35:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideodecoder.h:
+ * gst-libs/gst/video/gstvideoencoder.c:
+ * gst-libs/gst/video/gstvideoencoder.h:
+ * gst-libs/gst/video/gstvideoutils.c:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ video: Initial port of video base classes and related things to 0.11
+
+2012-04-24 18:16:27 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/Makefile.am:
+ * gst-libs/gst/video/colorbalance.c:
+ * gst-libs/gst/video/colorbalancechannel.c:
+ * gst-libs/gst/video/video-marshal.list:
+ * gst-libs/gst/video/videoorientation.c:
+ video: Remove custom marshallers
+
+2012-04-24 18:14:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ Merge remote-tracking branch 'origin/0.10'
+ Video base classes and theora plugin still needs to be ported again
+ Conflicts:
+ docs/libs/gst-plugins-base-libs-docs.sgml
+ docs/libs/gst-plugins-base-libs-sections.txt
+ docs/libs/gst-plugins-base-libs.types
+ ext/theora/gsttheoradec.c
+ ext/theora/gsttheoradec.h
+ ext/theora/gsttheoraenc.c
+ ext/theora/gsttheoraenc.h
+ gst-libs/gst/video/Makefile.am
+ gst-libs/gst/video/video.c
+ gst-libs/gst/video/video.h
+ gst/playback/gsturidecodebin.c
+ tests/check/libs/video.c
+ tests/check/pipelines/theoraenc.c
+ win32/common/libgstvideo.def
+
+2012-04-24 16:34:33 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/tcp/gsttcpclientsink.c:
+ tcpclientsink: ensure proper cleanup upon startup error
+
+2012-04-24 16:38:31 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * win32/common/libgstvideo.def:
+ win32: Update .defs file
+
+2012-04-24 16:32:39 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * tests/check/pipelines/theoraenc.c:
+ tests: Remove theoraenc discont test
+ It should be fixed differently, see
+ https://bugzilla.gnome.org/show_bug.cgi?id=663262
+
+2012-04-24 15:27:25 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/video/video.c:
+ video: Fix gst_video_info_to_caps
+ And use the 0.10 caps style
+
+2012-04-24 15:07:31 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideodecoder.c:
+ videodecoder: Detect buffers inputted with DTS
+ Some container formats (like AVI) set DTS on the buffers instead of
+ PTS.
+ We detect this by:
+ * detecting if input timestamps are non-increasing
+ * detecting if the order the frames come out is the same as the order
+ they were inputted (meaning the implementation is reordering frames).
+ If the decoder reorders frames, but input buffer timestamps were not
+ reordered, that means the buffers has DTS and not PTS as their timestamp.
+ If this is the case, we use set the PTS of the outgoing frames in the
+ same order as they were given to the decoder.
+ This fixes the issue for any decoder using this base class (yay).
+
+2012-03-07 12:22:14 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ * ext/theora/gsttheoradec.h:
+ * ext/theora/gsttheoraenc.c:
+ * ext/theora/gsttheoraenc.h:
+ theora: Port to base video classes
+ FIXME : Don't forget to backport changes that happened to theoraenc
+ since April 2011
+ theoraenc: Don't create keyframe on time gap
+ There is no rational to do so, and also gst_video_encoder_set_discont() is
+ gone from base class.
+
+2012-03-07 10:18:49 +0100 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * docs/libs/gst-plugins-base-libs.types:
+ * gst-libs/gst/video/Makefile.am:
+ * gst-libs/gst/video/TODO:
+ * gst-libs/gst/video/gstvideodecoder.c:
+ * gst-libs/gst/video/gstvideodecoder.h:
+ * gst-libs/gst/video/gstvideoencoder.c:
+ * gst-libs/gst/video/gstvideoencoder.h:
+ * gst-libs/gst/video/gstvideoutils.c:
+ * gst-libs/gst/video/gstvideoutils.h:
+ * win32/common/libgstvideo.def:
+ video: Base classes for video decoders and encoders
+
+2012-04-24 10:10:15 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ video: Add gst_video_info_is_equal
+
+2012-04-24 10:09:57 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/video/video-blend.c:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ video: Add GST_VIDEO_FORMAT_ENCODED
+
+2012-03-08 12:58:03 +0100 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ * tests/check/libs/video.c:
+ video: Backport GstVideoInfo/GstVideoFormatInfo from 0.11
+
+2012-04-24 10:13:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Allow newlines/whitespace at the beginning of subrip files
+ For example the Sintel subtitles have this and without this change
+ they're detected as text/plain and not usable as subtitles. The
+ parser itself already handles this just fine.
+
+2012-04-24 10:13:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Allow newlines/whitespace at the beginning of subrip files
+ For example the Sintel subtitles have this and without this change
+ they're detected as text/plain and not usable as subtitles. The
+ parser itself already handles this just fine.
+
+2012-04-19 14:14:35 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideometa.c:
+ * gst-libs/gst/video/gstvideometa.h:
+ * gst-libs/gst/video/gstvideopool.c:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ * sys/ximage/ximagepool.c:
+ * sys/xvimage/xvimagepool.c:
+ video: improve frame_flags
+ Rename the frame_flags to flags. Because they are flags on the frame object it
+ does not need the redundant frame_ prefix.
+ Change the order of the metadata constructor so that the flags come before the
+ format and dimension arguments.
+
+2012-04-19 12:13:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ * gst/videoconvert/gstvideoconvert.c:
+ * sys/ximage/ximagepool.c:
+ * sys/xvimage/xvimagepool.c:
+ video: Update for libgstvideo API changes
+
+2012-04-19 12:03:19 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideometa.c:
+ * gst-libs/gst/video/gstvideometa.h:
+ * gst-libs/gst/video/gstvideopool.c:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ video: Clean up interlaced flags and enums
+ There's a new GstVideoFrameFlags enum now that contains the frame
+ specific flags only. GstVideoFlags does not contain the TFF/TFF/ONEFIELD
+ flags anymore because these are strictly frame specific.
+ Also add fallback to parse these fields from the GstBufferFlags in
+ gst_video_frame_map() if there's no GstVideoMeta attached to the buffer.
+
+2012-04-19 05:45:40 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst-libs/gst/app/gstappsrc.c:
+ appsrc: reset is_eos flag after a succesful seek from _create
+
+2012-04-19 05:45:40 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst-libs/gst/app/gstappsrc.c:
+ appsrc: reset is_eos flag after a succesful seek from _create
+
+2012-04-17 18:22:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tools/gst-discoverer.c:
+ discoverer: Fix another GstBuffer occurence to GstSample
+
+2012-04-17 17:31:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tools/gst-discoverer.c:
+ discoverer: Tags now contain GstSamples instead of GstBuffers
+
+2012-04-17 15:09:27 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ * gst/adder/gstadder.c:
+ * gst/adder/gstadder.h:
+ collectpads2: rename to collectpads
+
+2012-04-17 13:48:19 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/adder/gstadder.c:
+ adder: correctly adjust to modified collectpads2 event handling
+
+2012-04-17 09:54:09 +0200 Akihiro Tsukada <tskd2@yahoo.co.jp>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Don't hold the playbin lock in the autoplug-continue callback
+ It's not necessary there as the group lock already protects everything
+ we access here and causes deadlocks in some cases.
+ Fixes bug #673708.
+
+2012-04-17 09:54:09 +0200 Akihiro Tsukada <tskd2@yahoo.co.jp>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Don't hold the playbin lock in the autoplug-continue callback
+ It's not necessary there as the group lock already protects everything
+ we access here and causes deadlocks in some cases.
+ Fixes bug #673708.
+
+2012-04-16 17:03:01 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ Revert "tests: TEMP"
+ This reverts commit e9fbabbb866e1eafa070c9cb07ac13ffa99a92bf.
+
+2012-03-30 16:56:16 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ tests: TEMP
+
+2012-04-16 16:30:44 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ oggmux: use standard collectpads event handling
+ ... rather than (old) hacked overriding.
+
+2012-04-16 16:30:38 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/adder/gstadder.c:
+ adder: chain up to collectpads event handler
+
+2012-04-16 13:43:41 +0200 Matej Knopp <matej.knopp@gmail.com>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin: Do not block on sticky and oob events
+
+2012-04-16 09:08:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From 6db25be to dc70203
+
+2012-04-13 16:29:50 +0200 Julian Scheel <julian@jusst.de>
+
+ * gst/playback/gsturidecodebin.c:
+ uridecodebin: Never treat live sources as streaming sources.
+ For streaming sources a queue is added before the demuxer, which can not be
+ properly filled by live sources. As http source can be live sources, this
+ caused issues for example with http live sources.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674057
+
+2012-04-16 08:27:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Check that properties have the correct type before using them
+
+2012-04-16 08:24:58 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gsturidecodebin.c:
+ uridecodebin: Check that properties have the correct type before using them
+
+2012-04-15 22:46:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ tests: fix navigation test linking
+
+2012-04-15 22:43:22 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/descriptions.c:
+ pbutils: update for ogg media type changes
+
+2012-04-15 22:39:36 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggmux.c:
+ ogg: update for media type typefinding changes
+
+2012-04-15 22:32:06 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefinding: more fine-grained ogg typefinding
+ Typefind to audio/ogg, video/ogg, etc. Also change
+ application/x-annodex to application/annodex.
+ See http://wiki.xiph.org/MIME_Types_and_File_Extensions
+
+2012-04-14 11:26:28 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst-libs/gst/video/gstvideofilter.c:
+ videofilter: shortcut transform_ip when not set
+ We can ask the base class to not call our transform_ip method when the subclass
+ didn't provide an in-place transform function.
+
+2012-04-13 16:29:50 +0200 Julian Scheel <julian@jusst.de>
+
+ * gst/playback/gsturidecodebin.c:
+ uridecodebin: Never treat live sources as streaming sources.
+ For streaming sources a queue is added before the demuxer, which can not be
+ properly filled by live sources. As http source can be live sources, this
+ caused issues for example with http live sources.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674057
+
+2012-04-12 21:13:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+ * gst-libs/gst/video/gstvideopool.c:
+ videopool: fix mem leak
+ When setting its config, the pool increase the ref count of the allocator, but
+ at finalize the ref count is also increased rather than decreased.
+ This one-liner patch changes the gst_allocator_ref() for gst_allocator_unref()
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674011
+
+2012-04-13 14:32:28 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * po/POTFILES.in:
+ po: Remove deleted header file here too
+
+2012-04-13 14:09:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * docs/plugins/Makefile.am:
+ docs: Remove header file that was deleted
+
+2012-04-13 13:39:17 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * autogen.sh:
+ * configure.ac:
+ configure: Modernize autotools setup a bit
+ Also we now only create tar.bz2 and tar.xz tarballs.
+
+2012-04-13 13:36:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From 464fe15 to 6db25be
+
+2012-04-13 11:01:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * android/interfaces.mk:
+ * configure.ac:
+ * docs/libs/Makefile.am:
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * docs/libs/gst-plugins-base-libs.types:
+ * ext/alsa/Makefile.am:
+ * ext/alsa/gstalsamixer.c:
+ * ext/alsa/gstalsamixer.h:
+ * ext/alsa/gstalsamixerelement.c:
+ * ext/alsa/gstalsamixerelement.h:
+ * ext/alsa/gstalsamixeroptions.c:
+ * ext/alsa/gstalsamixeroptions.h:
+ * ext/alsa/gstalsamixertrack.c:
+ * ext/alsa/gstalsamixertrack.h:
+ * ext/alsa/gstalsaplugin.c:
+ * ext/alsa/gstalsasink.c:
+ * ext/alsa/gstalsasrc.c:
+ * ext/alsa/gstalsasrc.h:
+ * gst-libs/gst/Makefile.am:
+ * gst-libs/gst/audio/Makefile.am:
+ * gst-libs/gst/audio/mixer.c:
+ * gst-libs/gst/audio/mixer.h:
+ * gst-libs/gst/audio/mixeroptions.c:
+ * gst-libs/gst/audio/mixeroptions.h:
+ * gst-libs/gst/audio/mixertrack.c:
+ * gst-libs/gst/audio/mixertrack.h:
+ * gst-libs/gst/audio/mixerutils.c:
+ * gst-libs/gst/audio/mixerutils.h:
+ * gst-libs/gst/interfaces/.gitignore:
+ * gst-libs/gst/interfaces/Makefile.am:
+ * gst-libs/gst/interfaces/interfaces-marshal.list:
+ * gst-libs/gst/interfaces/navigation.c:
+ * gst-libs/gst/interfaces/navigation.h:
+ * gst-libs/gst/interfaces/tuner.c:
+ * gst-libs/gst/interfaces/tuner.h:
+ * gst-libs/gst/interfaces/tunerchannel.c:
+ * gst-libs/gst/interfaces/tunerchannel.h:
+ * gst-libs/gst/interfaces/tunernorm.c:
+ * gst-libs/gst/interfaces/tunernorm.h:
+ * gst-libs/gst/riff/Makefile.am:
+ * gst-libs/gst/video/Makefile.am:
+ * gst-libs/gst/video/navigation.c:
+ * gst-libs/gst/video/navigation.h:
+ * gst-libs/gst/video/videoorientation.h:
+ * gst-libs/gst/video/videooverlay.c:
+ * gst/playback/Makefile.am:
+ * gst/playback/gstplaybin2.c:
+ * gst/playback/gstplaysink.c:
+ * gst/volume/Makefile.am:
+ * gst/volume/gstvolume.c:
+ * pkgconfig/Makefile.am:
+ * pkgconfig/gstreamer-audio-uninstalled.pc.in:
+ * pkgconfig/gstreamer-audio.pc.in:
+ * pkgconfig/gstreamer-interfaces-uninstalled.pc.in:
+ * pkgconfig/gstreamer-interfaces.pc.in:
+ * pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
+ * pkgconfig/gstreamer-plugins-base.pc.in:
+ * sys/ximage/Makefile.am:
+ * sys/ximage/ximagesink.c:
+ * sys/xvimage/Makefile.am:
+ * sys/xvimage/xvimagesink.c:
+ * tests/check/Makefile.am:
+ * tests/check/elements/alsa.c:
+ * tests/check/libs/gstlibscpp.cc:
+ * tests/check/libs/libsabi.c:
+ * tests/check/libs/mixer.c:
+ * tests/check/libs/navigation.c:
+ * tests/check/libs/struct_arm.h:
+ * tests/check/libs/struct_i386.h:
+ * tests/check/libs/struct_i386_osx.h:
+ * tests/check/libs/struct_x86_64.h:
+ * tests/examples/playback/Makefile.am:
+ * tests/examples/playback/playback-test.c:
+ * tests/examples/seek/Makefile.am:
+ * tests/icles/Makefile.am:
+ * win32/common/interfaces-enumtypes.c:
+ * win32/common/interfaces-enumtypes.h:
+ * win32/common/libgstaudio.def:
+ * win32/common/libgstinterfaces.def:
+ * win32/common/libgstvideo.def:
+ gst-libs: Remove interfaces libs and mixer/tuner interfaces
+ The navigation interface is now in the video library.
+
+2012-04-13 12:21:05 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tests/check/elements/videorate.c:
+ tests: videorate: remove obsolete color-matrix caps field
+
+2012-04-12 18:20:58 -0400 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+ * Android.mk:
+ Sync Android.mk entries to the new major version
+ Change naming on the pkgconfig files to reflect
+ the 0.10 -> 1.0 bump.
+
+2012-04-12 15:06:15 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * tests/check/elements/volume.c:
+ check: Fix one leak in volume test
+
+2012-04-12 11:18:44 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ Back to development
+
=== release 0.11.90 ===
-2012-04-12 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2012-04-12 10:16:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
* configure.ac:
- releasing 0.11.90, "Golden bells\! What a world of happiness their harmony foretells\!"
+ * docs/plugins/gst-plugins-base-plugins.args:
+ * docs/plugins/gst-plugins-base-plugins.prerequisites:
+ * docs/plugins/inspect/plugin-adder.xml:
+ * docs/plugins/inspect/plugin-alsa.xml:
+ * docs/plugins/inspect/plugin-app.xml:
+ * docs/plugins/inspect/plugin-audioconvert.xml:
+ * docs/plugins/inspect/plugin-audiorate.xml:
+ * docs/plugins/inspect/plugin-audioresample.xml:
+ * docs/plugins/inspect/plugin-audiotestsrc.xml:
+ * docs/plugins/inspect/plugin-cdparanoia.xml:
+ * docs/plugins/inspect/plugin-encoding.xml:
+ * docs/plugins/inspect/plugin-gdp.xml:
+ * docs/plugins/inspect/plugin-gio.xml:
+ * docs/plugins/inspect/plugin-libvisual.xml:
+ * docs/plugins/inspect/plugin-ogg.xml:
+ * docs/plugins/inspect/plugin-pango.xml:
+ * docs/plugins/inspect/plugin-playback.xml:
+ * docs/plugins/inspect/plugin-subparse.xml:
+ * docs/plugins/inspect/plugin-tcp.xml:
+ * docs/plugins/inspect/plugin-theora.xml:
+ * docs/plugins/inspect/plugin-typefindfunctions.xml:
+ * docs/plugins/inspect/plugin-videorate.xml:
+ * docs/plugins/inspect/plugin-videoscale.xml:
+ * docs/plugins/inspect/plugin-videotestsrc.xml:
+ * docs/plugins/inspect/plugin-volume.xml:
+ * docs/plugins/inspect/plugin-vorbis.xml:
+ * docs/plugins/inspect/plugin-ximagesink.xml:
+ * docs/plugins/inspect/plugin-xvimagesink.xml:
+ * gst-plugins-base.doap:
+ * win32/common/_stdint.h:
+ * win32/common/config.h:
+ Release 0.11.90
+
+2012-04-12 10:11:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * po/af.po:
+ * po/az.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/eo.po:
+ * po/es.po:
+ * po/eu.po:
+ * po/fi.po:
+ * po/fr.po:
+ * po/gl.po:
+ * po/hu.po:
+ * po/id.po:
+ * po/it.po:
+ * po/ja.po:
+ * po/lt.po:
+ * po/lv.po:
+ * po/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:
+ Update .po files
2012-04-11 21:45:26 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
@@ -206,6 +1156,14 @@
decoded from the same input buffer. Instead keep the timestamps when upstream
pushes consecutive buffers with the same ts.
+2012-04-04 20:43:23 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: don't discard timestamps when consecutive input buffers have the same ts
+ Avoid pushing out buffers with the same timestamp only if the out buffers are
+ decoded from the same input buffer. Instead keep the timestamps when upstream
+ pushes consecutive buffers with the same ts.
+
2012-04-04 19:43:32 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
* gst-libs/gst/audio/gstaudioencoder.c:
diff --git a/Makefile.in b/Makefile.in
index baf19d4..028e614 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -179,8 +179,8 @@ am__relativize = \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.xz
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -506,9 +506,6 @@ EXTRA_DIST = \
ChangeLog gst-plugins-base.doap autogen.sh $(win32)
DISTCLEANFILES = _stdint.h
-
-# make bz2 as well
-AUTOMAKE_OPTIONS = dist-bzip2
WIN32_COPY = \
$(top_builddir)/gst-libs/gst/*/*-enumtypes.[ch] \
$(top_builddir)/_stdint.h
@@ -799,6 +796,7 @@ distdir: $(DISTFILES)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
+
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__remove_distdir)
@@ -810,7 +808,6 @@ dist-lzip: distdir
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
-
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__remove_distdir)
@@ -829,8 +826,7 @@ dist-zip: distdir
$(am__remove_distdir)
dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
@@ -1106,8 +1102,7 @@ check-nonportable-print-format:
dist-hook: check-exports win32-check-crlf
release: dist
- $(MAKE) $(PACKAGE)-$(VERSION).tar.gz.md5
- $(MAKE) $(PACKAGE)-$(VERSION).tar.bz2.md5
+ $(MAKE) $(PACKAGE)-$(VERSION).tar.xz.md5
# generate md5 sum files
%.md5: %
diff --git a/NEWS b/NEWS
index 53eae32..ccdee24 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,11 @@
-This is GStreamer Base Plug-ins 0.11.90 "Golden bells! What a world of happiness their harmony foretells!"
+This is GStreamer Base Plug-ins 0.11.91 "Fee-fi-fo-fum"
+
+New in 0.11.91:
+
+ * Compressed audio passthrough support in alsasink
+ * Removal of interfaces library, mixer and tuner interface
+ * Addition of video encoder and decoder base classes
+ * Improvements/cleanup for the video library API
New in 0.11.90:
diff --git a/RELEASE b/RELEASE
index 1e325ac..ef83aa2 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
-Release notes for GStreamer Base Plug-ins 0.11.90 "Golden bells! What a world of happiness their harmony foretells!"
+Release notes for GStreamer Base Plug-ins 0.11.91 "Fee-fi-fo-fum"
@@ -55,9 +55,12 @@ contains a set of less supported plug-ins that haven't passed the
Features of this release
- * Lots of bugfixes, cleanup and other improvements
- * API cleanup in the audio base classes
- * Improvements to the RTP buffer
+ * Parallel installability with 0.10.x series
+ * Threadsafe design and API
+ * Compressed audio passthrough support in alsasink
+ * Removal of interfaces library, mixer and tuner interface
+ * Addition of video encoder and decoder base classes
+ * Improvements/cleanup for the video library API
There were no bugs fixed in this release
@@ -88,15 +91,22 @@ Applications
Contributors to this release
- * Alban Browaeys
+ * Akihiro Tsukada
* Alessandro Decina
+ * Andoni Morales Alastruey
* Edward Hervey
- * Holger Kaelberer
- * Jonathan Lyons
+ * Julian Scheel
* Mark Nauwelaerts
- * Raimo Järvi
+ * Matej Knopp
+ * Nicolas Dufresne
+ * Reynaldo H. Verdejo Pinochet
* Sebastian Dröge
- * Thiago Santos
+ * Sebastian Rasmussen
+ * Stefan Sauer
+ * Thibault Saunier
* Tim-Philipp Müller
+ * Vivia Nikolaidou
+ * Víctor Manuel Jáquez Leal
* Wim Taymans
+ * Руслан Ижбулатов
  \ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index cc76c2b..7707f5b 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11.4 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.5 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
@@ -14,8 +14,8 @@
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
-[m4_warning([this file was generated for autoconf 2.68.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
@@ -38,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.4], [],
+m4_if([$1], [1.11.5], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -54,7 +54,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.4])dnl
+[AM_AUTOMAKE_VERSION([1.11.5])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
@@ -845,6 +845,25 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
diff --git a/autogen.sh b/autogen.sh
index 9b38463..3629f00 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -45,14 +45,14 @@ autogen_options $@
printf "+ check for build tools"
if test ! -z "$NOCHECK"; then echo " skipped"; else echo; fi
-version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262 autoconf261 autoconf260" \
- "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 60 || DIE=1
-version_check "automake" "$AUTOMAKE automake automake-1.11 automake-1.10" \
- "ftp://ftp.gnu.org/pub/gnu/automake/" 1 10 || DIE=1
+version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262" \
+ "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 62 || DIE=1
+version_check "automake" "$AUTOMAKE automake automake-1.11" \
+ "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1
version_check "autopoint" "autopoint" \
"ftp://ftp.gnu.org/pub/gnu/gettext/" 0 17 || DIE=1
version_check "libtoolize" "$LIBTOOLIZE libtoolize glibtoolize" \
- "ftp://ftp.gnu.org/pub/gnu/libtool/" 1 5 0 || DIE=1
+ "ftp://ftp.gnu.org/pub/gnu/libtool/" 2 2 6 || DIE=1
version_check "pkg-config" "" \
"http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1
diff --git a/common/Makefile.in b/common/Makefile.in
index d3e5a71..af1e480 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/common/gst-autogen.sh b/common/gst-autogen.sh
index f05e021..e54dbcf 100644
--- a/common/gst-autogen.sh
+++ b/common/gst-autogen.sh
@@ -216,38 +216,6 @@ autoheader_check ()
}
-autoconf_2_52d_check ()
-{
- # autoconf 2.52d has a weird issue involving a yes:no error
- # so don't allow it's use
- test -z "$NOCHECK" && {
- ac_version=`$autoconf --version|head -n 1|sed 's/^[a-zA-Z\.\ ()]*//;s/ .*$//'`
- if test "$ac_version" = "2.52d"; then
- echo "autoconf 2.52d has an issue with our current build."
- echo "We don't know who's to blame however. So until we do, get a"
- echo "regular version. RPM's of a working version are on the gstreamer site."
- exit 1
- fi
- }
- return 0
-}
-libtool_2_2_gettext_check ()
-{
- # libtool 2.2 needs autopoint 0.17 or higher
- version_compare LIBTOOLIZE 2 2 0
- if test $? -eq 0
- then
- version_compare AUTOPOINT 0 17 0
- if test $? -ne 0
- then
- echo "libtool 2.2 requires autopoint 0.17 or higher"
- return 1
- fi
- fi
- return 0
-}
-
-
die_check ()
{
# call with $DIE
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 3e97321..54c8607 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/common/m4/as-libtool.m4 b/common/m4/as-libtool.m4
index 25de9d1..3b16095 100644
--- a/common/m4/as-libtool.m4
+++ b/common/m4/as-libtool.m4
@@ -41,5 +41,6 @@ AC_DEFUN([AS_LIBTOOL],
fi
AC_SUBST([$1]_LT_LDFLAGS)
- AC_LIBTOOL_DLOPEN
+ LT_PREREQ([2.2.6])
+ LT_INIT([dlopen win32-dll disable-static])
])
diff --git a/common/release.mak b/common/release.mak
index 4a9b7d5..7fbf4ca 100644
--- a/common/release.mak
+++ b/common/release.mak
@@ -1,12 +1,8 @@
# include this snippet to add a common release: target by using
# include $(top_srcdir)/common/release.mak
-# make bz2 as well
-AUTOMAKE_OPTIONS = dist-bzip2
-
release: dist
- $(MAKE) $(PACKAGE)-$(VERSION).tar.gz.md5
- $(MAKE) $(PACKAGE)-$(VERSION).tar.bz2.md5
+ $(MAKE) $(PACKAGE)-$(VERSION).tar.xz.md5
# generate md5 sum files
%.md5: %
diff --git a/config.h.in b/config.h.in
index 065e7e5..0e8d8b0 100644
--- a/config.h.in
+++ b/config.h.in
@@ -363,6 +363,11 @@
/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
diff --git a/configure b/configure
index 5062a7b..810fc4a 100755
--- a/configure
+++ b/configure
@@ -1,13 +1,11 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for GStreamer Base Plug-ins 0.11.90.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 0.11.91.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -136,6 +134,31 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -169,7 +192,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -222,21 +246,25 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- # Preserve -v and -x to the replacement shell.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
- esac
- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
@@ -340,6 +368,14 @@ $as_echo X"$as_dir" |
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -461,6 +497,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -495,16 +535,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -516,28 +556,8 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -571,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GStreamer Base Plug-ins'
PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='0.11.90'
-PACKAGE_STRING='GStreamer Base Plug-ins 0.11.90'
+PACKAGE_VERSION='0.11.91'
+PACKAGE_STRING='GStreamer Base Plug-ins 0.11.91'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
PACKAGE_URL=''
@@ -1040,8 +1060,8 @@ ac_user_opts='
enable_option_checking
enable_maintainer_mode
enable_silent_rules
-enable_shared
enable_static
+enable_shared
with_pic
enable_fast_install
enable_dependency_tracking
@@ -1641,8 +1661,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1728,7 +1746,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 Base Plug-ins 0.11.90 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 0.11.91 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1803,7 +1821,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GStreamer Base Plug-ins 0.11.90:";;
+ short | recursive ) echo "Configuration of GStreamer Base Plug-ins 0.11.91:";;
esac
cat <<\_ACEOF
@@ -1811,12 +1829,12 @@ Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-maintainer-mode enable make rules and dependencies not useful
+ --disable-maintainer-mode disable make rules and dependencies not useful
(and sometimes confusing) to the casual installer
--enable-silent-rules less verbose build output (undo: `make V=1')
--disable-silent-rules verbose build output (undo: `make V=0')
+ --enable-static[=PKGS] build static libraries [default=no]
--enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-dependency-tracking speeds up one-time build
@@ -2078,10 +2096,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GStreamer Base Plug-ins configure 0.11.90
-generated by GNU Autoconf 2.68
+GStreamer Base Plug-ins configure 0.11.91
+generated by GNU Autoconf 2.69
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -2157,7 +2175,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -2501,7 +2519,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -2682,7 +2700,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2698,7 +2717,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2724,7 +2744,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2740,7 +2761,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2774,7 +2796,8 @@ int
main ()
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [0];
;
return 0;
@@ -2846,8 +2869,8 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GStreamer Base Plug-ins $as_me 0.11.90, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+It was created by GStreamer Base Plug-ins $as_me 0.11.91, which was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3268,7 +3291,7 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
@@ -3437,7 +3460,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3477,7 +3500,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3528,7 +3551,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir (GNU coreutils) '* | \
'mkdir (coreutils) '* | \
@@ -3581,7 +3604,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3667,7 +3690,7 @@ fi
# Define the identity of the package.
PACKAGE='gst-plugins-base'
- VERSION='0.11.90'
+ VERSION='0.11.91'
cat >>confdefs.h <<_ACEOF
@@ -3701,17 +3724,98 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar plaintar pax cpio none'
+_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ { echo "$as_me:$LINENO: $_am_tar --version" >&5
+ ($_am_tar --version) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && break
+ done
+ am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x ustar -w "$$tardir"'
+ am__tar_='pax -L -x ustar -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+ am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+ am__untar='cpio -i -H ustar -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_ustar}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+ (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+ ($am__untar <conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+if ${am_cv_prog_tar_ustar+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_prog_tar_ustar=$_am_tool
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+$as_echo "$am_cv_prog_tar_ustar" >&6; }
- PACKAGE_VERSION_MAJOR=$(echo 0.11.90 | cut -d'.' -f1)
- PACKAGE_VERSION_MINOR=$(echo 0.11.90 | cut -d'.' -f2)
- PACKAGE_VERSION_MICRO=$(echo 0.11.90 | cut -d'.' -f3)
+
+ PACKAGE_VERSION_MAJOR=$(echo 0.11.91 | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo 0.11.91 | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo 0.11.91 | cut -d'.' -f3)
@@ -3722,7 +3826,7 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
$as_echo_n "checking nano version... " >&6; }
- NANO=$(echo 0.11.90 | cut -d'.' -f4)
+ NANO=$(echo 0.11.91 | cut -d'.' -f4)
if test x"$NANO" = x || test "x$NANO" = "x0" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -3757,7 +3861,7 @@ $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles
if test "${enable_maintainer_mode+set}" = set; then :
enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
else
- USE_MAINTAINER_MODE=no
+ USE_MAINTAINER_MODE=yes
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
@@ -3894,333 +3998,6 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-
- GST_CURRENT=0
- GST_REVISION=0
- GST_AGE=0
- GST_LIBVERSION=0:0:0
-
-
-
-
-
- GST_LT_LDFLAGS="$GST_LT_LDFLAGS -version-info $GST_LIBVERSION"
- if test ! -z ""
- then
- GST_LT_LDFLAGS="$GST_LT_LDFLAGS -release "
- fi
-
-
- enable_dlopen=yes
-
-
-
-
-
-
-enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AS+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AS"; then
- ac_ct_AS=$AS
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AS+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AS"; then
- ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_AS="as"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_AS" = x; then
- AS="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AS=$ac_ct_AS
- fi
-else
- AS="$ac_cv_prog_AS"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
- ;;
-esac
-
-test -z "$AS" && AS=as
-
-
-
-
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
case `pwd` in
*\ * | *\ *)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
@@ -4400,7 +4177,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4440,7 +4217,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4493,7 +4270,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4534,7 +4311,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -4592,7 +4369,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4636,7 +4413,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5082,8 +4859,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -5318,7 +5094,7 @@ do
for ac_prog in sed gsed; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+ as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
@@ -5394,7 +5170,7 @@ do
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -5460,7 +5236,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -5527,7 +5303,7 @@ do
for ac_prog in fgrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+ as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
case `"$ac_path_FGREP" --version 2>&1` in
@@ -5783,7 +5559,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -5827,7 +5603,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6251,7 +6027,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6291,7 +6067,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6594,7 +6370,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6634,7 +6410,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6735,7 +6511,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6779,7 +6555,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6904,7 +6680,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -6944,7 +6720,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7003,7 +6779,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7043,7 +6819,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7692,7 +7468,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7732,7 +7508,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7812,7 +7588,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7852,7 +7628,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7904,7 +7680,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7944,7 +7720,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -7996,7 +7772,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8036,7 +7812,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8088,7 +7864,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8128,7 +7904,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL="otool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8180,7 +7956,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8220,7 +7996,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -8700,36 +8476,350 @@ fi
done
+ GST_CURRENT=0
+ GST_REVISION=0
+ GST_AGE=0
+ GST_LIBVERSION=0:0:0
+
+
+
+
+
+ GST_LT_LDFLAGS="$GST_LT_LDFLAGS -version-info $GST_LIBVERSION"
+ if test ! -z ""
+ then
+ GST_LT_LDFLAGS="$GST_LT_LDFLAGS -release "
+ fi
+
+
+
+
# Set options
+enable_dlopen=yes
+enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AS="${ac_tool_prefix}as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+fi
+if test -z "$ac_cv_prog_AS"; then
+ ac_ct_AS=$AS
+ # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AS"; then
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AS="as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
+ if test "x$ac_ct_AS" = x; then
+ AS="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AS=$ac_ct_AS
+ fi
+else
+ AS="$ac_cv_prog_AS"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+ ;;
+esac
+
+test -z "$AS" && AS=as
+
+
+
+
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
*)
- enable_shared=no
+ enable_static=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
for pkg in $enableval; do
IFS="$lt_save_ifs"
if test "X$pkg" = "X$p"; then
- enable_shared=yes
+ enable_static=yes
fi
done
IFS="$lt_save_ifs"
;;
esac
else
- enable_shared=yes
+ enable_static=no
fi
@@ -8740,27 +8830,30 @@ fi
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
+
+
+
+ # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
*)
- enable_static=no
+ enable_shared=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
for pkg in $enableval; do
IFS="$lt_save_ifs"
if test "X$pkg" = "X$p"; then
- enable_static=yes
+ enable_shared=yes
fi
done
IFS="$lt_save_ifs"
;;
esac
else
- enable_static=yes
+ enable_shared=yes
fi
@@ -8772,6 +8865,7 @@ fi
+
# Check whether --with-pic was given.
if test "${with_pic+set}" = set; then :
withval=$with_pic; lt_p=${PACKAGE-default}
@@ -12720,6 +12814,7 @@ CC="$lt_save_CC"
+
GST_REQ=0.11.90
@@ -12893,7 +12988,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -14802,7 +14897,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -14845,7 +14940,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -16261,6 +16356,8 @@ _ACEOF
esac
rm -rf conftest*
fi
+
+
fi
@@ -16287,7 +16384,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -16327,7 +16424,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -16380,7 +16477,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -16421,7 +16518,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -16479,7 +16576,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -16523,7 +16620,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -16719,8 +16816,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -17083,7 +17179,7 @@ main ()
return 0;
}
_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"; then :
@@ -17123,8 +17219,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -17382,7 +17477,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -17426,7 +17521,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -21011,7 +21106,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_VALGRIND_PATH="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -21191,7 +21286,7 @@ do
for ac_prog in sed gsed; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+ as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
@@ -21266,7 +21361,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -21348,7 +21443,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -30537,7 +30632,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_FT2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -30739,7 +30834,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_FT2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -30948,7 +31043,7 @@ GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_
-ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/videoconvert/Makefile gst/gdp/Makefile gst/gio/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-interfaces.pc pkgconfig/gstreamer-interfaces-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playback/Makefile tests/examples/playrec/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
+ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/videoconvert/Makefile gst/gdp/Makefile gst/gio/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playback/Makefile tests/examples/playrec/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
sed \
@@ -31746,16 +31841,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -31815,28 +31910,16 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -31857,8 +31940,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 0.11.90, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+This file was extended by GStreamer Base Plug-ins $as_me 0.11.91, which was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -31923,11 +32006,11 @@ _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 Base Plug-ins config.status 0.11.90
-configured by $0, generated by GNU Autoconf 2.68,
+GStreamer Base Plug-ins config.status 0.11.91
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -32018,7 +32101,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
@@ -32052,13 +32135,13 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
sed_quote_subst='$sed_quote_subst'
double_quote_subst='$double_quote_subst'
delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
@@ -32496,7 +32579,6 @@ do
"gst-libs/gst/audio/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/audio/Makefile" ;;
"gst-libs/gst/app/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/app/Makefile" ;;
"gst-libs/gst/fft/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/fft/Makefile" ;;
- "gst-libs/gst/interfaces/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/interfaces/Makefile" ;;
"gst-libs/gst/riff/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/riff/Makefile" ;;
"gst-libs/gst/rtp/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/rtp/Makefile" ;;
"gst-libs/gst/rtsp/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/rtsp/Makefile" ;;
@@ -32513,8 +32595,6 @@ do
"pkgconfig/gstreamer-app-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-app-uninstalled.pc" ;;
"pkgconfig/gstreamer-fft.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-fft.pc" ;;
"pkgconfig/gstreamer-fft-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-fft-uninstalled.pc" ;;
- "pkgconfig/gstreamer-interfaces.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-interfaces.pc" ;;
- "pkgconfig/gstreamer-interfaces-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-interfaces-uninstalled.pc" ;;
"pkgconfig/gstreamer-pbutils.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-pbutils.pc" ;;
"pkgconfig/gstreamer-pbutils-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-pbutils-uninstalled.pc" ;;
"pkgconfig/gstreamer-riff.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-riff.pc" ;;
@@ -33301,6 +33381,10 @@ available_tags="CXX "
# ### BEGIN LIBTOOL CONFIG
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
# Assembler program.
AS=$lt_AS
@@ -33310,16 +33394,12 @@ DLLTOOL=$lt_DLLTOOL
# Object dumper program.
OBJDUMP=$lt_OBJDUMP
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
# Whether or not to build shared libraries.
build_libtool_libs=$enable_shared
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
# What type of objects to build.
pic_mode=$pic_mode
diff --git a/configure.ac b/configure.ac
index 88697f9..3671b5a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,18 +1,18 @@
-AC_PREREQ(2.60)
+AC_PREREQ(2.62)
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/prerelease
-AC_INIT(GStreamer Base Plug-ins, 0.11.90,
+AC_INIT(GStreamer Base Plug-ins, 0.11.91,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gst-plugins-base)
AG_GST_INIT
dnl initialize automake
-AM_INIT_AUTOMAKE([-Wno-portability 1.10])
+AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar])
dnl define PACKAGE_VERSION_* variables
AS_VERSION
@@ -27,7 +27,7 @@ dnl define the output header for config
AM_CONFIG_HEADER([config.h])
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
-AM_MAINTAINER_MODE
+AM_MAINTAINER_MODE([enable])
dnl sets host_* variables
AC_CANONICAL_HOST
@@ -52,14 +52,6 @@ dnl - interfaces removed -> AGE = 0
dnl sets GST_LT_LDFLAGS
AS_LIBTOOL(GST, 0, 0, 0)
-dnl FIXME: this macro doesn't actually work;
-dnl the generated libtool script has no support for the listed tags.
-dnl So this needs to be fixed first if we want to use this
-dnl AS_LIBTOOL_TAGS
-
-AC_LIBTOOL_WIN32_DLL
-AM_PROG_LIBTOOL
-
dnl *** required versions of GStreamer stuff ***
GST_REQ=0.11.90
@@ -167,7 +159,7 @@ AG_GST_PLUGIN_DOCS([1.3],[2.1])
dnl *** checks for libraries ***
dnl libm, for sin() etc.
-AC_CHECK_LIBM
+LT_LIB_M
AC_SUBST(LIBM)
dnl *** checks for header files ***
@@ -851,7 +843,6 @@ gst-libs/gst/Makefile
gst-libs/gst/audio/Makefile
gst-libs/gst/app/Makefile
gst-libs/gst/fft/Makefile
-gst-libs/gst/interfaces/Makefile
gst-libs/gst/riff/Makefile
gst-libs/gst/rtp/Makefile
gst-libs/gst/rtsp/Makefile
@@ -868,8 +859,6 @@ pkgconfig/gstreamer-app.pc
pkgconfig/gstreamer-app-uninstalled.pc
pkgconfig/gstreamer-fft.pc
pkgconfig/gstreamer-fft-uninstalled.pc
-pkgconfig/gstreamer-interfaces.pc
-pkgconfig/gstreamer-interfaces-uninstalled.pc
pkgconfig/gstreamer-pbutils.pc
pkgconfig/gstreamer-pbutils-uninstalled.pc
pkgconfig/gstreamer-riff.pc
diff --git a/docs/Makefile.in b/docs/Makefile.in
index f89c72d..fc9b65d 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index 23e7778..c02c7c7 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am
index 03575cc..f362943 100644
--- a/docs/libs/Makefile.am
+++ b/docs/libs/Makefile.am
@@ -41,7 +41,7 @@ IGNORE_HFILES = pbutils-private.h gsttageditingprivate.h id3v2.h \
kiss_fftr_s16.h kiss_fftr_s32.h kiss_fft_s16.h kiss_fft_s32.h \
_kiss_fft_guts_f32.h _kiss_fft_guts_f64.h _kiss_fft_guts_s16.h \
_kiss_fft_guts_s16.h _kiss_fft_guts_s32.h _kiss_fft_guts_s32.h \
- interfaces-marshal.h pbutils-marshal.h
+ pbutils-marshal.h
# Images to copy into HTML directory.
@@ -57,7 +57,6 @@ extra_files =
# contains GtkObjects/GObjects and you want to document signals and properties.
GTKDOC_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) -DGST_USE_UNSTABLE_API
GTKDOC_LIBS = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 960182b..25b7739 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -454,7 +454,7 @@ IGNORE_HFILES = pbutils-private.h gsttageditingprivate.h id3v2.h \
kiss_fftr_s16.h kiss_fftr_s32.h kiss_fft_s16.h kiss_fft_s32.h \
_kiss_fft_guts_f32.h _kiss_fft_guts_f64.h _kiss_fft_guts_s16.h \
_kiss_fft_guts_s16.h _kiss_fft_guts_s32.h _kiss_fft_guts_s32.h \
- interfaces-marshal.h pbutils-marshal.h
+ pbutils-marshal.h
# Images to copy into HTML directory.
@@ -470,7 +470,6 @@ extra_files =
# contains GtkObjects/GObjects and you want to document signals and properties.
GTKDOC_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) -DGST_USE_UNSTABLE_API
GTKDOC_LIBS = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
diff --git a/docs/libs/gst-plugins-base-libs-docs.sgml b/docs/libs/gst-plugins-base-libs-docs.sgml
index 823c20c..f7a4a08 100644
--- a/docs/libs/gst-plugins-base-libs-docs.sgml
+++ b/docs/libs/gst-plugins-base-libs-docs.sgml
@@ -57,9 +57,6 @@
<xi:include href="xml/gstaudioringbuffer.xml" />
<xi:include href="xml/gstaudioiec61937.xml" />
<xi:include href="xml/gststreamvolume.xml" />
- <xi:include href="xml/gstmixer.xml" />
- <xi:include href="xml/gstmixeroptions.xml" />
- <xi:include href="xml/gstmixertrack.xml" />
</chapter>
<chapter id="gstreamer-ffft">
@@ -81,19 +78,6 @@
<xi:include href="xml/gstfftf64.xml" />
</chapter>
- <chapter id="gstreamer-interfaces">
- <title>Interfaces Library</title>
- <para>
- This library should be linked to by getting cflags and libs from
- <filename>gstreamer-plugins-base-&GST_API_VERSION;.pc</filename> and adding
- <filename>-lgstinterfaces-&GST_API_VERSION;</filename> to the library flags.
- </para>
- <xi:include href="xml/gstnavigation.xml" />
- <xi:include href="xml/gsttuner.xml" />
- <xi:include href="xml/gsttunerchannel.xml" />
- <xi:include href="xml/gsttunernorm.xml" />
- </chapter>
-
<chapter id="gstreamer-riff">
<title>Riff Media Library</title>
<para>
@@ -197,6 +181,9 @@
<xi:include href="xml/gstcolorbalancechannel.xml" />
<xi:include href="xml/gstvideoorientation.xml" />
<xi:include href="xml/gstvideooverlay.xml" />
+ <xi:include href="xml/gstvideodecoder.xml" />
+ <xi:include href="xml/gstvideoencoder.xml" />
+ <xi:include href="xml/gstvideoutils.xml" />
</chapter>
</part>
diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt
index 790c220..ec9fecb 100644
--- a/docs/libs/gst-plugins-base-libs-sections.txt
+++ b/docs/libs/gst-plugins-base-libs-sections.txt
@@ -606,95 +606,8 @@ gst_color_balance_channel_get_type
</SECTION>
<SECTION>
-<FILE>gstmixer</FILE>
-<INCLUDE>gst/audio/mixer.h</INCLUDE>
-GstMixer
-GstMixerType
-GstMixerFlags
-GstMixerMessageType
-
-gst_mixer_list_tracks
-gst_mixer_get_volume
-gst_mixer_set_volume
-
-gst_mixer_set_mute
-gst_mixer_set_record
-gst_mixer_set_option
-
-gst_mixer_mute_toggled
-gst_mixer_record_toggled
-gst_mixer_volume_changed
-gst_mixer_option_changed
-gst_mixer_options_list_changed
-gst_mixer_get_option
-
-gst_mixer_mixer_changed
-
-gst_mixer_get_mixer_flags
-gst_mixer_get_mixer_type
-
-gst_mixer_message_get_type
-gst_mixer_message_parse_mute_toggled
-gst_mixer_message_parse_option_changed
-gst_mixer_message_parse_record_toggled
-gst_mixer_message_parse_volume_changed
-gst_mixer_message_parse_options_list_changed
-
-<SUBSECTION Standard>
-GstMixerClass
-GST_TYPE_MIXER
-GST_TYPE_MIXER_TYPE
-GST_TYPE_MIXER_FLAGS
-GST_TYPE_MIXER_MESSAGE_TYPE
-GST_MIXER
-GST_MIXER_GET_INTERFACE
-GST_MIXER_TYPE
-GST_IS_MIXER
-GST_TYPE_STREAM_VOLUME_FORMAT
-gst_mixer_get_type
-gst_mixer_type_get_type
-gst_mixer_flags_get_type
-gst_mixer_message_type_get_type
-gst_stream_volume_format_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gstmixeroptions</FILE>
-<INCLUDE>gst/audio/mixer.h</INCLUDE>
-GstMixerOptions
-gst_mixer_options_get_values
-<SUBSECTION Standard>
-GstMixerOptionsClass
-GST_TYPE_MIXER_OPTIONS
-GST_MIXER_OPTIONS
-GST_MIXER_OPTIONS_CLASS
-GST_IS_MIXER_OPTIONS
-GST_IS_MIXER_OPTIONS_CLASS
-GST_MIXER_OPTIONS_GET_CLASS
-gst_mixer_options_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gstmixertrack</FILE>
-<INCLUDE>gst/audio/mixer.h</INCLUDE>
-GstMixerTrack
-GstMixerTrackFlags
-GST_MIXER_TRACK_HAS_FLAG
-<SUBSECTION Standard>
-GstMixerTrackClass
-GST_TYPE_MIXER_TRACK
-GST_TYPE_MIXER_TRACK_FLAGS
-GST_MIXER_TRACK
-GST_MIXER_TRACK_CLASS
-GST_IS_MIXER_TRACK
-GST_IS_MIXER_TRACK_CLASS
-gst_mixer_track_flags_get_type
-gst_mixer_track_get_type
-</SECTION>
-
-<SECTION>
<FILE>gstnavigation</FILE>
-<INCLUDE>gst/interfaces/navigation.h</INCLUDE>
+<INCLUDE>gst/video/navigation.h</INCLUDE>
GstNavigation
GstNavigationInterface
GstNavigationCommand
@@ -778,71 +691,6 @@ gst_stream_volume_get_type
</SECTION>
<SECTION>
-<FILE>gsttuner</FILE>
-<INCLUDE>gst/interfaces/tuner.h</INCLUDE>
-GstTuner
-GstTunerInterface
-
-gst_tuner_list_channels
-gst_tuner_get_channel
-gst_tuner_set_channel
-
-gst_tuner_list_norms
-gst_tuner_get_norm
-gst_tuner_set_norm
-
-gst_tuner_get_frequency
-gst_tuner_set_frequency
-gst_tuner_signal_strength
-
-gst_tuner_find_norm_by_name
-gst_tuner_find_channel_by_name
-
-gst_tuner_channel_changed
-gst_tuner_norm_changed
-gst_tuner_frequency_changed
-gst_tuner_signal_changed
-<SUBSECTION Standard>
-GST_TYPE_TUNER
-GST_TUNER
-GST_TUNER_GET_INTERFACE
-GST_IS_TUNER
-gst_tuner_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gsttunerchannel</FILE>
-<INCLUDE>gst/interfaces/tuner.h</INCLUDE>
-GstTunerChannel
-GstTunerChannelFlags
-GST_TUNER_CHANNEL_HAS_FLAG
-<SUBSECTION Standard>
-GstTunerChannelClass
-GST_TYPE_TUNER_CHANNEL
-GST_TYPE_TUNER_CHANNEL_FLAGS
-GST_TUNER_CHANNEL
-GST_TUNER_CHANNEL_CLASS
-GST_IS_TUNER_CHANNEL
-GST_IS_TUNER_CHANNEL_CLASS
-gst_tuner_channel_flags_get_type
-gst_tuner_channel_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gsttunernorm</FILE>
-<INCLUDE>gst/interfaces/tuner.h</INCLUDE>
-GstTunerNorm
-<SUBSECTION Standard>
-GstTunerNormClass
-GST_TYPE_TUNER_NORM
-GST_TUNER_NORM
-GST_TUNER_NORM_CLASS
-GST_IS_TUNER_NORM
-GST_IS_TUNER_NORM_CLASS
-gst_tuner_norm_get_type
-</SECTION>
-
-<SECTION>
<FILE>gstvideoorientation</FILE>
<INCLUDE>gst/video/videoorientation.h</INCLUDE>
GstVideoOrientation
@@ -2079,7 +1927,90 @@ GstEncodingTargetClass
<INCLUDE>gst/video/video.h</INCLUDE>
GST_VIDEO_FPS_RANGE
GST_VIDEO_SIZE_RANGE
+GST_VIDEO_BUFFER_TFF
+GST_VIDEO_BUFFER_RFF
+GST_VIDEO_BUFFER_ONEFIELD
+GST_VIDEO_BUFFER_PROGRESSIVE
+GstVideoChromaSite
+GstVideoColorMatrix
+GstVideoColorPrimaries
+GstVideoColorRange
+GstVideoColorimetry
+GstVideoFlags
+GstVideoFormatFlags
+GstVideoFormatPack
+GstVideoFormatUnpack
+GstVideoInterlaceMode
+GstVideoTransferFunction
GstVideoFormat
+GstVideoFormatInfo
+GST_VIDEO_FORMAT_INFO_BITS
+GST_VIDEO_FORMAT_INFO_DATA
+GST_VIDEO_FORMAT_INFO_DEPTH
+GST_VIDEO_FORMAT_INFO_FLAGS
+GST_VIDEO_FORMAT_INFO_FORMAT
+GST_VIDEO_FORMAT_INFO_HAS_ALPHA
+GST_VIDEO_FORMAT_INFO_HAS_PALETTE
+GST_VIDEO_FORMAT_INFO_H_SUB
+GST_VIDEO_FORMAT_INFO_IS_GRAY
+GST_VIDEO_FORMAT_INFO_IS_LE
+GST_VIDEO_FORMAT_INFO_IS_RGB
+GST_VIDEO_FORMAT_INFO_IS_YUV
+GST_VIDEO_FORMAT_INFO_IS_COMPLEX
+GST_VIDEO_FORMAT_INFO_NAME
+GST_VIDEO_FORMAT_INFO_N_COMPONENTS
+GST_VIDEO_FORMAT_INFO_N_PLANES
+GST_VIDEO_FORMAT_INFO_OFFSET
+GST_VIDEO_FORMAT_INFO_PLANE
+GST_VIDEO_FORMAT_INFO_POFFSET
+GST_VIDEO_FORMAT_INFO_PSTRIDE
+GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT
+GST_VIDEO_FORMAT_INFO_SCALE_WIDTH
+GST_VIDEO_FORMAT_INFO_SHIFT
+GST_VIDEO_FORMAT_INFO_STRIDE
+GST_VIDEO_FORMAT_INFO_W_SUB
+GstVideoInfo
+GST_VIDEO_INFO_COMP_BITS
+GST_VIDEO_INFO_COMP_DATA
+GST_VIDEO_INFO_COMP_DEPTH
+GST_VIDEO_INFO_COMP_HEIGHT
+GST_VIDEO_INFO_COMP_OFFSET
+GST_VIDEO_INFO_COMP_PLANE
+GST_VIDEO_INFO_COMP_POFFSET
+GST_VIDEO_INFO_COMP_PSTRIDE
+GST_VIDEO_INFO_COMP_STRIDE
+GST_VIDEO_INFO_COMP_WIDTH
+GST_VIDEO_INFO_FLAGS
+GST_VIDEO_INFO_FLAG_IS_SET
+GST_VIDEO_INFO_FLAG_SET
+GST_VIDEO_INFO_FLAG_UNSET
+GST_VIDEO_INFO_FORMAT
+GST_VIDEO_INFO_FPS_D
+GST_VIDEO_INFO_FPS_N
+GST_VIDEO_INFO_HAS_ALPHA
+GST_VIDEO_INFO_HEIGHT
+GST_VIDEO_INFO_INTERLACE_MODE
+GST_VIDEO_INFO_IS_GRAY
+GST_VIDEO_INFO_IS_INTERLACED
+GST_VIDEO_INFO_IS_RGB
+GST_VIDEO_INFO_IS_YUV
+GST_VIDEO_INFO_NAME
+GST_VIDEO_INFO_N_COMPONENTS
+GST_VIDEO_INFO_N_PLANES
+GST_VIDEO_INFO_PAR_D
+GST_VIDEO_INFO_PAR_N
+GST_VIDEO_INFO_PLANE_OFFSET
+GST_VIDEO_INFO_PLANE_STRIDE
+GST_VIDEO_INFO_SIZE
+GST_VIDEO_INFO_WIDTH
+GST_VIDEO_MAX_COMPONENTS
+GST_VIDEO_MAX_PLANES
+GST_VIDEO_SUB_SCALE
+gst_video_info_convert
+gst_video_info_from_caps
+gst_video_info_init
+gst_video_info_set_format
+gst_video_info_to_caps
gst_video_calculate_display_ratio
gst_video_format_to_fourcc
gst_video_format_from_fourcc
@@ -2097,6 +2028,22 @@ gst_video_event_parse_downstream_force_key_unit
<SUBSECTION Standard>
gst_video_format_get_type
GST_TYPE_VIDEO_FORMAT
+GST_TYPE_VIDEO_CHROMA_SITE
+GST_TYPE_VIDEO_COLOR_MATRIX
+GST_TYPE_VIDEO_COLOR_PRIMARIES
+GST_TYPE_VIDEO_COLOR_RANGE
+GST_TYPE_VIDEO_FLAGS
+GST_TYPE_VIDEO_FORMAT_FLAGS
+GST_TYPE_VIDEO_INTERLACE_MODE
+GST_TYPE_VIDEO_TRANSFER_FUNCTION
+gst_video_chroma_site_get_type
+gst_video_color_matrix_get_type
+gst_video_color_primaries_get_type
+gst_video_color_range_get_type
+gst_video_flags_get_type
+gst_video_format_flags_get_type
+gst_video_interlace_mode_get_type
+gst_video_transfer_function_get_type
</SECTION>
<SECTION>
@@ -2188,6 +2135,123 @@ gst_video_sink_get_type
</SECTION>
<SECTION>
+<FILE>gstvideodecoder</FILE>
+<TITLE>GstVideoDecoder</TITLE>
+GST_VIDEO_DECODER_ERROR
+GST_VIDEO_DECODER_FLOW_DROPPED
+GST_VIDEO_DECODER_FLOW_NEED_DATA
+GST_VIDEO_DECODER_MAX_ERRORS
+GST_VIDEO_DECODER_SINK_NAME
+GST_VIDEO_DECODER_SINK_PAD
+GST_VIDEO_DECODER_SRC_NAME
+GST_VIDEO_DECODER_SRC_PAD
+GST_VIDEO_DECODER_STREAM_LOCK
+GST_VIDEO_DECODER_STREAM_UNLOCK
+GST_VIDEO_DECODER_INPUT_SEGMENT
+GST_VIDEO_DECODER_OUTPUT_SEGMENT
+GstVideoDecoder
+GstVideoDecoderClass
+gst_video_decoder_add_to_frame
+gst_video_decoder_alloc_output_buffer
+gst_video_decoder_alloc_output_frame
+gst_video_decoder_drop_frame
+gst_video_decoder_finish_frame
+gst_video_decoder_get_frame
+gst_video_decoder_get_max_decode_time
+gst_video_decoder_get_max_errors
+gst_video_decoder_get_oldest_frame
+gst_video_decoder_get_packetized
+gst_video_decoder_have_frame
+gst_video_decoder_get_latency
+gst_video_decoder_set_latency
+gst_video_decoder_get_estimate_rate
+gst_video_decoder_get_output_state
+gst_video_decoder_set_estimate_rate
+gst_video_decoder_set_output_state
+gst_video_decoder_set_max_errors
+gst_video_decoder_set_packetized
+<SUBSECTION Standard>
+GST_IS_VIDEO_DECODER
+GST_IS_VIDEO_DECODER_CLASS
+GST_TYPE_VIDEO_DECODER
+GST_VIDEO_DECODER
+GST_VIDEO_DECODER_CLASS
+GST_VIDEO_DECODER_GET_CLASS
+GstVideoDecoderPrivate
+gst_video_decoder_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstvideoencoder</FILE>
+<TITLE>GstVideoEncoder</TITLE>
+GST_VIDEO_ENCODER_CAST
+GST_VIDEO_ENCODER_FLOW_DROPPED
+GST_VIDEO_ENCODER_FLOW_NEED_DATA
+GST_VIDEO_ENCODER_SINK_NAME
+GST_VIDEO_ENCODER_SINK_PAD
+GST_VIDEO_ENCODER_SRC_NAME
+GST_VIDEO_ENCODER_SRC_PAD
+GST_VIDEO_ENCODER_INPUT_SEGMENT
+GST_VIDEO_ENCODER_OUTPUT_SEGMENT
+GST_VIDEO_ENCODER_STREAM_LOCK
+GST_VIDEO_ENCODER_STREAM_UNLOCK
+GstVideoEncoder
+GstVideoEncoderClass
+gst_video_encoder_finish_frame
+gst_video_encoder_get_frame
+gst_video_encoder_get_oldest_frame
+gst_video_encoder_set_headers
+gst_video_encoder_get_latency
+gst_video_encoder_set_latency
+gst_video_encoder_get_discont
+gst_video_encoder_set_discont
+gst_video_encoder_set_output_state
+gst_video_encoder_get_output_state
+gst_video_encoder_proxy_getcaps
+<SUBSECTION Standard>
+GST_IS_VIDEO_ENCODER
+GST_IS_VIDEO_ENCODER_CLASS
+GST_TYPE_VIDEO_ENCODER
+GST_VIDEO_ENCODER
+GST_VIDEO_ENCODER_CLASS
+GST_VIDEO_ENCODER_GET_CLASS
+GstVideoEncoderPrivate
+gst_video_encoder_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstvideoutils</FILE>
+GstVideoCodecFrame
+GstVideoCodecFrameFlags
+GST_VIDEO_CODEC_FRAME_FLAGS
+GST_VIDEO_CODEC_FRAME_FLAG_IS_SET
+GST_VIDEO_CODEC_FRAME_FLAG_SET
+GST_VIDEO_CODEC_FRAME_FLAG_UNSET
+GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY
+GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME
+GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS
+GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT
+GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY
+GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME
+GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS
+GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT
+GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME
+GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS
+GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT
+gst_video_codec_frame_ref
+gst_video_codec_frame_unref
+gst_video_codec_frame_set_hook
+GstVideoCodecState
+gst_video_codec_state_ref
+gst_video_codec_state_unref
+<SUBSECTION Standard>
+GST_TYPE_VIDEO_CODEC_FRAME
+GST_TYPE_VIDEO_CODEC_STATE
+gst_video_codec_frame_get_type
+gst_video_codec_state_get_type
+</SECTION>
+
+<SECTION>
<FILE>gstdiscoverer</FILE>
<INCLUDE>gst/pbutils/pbutils.h</INCLUDE>
<SUBSECTION>
diff --git a/docs/libs/gst-plugins-base-libs.types b/docs/libs/gst-plugins-base-libs.types
index be9b53f..6ce1f36 100644
--- a/docs/libs/gst-plugins-base-libs.types
+++ b/docs/libs/gst-plugins-base-libs.types
@@ -22,16 +22,8 @@ gst_audio_base_src_get_type
#include <gst/audio/gstaudioringbuffer.h>
gst_audio_ring_buffer_get_type
-#include <gst/audio/mixer.h>
-gst_mixer_get_type
-gst_mixer_options_get_type
-gst_mixer_track_get_type
-#include <gst/interfaces/navigation.h>
+#include <gst/video/navigation.h>
gst_navigation_get_type
-#include <gst/interfaces/tuner.h>
-gst_tuner_get_type
-gst_tuner_channel_get_type
-gst_tuner_norm_get_type
#include <gst/audio/streamvolume.h>
gst_stream_volume_get_type
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 91f0935..3a365f6 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -365,10 +365,6 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()">GstAudioMixerFilterFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct" title="struct GstAudioRingBuffer">GstAudioRingBuffer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html" title="gstaudioringbuffer">gstaudioringbuffer</a>
</dt>
<dd></dd>
@@ -609,10 +605,6 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" title="gst_audio_default_registry_mixer_filter ()">gst_audio_default_registry_mixer_filter</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS" title="GST_AUDIO_DEF_RATE">GST_AUDIO_DEF_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
@@ -1746,297 +1738,149 @@
<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new" title="gst_missing_uri_source_message_new ()">gst_missing_uri_source_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-struct" title="GstMixer">GstMixer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags">GstMixerFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType">GstMixerMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct" title="struct GstMixerOptions">GstMixerOptions</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct" title="struct GstMixerTrack">GstMixerTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags" title='The "flags" property'>GstMixerTrack:flags</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index" title='The "index" property'>GstMixerTrack:index</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label" title='The "label" property'>GstMixerTrack:label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume" title='The "max-volume" property'>GstMixerTrack:max-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume" title='The "min-volume" property'>GstMixerTrack:min-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels" title='The "num-channels" property'>GstMixerTrack:num-channels</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label" title='The "untranslated-label" property'>GstMixerTrack:untranslated-label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags" title="enum GstMixerTrackFlags">GstMixerTrackFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType">GstMixerType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option" title="gst_mixer_get_option ()">gst_mixer_get_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume" title="gst_mixer_get_volume ()">gst_mixer_get_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks" title="gst_mixer_list_tracks ()">gst_mixer_list_tracks</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed" title="gst_mixer_message_parse_options_list_changed ()">gst_mixer_message_parse_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed" title="gst_mixer_message_parse_option_changed ()">gst_mixer_message_parse_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled" title="gst_mixer_message_parse_record_toggled ()">gst_mixer_message_parse_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed" title="gst_mixer_message_parse_volume_changed ()">gst_mixer_message_parse_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled" title="gst_mixer_mute_toggled ()">gst_mixer_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()">gst_mixer_options_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed" title="gst_mixer_options_list_changed ()">gst_mixer_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed" title="gst_mixer_option_changed ()">gst_mixer_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled" title="gst_mixer_record_toggled ()">gst_mixer_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute" title="gst_mixer_set_mute ()">gst_mixer_set_mute</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option" title="gst_mixer_set_option ()">gst_mixer_set_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record" title="gst_mixer_set_record ()">gst_mixer_set_record</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume" title="gst_mixer_set_volume ()">gst_mixer_set_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()">GST_MIXER_TRACK_HAS_FLAG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed" title="gst_mixer_volume_changed ()">gst_mixer_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
-</dt>
-<dd></dd>
<a name="idxN"></a><h3 class="title">N</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct" title="GstNavigation">GstNavigation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct">GstNavigation</a>, struct in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand">GstNavigationCommand</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand">GstNavigationCommand</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType">GstNavigationEventType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType">GstNavigationEventType</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface" title="struct GstNavigationInterface">GstNavigationInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface">GstNavigationInterface</a>, struct in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType">GstNavigationMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType">GstNavigationMessageType</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType">GstNavigationQueryType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType">GstNavigationQueryType</a>, enum in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_MENU">GST_NAVIGATION_COMMAND_DVD_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>, macro in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()">gst_navigation_event_parse_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command">gst_navigation_event_parse_command</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()">gst_navigation_event_parse_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event">gst_navigation_event_parse_key_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()">gst_navigation_event_parse_mouse_button_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event">gst_navigation_event_parse_mouse_button_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()">gst_navigation_event_parse_mouse_move_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event">gst_navigation_event_parse_mouse_move_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type">gst_navigation_message_get_type</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed">gst_navigation_message_new_angles_changed</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" title="gst_navigation_message_new_commands_changed ()">gst_navigation_message_new_commands_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed">gst_navigation_message_new_commands_changed</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" title="gst_navigation_message_new_mouse_over ()">gst_navigation_message_new_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over">gst_navigation_message_new_mouse_over</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" title="gst_navigation_message_parse_angles_changed ()">gst_navigation_message_parse_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed">gst_navigation_message_parse_angles_changed</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" title="gst_navigation_message_parse_mouse_over ()">gst_navigation_message_parse_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over">gst_navigation_message_parse_mouse_over</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type">gst_navigation_query_get_type</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles">gst_navigation_query_new_angles</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands">gst_navigation_query_new_commands</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles">gst_navigation_query_parse_angles</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" title="gst_navigation_query_parse_commands_length ()">gst_navigation_query_parse_commands_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length">gst_navigation_query_parse_commands_length</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" title="gst_navigation_query_parse_commands_nth ()">gst_navigation_query_parse_commands_nth</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth">gst_navigation_query_parse_commands_nth</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles" title="gst_navigation_query_set_angles ()">gst_navigation_query_set_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles">gst_navigation_query_set_angles</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands" title="gst_navigation_query_set_commands ()">gst_navigation_query_set_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands">gst_navigation_query_set_commands</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv" title="gst_navigation_query_set_commandsv ()">gst_navigation_query_set_commandsv</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv">gst_navigation_query_set_commandsv</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command" title="gst_navigation_send_command ()">gst_navigation_send_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command">gst_navigation_send_command</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event" title="gst_navigation_send_event ()">gst_navigation_send_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event">gst_navigation_send_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event" title="gst_navigation_send_key_event ()">gst_navigation_send_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event">gst_navigation_send_key_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event" title="gst_navigation_send_mouse_event ()">gst_navigation_send_mouse_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event">gst_navigation_send_mouse_event</a>, function in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html">gstnavigation</a>
</dt>
<dd></dd>
<a name="idxP"></a><h3 class="title">P</h3>
@@ -3979,193 +3823,245 @@
<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer" title="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()">gst_tag_xmp_writer_tag_list_to_xmp_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
</dt>
<dd></dd>
+<a name="idxV"></a><h3 class="title">V</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-struct" title="GstTuner">GstTuner</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite">GstVideoChromaSite</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-channel-changed" title='The "channel-changed" signal'>GstTuner::channel-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame">GstVideoCodecFrame</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed" title='The "frequency-changed" signal'>GstTuner::frequency-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrameFlags" title="enum GstVideoCodecFrameFlags">GstVideoCodecFrameFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed" title='The "norm-changed" signal'>GstTuner::norm-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState">GstVideoCodecState</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed" title='The "signal-changed" signal'>GstTuner::signal-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry">GstVideoColorimetry</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct" title="struct GstTunerChannel">GstTunerChannel</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">gsttunerchannel</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix">GstVideoColorMatrix</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed" title='The "frequency-changed" signal'>GstTunerChannel::frequency-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">gsttunerchannel</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries" title="enum GstVideoColorPrimaries">GstVideoColorPrimaries</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed" title='The "signal-changed" signal'>GstTunerChannel::signal-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">gsttunerchannel</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange" title="enum GstVideoColorRange">GstVideoColorRange</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags" title="enum GstTunerChannelFlags">GstTunerChannelFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">gsttunerchannel</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()">GstVideoConvertSampleCallback</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTunerInterface" title="struct GstTunerInterface">GstTunerInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder">GstVideoDecoder</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct" title="struct GstTunerNorm">GstTunerNorm</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttunernorm.html" title="gsttunernorm">gsttunernorm</a>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass" title="struct GstVideoDecoderClass">GstVideoDecoderClass</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-channel-changed" title="gst_tuner_channel_changed ()">gst_tuner_channel_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder">GstVideoEncoder</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS" title="GST_TUNER_CHANNEL_HAS_FLAG()">GST_TUNER_CHANNEL_HAS_FLAG</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">gsttunerchannel</a>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass" title="struct GstVideoEncoderClass">GstVideoEncoderClass</a>, struct in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-channel-by-name" title="gst_tuner_find_channel_by_name ()">gst_tuner_find_channel_by_name</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct" title="struct GstVideoFilter">GstVideoFilter</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">gstvideofilter</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-norm-by-name" title="gst_tuner_find_norm_by_name ()">gst_tuner_find_norm_by_name</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass" title="struct GstVideoFilterClass">GstVideoFilterClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">gstvideofilter</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-frequency-changed" title="gst_tuner_frequency_changed ()">gst_tuner_frequency_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFlags" title="enum GstVideoFlags">GstVideoFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-channel" title="gst_tuner_get_channel ()">gst_tuner_get_channel</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat">GstVideoFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-frequency" title="gst_tuner_get_frequency ()">gst_tuner_get_frequency</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags" title="enum GstVideoFormatFlags">GstVideoFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-norm" title="gst_tuner_get_norm ()">gst_tuner_get_norm</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo">GstVideoFormatInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels" title="gst_tuner_list_channels ()">gst_tuner_list_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack" title="GstVideoFormatPack ()">GstVideoFormatPack</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-norms" title="gst_tuner_list_norms ()">gst_tuner_list_norms</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack" title="GstVideoFormatUnpack ()">GstVideoFormatUnpack</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-norm-changed" title="gst_tuner_norm_changed ()">gst_tuner_norm_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo">GstVideoInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-channel" title="gst_tuner_set_channel ()">gst_tuner_set_channel</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode">GstVideoInterlaceMode</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency" title="gst_tuner_set_frequency ()">gst_tuner_set_frequency</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct" title="GstVideoOrientation">GstVideoOrientation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">gstvideoorientation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-norm" title="gst_tuner_set_norm ()">gst_tuner_set_norm</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface" title="struct GstVideoOrientationInterface">GstVideoOrientationInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">gstvideoorientation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-changed" title="gst_tuner_signal_changed ()">gst_tuner_signal_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay-struct" title="GstVideoOverlay">GstVideoOverlay</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">gstvideooverlay</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength" title="gst_tuner_signal_strength ()">gst_tuner_signal_strength</a>, function in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition">GstVideoOverlayComposition</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
</dt>
<dd></dd>
-<a name="idxV"></a><h3 class="title">V</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()">GstVideoConvertSampleCallback</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass" title="GstVideoOverlayCompositionClass">GstVideoOverlayCompositionClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct" title="struct GstVideoFilter">GstVideoFilter</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">gstvideofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags">GstVideoOverlayFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass" title="struct GstVideoFilterClass">GstVideoFilterClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">gstvideofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface" title="struct GstVideoOverlayInterface">GstVideoOverlayInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">gstvideooverlay</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat">GstVideoFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle">GstVideoOverlayRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct" title="GstVideoOrientation">GstVideoOrientation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">gstvideoorientation</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass" title="GstVideoOverlayRectangleClass">GstVideoOverlayRectangleClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface" title="struct GstVideoOrientationInterface">GstVideoOrientationInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">gstvideoorientation</a>
+<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle">GstVideoRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay-struct" title="GstVideoOverlay">GstVideoOverlay</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">gstvideooverlay</a>
+<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct" title="struct GstVideoSink">GstVideoSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition">GstVideoOverlayComposition</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame" title='The "show-preroll-frame" property'>GstVideoSink:show-preroll-frame</a>, object property in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass" title="GstVideoOverlayCompositionClass">GstVideoOverlayCompositionClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass" title="struct GstVideoSinkClass">GstVideoSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags">GstVideoOverlayFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction">GstVideoTransferFunction</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface" title="struct GstVideoOverlayInterface">GstVideoOverlayInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">gstvideooverlay</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()">gst_video_buffer_get_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle">GstVideoOverlayRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" title="gst_video_buffer_set_overlay_composition ()">gst_video_buffer_set_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass" title="GstVideoOverlayRectangleClass">GstVideoOverlayRectangleClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" title="gst_video_calculate_display_ratio ()">gst_video_calculate_display_ratio</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle">GstVideoRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAGS:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAGS()">GST_VIDEO_CODEC_FRAME_FLAGS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct" title="struct GstVideoSink">GstVideoSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_IS_SET()">GST_VIDEO_CODEC_FRAME_FLAG_IS_SET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame" title='The "show-preroll-frame" property'>GstVideoSink:show-preroll-frame</a>, object property in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_SET()">GST_VIDEO_CODEC_FRAME_FLAG_SET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass" title="struct GstVideoSinkClass">GstVideoSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_UNSET()">GST_VIDEO_CODEC_FRAME_FLAG_UNSET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()">gst_video_buffer_get_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY()">GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" title="gst_video_buffer_set_overlay_composition ()">gst_video_buffer_set_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" title="gst_video_calculate_display_ratio ()">gst_video_calculate_display_ratio</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-ref" title="gst_video_codec_frame_ref ()">gst_video_codec_frame_ref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY()">GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-set-hook" title="gst_video_codec_frame_set_hook ()">gst_video_codec_frame_set_hook</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-unref" title="gst_video_codec_frame_unref ()">gst_video_codec_frame_unref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-ref" title="gst_video_codec_state_ref ()">gst_video_codec_state_ref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-unref" title="gst_video_codec_state_unref ()">gst_video_codec_state_unref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">gstvideoutils</a>
</dt>
<dd></dd>
<dt>
@@ -4177,6 +4073,214 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-add-to-frame" title="gst_video_decoder_add_to_frame ()">gst_video_decoder_add_to_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-buffer" title="gst_video_decoder_alloc_output_buffer ()">gst_video_decoder_alloc_output_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-frame" title="gst_video_decoder_alloc_output_frame ()">gst_video_decoder_alloc_output_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-drop-frame" title="gst_video_decoder_drop_frame ()">gst_video_decoder_drop_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-ERROR:CAPS" title="GST_VIDEO_DECODER_ERROR()">GST_VIDEO_DECODER_ERROR</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()">gst_video_decoder_finish_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS" title="GST_VIDEO_DECODER_FLOW_NEED_DATA">GST_VIDEO_DECODER_FLOW_NEED_DATA</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-estimate-rate" title="gst_video_decoder_get_estimate_rate ()">gst_video_decoder_get_estimate_rate</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frame" title="gst_video_decoder_get_frame ()">gst_video_decoder_get_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-latency" title="gst_video_decoder_get_latency ()">gst_video_decoder_get_latency</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-decode-time" title="gst_video_decoder_get_max_decode_time ()">gst_video_decoder_get_max_decode_time</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-errors" title="gst_video_decoder_get_max_errors ()">gst_video_decoder_get_max_errors</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-oldest-frame" title="gst_video_decoder_get_oldest_frame ()">gst_video_decoder_get_oldest_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-output-state" title="gst_video_decoder_get_output_state ()">gst_video_decoder_get_output_state</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-packetized" title="gst_video_decoder_get_packetized ()">gst_video_decoder_get_packetized</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-have-frame" title="gst_video_decoder_have_frame ()">gst_video_decoder_have_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-INPUT-SEGMENT:CAPS" title="GST_VIDEO_DECODER_INPUT_SEGMENT()">GST_VIDEO_DECODER_INPUT_SEGMENT</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-MAX-ERRORS:CAPS" title="GST_VIDEO_DECODER_MAX_ERRORS">GST_VIDEO_DECODER_MAX_ERRORS</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-OUTPUT-SEGMENT:CAPS" title="GST_VIDEO_DECODER_OUTPUT_SEGMENT()">GST_VIDEO_DECODER_OUTPUT_SEGMENT</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-estimate-rate" title="gst_video_decoder_set_estimate_rate ()">gst_video_decoder_set_estimate_rate</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-latency" title="gst_video_decoder_set_latency ()">gst_video_decoder_set_latency</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-max-errors" title="gst_video_decoder_set_max_errors ()">gst_video_decoder_set_max_errors</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state" title="gst_video_decoder_set_output_state ()">gst_video_decoder_set_output_state</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-packetized" title="gst_video_decoder_set_packetized ()">gst_video_decoder_set_packetized</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-NAME:CAPS" title="GST_VIDEO_DECODER_SINK_NAME">GST_VIDEO_DECODER_SINK_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-PAD:CAPS" title="GST_VIDEO_DECODER_SINK_PAD()">GST_VIDEO_DECODER_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-NAME:CAPS" title="GST_VIDEO_DECODER_SRC_NAME">GST_VIDEO_DECODER_SRC_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-PAD:CAPS" title="GST_VIDEO_DECODER_SRC_PAD()">GST_VIDEO_DECODER_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-LOCK:CAPS" title="GST_VIDEO_DECODER_STREAM_LOCK()">GST_VIDEO_DECODER_STREAM_LOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-UNLOCK:CAPS" title="GST_VIDEO_DECODER_STREAM_UNLOCK()">GST_VIDEO_DECODER_STREAM_UNLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">GstVideoDecoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-CAST:CAPS" title="GST_VIDEO_ENCODER_CAST()">GST_VIDEO_ENCODER_CAST</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()">gst_video_encoder_finish_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS" title="GST_VIDEO_ENCODER_FLOW_DROPPED">GST_VIDEO_ENCODER_FLOW_DROPPED</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS" title="GST_VIDEO_ENCODER_FLOW_NEED_DATA">GST_VIDEO_ENCODER_FLOW_NEED_DATA</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-discont" title="gst_video_encoder_get_discont ()">gst_video_encoder_get_discont</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-frame" title="gst_video_encoder_get_frame ()">gst_video_encoder_get_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-latency" title="gst_video_encoder_get_latency ()">gst_video_encoder_get_latency</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-oldest-frame" title="gst_video_encoder_get_oldest_frame ()">gst_video_encoder_get_oldest_frame</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-output-state" title="gst_video_encoder_get_output_state ()">gst_video_encoder_get_output_state</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS" title="GST_VIDEO_ENCODER_INPUT_SEGMENT()">GST_VIDEO_ENCODER_INPUT_SEGMENT</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS" title="GST_VIDEO_ENCODER_OUTPUT_SEGMENT()">GST_VIDEO_ENCODER_OUTPUT_SEGMENT</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-proxy-getcaps" title="gst_video_encoder_proxy_getcaps ()">gst_video_encoder_proxy_getcaps</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-discont" title="gst_video_encoder_set_discont ()">gst_video_encoder_set_discont</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-headers" title="gst_video_encoder_set_headers ()">gst_video_encoder_set_headers</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-latency" title="gst_video_encoder_set_latency ()">gst_video_encoder_set_latency</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()">gst_video_encoder_set_output_state</a>, function in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-NAME:CAPS" title="GST_VIDEO_ENCODER_SINK_NAME">GST_VIDEO_ENCODER_SINK_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-PAD:CAPS" title="GST_VIDEO_ENCODER_SINK_PAD()">GST_VIDEO_ENCODER_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-NAME:CAPS" title="GST_VIDEO_ENCODER_SRC_NAME">GST_VIDEO_ENCODER_SRC_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-PAD:CAPS" title="GST_VIDEO_ENCODER_SRC_PAD()">GST_VIDEO_ENCODER_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-LOCK:CAPS" title="GST_VIDEO_ENCODER_STREAM_LOCK()">GST_VIDEO_ENCODER_STREAM_LOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS" title="GST_VIDEO_ENCODER_STREAM_UNLOCK()">GST_VIDEO_ENCODER_STREAM_UNLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" title="gst_video_event_is_force_key_unit ()">gst_video_event_is_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
@@ -4209,6 +4313,106 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-BITS:CAPS" title="GST_VIDEO_FORMAT_INFO_BITS()">GST_VIDEO_FORMAT_INFO_BITS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DATA:CAPS" title="GST_VIDEO_FORMAT_INFO_DATA()">GST_VIDEO_FORMAT_INFO_DATA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DEPTH:CAPS" title="GST_VIDEO_FORMAT_INFO_DEPTH()">GST_VIDEO_FORMAT_INFO_DEPTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FLAGS:CAPS" title="GST_VIDEO_FORMAT_INFO_FLAGS()">GST_VIDEO_FORMAT_INFO_FLAGS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FORMAT:CAPS" title="GST_VIDEO_FORMAT_INFO_FORMAT()">GST_VIDEO_FORMAT_INFO_FORMAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-ALPHA:CAPS" title="GST_VIDEO_FORMAT_INFO_HAS_ALPHA()">GST_VIDEO_FORMAT_INFO_HAS_ALPHA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-PALETTE:CAPS" title="GST_VIDEO_FORMAT_INFO_HAS_PALETTE()">GST_VIDEO_FORMAT_INFO_HAS_PALETTE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-H-SUB:CAPS" title="GST_VIDEO_FORMAT_INFO_H_SUB()">GST_VIDEO_FORMAT_INFO_H_SUB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-COMPLEX:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_COMPLEX()">GST_VIDEO_FORMAT_INFO_IS_COMPLEX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-GRAY:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_GRAY()">GST_VIDEO_FORMAT_INFO_IS_GRAY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-LE:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_LE()">GST_VIDEO_FORMAT_INFO_IS_LE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-RGB:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_RGB()">GST_VIDEO_FORMAT_INFO_IS_RGB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-YUV:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_YUV()">GST_VIDEO_FORMAT_INFO_IS_YUV</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-NAME:CAPS" title="GST_VIDEO_FORMAT_INFO_NAME()">GST_VIDEO_FORMAT_INFO_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-COMPONENTS:CAPS" title="GST_VIDEO_FORMAT_INFO_N_COMPONENTS()">GST_VIDEO_FORMAT_INFO_N_COMPONENTS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-PLANES:CAPS" title="GST_VIDEO_FORMAT_INFO_N_PLANES()">GST_VIDEO_FORMAT_INFO_N_PLANES</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-OFFSET:CAPS" title="GST_VIDEO_FORMAT_INFO_OFFSET()">GST_VIDEO_FORMAT_INFO_OFFSET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PLANE:CAPS" title="GST_VIDEO_FORMAT_INFO_PLANE()">GST_VIDEO_FORMAT_INFO_PLANE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-POFFSET:CAPS" title="GST_VIDEO_FORMAT_INFO_POFFSET()">GST_VIDEO_FORMAT_INFO_POFFSET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PSTRIDE:CAPS" title="GST_VIDEO_FORMAT_INFO_PSTRIDE()">GST_VIDEO_FORMAT_INFO_PSTRIDE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-HEIGHT:CAPS" title="GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT()">GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-WIDTH:CAPS" title="GST_VIDEO_FORMAT_INFO_SCALE_WIDTH()">GST_VIDEO_FORMAT_INFO_SCALE_WIDTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SHIFT:CAPS" title="GST_VIDEO_FORMAT_INFO_SHIFT()">GST_VIDEO_FORMAT_INFO_SHIFT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-STRIDE:CAPS" title="GST_VIDEO_FORMAT_INFO_STRIDE()">GST_VIDEO_FORMAT_INFO_STRIDE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-W-SUB:CAPS" title="GST_VIDEO_FORMAT_INFO_W_SUB()">GST_VIDEO_FORMAT_INFO_W_SUB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" title="gst_video_format_to_fourcc ()">gst_video_format_to_fourcc</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
@@ -4217,6 +4421,162 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DATA:CAPS" title="GST_VIDEO_INFO_COMP_DATA()">GST_VIDEO_INFO_COMP_DATA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DEPTH:CAPS" title="GST_VIDEO_INFO_COMP_DEPTH()">GST_VIDEO_INFO_COMP_DEPTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-HEIGHT:CAPS" title="GST_VIDEO_INFO_COMP_HEIGHT()">GST_VIDEO_INFO_COMP_HEIGHT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-OFFSET:CAPS" title="GST_VIDEO_INFO_COMP_OFFSET()">GST_VIDEO_INFO_COMP_OFFSET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PLANE:CAPS" title="GST_VIDEO_INFO_COMP_PLANE()">GST_VIDEO_INFO_COMP_PLANE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-POFFSET:CAPS" title="GST_VIDEO_INFO_COMP_POFFSET()">GST_VIDEO_INFO_COMP_POFFSET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PSTRIDE:CAPS" title="GST_VIDEO_INFO_COMP_PSTRIDE()">GST_VIDEO_INFO_COMP_PSTRIDE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-STRIDE:CAPS" title="GST_VIDEO_INFO_COMP_STRIDE()">GST_VIDEO_INFO_COMP_STRIDE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-WIDTH:CAPS" title="GST_VIDEO_INFO_COMP_WIDTH()">GST_VIDEO_INFO_COMP_WIDTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-convert" title="gst_video_info_convert ()">gst_video_info_convert</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAGS:CAPS" title="GST_VIDEO_INFO_FLAGS()">GST_VIDEO_INFO_FLAGS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-IS-SET:CAPS" title="GST_VIDEO_INFO_FLAG_IS_SET()">GST_VIDEO_INFO_FLAG_IS_SET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-SET:CAPS" title="GST_VIDEO_INFO_FLAG_SET()">GST_VIDEO_INFO_FLAG_SET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-UNSET:CAPS" title="GST_VIDEO_INFO_FLAG_UNSET()">GST_VIDEO_INFO_FLAG_UNSET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS" title="GST_VIDEO_INFO_FORMAT()">GST_VIDEO_INFO_FORMAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-D:CAPS" title="GST_VIDEO_INFO_FPS_D()">GST_VIDEO_INFO_FPS_D</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-N:CAPS" title="GST_VIDEO_INFO_FPS_N()">GST_VIDEO_INFO_FPS_N</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-from-caps" title="gst_video_info_from_caps ()">gst_video_info_from_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HAS-ALPHA:CAPS" title="GST_VIDEO_INFO_HAS_ALPHA()">GST_VIDEO_INFO_HAS_ALPHA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HEIGHT:CAPS" title="GST_VIDEO_INFO_HEIGHT()">GST_VIDEO_INFO_HEIGHT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-init" title="gst_video_info_init ()">gst_video_info_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-INTERLACE-MODE:CAPS" title="GST_VIDEO_INFO_INTERLACE_MODE()">GST_VIDEO_INFO_INTERLACE_MODE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-GRAY:CAPS" title="GST_VIDEO_INFO_IS_GRAY()">GST_VIDEO_INFO_IS_GRAY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-INTERLACED:CAPS" title="GST_VIDEO_INFO_IS_INTERLACED()">GST_VIDEO_INFO_IS_INTERLACED</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-RGB:CAPS" title="GST_VIDEO_INFO_IS_RGB()">GST_VIDEO_INFO_IS_RGB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-YUV:CAPS" title="GST_VIDEO_INFO_IS_YUV()">GST_VIDEO_INFO_IS_YUV</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-NAME:CAPS" title="GST_VIDEO_INFO_NAME()">GST_VIDEO_INFO_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-COMPONENTS:CAPS" title="GST_VIDEO_INFO_N_COMPONENTS()">GST_VIDEO_INFO_N_COMPONENTS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-PLANES:CAPS" title="GST_VIDEO_INFO_N_PLANES()">GST_VIDEO_INFO_N_PLANES</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-D:CAPS" title="GST_VIDEO_INFO_PAR_D()">GST_VIDEO_INFO_PAR_D</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-N:CAPS" title="GST_VIDEO_INFO_PAR_N()">GST_VIDEO_INFO_PAR_N</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-OFFSET:CAPS" title="GST_VIDEO_INFO_PLANE_OFFSET()">GST_VIDEO_INFO_PLANE_OFFSET</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-STRIDE:CAPS" title="GST_VIDEO_INFO_PLANE_STRIDE()">GST_VIDEO_INFO_PLANE_STRIDE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-set-format" title="gst_video_info_set_format ()">gst_video_info_set_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-SIZE:CAPS" title="GST_VIDEO_INFO_SIZE()">GST_VIDEO_INFO_SIZE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-to-caps" title="gst_video_info_to_caps ()">gst_video_info_to_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-WIDTH:CAPS" title="GST_VIDEO_INFO_WIDTH()">GST_VIDEO_INFO_WIDTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS" title="GST_VIDEO_MAX_COMPONENTS">GST_VIDEO_MAX_COMPONENTS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS" title="GST_VIDEO_MAX_PLANES">GST_VIDEO_MAX_PLANES</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-hcenter" title="gst_video_orientation_get_hcenter ()">gst_video_orientation_get_hcenter</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">gstvideoorientation</a>
</dt>
<dd></dd>
@@ -4377,6 +4737,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SUB-SCALE:CAPS" title="GST_VIDEO_SUB_SCALE()">GST_VIDEO_SUB_SCALE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add" title="gst_vorbis_tag_add ()">gst_vorbis_tag_add</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">gsttagvorbis</a>
</dt>
<dd></dd>
diff --git a/docs/libs/html/compiling.html b/docs/libs/html/compiling.html
index 2f4416a..746ec97 100644
--- a/docs/libs/html/compiling.html
+++ b/docs/libs/html/compiling.html
@@ -31,7 +31,7 @@ How to compile against the base plugins libraries
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6507152"></a><h2>Compiling against the base plugins libraries</h2>
+<a name="idp8230528"></a><h2>Compiling against the base plugins libraries</h2>
<p>
To compile against these libraries, you need to tell the compiler where to
find the header files and libraries. This is done with the
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
new file mode 100644
index 0000000..d5e042a
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
@@ -0,0 +1,1089 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstVideoDecoder</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">
+<link rel="next" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">
+<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gstvideooverlay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-video.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 Base Plugins 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstVideoEncoder.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-base-libs-GstVideoDecoder.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#gst-plugins-base-libs-GstVideoDecoder.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstVideoDecoder"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoDecoder.top_of_page"></a>GstVideoDecoder</span></h2>
+<p>GstVideoDecoder — Base class for video decoders</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-GstVideoDecoder.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-ERROR:CAPS" title="GST_VIDEO_DECODER_ERROR()">GST_VIDEO_DECODER_ERROR</a> (el,
+ w,
+ domain,
+ code,
+ text,
+ debug,
+ ret)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS" title="GST_VIDEO_DECODER_FLOW_NEED_DATA">GST_VIDEO_DECODER_FLOW_NEED_DATA</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-MAX-ERRORS:CAPS" title="GST_VIDEO_DECODER_MAX_ERRORS">GST_VIDEO_DECODER_MAX_ERRORS</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-NAME:CAPS" title="GST_VIDEO_DECODER_SINK_NAME">GST_VIDEO_DECODER_SINK_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-PAD:CAPS" title="GST_VIDEO_DECODER_SINK_PAD()">GST_VIDEO_DECODER_SINK_PAD</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-NAME:CAPS" title="GST_VIDEO_DECODER_SRC_NAME">GST_VIDEO_DECODER_SRC_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-PAD:CAPS" title="GST_VIDEO_DECODER_SRC_PAD()">GST_VIDEO_DECODER_SRC_PAD</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-LOCK:CAPS" title="GST_VIDEO_DECODER_STREAM_LOCK()">GST_VIDEO_DECODER_STREAM_LOCK</a> (decoder)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-UNLOCK:CAPS" title="GST_VIDEO_DECODER_STREAM_UNLOCK()">GST_VIDEO_DECODER_STREAM_UNLOCK</a> (decoder)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-INPUT-SEGMENT:CAPS" title="GST_VIDEO_DECODER_INPUT_SEGMENT()">GST_VIDEO_DECODER_INPUT_SEGMENT</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-OUTPUT-SEGMENT:CAPS" title="GST_VIDEO_DECODER_OUTPUT_SEGMENT()">GST_VIDEO_DECODER_OUTPUT_SEGMENT</a> (obj)
+struct <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder">GstVideoDecoder</a>;
+struct <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass" title="struct GstVideoDecoderClass">GstVideoDecoderClass</a>;
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-add-to-frame" title="gst_video_decoder_add_to_frame ()">gst_video_decoder_add_to_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><span class="type">int</span> n_bytes</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-buffer" title="gst_video_decoder_alloc_output_buffer ()">gst_video_decoder_alloc_output_buffer</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-frame" title="gst_video_decoder_alloc_output_frame ()">gst_video_decoder_alloc_output_frame</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-drop-frame" title="gst_video_decoder_drop_frame ()">gst_video_decoder_drop_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()">gst_video_decoder_finish_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frame" title="gst_video_decoder_get_frame ()">gst_video_decoder_get_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-decode-time" title="gst_video_decoder_get_max_decode_time ()">gst_video_decoder_get_max_decode_time</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-errors" title="gst_video_decoder_get_max_errors ()">gst_video_decoder_get_max_errors</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-oldest-frame" title="gst_video_decoder_get_oldest_frame ()">gst_video_decoder_get_oldest_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</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-base-libs-GstVideoDecoder.html#gst-video-decoder-get-packetized" title="gst_video_decoder_get_packetized ()">gst_video_decoder_get_packetized</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-have-frame" title="gst_video_decoder_have_frame ()">gst_video_decoder_have_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-latency" title="gst_video_decoder_get_latency ()">gst_video_decoder_get_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-latency" title="gst_video_decoder_set_latency ()">gst_video_decoder_set_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-estimate-rate" title="gst_video_decoder_get_estimate_rate ()">gst_video_decoder_get_estimate_rate</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-output-state" title="gst_video_decoder_get_output_state ()">gst_video_decoder_get_output_state</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-estimate-rate" title="gst_video_decoder_set_estimate_rate ()">gst_video_decoder_set_estimate_rate</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state" title="gst_video_decoder_set_output_state ()">gst_video_decoder_set_output_state</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> fmt</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-max-errors" title="gst_video_decoder_set_max_errors ()">gst_video_decoder_set_max_errors</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-packetized" title="gst_video_decoder_set_packetized ()">gst_video_decoder_set_packetized</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> packetized</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDecoder.description"></a><h2>Description</h2>
+<p>
+This base class is for video decoders turning encoded data into raw video
+frames.
+</p>
+<p>
+GstVideoDecoder and subclass should cooperate as follows.
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Configuration</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Initially, GstVideoDecoder calls <em class="parameter"><code>start</code></em> when the decoder element
+ is activated, which allows subclass to perform any global setup.
+ </p></li>
+<li class="listitem"><p>
+ GstVideoDecoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of caps
+ describing input video data that it is about to receive, including
+ possibly configuration data.
+ While unlikely, it might be called more than once, if changing input
+ parameters require reconfiguration.
+ </p></li>
+<li class="listitem"><p>
+ GstVideoDecoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Data processing</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Base class gathers input data, and optionally allows subclass
+ to parse this into subsequently manageable chunks, typically
+ corresponding to and referred to as 'frames'.
+ </p></li>
+<li class="listitem"><p>
+ Input frame is provided to subclass' <em class="parameter"><code>handle_frame</code></em>. The ownership of
+ the frame is given to <em class="parameter"><code>handle_frame</code></em>.
+ </p></li>
+<li class="listitem"><p>
+ If codec processing results in decoded data, subclass should call
+ <em class="parameter"><code>gst_video_decoder_finish_frame</code></em> to have decoded data pushed.
+ downstream.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Shutdown phase</b></p>
+<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+ GstVideoDecoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
+ parsing will be stopped.
+ </p></li></ul>
+</div></li>
+</ol></div>
+<p>
+</p>
+<p>
+Subclass is responsible for providing pad template caps for
+source and sink pads. The pads need to be named "sink" and "src". It also
+needs to set the fixed caps on srcpad, when the format is ensured. This
+is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em> function, though
+it might be delayed until calling <em class="parameter"><code>gst_video_decoder_finish_frame</code></em>.
+</p>
+<p>
+Subclass is also responsible for providing (presentation) timestamps
+(likely based on corresponding input ones). If that is not applicable
+or possible, baseclass provides limited framerate based interpolation.
+</p>
+<p>
+Similarly, the baseclass provides some limited (legacy) seeking support
+(upon explicit subclass request), as full-fledged support
+should rather be left to upstream demuxer, parser or alike. This simple
+approach caters for seeking and duration reporting using estimated input
+bitrates.
+</p>
+<p>
+Baseclass provides some support for reverse playback, in particular
+in case incoming data is not packetized or upstream does not provide
+fragments on keyframe boundaries. However, subclass should then be prepared
+for the parsing and frame processing stage to occur separately (rather
+than otherwise the latter immediately following the former),
+and should ensure the parsing stage properly marks keyframes or rely on
+upstream to do so properly for incoming data.
+</p>
+<p>
+Things that subclass need to take care of:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>Provide pad templates</p></li>
+<li class="listitem"><p>
+ Set source pad caps when appropriate
+ </p></li>
+<li class="listitem"><p>
+ Configure some baseclass behaviour parameters.
+ </p></li>
+<li class="listitem"><p>
+ Optionally parse input data, if it is not considered packetized.
+ Data will be provided to <em class="parameter"><code>parse</code></em> which should invoke <em class="parameter"><code>gst_video_decoder_add_to_frame</code></em> and
+ <em class="parameter"><code>gst_video_decoder_have_frame</code></em> as appropriate.
+ </p></li>
+<li class="listitem"><p>
+ Accept data in <em class="parameter"><code>handle_frame</code></em> and provide decoded results to
+ <em class="parameter"><code>gst_video_decoder_finish_frame</code></em>.
+ </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoDecoder.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-ERROR:CAPS"></a><h3>GST_VIDEO_DECODER_ERROR()</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_ERROR(el, w, domain, code, text, debug, ret)</pre>
+<p>
+Utility function that video decoder elements can use in case they encountered
+a data processing error that may be fatal for the current "data unit" but
+need not prevent subsequent decoding. Such errors are counted and if there
+are too many, as configured in the context's max_errors, the pipeline will
+post an error message and the application will be requested to stop further
+media processing. Otherwise, it is considered a "glitch" and only a warning
+is logged. In either case, <em class="parameter"><code>ret</code></em> is set to the proper value to
+return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
+<td>the base video decoder element that generates the error</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>weight</code></em> :</span></p></td>
+<td>element defined weight of the error, added to error count</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
+<td>like CORE, LIBRARY, RESOURCE or STREAM (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html"><span class="type">gstreamer-GstGError</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
+<td>error code defined for that domain (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html"><span class="type">gstreamer-GstGError</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the message to display (format string and args enclosed in
+parentheses)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>debug</code></em> :</span></p></td>
+<td>debugging information for the message (format string and args
+enclosed in parentheses)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>variable to receive return value</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS"></a><h3>GST_VIDEO_DECODER_FLOW_NEED_DATA</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
+</pre>
+<p>
+Returned while parsing to indicate more data is needed.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-MAX-ERRORS:CAPS"></a><h3>GST_VIDEO_DECODER_MAX_ERRORS</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_MAX_ERRORS 10
+</pre>
+<p>
+Default maximum number of errors tolerated before signaling error.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-SINK-NAME:CAPS"></a><h3>GST_VIDEO_DECODER_SINK_NAME</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_SINK_NAME "sink"
+</pre>
+<p>
+The name of the templates for the sink pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-SINK-PAD:CAPS"></a><h3>GST_VIDEO_DECODER_SINK_PAD()</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_SINK_PAD(obj) (((GstVideoDecoder *) (obj))-&gt;sinkpad)
+</pre>
+<p>
+Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-SRC-NAME:CAPS"></a><h3>GST_VIDEO_DECODER_SRC_NAME</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_SRC_NAME "src"
+</pre>
+<p>
+The name of the templates for the source pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-SRC-PAD:CAPS"></a><h3>GST_VIDEO_DECODER_SRC_PAD()</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_SRC_PAD(obj) (((GstVideoDecoder *) (obj))-&gt;srcpad)
+</pre>
+<p>
+Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-STREAM-LOCK:CAPS"></a><h3>GST_VIDEO_DECODER_STREAM_LOCK()</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_STREAM_LOCK(decoder) g_rec_mutex_lock (&amp;GST_VIDEO_DECODER (decoder)-&gt;stream_lock)
+</pre>
+<p>
+Obtain a lock to protect the decoder function from concurrent access.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>video decoder instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-STREAM-UNLOCK:CAPS"></a><h3>GST_VIDEO_DECODER_STREAM_UNLOCK()</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_STREAM_UNLOCK(decoder) g_rec_mutex_unlock (&amp;GST_VIDEO_DECODER (decoder)-&gt;stream_lock)
+</pre>
+<p>
+Release the lock that protects the decoder function from concurrent access.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>video decoder instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-INPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_DECODER_INPUT_SEGMENT()</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_INPUT_SEGMENT(obj) (GST_VIDEO_DECODER_CAST (obj)-&gt;input_segment)
+</pre>
+<p>
+Gives the segment of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base decoder instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-DECODER-OUTPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_DECODER_OUTPUT_SEGMENT()</h3>
+<pre class="programlisting">#define GST_VIDEO_DECODER_OUTPUT_SEGMENT(obj) (GST_VIDEO_DECODER_CAST (obj)-&gt;output_segment)
+</pre>
+<p>
+Gives the segment of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base decoder instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoDecoder"></a><h3>struct GstVideoDecoder</h3>
+<pre class="programlisting">struct GstVideoDecoder {
+};
+</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> data structure.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoDecoderClass"></a><h3>struct GstVideoDecoderClass</h3>
+<pre class="programlisting">struct GstVideoDecoderClass {
+ gboolean (*open) (GstVideoDecoder *decoder);
+
+ gboolean (*close) (GstVideoDecoder *decoder);
+
+ gboolean (*start) (GstVideoDecoder *decoder);
+
+ gboolean (*stop) (GstVideoDecoder *decoder);
+
+ GstFlowReturn (*parse) (GstVideoDecoder *decoder,
+ GstVideoCodecFrame *frame,
+ GstAdapter *adapter,
+ gboolean at_eos);
+
+ gboolean (*set_format) (GstVideoDecoder *decoder,
+ GstVideoCodecState * state);
+
+ gboolean (*reset) (GstVideoDecoder *decoder,
+ gboolean hard);
+
+ GstFlowReturn (*finish) (GstVideoDecoder *decoder);
+
+ GstFlowReturn (*handle_frame) (GstVideoDecoder *decoder,
+ GstVideoCodecFrame *frame);
+
+ gboolean (*sink_event) (GstVideoDecoder *decoder,
+ GstEvent *event);
+
+ gboolean (*src_event) (GstVideoDecoder *decoder,
+ GstEvent *event);
+
+ gboolean (*decide_allocation) (GstVideoDecoder *decoder, GstQuery *query);
+};
+</pre>
+<p>
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum <em class="parameter"><code>handle_frame</code></em> needs to be overridden, and <em class="parameter"><code>set_format</code></em>
+and likely as well. If non-packetized input is supported or expected,
+<em class="parameter"><code>parse</code></em> needs to be overridden as well.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.open"></a>open</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element changes to GST_STATE_READY.
+Allows opening external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.close"></a>close</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element changes to GST_STATE_NULL.
+Allows closing external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.start"></a>start</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element starts processing.
+Allows opening external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.stop"></a>stop</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element stops processing.
+Allows closing external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.parse"></a>parse</code></em> ()</span></p></td>
+<td>Required for non-packetized input.
+Allows chopping incoming data into manageable units (frames)
+for subsequent decoding.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.set-format"></a>set_format</code></em> ()</span></p></td>
+<td>Notifies subclass of incoming data format (caps).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.reset"></a>reset</code></em> ()</span></p></td>
+<td>Optional.
+Allows subclass (decoder) to perform post-seek semantics reset.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.finish"></a>finish</code></em> ()</span></p></td>
+<td>Optional.
+Called to request subclass to dispatch any pending remaining
+data (e.g. at EOS).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Provides input data frame to subclass.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.sink-event"></a>sink_event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the sink pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.src-event"></a>src_event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the source pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoDecoderClass.decide-allocation"></a>decide_allocation</code></em> ()</span></p></td>
+<td>Optional.
+Setup the allocation parameters for allocating output
+buffers. The passed in query contains the result of the
+downstream allocation query.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-add-to-frame"></a><h3>gst_video_decoder_add_to_frame ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_decoder_add_to_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><span class="type">int</span> n_bytes</code></em>);</pre>
+<p>
+Removes next <em class="parameter"><code>n_bytes</code></em> of input data and adds it to currently parsed frame.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_bytes</code></em> :</span></p></td>
+<td>an encoded <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-alloc-output-buffer"></a><h3>gst_video_decoder_alloc_output_buffer ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_video_decoder_alloc_output_buffer
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
+<p>
+Helper function that uses <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-alloc-buffer-and-set-caps"><code class="function">gst_pad_alloc_buffer_and_set_caps()</code></a></code></em>
+to allocate a buffer to hold a video frame for <em class="parameter"><code>decoder</code></em>'s
+current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>allocated buffer. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-alloc-output-frame"></a><h3>gst_video_decoder_alloc_output_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_video_decoder_alloc_output_frame
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
+<p>
+Helper function that uses <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-alloc-buffer-and-set-caps"><code class="function">gst_pad_alloc_buffer_and_set_caps()</code></a></code></em>
+to allocate a buffer to hold a video frame for <em class="parameter"><code>decoder</code></em>'s
+current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>. Subclass should already have configured video state
+and set src pad caps.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>result from pad alloc call</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-drop-frame"></a><h3>gst_video_decoder_drop_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_video_decoder_drop_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
+<p>
+Similar to <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()"><code class="function">gst_video_decoder_finish_frame()</code></a>, but drops <em class="parameter"><code>frame</code></em> in any
+case and posts a QoS message with the frame's details on the bus.
+In any case, the frame is considered finished and released.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> to drop. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>, usually GST_FLOW_OK.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-finish-frame"></a><h3>gst_video_decoder_finish_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_video_decoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
+<p>
+<em class="parameter"><code>frame</code></em> should have a valid decoded data buffer, whose metadata fields
+are then appropriately set according to frame data and pushed downstream.
+If no output data is provided, <em class="parameter"><code>frame</code></em> is considered skipped.
+In any case, the frame is considered finished and released.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a decoded <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-frame"></a><h3>gst_video_decoder_get_frame ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * gst_video_decoder_get_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
+<p>
+Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame_number</code></em> :</span></p></td>
+<td>system_frame_number of a frame</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-max-decode-time"></a><h3>gst_video_decoder_get_max_decode_time ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a> gst_video_decoder_get_max_decode_time
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
+<p>
+Determines maximum possible decoding time for <em class="parameter"><code>frame</code></em> that will
+allow it to decode and arrive in time (as determined by QoS events).
+In particular, a negative result means decoding in time is no longer possible
+and should therefore occur as soon/skippy as possible.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>max decoding time.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-max-errors"></a><h3>gst_video_decoder_get_max_errors ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_video_decoder_get_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured decoder tolerated error count.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-oldest-frame"></a><h3>gst_video_decoder_get_oldest_frame ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * gst_video_decoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
+<p>
+Get the oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-packetized"></a><h3>gst_video_decoder_get_packetized ()</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_video_decoder_get_packetized (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
+<p>
+Queries whether input data is considered packetized or not by the
+base class.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if input data is considered packetized.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-have-frame"></a><h3>gst_video_decoder_have_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_video_decoder_have_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
+<p>
+Gathers all data collected for currently parsed frame, gathers corresponding
+metadata and passes it along for further processing, i.e. <em class="parameter"><code>handle_frame</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-latency"></a><h3>gst_video_decoder_get_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_decoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min_latency</code></em> :</span></p></td>
+<td>the configured minimum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max_latency</code></em> :</span></p></td>
+<td>the configured maximum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the configured encoding latency.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-set-latency"></a><h3>gst_video_decoder_set_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_decoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
+<p>
+Informs baseclass of encoding latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min_latency</code></em> :</span></p></td>
+<td>minimum latency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max_latency</code></em> :</span></p></td>
+<td>maximum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-estimate-rate"></a><h3>gst_video_decoder_get_estimate_rate ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_video_decoder_get_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured byte to time conversion setting</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-get-output-state"></a><h3>gst_video_decoder_get_output_state ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * gst_video_decoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
+<p>
+Get the <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> currently describing the output stream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-set-estimate-rate"></a><h3>gst_video_decoder_set_estimate_rate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_decoder_set_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Allows baseclass to perform byte to time estimated conversion.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>whether to enable byte to time conversion</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-set-output-state"></a><h3>gst_video_decoder_set_output_state ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * gst_video_decoder_set_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> fmt</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> with the specified <em class="parameter"><code>fmt</code></em>, <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em>
+as the output state for the decoder.
+Any previously set output state on <em class="parameter"><code>decoder</code></em> will be replaced by the newly
+created one.
+</p>
+<p>
+If the subclass wishes to copy over existing fields (like pixel aspec ratio,
+or framerate) from an existing <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>, it can be provided as a
+<em class="parameter"><code>reference</code></em>.
+</p>
+<p>
+If the subclass wishes to override some fields from the output state (like
+pixel-aspect-ratio or framerate) it can do so on the returned <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
+</p>
+<p>
+The new output state will only take effect (set on pads and buffers) starting
+from the next call to #<a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()"><code class="function">gst_video_decoder_finish_frame()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fmt</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>The width in pixels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
+<td>The height in pixels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reference</code></em> :</span></p></td>
+<td>An optional reference <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the newly configured output state. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-set-max-errors"></a><h3>gst_video_decoder_set_max_errors ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_decoder_set_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets numbers of tolerated decoder errors, where a tolerated one is then only
+warned about, but more than tolerated will lead to fatal error. Default
+is set to GST_VIDEO_DECODER_MAX_ERRORS.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>max tolerated errors</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-decoder-set-packetized"></a><h3>gst_video_decoder_set_packetized ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_decoder_set_packetized (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> packetized</code></em>);</pre>
+<p>
+Allows baseclass to consider input data as packetized or not. If the
+input is packetized, then the <em class="parameter"><code>parse</code></em> method will not be called.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>decoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>packetized</code></em> :</span></p></td>
+<td>whether the input data should be considered as packetized.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
new file mode 100644
index 0000000..f318d75
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
@@ -0,0 +1,758 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GstVideoEncoder</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">
+<link rel="next" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">
+<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-GstVideoDecoder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-video.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 Base Plugins 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideoutils.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-base-libs-GstVideoEncoder.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#gst-plugins-base-libs-GstVideoEncoder.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-GstVideoEncoder"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoEncoder.top_of_page"></a>GstVideoEncoder</span></h2>
+<p>GstVideoEncoder — Base class for video encoders</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-GstVideoEncoder.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-CAST:CAPS" title="GST_VIDEO_ENCODER_CAST()">GST_VIDEO_ENCODER_CAST</a> (enc)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS" title="GST_VIDEO_ENCODER_FLOW_DROPPED">GST_VIDEO_ENCODER_FLOW_DROPPED</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS" title="GST_VIDEO_ENCODER_FLOW_NEED_DATA">GST_VIDEO_ENCODER_FLOW_NEED_DATA</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-NAME:CAPS" title="GST_VIDEO_ENCODER_SINK_NAME">GST_VIDEO_ENCODER_SINK_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-PAD:CAPS" title="GST_VIDEO_ENCODER_SINK_PAD()">GST_VIDEO_ENCODER_SINK_PAD</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-NAME:CAPS" title="GST_VIDEO_ENCODER_SRC_NAME">GST_VIDEO_ENCODER_SRC_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-PAD:CAPS" title="GST_VIDEO_ENCODER_SRC_PAD()">GST_VIDEO_ENCODER_SRC_PAD</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS" title="GST_VIDEO_ENCODER_INPUT_SEGMENT()">GST_VIDEO_ENCODER_INPUT_SEGMENT</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS" title="GST_VIDEO_ENCODER_OUTPUT_SEGMENT()">GST_VIDEO_ENCODER_OUTPUT_SEGMENT</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-LOCK:CAPS" title="GST_VIDEO_ENCODER_STREAM_LOCK()">GST_VIDEO_ENCODER_STREAM_LOCK</a> (encoder)
+#define <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS" title="GST_VIDEO_ENCODER_STREAM_UNLOCK()">GST_VIDEO_ENCODER_STREAM_UNLOCK</a> (encoder)
+struct <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder">GstVideoEncoder</a>;
+struct <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass" title="struct GstVideoEncoderClass">GstVideoEncoderClass</a>;
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()">gst_video_encoder_finish_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-frame" title="gst_video_encoder_get_frame ()">gst_video_encoder_get_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-oldest-frame" title="gst_video_encoder_get_oldest_frame ()">gst_video_encoder_get_oldest_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-headers" title="gst_video_encoder_set_headers ()">gst_video_encoder_set_headers</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-latency" title="gst_video_encoder_get_latency ()">gst_video_encoder_get_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-latency" title="gst_video_encoder_set_latency ()">gst_video_encoder_set_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</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-base-libs-GstVideoEncoder.html#gst-video-encoder-get-discont" title="gst_video_encoder_get_discont ()">gst_video_encoder_get_discont</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-discont" title="gst_video_encoder_set_discont ()">gst_video_encoder_set_discont</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()">gst_video_encoder_set_output_state</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-output-state" title="gst_video_encoder_get_output_state ()">gst_video_encoder_get_output_state</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-proxy-getcaps" title="gst_video_encoder_proxy_getcaps ()">gst_video_encoder_proxy_getcaps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoEncoder.description"></a><h2>Description</h2>
+<p>
+This base class is for video encoders turning raw video into
+encoded video data.
+</p>
+<p>
+GstVideoEncoder and subclass should cooperate as follows.
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Configuration</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Initially, GstVideoEncoder calls <em class="parameter"><code>start</code></em> when the encoder element
+ is activated, which allows subclass to perform any global setup.
+ </p></li>
+<li class="listitem"><p>
+ GstVideoEncoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
+ of input video data that it is about to receive. Subclass should
+ setup for encoding and configure base class as appropriate
+ (e.g. latency). While unlikely, it might be called more than once,
+ if changing input parameters require reconfiguration. Baseclass
+ will ensure that processing of current configuration is finished.
+ </p></li>
+<li class="listitem"><p>
+ GstVideoEncoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Data processing</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Base class collects input data and metadata into a frame and hands
+ this to subclass' <em class="parameter"><code>handle_frame</code></em>.
+ </p></li>
+<li class="listitem"><p>
+ If codec processing results in encoded data, subclass should call
+ <em class="parameter"><code>gst_video_encoder_finish_frame</code></em> to have encoded data pushed
+ downstream.
+ </p></li>
+<li class="listitem"><p>
+ If implemented, baseclass calls subclass <em class="parameter"><code>pre_push</code></em> just prior to
+ pushing to allow subclasses to modify some metadata on the buffer.
+ If it returns GST_FLOW_OK, the buffer is pushed downstream.
+ </p></li>
+<li class="listitem"><p>
+ GstVideoEncoderClass will handle both srcpad and sinkpad events.
+ Sink events will be passed to subclass if <em class="parameter"><code>event</code></em> callback has been
+ provided.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Shutdown phase</b></p>
+<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+ GstVideoEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
+ parsing will be stopped.
+ </p></li></ul>
+</div></li>
+</ol></div>
+<p>
+</p>
+<p>
+Subclass is responsible for providing pad template caps for
+source and sink pads. The pads need to be named "sink" and "src". It should
+also be able to provide fixed src pad caps in <em class="parameter"><code>getcaps</code></em> by the time it calls
+<em class="parameter"><code>gst_video_encoder_finish_frame</code></em>.
+</p>
+<p>
+Things that subclass need to take care of:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>Provide pad templates</p></li>
+<li class="listitem"><p>
+ Provide source pad caps before pushing the first buffer
+ </p></li>
+<li class="listitem"><p>
+ Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
+ <em class="parameter"><code>gst_video_encoder_finish_frame</code></em>.
+ </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-GstVideoEncoder.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-CAST:CAPS"></a><h3>GST_VIDEO_ENCODER_CAST()</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_CAST(enc) ((GstVideoEncoder*)enc)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS"></a><h3>GST_VIDEO_ENCODER_FLOW_DROPPED</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1
+</pre>
+<p>
+Returned when the event/buffer should be dropped.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS"></a><h3>GST_VIDEO_ENCODER_FLOW_NEED_DATA</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
+</pre>
+<p>
+Returned while parsing to indicate more data is needed.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-SINK-NAME:CAPS"></a><h3>GST_VIDEO_ENCODER_SINK_NAME</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_SINK_NAME "sink"
+</pre>
+<p>
+The name of the templates for the sink pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-SINK-PAD:CAPS"></a><h3>GST_VIDEO_ENCODER_SINK_PAD()</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_SINK_PAD(obj) (((GstVideoEncoder *) (obj))-&gt;sinkpad)
+</pre>
+<p>
+Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-SRC-NAME:CAPS"></a><h3>GST_VIDEO_ENCODER_SRC_NAME</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_SRC_NAME "src"
+</pre>
+<p>
+The name of the templates for the source pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-SRC-PAD:CAPS"></a><h3>GST_VIDEO_ENCODER_SRC_PAD()</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_SRC_PAD(obj) (((GstVideoEncoder *) (obj))-&gt;srcpad)
+</pre>
+<p>
+Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_ENCODER_INPUT_SEGMENT()</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_INPUT_SEGMENT(obj) (GST_VIDEO_ENCODER_CAST (obj)-&gt;input_segment)
+</pre>
+<p>
+Gives the segment of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_ENCODER_OUTPUT_SEGMENT()</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_OUTPUT_SEGMENT(obj) (GST_VIDEO_ENCODER_CAST (obj)-&gt;output_segment)
+</pre>
+<p>
+Gives the segment of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-STREAM-LOCK:CAPS"></a><h3>GST_VIDEO_ENCODER_STREAM_LOCK()</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_STREAM_LOCK(encoder) g_rec_mutex_lock (&amp;GST_VIDEO_ENCODER (encoder)-&gt;stream_lock)
+</pre>
+<p>
+Obtain a lock to protect the encoder function from concurrent access.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>video encoder instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS"></a><h3>GST_VIDEO_ENCODER_STREAM_UNLOCK()</h3>
+<pre class="programlisting">#define GST_VIDEO_ENCODER_STREAM_UNLOCK(encoder) g_rec_mutex_unlock (&amp;GST_VIDEO_ENCODER (encoder)-&gt;stream_lock)
+</pre>
+<p>
+Release the lock that protects the encoder function from concurrent access.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>video encoder instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoEncoder"></a><h3>struct GstVideoEncoder</h3>
+<pre class="programlisting">struct GstVideoEncoder {
+};
+</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> data structure.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoEncoderClass"></a><h3>struct GstVideoEncoderClass</h3>
+<pre class="programlisting">struct GstVideoEncoderClass {
+ /* virtual methods for subclasses */
+ gboolean (*open) (GstVideoEncoder *encoder);
+
+ gboolean (*close) (GstVideoEncoder *encoder);
+
+ gboolean (*start) (GstVideoEncoder *encoder);
+
+ gboolean (*stop) (GstVideoEncoder *encoder);
+
+ gboolean (*set_format) (GstVideoEncoder *encoder,
+ GstVideoCodecState *state);
+
+ GstFlowReturn (*handle_frame) (GstVideoEncoder *encoder,
+ GstVideoCodecFrame *frame);
+
+ gboolean (*reset) (GstVideoEncoder *encoder,
+ gboolean hard);
+
+ GstFlowReturn (*finish) (GstVideoEncoder *encoder);
+
+ GstFlowReturn (*pre_push) (GstVideoEncoder *encoder,
+ GstVideoCodecFrame *frame);
+
+ GstCaps * (*getcaps) (GstVideoEncoder *enc,
+ GstCaps *filter);
+
+ gboolean (*sink_event) (GstVideoEncoder *encoder,
+ GstEvent *event);
+
+ gboolean (*src_event) (GstVideoEncoder *encoder,
+ GstEvent *event);
+
+ gboolean (*propose_allocation) (GstVideoEncoder * encoder,
+ GstQuery * query);
+};
+</pre>
+<p>
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum <em class="parameter"><code>handle_frame</code></em> needs to be overridden, and <em class="parameter"><code>set_format</code></em>
+and <em class="parameter"><code>get_caps</code></em> are likely needed as well.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.open"></a>open</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element changes to GST_STATE_READY.
+Allows opening external resources. Since: 0.10.37.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.close"></a>close</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element changes to GST_STATE_NULL.
+Allows closing external resources. Since: 0.10.37.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.start"></a>start</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element starts processing.
+Allows opening external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.stop"></a>stop</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element stops processing.
+Allows closing external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.set-format"></a>set_format</code></em> ()</span></p></td>
+<td>Optional.
+Notifies subclass of incoming data format.
+GstVideoCodecState fields have already been
+set according to provided caps.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Provides input frame to subclass.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.reset"></a>reset</code></em> ()</span></p></td>
+<td>Optional.
+Allows subclass (encoder) to perform post-seek semantics reset.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.finish"></a>finish</code></em> ()</span></p></td>
+<td>Optional.
+Called to request subclass to dispatch any pending remaining
+data (e.g. at EOS).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.pre-push"></a>pre_push</code></em> ()</span></p></td>
+<td>Optional.
+Allows subclass to push frame downstream in whatever
+shape or form it deems appropriate. If not provided,
+provided encoded frame data is simply pushed downstream.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.getcaps"></a>getcaps</code></em> ()</span></p></td>
+<td>Optional.
+Allows for a custom sink getcaps implementation (e.g.
+for multichannel input specification). If not implemented,
+default returns gst_video_encoder_proxy_getcaps
+applied to sink template caps.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.sink-event"></a>sink_event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the sink pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.src-event"></a>src_event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the source pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstVideoEncoderClass.propose-allocation"></a>propose_allocation</code></em> ()</span></p></td>
+<td>Optional.
+Propose buffer allocation parameters for upstream elements.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-finish-frame"></a><h3>gst_video_encoder_finish_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_video_encoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
+<p>
+<em class="parameter"><code>frame</code></em> must have a valid encoded data buffer, whose metadata fields
+are then appropriately set according to frame data or no buffer at
+all if the frame should be dropped.
+It is subsequently pushed downstream or provided to <em class="parameter"><code>pre_push</code></em>.
+In any case, the frame is considered finished and released.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>an encoded <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-get-frame"></a><h3>gst_video_encoder_get_frame ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * gst_video_encoder_get_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
+<p>
+Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <span class="type">GstVideoEnccoder</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame_number</code></em> :</span></p></td>
+<td>system_frame_number of a frame</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-get-oldest-frame"></a><h3>gst_video_encoder_get_oldest_frame ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * gst_video_encoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
+<p>
+Get the oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-set-headers"></a><h3>gst_video_encoder_set_headers ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_encoder_set_headers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
+<p>
+Set the codec headers to be sent downstream whenever requested.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>headers</code></em> :</span></p></td>
+<td>a list of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the codec header. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstBuffer]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-get-latency"></a><h3>gst_video_encoder_get_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_encoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min_latency</code></em> :</span></p></td>
+<td>the configured minimum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max_latency</code></em> :</span></p></td>
+<td>the configured maximum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the configured encoding latency.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-set-latency"></a><h3>gst_video_encoder_set_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_encoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
+<p>
+Informs baseclass of encoding latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min_latency</code></em> :</span></p></td>
+<td>minimum latency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max_latency</code></em> :</span></p></td>
+<td>maximum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-get-discont"></a><h3>gst_video_encoder_get_discont ()</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_video_encoder_get_discont (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-set-discont"></a><h3>gst_video_encoder_set_discont ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_encoder_set_discont (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-set-output-state"></a><h3>gst_video_encoder_set_output_state ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * gst_video_encoder_set_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> with the specified caps as the output state
+for the encoder.
+Any previously set output state on <em class="parameter"><code>decoder</code></em> will be replaced by the newly
+created one.
+</p>
+<p>
+The specified <em class="parameter"><code>caps</code></em> should not contain any resolution, pixel-aspect-ratio,
+framerate, codec-data, .... Those should be specified instead in the returned
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
+</p>
+<p>
+If the subclass wishes to copy over existing fields (like pixel aspect ratio,
+or framerate) from an existing <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>, it can be provided as a
+<em class="parameter"><code>reference</code></em>.
+</p>
+<p>
+If the subclass wishes to override some fields from the output state (like
+pixel-aspect-ratio or framerate) it can do so on the returned <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
+</p>
+<p>
+The new output state will only take effect (set on pads and buffers) starting
+from the next call to #<a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()"><code class="function">gst_video_encoder_finish_frame()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> to use for the output. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>reference</code></em> :</span></p></td>
+<td>An optional reference <em class="parameter"><code>GstVideoCodecState</code></em>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the newly configured output state. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-get-output-state"></a><h3>gst_video_encoder_get_output_state ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * gst_video_encoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
+<p>
+Get the current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>encoder</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-encoder-proxy-getcaps"></a><h3>gst_video_encoder_proxy_getcaps ()</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> * gst_video_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
+<p>
+Returns caps that express <em class="parameter"><code>caps</code></em> (or sink template caps if <em class="parameter"><code>caps</code></em> == NULL)
+restricted to resolution/format/... combinations supported by downstream
+elements (e.g. muxers).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>initial caps</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> owned by caller</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-appsink.html b/docs/libs/html/gst-plugins-base-libs-appsink.html
index 1536358..19bb417 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsink.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsink.html
@@ -54,8 +54,8 @@
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-drop" title="gst_app_sink_set_drop ()">gst_app_sink_set_drop</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> drop</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-base-libs-appsink.html#gst-app-sink-get-drop" title="gst_app_sink_get_drop ()">gst_app_sink_get_drop</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">GstSample</span> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()">gst_app_sink_pull_preroll</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">GstSample</span> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-sample" title="gst_app_sink_pull_sample ()">gst_app_sink_pull_sample</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()">gst_app_sink_pull_preroll</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-sample" title="gst_app_sink_pull_sample ()">gst_app_sink_pull_sample</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
<a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks">GstAppSinkCallbacks</a>;
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()">gst_app_sink_set_callbacks</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks"><span class="type">GstAppSinkCallbacks</span></a> *callbacks</code></em>,
@@ -346,7 +346,7 @@ filled.</td>
<hr>
<div class="refsect2">
<a name="gst-app-sink-pull-preroll"></a><h3>gst_app_sink_pull_preroll ()</h3>
-<pre class="programlisting"><span class="returnvalue">GstSample</span> * gst_app_sink_pull_preroll (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> * gst_app_sink_pull_preroll (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
Get the last preroll sample in <em class="parameter"><code>appsink</code></em>. This was the sample that caused the
appsink to preroll in the PAUSED state. This sample can be pulled many times
@@ -388,7 +388,7 @@ element is set to the READY/NULL state.
<hr>
<div class="refsect2">
<a name="gst-app-sink-pull-sample"></a><h3>gst_app_sink_pull_sample ()</h3>
-<pre class="programlisting"><span class="returnvalue">GstSample</span> * gst_app_sink_pull_sample (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> * gst_app_sink_pull_sample (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
This function blocks until a sample or EOS becomes available or the appsink
element is set to the READY/NULL state.
@@ -504,7 +504,7 @@ reasons.
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-appsink.see-also"></a><h2>See Also</h2>
-<span class="type">GstSample</span>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html"><span class="type">GstBaseSink</span></a>, appsrc
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html"><span class="type">GstBaseSink</span></a>, appsrc
</div>
</div>
<div class="footer">
diff --git a/docs/libs/html/gst-plugins-base-libs-appsrc.html b/docs/libs/html/gst-plugins-base-libs-appsrc.html
index 35d13ed..67cbd66 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsrc.html
@@ -610,8 +610,8 @@ space becomes available in the queue.
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> when the buffer was successfuly queued.
-<span class="type">GST_FLOW_FLUSHING</span> when <em class="parameter"><code>appsrc</code></em> is not PAUSED or PLAYING.
-<span class="type">GST_FLOW_EOS</span> when EOS occured.</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> when <em class="parameter"><code>appsrc</code></em> is not PAUSED or PLAYING.
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-EOS:CAPS"><span class="type">GST_FLOW_EOS</span></a> when EOS occured.</td>
</tr>
</tbody>
</table></div>
@@ -637,7 +637,7 @@ element is the last buffer of the stream.
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> when the EOS was successfuly queued.
-<span class="type">GST_FLOW_FLUSHING</span> when <em class="parameter"><code>appsrc</code></em> is not PAUSED or PLAYING.</td>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> when <em class="parameter"><code>appsrc</code></em> is not PAUSED or PLAYING.</td>
</tr>
</tbody>
</table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
index 1787939..ba2f0c7 100644
--- a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
+++ b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
@@ -182,7 +182,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-L
<p>
</p>
<div class="refsect2">
-<a name="idp26918624"></a><p>
+<a name="idp25528832"></a><p>
Functions to create and handle encoding profiles.
</p>
<p>
@@ -212,7 +212,7 @@ to) file using the <a class="link" href="gst-plugins-base-libs-encoding-profile.
</p>
<hr>
<div class="refsect2">
-<a name="idp26926192"></a><h3>Example: Creating a profile</h3>
+<a name="idp25536400"></a><h3>Example: Creating a profile</h3>
<p>
</p>
<div class="informalexample">
@@ -254,19 +254,19 @@ GstEncodingProfile <span class="gtkdoc opt">*</span>
GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">;</span>
caps <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;application/ogg&quot;</span><span class="gtkdoc opt">);</span>
- prof <span class="gtkdoc opt">=</span> <span class="function"><a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new">gst_encoding_container_profile_new</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;Ogg audio/video&quot;</span><span class="gtkdoc opt">,</span>
+ prof <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new">gst_encoding_container_profile_new</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;Ogg audio/video&quot;</span><span class="gtkdoc opt">,</span>
<span class="string">&quot;Standard OGG/THEORA/VORBIS&quot;</span><span class="gtkdoc opt">,</span>
caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
caps <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;video/x-theora&quot;</span><span class="gtkdoc opt">);</span>
- <span class="function"><a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
- <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new">gst_encoding_video_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">));</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
+ <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new">gst_encoding_video_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">));</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
caps <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;audio/x-vorbis&quot;</span><span class="gtkdoc opt">);</span>
- <span class="function"><a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
- <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new">gst_encoding_audio_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">));</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
+ <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new">gst_encoding_audio_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">));</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
<span class="keyword">return</span> <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> prof<span class="gtkdoc opt">;</span>
@@ -283,7 +283,7 @@ GstEncodingProfile <span class="gtkdoc opt">*</span>
</p>
<hr>
<div class="refsect2">
-<a name="idp26929184"></a><h3>Example: Listing categories, targets and profiles</h3>
+<a name="idp25539392"></a><h3>Example: Listing categories, targets and profiles</h3>
<p>
</p>
<div class="informalexample">
@@ -1186,7 +1186,7 @@ constance framerate.
<p>
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for device-specific targets.
The name of the target will usually be the constructor and model of the device,
-and that target will contain <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for that device.
+and that target will contain <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for that device.
</p>
</div>
<hr>
@@ -1197,7 +1197,7 @@ and that target will contain <a href="../gst-plugins-base-libs-1.0/gst-plugins-b
<p>
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for online-services.
The name of the target will usually be the name of the online service
-and that target will contain <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for that online
+and that target will contain <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for that online
service.
</p>
</div>
@@ -1210,7 +1210,7 @@ service.
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for storage, archiving and editing targets.
Those targets can be lossless and/or provide very fast random access content.
The name of the target will usually be the container type or editing target,
-and that target will contain <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for editing or
+and that target will contain <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for editing or
storage.
</p>
</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
index 8b91430..46c35be 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
@@ -85,7 +85,7 @@ GstAudioCdSrc implements
<p>
</p>
<div class="refsect2">
-<a name="idp8370544"></a><h3>Using GstAudioCdSrc-based elements in applications</h3>
+<a name="idp8421984"></a><h3>Using GstAudioCdSrc-based elements in applications</h3>
<p>
Provides a base class for CD digital audio (CDDA) sources, which handles
things like seeking, querying, discid calculation, tags, and buffer
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html b/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
index 323bb1b..5b8eae9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiomixerutils.html
@@ -31,8 +31,7 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiomixerutils.top_of_page"></a>gstaudiomixerutils</span></h2>
-<p>gstaudiomixerutils — utility functions to find available audio mixers
- from the plugin registry</p>
+<p>gstaudiomixerutils</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
@@ -41,100 +40,13 @@
<pre class="synopsis">
#include &lt;gst/audio/mixerutils.h&gt;
-<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-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()">*GstAudioMixerFilterFunc</a>) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" title="gst_audio_default_registry_mixer_filter ()">gst_audio_default_registry_mixer_filter</a>
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()"><span class="type">GstAudioMixerFilterFunc</span></a> filter_func</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> first</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiomixerutils.description"></a><h2>Description</h2>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6174976"></a><p>
-Provides some utility functions to detect available audio mixers
-on the system.
-</p>
-</div>
-<p>
-</p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiomixerutils.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstAudioMixerFilterFunc"></a><h3>GstAudioMixerFilterFunc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (*GstAudioMixerFilterFunc) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Function that will be called by <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" title="gst_audio_default_registry_mixer_filter ()"><code class="function">gst_audio_default_registry_mixer_filter()</code></a>
-so the caller can decide which mixer elements should be kept and returned.
-When the mixer element is passed to the callback function, it is opened
-and in READY state. If you decide to keep the element, you need to set it
-back to NULL state yourself (unless you want to keep it opened of course).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> implementing the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> interface</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the element should be kept, FALSE otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-audio-default-registry-mixer-filter"></a><h3>gst_audio_default_registry_mixer_filter ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_audio_default_registry_mixer_filter
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()"><span class="type">GstAudioMixerFilterFunc</span></a> filter_func</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> first</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Utility function to find audio mixer elements.
-</p>
-<p>
-Will traverse the default plugin registry in order of plugin rank and
-find usable audio mixer elements. The caller may optionally fine-tune
-the selection by specifying a filter function.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>filter_func</code></em> :</span></p></td>
-<td>filter function, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>first</code></em> :</span></p></td>
-<td>set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if you only want the first suitable mixer element</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data to pass to the filter function</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of audio mixer <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>s. You must free each
-element in the list by setting it to NULL state and calling
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-unref"><code class="function">gst_object_unref()</code></a>. After that the list itself should be freed
-using <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.2</p>
-</div>
</div>
</div>
<div class="footer">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
index b7383d7..8aefba7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
@@ -122,7 +122,7 @@ enum <a class="link" href="gst-plugins-base-libs-gstaudioringbuff
<p>
</p>
<div class="refsect2">
-<a name="idp12830912"></a><p>
+<a name="idp13203760"></a><p>
This object is the base class for audio ringbuffers used by the base
audio source and sink classes.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
index 573162a..8c7a8ae 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
@@ -77,7 +77,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-L
<p>
</p>
<div class="refsect2">
-<a name="idp28326624"></a><p>
+<a name="idp29273040"></a><p>
This interface is implemented by elements which can perform some color
balance operation on video frames they process. For example, modifying
the brightness, contrast, hue or saturation.
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
index 224cb58..1982ba5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
@@ -67,7 +67,7 @@ struct <a class="link" href="gst-plugins-base-libs-gstcolorbalancec
<p>
</p>
<div class="refsect2">
-<a name="idp27298320"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
+<a name="idp24335184"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
for modifying the color balance implemented by an element providing the
<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> interface. For example, Hue or Saturation.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
index 1571afe..7f0b27c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
<link rel="prev" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
-<link rel="next" href="gstreamer-interfaces.html" title="Interfaces Library">
+<link rel="next" href="gstreamer-riff.html" title="Riff Media Library">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="gstreamer-ffft.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-interfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-riff.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-base-libs-gstfftf64.synopsis" class="shortcut">Top</a>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstmixer.html b/docs/libs/html/gst-plugins-base-libs-gstmixer.html
deleted file mode 100644
index 0ee4d1c..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gstmixer.html
+++ /dev/null
@@ -1,918 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gstmixer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
-<link rel="next" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">
-<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gststreamvolume.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-audio.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstmixeroptions.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-base-libs-gstmixer.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#gst-plugins-base-libs-gstmixer.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-libs-gstmixer.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gstmixer"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstmixer.top_of_page"></a>gstmixer</span></h2>
-<p>gstmixer — Interface for elements that provide mixer operations</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gstmixer.synopsis"></a><h2>Synopsis</h2>
-<a name="GstMixer"></a><pre class="synopsis">
-#include &lt;gst/audio/mixer.h&gt;
-
- <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-struct" title="GstMixer">GstMixer</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType">GstMixerType</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags">GstMixerFlags</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType">GstMixerMessageType</a>;
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks" title="gst_mixer_list_tracks ()">gst_mixer_list_tracks</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume" title="gst_mixer_get_volume ()">gst_mixer_get_volume</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *volumes</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume" title="gst_mixer_set_volume ()">gst_mixer_set_volume</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *volumes</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute" title="gst_mixer_set_mute ()">gst_mixer_set_mute</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record" title="gst_mixer_set_record ()">gst_mixer_set_record</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> record</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option" title="gst_mixer_set_option ()">gst_mixer_set_option</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled" title="gst_mixer_mute_toggled ()">gst_mixer_mute_toggled</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled" title="gst_mixer_record_toggled ()">gst_mixer_record_toggled</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> record</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed" title="gst_mixer_volume_changed ()">gst_mixer_volume_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *volumes</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed" title="gst_mixer_option_changed ()">gst_mixer_option_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed" title="gst_mixer_options_list_changed ()">gst_mixer_options_list_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option" title="gst_mixer_get_option ()">gst_mixer_get_option</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags"><span class="returnvalue">GstMixerFlags</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType"><span class="returnvalue">GstMixerType</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *mute</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed" title="gst_mixer_message_parse_option_changed ()">gst_mixer_message_parse_option_changed</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> **options</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled" title="gst_mixer_message_parse_record_toggled ()">gst_mixer_message_parse_record_toggled</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *record</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed" title="gst_mixer_message_parse_volume_changed ()">gst_mixer_message_parse_volume_changed</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> **volumes</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *num_channels</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed" title="gst_mixer_message_parse_options_list_changed ()">gst_mixer_message_parse_options_list_changed</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> **options</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixer.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- GInterface
- +----GstMixer
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixer.description"></a><h2>Description</h2>
-<p>
-Basic interface for hardware mixer controls.
-</p>
-<p>
-Applications rarely need to use this interface, it is provided mainly
-for system-level mixer applets and the like. Volume control in playback
-applications should be done using a <code class="classname">volume</code>
-element or, if available, using the <span class="quote">“<span class="quote">volume</span>”</span> property of
-the audio sink element used (as provided by <code class="classname">pulsesink</code>
-for example), or even better: just use the <code class="classname">playbin2</code>
-element's <span class="quote">“<span class="quote">volume</span>”</span> property.
-</p>
-<p>
-Usage: In order to use the <code class="classname">GstMixer</code> interface, the
-element needs to be at least in READY state (so that the element has opened
-the mixer device). Once the element has been set to READY state or higher,
-it can be cast to a <code class="classname">GstMixer</code> using the GST_MIXER
-macro (in C) and the mixer API can be used.
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixer.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstMixer-struct"></a><h3>GstMixer</h3>
-<pre class="programlisting">typedef struct _GstMixer GstMixer;</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerType"></a><h3>enum GstMixerType</h3>
-<pre class="programlisting">typedef enum {
- GST_MIXER_HARDWARE,
- GST_MIXER_SOFTWARE
-} GstMixerType;
-</pre>
-<p>
-Mixer classification.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-MIXER-HARDWARE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_HARDWARE</code></span></p></td>
-<td>mixing is implemented with dedicated hardware.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-SOFTWARE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_SOFTWARE</code></span></p></td>
-<td>mixing is implemented via software processing.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerFlags"></a><h3>enum GstMixerFlags</h3>
-<pre class="programlisting">typedef enum {
- GST_MIXER_FLAG_NONE = 0,
- GST_MIXER_FLAG_AUTO_NOTIFICATIONS = (1&lt;&lt;0),
- GST_MIXER_FLAG_HAS_WHITELIST = (1&lt;&lt;1),
- GST_MIXER_FLAG_GROUPING = (1&lt;&lt;2),
-} GstMixerFlags;
-</pre>
-<p>
-Flags indicating which optional features are supported by a mixer
-implementation.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-MIXER-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_FLAG_NONE</code></span></p></td>
-<td>No flags
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS"></a><span class="term"><code class="literal">GST_MIXER_FLAG_AUTO_NOTIFICATIONS</code></span></p></td>
-<td>The mixer implementation automatically
- sends notification messages.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-FLAG-HAS-WHITELIST:CAPS"></a><span class="term"><code class="literal">GST_MIXER_FLAG_HAS_WHITELIST</code></span></p></td>
-<td>The mixer implementation flags tracks that
- should be displayed by default (whitelisted). Since: 0.10.23
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-FLAG-GROUPING:CAPS"></a><span class="term"><code class="literal">GST_MIXER_FLAG_GROUPING</code></span></p></td>
-<td>The mixer implementation will leave some controls
- marked without either input or output. Controls marked as input or
- output should be grouped with input &amp; output sliders, even if they
- are options or bare switches. Since: 0.10.23
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerMessageType"></a><h3>enum GstMixerMessageType</h3>
-<pre class="programlisting">typedef enum {
- GST_MIXER_MESSAGE_INVALID,
- GST_MIXER_MESSAGE_MUTE_TOGGLED,
- GST_MIXER_MESSAGE_RECORD_TOGGLED,
- GST_MIXER_MESSAGE_VOLUME_CHANGED,
- GST_MIXER_MESSAGE_OPTION_CHANGED,
- GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED,
- GST_MIXER_MESSAGE_MIXER_CHANGED
-} GstMixerMessageType;
-</pre>
-<p>
-An enumeration for the type of a GstMixer message received on the bus
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-MIXER-MESSAGE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_MIXER_MESSAGE_INVALID</code></span></p></td>
-<td>Not a GstMixer message
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-MESSAGE-MUTE-TOGGLED:CAPS"></a><span class="term"><code class="literal">GST_MIXER_MESSAGE_MUTE_TOGGLED</code></span></p></td>
-<td>A mute-toggled GstMixer message
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-MESSAGE-RECORD-TOGGLED:CAPS"></a><span class="term"><code class="literal">GST_MIXER_MESSAGE_RECORD_TOGGLED</code></span></p></td>
-<td>A record-toggled GstMixer message
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-MESSAGE-VOLUME-CHANGED:CAPS"></a><span class="term"><code class="literal">GST_MIXER_MESSAGE_VOLUME_CHANGED</code></span></p></td>
-<td>A volume-changed GstMixer message
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-MESSAGE-OPTION-CHANGED:CAPS"></a><span class="term"><code class="literal">GST_MIXER_MESSAGE_OPTION_CHANGED</code></span></p></td>
-<td>An option-changed GstMixer message
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-MESSAGE-OPTIONS-LIST-CHANGED:CAPS"></a><span class="term"><code class="literal">GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED</code></span></p></td>
-<td>An options-list-changed
- GstMixer message, posted when the list of available options for a
- GstMixerOptions object has changed (Since: 0.10.18)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-MESSAGE-MIXER-CHANGED:CAPS"></a><span class="term"><code class="literal">GST_MIXER_MESSAGE_MIXER_CHANGED</code></span></p></td>
-<td>A mixer-changed GstMixer message, posted
- when the list of available mixer tracks has changed. The application
- should re-build its interface in this case (Since: 0.10.18)
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-list-tracks"></a><h3>gst_mixer_list_tracks ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_mixer_list_tracks (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);</pre>
-<p>
-Returns a list of available tracks for this mixer/element. Note
-that it is allowed for sink (output) elements to only provide
-the output tracks in this list. Likewise, for sources (inputs),
-it is allowed to only provide input elements in this list.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) to get the tracks from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> consisting of zero or more <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTracks</span></a>.
-The list is owned by the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> instance and must not be freed
-or modified.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-get-volume"></a><h3>gst_mixer_get_volume ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_get_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *volumes</code></em>);</pre>
-<p>
-Get the current volume(s) on the given track.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the track</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>the GstMixerTrack to get the volume from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>volumes</code></em> :</span></p></td>
-<td>a pre-allocated array of integers (of size
-track-&gt;num_channels) to store the current volume
-of each channel in the given track in.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-set-volume"></a><h3>gst_mixer_set_volume ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_set_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *volumes</code></em>);</pre>
-<p>
-Sets the volume on each channel in a track. Short note about
-naming: a track is defined as one separate stream owned by
-the mixer/element, such as 'Line-in' or 'Microphone'. A
-channel is said to be a mono-stream inside this track. A
-stereo track thus contains two channels.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the track.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> to set the volume on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>volumes</code></em> :</span></p></td>
-<td>an array of integers (of size track-&gt;num_channels)
-that gives the wanted volume for each channel in
-this track.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-set-mute"></a><h3>gst_mixer_set_mute ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_set_mute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
-<p>
-Mutes or unmutes the given channel. To find out whether a
-track is currently muted, use <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()"><code class="function">GST_MIXER_TRACK_HAS_FLAG()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the track.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> to operate on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mute</code></em> :</span></p></td>
-<td>a boolean value indicating whether to turn on or off
-muting.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-set-record"></a><h3>gst_mixer_set_record ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_set_record (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> record</code></em>);</pre>
-<p>
-Enables or disables recording on the given track. Note that
-this is only possible on input tracks, not on output tracks
-(see <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()"><code class="function">GST_MIXER_TRACK_HAS_FLAG()</code></a> and the GST_MIXER_TRACK_INPUT
-flag).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the track.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> to operate on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>record</code></em> :</span></p></td>
-<td>a boolean value that indicates whether to turn on
-or off recording.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-set-option"></a><h3>gst_mixer_set_option ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_set_option (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>
-Sets a name/value option in the mixer to the requested value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the optionlist.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>opts</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> that we operate on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>The requested new option value.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-mute-toggled"></a><h3>gst_mixer_mute_toggled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_mute_toggled (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
-<p>
-This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the given track
-has changed mute state.
-</p>
-<p>
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the track</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>the GstMixerTrack that has change mute state.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mute</code></em> :</span></p></td>
-<td>the new state of the mute flag on the track</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-record-toggled"></a><h3>gst_mixer_record_toggled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_record_toggled (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> record</code></em>);</pre>
-<p>
-This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the given track
-has changed recording state.
-</p>
-<p>
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the track</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>the GstMixerTrack that has changed recording state.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>record</code></em> :</span></p></td>
-<td>the new state of the record flag on the track</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-volume-changed"></a><h3>gst_mixer_volume_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_volume_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> *track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *volumes</code></em>);</pre>
-<p>
-This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the volume(s) for the
-given track have changed.
-</p>
-<p>
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the track</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>the GstMixerTrack that has changed.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>volumes</code></em> :</span></p></td>
-<td>Array of volume values, one per channel on the mixer track.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-option-changed"></a><h3>gst_mixer_option_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_option_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>
-This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the given options
-object has changed state.
-</p>
-<p>
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the options</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>opts</code></em> :</span></p></td>
-<td>the GstMixerOptions that has changed value.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>the new value of the GstMixerOptions.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-options-list-changed"></a><h3>gst_mixer_options_list_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_options_list_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>);</pre>
-<p>
-This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the list of possible
-options of a given options object has changed.
-</p>
-<p>
-The new options are not contained in the message on purpose. Applications
-should call <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()"><code class="function">gst_mixer_options_get_values()</code></a> on <em class="parameter"><code>opts</code></em> to make <em class="parameter"><code>opts</code></em> update
-its internal state and obtain the new list of values.
-</p>
-<p>
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus
-for this to work.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the options</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>opts</code></em> :</span></p></td>
-<td>the GstMixerOptions whose list of values has changed</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.18</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-get-option"></a><h3>gst_mixer_get_option ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_mixer_get_option (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *opts</code></em>);</pre>
-<p>
-Get the current value of a name/value option in the mixer.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the optionlist.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>opts</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> that we operate on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>current value of the name/value option.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-mixer-changed"></a><h3>gst_mixer_mixer_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_mixer_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);</pre>
-<p>
-This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the list of available
-mixer tracks for a given mixer object has changed. Applications should
-rebuild their interface when they receive this message.
-</p>
-<p>
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) which has changed</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.18</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-get-mixer-flags"></a><h3>gst_mixer_get_mixer_flags ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags"><span class="returnvalue">GstMixerFlags</span></a> gst_mixer_get_mixer_flags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);</pre>
-<p>
-Get the set of supported flags for this mixer implementation.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> implementation</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A set of or-ed GstMixerFlags for supported features.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-get-mixer-type"></a><h3>gst_mixer_get_mixer_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType"><span class="returnvalue">GstMixerType</span></a> gst_mixer_get_mixer_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);</pre>
-<p>
-Get the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType"><span class="type">GstMixerType</span></a> of this mixer implementation.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> implementation</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A the <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType"><span class="type">GstMixerType</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.24</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-message-get-type"></a><h3>gst_mixer_message_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> gst_mixer_message_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
-<p>
-Check a bus message to see if it is a GstMixer notification
-message and return the GstMixerMessageType identifying which
-type of notification it is.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A GstMessage to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The type of the GstMixerMessage, or GST_MIXER_MESSAGE_INVALID
-if the message is not a GstMixer notification.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-message-parse-mute-toggled"></a><h3>gst_mixer_message_parse_mute_toggled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_message_parse_mute_toggled
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *mute</code></em>);</pre>
-<p>
-Extracts the contents of a mute-toggled bus message. Reads
-the GstMixerTrack that has changed, and the new value of the mute
-flag.
-</p>
-<p>
-The GstMixerTrack remains valid until the message is freed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A mute-toggled change notification message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>Pointer to hold a GstMixerTrack object, or NULL.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mute</code></em> :</span></p></td>
-<td>A pointer to a gboolean variable, or NULL.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-message-parse-option-changed"></a><h3>gst_mixer_message_parse_option_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_message_parse_option_changed
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> **options</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);</pre>
-<p>
-Extracts the GstMixerOptions and new value from a option-changed bus notification
-message.
-</p>
-<p>
-The options and value returned remain valid until the message is freed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A volume-changed change notification message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td>
-<td>Pointer to hold a GstMixerOptions object, or NULL.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>Result location to receive the new options value, or NULL.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-message-parse-record-toggled"></a><h3>gst_mixer_message_parse_record_toggled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_message_parse_record_toggled
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *record</code></em>);</pre>
-<p>
-Extracts the contents of a record-toggled bus message. Reads
-the GstMixerTrack that has changed, and the new value of the
-recording flag.
-</p>
-<p>
-The GstMixerTrack remains valid until the message is freed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A record-toggled change notification message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>Pointer to hold a GstMixerTrack object, or NULL.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>record</code></em> :</span></p></td>
-<td>A pointer to a gboolean variable, or NULL.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-message-parse-volume-changed"></a><h3>gst_mixer_message_parse_volume_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_message_parse_volume_changed
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> **volumes</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *num_channels</code></em>);</pre>
-<p>
-Parses a volume-changed notification message and extracts the track object
-it refers to, as well as an array of volumes and the size of the volumes array.
-</p>
-<p>
-The track object remains valid until the message is freed.
-</p>
-<p>
-The caller must free the array returned in the volumes parameter using g_free
-when they are done with it.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A volume-changed change notification message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
-<td>Pointer to hold a GstMixerTrack object, or NULL.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>volumes</code></em> :</span></p></td>
-<td>A pointer to receive an array of gint values, or NULL.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>num_channels</code></em> :</span></p></td>
-<td>Result location to receive the number of channels, or NULL.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-message-parse-options-list-changed"></a><h3>gst_mixer_message_parse_options_list_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_mixer_message_parse_options_list_changed
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> **options</code></em>);</pre>
-<p>
-Extracts the GstMixerOptions whose value list has changed from an
-options-list-changed bus notification message.
-</p>
-<p>
-The options object returned remains valid until the message is freed. You
-do not need to unref it.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A volume-changed change notification message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td>
-<td>Pointer to hold a GstMixerOptions object, or NULL.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.18</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixer.see-also"></a><h2>See Also</h2>
-alsamixer, oss4mixer, sunaudiomixer
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstmixeroptions.html b/docs/libs/html/gst-plugins-base-libs-gstmixeroptions.html
deleted file mode 100644
index 403835b..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gstmixeroptions.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gstmixeroptions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">
-<link rel="next" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">
-<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gstmixer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-audio.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstmixertrack.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-base-libs-gstmixeroptions.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#gst-plugins-base-libs-gstmixeroptions.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-libs-gstmixeroptions.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gstmixeroptions"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstmixeroptions.top_of_page"></a>gstmixeroptions</span></h2>
-<p>gstmixeroptions — Multi-option mixer control</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gstmixeroptions.synopsis"></a><h2>Synopsis</h2>
-<a name="GstMixerOptions"></a><pre class="synopsis">
-#include &lt;gst/audio/mixer.h&gt;
-
-struct <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct" title="struct GstMixerOptions">GstMixerOptions</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()">gst_mixer_options_get_values</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *mixer_options</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixeroptions.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 class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack">GstMixerTrack</a>
- +----GstMixerOptions
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixeroptions.description"></a><h2>Description</h2>
-<p>
-Mixer control object that allows switching between multiple options.
-Note that <code class="classname">GstMixerOptions</code> is a subclass of
-<code class="classname">GstMixerTrack</code>.
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixeroptions.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstMixerOptions-struct"></a><h3>struct GstMixerOptions</h3>
-<pre class="programlisting">struct GstMixerOptions {
- /* list of strings (do not access directly) (FIXME 0.11: make private) */
- GList *values;
-};
-</pre>
-<p>
-Mixer control object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstMixerOptions-struct.values"></a>values</code></em>;</span></p></td>
-<td>List of option strings. Do not access this member directly,
-always use <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()"><code class="function">gst_mixer_options_get_values()</code></a> instead.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mixer-options-get-values"></a><h3>gst_mixer_options_get_values ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_mixer_options_get_values (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> *mixer_options</code></em>);</pre>
-<p>
-Get the values for the mixer option.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mixer_options</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions"><span class="type">GstMixerOptions</span></a> item that owns the values.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A list of strings with all the possible values for the mixer
-option. You must not free or modify the list or its contents, it belongs
-to the <em class="parameter"><code>mixer_options</code></em> object.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixeroptions.see-also"></a><h2>See Also</h2>
-GstMixer, GstMixerTrack
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstmixertrack.html b/docs/libs/html/gst-plugins-base-libs-gstmixertrack.html
deleted file mode 100644
index c8ca5f3..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gstmixertrack.html
+++ /dev/null
@@ -1,259 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gstmixertrack</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">
-<link rel="next" href="gstreamer-ffft.html" title="FFT Library">
-<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gstmixeroptions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-audio.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-ffft.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-base-libs-gstmixertrack.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#gst-plugins-base-libs-gstmixertrack.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-libs-gstmixertrack.object-hierarchy" class="shortcut">Object Hierarchy</a>
-  | 
- <a href="#gst-plugins-base-libs-gstmixertrack.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gstmixertrack"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstmixertrack.top_of_page"></a>gstmixertrack</span></h2>
-<p>gstmixertrack — Basic mixer control object (volume slider, switch)</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gstmixertrack.synopsis"></a><h2>Synopsis</h2>
-<a name="GstMixerTrack"></a><pre class="synopsis">
-#include &lt;gst/audio/mixer.h&gt;
-
-struct <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct" title="struct GstMixerTrack">GstMixerTrack</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags" title="enum GstMixerTrackFlags">GstMixerTrackFlags</a>;
-#define <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()">GST_MIXER_TRACK_HAS_FLAG</a> (channel,
- flag)
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixertrack.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>
- +----GstMixerTrack
- +----<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions">GstMixerOptions</a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixertrack.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags" title='The "flags" property'>flags</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-base-libs-gstmixertrack.html#GstMixerTrack--index" title='The "index" property'>index</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct Only
- "<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label" title='The "label" property'>label</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-base-libs-gstmixertrack.html#GstMixerTrack--max-volume" title='The "max-volume" property'>max-volume</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-base-libs-gstmixertrack.html#GstMixerTrack--min-volume" title='The "min-volume" property'>min-volume</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-base-libs-gstmixertrack.html#GstMixerTrack--num-channels" title='The "num-channels" property'>num-channels</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-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label" title='The "untranslated-label" property'>untranslated-label</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixertrack.description"></a><h2>Description</h2>
-<p>
-Basic mixer control object (note that it is a GObject and not a GstObject).
-</p>
-<p>
-A mixer track represents a single slider control of none, one or more
-channels. A mixer track with no channels is usually interpreted as a
-on/off switch control.
-</p>
-<p>
-Note the presence of both min_volume and max_volume fields. Applications
-must not assume that min_volume is 0 or max_volume is any particular
-value.
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixertrack.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstMixerTrack-struct"></a><h3>struct GstMixerTrack</h3>
-<pre class="programlisting">struct GstMixerTrack;</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerTrackFlags"></a><h3>enum GstMixerTrackFlags</h3>
-<pre class="programlisting">typedef enum {
- GST_MIXER_TRACK_INPUT = (1 &lt;&lt; 0),
- GST_MIXER_TRACK_OUTPUT = (1 &lt;&lt; 1),
- GST_MIXER_TRACK_MUTE = (1 &lt;&lt; 2),
- GST_MIXER_TRACK_RECORD = (1 &lt;&lt; 3),
- GST_MIXER_TRACK_MASTER = (1 &lt;&lt; 4),
- GST_MIXER_TRACK_SOFTWARE = (1 &lt;&lt; 5),
- GST_MIXER_TRACK_NO_RECORD = (1 &lt;&lt; 6),
- GST_MIXER_TRACK_NO_MUTE = (1 &lt;&lt; 7),
- GST_MIXER_TRACK_WHITELIST = (1 &lt;&lt; 8),
- GST_MIXER_TRACK_READABLE = (1 &lt;&lt; 9),
- GST_MIXER_TRACK_WRITABLE = (1 &lt;&lt; 10)
-} GstMixerTrackFlags;
-</pre>
-<p>
-Mixer track flags.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-INPUT:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_INPUT</code></span></p></td>
-<td>mixer track is for input
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-OUTPUT:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_OUTPUT</code></span></p></td>
-<td>mixer track is for output
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-MUTE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_MUTE</code></span></p></td>
-<td>input or output is muted
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-RECORD:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_RECORD</code></span></p></td>
-<td>input is audible in speakers attached to output
- (for <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-INPUT:CAPS"><span class="type">GST_MIXER_TRACK_INPUT</span></a> mixer tracks only)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-MASTER:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_MASTER</code></span></p></td>
-<td>this mixer track is likely to be the master control
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-SOFTWARE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_SOFTWARE</code></span></p></td>
-<td>mixer track's' volume control is implemented
- in software (as opposed to a hardware control)
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-NO-RECORD:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_NO_RECORD</code></span></p></td>
-<td>input track lacks support for recordable.
- Since: 0.10.23
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-NO-MUTE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_NO_MUTE</code></span></p></td>
-<td>play track doesn't support mute. Since: 0.10.23
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-WHITELIST:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_WHITELIST</code></span></p></td>
-<td>track should be displayed "by default" in apps.
- Since: 0.10.23
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-READABLE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_READABLE</code></span></p></td>
-<td>track is read-only. Since: 0.10.25
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-MIXER-TRACK-WRITABLE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_TRACK_WRITABLE</code></span></p></td>
-<td>track is write-only. Since: 0.10.25
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-MIXER-TRACK-HAS-FLAG:CAPS"></a><h3>GST_MIXER_TRACK_HAS_FLAG()</h3>
-<pre class="programlisting">#define GST_MIXER_TRACK_HAS_FLAG(channel, flag)</pre>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixertrack.property-details"></a><h2>Property Details</h2>
-<div class="refsect2">
-<a name="GstMixerTrack--flags"></a><h3>The <code class="literal">"flags"</code> property</h3>
-<pre class="programlisting"> "flags" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre>
-<p>Flags indicating the type of mixer track.</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerTrack--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#guint"><span class="type">guint</span></a> : Read / Write / Construct Only</pre>
-<p>
-Index of the mixer track, if available. Mixer track implementations
-must set this at construct time. This can be used to discern between
-multiple tracks with identical labels.
-</p>
-<p>Default value: 0</p>
-<p class="since">Since 0.10.21</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerTrack--label"></a><h3>The <code class="literal">"label"</code> property</h3>
-<pre class="programlisting"> "label" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre>
-<p>The label assigned to the track (may be translated).</p>
-<p>Default value: NULL</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerTrack--max-volume"></a><h3>The <code class="literal">"max-volume"</code> property</h3>
-<pre class="programlisting"> "max-volume" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre>
-<p>The maximum possible volume level.</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerTrack--min-volume"></a><h3>The <code class="literal">"min-volume"</code> property</h3>
-<pre class="programlisting"> "min-volume" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre>
-<p>The minimum possible volume level.</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerTrack--num-channels"></a><h3>The <code class="literal">"num-channels"</code> property</h3>
-<pre class="programlisting"> "num-channels" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read</pre>
-<p>The number of channels contained within the track.</p>
-<p>Allowed values: &gt;= 0</p>
-<p>Default value: 0</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMixerTrack--untranslated-label"></a><h3>The <code class="literal">"untranslated-label"</code> property</h3>
-<pre class="programlisting"> "untranslated-label" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre>
-<p>
-The untranslated label of the mixer track, if available. Mixer track
-implementations must set this at construct time. Applications may find
-this useful to determine icons for various kind of tracks. However,
-applications mustn't make any assumptions about the naming of tracks,
-the untranslated labels are purely informational and may change.
-</p>
-<p>Default value: NULL</p>
-<p class="since">Since 0.10.13</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstmixertrack.see-also"></a><h2>See Also</h2>
-GstMixer, GstMixerOptions
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html b/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
deleted file mode 100644
index c25c41d..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
+++ /dev/null
@@ -1,1202 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gstnavigation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
-<link rel="prev" href="gstreamer-interfaces.html" title="Interfaces Library">
-<link rel="next" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">
-<meta name="generator" content="GTK-Doc V1.18 (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="gstreamer-interfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-interfaces.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttuner.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-base-libs-gstnavigation.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#gst-plugins-base-libs-gstnavigation.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-libs-gstnavigation.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gstnavigation"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstnavigation.top_of_page"></a>gstnavigation</span></h2>
-<p>gstnavigation — Interface for creating, sending and parsing navigation
-events.</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gstnavigation.synopsis"></a><h2>Synopsis</h2>
-<a name="GstNavigation"></a><pre class="synopsis">
-#include &lt;gst/interfaces/navigation.h&gt;
-
- <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct" title="GstNavigation">GstNavigation</a>;
-struct <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface" title="struct GstNavigationInterface">GstNavigationInterface</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand">GstNavigationCommand</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType">GstNavigationEventType</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType">GstNavigationMessageType</a>;
-enum <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType">GstNavigationQueryType</a>;
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event" title="gst_navigation_send_event ()">gst_navigation_send_event</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event" title="gst_navigation_send_key_event ()">gst_navigation_send_key_event</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *event</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event" title="gst_navigation_send_mouse_event ()">gst_navigation_send_mouse_event</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *event</code></em>,
- <em class="parameter"><code><span class="type">int</span> button</code></em>,
- <em class="parameter"><code><span class="type">double</span> x</code></em>,
- <em class="parameter"><code><span class="type">double</span> y</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command" title="gst_navigation_send_command ()">gst_navigation_send_command</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> command</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-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()">gst_navigation_event_parse_command</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *command</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-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()">gst_navigation_event_parse_key_event</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **key</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-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()">gst_navigation_event_parse_mouse_button_event</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *button</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</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-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()">gst_navigation_event_parse_mouse_move_event</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" title="gst_navigation_message_new_commands_changed ()">gst_navigation_message_new_commands_changed</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" title="gst_navigation_message_new_mouse_over ()">gst_navigation_message_new_mouse_over</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</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-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" title="gst_navigation_message_parse_mouse_over ()">gst_navigation_message_parse_mouse_over</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *active</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-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" title="gst_navigation_message_parse_angles_changed ()">gst_navigation_message_parse_angles_changed</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</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-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</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-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" title="gst_navigation_query_parse_commands_length ()">gst_navigation_query_parse_commands_length</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_cmds</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-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" title="gst_navigation_query_parse_commands_nth ()">gst_navigation_query_parse_commands_nth</a>
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmd</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles" title="gst_navigation_query_set_angles ()">gst_navigation_query_set_angles</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands" title="gst_navigation_query_set_commands ()">gst_navigation_query_set_commands</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
- <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv" title="gst_navigation_query_set_commandsv ()">gst_navigation_query_set_commandsv</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmds</code></em>);
-#define <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>
-#define <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>
-#define <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>
-#define <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_MENU">GST_NAVIGATION_COMMAND_DVD_MENU</a>
-#define <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>
-#define <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>
-#define <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstnavigation.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- GInterface
- +----GstNavigation
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstnavigation.description"></a><h2>Description</h2>
-<p>
-The Navigation interface is used for creating and injecting navigation related
-events such as mouse button presses, cursor motion and key presses. The associated
-library also provides methods for parsing received events, and for sending and
-receiving navigation related bus events. One main usecase is DVD menu navigation.
-</p>
-<p>
-The main parts of the API are:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><p>
-The GstNavigation interface, implemented by elements which provide an application
-with the ability to create and inject navigation events into the pipeline.
-</p></li>
-<li class="listitem"><p>
-GstNavigation event handling API. GstNavigation events are created in response to
-calls on a GstNavigation interface implementation, and sent in the pipeline. Upstream
-elements can use the navigation event API functions to parse the contents of received
-messages.
-</p></li>
-<li class="listitem">
-<p>
-GstNavigation message handling API. GstNavigation messages may be sent on the message
-bus to inform applications of navigation related changes in the pipeline, such as the
-mouse moving over a clickable region, or the set of available angles changing.
-</p>
-<p>
-The GstNavigation message functions provide functions for creating and parsing
-custom bus messages for signaling GstNavigation changes.
-</p>
-</li>
-</ul></div>
-<p>
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstnavigation.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstNavigation-struct"></a><h3>GstNavigation</h3>
-<pre class="programlisting">typedef struct _GstNavigation GstNavigation;</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstNavigationInterface"></a><h3>struct GstNavigationInterface</h3>
-<pre class="programlisting">struct GstNavigationInterface {
- GTypeInterface iface;
-
- /* virtual functions */
- void (*send_event) (GstNavigation *navigation, GstStructure *structure);
-};
-</pre>
-<p>
-Navigation interface.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstNavigationInterface.iface"></a>iface</code></em>;</span></p></td>
-<td>the parent interface</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstNavigationInterface.send-event"></a>send_event</code></em> ()</span></p></td>
-<td>sending a navigation event</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstNavigationCommand"></a><h3>enum GstNavigationCommand</h3>
-<pre class="programlisting">typedef enum {
- GST_NAVIGATION_COMMAND_INVALID = 0,
-
- GST_NAVIGATION_COMMAND_MENU1 = 1,
- GST_NAVIGATION_COMMAND_MENU2 = 2,
- GST_NAVIGATION_COMMAND_MENU3 = 3,
- GST_NAVIGATION_COMMAND_MENU4 = 4,
- GST_NAVIGATION_COMMAND_MENU5 = 5,
- GST_NAVIGATION_COMMAND_MENU6 = 6,
- GST_NAVIGATION_COMMAND_MENU7 = 7,
-
- GST_NAVIGATION_COMMAND_LEFT = 20,
- GST_NAVIGATION_COMMAND_RIGHT = 21,
- GST_NAVIGATION_COMMAND_UP = 22,
- GST_NAVIGATION_COMMAND_DOWN = 23,
- GST_NAVIGATION_COMMAND_ACTIVATE = 24,
-
- GST_NAVIGATION_COMMAND_PREV_ANGLE = 30,
- GST_NAVIGATION_COMMAND_NEXT_ANGLE = 31
-} GstNavigationCommand;
-</pre>
-<p>
-A set of commands that may be issued to an element providing the
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> interface. The available commands can be queried via
-the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()"><code class="function">gst_navigation_query_new_commands()</code></a> query.
-</p>
-<p>
-For convenience in handling DVD navigation, the MENU commands are aliased as:
- GST_NAVIGATION_COMMAND_DVD_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU1</code></em>
- GST_NAVIGATION_COMMAND_DVD_TITLE_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU2</code></em>
- GST_NAVIGATION_COMMAND_DVD_ROOT_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU3</code></em>
- GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU4</code></em>
- GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU5</code></em>
- GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU6</code></em>
- GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU7</code></em>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-INVALID:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_INVALID</code></span></p></td>
-<td>An invalid command entry
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-MENU1:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_MENU1</code></span></p></td>
-<td>Execute navigation menu command 1. For DVD,
-this enters the DVD root menu, or exits back to the title from the menu.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-MENU2:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_MENU2</code></span></p></td>
-<td>Execute navigation menu command 2. For DVD,
-this jumps to the DVD title menu.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-MENU3:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_MENU3</code></span></p></td>
-<td>Execute navigation menu command 3. For DVD,
-this jumps into the DVD root menu.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-MENU4:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_MENU4</code></span></p></td>
-<td>Execute navigation menu command 4. For DVD,
-this jumps to the Subpicture menu.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-MENU5:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_MENU5</code></span></p></td>
-<td>Execute navigation menu command 5. For DVD,
-the jumps to the audio menu.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-MENU6:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_MENU6</code></span></p></td>
-<td>Execute navigation menu command 6. For DVD,
-this jumps to the angles menu.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-MENU7:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_MENU7</code></span></p></td>
-<td>Execute navigation menu command 7. For DVD,
-this jumps to the chapter menu.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-LEFT:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_LEFT</code></span></p></td>
-<td>Select the next button to the left in a menu,
-if such a button exists.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_RIGHT</code></span></p></td>
-<td>Select the next button to the right in a menu,
-if such a button exists.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-UP:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_UP</code></span></p></td>
-<td>Select the button above the current one in a
-menu, if such a button exists.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-DOWN:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_DOWN</code></span></p></td>
-<td>Select the button below the current one in a
-menu, if such a button exists.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-ACTIVATE:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_ACTIVATE</code></span></p></td>
-<td>Activate (click) the currently selected
-button in a menu, if such a button exists.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-PREV-ANGLE:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_PREV_ANGLE</code></span></p></td>
-<td>Switch to the previous angle in a
-multiangle feature.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-COMMAND-NEXT-ANGLE:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_COMMAND_NEXT_ANGLE</code></span></p></td>
-<td>Switch to the next angle in a multiangle
-feature.
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstNavigationEventType"></a><h3>enum GstNavigationEventType</h3>
-<pre class="programlisting">typedef enum {
- GST_NAVIGATION_EVENT_INVALID = 0,
- GST_NAVIGATION_EVENT_KEY_PRESS = 1,
- GST_NAVIGATION_EVENT_KEY_RELEASE = 2,
- GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS = 3,
- GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE = 4,
- GST_NAVIGATION_EVENT_MOUSE_MOVE = 5,
- GST_NAVIGATION_EVENT_COMMAND = 6
-} GstNavigationEventType;
-</pre>
-<p>
-Enum values for the various events that an element implementing the
-GstNavigation interface might send up the pipeline.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-NAVIGATION-EVENT-INVALID:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_EVENT_INVALID</code></span></p></td>
-<td>Returned from
-<code class="function">gst_navigation_event_get_type()</code> when the passed event is not a navigation event.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-EVENT-KEY-PRESS:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_EVENT_KEY_PRESS</code></span></p></td>
-<td>A key press event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()"><code class="function">gst_navigation_event_parse_key_event()</code></a> to extract the details from the event.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-EVENT-KEY-RELEASE:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_EVENT_KEY_RELEASE</code></span></p></td>
-<td>A key release event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()"><code class="function">gst_navigation_event_parse_key_event()</code></a> to extract the details from the event.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-EVENT-MOUSE-BUTTON-PRESS:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS</code></span></p></td>
-<td>A mouse button press event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()"><code class="function">gst_navigation_event_parse_mouse_button_event()</code></a> to extract the details from the
-event.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-EVENT-MOUSE-BUTTON-RELEASE:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE</code></span></p></td>
-<td>A mouse button release event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()"><code class="function">gst_navigation_event_parse_mouse_button_event()</code></a> to extract the details from the
-event.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-EVENT-MOUSE-MOVE:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_EVENT_MOUSE_MOVE</code></span></p></td>
-<td>A mouse movement event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()"><code class="function">gst_navigation_event_parse_mouse_move_event()</code></a> to extract the details from the
-event.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-EVENT-COMMAND:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_EVENT_COMMAND</code></span></p></td>
-<td>A navigation command event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()"><code class="function">gst_navigation_event_parse_command()</code></a> to extract the details from the event.
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstNavigationMessageType"></a><h3>enum GstNavigationMessageType</h3>
-<pre class="programlisting">typedef enum {
- GST_NAVIGATION_MESSAGE_INVALID,
- GST_NAVIGATION_MESSAGE_MOUSE_OVER,
- GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED,
- GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
-} GstNavigationMessageType;
-</pre>
-<p>
-A set of notifications that may be received on the bus when navigation
-related status changes.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-NAVIGATION-MESSAGE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_MESSAGE_INVALID</code></span></p></td>
-<td>Returned from
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()"><code class="function">gst_navigation_message_get_type()</code></a> when the passed message is not a
-navigation message.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_MESSAGE_MOUSE_OVER</code></span></p></td>
-<td>Sent when the mouse moves over or leaves a
-clickable region of the output, such as a DVD menu button.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</code></span></p></td>
-<td>Sent when the set of available commands
-changes and should re-queried by interested applications.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_MESSAGE_ANGLES_CHANGED</code></span></p></td>
-<td>Sent when display angles in a multi-angle
-feature (such as a multiangle DVD) change - either angles have appeared or
-disappeared.
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstNavigationQueryType"></a><h3>enum GstNavigationQueryType</h3>
-<pre class="programlisting">typedef enum {
- GST_NAVIGATION_QUERY_INVALID = 0,
- GST_NAVIGATION_QUERY_COMMANDS = 1,
- GST_NAVIGATION_QUERY_ANGLES = 2
-} GstNavigationQueryType;
-</pre>
-<p>
-Tyoes of navigation interface queries.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-NAVIGATION-QUERY-INVALID:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_INVALID</code></span></p></td>
-<td>invalid query
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-QUERY-COMMANDS:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_COMMANDS</code></span></p></td>
-<td>command query
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-NAVIGATION-QUERY-ANGLES:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_ANGLES</code></span></p></td>
-<td>viewing angle query
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-send-event"></a><h3>gst_navigation_send_event ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_navigation_send_event (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-send-key-event"></a><h3>gst_navigation_send_key_event ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_navigation_send_key_event (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *event</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>navigation</code></em> :</span></p></td>
-<td>The navigation interface instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>The type of the key event. Recognised values are "key-press" and
-"key-release"</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>Character representation of the key. This is typically as produced
-by XKeysymToString.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-send-mouse-event"></a><h3>gst_navigation_send_mouse_event ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_navigation_send_mouse_event (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *event</code></em>,
- <em class="parameter"><code><span class="type">int</span> button</code></em>,
- <em class="parameter"><code><span class="type">double</span> x</code></em>,
- <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
-<p>
-Sends a mouse event to the navigation interface. Mouse event coordinates
-are sent relative to the display space of the related output area. This is
-usually the size in pixels of the window associated with the element
-implementing the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> interface.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>navigation</code></em> :</span></p></td>
-<td>The navigation interface instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>The type of mouse event, as a text string. Recognised values are
-"mouse-button-press", "mouse-button-release" and "mouse-move".</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>button</code></em> :</span></p></td>
-<td>The button number of the button being pressed or released. Pass 0
-for mouse-move events.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
-<td>The x coordinate of the mouse event.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
-<td>The y coordinate of the mouse event.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-send-command"></a><h3>gst_navigation_send_command ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_navigation_send_command (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> command</code></em>);</pre>
-<p>
-Sends the indicated command to the navigation interface.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>navigation</code></em> :</span></p></td>
-<td>The navigation interface instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>command</code></em> :</span></p></td>
-<td>The command to issue</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-event-parse-command"></a><h3>gst_navigation_event_parse_command ()</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_navigation_event_parse_command (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *command</code></em>);</pre>
-<p>
-Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command event and retrieve the enum value of the
-associated command.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>command</code></em> :</span></p></td>
-<td>Pointer to GstNavigationCommand to receive the type of the
-navigation event.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the navigation command could be extracted, otherwise FALSE.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-event-parse-key-event"></a><h3>gst_navigation_event_parse_key_event ()</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_navigation_event_parse_key_event
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **key</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
-<td>A pointer to a location to receive the string identifying the key
-press. The returned string is owned by the event, and valid only until the
-event is unreffed.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-event-parse-mouse-button-event"></a><h3>gst_navigation_event_parse_mouse_button_event ()</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_navigation_event_parse_mouse_button_event
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *button</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);</pre>
-<p>
-Retrieve the details of either a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> mouse button press event or
-a mouse button release event. Determine which type the event is using
-<code class="function">gst_navigation_event_get_type()</code> to retrieve the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType"><span class="type">GstNavigationEventType</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>button</code></em> :</span></p></td>
-<td>Pointer to a gint that will receive the button number associated
-with the event.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
-<td>Pointer to a gdouble to receive the x coordinate of the mouse button
-event.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
-<td>Pointer to a gdouble to receive the y coordinate of the mouse button
-event.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the button number and both coordinates could be extracted,
-otherwise FALSE.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-event-parse-mouse-move-event"></a><h3>gst_navigation_event_parse_mouse_move_event ()</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_navigation_event_parse_mouse_move_event
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);</pre>
-<p>
-Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> mouse movement event and extract the coordinates
-of the event.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
-<td>Pointer to a gdouble to receive the x coordinate of the mouse movement.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
-<td>Pointer to a gdouble to receive the y coordinate of the mouse movement.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if both coordinates could be extracted, otherwise FALSE.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-message-get-type"></a><h3>gst_navigation_message_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> gst_navigation_message_get_type
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
-<p>
-Check a bus message to see if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> event, and return
-the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="type">GstNavigationMessageType</span></a> identifying the type of the message if so.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The type of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_INVALID</span></a> if the message is not a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a>
-notification.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-message-new-angles-changed"></a><h3>gst_navigation_message_new_angles_changed ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> * gst_navigation_message_new_angles_changed
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_ANGLES_CHANGED</span></a> for notifying an application
-that the current angle, or current number of angles available in a
-multiangle video has changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> to set as source of the new message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>cur_angle</code></em> :</span></p></td>
-<td>The currently selected angle.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_angles</code></em> :</span></p></td>
-<td>The number of viewing angles now available.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-message-new-commands-changed"></a><h3>gst_navigation_message_new_commands_changed ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> * gst_navigation_message_new_commands_changed
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> to set as source of the new message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-message-new-mouse-over"></a><h3>gst_navigation_message_new_mouse_over ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> * gst_navigation_message_new_mouse_over
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
-<p>
-Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_MOUSE_OVER</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> to set as source of the new message.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>active</code></em> :</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> if the mouse has entered a clickable area of the display.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it over a non-clickable area.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-message-parse-mouse-over"></a><h3>gst_navigation_message_parse_mouse_over ()</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_navigation_message_parse_mouse_over
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *active</code></em>);</pre>
-<p>
-Parse a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message of type <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_MOUSE_OVER</span></a>
-and extract the active/inactive flag. If the mouse over event is marked
-active, it indicates that the mouse is over a clickable area.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>active</code></em> :</span></p></td>
-<td>A pointer to a gboolean to receive the active/inactive state,
-or NULL.</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> if the message could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-message-parse-angles-changed"></a><h3>gst_navigation_message_parse_angles_changed ()</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_navigation_message_parse_angles_changed
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);</pre>
-<p>
-Parse a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
-and extract the <em class="parameter"><code>cur_angle</code></em> and <em class="parameter"><code>n_angles</code></em> parameters.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> to inspect.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>cur_angle</code></em> :</span></p></td>
-<td>A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new current angle number,
-or NULL</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_angles</code></em> :</span></p></td>
-<td>A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new angle count, or NULL.</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> if the message could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-new-angles"></a><h3>gst_navigation_query_new_angles ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> * gst_navigation_query_new_angles (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Create a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles query. When executed, it will
-query the pipeline for the set of currently available angles, which may be
-greater than one in a multiangle video.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The new query.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-get-type"></a><h3>gst_navigation_query_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> gst_navigation_query_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
-<p>
-Inspect a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> and return the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> associated with
-it if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> query.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>The query to inspect</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> of the query, or
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"><span class="type">GST_NAVIGATION_QUERY_INVALID</span></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-new-commands"></a><h3>gst_navigation_query_new_commands ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> * gst_navigation_query_new_commands (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Create a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands query. When executed, it will
-query the pipeline for the set of currently available commands.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The new query.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-parse-angles"></a><h3>gst_navigation_query_parse_angles ()</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_navigation_query_parse_angles (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);</pre>
-<p>
-Parse the current angle number in the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles <em class="parameter"><code>query</code></em> into the
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>cur_angle</code></em> variable, and the number of available
-angles into the <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>n_angles</code></em> variable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>cur_angle</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the currently selected
-angle value from the query, or NULL</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_angles</code></em> :</span></p></td>
-<td>Pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the number of angles
-value from the query, or NULL</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> if the query could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-parse-commands-length"></a><h3>gst_navigation_query_parse_commands_length ()</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_navigation_query_parse_commands_length
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_cmds</code></em>);</pre>
-<p>
-Parse the number of commands in the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands <em class="parameter"><code>query</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_cmds</code></em> :</span></p></td>
-<td>the number of commands in this query.</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> if the query could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-parse-commands-nth"></a><h3>gst_navigation_query_parse_commands_nth ()</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_navigation_query_parse_commands_nth
- (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmd</code></em>);</pre>
-<p>
-Parse the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query and retrieve the <em class="parameter"><code>nth</code></em> command from
-it into <em class="parameter"><code>cmd</code></em>. If the list contains less elements than <em class="parameter"><code>nth</code></em>, <em class="parameter"><code>cmd</code></em> will be
-set to <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-INVALID:CAPS"><span class="type">GST_NAVIGATION_COMMAND_INVALID</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>nth</code></em> :</span></p></td>
-<td>the nth command to retrieve.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>cmd</code></em> :</span></p></td>
-<td>a pointer to store the nth command into.</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> if the query could be successfully parsed. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-set-angles"></a><h3>gst_navigation_query_set_angles ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_navigation_query_set_angles (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);</pre>
-<p>
-Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles query result field in <em class="parameter"><code>query</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>cur_angle</code></em> :</span></p></td>
-<td>the current viewing angle to set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_angles</code></em> :</span></p></td>
-<td>the number of viewing angles to set.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-set-commands"></a><h3>gst_navigation_query_set_commands ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_navigation_query_set_commands (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
- <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query result fields in <em class="parameter"><code>query</code></em>. The number
-of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_cmds</code></em> :</span></p></td>
-<td>the number of commands to set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>A list of <em class="parameter"><code>GstNavigationCommand</code></em> values, <em class="parameter"><code>n_cmds</code></em> entries long.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-navigation-query-set-commandsv"></a><h3>gst_navigation_query_set_commandsv ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_navigation_query_set_commandsv (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmds</code></em>);</pre>
-<p>
-Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query result fields in <em class="parameter"><code>query</code></em>. The number
-of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>n_cmds</code></em> :</span></p></td>
-<td>the number of commands to set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>cmds</code></em> :</span></p></td>
-<td>An array containing <em class="parameter"><code>n_cmds</code></em> <em class="parameter"><code>GstNavigationCommand</code></em> values.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.23</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS"></a><h3>GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</h3>
-<pre class="programlisting">#define GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU GST_NAVIGATION_COMMAND_MENU6
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS"></a><h3>GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</h3>
-<pre class="programlisting">#define GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU GST_NAVIGATION_COMMAND_MENU5
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS"></a><h3>GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</h3>
-<pre class="programlisting">#define GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU GST_NAVIGATION_COMMAND_MENU7
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-NAVIGATION-COMMAND-DVD-MENU:CAPS"></a><h3>GST_NAVIGATION_COMMAND_DVD_MENU</h3>
-<pre class="programlisting">#define GST_NAVIGATION_COMMAND_DVD_MENU GST_NAVIGATION_COMMAND_MENU1
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS"></a><h3>GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</h3>
-<pre class="programlisting">#define GST_NAVIGATION_COMMAND_DVD_ROOT_MENU GST_NAVIGATION_COMMAND_MENU3
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS"></a><h3>GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</h3>
-<pre class="programlisting">#define GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU GST_NAVIGATION_COMMAND_MENU4
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS"></a><h3>GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</h3>
-<pre class="programlisting">#define GST_NAVIGATION_COMMAND_DVD_TITLE_MENU GST_NAVIGATION_COMMAND_MENU2
-</pre>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
index f6cf79d..22aaef3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
@@ -48,7 +48,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp8277872"></a><h3>Linking to this library</h3>
+<a name="idp13061536"></a><h3>Linking to this library</h3>
<p>
libgstpbutils is a general utility library for plugins and applications,
available since gst-plugins-base 0.10.12. It currently provides the
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
index f44bee1..31a3325 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
@@ -78,7 +78,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<p>
</p>
<div class="refsect2">
-<a name="idp25469680"></a><p>
+<a name="idp24082256"></a><p>
Provides codec-specific ulility functions such as functions to provide the
codec profile and level in human-readable string form from header data.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
index d72ff28..d168a17 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
@@ -62,7 +62,7 @@ and encoder, decoder, URI source and URI sink elements</p>
<p>
</p>
<div class="refsect2">
-<a name="idp23481248"></a><p>
+<a name="idp21197200"></a><p>
The above functions provide human-readable strings for media formats
and decoder/demuxer/depayloader/encoder/muxer/payloader elements for use
in error dialogs or other messages shown to users.
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
index 88b58d0..22ba584 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
@@ -67,7 +67,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<p>
</p>
<div class="refsect2">
-<a name="idp23108064"></a><h3>Overview</h3>
+<a name="idp21458976"></a><h3>Overview</h3>
<p>
Using this API, applications can request the installation of missing
GStreamer plugins. These may be missing decoders/demuxers or encoders/muxers
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
index 5e35f4e..2b6b5e0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
@@ -74,7 +74,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp25791424"></a><p>
+<a name="idp24416880"></a><p>
Functions to create, recognise and parse missing-plugins messages for
applications and elements.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index 02b42a2..b45e1a3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -90,7 +90,7 @@ The minor version of GStreamer's gst-plugins-base libraries at compile time.
<hr>
<div class="refsect2">
<a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (90)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (91)
</pre>
<p>
The micro version of GStreamer's gst-plugins-base libraries at compile time.
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
index 37cb530..bd023dd 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
@@ -176,7 +176,7 @@ Note: The API in this module is not yet declared stable.
<p>
</p>
<div class="refsect2">
-<a name="idp18009296"></a><p>
+<a name="idp16389952"></a><p>
The GstRTPCBuffer helper functions makes it easy to parse and create regular
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain compound RTCP packets. These buffers are typically
of 'application/x-rtcp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
index 6be6db9..0464764 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
@@ -110,7 +110,7 @@ RTP packets always contain full frames.
<p>
</p>
<div class="refsect2">
-<a name="idp15409952"></a><h3>Usage</h3>
+<a name="idp14728384"></a><h3>Usage</h3>
<p>
To use this base class, your child element needs to call either
<a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-frame-based" title="gst_rtp_base_audio_payload_set_frame_based ()"><code class="function">gst_rtp_base_audio_payload_set_frame_based()</code></a> or
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
index d59a34e..4bc56fa 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
@@ -151,7 +151,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp17583680"></a><p>
+<a name="idp15981600"></a><p>
The GstRTPBuffer helper functions makes it easy to parse and create regular
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain RTP payloads. These buffers are typically of
'application/x-rtp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
index 0d09025..b48ff3a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
@@ -53,7 +53,7 @@ const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayl
<p>
</p>
<div class="refsect2">
-<a name="idp18193408"></a><p>
+<a name="idp15527360"></a><p>
The GstRTPPayloads helper functions makes it easy to deal with static and dynamic
payloads. Its main purpose is to retrieve properties such as the default clock-rate
and get session bandwidth information.
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
index 71bed71..2cd3101 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
@@ -49,7 +49,7 @@ struct <a class="link" href="gst-plugins-base-libs-gstrtspextension
<p>
</p>
<div class="refsect2">
-<a name="idp9512432"></a><p>
+<a name="idp10284464"></a><p>
This interface is implemented e.g. by the Windows Media Streaming RTSP
exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
index 9cfc1cf..86181c9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
@@ -209,7 +209,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<p>
</p>
<div class="refsect2">
-<a name="idp24049056"></a><p>
+<a name="idp22662448"></a><p>
The GstSDPMessage helper functions makes it easy to parse and create SDP
messages.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
index 21fbb01..634834a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
+++ b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
-<link rel="next" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">
+<link rel="next" href="gstreamer-ffft.html" title="FFT Library">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="gstreamer-audio.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstmixer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-ffft.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-base-libs-gststreamvolume.synopsis" class="shortcut">Top</a>
@@ -86,7 +86,7 @@ GstStreamVolume requires
<p>
</p>
<div class="refsect2">
-<a name="idp12650448"></a><p>
+<a name="idp12023536"></a><p>
This interface is implemented by elements that provide a stream volume. Examples for
such elements are <span class="type">volume</span> and <span class="type">playbin2</span>.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttag.html b/docs/libs/html/gst-plugins-base-libs-gsttag.html
index 154e108..f38cba5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttag.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttag.html
@@ -91,7 +91,7 @@ enum <a class="link" href="gst-plugins-base-libs-gsttag.html#GstT
<p>
</p>
<div class="refsect2">
-<a name="idp18277216"></a><p>
+<a name="idp17468672"></a><p>
Contains additional standardized GStreamer tag definitions for plugins
and applications, and functions to register them with the GStreamer
tag system.
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
index bcc8b4e..29cb633 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
@@ -51,7 +51,7 @@ enum <a class="link" href="gst-plugins-base-libs-gsttagdemux.html
<p>
</p>
<div class="refsect2">
-<a name="idp6790448"></a><h3>Deriving from GstTagDemux</h3>
+<a name="idp15580112"></a><h3>Deriving from GstTagDemux</h3>
<p>
Provides a base class for demuxing tags at the beginning or end of a
stream and handles things like typefinding, querying, seeking, and
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
index 1fd6a34..a1e6daf 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
@@ -61,7 +61,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<p>
</p>
<div class="refsect2">
-<a name="idp22109504"></a><p>
+<a name="idp20818768"></a><p>
Contains various utility functions for plugins to parse or create
ID3 tags and map ID3v2 identifiers to and from GStreamer identifiers.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
index b02fdda..1f3cbb5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
@@ -56,7 +56,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<p>
</p>
<div class="refsect2">
-<a name="idp22817376"></a><p>
+<a name="idp22582832"></a><p>
Provides helper functions to convert between the various ISO-639 language
codes, and to map language codes to language names.
</p>
@@ -79,8 +79,9 @@ audio editor).
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>NULL-terminated string array with two-letter language codes. Free
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed.</td>
+<td>NULL-terminated string array with two-letter
+language codes. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr></tbody>
</table></div>
<p class="since">Since 0.10.26</p>
@@ -242,7 +243,7 @@ Check if a given string contains a known ISO 639 language code.
This is useful in situations where it's not clear whether a given
string is a language code (which should be put into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS"><span class="type">GST_TAG_LANGUAGE_CODE</span></a>
tag) or a free-form language name descriptor (which should be put into a
-<span class="type">GST_TAG_LANGUAGE_NAME</span> tag instead).
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS"><span class="type">GST_TAG_LANGUAGE_NAME</span></a> tag instead).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
index 3946859..387ffe0 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
@@ -348,8 +348,9 @@ an image in a camera application).
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>NULL-terminated array of license strings. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>
-when no longer needed.</td>
+<td>NULL-terminated array of license strings. Free
+with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr></tbody>
</table></div>
<p class="since">Since 0.10.36</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
index b2891fb..c755c7b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
@@ -50,7 +50,7 @@ struct <a class="link" href="gst-plugins-base-libs-gsttagmux.html#G
<p>
</p>
<div class="refsect2">
-<a name="idp11769424"></a><h3>Deriving from GstTagMux</h3>
+<a name="idp9718656"></a><h3>Deriving from GstTagMux</h3>
<p>
Provides a base class for adding tags at the beginning or end of a
stream.
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
index e7c15f6..073e586 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
@@ -66,7 +66,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
<p>
</p>
<div class="refsect2">
-<a name="idp23964256"></a><p>
+<a name="idp17451568"></a><p>
Contains various utility functions for plugins to parse or create
vorbiscomments and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s.
</p>
@@ -175,8 +175,10 @@ vorbiscomment packet.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allocated key=value strings. Free with
-g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)</td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allocated
+key=value strings. Free with g_list_foreach (list, (GFunc) g_free, NULL)
+plus g_list_free (list). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
</tr>
</tbody>
</table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
index 3458e2d..308d7e7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
@@ -156,7 +156,9 @@ Gets the list of supported schemas in the xmp lib
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of strings with the schema names</td>
+<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of strings with the
+schema names. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
</tr></tbody>
</table></div>
<p class="since">Since 0.10.33</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
index 9855968..58d0972 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
@@ -57,7 +57,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp22384768"></a><p>
+<a name="idp22401328"></a><p>
This interface is implemented by elements that are able to do XMP serialization. Examples for
such elements are <span class="type">jifmux</span> and <span class="type">qtmux</span>.
</p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttuner.html b/docs/libs/html/gst-plugins-base-libs-gsttuner.html
deleted file mode 100644
index 1b925c6..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gsttuner.html
+++ /dev/null
@@ -1,777 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gsttuner</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
-<link rel="prev" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
-<link rel="next" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">
-<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gstnavigation.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-interfaces.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttunerchannel.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-base-libs-gsttuner.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttuner.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttuner.object-hierarchy" class="shortcut">Object Hierarchy</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttuner.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gsttuner"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttuner.top_of_page"></a>gsttuner</span></h2>
-<p>gsttuner — Interface for elements providing tuner operations</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gsttuner.synopsis"></a><h2>Synopsis</h2>
-<a name="GstTuner"></a><pre class="synopsis">
-#include &lt;gst/interfaces/tuner.h&gt;
-
- <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-struct" title="GstTuner">GstTuner</a>;
-struct <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTunerInterface" title="struct GstTunerInterface">GstTunerInterface</a>;
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels" title="gst_tuner_list_channels ()">gst_tuner_list_channels</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="returnvalue">GstTunerChannel</span></a> * <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-channel" title="gst_tuner_get_channel ()">gst_tuner_get_channel</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-channel" title="gst_tuner_set_channel ()">gst_tuner_set_channel</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-norms" title="gst_tuner_list_norms ()">gst_tuner_list_norms</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);
-<a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="returnvalue">GstTunerNorm</span></a> * <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-norm" title="gst_tuner_get_norm ()">gst_tuner_get_norm</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-norm" title="gst_tuner_set_norm ()">gst_tuner_set_norm</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> *norm</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-frequency" title="gst_tuner_get_frequency ()">gst_tuner_get_frequency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency" title="gst_tuner_set_frequency ()">gst_tuner_set_frequency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> frequency</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength" title="gst_tuner_signal_strength ()">gst_tuner_signal_strength</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);
-<a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="returnvalue">GstTunerNorm</span></a> * <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-norm-by-name" title="gst_tuner_find_norm_by_name ()">gst_tuner_find_norm_by_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *norm</code></em>);
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="returnvalue">GstTunerChannel</span></a> * <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-channel-by-name" title="gst_tuner_find_channel_by_name ()">gst_tuner_find_channel_by_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *channel</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-channel-changed" title="gst_tuner_channel_changed ()">gst_tuner_channel_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-norm-changed" title="gst_tuner_norm_changed ()">gst_tuner_norm_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> *norm</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-frequency-changed" title="gst_tuner_frequency_changed ()">gst_tuner_frequency_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> frequency</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-changed" title="gst_tuner_signal_changed ()">gst_tuner_signal_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> signal</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttuner.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
- GInterface
- +----GstTuner
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttuner.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-channel-changed" title='The "channel-changed" signal'>channel-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
- "<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed" title='The "frequency-changed" signal'>frequency-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
- "<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed" title='The "norm-changed" signal'>norm-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
- "<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed" title='The "signal-changed" signal'>signal-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttuner.description"></a><h2>Description</h2>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp15487232"></a><p>
-The GstTuner interface is provided by elements that have the ability to
-tune into multiple input signals, for example TV or radio capture cards.
-</p>
-<p>
-The interpretation of 'tuning into' an input stream depends on the element
-implementing the interface. For v4lsrc, it might imply selection of an
-input source and/or frequency to be configured on a TV card. Another
-GstTuner implementation might be to allow selection of an active input pad
-from multiple input pads.
-</p>
-<p>
-That said, the GstTuner interface functions are biased toward the
-TV capture scenario.
-</p>
-<p>
-The general parameters provided are for configuration are:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">Selection of a current <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>. The current channel
-represents the input source (e.g. Composite, S-Video etc for TV capture).
-</li>
-<li class="listitem">The <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> for the channel. The norm chooses the
-interpretation of the incoming signal for the current channel. For example,
-PAL or NTSC, or more specific variants there-of.
-</li>
-<li class="listitem">Channel frequency. If the current channel has the ability to tune
-between multiple frequencies (if it has the GST_TUNER_CHANNEL_FREQUENCY flag)
-then the frequency can be changed/retrieved via the
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency" title="gst_tuner_set_frequency ()"><code class="function">gst_tuner_set_frequency()</code></a> and <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-frequency" title="gst_tuner_get_frequency ()"><code class="function">gst_tuner_get_frequency()</code></a> methods.
-</li>
-</ul></div>
-<p>
-</p>
-<p>
-Where applicable, the signal strength can be retrieved and/or monitored
-via a signal.
-</p>
-</div>
-<p>
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttuner.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstTuner-struct"></a><h3>GstTuner</h3>
-<pre class="programlisting">typedef struct _GstTuner GstTuner;</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstTunerInterface"></a><h3>struct GstTunerInterface</h3>
-<pre class="programlisting">struct GstTunerInterface {
- GTypeInterface iface;
-
- /* virtual functions */
- const GList * (* list_channels) (GstTuner *tuner);
- void (* set_channel) (GstTuner *tuner,
- GstTunerChannel *channel);
- GstTunerChannel *
- (* get_channel) (GstTuner *tuner);
-
- const GList * (* list_norms) (GstTuner *tuner);
- void (* set_norm) (GstTuner *tuner,
- GstTunerNorm *norm);
- GstTunerNorm *(* get_norm) (GstTuner *tuner);
-
- void (* set_frequency) (GstTuner *tuner,
- GstTunerChannel *channel,
- gulong frequency);
- gulong (* get_frequency) (GstTuner *tuner,
- GstTunerChannel *channel);
- gint (* signal_strength) (GstTuner *tuner,
- GstTunerChannel *channel);
-
- /* signals */
- void (*channel_changed) (GstTuner *tuner,
- GstTunerChannel *channel);
- void (*norm_changed) (GstTuner *tuner,
- GstTunerNorm *norm);
- void (*frequency_changed) (GstTuner *tuner,
- GstTunerChannel *channel,
- gulong frequency);
- void (*signal_changed) (GstTuner *tuner,
- GstTunerChannel *channel,
- gint signal);
-};
-</pre>
-<p>
-Tuner interface.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTunerInterface.iface"></a>iface</code></em>;</span></p></td>
-<td>the parent interface</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.list-channels"></a>list_channels</code></em> ()</span></p></td>
-<td>list available channels</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.set-channel"></a>set_channel</code></em> ()</span></p></td>
-<td>set to a channel</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.get-channel"></a>get_channel</code></em> ()</span></p></td>
-<td>return the current channel</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.list-norms"></a>list_norms</code></em> ()</span></p></td>
-<td>list available norms</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.set-norm"></a>set_norm</code></em> ()</span></p></td>
-<td>set a norm</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.get-norm"></a>get_norm</code></em> ()</span></p></td>
-<td>return the current norm</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.set-frequency"></a>set_frequency</code></em> ()</span></p></td>
-<td>set the frequency</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.get-frequency"></a>get_frequency</code></em> ()</span></p></td>
-<td>return the current frequency</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.signal-strength"></a>signal_strength</code></em> ()</span></p></td>
-<td>get the signal strength</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.channel-changed"></a>channel_changed</code></em> ()</span></p></td>
-<td>default handler for channel changed notification</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.norm-changed"></a>norm_changed</code></em> ()</span></p></td>
-<td>default handler for norm changed notification</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.frequency-changed"></a>frequency_changed</code></em> ()</span></p></td>
-<td>default handler for frequency changed notification</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTunerInterface.signal-changed"></a>signal_changed</code></em> ()</span></p></td>
-<td>default handler for signal-strength changed notification</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-list-channels"></a><h3>gst_tuner_list_channels ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_tuner_list_channels (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);</pre>
-<p>
-Retrieve a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannels</span></a> available
-(e.g. 'composite', 's-video', ...) from the given tuner object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) to get the channels from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A list of channels available on this tuner. The list is
-owned by the GstTuner and must not be freed.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-get-channel"></a><h3>gst_tuner_get_channel ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="returnvalue">GstTunerChannel</span></a> * gst_tuner_get_channel (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);</pre>
-<p>
-Retrieve the current channel from the tuner.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) to get the current channel from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the current channel of the tuner object.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-set-channel"></a><h3>gst_tuner_set_channel ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tuner_set_channel (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);</pre>
-<p>
-Tunes the object to the given channel, which should be one of the
-channels returned by <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels" title="gst_tuner_list_channels ()"><code class="function">gst_tuner_list_channels()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the channel.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>the channel to tune to.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-list-norms"></a><h3>gst_tuner_list_norms ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_tuner_list_norms (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);</pre>
-<p>
-Retrieve a GList of available <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> settings for the currently
-tuned channel on the given tuner object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (*a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) to get the list of norms from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A list of norms available on the current channel for this
-tuner object. The list is owned by the GstTuner and must not
-be freed.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-get-norm"></a><h3>gst_tuner_get_norm ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="returnvalue">GstTunerNorm</span></a> * gst_tuner_get_norm (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>);</pre>
-<p>
-Get the current video norm from the given tuner object for the
-currently selected channel.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) to get the current norm from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the current norm.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-set-norm"></a><h3>gst_tuner_set_norm ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tuner_set_norm (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> *norm</code></em>);</pre>
-<p>
-Changes the video norm on this tuner to the given norm, which should be
-one of the norms returned by <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-norms" title="gst_tuner_list_norms ()"><code class="function">gst_tuner_list_norms()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) to set the norm on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>norm</code></em> :</span></p></td>
-<td>the norm to use for the current channel.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-get-frequency"></a><h3>gst_tuner_get_frequency ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="returnvalue">gulong</span></a> gst_tuner_get_frequency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);</pre>
-<p>
-Retrieve the current frequency from the given channel. As for
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency" title="gst_tuner_set_frequency ()"><code class="function">gst_tuner_set_frequency()</code></a>, the <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> must support frequency
-operations, as indicated by the GST_TUNER_CHANNEL_FREQUENCY flag.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the given channel.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> to retrieve the frequency from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The current frequency, or 0 on error.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-set-frequency"></a><h3>gst_tuner_set_frequency ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tuner_set_frequency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> frequency</code></em>);</pre>
-<p>
-Sets a tuning frequency on the given tuner/channel. Note that this
-requires the given channel to be a "tuning" channel, which can be
-checked using <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS" title="GST_TUNER_CHANNEL_HAS_FLAG()"><code class="function">GST_TUNER_CHANNEL_HAS_FLAG()</code></a>, with the proper flag
-being GST_TUNER_CHANNEL_FREQUENCY.
-</p>
-<p>
-The frequency is in Hz, with minimum steps indicated by the
-frequency_multiplicator provided in the <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>. The
-valid range is provided in the min_frequency and max_frequency properties
-of the <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the given channel.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> to set the frequency on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frequency</code></em> :</span></p></td>
-<td>The frequency to tune in to.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-signal-strength"></a><h3>gst_tuner_signal_strength ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_tuner_signal_strength (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);</pre>
-<p>
-Get the strength of the signal on this channel. Note that this
-requires the current channel to be a "tuning" channel, i.e. a
-channel on which frequency can be set. This can be checked using
-<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS" title="GST_TUNER_CHANNEL_HAS_FLAG()"><code class="function">GST_TUNER_CHANNEL_HAS_FLAG()</code></a>, and the appropriate flag to check
-for is GST_TUNER_CHANNEL_FREQUENCY.
-</p>
-<p>
-The valid range of the signal strength is indicated in the
-min_signal and max_signal properties of the <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> (a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>) that owns the given channel.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>the <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> to get the signal strength from.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>Signal strength, or 0 on error.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-find-norm-by-name"></a><h3>gst_tuner_find_norm_by_name ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="returnvalue">GstTunerNorm</span></a> * gst_tuner_find_norm_by_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *norm</code></em>);</pre>
-<p>
-Look up a <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> by name.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>norm</code></em> :</span></p></td>
-<td>A string containing the name of a <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a>, or NULL if no norm with the provided name
-is available.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-find-channel-by-name"></a><h3>gst_tuner_find_channel_by_name ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="returnvalue">GstTunerChannel</span></a> * gst_tuner_find_channel_by_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *channel</code></em>);</pre>
-<p>
-Look up a <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> by name.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>A string containing the name of a <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>, or NULL if no channel with the provided name
-is available.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-channel-changed"></a><h3>gst_tuner_channel_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tuner_channel_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>);</pre>
-<p>
-Called by elements implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface when the
-current channel changes. Fires the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-channel-changed" title='The "channel-changed" signal'><span class="type">"channel-changed"</span></a> signal.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> instance</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-norm-changed"></a><h3>gst_tuner_norm_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tuner_norm_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> *norm</code></em>);</pre>
-<p>
-Called by elements implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface when the
-current norm changes. Fires the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed" title='The "norm-changed" signal'><span class="type">"norm-changed"</span></a> signal.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>norm</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> instance</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-frequency-changed"></a><h3>gst_tuner_frequency_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tuner_frequency_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> frequency</code></em>);</pre>
-<p>
-Called by elements implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface when the
-configured frequency changes. Fires the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed" title='The "frequency-changed" signal'><span class="type">"frequency-changed"</span></a>
-signal on the tuner, and the <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed" title='The "frequency-changed" signal'><span class="type">"frequency-changed"</span></a> signal
-on the channel.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>The current <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frequency</code></em> :</span></p></td>
-<td>The new frequency setting</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-tuner-signal-changed"></a><h3>gst_tuner_signal_changed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tuner_signal_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> signal</code></em>);</pre>
-<p>
-Called by elements implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface when the
-incoming signal strength changes. Fires the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed" title='The "signal-changed" signal'><span class="type">"signal-changed"</span></a>
-signal on the tuner and the <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed" title='The "signal-changed" signal'><span class="type">"signal-changed"</span></a> signal on
-the channel.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>The current <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>signal</code></em> :</span></p></td>
-<td>The new signal strength</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttuner.signal-details"></a><h2>Signal Details</h2>
-<div class="refsect2">
-<a name="GstTuner-channel-changed"></a><h3>The <code class="literal">"channel-changed"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner,
- <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Reports that the current <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> has changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>The element providing the GstTuner interface</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>The new configured channel.</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>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstTuner-frequency-changed"></a><h3>The <code class="literal">"frequency-changed"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner,
- <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *frequency,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</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) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Reports that the current frequency has changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>The element providing the GstTuner interface</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frequency</code></em> :</span></p></td>
-<td>The new frequency (an unsigned long)</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>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstTuner-norm-changed"></a><h3>The <code class="literal">"norm-changed"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner,
- <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> *norm,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Reports that the current <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> has changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>The element providing the GstTuner interface</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>norm</code></em> :</span></p></td>
-<td>The new configured norm.</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>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstTuner-signal-changed"></a><h3>The <code class="literal">"signal-changed"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> *tuner,
- <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *channel,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> signal,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Reports that the signal strength has changed.
-</p>
-<p>
-See Also: <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength" title="gst_tuner_signal_strength ()"><code class="function">gst_tuner_signal_strength()</code></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tuner</code></em> :</span></p></td>
-<td>The element providing the GstTuner interface</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>The current <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>signal</code></em> :</span></p></td>
-<td>The new signal strength (an integer)</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>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttunerchannel.html b/docs/libs/html/gst-plugins-base-libs-gsttunerchannel.html
deleted file mode 100644
index e0aefea..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gsttunerchannel.html
+++ /dev/null
@@ -1,264 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gsttunerchannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">
-<link rel="next" href="gst-plugins-base-libs-gsttunernorm.html" title="gsttunernorm">
-<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gsttuner.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-interfaces.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttunernorm.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-base-libs-gsttunerchannel.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttunerchannel.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttunerchannel.object-hierarchy" class="shortcut">Object Hierarchy</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttunerchannel.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gsttunerchannel"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttunerchannel.top_of_page"></a>gsttunerchannel</span></h2>
-<p>gsttunerchannel — A channel from an element implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a>
-interface.</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gsttunerchannel.synopsis"></a><h2>Synopsis</h2>
-<a name="GstTunerChannel"></a><pre class="synopsis">
-#include &lt;gst/interfaces/tuner.h&gt;
-
-struct <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct" title="struct GstTunerChannel">GstTunerChannel</a>;
-enum <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags" title="enum GstTunerChannelFlags">GstTunerChannelFlags</a>;
-#define <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS" title="GST_TUNER_CHANNEL_HAS_FLAG()">GST_TUNER_CHANNEL_HAS_FLAG</a> (channel,
- flag)
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunerchannel.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>
- +----GstTunerChannel
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunerchannel.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed" title='The "frequency-changed" signal'>frequency-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
- "<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed" title='The "signal-changed" signal'>signal-changed</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunerchannel.description"></a><h2>Description</h2>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp16389248"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> object is provided by an element implementing
-the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface.
-</p>
-<p>
-GstTunerChannel provides a name and flags to determine the type and
-capabilities of the channel. If the GST_TUNER_CHANNEL_FREQUENCY flag is
-set, then the channel also information about the minimum and maximum
-frequency, and range of the reported signal strength.
-</p>
-</div>
-<p>
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunerchannel.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstTunerChannel-struct"></a><h3>struct GstTunerChannel</h3>
-<pre class="programlisting">struct GstTunerChannel {
- gchar *label;
- GstTunerChannelFlags flags;
- gfloat freq_multiplicator;
- gulong min_frequency;
- gulong max_frequency;
- gint min_signal;
- gint max_signal;
-};
-</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstTunerChannel-struct.label"></a>label</code></em>;</span></p></td>
-<td>A string containing a descriptive name for this channel</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags" title="enum GstTunerChannelFlags"><span class="type">GstTunerChannelFlags</span></a> <em class="structfield"><code><a name="GstTunerChannel-struct.flags"></a>flags</code></em>;</span></p></td>
-<td>A set of <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags" title="enum GstTunerChannelFlags"><span class="type">GstTunerChannelFlags</span></a> for this channel</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstTunerChannel-struct.freq-multiplicator"></a>freq_multiplicator</code></em>;</span></p></td>
-<td>The step size (in Hz) for the frequency setting.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> <em class="structfield"><code><a name="GstTunerChannel-struct.min-frequency"></a>min_frequency</code></em>;</span></p></td>
-<td>Minimum valid frequency setting (in Hz).</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> <em class="structfield"><code><a name="GstTunerChannel-struct.max-frequency"></a>max_frequency</code></em>;</span></p></td>
-<td>Maximum valid frequency setting (in Hz).</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstTunerChannel-struct.min-signal"></a>min_signal</code></em>;</span></p></td>
-<td>Minimum reported signal strength value.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstTunerChannel-struct.max-signal"></a>max_signal</code></em>;</span></p></td>
-<td>Maximum reported signal strength value.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstTunerChannelFlags"></a><h3>enum GstTunerChannelFlags</h3>
-<pre class="programlisting">typedef enum {
- GST_TUNER_CHANNEL_INPUT = (1&lt;&lt;0),
- GST_TUNER_CHANNEL_OUTPUT = (1&lt;&lt;1),
- GST_TUNER_CHANNEL_FREQUENCY = (1&lt;&lt;2),
- GST_TUNER_CHANNEL_AUDIO = (1&lt;&lt;3)
-} GstTunerChannelFlags;
-</pre>
-<p>
-An enumeration for flags indicating the available capabilities
-of a <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-TUNER-CHANNEL-INPUT:CAPS"></a><span class="term"><code class="literal">GST_TUNER_CHANNEL_INPUT</code></span></p></td>
-<td>The channel is for input
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TUNER-CHANNEL-OUTPUT:CAPS"></a><span class="term"><code class="literal">GST_TUNER_CHANNEL_OUTPUT</code></span></p></td>
-<td>The channel is for output
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TUNER-CHANNEL-FREQUENCY:CAPS"></a><span class="term"><code class="literal">GST_TUNER_CHANNEL_FREQUENCY</code></span></p></td>
-<td>The channel has a frequency setting
- and signal strength.
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TUNER-CHANNEL-AUDIO:CAPS"></a><span class="term"><code class="literal">GST_TUNER_CHANNEL_AUDIO</code></span></p></td>
-<td>The channel carries audio.
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-TUNER-CHANNEL-HAS-FLAG:CAPS"></a><h3>GST_TUNER_CHANNEL_HAS_FLAG()</h3>
-<pre class="programlisting">#define GST_TUNER_CHANNEL_HAS_FLAG(channel, flag)</pre>
-<p>
-Macro to check if the given flag is set on a channel
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>channel</code></em> :</span></p></td>
-<td>A <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
-<td>The flag to check for</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunerchannel.signal-details"></a><h2>Signal Details</h2>
-<div class="refsect2">
-<a name="GstTunerChannel-frequency-changed"></a><h3>The <code class="literal">"frequency-changed"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *tunerchannel,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> frequency,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Reports that the current frequency has changed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tunerchannel</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>frequency</code></em> :</span></p></td>
-<td>The new frequency (an unsigned long)</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>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstTunerChannel-signal-changed"></a><h3>The <code class="literal">"signal-changed"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> *tunerchannel,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> signal,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Reports that the signal strength has changed.
-</p>
-<p>
-See Also: <a class="link" href="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength" title="gst_tuner_signal_strength ()"><code class="function">gst_tuner_signal_strength()</code></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>tunerchannel</code></em> :</span></p></td>
-<td>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>signal</code></em> :</span></p></td>
-<td>The new signal strength (an integer)</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>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttunernorm.html b/docs/libs/html/gst-plugins-base-libs-gsttunernorm.html
deleted file mode 100644
index 717afd8..0000000
--- a/docs/libs/html/gst-plugins-base-libs-gsttunernorm.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gsttunernorm</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">
-<link rel="next" href="gstreamer-riff.html" title="Riff Media Library">
-<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gsttunerchannel.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-interfaces.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-riff.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-base-libs-gsttunernorm.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttunernorm.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-libs-gsttunernorm.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
-<div class="refentry">
-<a name="gst-plugins-base-libs-gsttunernorm"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttunernorm.top_of_page"></a>gsttunernorm</span></h2>
-<p>gsttunernorm — Encapsulates information about the data format(s)
-for a <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gst-plugins-base-libs-gsttunernorm.synopsis"></a><h2>Synopsis</h2>
-<a name="GstTunerNorm"></a><pre class="synopsis">
-#include &lt;gst/interfaces/tuner.h&gt;
-
-struct <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct" title="struct GstTunerNorm">GstTunerNorm</a>;
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunernorm.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>
- +----GstTunerNorm
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunernorm.description"></a><h2>Description</h2>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp14922960"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> object is created by an element implementing the
-<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface and encapsulates the selection of a capture/output format
-for a selected <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.
-</p>
-</div>
-<p>
-</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttunernorm.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstTunerNorm-struct"></a><h3>struct GstTunerNorm</h3>
-<pre class="programlisting">struct GstTunerNorm {
- gchar *label;
- GValue framerate;
-};
-</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstTunerNorm-struct.label"></a>label</code></em>;</span></p></td>
-<td>A string containing a descriptive name for the norm</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GstTunerNorm-struct.framerate"></a>framerate</code></em>;</span></p></td>
-<td>A GValue containing the framerate associated with this norm,
-if any. (May be unset).</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideo.html b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
index 640f9ca..f829ac9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideo.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
@@ -42,7 +42,138 @@
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS" title="GST_VIDEO_FPS_RANGE">GST_VIDEO_FPS_RANGE</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SIZE-RANGE:CAPS" title="GST_VIDEO_SIZE_RANGE">GST_VIDEO_SIZE_RANGE</a>
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite">GstVideoChromaSite</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix">GstVideoColorMatrix</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries" title="enum GstVideoColorPrimaries">GstVideoColorPrimaries</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange" title="enum GstVideoColorRange">GstVideoColorRange</a>;
+ <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry">GstVideoColorimetry</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFlags" title="enum GstVideoFlags">GstVideoFlags</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags" title="enum GstVideoFormatFlags">GstVideoFormatFlags</a>;
+<span class="returnvalue">void</span> (<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack" title="GstVideoFormatPack ()">*GstVideoFormatPack</a>) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);
+<span class="returnvalue">void</span> (<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack" title="GstVideoFormatUnpack ()">*GstVideoFormatUnpack</a>) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode">GstVideoInterlaceMode</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction">GstVideoTransferFunction</a>;
enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat">GstVideoFormat</a>;
+struct <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo">GstVideoFormatInfo</a>;
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-BITS:CAPS" title="GST_VIDEO_FORMAT_INFO_BITS()">GST_VIDEO_FORMAT_INFO_BITS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DATA:CAPS" title="GST_VIDEO_FORMAT_INFO_DATA()">GST_VIDEO_FORMAT_INFO_DATA</a> (info,
+ planes,
+ comp)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DEPTH:CAPS" title="GST_VIDEO_FORMAT_INFO_DEPTH()">GST_VIDEO_FORMAT_INFO_DEPTH</a> (info,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FLAGS:CAPS" title="GST_VIDEO_FORMAT_INFO_FLAGS()">GST_VIDEO_FORMAT_INFO_FLAGS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FORMAT:CAPS" title="GST_VIDEO_FORMAT_INFO_FORMAT()">GST_VIDEO_FORMAT_INFO_FORMAT</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-ALPHA:CAPS" title="GST_VIDEO_FORMAT_INFO_HAS_ALPHA()">GST_VIDEO_FORMAT_INFO_HAS_ALPHA</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-PALETTE:CAPS" title="GST_VIDEO_FORMAT_INFO_HAS_PALETTE()">GST_VIDEO_FORMAT_INFO_HAS_PALETTE</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-H-SUB:CAPS" title="GST_VIDEO_FORMAT_INFO_H_SUB()">GST_VIDEO_FORMAT_INFO_H_SUB</a> (info,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-GRAY:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_GRAY()">GST_VIDEO_FORMAT_INFO_IS_GRAY</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-LE:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_LE()">GST_VIDEO_FORMAT_INFO_IS_LE</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-RGB:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_RGB()">GST_VIDEO_FORMAT_INFO_IS_RGB</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-YUV:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_YUV()">GST_VIDEO_FORMAT_INFO_IS_YUV</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-COMPLEX:CAPS" title="GST_VIDEO_FORMAT_INFO_IS_COMPLEX()">GST_VIDEO_FORMAT_INFO_IS_COMPLEX</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-NAME:CAPS" title="GST_VIDEO_FORMAT_INFO_NAME()">GST_VIDEO_FORMAT_INFO_NAME</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-COMPONENTS:CAPS" title="GST_VIDEO_FORMAT_INFO_N_COMPONENTS()">GST_VIDEO_FORMAT_INFO_N_COMPONENTS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-PLANES:CAPS" title="GST_VIDEO_FORMAT_INFO_N_PLANES()">GST_VIDEO_FORMAT_INFO_N_PLANES</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-OFFSET:CAPS" title="GST_VIDEO_FORMAT_INFO_OFFSET()">GST_VIDEO_FORMAT_INFO_OFFSET</a> (info,
+ offsets,
+ comp)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PLANE:CAPS" title="GST_VIDEO_FORMAT_INFO_PLANE()">GST_VIDEO_FORMAT_INFO_PLANE</a> (info,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-POFFSET:CAPS" title="GST_VIDEO_FORMAT_INFO_POFFSET()">GST_VIDEO_FORMAT_INFO_POFFSET</a> (info,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PSTRIDE:CAPS" title="GST_VIDEO_FORMAT_INFO_PSTRIDE()">GST_VIDEO_FORMAT_INFO_PSTRIDE</a> (info,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-HEIGHT:CAPS" title="GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT()">GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT</a> (info,
+ c,
+ h)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-WIDTH:CAPS" title="GST_VIDEO_FORMAT_INFO_SCALE_WIDTH()">GST_VIDEO_FORMAT_INFO_SCALE_WIDTH</a> (info,
+ c,
+ w)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SHIFT:CAPS" title="GST_VIDEO_FORMAT_INFO_SHIFT()">GST_VIDEO_FORMAT_INFO_SHIFT</a> (info,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-STRIDE:CAPS" title="GST_VIDEO_FORMAT_INFO_STRIDE()">GST_VIDEO_FORMAT_INFO_STRIDE</a> (info,
+ strides,
+ comp)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-W-SUB:CAPS" title="GST_VIDEO_FORMAT_INFO_W_SUB()">GST_VIDEO_FORMAT_INFO_W_SUB</a> (info,
+ c)
+struct <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo">GstVideoInfo</a>;
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DATA:CAPS" title="GST_VIDEO_INFO_COMP_DATA()">GST_VIDEO_INFO_COMP_DATA</a> (i,
+ d,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DEPTH:CAPS" title="GST_VIDEO_INFO_COMP_DEPTH()">GST_VIDEO_INFO_COMP_DEPTH</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-HEIGHT:CAPS" title="GST_VIDEO_INFO_COMP_HEIGHT()">GST_VIDEO_INFO_COMP_HEIGHT</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-OFFSET:CAPS" title="GST_VIDEO_INFO_COMP_OFFSET()">GST_VIDEO_INFO_COMP_OFFSET</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PLANE:CAPS" title="GST_VIDEO_INFO_COMP_PLANE()">GST_VIDEO_INFO_COMP_PLANE</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-POFFSET:CAPS" title="GST_VIDEO_INFO_COMP_POFFSET()">GST_VIDEO_INFO_COMP_POFFSET</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PSTRIDE:CAPS" title="GST_VIDEO_INFO_COMP_PSTRIDE()">GST_VIDEO_INFO_COMP_PSTRIDE</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-STRIDE:CAPS" title="GST_VIDEO_INFO_COMP_STRIDE()">GST_VIDEO_INFO_COMP_STRIDE</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-WIDTH:CAPS" title="GST_VIDEO_INFO_COMP_WIDTH()">GST_VIDEO_INFO_COMP_WIDTH</a> (i,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAGS:CAPS" title="GST_VIDEO_INFO_FLAGS()">GST_VIDEO_INFO_FLAGS</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-IS-SET:CAPS" title="GST_VIDEO_INFO_FLAG_IS_SET()">GST_VIDEO_INFO_FLAG_IS_SET</a> (i,
+ flag)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-SET:CAPS" title="GST_VIDEO_INFO_FLAG_SET()">GST_VIDEO_INFO_FLAG_SET</a> (i,
+ flag)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-UNSET:CAPS" title="GST_VIDEO_INFO_FLAG_UNSET()">GST_VIDEO_INFO_FLAG_UNSET</a> (i,
+ flag)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS" title="GST_VIDEO_INFO_FORMAT()">GST_VIDEO_INFO_FORMAT</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-D:CAPS" title="GST_VIDEO_INFO_FPS_D()">GST_VIDEO_INFO_FPS_D</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-N:CAPS" title="GST_VIDEO_INFO_FPS_N()">GST_VIDEO_INFO_FPS_N</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HAS-ALPHA:CAPS" title="GST_VIDEO_INFO_HAS_ALPHA()">GST_VIDEO_INFO_HAS_ALPHA</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HEIGHT:CAPS" title="GST_VIDEO_INFO_HEIGHT()">GST_VIDEO_INFO_HEIGHT</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-INTERLACE-MODE:CAPS" title="GST_VIDEO_INFO_INTERLACE_MODE()">GST_VIDEO_INFO_INTERLACE_MODE</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-GRAY:CAPS" title="GST_VIDEO_INFO_IS_GRAY()">GST_VIDEO_INFO_IS_GRAY</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-INTERLACED:CAPS" title="GST_VIDEO_INFO_IS_INTERLACED()">GST_VIDEO_INFO_IS_INTERLACED</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-RGB:CAPS" title="GST_VIDEO_INFO_IS_RGB()">GST_VIDEO_INFO_IS_RGB</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-YUV:CAPS" title="GST_VIDEO_INFO_IS_YUV()">GST_VIDEO_INFO_IS_YUV</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-NAME:CAPS" title="GST_VIDEO_INFO_NAME()">GST_VIDEO_INFO_NAME</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-COMPONENTS:CAPS" title="GST_VIDEO_INFO_N_COMPONENTS()">GST_VIDEO_INFO_N_COMPONENTS</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-PLANES:CAPS" title="GST_VIDEO_INFO_N_PLANES()">GST_VIDEO_INFO_N_PLANES</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-D:CAPS" title="GST_VIDEO_INFO_PAR_D()">GST_VIDEO_INFO_PAR_D</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-N:CAPS" title="GST_VIDEO_INFO_PAR_N()">GST_VIDEO_INFO_PAR_N</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-OFFSET:CAPS" title="GST_VIDEO_INFO_PLANE_OFFSET()">GST_VIDEO_INFO_PLANE_OFFSET</a> (i,
+ p)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-STRIDE:CAPS" title="GST_VIDEO_INFO_PLANE_STRIDE()">GST_VIDEO_INFO_PLANE_STRIDE</a> (i,
+ p)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-SIZE:CAPS" title="GST_VIDEO_INFO_SIZE()">GST_VIDEO_INFO_SIZE</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-WIDTH:CAPS" title="GST_VIDEO_INFO_WIDTH()">GST_VIDEO_INFO_WIDTH</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS" title="GST_VIDEO_MAX_COMPONENTS">GST_VIDEO_MAX_COMPONENTS</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS" title="GST_VIDEO_MAX_PLANES">GST_VIDEO_MAX_PLANES</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SUB-SCALE:CAPS" title="GST_VIDEO_SUB_SCALE()">GST_VIDEO_SUB_SCALE</a> (scale,
+ val)
+<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-base-libs-gstvideo.html#gst-video-info-convert" title="gst_video_info_convert ()">gst_video_info_convert</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> *dest_value</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-base-libs-gstvideo.html#gst-video-info-from-caps" title="gst_video_info_from_caps ()">gst_video_info_from_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
+ <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-init" title="gst_video_info_init ()">gst_video_info_init</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-set-format" title="gst_video_info_set_format ()">gst_video_info_set_format</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-to-caps" title="gst_video_info_to_caps ()">gst_video_info_to_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</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-base-libs-gstvideo.html#gst-video-calculate-display-ratio" title="gst_video_calculate_display_ratio ()">gst_video_calculate_display_ratio</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> video_width</code></em>,
@@ -54,14 +185,14 @@ enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#Gs
<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" title="gst_video_format_to_fourcc ()">gst_video_format_to_fourcc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc" title="gst_video_format_from_fourcc ()">gst_video_format_from_fourcc</a> (<em class="parameter"><code><span class="type">guint32</span> fourcc</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-palette" title="gst_video_parse_caps_palette ()">gst_video_parse_caps_palette</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<span class="returnvalue">void</span> (<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()">*GstVideoConvertSampleCallback</a>) (<em class="parameter"><code><span class="type">GstSample</span> *sample</code></em>,
+<span class="returnvalue">void</span> (<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()">*GstVideoConvertSampleCallback</a>) (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a> *sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">GstSample</span> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample" title="gst_video_convert_sample ()">gst_video_convert_sample</a> (<em class="parameter"><code><span class="type">GstSample</span> *sample</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample" title="gst_video_convert_sample ()">gst_video_convert_sample</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a> *sample</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *to_caps</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample-async" title="gst_video_convert_sample_async ()">gst_video_convert_sample_async</a> (<em class="parameter"><code><span class="type">GstSample</span> *sample</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample-async" title="gst_video_convert_sample_async ()">gst_video_convert_sample_async</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a> *sample</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *to_caps</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()"><span class="type">GstVideoConvertSampleCallback</span></a> callback</code></em>,
@@ -100,7 +231,7 @@ enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#Gs
<p>
</p>
<div class="refsect2">
-<a name="idp28434336"></a><p>
+<a name="idp25775616"></a><p>
This library contains some helper functions and includes the
videosink and videofilter base classes.
</p>
@@ -123,6 +254,526 @@ videosink and videofilter base classes.
</div>
<hr>
<div class="refsect2">
+<a name="GstVideoChromaSite"></a><h3>enum GstVideoChromaSite</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_CHROMA_SITE_UNKNOWN = 0,
+ GST_VIDEO_CHROMA_SITE_NONE = (1 &lt;&lt; 0),
+ GST_VIDEO_CHROMA_SITE_H_COSITED = (1 &lt;&lt; 1),
+ GST_VIDEO_CHROMA_SITE_V_COSITED = (1 &lt;&lt; 2),
+ GST_VIDEO_CHROMA_SITE_ALT_LINE = (1 &lt;&lt; 3),
+ /* some common chroma cositing */
+ GST_VIDEO_CHROMA_SITE_COSITED = (GST_VIDEO_CHROMA_SITE_H_COSITED | GST_VIDEO_CHROMA_SITE_V_COSITED),
+ GST_VIDEO_CHROMA_SITE_JPEG = (GST_VIDEO_CHROMA_SITE_NONE),
+ GST_VIDEO_CHROMA_SITE_MPEG2 = (GST_VIDEO_CHROMA_SITE_H_COSITED),
+ GST_VIDEO_CHROMA_SITE_DV = (GST_VIDEO_CHROMA_SITE_COSITED | GST_VIDEO_CHROMA_SITE_ALT_LINE),
+} GstVideoChromaSite;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoColorMatrix"></a><h3>enum GstVideoColorMatrix</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_COLOR_MATRIX_UNKNOWN = 0,
+ GST_VIDEO_COLOR_MATRIX_RGB,
+ GST_VIDEO_COLOR_MATRIX_FCC,
+ GST_VIDEO_COLOR_MATRIX_BT709,
+ GST_VIDEO_COLOR_MATRIX_BT601,
+ GST_VIDEO_COLOR_MATRIX_SMPTE240M
+} GstVideoColorMatrix;
+</pre>
+<p>
+The color matrix is used to convert between Y'PbPr and
+non-linear RGB (R'G'B')
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-MATRIX-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_MATRIX_UNKNOWN</code></span></p></td>
+<td>unknown matrix
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-MATRIX-RGB:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_MATRIX_RGB</code></span></p></td>
+<td>identity matrix
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-MATRIX-FCC:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_MATRIX_FCC</code></span></p></td>
+<td>FCC color matrix
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-MATRIX-BT709:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_MATRIX_BT709</code></span></p></td>
+<td>ITU-R BT.709 color matrix
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-MATRIX-BT601:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_MATRIX_BT601</code></span></p></td>
+<td>ITU-R BT.601 color matrix
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-MATRIX-SMPTE240M:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_MATRIX_SMPTE240M</code></span></p></td>
+<td>SMPTE 240M color matrix
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoColorPrimaries"></a><h3>enum GstVideoColorPrimaries</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_COLOR_PRIMARIES_UNKNOWN = 0,
+ GST_VIDEO_COLOR_PRIMARIES_BT709,
+ GST_VIDEO_COLOR_PRIMARIES_BT470M,
+ GST_VIDEO_COLOR_PRIMARIES_BT470BG,
+ GST_VIDEO_COLOR_PRIMARIES_SMPTE170M,
+ GST_VIDEO_COLOR_PRIMARIES_SMPTE240M
+} GstVideoColorPrimaries;
+</pre>
+<p>
+The color primaries define the how to transform linear RGB values to and from
+the CIE XYZ colorspace.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_PRIMARIES_UNKNOWN</code></span></p></td>
+<td>unknown color primaries
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT709:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_PRIMARIES_BT709</code></span></p></td>
+<td>BT709 primaries
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470M:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_PRIMARIES_BT470M</code></span></p></td>
+<td>BT470M primaries
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470BG:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_PRIMARIES_BT470BG</code></span></p></td>
+<td>BT470BG primaries
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE170M:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_PRIMARIES_SMPTE170M</code></span></p></td>
+<td>SMPTE170M primaries
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_PRIMARIES_SMPTE240M</code></span></p></td>
+<td>SMPTE240M primaries
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoColorRange"></a><h3>enum GstVideoColorRange</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_COLOR_RANGE_UNKNOWN = 0,
+ GST_VIDEO_COLOR_RANGE_0_255,
+ GST_VIDEO_COLOR_RANGE_16_235
+} GstVideoColorRange;
+</pre>
+<p>
+Possible color range values. These constants are defined for 8 bit color
+values and can be scaled for other bit depths.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-RANGE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_RANGE_UNKNOWN</code></span></p></td>
+<td>unknown range
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-RANGE-0-255:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_RANGE_0_255</code></span></p></td>
+<td>[0..255] for 8 bit components
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-COLOR-RANGE-16-235:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_COLOR_RANGE_16_235</code></span></p></td>
+<td>[16..235] for 8 bit components. Chroma has
+ [16..240] range.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoColorimetry"></a><h3>GstVideoColorimetry</h3>
+<pre class="programlisting">typedef struct {
+ GstVideoColorRange range;
+ GstVideoColorMatrix matrix;
+ GstVideoTransferFunction transfer;
+ GstVideoColorPrimaries primaries;
+} GstVideoColorimetry;
+</pre>
+<p>
+Structure describing the color info.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange" title="enum GstVideoColorRange"><span class="type">GstVideoColorRange</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.range"></a>range</code></em>;</span></p></td>
+<td>the color range. This is the valid range for the samples.
+It is used to convert the samples to Y'PbPr values.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix"><span class="type">GstVideoColorMatrix</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.matrix"></a>matrix</code></em>;</span></p></td>
+<td>the color matrix. Used to convert between Y'PbPr and
+non-linear RGB (R'G'B')</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.transfer"></a>transfer</code></em>;</span></p></td>
+<td>the transfer function. used to convert between R'G'B' and RGB</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries" title="enum GstVideoColorPrimaries"><span class="type">GstVideoColorPrimaries</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.primaries"></a>primaries</code></em>;</span></p></td>
+<td>color primaries. used to convert between R'G'B' and CIE XYZ</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoFlags"></a><h3>enum GstVideoFlags</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_FLAG_NONE = 0,
+ GST_VIDEO_FLAG_VARIABLE_FPS = (1 &lt;&lt; 0)
+} GstVideoFlags;
+</pre>
+<p>
+Extra video flags
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLAG_NONE</code></span></p></td>
+<td>no flags
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FLAG-VARIABLE-FPS:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FLAG_VARIABLE_FPS</code></span></p></td>
+<td>a variable fps is selected, fps_n and fps_d
+denote the maximum fps of the video
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoFormatFlags"></a><h3>enum GstVideoFormatFlags</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_FORMAT_FLAG_YUV = (1 &lt;&lt; 0),
+ GST_VIDEO_FORMAT_FLAG_RGB = (1 &lt;&lt; 1),
+ GST_VIDEO_FORMAT_FLAG_GRAY = (1 &lt;&lt; 2),
+ GST_VIDEO_FORMAT_FLAG_ALPHA = (1 &lt;&lt; 3),
+ GST_VIDEO_FORMAT_FLAG_LE = (1 &lt;&lt; 4),
+ GST_VIDEO_FORMAT_FLAG_PALETTE = (1 &lt;&lt; 5),
+ GST_VIDEO_FORMAT_FLAG_COMPLEX = (1 &lt;&lt; 6)
+} GstVideoFormatFlags;
+</pre>
+<p>
+The different video flags that a format info can have.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-FLAG-YUV:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_YUV</code></span></p></td>
+<td>The video format is YUV, components are numbered
+ 0=Y, 1=U, 2=V.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-FLAG-RGB:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_RGB</code></span></p></td>
+<td>The video format is RGB, components are numbered
+ 0=R, 1=G, 2=B.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-FLAG-GRAY:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_GRAY</code></span></p></td>
+<td>The video is gray, there is one gray component
+ with index 0.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-FLAG-ALPHA:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_ALPHA</code></span></p></td>
+<td>The video format has an alpha components with
+ the number 3.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-FLAG-LE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_LE</code></span></p></td>
+<td>The video format has data stored in little
+ endianness.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-FLAG-PALETTE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_PALETTE</code></span></p></td>
+<td>The video format has a palette.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-FLAG-COMPLEX:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_FLAG_COMPLEX</code></span></p></td>
+<td>The video format has a complex layout that
+ can't be described with the usual information in the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a>.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoFormatPack"></a><h3>GstVideoFormatPack ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> (*GstVideoFormatPack) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
+<p>
+Packs <em class="parameter"><code>width</code></em> pixels from <em class="parameter"><code>src</code></em> to the given planes and strides in the
+format <em class="parameter"><code>info</code></em>. The pixels from source have each component interleaved
+and will be packed into the planes in <em class="parameter"><code>data</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>a source array</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>pointers to the destination data planes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>strides of the destination planes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>the x position in the image to pack to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>the y position in the image to pack to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>the amount of pixels to pack.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoFormatUnpack"></a><h3>GstVideoFormatUnpack ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> (*GstVideoFormatUnpack) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
+<p>
+Unpacks <em class="parameter"><code>width</code></em> pixels from the given planes and strides containing data of
+format <em class="parameter"><code>info</code></em>. The pixels will be unpacked into <em class="parameter"><code>dest</code></em> which each component
+interleaved. <em class="parameter"><code>dest</code></em> should at least be big enough to hold <em class="parameter"><code>width</code></em> *
+n_components * size(unpack_format) bytes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
+<td>a destination array</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>pointers to the data planes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>strides of the planes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>the x position in the image to start from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>the y position in the image to start from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>the amount of pixels to unpack.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoInterlaceMode"></a><h3>enum GstVideoInterlaceMode</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_INTERLACE_MODE_PROGRESSIVE = 0,
+ GST_VIDEO_INTERLACE_MODE_INTERLEAVED,
+ GST_VIDEO_INTERLACE_MODE_MIXED,
+ GST_VIDEO_INTERLACE_MODE_FIELDS
+} GstVideoInterlaceMode;
+</pre>
+<p>
+The possible values of the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode"><span class="type">GstVideoInterlaceMode</span></a> describing the interlace
+mode of the stream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-INTERLACE-MODE-PROGRESSIVE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_INTERLACE_MODE_PROGRESSIVE</code></span></p></td>
+<td>all frames are progressive
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-INTERLACE-MODE-INTERLEAVED:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_INTERLACE_MODE_INTERLEAVED</code></span></p></td>
+<td>2 fields are interleaved in one video
+ frame. Extra buffer flags describe the field order.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-INTERLACE-MODE-MIXED:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_INTERLACE_MODE_MIXED</code></span></p></td>
+<td>frames contains both interlaced and
+ progressive video, the buffer flags describe the frame and fields.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-INTERLACE-MODE-FIELDS:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_INTERLACE_MODE_FIELDS</code></span></p></td>
+<td>2 fields are stored in one buffer, use the
+ frame ID to get access to the required field. For multiview (the
+ 'views' property &gt; 1) the fields of view N can be found at frame ID
+ (N * 2) and (N * 2) + 1.
+ Each field has only half the amount of lines as noted in the
+ height property. This mode requires multiple GstVideoMeta metadata
+ to describe the fields.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoTransferFunction"></a><h3>enum GstVideoTransferFunction</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_TRANSFER_UNKNOWN = 0,
+ GST_VIDEO_TRANSFER_GAMMA10,
+ GST_VIDEO_TRANSFER_GAMMA18,
+ GST_VIDEO_TRANSFER_GAMMA20,
+ GST_VIDEO_TRANSFER_GAMMA22,
+ GST_VIDEO_TRANSFER_BT709,
+ GST_VIDEO_TRANSFER_SMPTE240M,
+ GST_VIDEO_TRANSFER_SRGB,
+ GST_VIDEO_TRANSFER_GAMMA28,
+ GST_VIDEO_TRANSFER_LOG100,
+ GST_VIDEO_TRANSFER_LOG316
+} GstVideoTransferFunction;
+</pre>
+<p>
+The video transfer function defines the formula for converting between
+non-linear RGB (R'G'B') and linear RGB
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_UNKNOWN</code></span></p></td>
+<td>unknown transfer function
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-GAMMA10:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_GAMMA10</code></span></p></td>
+<td>linear RGB, gamma 1.0 curve
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-GAMMA18:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_GAMMA18</code></span></p></td>
+<td>Gamma 1.8 curve
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-GAMMA20:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_GAMMA20</code></span></p></td>
+<td>Gamma 2.0 curve
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-GAMMA22:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_GAMMA22</code></span></p></td>
+<td>Gamma 2.2 curve
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-BT709:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_BT709</code></span></p></td>
+<td>Gamma 2.2 curve with a linear segment in the lower
+ range
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-SMPTE240M:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_SMPTE240M</code></span></p></td>
+<td>Gamma 2.2 curve with a linear segment in the
+ lower range
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-SRGB:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_SRGB</code></span></p></td>
+<td>Gamma 2.4 curve with a linear segment in the lower
+ range
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-GAMMA28:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_GAMMA28</code></span></p></td>
+<td>Gamma 2.8 curve
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-LOG100:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_LOG100</code></span></p></td>
+<td>Logarithmic transfer characteristic
+ 100:1 range
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-TRANSFER-LOG316:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_TRANSFER_LOG316</code></span></p></td>
+<td>Logarithmic transfer characteristic
+ 316.22777:1 range
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="GstVideoFormat"></a><h3>enum GstVideoFormat</h3>
<pre class="programlisting">typedef enum {
GST_VIDEO_FORMAT_UNKNOWN,
@@ -167,7 +818,8 @@ videosink and videofilter base classes.
GST_VIDEO_FORMAT_IYU1,
GST_VIDEO_FORMAT_ARGB64,
GST_VIDEO_FORMAT_AYUV64,
- GST_VIDEO_FORMAT_r210
+ GST_VIDEO_FORMAT_r210,
+ GST_VIDEO_FORMAT_ENCODED
} GstVideoFormat;
</pre>
<p>
@@ -391,6 +1043,694 @@ Enum value describing the most common video formats.
<td>packed 4:4:4 RGB, 10 bits per channel (Since: 0.10.33)
</td>
</tr>
+<tr>
+<td><p><a name="GST-VIDEO-FORMAT-ENCODED:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_FORMAT_ENCODED</code></span></p></td>
+<td>Encoded video format
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoFormatInfo"></a><h3>struct GstVideoFormatInfo</h3>
+<pre class="programlisting">struct GstVideoFormatInfo {
+ GstVideoFormat format;
+ const gchar *name;
+ const gchar *description;
+ GstVideoFormatFlags flags;
+ guint bits;
+ guint n_components;
+ guint shift[GST_VIDEO_MAX_COMPONENTS];
+ guint depth[GST_VIDEO_MAX_COMPONENTS];
+ gint pixel_stride[GST_VIDEO_MAX_COMPONENTS];
+ guint n_planes;
+ guint plane[GST_VIDEO_MAX_COMPONENTS];
+ guint poffset[GST_VIDEO_MAX_COMPONENTS];
+ guint w_sub[GST_VIDEO_MAX_COMPONENTS];
+ guint h_sub[GST_VIDEO_MAX_COMPONENTS];
+
+ GstVideoFormat unpack_format;
+ GstVideoFormatUnpack unpack_func;
+ GstVideoFormatPack pack_func;
+};
+</pre>
+<p>
+Information for a video format.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.format"></a>format</code></em>;</span></p></td>
+<td><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstVideoFormatInfo.name"></a>name</code></em>;</span></p></td>
+<td>string representation of the format</td>
+</tr>
+<tr>
+<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstVideoFormatInfo.description"></a>description</code></em>;</span></p></td>
+<td>use readable description of the format</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags" title="enum GstVideoFormatFlags"><span class="type">GstVideoFormatFlags</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.flags"></a>flags</code></em>;</span></p></td>
+<td><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags" title="enum GstVideoFormatFlags"><span class="type">GstVideoFormatFlags</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.bits"></a>bits</code></em>;</span></p></td>
+<td>The number of bits used to pack data items. This can be less than 8
+when multiple pixels are stored in a byte. for values &gt; 8 multiple bytes
+should be read according to the endianness flag before applying the shift
+and mask.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.n-components"></a>n_components</code></em>;</span></p></td>
+<td>the number of components in the video format.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.shift"></a>shift</code></em>[GST_VIDEO_MAX_COMPONENTS];</span></p></td>
+<td>the number of bits to shift away to get the component data</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.depth"></a>depth</code></em>[GST_VIDEO_MAX_COMPONENTS];</span></p></td>
+<td>the depth in bits for each component</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.pixel-stride"></a>pixel_stride</code></em>[GST_VIDEO_MAX_COMPONENTS];</span></p></td>
+<td>the pixel stride of each component. This is the amount of
+bytes to the pixel immediately to the right. When bits &lt; 8, the stride is
+expressed in bits.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.n-planes"></a>n_planes</code></em>;</span></p></td>
+<td>the number of planes for this format. The number of planes can be
+less than the amount of components when multiple components are packed into
+one plane.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.plane"></a>plane</code></em>[GST_VIDEO_MAX_COMPONENTS];</span></p></td>
+<td>the plane number where a component can be found</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.poffset"></a>poffset</code></em>[GST_VIDEO_MAX_COMPONENTS];</span></p></td>
+<td>the offset in the plane where the first pixel of the components
+can be found. If bits &lt; 8 the amount is specified in bits.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.w-sub"></a>w_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</span></p></td>
+<td>subsampling factor of the width for the component. Use
+GST_VIDEO_SUB_SCALE to scale a width.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.h-sub"></a>h_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</span></p></td>
+<td>subsampling factor of the height for the component. Use
+GST_VIDEO_SUB_SCALE to scale a height.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.unpack-format"></a>unpack_format</code></em>;</span></p></td>
+<td>the format of the unpacked pixels.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack" title="GstVideoFormatUnpack ()"><span class="type">GstVideoFormatUnpack</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.unpack-func"></a>unpack_func</code></em>;</span></p></td>
+<td>an unpack function for this format</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack" title="GstVideoFormatPack ()"><span class="type">GstVideoFormatPack</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.pack-func"></a>pack_func</code></em>;</span></p></td>
+<td>an pack function for this format</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-BITS:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_BITS()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_BITS(info) ((info)-&gt;bits)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-DATA:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_DATA()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_DATA(info,planes,comp)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-DEPTH:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_DEPTH()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_DEPTH(info,c) ((info)-&gt;depth[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-FLAGS:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_FLAGS()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_FLAGS(info) ((info)-&gt;flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-FORMAT:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_FORMAT()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_FORMAT(info) ((info)-&gt;format)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-HAS-ALPHA:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_HAS_ALPHA()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_HAS_ALPHA(info) ((info)-&gt;flags &amp; GST_VIDEO_FORMAT_FLAG_ALPHA)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-HAS-PALETTE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_HAS_PALETTE()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_HAS_PALETTE(info) ((info)-&gt;flags &amp; GST_VIDEO_FORMAT_FLAG_PALETTE)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-H-SUB:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_H_SUB()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_H_SUB(info,c) ((info)-&gt;h_sub[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-IS-GRAY:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_IS_GRAY()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_IS_GRAY(info) ((info)-&gt;flags &amp; GST_VIDEO_FORMAT_FLAG_GRAY)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-IS-LE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_IS_LE()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_IS_LE(info) ((info)-&gt;flags &amp; GST_VIDEO_FORMAT_FLAG_LE)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-IS-RGB:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_IS_RGB()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_IS_RGB(info) ((info)-&gt;flags &amp; GST_VIDEO_FORMAT_FLAG_RGB)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-IS-YUV:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_IS_YUV()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_IS_YUV(info) ((info)-&gt;flags &amp; GST_VIDEO_FORMAT_FLAG_YUV)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-IS-COMPLEX:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_IS_COMPLEX()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_IS_COMPLEX(info) ((info)-&gt;flags &amp; GST_VIDEO_FORMAT_FLAG_COMPLEX)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-NAME:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_NAME()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_NAME(info) ((info)-&gt;name)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-N-COMPONENTS:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_N_COMPONENTS()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_N_COMPONENTS(info) ((info)-&gt;n_components)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-N-PLANES:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_N_PLANES()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_N_PLANES(info) ((info)-&gt;n_planes)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-OFFSET:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_OFFSET()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_OFFSET(info,offsets,comp)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-PLANE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_PLANE()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_PLANE(info,c) ((info)-&gt;plane[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-POFFSET:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_POFFSET()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_POFFSET(info,c) ((info)-&gt;poffset[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-PSTRIDE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_PSTRIDE()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_PSTRIDE(info,c) ((info)-&gt;pixel_stride[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-SCALE-HEIGHT:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT(info,c,h) GST_VIDEO_SUB_SCALE ((info)-&gt;h_sub[c],(h))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-SCALE-WIDTH:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_SCALE_WIDTH()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_SCALE_WIDTH(info,c,w) GST_VIDEO_SUB_SCALE ((info)-&gt;w_sub[c],(w))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-SHIFT:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_SHIFT()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_SHIFT(info,c) ((info)-&gt;shift[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-STRIDE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_STRIDE()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_STRIDE(info,strides,comp) ((strides)[(info)-&gt;plane[comp]])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-FORMAT-INFO-W-SUB:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_W_SUB()</h3>
+<pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_W_SUB(info,c) ((info)-&gt;w_sub[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoInfo"></a><h3>struct GstVideoInfo</h3>
+<pre class="programlisting">struct GstVideoInfo {
+ const GstVideoFormatInfo *finfo;
+
+ GstVideoInterlaceMode interlace_mode;
+ GstVideoFlags flags;
+ gint width;
+ gint height;
+ gsize size;
+ gint views;
+
+ GstVideoChromaSite chroma_site;
+ GstVideoColorimetry colorimetry;
+
+ GstBuffer *palette;
+
+ gint par_n;
+ gint par_d;
+ gint fps_n;
+ gint fps_d;
+
+ gsize offset[GST_VIDEO_MAX_PLANES];
+ gint stride[GST_VIDEO_MAX_PLANES];
+};
+</pre>
+<p>
+Information describing image properties. This information can be filled
+in from GstCaps with <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-from-caps" title="gst_video_info_from_caps ()"><code class="function">gst_video_info_from_caps()</code></a>. The information is also used
+to store the specific video info when mapping a video frame with
+<code class="function">gst_video_frame_map()</code>.
+</p>
+<p>
+Use the provided macros to access the info in this structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *<em class="structfield"><code><a name="GstVideoInfo.finfo"></a>finfo</code></em>;</span></p></td>
+<td>the format info of the video</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode"><span class="type">GstVideoInterlaceMode</span></a> <em class="structfield"><code><a name="GstVideoInfo.interlace-mode"></a>interlace_mode</code></em>;</span></p></td>
+<td>the interlace mode</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFlags" title="enum GstVideoFlags"><span class="type">GstVideoFlags</span></a> <em class="structfield"><code><a name="GstVideoInfo.flags"></a>flags</code></em>;</span></p></td>
+<td>additional video flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.width"></a>width</code></em>;</span></p></td>
+<td>the width of the video</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.height"></a>height</code></em>;</span></p></td>
+<td>the height of the video</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstVideoInfo.size"></a>size</code></em>;</span></p></td>
+<td>the default size of one frame</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.views"></a>views</code></em>;</span></p></td>
+<td>the number of views for multiview video</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> <em class="structfield"><code><a name="GstVideoInfo.chroma-site"></a>chroma_site</code></em>;</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> <em class="structfield"><code><a name="GstVideoInfo.colorimetry"></a>colorimetry</code></em>;</span></p></td>
+<td>the colorimetry info</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoInfo.palette"></a>palette</code></em>;</span></p></td>
+<td>a buffer with palette data</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.par-n"></a>par_n</code></em>;</span></p></td>
+<td>the pixel-aspect-ratio numerator</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.par-d"></a>par_d</code></em>;</span></p></td>
+<td>the pixel-aspect-ratio demnominator</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.fps-n"></a>fps_n</code></em>;</span></p></td>
+<td>the framerate numerator</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.fps-d"></a>fps_d</code></em>;</span></p></td>
+<td>the framerate demnominator</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstVideoInfo.offset"></a>offset</code></em>[GST_VIDEO_MAX_PLANES];</span></p></td>
+<td>offsets of the planes</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.stride"></a>stride</code></em>[GST_VIDEO_MAX_PLANES];</span></p></td>
+<td>strides of the planes</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-DATA:CAPS"></a><h3>GST_VIDEO_INFO_COMP_DATA()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_DATA(i,d,c) GST_VIDEO_FORMAT_INFO_DATA((i)-&gt;finfo,d,(c))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-DEPTH:CAPS"></a><h3>GST_VIDEO_INFO_COMP_DEPTH()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_DEPTH(i,c) GST_VIDEO_FORMAT_INFO_DEPTH((i)-&gt;finfo,(c))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-HEIGHT:CAPS"></a><h3>GST_VIDEO_INFO_COMP_HEIGHT()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_HEIGHT(i,c) GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT((i)-&gt;finfo,(c),(i)-&gt;height)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-OFFSET:CAPS"></a><h3>GST_VIDEO_INFO_COMP_OFFSET()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_OFFSET(i,c) GST_VIDEO_FORMAT_INFO_OFFSET((i)-&gt;finfo,(i)-&gt;offset,(c))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-PLANE:CAPS"></a><h3>GST_VIDEO_INFO_COMP_PLANE()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_PLANE(i,c) GST_VIDEO_FORMAT_INFO_PLANE((i)-&gt;finfo,(c))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-POFFSET:CAPS"></a><h3>GST_VIDEO_INFO_COMP_POFFSET()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_POFFSET(i,c) GST_VIDEO_FORMAT_INFO_POFFSET((i)-&gt;finfo,(c))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-PSTRIDE:CAPS"></a><h3>GST_VIDEO_INFO_COMP_PSTRIDE()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_PSTRIDE(i,c) GST_VIDEO_FORMAT_INFO_PSTRIDE((i)-&gt;finfo,(c))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-STRIDE:CAPS"></a><h3>GST_VIDEO_INFO_COMP_STRIDE()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_STRIDE(i,c) GST_VIDEO_FORMAT_INFO_STRIDE((i)-&gt;finfo,(i)-&gt;stride,(c))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-COMP-WIDTH:CAPS"></a><h3>GST_VIDEO_INFO_COMP_WIDTH()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_COMP_WIDTH(i,c) GST_VIDEO_FORMAT_INFO_SCALE_WIDTH((i)-&gt;finfo,(c),(i)-&gt;width)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-FLAGS:CAPS"></a><h3>GST_VIDEO_INFO_FLAGS()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_FLAGS(i) ((i)-&gt;flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-FLAG-IS-SET:CAPS"></a><h3>GST_VIDEO_INFO_FLAG_IS_SET()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_FLAG_IS_SET(i,flag) ((GST_VIDEO_INFO_FLAGS(i) &amp; (flag)) == (flag))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-FLAG-SET:CAPS"></a><h3>GST_VIDEO_INFO_FLAG_SET()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_FLAG_SET(i,flag) (GST_VIDEO_INFO_FLAGS(i) |= (flag))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-FLAG-UNSET:CAPS"></a><h3>GST_VIDEO_INFO_FLAG_UNSET()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_FLAG_UNSET(i,flag) (GST_VIDEO_INFO_FLAGS(i) &amp;= ~(flag))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-FORMAT:CAPS"></a><h3>GST_VIDEO_INFO_FORMAT()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_FORMAT(i) (GST_VIDEO_FORMAT_INFO_FORMAT((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-FPS-D:CAPS"></a><h3>GST_VIDEO_INFO_FPS_D()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_FPS_D(i) ((i)-&gt;fps_d)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-FPS-N:CAPS"></a><h3>GST_VIDEO_INFO_FPS_N()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_FPS_N(i) ((i)-&gt;fps_n)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-HAS-ALPHA:CAPS"></a><h3>GST_VIDEO_INFO_HAS_ALPHA()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_HAS_ALPHA(i) (GST_VIDEO_FORMAT_INFO_HAS_ALPHA((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-HEIGHT:CAPS"></a><h3>GST_VIDEO_INFO_HEIGHT()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_HEIGHT(i) ((i)-&gt;height)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-INTERLACE-MODE:CAPS"></a><h3>GST_VIDEO_INFO_INTERLACE_MODE()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_INTERLACE_MODE(i) ((i)-&gt;interlace_mode)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-IS-GRAY:CAPS"></a><h3>GST_VIDEO_INFO_IS_GRAY()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_IS_GRAY(i) (GST_VIDEO_FORMAT_INFO_IS_GRAY((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-IS-INTERLACED:CAPS"></a><h3>GST_VIDEO_INFO_IS_INTERLACED()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_IS_INTERLACED(i) ((i)-&gt;interlace_mode != GST_VIDEO_INTERLACE_MODE_PROGRESSIVE)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-IS-RGB:CAPS"></a><h3>GST_VIDEO_INFO_IS_RGB()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_IS_RGB(i) (GST_VIDEO_FORMAT_INFO_IS_RGB((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-IS-YUV:CAPS"></a><h3>GST_VIDEO_INFO_IS_YUV()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_IS_YUV(i) (GST_VIDEO_FORMAT_INFO_IS_YUV((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-NAME:CAPS"></a><h3>GST_VIDEO_INFO_NAME()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_NAME(i) (GST_VIDEO_FORMAT_INFO_NAME((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-N-COMPONENTS:CAPS"></a><h3>GST_VIDEO_INFO_N_COMPONENTS()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_N_COMPONENTS(i) GST_VIDEO_FORMAT_INFO_N_COMPONENTS((i)-&gt;finfo)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-N-PLANES:CAPS"></a><h3>GST_VIDEO_INFO_N_PLANES()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_N_PLANES(i) (GST_VIDEO_FORMAT_INFO_N_PLANES((i)-&gt;finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-PAR-D:CAPS"></a><h3>GST_VIDEO_INFO_PAR_D()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_PAR_D(i) ((i)-&gt;par_d)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-PAR-N:CAPS"></a><h3>GST_VIDEO_INFO_PAR_N()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_PAR_N(i) ((i)-&gt;par_n)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-PLANE-OFFSET:CAPS"></a><h3>GST_VIDEO_INFO_PLANE_OFFSET()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_PLANE_OFFSET(i,p) ((i)-&gt;offset[p])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-PLANE-STRIDE:CAPS"></a><h3>GST_VIDEO_INFO_PLANE_STRIDE()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_PLANE_STRIDE(i,p) ((i)-&gt;stride[p])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-SIZE:CAPS"></a><h3>GST_VIDEO_INFO_SIZE()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_SIZE(i) ((i)-&gt;size)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-INFO-WIDTH:CAPS"></a><h3>GST_VIDEO_INFO_WIDTH()</h3>
+<pre class="programlisting">#define GST_VIDEO_INFO_WIDTH(i) ((i)-&gt;width)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-MAX-COMPONENTS:CAPS"></a><h3>GST_VIDEO_MAX_COMPONENTS</h3>
+<pre class="programlisting">#define GST_VIDEO_MAX_COMPONENTS 4
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-MAX-PLANES:CAPS"></a><h3>GST_VIDEO_MAX_PLANES</h3>
+<pre class="programlisting">#define GST_VIDEO_MAX_PLANES 4
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-SUB-SCALE:CAPS"></a><h3>GST_VIDEO_SUB_SCALE()</h3>
+<pre class="programlisting">#define GST_VIDEO_SUB_SCALE(scale,val) (-((-((gint)(val)))&gt;&gt;(scale)))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-info-convert"></a><h3>gst_video_info_convert ()</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_video_info_convert (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-info-from-caps"></a><h3>gst_video_info_from_caps ()</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_video_info_from_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
+ <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Parse <em class="parameter"><code>caps</code></em> and update <em class="parameter"><code>info</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>caps</code></em> could be parsed</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-info-init"></a><h3>gst_video_info_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_info_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);</pre>
+<p>
+Initialize <em class="parameter"><code>info</code></em> with default values.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-info-set-format"></a><h3>gst_video_info_set_format ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_info_set_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);</pre>
+<p>
+Set the default info for a video frame of <em class="parameter"><code>format</code></em> and <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the format</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>a width</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
+<td>a height</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-info-to-caps"></a><h3>gst_video_info_to_caps ()</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> * gst_video_info_to_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);</pre>
+<p>
+Convert the values of <em class="parameter"><code>info</code></em> into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> containing the info of <em class="parameter"><code>info</code></em>.</td>
+</tr>
</tbody>
</table></div>
</div>
@@ -532,14 +1872,14 @@ values, each containing ARGB colors in native endianness.
<hr>
<div class="refsect2">
<a name="GstVideoConvertSampleCallback"></a><h3>GstVideoConvertSampleCallback ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> (*GstVideoConvertSampleCallback) (<em class="parameter"><code><span class="type">GstSample</span> *sample</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> (*GstVideoConvertSampleCallback) (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a> *sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gst-video-convert-sample"></a><h3>gst_video_convert_sample ()</h3>
-<pre class="programlisting"><span class="returnvalue">GstSample</span> * gst_video_convert_sample (<em class="parameter"><code><span class="type">GstSample</span> *sample</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> * gst_video_convert_sample (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a> *sample</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *to_caps</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
@@ -557,7 +1897,7 @@ The width, height and pixel-aspect-ratio can also be specified in the output cap
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
-<td>a <span class="type">GstSample</span>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>
</td>
</tr>
<tr>
@@ -574,7 +1914,7 @@ The width, height and pixel-aspect-ratio can also be specified in the output cap
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The converted <span class="type">GstSample</span>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error happened (in which case <em class="parameter"><code>err</code></em>
+<td>The converted <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error happened (in which case <em class="parameter"><code>err</code></em>
will point to the <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>).</td>
</tr>
</tbody>
@@ -584,7 +1924,7 @@ will point to the <a href="http://library.gnome.org/devel/glib/unstable/glib-Err
<hr>
<div class="refsect2">
<a name="gst-video-convert-sample-async"></a><h3>gst_video_convert_sample_async ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_video_convert_sample_async (<em class="parameter"><code><span class="type">GstSample</span> *sample</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_convert_sample_async (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a> *sample</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *to_caps</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()"><span class="type">GstVideoConvertSampleCallback</span></a> callback</code></em>,
@@ -614,7 +1954,7 @@ anymore.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
-<td>a <span class="type">GstSample</span>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>
</td>
</tr>
<tr>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
index 14475b0..f85b52a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
@@ -62,7 +62,7 @@ struct <a class="link" href="gst-plugins-base-libs-gstvideofilter.h
<p>
</p>
<div class="refsect2">
-<a name="idp16308896"></a><p>
+<a name="idp24731744"></a><p>
Provides useful functions and a base class for video filters.
</p>
<p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
index 8756bd3..8b84646 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-video.html" title="Video Library">
<link rel="prev" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
-<link rel="next" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
+<link rel="next" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="gstreamer-video.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-libs-hierarchy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-GstVideoDecoder.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-base-libs-gstvideooverlay.synopsis" class="shortcut">Top</a>
@@ -75,7 +75,7 @@ struct <a class="link" href="gst-plugins-base-libs-gstvideooverlay.
<p>
</p>
<div class="refsect2">
-<a name="idp27344640"></a><p>
+<a name="idp28156752"></a><p>
The <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface is used for 2 main purposes :
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -159,7 +159,7 @@ immediately. Here is an example on how to do that correctly:
<span class="function">XSync</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
- <span class="function"><a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)),</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)),</span>
win<span class="gtkdoc opt">);</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
@@ -187,7 +187,7 @@ immediately. Here is an example on how to do that correctly:
</p>
<hr>
<div class="refsect2">
-<a name="idp27354736"></a><h3>Two basic usage scenarios</h3>
+<a name="idp28166848"></a><h3>Two basic usage scenarios</h3>
<p>
There are two basic usage scenarios: in the simplest case, the application
knows exactly what particular element is used for video output, which is
@@ -232,7 +232,7 @@ used in the callback).
</p>
<hr>
<div class="refsect2">
-<a name="idp30120224"></a><h3>GstVideoOverlay and Gtk+</h3>
+<a name="idp29541664"></a><h3>GstVideoOverlay and Gtk+</h3>
<p>
</p>
<div class="informalexample">
@@ -334,7 +334,7 @@ used in the callback).
93
94
95</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/interfaces/xoverlay.h&gt;</span>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/video/xoverlay.h&gt;</span>
<span class="gtkdoc ppc">#include &lt;gtk/gtk.h&gt;</span>
<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
<span class="gtkdoc ppc">#include &lt;gdk/gdkx.h&gt;</span> <span class="gtkdoc slc">// for GDK_WINDOW_XID</span>
@@ -380,13 +380,13 @@ used in the callback).
<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
<span class="gtkdoc opt">{</span>
- gulong xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
+ gulong xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
video_window_handle <span class="gtkdoc opt">=</span> xid<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc ppc">#endif</span>
<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_WIN32</span>
<span class="gtkdoc opt">{</span>
- HWND wnd <span class="gtkdoc opt">=</span> <span class="function">GDK_WINDOW_HWND</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
+ HWND wnd <span class="gtkdoc opt">=</span> <span class="function">GDK_WINDOW_HWND</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
video_window_handle <span class="gtkdoc opt">= (</span>guintptr<span class="gtkdoc opt">)</span> wnd<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc ppc">#endif</span>
@@ -398,25 +398,25 @@ used in the callback).
GtkWidget <span class="gtkdoc opt">*</span>video_window<span class="gtkdoc opt">;</span>
GtkWidget <span class="gtkdoc opt">*</span>app_window<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">...</span>
- app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
+ app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span>
- video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
+ video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> <span class="string">&quot;realize&quot;</span><span class="gtkdoc opt">,</span>
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>video_widget_realize_cb<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span>
<span class="gtkdoc slc">// usually the video_window will not be directly embedded into the</span>
<span class="gtkdoc slc">// application window like this, but there will be many other widgets</span>
<span class="gtkdoc slc">// and the video window will be embedded in one of them instead</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span>
<span class="gtkdoc slc">// show the GUI</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
<span class="gtkdoc slc">// realize window now so that the video window gets created and we can</span>
<span class="gtkdoc slc">// obtain its XID/HWND before the pipeline is started up and the videosink</span>
<span class="gtkdoc slc">// asks for the XID/HWND of the window to render onto</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://developer.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
<span class="gtkdoc slc">// we should have the XID/HWND now</span>
<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>video_window_handle <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
@@ -441,7 +441,7 @@ used in the callback).
</p>
<hr>
<div class="refsect2">
-<a name="idp30125408"></a><h3>GstVideoOverlay and Qt</h3>
+<a name="idp29546832"></a><h3>GstVideoOverlay and Qt</h3>
<p>
</p>
<div class="informalexample">
@@ -503,7 +503,7 @@ used in the callback).
53</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;glib.h&gt;</span>
<span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
-<span class="gtkdoc ppc">#include &lt;gst/interfaces/videooverlay.h&gt;</span>
+<span class="gtkdoc ppc">#include &lt;gst/video/videooverlay.h&gt;</span>
<span class="gtkdoc ppc">#include &lt;QApplication&gt;</span>
<span class="gtkdoc ppc">#include &lt;QTimer&gt;</span>
@@ -533,7 +533,7 @@ used in the callback).
window<span class="gtkdoc opt">.</span><span class="function">show</span><span class="gtkdoc opt">();</span>
WId xwinid <span class="gtkdoc opt">=</span> window<span class="gtkdoc opt">.</span><span class="function">winId</span><span class="gtkdoc opt">();</span>
- <span class="function"><a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> xwinid<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> xwinid<span class="gtkdoc opt">);</span>
<span class="gtkdoc slc">// run the pipeline</span>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
index 963525f..21945ac 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
@@ -121,7 +121,7 @@ enum <a class="link" href="gst-plugins-base-libs-gstvideooverlayc
<p>
</p>
<div class="refsect2">
-<a name="idp29310688"></a><p>
+<a name="idp28292272"></a><p>
Functions to create and handle overlay compositions on video buffers.
</p>
<p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
index a0f3008..29d43a3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
@@ -78,7 +78,7 @@ struct <a class="link" href="gst-plugins-base-libs-gstvideosink.htm
<p>
</p>
<div class="refsect2">
-<a name="idp27377920"></a><p>
+<a name="idp24318960"></a><p>
Provides useful functions and a base class for video sinks.
</p>
<p>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
new file mode 100644
index 0000000..88ad57b
--- /dev/null
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
@@ -0,0 +1,600 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstvideoutils</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">
+<link rel="next" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
+<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-GstVideoEncoder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-video.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 Base Plugins 1.0 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-libs-hierarchy.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-base-libs-gstvideoutils.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#gst-plugins-base-libs-gstvideoutils.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstvideoutils"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideoutils.top_of_page"></a>gstvideoutils</span></h2>
+<p>gstvideoutils</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstvideoutils.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame">GstVideoCodecFrame</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrameFlags" title="enum GstVideoCodecFrameFlags">GstVideoCodecFrameFlags</a>;
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAGS:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAGS()">GST_VIDEO_CODEC_FRAME_FLAGS</a> (frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_IS_SET()">GST_VIDEO_CODEC_FRAME_FLAG_IS_SET</a> (frame,
+ flag)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_SET()">GST_VIDEO_CODEC_FRAME_FLAG_SET</a> (frame,
+ flag)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS" title="GST_VIDEO_CODEC_FRAME_FLAG_UNSET()">GST_VIDEO_CODEC_FRAME_FLAG_UNSET</a> (frame,
+ flag)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY()">GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT</a> (frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY()">GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME()">GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS()">GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS</a>(frame)
+#define <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS" title="GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT()">GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT</a>(frame)
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-ref" title="gst_video_codec_frame_ref ()">gst_video_codec_frame_ref</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-unref" title="gst_video_codec_frame_unref ()">gst_video_codec_frame_unref</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-set-hook" title="gst_video_codec_frame_set_hook ()">gst_video_codec_frame_set_hook</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *hook</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
+struct <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState">GstVideoCodecState</a>;
+<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-ref" title="gst_video_codec_state_ref ()">gst_video_codec_state_ref</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-unref" title="gst_video_codec_state_unref ()">gst_video_codec_state_unref</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoutils.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideoutils.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstVideoCodecFrame"></a><h3>struct GstVideoCodecFrame</h3>
+<pre class="programlisting">struct GstVideoCodecFrame {
+ gint system_frame_number; /* ED */
+ gint decode_frame_number; /* ED */
+ gint presentation_frame_number; /* ED */
+
+ GstClockTime dts; /* ED */
+ GstClockTime pts; /* ED */
+ GstClockTime duration; /* ED */
+
+ int distance_from_sync; /* ED */
+
+ GstBuffer *input_buffer; /* ED */
+ GstBuffer *output_buffer; /* ED */
+
+ GstClockTime deadline; /* D */
+
+ /* Events that should be pushed downstream *before*
+ * the next output_buffer */
+ GList *events; /* ED */
+};
+</pre>
+<p>
+A <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> represents a video frame both in raw and
+encoded form.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.system-frame-number"></a>system_frame_number</code></em>;</span></p></td>
+<td>Unique identifier for the frame. Use this if you need
+to get hold of the frame later (like when data is being decoded).
+Typical usage in decoders is to set this on the opaque value provided
+to the library and get back the frame using <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frame" title="gst_video_decoder_get_frame ()"><code class="function">gst_video_decoder_get_frame()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.decode-frame-number"></a>decode_frame_number</code></em>;</span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.presentation-frame-number"></a>presentation_frame_number</code></em>;</span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.dts"></a>dts</code></em>;</span></p></td>
+<td>Decoding timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.pts"></a>pts</code></em>;</span></p></td>
+<td>Presentation timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.duration"></a>duration</code></em>;</span></p></td>
+<td>Duration of the frame</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="GstVideoCodecFrame.distance-from-sync"></a>distance_from_sync</code></em>;</span></p></td>
+<td>Distance in frames from the last synchronization point.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.input-buffer"></a>input_buffer</code></em>;</span></p></td>
+<td>the input <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> that created this frame.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.output-buffer"></a>output_buffer</code></em>;</span></p></td>
+<td>the output <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. Implementations should set this either
+directly, or by using the <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-frame" title="gst_video_decoder_alloc_output_frame ()"><code class="function">gst_video_decoder_alloc_output_frame()</code></a></code></em> or
+<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-buffer" title="gst_video_decoder_alloc_output_buffer ()"><code class="function">gst_video_decoder_alloc_output_buffer()</code></a></code></em> methods.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.deadline"></a>deadline</code></em>;</span></p></td>
+<td>Running time when the frame will be used.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.events"></a>events</code></em>;</span></p></td>
+<td>Events that will be pushed downstream before this frame is pushed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoCodecFrameFlags"></a><h3>enum GstVideoCodecFrameFlags</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY = (1&lt;&lt;0),
+ GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT = (1&lt;&lt;1),
+ GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME = (1&lt;&lt;2),
+ GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS = (1&lt;&lt;3)
+} GstVideoCodecFrameFlags;
+</pre>
+<p>
+Flags for <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-DECODE-ONLY:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY</code></span></p></td>
+<td>is the frame only meant to be decoded
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-SYNC-POINT:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT</code></span></p></td>
+<td>is the frame a synchronization point (keyframe)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME</code></span></p></td>
+<td>should the output frame be made a keyframe
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME-HEADERS:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS</code></span></p></td>
+<td>should the encoder output stream headers
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-FLAGS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAGS()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAGS(frame) ((frame)-&gt;flags)
+</pre>
+<p>
+The entire set of flags for the <em class="parameter"><code>frame</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_IS_SET()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame,flag) !!(GST_VIDEO_CODEC_FRAME_FLAGS(frame) &amp; (flag))
+</pre>
+<p>
+Checks whether the given <em class="parameter"><code>flag</code></em> is set
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>a flag to check for</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_SET()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_SET(frame,flag) (GST_VIDEO_CODEC_FRAME_FLAGS(frame) |= (flag))
+</pre>
+<p>
+This macro sets the given bits
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>Flag to set, can be any number of bits in guint32.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_UNSET()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame,flag) (GST_VIDEO_CODEC_FRAME_FLAGS(frame) &amp;= ~(flag))
+</pre>
+<p>
+This macro usets the given bits.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>Flag to unset</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
+</pre>
+<p>
+Tests if the buffer should only be decoded but not sent downstream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
+</pre>
+<p>
+Tests if the frame must be encoded as a keyframe. Applies only to
+frames provided to encoders. Decoders can safely ignore this field.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
+</pre>
+<p>
+Tests if encoder should output stream headers before outputting the
+resulting encoded buffer for the given frame.
+</p>
+<p>
+Applies only to frames provided to encoders. Decoders can safely
+ignore this field.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
+</pre>
+<p>
+Tests if the frame is a synchronization point (like a keyframe).
+</p>
+<p>
+Decoder implementations can use this to detect keyframes.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
+</pre>
+<p>
+Sets the buffer to not be sent downstream.
+</p>
+<p>
+Decoder implementation can use this if they have frames that
+are not meant to be displayed.
+</p>
+<p>
+Encoder implementation can safely ignore this field.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
+</pre>
+<p>
+Sets the frame to be a synchronization point (like a keyframe).
+</p>
+<p>
+Encoder implementations should set this accordingly.
+</p>
+<p>
+Decoder implementing parsing features should set this when they
+detect such a synchronization point.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME(frame) (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS(frame) (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT()</h3>
+<pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT(frame) (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-codec-frame-ref"></a><h3>gst_video_codec_frame_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * gst_video_codec_frame_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
+<p>
+Increases the refcount of the given frame by one.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td><em class="parameter"><code>buf</code></em></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-codec-frame-unref"></a><h3>gst_video_codec_frame_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_codec_frame_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
+<p>
+Decreases the refcount of the frame. If the refcount reaches 0, the frame
+will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-codec-frame-set-hook"></a><h3>gst_video_codec_frame_set_hook ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_codec_frame_set_hook (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *hook</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
+<p>
+Sets the <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> that will be called (along with the <em class="parameter"><code>hook</code></em>) when
+the frame is freed.
+</p>
+<p>
+If a <em class="parameter"><code>hook</code></em> was previously set, then the previous set <em class="parameter"><code>notify</code></em> will be called
+before the <em class="parameter"><code>hook</code></em> is replaced.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frame</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hook</code></em> :</span></p></td>
+<td>private data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> hook]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoCodecState"></a><h3>struct GstVideoCodecState</h3>
+<pre class="programlisting">struct GstVideoCodecState {
+ GstVideoInfo info;
+
+ GstCaps *caps;
+
+ GstBuffer *codec_data;
+};
+</pre>
+<p>
+Structure representing the state of an incoming or outgoing video
+stream for encoders and decoders.
+</p>
+<p>
+Decoders and encoders will receive such a state through their
+respective <em class="parameter"><code>set_format</code></em> vmethods.
+</p>
+<p>
+Decoders and encoders can set the downstream state, by using the
+<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state" title="gst_video_decoder_set_output_state ()"><code class="function">gst_video_decoder_set_output_state()</code></a></code></em> or
+<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()"><code class="function">gst_video_encoder_set_output_state()</code></a></code></em> methods.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> <em class="structfield"><code><a name="GstVideoCodecState.info"></a>info</code></em>;</span></p></td>
+<td>The <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> describing the stream</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.caps"></a>caps</code></em>;</span></p></td>
+<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.codec-data"></a>codec_data</code></em>;</span></p></td>
+<td>(optional) a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> corresponding to the
+'codec_data' field of a stream.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-codec-state-ref"></a><h3>gst_video_codec_state_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * gst_video_codec_state_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
+<p>
+Increases the refcount of the given state by one.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td><em class="parameter"><code>buf</code></em></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-codec-state-unref"></a><h3>gst_video_codec_state_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_codec_state_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
+<p>
+Decreases the refcount of the state. If the refcount reaches 0, the state
+will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libs/html/gst-plugins-base-libs.devhelp2 b/docs/libs/html/gst-plugins-base-libs.devhelp2
index 7c18fa4..7e2d5ce 100644
--- a/docs/libs/html/gst-plugins-base-libs.devhelp2
+++ b/docs/libs/html/gst-plugins-base-libs.devhelp2
@@ -24,9 +24,6 @@
<sub name="gstaudioringbuffer" link="gst-plugins-base-libs-gstaudioringbuffer.html"/>
<sub name="gstaudioiec61937" link="gst-plugins-base-libs-gstaudioiec61937.html"/>
<sub name="gststreamvolume" link="gst-plugins-base-libs-gststreamvolume.html"/>
- <sub name="gstmixer" link="gst-plugins-base-libs-gstmixer.html"/>
- <sub name="gstmixeroptions" link="gst-plugins-base-libs-gstmixeroptions.html"/>
- <sub name="gstmixertrack" link="gst-plugins-base-libs-gstmixertrack.html"/>
</sub>
<sub name="FFT Library" link="gstreamer-ffft.html">
<sub name="gstfft" link="gst-plugins-base-libs-gstfft.html"/>
@@ -35,12 +32,6 @@
<sub name="gstfftf32" link="gst-plugins-base-libs-gstfftf32.html"/>
<sub name="gstfftf64" link="gst-plugins-base-libs-gstfftf64.html"/>
</sub>
- <sub name="Interfaces Library" link="gstreamer-interfaces.html">
- <sub name="gstnavigation" link="gst-plugins-base-libs-gstnavigation.html"/>
- <sub name="gsttuner" link="gst-plugins-base-libs-gsttuner.html"/>
- <sub name="gsttunerchannel" link="gst-plugins-base-libs-gsttunerchannel.html"/>
- <sub name="gsttunernorm" link="gst-plugins-base-libs-gsttunernorm.html"/>
- </sub>
<sub name="Riff Media Library" link="gstreamer-riff.html">
<sub name="gstriff" link="gst-plugins-base-libs-gstriff.html"/>
</sub>
@@ -95,6 +86,9 @@
<sub name="gstcolorbalancechannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html"/>
<sub name="gstvideoorientation" link="gst-plugins-base-libs-gstvideoorientation.html"/>
<sub name="gstvideooverlay" link="gst-plugins-base-libs-gstvideooverlay.html"/>
+ <sub name="GstVideoDecoder" link="gst-plugins-base-libs-GstVideoDecoder.html"/>
+ <sub name="GstVideoEncoder" link="gst-plugins-base-libs-GstVideoEncoder.html"/>
+ <sub name="gstvideoutils" link="gst-plugins-base-libs-gstvideoutils.html"/>
</sub>
</sub>
<sub name="Object Hierarchy" link="gstreamer-libs-hierarchy.html"/>
@@ -168,7 +162,7 @@
<keyword type="macro" name="GST_CLOCK_TIME_TO_FRAMES()" link="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS"/>
<keyword type="macro" name="GST_AUDIO_DEF_RATE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS"/>
<keyword type="function" name="gst_audio_buffer_clip ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip" since="0.10.14"/>
- <keyword type="" name="Using GstAudioCdSrc-based elements in applications" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp8370544"/>
+ <keyword type="" name="Using GstAudioCdSrc-based elements in applications" link="gst-plugins-base-libs-gstaudiocdsrc.html#idp8421984"/>
<keyword type="struct" name="struct GstAudioCdSrc" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc-struct"/>
<keyword type="struct" name="struct GstAudioCdSrcClass" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass"/>
<keyword type="struct" name="struct GstAudioCdSrcTrack" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack"/>
@@ -255,9 +249,6 @@
<keyword type="struct" name="struct GstAudioFilter" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct"/>
<keyword type="struct" name="struct GstAudioFilterClass" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" since="0.10.12"/>
<keyword type="function" name="gst_audio_filter_class_add_pad_templates ()" link="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" since="0.10.12"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstaudiomixerutils.html#idp6174976"/>
- <keyword type="function" name="GstAudioMixerFilterFunc ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc"/>
- <keyword type="function" name="gst_audio_default_registry_mixer_filter ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" since="0.10.2"/>
<keyword type="struct" name="struct GstAudioSink" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct"/>
<keyword type="struct" name="struct GstAudioSinkClass" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass"/>
<keyword type="struct" name="struct GstAudioSrc" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct"/>
@@ -299,7 +290,7 @@
<keyword type="property" name="The &quot;provide-clock&quot; property" link="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--provide-clock"/>
<keyword type="property" name="The &quot;slave-method&quot; property" link="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc--slave-method"/>
<keyword type="enum" name="enum GstAudioChannelPosition" link="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstaudioringbuffer.html#idp12830912"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstaudioringbuffer.html#idp13203760"/>
<keyword type="struct" name="struct GstAudioRingBuffer" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct"/>
<keyword type="struct" name="struct GstAudioRingBufferClass" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass"/>
<keyword type="struct" name="struct GstAudioRingBufferSpec" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec"/>
@@ -337,7 +328,7 @@
<keyword type="function" name="gst_audio_ring_buffer_set_flushing ()" link="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-set-flushing"/>
<keyword type="function" name="gst_audio_iec61937_frame_size ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" since="0.10.36"/>
<keyword type="function" name="gst_audio_iec61937_payload ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" since="0.10.36"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp12650448"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp12023536"/>
<keyword type="struct" name="GstStreamVolume" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct"/>
<keyword type="enum" name="enum GstStreamVolumeFormat" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" since="0.10.25"/>
<keyword type="function" name="gst_stream_volume_get_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume" since="0.10.25"/>
@@ -347,43 +338,6 @@
<keyword type="function" name="gst_stream_volume_convert_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" since="0.10.25"/>
<keyword type="property" name="The &quot;mute&quot; property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--mute"/>
<keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--volume"/>
- <keyword type="struct" name="GstMixer" link="gst-plugins-base-libs-gstmixer.html#GstMixer-struct"/>
- <keyword type="enum" name="enum GstMixerType" link="gst-plugins-base-libs-gstmixer.html#GstMixerType"/>
- <keyword type="enum" name="enum GstMixerFlags" link="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" since="0.10.14"/>
- <keyword type="enum" name="enum GstMixerMessageType" link="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" since="0.10.14"/>
- <keyword type="function" name="gst_mixer_list_tracks ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks"/>
- <keyword type="function" name="gst_mixer_get_volume ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume"/>
- <keyword type="function" name="gst_mixer_set_volume ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume"/>
- <keyword type="function" name="gst_mixer_set_mute ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute"/>
- <keyword type="function" name="gst_mixer_set_record ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record"/>
- <keyword type="function" name="gst_mixer_set_option ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option"/>
- <keyword type="function" name="gst_mixer_mute_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled"/>
- <keyword type="function" name="gst_mixer_record_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled"/>
- <keyword type="function" name="gst_mixer_volume_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed"/>
- <keyword type="function" name="gst_mixer_option_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed"/>
- <keyword type="function" name="gst_mixer_options_list_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed" since="0.10.18"/>
- <keyword type="function" name="gst_mixer_get_option ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option"/>
- <keyword type="function" name="gst_mixer_mixer_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" since="0.10.18"/>
- <keyword type="function" name="gst_mixer_get_mixer_flags ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags"/>
- <keyword type="function" name="gst_mixer_get_mixer_type ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" since="0.10.24"/>
- <keyword type="function" name="gst_mixer_message_get_type ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" since="0.10.14"/>
- <keyword type="function" name="gst_mixer_message_parse_mute_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" since="0.10.14"/>
- <keyword type="function" name="gst_mixer_message_parse_option_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed" since="0.10.14"/>
- <keyword type="function" name="gst_mixer_message_parse_record_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled" since="0.10.14"/>
- <keyword type="function" name="gst_mixer_message_parse_volume_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed" since="0.10.14"/>
- <keyword type="function" name="gst_mixer_message_parse_options_list_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed" since="0.10.18"/>
- <keyword type="struct" name="struct GstMixerOptions" link="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct"/>
- <keyword type="function" name="gst_mixer_options_get_values ()" link="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values"/>
- <keyword type="struct" name="struct GstMixerTrack" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct"/>
- <keyword type="enum" name="enum GstMixerTrackFlags" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags"/>
- <keyword type="macro" name="GST_MIXER_TRACK_HAS_FLAG()" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS"/>
- <keyword type="property" name="The &quot;flags&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags"/>
- <keyword type="property" name="The &quot;index&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index"/>
- <keyword type="property" name="The &quot;label&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label"/>
- <keyword type="property" name="The &quot;max-volume&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume"/>
- <keyword type="property" name="The &quot;min-volume&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume"/>
- <keyword type="property" name="The &quot;num-channels&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels"/>
- <keyword type="property" name="The &quot;untranslated-label&quot; property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label"/>
<keyword type="enum" name="enum GstFFTWindow" link="gst-plugins-base-libs-gstfft.html#GstFFTWindow"/>
<keyword type="function" name="gst_fft_next_fast_length ()" link="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length"/>
<keyword type="struct" name="GstFFTS16" link="gst-plugins-base-libs-gstffts16.html#GstFFTS16"/>
@@ -414,72 +368,6 @@
<keyword type="function" name="gst_fft_f64_inverse_fft ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft"/>
<keyword type="function" name="gst_fft_f64_window ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window"/>
<keyword type="function" name="gst_fft_f64_free ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free"/>
- <keyword type="struct" name="GstNavigation" link="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct"/>
- <keyword type="struct" name="struct GstNavigationInterface" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface"/>
- <keyword type="enum" name="enum GstNavigationCommand" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" since="0.10.23"/>
- <keyword type="enum" name="enum GstNavigationEventType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" since="0.10.23"/>
- <keyword type="enum" name="enum GstNavigationMessageType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" since="0.10.23"/>
- <keyword type="enum" name="enum GstNavigationQueryType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType"/>
- <keyword type="function" name="gst_navigation_send_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event"/>
- <keyword type="function" name="gst_navigation_send_key_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event"/>
- <keyword type="function" name="gst_navigation_send_mouse_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event"/>
- <keyword type="function" name="gst_navigation_send_command ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_event_parse_command ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_event_parse_key_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_event_parse_mouse_button_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_event_parse_mouse_move_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_message_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_message_new_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_message_new_commands_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_message_new_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_message_parse_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_message_parse_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_new_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_new_commands ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_parse_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_parse_commands_length ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_parse_commands_nth ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_set_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_set_commands ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands" since="0.10.23"/>
- <keyword type="function" name="gst_navigation_query_set_commandsv ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv" since="0.10.23"/>
- <keyword type="macro" name="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS"/>
- <keyword type="macro" name="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS"/>
- <keyword type="macro" name="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS"/>
- <keyword type="macro" name="GST_NAVIGATION_COMMAND_DVD_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS"/>
- <keyword type="macro" name="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS"/>
- <keyword type="macro" name="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS"/>
- <keyword type="macro" name="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttuner.html#idp15487232"/>
- <keyword type="struct" name="GstTuner" link="gst-plugins-base-libs-gsttuner.html#GstTuner-struct"/>
- <keyword type="struct" name="struct GstTunerInterface" link="gst-plugins-base-libs-gsttuner.html#GstTunerInterface"/>
- <keyword type="function" name="gst_tuner_list_channels ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels"/>
- <keyword type="function" name="gst_tuner_get_channel ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-channel"/>
- <keyword type="function" name="gst_tuner_set_channel ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-channel"/>
- <keyword type="function" name="gst_tuner_list_norms ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-norms"/>
- <keyword type="function" name="gst_tuner_get_norm ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-norm"/>
- <keyword type="function" name="gst_tuner_set_norm ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-norm"/>
- <keyword type="function" name="gst_tuner_get_frequency ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-frequency"/>
- <keyword type="function" name="gst_tuner_set_frequency ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency"/>
- <keyword type="function" name="gst_tuner_signal_strength ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength"/>
- <keyword type="function" name="gst_tuner_find_norm_by_name ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-norm-by-name"/>
- <keyword type="function" name="gst_tuner_find_channel_by_name ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-channel-by-name"/>
- <keyword type="function" name="gst_tuner_channel_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-channel-changed"/>
- <keyword type="function" name="gst_tuner_norm_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-norm-changed"/>
- <keyword type="function" name="gst_tuner_frequency_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-frequency-changed"/>
- <keyword type="function" name="gst_tuner_signal_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-changed"/>
- <keyword type="signal" name="The &quot;channel-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-channel-changed"/>
- <keyword type="signal" name="The &quot;frequency-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed"/>
- <keyword type="signal" name="The &quot;norm-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed"/>
- <keyword type="signal" name="The &quot;signal-changed&quot; signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttunerchannel.html#idp16389248"/>
- <keyword type="struct" name="struct GstTunerChannel" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct"/>
- <keyword type="enum" name="enum GstTunerChannelFlags" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags"/>
- <keyword type="macro" name="GST_TUNER_CHANNEL_HAS_FLAG()" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS"/>
- <keyword type="signal" name="The &quot;frequency-changed&quot; signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed"/>
- <keyword type="signal" name="The &quot;signal-changed&quot; signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttunernorm.html#idp14922960"/>
- <keyword type="struct" name="struct GstTunerNorm" link="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct"/>
<keyword type="function" name="gst_riff_create_audio_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps"/>
<keyword type="function" name="gst_riff_create_audio_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps"/>
<keyword type="function" name="gst_riff_create_iavs_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps"/>
@@ -495,7 +383,7 @@
<keyword type="function" name="gst_riff_parse_strf_vids ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids"/>
<keyword type="function" name="gst_riff_parse_strh ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh"/>
<keyword type="function" name="gst_riff_read_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk"/>
- <keyword type="" name="Usage" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#idp15409952"/>
+ <keyword type="" name="Usage" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#idp14728384"/>
<keyword type="struct" name="struct GstRTPBaseAudioPayload" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct"/>
<keyword type="struct" name="struct GstRTPBaseAudioPayloadClass" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayloadClass"/>
<keyword type="function" name="gst_rtp_base_audio_payload_set_frame_based ()" link="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-frame-based"/>
@@ -535,7 +423,7 @@
<keyword type="property" name="The &quot;ssrc&quot; property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--ssrc"/>
<keyword type="property" name="The &quot;timestamp&quot; property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp"/>
<keyword type="property" name="The &quot;timestamp-offset&quot; property" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp-offset"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp17583680"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp15981600"/>
<keyword type="macro" name="GST_RTP_VERSION" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS"/>
<keyword type="function" name="gst_rtp_buffer_allocate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data"/>
<keyword type="function" name="gst_rtp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data"/>
@@ -583,7 +471,7 @@
<keyword type="function" name="gst_rtp_buffer_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-twobytes-header" since="0.10.31"/>
<keyword type="function" name="gst_rtp_buffer_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header" since="0.10.31"/>
<keyword type="function" name="gst_rtp_buffer_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header" since="0.10.31"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp18009296"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp16389952"/>
<keyword type="macro" name="GST_RTCP_VERSION" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VERSION:CAPS"/>
<keyword type="macro" name="GST_RTCP_MAX_SDES" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES:CAPS"/>
<keyword type="macro" name="GST_RTCP_MAX_BYE_SSRC_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"/>
@@ -649,7 +537,7 @@
<keyword type="function" name="gst_rtcp_unix_to_ntp ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp"/>
<keyword type="function" name="gst_rtcp_sdes_name_to_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type" since="0.10.26"/>
<keyword type="function" name="gst_rtcp_sdes_type_to_name ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name" since="0.10.26"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp18193408"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp15527360"/>
<keyword type="enum" name="enum GstRTPPayload" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload"/>
<keyword type="macro" name="GST_RTP_PAYLOAD_IS_DYNAMIC()" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"/>
<keyword type="struct" name="struct GstRTPPayloadInfo" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo"/>
@@ -710,7 +598,7 @@
<keyword type="function" name="gst_rtsp_options_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" since="0.10.23"/>
<keyword type="function" name="gst_rtsp_find_header_field ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field"/>
<keyword type="function" name="gst_rtsp_find_method ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp9512432"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp10284464"/>
<keyword type="struct" name="GstRTSPExtension" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtension"/>
<keyword type="struct" name="struct GstRTSPExtensionInterface" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtensionInterface"/>
<keyword type="enum" name="enum GstRTSPMsgType" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType"/>
@@ -767,7 +655,7 @@
<keyword type="function" name="gst_rtsp_url_set_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port"/>
<keyword type="function" name="gst_rtsp_url_get_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port"/>
<keyword type="function" name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components" since="0.10.32"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp24049056"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp22662448"/>
<keyword type="enum" name="enum GstSDPResult" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult"/>
<keyword type="struct" name="GstSDPOrigin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin"/>
<keyword type="struct" name="GstSDPConnection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection"/>
@@ -861,7 +749,7 @@
<keyword type="function" name="gst_sdp_media_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n"/>
<keyword type="function" name="gst_sdp_media_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute"/>
<keyword type="function" name="gst_sdp_media_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp18277216"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp17468672"/>
<keyword type="macro" name="GST_TAG_MUSICBRAINZ_TRACKID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRACKID:CAPS"/>
<keyword type="macro" name="GST_TAG_MUSICBRAINZ_ARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ARTISTID:CAPS"/>
<keyword type="macro" name="GST_TAG_MUSICBRAINZ_ALBUMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMID:CAPS"/>
@@ -900,14 +788,14 @@
<keyword type="function" name="gst_tag_freeform_string_to_utf8 ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8" since="0.10.13"/>
<keyword type="function" name="gst_tag_parse_extended_comment ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment" since="0.10.10"/>
<keyword type="enum" name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType" since="0.10.9"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp23964256"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp17451568"/>
<keyword type="function" name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
<keyword type="function" name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
<keyword type="function" name="gst_vorbis_tag_add ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add"/>
<keyword type="function" name="gst_tag_to_vorbis_comments ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments"/>
<keyword type="function" name="gst_tag_list_from_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer"/>
<keyword type="function" name="gst_tag_list_to_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp22109504"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp20818768"/>
<keyword type="function" name="gst_tag_id3_genre_count ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count"/>
<keyword type="function" name="gst_tag_id3_genre_get ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get"/>
<keyword type="function" name="gst_tag_list_new_from_id3v1 ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1"/>
@@ -925,21 +813,21 @@
<keyword type="function" name="gst_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" since="0.10.29"/>
<keyword type="function" name="gst_tag_list_to_xmp_buffer_full ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full" since="0.10.33"/>
<keyword type="function" name="gst_tag_xmp_list_schemas ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" since="0.10.33"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#idp22384768"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#idp22401328"/>
<keyword type="function" name="gst_tag_xmp_writer_add_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas" since="0.10.33"/>
<keyword type="function" name="gst_tag_xmp_writer_add_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema" since="0.10.33"/>
<keyword type="function" name="gst_tag_xmp_writer_has_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" since="0.10.33"/>
<keyword type="function" name="gst_tag_xmp_writer_remove_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema" since="0.10.33"/>
<keyword type="function" name="gst_tag_xmp_writer_remove_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas" since="0.10.33"/>
<keyword type="function" name="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer"/>
- <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp6790448"/>
+ <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp15580112"/>
<keyword type="struct" name="struct GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux" since="0.10.15"/>
<keyword type="struct" name="struct GstTagDemuxClass" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass" since="0.10.15"/>
<keyword type="enum" name="enum GstTagDemuxResult" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxResult" since="0.10.15"/>
- <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#idp11769424"/>
+ <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#idp9718656"/>
<keyword type="struct" name="struct GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#GstTagMux" since="0.10.36"/>
<keyword type="struct" name="struct GstTagMuxClass" link="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" since="0.10.36"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp22817376"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp22582832"/>
<keyword type="function" name="gst_tag_get_language_codes ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes" since="0.10.26"/>
<keyword type="function" name="gst_tag_get_language_name ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name" since="0.10.26"/>
<keyword type="macro" name="gst_tag_get_language_code()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code" since="0.10.26"/>
@@ -955,7 +843,7 @@
<keyword type="function" name="gst_tag_get_license_jurisdiction ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" since="0.10.36"/>
<keyword type="function" name="gst_tag_get_license_version ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" since="0.10.36"/>
<keyword type="function" name="gst_tag_get_licenses ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" since="0.10.36"/>
- <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp8277872"/>
+ <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp13061536"/>
<keyword type="function" name="gst_pb_utils_init ()" link="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" since="0.10.12"/>
<keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" since="0.10.31"/>
<keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" since="0.10.31"/>
@@ -964,7 +852,7 @@
<keyword type="macro" name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
<keyword type="function" name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" since="0.10.31"/>
<keyword type="function" name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" since="0.10.31"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp25469680"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp24082256"/>
<keyword type="function" name="gst_codec_utils_aac_get_sample_rate_from_index ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_aac_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" since="0.10.31"/>
@@ -976,7 +864,7 @@
<keyword type="function" name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" since="0.10.31"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp23481248"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp21197200"/>
<keyword type="function" name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
<keyword type="function" name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
<keyword type="function" name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
@@ -984,7 +872,7 @@
<keyword type="function" name="gst_pb_utils_get_element_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description"/>
<keyword type="function" name="gst_pb_utils_add_codec_description_to_tag_list ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list"/>
<keyword type="function" name="gst_pb_utils_get_codec_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp25791424"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp24416880"/>
<keyword type="function" name="gst_missing_plugin_message_get_installer_detail ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail"/>
<keyword type="function" name="gst_missing_plugin_message_get_description ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description"/>
<keyword type="function" name="gst_is_missing_plugin_message ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message"/>
@@ -998,7 +886,7 @@
<keyword type="function" name="gst_missing_element_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" since="0.10.15"/>
<keyword type="function" name="gst_missing_decoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" since="0.10.15"/>
<keyword type="function" name="gst_missing_encoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" since="0.10.15"/>
- <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp23108064"/>
+ <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp21458976"/>
<keyword type="enum" name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" since="0.10.12"/>
<keyword type="function" name="GstInstallPluginsResultFunc ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" since="0.10.12"/>
<keyword type="function" name="gst_install_plugins_async ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" since="0.10.12"/>
@@ -1070,9 +958,9 @@
<keyword type="signal" name="The &quot;discovered&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered"/>
<keyword type="signal" name="The &quot;finished&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished"/>
<keyword type="signal" name="The &quot;starting&quot; signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting"/>
- <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp26918624"/>
- <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp26926192"/>
- <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp26929184"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp25528832"/>
+ <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp25536400"/>
+ <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp25539392"/>
<keyword type="struct" name="GstEncodingProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"/>
<keyword type="macro" name="gst_encoding_profile_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" since="0.10.32"/>
<keyword type="macro" name="gst_encoding_profile_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" since="0.10.32"/>
@@ -1126,10 +1014,88 @@
<keyword type="function" name="gst_encoding_target_load_from_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file" since="0.10.32"/>
<keyword type="function" name="gst_encoding_list_all_targets ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" since="0.10.32"/>
<keyword type="function" name="gst_encoding_list_available_categories ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" since="0.10.32"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp28434336"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp25775616"/>
<keyword type="macro" name="GST_VIDEO_FPS_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS"/>
<keyword type="macro" name="GST_VIDEO_SIZE_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SIZE-RANGE:CAPS"/>
+ <keyword type="enum" name="enum GstVideoChromaSite" link="gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite"/>
+ <keyword type="enum" name="enum GstVideoColorMatrix" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix"/>
+ <keyword type="enum" name="enum GstVideoColorPrimaries" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries"/>
+ <keyword type="enum" name="enum GstVideoColorRange" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange"/>
+ <keyword type="struct" name="GstVideoColorimetry" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry"/>
+ <keyword type="enum" name="enum GstVideoFlags" link="gst-plugins-base-libs-gstvideo.html#GstVideoFlags"/>
+ <keyword type="enum" name="enum GstVideoFormatFlags" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags"/>
+ <keyword type="function" name="GstVideoFormatPack ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack"/>
+ <keyword type="function" name="GstVideoFormatUnpack ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack"/>
+ <keyword type="enum" name="enum GstVideoInterlaceMode" link="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode"/>
+ <keyword type="enum" name="enum GstVideoTransferFunction" link="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction"/>
<keyword type="enum" name="enum GstVideoFormat" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormat"/>
+ <keyword type="struct" name="struct GstVideoFormatInfo" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_BITS()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-BITS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_DATA()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DATA:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_DEPTH()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DEPTH:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_FLAGS()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FLAGS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_FORMAT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FORMAT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_HAS_ALPHA()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-ALPHA:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_HAS_PALETTE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-PALETTE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_H_SUB()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-H-SUB:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_IS_GRAY()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-GRAY:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_IS_LE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-LE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_IS_RGB()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-RGB:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_IS_YUV()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-YUV:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_IS_COMPLEX()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-COMPLEX:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_NAME()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-NAME:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_N_COMPONENTS()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-COMPONENTS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_N_PLANES()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-PLANES:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_OFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-OFFSET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_PLANE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PLANE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_POFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-POFFSET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_PSTRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PSTRIDE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-HEIGHT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_SCALE_WIDTH()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-WIDTH:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_SHIFT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SHIFT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_STRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-STRIDE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_FORMAT_INFO_W_SUB()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-W-SUB:CAPS"/>
+ <keyword type="struct" name="struct GstVideoInfo" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_DATA()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DATA:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_DEPTH()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DEPTH:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_HEIGHT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-HEIGHT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_OFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-OFFSET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_PLANE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PLANE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_POFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-POFFSET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_PSTRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PSTRIDE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_STRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-STRIDE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_COMP_WIDTH()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-WIDTH:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_FLAGS()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAGS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_FLAG_IS_SET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-IS-SET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_FLAG_SET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-SET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_FLAG_UNSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-UNSET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_FORMAT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_FPS_D()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-D:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_FPS_N()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-N:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_HAS_ALPHA()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HAS-ALPHA:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_HEIGHT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HEIGHT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_INTERLACE_MODE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-INTERLACE-MODE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_IS_GRAY()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-GRAY:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_IS_INTERLACED()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-INTERLACED:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_IS_RGB()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-RGB:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_IS_YUV()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-YUV:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_NAME()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-NAME:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_N_COMPONENTS()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-COMPONENTS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_N_PLANES()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-PLANES:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_PAR_D()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-D:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_PAR_N()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-N:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_PLANE_OFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-OFFSET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_PLANE_STRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-STRIDE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_SIZE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-SIZE:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_INFO_WIDTH()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-WIDTH:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_MAX_COMPONENTS" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_MAX_PLANES" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_SUB_SCALE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SUB-SCALE:CAPS"/>
+ <keyword type="function" name="gst_video_info_convert ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-convert"/>
+ <keyword type="function" name="gst_video_info_from_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-from-caps"/>
+ <keyword type="function" name="gst_video_info_init ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-init"/>
+ <keyword type="function" name="gst_video_info_set_format ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-set-format"/>
+ <keyword type="function" name="gst_video_info_to_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-to-caps"/>
<keyword type="function" name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" since="0.10.7"/>
<keyword type="function" name="gst_video_format_to_fourcc ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" since="0.10.16"/>
<keyword type="function" name="gst_video_format_from_fourcc ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc" since="0.10.16"/>
@@ -1144,7 +1110,7 @@
<keyword type="function" name="gst_video_event_is_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" since="0.10.36"/>
<keyword type="function" name="gst_video_event_parse_upstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" since="0.10.36"/>
<keyword type="function" name="gst_video_event_parse_downstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" since="0.10.36"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#idp29310688"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#idp28292272"/>
<keyword type="struct" name="GstVideoOverlayComposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" since="0.10.36"/>
<keyword type="struct" name="GstVideoOverlayCompositionClass" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass"/>
<keyword type="function" name="gst_video_overlay_composition_new ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new" since="0.10.36"/>
@@ -1172,10 +1138,10 @@
<keyword type="function" name="gst_video_overlay_rectangle_set_render_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle" since="0.10.36"/>
<keyword type="function" name="gst_video_overlay_rectangle_copy ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" since="0.10.36"/>
<keyword type="function" name="gst_video_overlay_rectangle_get_flags ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-flags" since="0.10.37"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp16308896"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp24731744"/>
<keyword type="struct" name="struct GstVideoFilter" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct"/>
<keyword type="struct" name="struct GstVideoFilterClass" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp27377920"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp24318960"/>
<keyword type="struct" name="struct GstVideoSink" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct"/>
<keyword type="struct" name="struct GstVideoSinkClass" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass"/>
<keyword type="struct" name="struct GstVideoRectangle" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle"/>
@@ -1184,7 +1150,7 @@
<keyword type="macro" name="GST_VIDEO_SINK_WIDTH()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-WIDTH:CAPS"/>
<keyword type="function" name="gst_video_sink_center_rect ()" link="gst-plugins-base-libs-gstvideosink.html#gst-video-sink-center-rect"/>
<keyword type="property" name="The &quot;show-preroll-frame&quot; property" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp28326624"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp29273040"/>
<keyword type="struct" name="GstColorBalance" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct"/>
<keyword type="struct" name="struct GstColorBalanceInterface" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface"/>
<keyword type="enum" name="enum GstColorBalanceType" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType"/>
@@ -1194,7 +1160,7 @@
<keyword type="function" name="gst_color_balance_value_changed ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed"/>
<keyword type="function" name="gst_color_balance_get_balance_type ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" since="0.10.24"/>
<keyword type="signal" name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp27298320"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp24335184"/>
<keyword type="struct" name="struct GstColorBalanceChannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct"/>
<keyword type="struct" name="struct GstColorBalanceChannelClass" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass"/>
<keyword type="signal" name="The &quot;value-changed&quot; signal" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed"/>
@@ -1208,10 +1174,10 @@
<keyword type="function" name="gst_video_orientation_set_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hflip" since="0.10.11"/>
<keyword type="function" name="gst_video_orientation_set_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vcenter" since="0.10.11"/>
<keyword type="function" name="gst_video_orientation_set_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip" since="0.10.11"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlay.html#idp27344640"/>
- <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#idp27354736"/>
- <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#idp30120224"/>
- <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#idp30125408"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlay.html#idp28156752"/>
+ <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstvideooverlay.html#idp28166848"/>
+ <keyword type="" name="GstVideoOverlay and Gtk+" link="gst-plugins-base-libs-gstvideooverlay.html#idp29541664"/>
+ <keyword type="" name="GstVideoOverlay and Qt" link="gst-plugins-base-libs-gstvideooverlay.html#idp29546832"/>
<keyword type="struct" name="GstVideoOverlay" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay-struct"/>
<keyword type="struct" name="struct GstVideoOverlayInterface" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface"/>
<keyword type="function" name="gst_video_overlay_got_window_handle ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-got-window-handle"/>
@@ -1220,6 +1186,85 @@
<keyword type="function" name="gst_video_overlay_expose ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-expose"/>
<keyword type="function" name="gst_video_overlay_handle_events ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-handle-events" since="0.10.12"/>
<keyword type="function" name="gst_video_overlay_set_render_rectangle ()" link="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-render-rectangle" since="0.10.29"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_ERROR()" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-ERROR:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_FLOW_NEED_DATA" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_MAX_ERRORS" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-MAX-ERRORS:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_SINK_NAME" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_SINK_PAD()" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-PAD:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_SRC_NAME" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_SRC_PAD()" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-PAD:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_STREAM_LOCK()" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-LOCK:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_STREAM_UNLOCK()" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-UNLOCK:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_INPUT_SEGMENT()" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-INPUT-SEGMENT:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_DECODER_OUTPUT_SEGMENT()" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-OUTPUT-SEGMENT:CAPS" since="0.10.36"/>
+ <keyword type="struct" name="struct GstVideoDecoder" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" since="0.10.36"/>
+ <keyword type="struct" name="struct GstVideoDecoderClass" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_add_to_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-add-to-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_alloc_output_buffer ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-buffer" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_alloc_output_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_drop_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-drop-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_finish_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_max_decode_time ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-decode-time" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_max_errors ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-errors" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_oldest_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-oldest-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_packetized ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-packetized" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_have_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-have-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_latency ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_set_latency ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_estimate_rate ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-estimate-rate" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_get_output_state ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-output-state" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_set_estimate_rate ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-estimate-rate" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_set_output_state ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_set_max_errors ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-max-errors" since="0.10.36"/>
+ <keyword type="function" name="gst_video_decoder_set_packetized ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-packetized" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_CAST()" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-CAST:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_FLOW_DROPPED" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_FLOW_NEED_DATA" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_SINK_NAME" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_SINK_PAD()" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-PAD:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_SRC_NAME" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_SRC_PAD()" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-PAD:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_INPUT_SEGMENT()" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_OUTPUT_SEGMENT()" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_STREAM_LOCK()" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-LOCK:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_VIDEO_ENCODER_STREAM_UNLOCK()" link="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS" since="0.10.36"/>
+ <keyword type="struct" name="struct GstVideoEncoder" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" since="0.10.36"/>
+ <keyword type="struct" name="struct GstVideoEncoderClass" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_finish_frame ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_get_frame ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_get_oldest_frame ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-oldest-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_set_headers ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-headers" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_get_latency ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_set_latency ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_get_discont ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-discont"/>
+ <keyword type="function" name="gst_video_encoder_set_discont ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-discont"/>
+ <keyword type="function" name="gst_video_encoder_set_output_state ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_get_output_state ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-output-state" since="0.10.36"/>
+ <keyword type="function" name="gst_video_encoder_proxy_getcaps ()" link="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-proxy-getcaps" since="0.10.36"/>
+ <keyword type="struct" name="struct GstVideoCodecFrame" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame"/>
+ <keyword type="enum" name="enum GstVideoCodecFrameFlags" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrameFlags"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_FLAGS()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAGS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_FLAG_IS_SET()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_FLAG_SET()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_FLAG_UNSET()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT()" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS"/>
+ <keyword type="function" name="gst_video_codec_frame_ref ()" link="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-ref"/>
+ <keyword type="function" name="gst_video_codec_frame_unref ()" link="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-unref"/>
+ <keyword type="function" name="gst_video_codec_frame_set_hook ()" link="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-set-hook"/>
+ <keyword type="struct" name="struct GstVideoCodecState" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState"/>
+ <keyword type="function" name="gst_video_codec_state_ref ()" link="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-ref"/>
+ <keyword type="function" name="gst_video_codec_state_unref ()" link="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-unref"/>
<keyword type="constant" name="GST_APP_STREAM_TYPE_STREAM" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-STREAM:CAPS"/>
<keyword type="constant" name="GST_APP_STREAM_TYPE_SEEKABLE" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-SEEKABLE:CAPS"/>
<keyword type="constant" name="GST_APP_STREAM_TYPE_RANDOM_ACCESS" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-RANDOM-ACCESS:CAPS"/>
@@ -1332,68 +1377,11 @@
<keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_LINEAR" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-LINEAR:CAPS"/>
<keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_CUBIC" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-CUBIC:CAPS"/>
<keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_DB" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-DB:CAPS"/>
- <keyword type="constant" name="GST_MIXER_HARDWARE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-HARDWARE:CAPS"/>
- <keyword type="constant" name="GST_MIXER_SOFTWARE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-SOFTWARE:CAPS"/>
- <keyword type="constant" name="GST_MIXER_FLAG_NONE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-NONE:CAPS"/>
- <keyword type="constant" name="GST_MIXER_FLAG_AUTO_NOTIFICATIONS" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS"/>
- <keyword type="constant" name="GST_MIXER_FLAG_HAS_WHITELIST" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-HAS-WHITELIST:CAPS"/>
- <keyword type="constant" name="GST_MIXER_FLAG_GROUPING" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-GROUPING:CAPS"/>
- <keyword type="constant" name="GST_MIXER_MESSAGE_INVALID" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-INVALID:CAPS"/>
- <keyword type="constant" name="GST_MIXER_MESSAGE_MUTE_TOGGLED" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-MUTE-TOGGLED:CAPS"/>
- <keyword type="constant" name="GST_MIXER_MESSAGE_RECORD_TOGGLED" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-RECORD-TOGGLED:CAPS"/>
- <keyword type="constant" name="GST_MIXER_MESSAGE_VOLUME_CHANGED" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-VOLUME-CHANGED:CAPS"/>
- <keyword type="constant" name="GST_MIXER_MESSAGE_OPTION_CHANGED" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-OPTION-CHANGED:CAPS"/>
- <keyword type="constant" name="GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-OPTIONS-LIST-CHANGED:CAPS"/>
- <keyword type="constant" name="GST_MIXER_MESSAGE_MIXER_CHANGED" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-MIXER-CHANGED:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_INPUT" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-INPUT:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_OUTPUT" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-OUTPUT:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_MUTE" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-MUTE:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_RECORD" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-RECORD:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_MASTER" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-MASTER:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_SOFTWARE" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-SOFTWARE:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_NO_RECORD" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-NO-RECORD:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_NO_MUTE" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-NO-MUTE:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_WHITELIST" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-WHITELIST:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_READABLE" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-READABLE:CAPS"/>
- <keyword type="constant" name="GST_MIXER_TRACK_WRITABLE" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-WRITABLE:CAPS"/>
<keyword type="constant" name="GST_FFT_WINDOW_RECTANGULAR" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-RECTANGULAR:CAPS"/>
<keyword type="constant" name="GST_FFT_WINDOW_HAMMING" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-HAMMING:CAPS"/>
<keyword type="constant" name="GST_FFT_WINDOW_HANN" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-HANN:CAPS"/>
<keyword type="constant" name="GST_FFT_WINDOW_BARTLETT" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-BARTLETT:CAPS"/>
<keyword type="constant" name="GST_FFT_WINDOW_BLACKMAN" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-BLACKMAN:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_INVALID" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-INVALID:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_MENU1" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU1:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_MENU2" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU2:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_MENU3" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU3:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_MENU4" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU4:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_MENU5" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU5:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_MENU6" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU6:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_MENU7" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU7:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_LEFT" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-LEFT:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_RIGHT" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-RIGHT:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_UP" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-UP:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_DOWN" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DOWN:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_ACTIVATE" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-ACTIVATE:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_PREV_ANGLE" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-PREV-ANGLE:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_COMMAND_NEXT_ANGLE" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-NEXT-ANGLE:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_EVENT_INVALID" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-INVALID:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_EVENT_KEY_PRESS" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-KEY-PRESS:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_EVENT_KEY_RELEASE" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-KEY-RELEASE:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-MOUSE-BUTTON-PRESS:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-MOUSE-BUTTON-RELEASE:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_EVENT_MOUSE_MOVE" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-MOUSE-MOVE:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_EVENT_COMMAND" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-COMMAND:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_MESSAGE_INVALID" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_MESSAGE_MOUSE_OVER" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_QUERY_INVALID" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_QUERY_COMMANDS" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-COMMANDS:CAPS"/>
- <keyword type="constant" name="GST_NAVIGATION_QUERY_ANGLES" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-ANGLES:CAPS"/>
- <keyword type="constant" name="GST_TUNER_CHANNEL_INPUT" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-INPUT:CAPS"/>
- <keyword type="constant" name="GST_TUNER_CHANNEL_OUTPUT" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-OUTPUT:CAPS"/>
- <keyword type="constant" name="GST_TUNER_CHANNEL_FREQUENCY" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-FREQUENCY:CAPS"/>
- <keyword type="constant" name="GST_TUNER_CHANNEL_AUDIO" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-AUDIO:CAPS"/>
<keyword type="constant" name="GST_RTCP_TYPE_INVALID" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-TYPE-INVALID:CAPS"/>
<keyword type="constant" name="GST_RTCP_TYPE_SR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-TYPE-SR:CAPS"/>
<keyword type="constant" name="GST_RTCP_TYPE_RR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-TYPE-RR:CAPS"/>
@@ -1580,6 +1568,45 @@
<keyword type="constant" name="GST_DISCOVERER_TIMEOUT" link="gst-plugins-base-libs-gstdiscoverer.html#GST-DISCOVERER-TIMEOUT:CAPS"/>
<keyword type="constant" name="GST_DISCOVERER_BUSY" link="gst-plugins-base-libs-gstdiscoverer.html#GST-DISCOVERER-BUSY:CAPS"/>
<keyword type="constant" name="GST_DISCOVERER_MISSING_PLUGINS" link="gst-plugins-base-libs-gstdiscoverer.html#GST-DISCOVERER-MISSING-PLUGINS:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_MATRIX_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_MATRIX_RGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-RGB:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_MATRIX_FCC" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-FCC:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_MATRIX_BT709" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-BT709:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_MATRIX_BT601" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-BT601:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_MATRIX_SMPTE240M" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-SMPTE240M:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_BT709" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT709:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_BT470M" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT470M:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_BT470BG" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT470BG:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_SMPTE170M" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-SMPTE170M:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_PRIMARIES_SMPTE240M" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_RANGE_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_RANGE_0_255" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-0-255:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_COLOR_RANGE_16_235" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-16-235:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FLAG_NONE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FLAG-NONE:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FLAG_VARIABLE_FPS" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FLAG-VARIABLE-FPS:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_YUV" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-YUV:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_RGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-RGB:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_GRAY" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-GRAY:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_ALPHA" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-ALPHA:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_LE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-LE:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_PALETTE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-PALETTE:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_COMPLEX" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-COMPLEX:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_INTERLACE_MODE_PROGRESSIVE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-PROGRESSIVE:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_INTERLACE_MODE_INTERLEAVED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-INTERLEAVED:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_INTERLACE_MODE_MIXED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-MIXED:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_INTERLACE_MODE_FIELDS" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-FIELDS:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_GAMMA10" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA10:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_GAMMA18" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA18:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_GAMMA20" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA20:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_GAMMA22" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA22:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_BT709" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-BT709:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_SMPTE240M" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-SMPTE240M:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_SRGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-SRGB:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_GAMMA28" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA28:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_LOG100" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG100:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_TRANSFER_LOG316" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG316:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_UNKNOWN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_I420" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I420:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_YV12" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-YV12:CAPS"/>
@@ -1623,10 +1650,15 @@
<keyword type="constant" name="GST_VIDEO_FORMAT_ARGB64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB64:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_AYUV64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-AYUV64:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_r210" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-r210"/>
+ <keyword type="constant" name="GST_VIDEO_FORMAT_ENCODED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ENCODED:CAPS"/>
<keyword type="constant" name="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS"/>
<keyword type="constant" name="GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-PREMULTIPLIED-ALPHA:CAPS"/>
<keyword type="constant" name="GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"/>
<keyword type="constant" name="GST_COLOR_BALANCE_HARDWARE" link="gst-plugins-base-libs-gstcolorbalance.html#GST-COLOR-BALANCE-HARDWARE:CAPS"/>
<keyword type="constant" name="GST_COLOR_BALANCE_SOFTWARE" link="gst-plugins-base-libs-gstcolorbalance.html#GST-COLOR-BALANCE-SOFTWARE:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-DECODE-ONLY:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-SYNC-POINT:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS" link="gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME-HEADERS:CAPS"/>
</functions>
</book>
diff --git a/docs/libs/html/gstreamer-audio.html b/docs/libs/html/gstreamer-audio.html
index 0eff04c..fe9a240 100644
--- a/docs/libs/html/gstreamer-audio.html
+++ b/docs/libs/html/gstreamer-audio.html
@@ -42,8 +42,7 @@
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiomixerutils.html">gstaudiomixerutils</a></span><span class="refpurpose"> — utility functions to find available audio mixers
- from the plugin registry</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiomixerutils.html">gstaudiomixerutils</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"> — Simple base class for audio sinks</span>
@@ -69,15 +68,6 @@
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"> — Interface for elements that provide a stream volume</span>
</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixer.html">gstmixer</a></span><span class="refpurpose"> — Interface for elements that provide mixer operations</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixeroptions.html">gstmixeroptions</a></span><span class="refpurpose"> — Multi-option mixer control</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixertrack.html">gstmixertrack</a></span><span class="refpurpose"> — Basic mixer control object (volume slider, switch)</span>
-</dt>
</dl></div>
<p>
This library should be linked to by getting cflags and libs from
diff --git a/docs/libs/html/gstreamer-ffft.html b/docs/libs/html/gstreamer-ffft.html
index 317d874..a961480 100644
--- a/docs/libs/html/gstreamer-ffft.html
+++ b/docs/libs/html/gstreamer-ffft.html
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">
+<link rel="prev" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
<link rel="next" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gstmixertrack.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gststreamvolume.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-plugins-base.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 Base Plugins 1.0 Library Reference Manual</th>
diff --git a/docs/libs/html/gstreamer-interfaces.html b/docs/libs/html/gstreamer-interfaces.html
deleted file mode 100644
index 782433a..0000000
--- a/docs/libs/html/gstreamer-interfaces.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Interfaces Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
-<link rel="next" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
-<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gstfftf64.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="gstreamer-plugins-base.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 Base Plugins 1.0 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstnavigation.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="gstreamer-interfaces"></a>Interfaces Library</h2></div></div></div>
-<div class="toc"><dl>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"> — Interface for creating, sending and parsing navigation
-events.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttuner.html">gsttuner</a></span><span class="refpurpose"> — Interface for elements providing tuner operations</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttunerchannel.html">gsttunerchannel</a></span><span class="refpurpose"> — A channel from an element implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a>
-interface.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttunernorm.html">gsttunernorm</a></span><span class="refpurpose"> — Encapsulates information about the data format(s)
-for a <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.</span>
-</dt>
-</dl></div>
-<p>
- This library should be linked to by getting cflags and libs from
- <code class="filename">gstreamer-plugins-base-1.0.pc</code> and adding
- <code class="filename">-lgstinterfaces-1.0</code> to the library flags.
- </p>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.18</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libs/html/gstreamer-libs-hierarchy.html b/docs/libs/html/gstreamer-libs-hierarchy.html
index ccd3b94..63e5227 100644
--- a/docs/libs/html/gstreamer-libs-hierarchy.html
+++ b/docs/libs/html/gstreamer-libs-hierarchy.html
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="prev" href="gst-plugins-base-libs-gstvideooverlay.html" title="gstvideooverlay">
+<link rel="prev" href="gst-plugins-base-libs-gstvideoutils.html" title="gstvideoutils">
<link rel="next" href="api-index-full.html" title="Index">
<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gstvideooverlay.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideoutils.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 Base Plugins 1.0 Library Reference Manual</th>
@@ -48,10 +48,6 @@
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html">GstSystemClock</a>
<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock">GstAudioClock</a>
<a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer">GstAudioRingBuffer</a>
- <a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack">GstMixerTrack</a>
- <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions">GstMixerOptions</a>
- <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel">GstTunerChannel</a>
- <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm">GstTunerNorm</a>
<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel">GstColorBalanceChannel</a>
<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer">GstDiscoverer</a>
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile">GstEncodingProfile</a>
@@ -61,9 +57,7 @@
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget">GstEncodingTarget</a>
<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo">GstDiscovererInfo</a>
GInterface
- <a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a>
- <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>
- <a class="link" href="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-gstnavigation.html#GstNavigation">GstNavigation</a>
<a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>
<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>
<a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation">GstVideoOrientation</a>
diff --git a/docs/libs/html/gstreamer-plugins-base.html b/docs/libs/html/gstreamer-plugins-base.html
index 4b53ffc..ad4ee9f 100644
--- a/docs/libs/html/gstreamer-plugins-base.html
+++ b/docs/libs/html/gstreamer-plugins-base.html
@@ -62,8 +62,7 @@ How to compile against the base plugins libraries
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiomixerutils.html">gstaudiomixerutils</a></span><span class="refpurpose"> — utility functions to find available audio mixers
- from the plugin registry</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiomixerutils.html">gstaudiomixerutils</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"> — Simple base class for audio sinks</span>
@@ -89,15 +88,6 @@ How to compile against the base plugins libraries
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"> — Interface for elements that provide a stream volume</span>
</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixer.html">gstmixer</a></span><span class="refpurpose"> — Interface for elements that provide mixer operations</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixeroptions.html">gstmixeroptions</a></span><span class="refpurpose"> — Multi-option mixer control</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixertrack.html">gstmixertrack</a></span><span class="refpurpose"> — Basic mixer control object (volume slider, switch)</span>
-</dt>
</dl></dd>
<dt><span class="chapter"><a href="gstreamer-ffft.html">FFT Library</a></span></dt>
<dd><dl>
@@ -117,24 +107,6 @@ How to compile against the base plugins libraries
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"> — FFT functions for 64 bit float samples</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="gstreamer-interfaces.html">Interfaces Library</a></span></dt>
-<dd><dl>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"> — Interface for creating, sending and parsing navigation
-events.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttuner.html">gsttuner</a></span><span class="refpurpose"> — Interface for elements providing tuner operations</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttunerchannel.html">gsttunerchannel</a></span><span class="refpurpose"> — A channel from an element implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a>
-interface.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttunernorm.html">gsttunernorm</a></span><span class="refpurpose"> — Encapsulates information about the data format(s)
-for a <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.</span>
-</dt>
-</dl></dd>
<dt><span class="chapter"><a href="gstreamer-riff.html">Riff Media Library</a></span></dt>
<dd><dl><dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"> — Riff fileformat utillity functions.</span>
@@ -285,6 +257,15 @@ controls</span>
on elements supporting it to configure a window into which to render a
video.</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"> — Base class for video decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"> — Base class for video encoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoutils.html">gstvideoutils</a></span><span class="refpurpose"></span>
+</dt>
</dl></dd>
</dl>
</div>
diff --git a/docs/libs/html/gstreamer-riff.html b/docs/libs/html/gstreamer-riff.html
index 59d7942..9cc68c2 100644
--- a/docs/libs/html/gstreamer-riff.html
+++ b/docs/libs/html/gstreamer-riff.html
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="gst-plugins-base-libs-gsttunernorm.html" title="gsttunernorm">
+<link rel="prev" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
<link rel="next" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
<meta name="generator" content="GTK-Doc V1.18 (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-base-libs-gsttunernorm.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstfftf64.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-plugins-base.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 Base Plugins 1.0 Library Reference Manual</th>
diff --git a/docs/libs/html/gstreamer-video.html b/docs/libs/html/gstreamer-video.html
index 80e9502..ac0689b 100644
--- a/docs/libs/html/gstreamer-video.html
+++ b/docs/libs/html/gstreamer-video.html
@@ -51,6 +51,15 @@ controls</span>
on elements supporting it to configure a window into which to render a
video.</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"> — Base class for video decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"> — Base class for video encoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoutils.html">gstvideoutils</a></span><span class="refpurpose"></span>
+</dt>
</dl></div>
<p>
This library should be linked to by getting cflags and libs from
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index f34db13..2d5b8ee 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -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 Base Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Base Library 1.0 (0.11.90)
+ for GStreamer Base Library 1.0 (0.11.91)
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
</p></div>
</div>
@@ -61,8 +61,7 @@ How to compile against the base plugins libraries
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiomixerutils.html">gstaudiomixerutils</a></span><span class="refpurpose"> — utility functions to find available audio mixers
- from the plugin registry</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiomixerutils.html">gstaudiomixerutils</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"> — Simple base class for audio sinks</span>
@@ -88,15 +87,6 @@ How to compile against the base plugins libraries
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"> — Interface for elements that provide a stream volume</span>
</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixer.html">gstmixer</a></span><span class="refpurpose"> — Interface for elements that provide mixer operations</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixeroptions.html">gstmixeroptions</a></span><span class="refpurpose"> — Multi-option mixer control</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmixertrack.html">gstmixertrack</a></span><span class="refpurpose"> — Basic mixer control object (volume slider, switch)</span>
-</dt>
</dl></dd>
<dt><span class="chapter"><a href="gstreamer-ffft.html">FFT Library</a></span></dt>
<dd><dl>
@@ -116,24 +106,6 @@ How to compile against the base plugins libraries
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"> — FFT functions for 64 bit float samples</span>
</dt>
</dl></dd>
-<dt><span class="chapter"><a href="gstreamer-interfaces.html">Interfaces Library</a></span></dt>
-<dd><dl>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"> — Interface for creating, sending and parsing navigation
-events.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttuner.html">gsttuner</a></span><span class="refpurpose"> — Interface for elements providing tuner operations</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttunerchannel.html">gsttunerchannel</a></span><span class="refpurpose"> — A channel from an element implementing the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a>
-interface.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttunernorm.html">gsttunernorm</a></span><span class="refpurpose"> — Encapsulates information about the data format(s)
-for a <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.</span>
-</dt>
-</dl></dd>
<dt><span class="chapter"><a href="gstreamer-riff.html">Riff Media Library</a></span></dt>
<dd><dl><dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"> — Riff fileformat utillity functions.</span>
@@ -284,6 +256,15 @@ controls</span>
on elements supporting it to configure a window into which to render a
video.</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"> — Base class for video decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"> — Base class for video encoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoutils.html">gstvideoutils</a></span><span class="refpurpose"></span>
+</dt>
</dl></dd>
</dl></dd>
<dt><span class="part"><a href="gstreamer-libs-hierarchy.html">II. Object Hierarchy</a></span></dt>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index f2bec0b..18168fc 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -266,8 +266,6 @@
<ANCHOR id="gst-plugins-base-libs-gstaudiomixerutils.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiomixerutils.html#gst-plugins-base-libs-gstaudiomixerutils.synopsis">
<ANCHOR id="gst-plugins-base-libs-gstaudiomixerutils.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiomixerutils.html#gst-plugins-base-libs-gstaudiomixerutils.description">
<ANCHOR id="gst-plugins-base-libs-gstaudiomixerutils.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiomixerutils.html#gst-plugins-base-libs-gstaudiomixerutils.details">
-<ANCHOR id="GstAudioMixerFilterFunc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc">
-<ANCHOR id="gst-audio-default-registry-mixer-filter" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter">
<ANCHOR id="gst-plugins-base-libs-gstaudiosink" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiosink.html">
<ANCHOR id="gst-plugins-base-libs-gstaudiosink.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiosink.html#gst-plugins-base-libs-gstaudiosink.synopsis">
<ANCHOR id="GstAudioSink" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiosink.html#GstAudioSink">
@@ -467,90 +465,6 @@
<ANCHOR id="gst-plugins-base-libs-gststreamvolume.property-details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gststreamvolume.html#gst-plugins-base-libs-gststreamvolume.property-details">
<ANCHOR id="GstStreamVolume--mute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--mute">
<ANCHOR id="GstStreamVolume--volume" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--volume">
-<ANCHOR id="gst-plugins-base-libs-gstmixer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html">
-<ANCHOR id="gst-plugins-base-libs-gstmixer.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-plugins-base-libs-gstmixer.synopsis">
-<ANCHOR id="GstMixer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixer">
-<ANCHOR id="gst-plugins-base-libs-gstmixer.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-plugins-base-libs-gstmixer.object-hierarchy">
-<ANCHOR id="gst-plugins-base-libs-gstmixer.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-plugins-base-libs-gstmixer.description">
-<ANCHOR id="gst-plugins-base-libs-gstmixer.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-plugins-base-libs-gstmixer.details">
-<ANCHOR id="GstMixer-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixer-struct">
-<ANCHOR id="GstMixerType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixerType">
-<ANCHOR id="GST-MIXER-HARDWARE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-HARDWARE:CAPS">
-<ANCHOR id="GST-MIXER-SOFTWARE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-SOFTWARE:CAPS">
-<ANCHOR id="GstMixerFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixerFlags">
-<ANCHOR id="GST-MIXER-FLAG-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-NONE:CAPS">
-<ANCHOR id="GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS">
-<ANCHOR id="GST-MIXER-FLAG-HAS-WHITELIST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-HAS-WHITELIST:CAPS">
-<ANCHOR id="GST-MIXER-FLAG-GROUPING:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-GROUPING:CAPS">
-<ANCHOR id="GstMixerMessageType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixerMessageType">
-<ANCHOR id="GST-MIXER-MESSAGE-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-INVALID:CAPS">
-<ANCHOR id="GST-MIXER-MESSAGE-MUTE-TOGGLED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-MUTE-TOGGLED:CAPS">
-<ANCHOR id="GST-MIXER-MESSAGE-RECORD-TOGGLED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-RECORD-TOGGLED:CAPS">
-<ANCHOR id="GST-MIXER-MESSAGE-VOLUME-CHANGED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-VOLUME-CHANGED:CAPS">
-<ANCHOR id="GST-MIXER-MESSAGE-OPTION-CHANGED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-OPTION-CHANGED:CAPS">
-<ANCHOR id="GST-MIXER-MESSAGE-OPTIONS-LIST-CHANGED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-OPTIONS-LIST-CHANGED:CAPS">
-<ANCHOR id="GST-MIXER-MESSAGE-MIXER-CHANGED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GST-MIXER-MESSAGE-MIXER-CHANGED:CAPS">
-<ANCHOR id="gst-mixer-list-tracks" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks">
-<ANCHOR id="gst-mixer-get-volume" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume">
-<ANCHOR id="gst-mixer-set-volume" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume">
-<ANCHOR id="gst-mixer-set-mute" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute">
-<ANCHOR id="gst-mixer-set-record" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record">
-<ANCHOR id="gst-mixer-set-option" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option">
-<ANCHOR id="gst-mixer-mute-toggled" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled">
-<ANCHOR id="gst-mixer-record-toggled" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled">
-<ANCHOR id="gst-mixer-volume-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed">
-<ANCHOR id="gst-mixer-option-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed">
-<ANCHOR id="gst-mixer-options-list-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed">
-<ANCHOR id="gst-mixer-get-option" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option">
-<ANCHOR id="gst-mixer-mixer-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed">
-<ANCHOR id="gst-mixer-get-mixer-flags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags">
-<ANCHOR id="gst-mixer-get-mixer-type" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type">
-<ANCHOR id="gst-mixer-message-get-type" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type">
-<ANCHOR id="gst-mixer-message-parse-mute-toggled" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled">
-<ANCHOR id="gst-mixer-message-parse-option-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed">
-<ANCHOR id="gst-mixer-message-parse-record-toggled" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled">
-<ANCHOR id="gst-mixer-message-parse-volume-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed">
-<ANCHOR id="gst-mixer-message-parse-options-list-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed">
-<ANCHOR id="gst-plugins-base-libs-gstmixer.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#gst-plugins-base-libs-gstmixer.see-also">
-<ANCHOR id="gst-plugins-base-libs-gstmixeroptions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html">
-<ANCHOR id="gst-plugins-base-libs-gstmixeroptions.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#gst-plugins-base-libs-gstmixeroptions.synopsis">
-<ANCHOR id="GstMixerOptions" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions">
-<ANCHOR id="gst-plugins-base-libs-gstmixeroptions.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#gst-plugins-base-libs-gstmixeroptions.object-hierarchy">
-<ANCHOR id="gst-plugins-base-libs-gstmixeroptions.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#gst-plugins-base-libs-gstmixeroptions.description">
-<ANCHOR id="gst-plugins-base-libs-gstmixeroptions.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#gst-plugins-base-libs-gstmixeroptions.details">
-<ANCHOR id="GstMixerOptions-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct">
-<ANCHOR id="gst-mixer-options-get-values" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values">
-<ANCHOR id="gst-plugins-base-libs-gstmixeroptions.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixeroptions.html#gst-plugins-base-libs-gstmixeroptions.see-also">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#gst-plugins-base-libs-gstmixertrack.synopsis">
-<ANCHOR id="GstMixerTrack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#gst-plugins-base-libs-gstmixertrack.object-hierarchy">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack.properties" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#gst-plugins-base-libs-gstmixertrack.properties">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#gst-plugins-base-libs-gstmixertrack.description">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#gst-plugins-base-libs-gstmixertrack.details">
-<ANCHOR id="GstMixerTrack-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct">
-<ANCHOR id="GstMixerTrackFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags">
-<ANCHOR id="GST-MIXER-TRACK-INPUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-INPUT:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-OUTPUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-OUTPUT:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-MUTE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-MUTE:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-RECORD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-RECORD:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-MASTER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-MASTER:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-SOFTWARE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-SOFTWARE:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-NO-RECORD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-NO-RECORD:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-NO-MUTE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-NO-MUTE:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-WHITELIST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-WHITELIST:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-READABLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-READABLE:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-WRITABLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-WRITABLE:CAPS">
-<ANCHOR id="GST-MIXER-TRACK-HAS-FLAG:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack.property-details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#gst-plugins-base-libs-gstmixertrack.property-details">
-<ANCHOR id="GstMixerTrack--flags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags">
-<ANCHOR id="GstMixerTrack--index" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index">
-<ANCHOR id="GstMixerTrack--label" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label">
-<ANCHOR id="GstMixerTrack--max-volume" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume">
-<ANCHOR id="GstMixerTrack--min-volume" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume">
-<ANCHOR id="GstMixerTrack--num-channels" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels">
-<ANCHOR id="GstMixerTrack--untranslated-label" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label">
-<ANCHOR id="gst-plugins-base-libs-gstmixertrack.see-also" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixertrack.html#gst-plugins-base-libs-gstmixertrack.see-also">
<ANCHOR id="gst-plugins-base-libs-gstfft" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html">
<ANCHOR id="gst-plugins-base-libs-gstfft.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.synopsis">
<ANCHOR id="gst-plugins-base-libs-gstfft.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfft.html#gst-plugins-base-libs-gstfft.description">
@@ -606,130 +520,6 @@
<ANCHOR id="gst-fft-f64-inverse-fft" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft">
<ANCHOR id="gst-fft-f64-window" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window">
<ANCHOR id="gst-fft-f64-free" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free">
-<ANCHOR id="gst-plugins-base-libs-gstnavigation" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html">
-<ANCHOR id="gst-plugins-base-libs-gstnavigation.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-plugins-base-libs-gstnavigation.synopsis">
-<ANCHOR id="GstNavigation" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigation">
-<ANCHOR id="gst-plugins-base-libs-gstnavigation.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-plugins-base-libs-gstnavigation.object-hierarchy">
-<ANCHOR id="gst-plugins-base-libs-gstnavigation.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-plugins-base-libs-gstnavigation.description">
-<ANCHOR id="gst-plugins-base-libs-gstnavigation.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-plugins-base-libs-gstnavigation.details">
-<ANCHOR id="GstNavigation-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct">
-<ANCHOR id="GstNavigationInterface" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface">
-<ANCHOR id="GstNavigationCommand" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand">
-<ANCHOR id="GST-NAVIGATION-COMMAND-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-INVALID:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-MENU1:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU1:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-MENU2:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU2:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-MENU3:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU3:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-MENU4:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU4:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-MENU5:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU5:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-MENU6:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU6:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-MENU7:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-MENU7:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-LEFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-LEFT:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-RIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-RIGHT:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-UP:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-UP:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DOWN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DOWN:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-ACTIVATE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-ACTIVATE:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-PREV-ANGLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-PREV-ANGLE:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-NEXT-ANGLE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-NEXT-ANGLE:CAPS">
-<ANCHOR id="GstNavigationEventType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType">
-<ANCHOR id="GST-NAVIGATION-EVENT-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-INVALID:CAPS">
-<ANCHOR id="GST-NAVIGATION-EVENT-KEY-PRESS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-KEY-PRESS:CAPS">
-<ANCHOR id="GST-NAVIGATION-EVENT-KEY-RELEASE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-KEY-RELEASE:CAPS">
-<ANCHOR id="GST-NAVIGATION-EVENT-MOUSE-BUTTON-PRESS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-MOUSE-BUTTON-PRESS:CAPS">
-<ANCHOR id="GST-NAVIGATION-EVENT-MOUSE-BUTTON-RELEASE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-MOUSE-BUTTON-RELEASE:CAPS">
-<ANCHOR id="GST-NAVIGATION-EVENT-MOUSE-MOVE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-MOUSE-MOVE:CAPS">
-<ANCHOR id="GST-NAVIGATION-EVENT-COMMAND:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-EVENT-COMMAND:CAPS">
-<ANCHOR id="GstNavigationMessageType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType">
-<ANCHOR id="GST-NAVIGATION-MESSAGE-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS">
-<ANCHOR id="GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS">
-<ANCHOR id="GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS">
-<ANCHOR id="GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS">
-<ANCHOR id="GstNavigationQueryType" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType">
-<ANCHOR id="GST-NAVIGATION-QUERY-INVALID:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS">
-<ANCHOR id="GST-NAVIGATION-QUERY-COMMANDS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-COMMANDS:CAPS">
-<ANCHOR id="GST-NAVIGATION-QUERY-ANGLES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-ANGLES:CAPS">
-<ANCHOR id="gst-navigation-send-event" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event">
-<ANCHOR id="gst-navigation-send-key-event" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event">
-<ANCHOR id="gst-navigation-send-mouse-event" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event">
-<ANCHOR id="gst-navigation-send-command" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command">
-<ANCHOR id="gst-navigation-event-parse-command" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command">
-<ANCHOR id="gst-navigation-event-parse-key-event" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event">
-<ANCHOR id="gst-navigation-event-parse-mouse-button-event" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event">
-<ANCHOR id="gst-navigation-event-parse-mouse-move-event" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event">
-<ANCHOR id="gst-navigation-message-get-type" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type">
-<ANCHOR id="gst-navigation-message-new-angles-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed">
-<ANCHOR id="gst-navigation-message-new-commands-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed">
-<ANCHOR id="gst-navigation-message-new-mouse-over" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over">
-<ANCHOR id="gst-navigation-message-parse-mouse-over" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over">
-<ANCHOR id="gst-navigation-message-parse-angles-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed">
-<ANCHOR id="gst-navigation-query-new-angles" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles">
-<ANCHOR id="gst-navigation-query-get-type" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type">
-<ANCHOR id="gst-navigation-query-new-commands" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands">
-<ANCHOR id="gst-navigation-query-parse-angles" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles">
-<ANCHOR id="gst-navigation-query-parse-commands-length" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length">
-<ANCHOR id="gst-navigation-query-parse-commands-nth" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth">
-<ANCHOR id="gst-navigation-query-set-angles" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles">
-<ANCHOR id="gst-navigation-query-set-commands" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands">
-<ANCHOR id="gst-navigation-query-set-commandsv" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DVD-MENU:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS">
-<ANCHOR id="GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS">
-<ANCHOR id="gst-plugins-base-libs-gsttuner" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html">
-<ANCHOR id="gst-plugins-base-libs-gsttuner.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-plugins-base-libs-gsttuner.synopsis">
-<ANCHOR id="GstTuner" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#GstTuner">
-<ANCHOR id="gst-plugins-base-libs-gsttuner.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-plugins-base-libs-gsttuner.object-hierarchy">
-<ANCHOR id="gst-plugins-base-libs-gsttuner.signals" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-plugins-base-libs-gsttuner.signals">
-<ANCHOR id="gst-plugins-base-libs-gsttuner.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-plugins-base-libs-gsttuner.description">
-<ANCHOR id="gst-plugins-base-libs-gsttuner.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-plugins-base-libs-gsttuner.details">
-<ANCHOR id="GstTuner-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#GstTuner-struct">
-<ANCHOR id="GstTunerInterface" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#GstTunerInterface">
-<ANCHOR id="gst-tuner-list-channels" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels">
-<ANCHOR id="gst-tuner-get-channel" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-get-channel">
-<ANCHOR id="gst-tuner-set-channel" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-set-channel">
-<ANCHOR id="gst-tuner-list-norms" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-list-norms">
-<ANCHOR id="gst-tuner-get-norm" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-get-norm">
-<ANCHOR id="gst-tuner-set-norm" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-set-norm">
-<ANCHOR id="gst-tuner-get-frequency" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-get-frequency">
-<ANCHOR id="gst-tuner-set-frequency" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency">
-<ANCHOR id="gst-tuner-signal-strength" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength">
-<ANCHOR id="gst-tuner-find-norm-by-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-find-norm-by-name">
-<ANCHOR id="gst-tuner-find-channel-by-name" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-find-channel-by-name">
-<ANCHOR id="gst-tuner-channel-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-channel-changed">
-<ANCHOR id="gst-tuner-norm-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-norm-changed">
-<ANCHOR id="gst-tuner-frequency-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-frequency-changed">
-<ANCHOR id="gst-tuner-signal-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-changed">
-<ANCHOR id="gst-plugins-base-libs-gsttuner.signal-details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#gst-plugins-base-libs-gsttuner.signal-details">
-<ANCHOR id="GstTuner-channel-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#GstTuner-channel-changed">
-<ANCHOR id="GstTuner-frequency-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed">
-<ANCHOR id="GstTuner-norm-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed">
-<ANCHOR id="GstTuner-signal-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed">
-<ANCHOR id="gst-plugins-base-libs-gsttunerchannel" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html">
-<ANCHOR id="gst-plugins-base-libs-gsttunerchannel.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#gst-plugins-base-libs-gsttunerchannel.synopsis">
-<ANCHOR id="GstTunerChannel" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel">
-<ANCHOR id="gst-plugins-base-libs-gsttunerchannel.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#gst-plugins-base-libs-gsttunerchannel.object-hierarchy">
-<ANCHOR id="gst-plugins-base-libs-gsttunerchannel.signals" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#gst-plugins-base-libs-gsttunerchannel.signals">
-<ANCHOR id="gst-plugins-base-libs-gsttunerchannel.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#gst-plugins-base-libs-gsttunerchannel.description">
-<ANCHOR id="gst-plugins-base-libs-gsttunerchannel.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#gst-plugins-base-libs-gsttunerchannel.details">
-<ANCHOR id="GstTunerChannel-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct">
-<ANCHOR id="GstTunerChannelFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags">
-<ANCHOR id="GST-TUNER-CHANNEL-INPUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-INPUT:CAPS">
-<ANCHOR id="GST-TUNER-CHANNEL-OUTPUT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-OUTPUT:CAPS">
-<ANCHOR id="GST-TUNER-CHANNEL-FREQUENCY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-FREQUENCY:CAPS">
-<ANCHOR id="GST-TUNER-CHANNEL-AUDIO:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-AUDIO:CAPS">
-<ANCHOR id="GST-TUNER-CHANNEL-HAS-FLAG:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS">
-<ANCHOR id="gst-plugins-base-libs-gsttunerchannel.signal-details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#gst-plugins-base-libs-gsttunerchannel.signal-details">
-<ANCHOR id="GstTunerChannel-frequency-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed">
-<ANCHOR id="GstTunerChannel-signal-changed" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed">
-<ANCHOR id="gst-plugins-base-libs-gsttunernorm" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunernorm.html">
-<ANCHOR id="gst-plugins-base-libs-gsttunernorm.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunernorm.html#gst-plugins-base-libs-gsttunernorm.synopsis">
-<ANCHOR id="GstTunerNorm" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm">
-<ANCHOR id="gst-plugins-base-libs-gsttunernorm.object-hierarchy" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunernorm.html#gst-plugins-base-libs-gsttunernorm.object-hierarchy">
-<ANCHOR id="gst-plugins-base-libs-gsttunernorm.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunernorm.html#gst-plugins-base-libs-gsttunernorm.description">
-<ANCHOR id="gst-plugins-base-libs-gsttunernorm.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunernorm.html#gst-plugins-base-libs-gsttunernorm.details">
-<ANCHOR id="GstTunerNorm-struct" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct">
<ANCHOR id="gst-plugins-base-libs-gstriff" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html">
<ANCHOR id="gst-plugins-base-libs-gstriff.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.synopsis">
<ANCHOR id="gst-plugins-base-libs-gstriff.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.description">
@@ -1717,6 +1507,56 @@
<ANCHOR id="gst-plugins-base-libs-gstvideo.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-plugins-base-libs-gstvideo.details">
<ANCHOR id="GST-VIDEO-FPS-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS">
<ANCHOR id="GST-VIDEO-SIZE-RANGE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SIZE-RANGE:CAPS">
+<ANCHOR id="GstVideoChromaSite" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoChromaSite">
+<ANCHOR id="GstVideoColorMatrix" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix">
+<ANCHOR id="GST-VIDEO-COLOR-MATRIX-UNKNOWN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-UNKNOWN:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-MATRIX-RGB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-RGB:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-MATRIX-FCC:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-FCC:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-MATRIX-BT709:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-BT709:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-MATRIX-BT601:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-BT601:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-MATRIX-SMPTE240M:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-MATRIX-SMPTE240M:CAPS">
+<ANCHOR id="GstVideoColorPrimaries" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries">
+<ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-BT709:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT709:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-BT470M:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT470M:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-BT470BG:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-BT470BG:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-SMPTE170M:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-SMPTE170M:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS">
+<ANCHOR id="GstVideoColorRange" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorRange">
+<ANCHOR id="GST-VIDEO-COLOR-RANGE-UNKNOWN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-UNKNOWN:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-RANGE-0-255:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-0-255:CAPS">
+<ANCHOR id="GST-VIDEO-COLOR-RANGE-16-235:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COLOR-RANGE-16-235:CAPS">
+<ANCHOR id="GstVideoColorimetry" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry">
+<ANCHOR id="GstVideoFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFlags">
+<ANCHOR id="GST-VIDEO-FLAG-NONE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FLAG-NONE:CAPS">
+<ANCHOR id="GST-VIDEO-FLAG-VARIABLE-FPS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FLAG-VARIABLE-FPS:CAPS">
+<ANCHOR id="GstVideoFormatFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags">
+<ANCHOR id="GST-VIDEO-FORMAT-FLAG-YUV:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-YUV:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-FLAG-RGB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-RGB:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-FLAG-GRAY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-GRAY:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-FLAG-ALPHA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-ALPHA:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-FLAG-LE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-LE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-FLAG-PALETTE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-PALETTE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-FLAG-COMPLEX:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-COMPLEX:CAPS">
+<ANCHOR id="GstVideoFormatPack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack">
+<ANCHOR id="GstVideoFormatUnpack" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack">
+<ANCHOR id="GstVideoInterlaceMode" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode">
+<ANCHOR id="GST-VIDEO-INTERLACE-MODE-PROGRESSIVE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-PROGRESSIVE:CAPS">
+<ANCHOR id="GST-VIDEO-INTERLACE-MODE-INTERLEAVED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-INTERLEAVED:CAPS">
+<ANCHOR id="GST-VIDEO-INTERLACE-MODE-MIXED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-MIXED:CAPS">
+<ANCHOR id="GST-VIDEO-INTERLACE-MODE-FIELDS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INTERLACE-MODE-FIELDS:CAPS">
+<ANCHOR id="GstVideoTransferFunction" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction">
+<ANCHOR id="GST-VIDEO-TRANSFER-UNKNOWN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-UNKNOWN:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-GAMMA10:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA10:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-GAMMA18:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA18:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-GAMMA20:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA20:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-GAMMA22:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA22:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-BT709:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-BT709:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-SMPTE240M:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-SMPTE240M:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-SRGB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-SRGB:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-GAMMA28:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-GAMMA28:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-LOG100:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG100:CAPS">
+<ANCHOR id="GST-VIDEO-TRANSFER-LOG316:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TRANSFER-LOG316:CAPS">
<ANCHOR id="GstVideoFormat" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormat">
<ANCHOR id="GST-VIDEO-FORMAT-UNKNOWN:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS">
<ANCHOR id="GST-VIDEO-FORMAT-I420:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I420:CAPS">
@@ -1761,6 +1601,74 @@
<ANCHOR id="GST-VIDEO-FORMAT-ARGB64:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB64:CAPS">
<ANCHOR id="GST-VIDEO-FORMAT-AYUV64:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-AYUV64:CAPS">
<ANCHOR id="GST-VIDEO-FORMAT-r210" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-r210">
+<ANCHOR id="GST-VIDEO-FORMAT-ENCODED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ENCODED:CAPS">
+<ANCHOR id="GstVideoFormatInfo" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-BITS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-BITS:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-DATA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DATA:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-DEPTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-DEPTH:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-FLAGS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FLAGS:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-FORMAT:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-HAS-ALPHA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-ALPHA:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-HAS-PALETTE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-HAS-PALETTE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-H-SUB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-H-SUB:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-IS-GRAY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-GRAY:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-IS-LE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-LE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-IS-RGB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-RGB:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-IS-YUV:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-YUV:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-IS-COMPLEX:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-IS-COMPLEX:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-NAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-NAME:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-N-COMPONENTS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-COMPONENTS:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-N-PLANES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-N-PLANES:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-OFFSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-OFFSET:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-PLANE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PLANE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-POFFSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-POFFSET:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-PSTRIDE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-PSTRIDE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-SCALE-HEIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-HEIGHT:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-SCALE-WIDTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SCALE-WIDTH:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-SHIFT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-SHIFT:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-STRIDE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-STRIDE:CAPS">
+<ANCHOR id="GST-VIDEO-FORMAT-INFO-W-SUB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-INFO-W-SUB:CAPS">
+<ANCHOR id="GstVideoInfo" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GstVideoInfo">
+<ANCHOR id="GST-VIDEO-INFO-COMP-DATA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DATA:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-DEPTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-DEPTH:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-HEIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-HEIGHT:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-OFFSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-OFFSET:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-PLANE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PLANE:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-POFFSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-POFFSET:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-PSTRIDE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-PSTRIDE:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-STRIDE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-STRIDE:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-COMP-WIDTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-COMP-WIDTH:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-FLAGS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAGS:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-FLAG-IS-SET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-FLAG-SET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-SET:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-FLAG-UNSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FLAG-UNSET:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-FPS-D:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-D:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-FPS-N:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FPS-N:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-HAS-ALPHA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HAS-ALPHA:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-HEIGHT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-HEIGHT:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-INTERLACE-MODE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-INTERLACE-MODE:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-IS-GRAY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-GRAY:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-IS-INTERLACED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-INTERLACED:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-IS-RGB:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-RGB:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-IS-YUV:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-IS-YUV:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-NAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-NAME:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-N-COMPONENTS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-COMPONENTS:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-N-PLANES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-N-PLANES:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-PAR-D:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-D:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-PAR-N:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PAR-N:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-PLANE-OFFSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-OFFSET:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-PLANE-STRIDE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-PLANE-STRIDE:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-SIZE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-SIZE:CAPS">
+<ANCHOR id="GST-VIDEO-INFO-WIDTH:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-WIDTH:CAPS">
+<ANCHOR id="GST-VIDEO-MAX-COMPONENTS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS">
+<ANCHOR id="GST-VIDEO-MAX-PLANES:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS">
+<ANCHOR id="GST-VIDEO-SUB-SCALE:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SUB-SCALE:CAPS">
+<ANCHOR id="gst-video-info-convert" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-info-convert">
+<ANCHOR id="gst-video-info-from-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-info-from-caps">
+<ANCHOR id="gst-video-info-init" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-info-init">
+<ANCHOR id="gst-video-info-set-format" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-info-set-format">
+<ANCHOR id="gst-video-info-to-caps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-info-to-caps">
<ANCHOR id="gst-video-calculate-display-ratio" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio">
<ANCHOR id="gst-video-format-to-fourcc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc">
<ANCHOR id="gst-video-format-from-fourcc" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc">
@@ -1893,6 +1801,101 @@
<ANCHOR id="gst-video-overlay-expose" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-expose">
<ANCHOR id="gst-video-overlay-handle-events" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-handle-events">
<ANCHOR id="gst-video-overlay-set-render-rectangle" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-render-rectangle">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDecoder" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.synopsis">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.description">
+<ANCHOR id="gst-plugins-base-libs-GstVideoDecoder.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-plugins-base-libs-GstVideoDecoder.details">
+<ANCHOR id="GST-VIDEO-DECODER-ERROR:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-ERROR:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-MAX-ERRORS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-MAX-ERRORS:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-SINK-NAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-NAME:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-SINK-PAD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-PAD:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-SRC-NAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-NAME:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-SRC-PAD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SRC-PAD:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-STREAM-LOCK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-LOCK:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-STREAM-UNLOCK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-STREAM-UNLOCK:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-INPUT-SEGMENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-INPUT-SEGMENT:CAPS">
+<ANCHOR id="GST-VIDEO-DECODER-OUTPUT-SEGMENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-OUTPUT-SEGMENT:CAPS">
+<ANCHOR id="GstVideoDecoder" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">
+<ANCHOR id="GstVideoDecoderClass" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass">
+<ANCHOR id="gst-video-decoder-add-to-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-add-to-frame">
+<ANCHOR id="gst-video-decoder-alloc-output-buffer" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-buffer">
+<ANCHOR id="gst-video-decoder-alloc-output-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-alloc-output-frame">
+<ANCHOR id="gst-video-decoder-drop-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-drop-frame">
+<ANCHOR id="gst-video-decoder-finish-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame">
+<ANCHOR id="gst-video-decoder-get-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frame">
+<ANCHOR id="gst-video-decoder-get-max-decode-time" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-decode-time">
+<ANCHOR id="gst-video-decoder-get-max-errors" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-errors">
+<ANCHOR id="gst-video-decoder-get-oldest-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-oldest-frame">
+<ANCHOR id="gst-video-decoder-get-packetized" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-packetized">
+<ANCHOR id="gst-video-decoder-have-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-have-frame">
+<ANCHOR id="gst-video-decoder-get-latency" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-latency">
+<ANCHOR id="gst-video-decoder-set-latency" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-latency">
+<ANCHOR id="gst-video-decoder-get-estimate-rate" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-estimate-rate">
+<ANCHOR id="gst-video-decoder-get-output-state" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-output-state">
+<ANCHOR id="gst-video-decoder-set-estimate-rate" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-estimate-rate">
+<ANCHOR id="gst-video-decoder-set-output-state" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state">
+<ANCHOR id="gst-video-decoder-set-max-errors" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-max-errors">
+<ANCHOR id="gst-video-decoder-set-packetized" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-packetized">
+<ANCHOR id="gst-plugins-base-libs-GstVideoEncoder" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html">
+<ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.synopsis">
+<ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.description">
+<ANCHOR id="gst-plugins-base-libs-GstVideoEncoder.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-plugins-base-libs-GstVideoEncoder.details">
+<ANCHOR id="GST-VIDEO-ENCODER-CAST:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-CAST:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-SINK-NAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-NAME:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-SINK-PAD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-PAD:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-SRC-NAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-NAME:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-SRC-PAD:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-PAD:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-STREAM-LOCK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-LOCK:CAPS">
+<ANCHOR id="GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS">
+<ANCHOR id="GstVideoEncoder" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">
+<ANCHOR id="GstVideoEncoderClass" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass">
+<ANCHOR id="gst-video-encoder-finish-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame">
+<ANCHOR id="gst-video-encoder-get-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-frame">
+<ANCHOR id="gst-video-encoder-get-oldest-frame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-oldest-frame">
+<ANCHOR id="gst-video-encoder-set-headers" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-headers">
+<ANCHOR id="gst-video-encoder-get-latency" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-latency">
+<ANCHOR id="gst-video-encoder-set-latency" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-latency">
+<ANCHOR id="gst-video-encoder-get-discont" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-discont">
+<ANCHOR id="gst-video-encoder-set-discont" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-discont">
+<ANCHOR id="gst-video-encoder-set-output-state" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state">
+<ANCHOR id="gst-video-encoder-get-output-state" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-output-state">
+<ANCHOR id="gst-video-encoder-proxy-getcaps" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-proxy-getcaps">
+<ANCHOR id="gst-plugins-base-libs-gstvideoutils" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html">
+<ANCHOR id="gst-plugins-base-libs-gstvideoutils.synopsis" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstvideoutils.description" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.description">
+<ANCHOR id="gst-plugins-base-libs-gstvideoutils.details" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-plugins-base-libs-gstvideoutils.details">
+<ANCHOR id="GstVideoCodecFrame" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame">
+<ANCHOR id="GstVideoCodecFrameFlags" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrameFlags">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAG-DECODE-ONLY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-DECODE-ONLY:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAG-SYNC-POINT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-SYNC-POINT:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME-HEADERS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME-HEADERS:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAGS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAGS:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-FORCE-KEYFRAME-HEADERS:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-FORCE-KEYFRAME-HEADERS:CAPS">
+<ANCHOR id="GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GST-VIDEO-CODEC-FRAME-UNSET-SYNC-POINT:CAPS">
+<ANCHOR id="gst-video-codec-frame-ref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-ref">
+<ANCHOR id="gst-video-codec-frame-unref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-unref">
+<ANCHOR id="gst-video-codec-frame-set-hook" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-set-hook">
+<ANCHOR id="GstVideoCodecState" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState">
+<ANCHOR id="gst-video-codec-state-ref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-ref">
+<ANCHOR id="gst-video-codec-state-unref" href="gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-state-unref">
<ANCHOR id="annotation-glossterm-out" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-out">
<ANCHOR id="annotation-glossterm-scope async" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-scope async">
<ANCHOR id="annotation-glossterm-allow-none" href="gst-plugins-base-libs-1.0/annotation-glossary.html#annotation-glossterm-allow-none">
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 3db8af5..4745e2c 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -50,7 +50,6 @@ IGNORE_CFILES = utils.c mem.c imgconvert.c
# the registry won't have the element
EXTRA_HFILES = \
- $(top_srcdir)/ext/alsa/gstalsamixerelement.h \
$(top_srcdir)/ext/alsa/gstalsasink.h \
$(top_srcdir)/ext/alsa/gstalsasrc.h \
$(top_srcdir)/ext/cdparanoia/gstcdparanoiasrc.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 75414f1..5186e7a 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -459,7 +459,6 @@ IGNORE_CFILES = utils.c mem.c imgconvert.c
# but I'm not sure about that - it might be this Just Works given that
# the registry won't have the element
EXTRA_HFILES = \
- $(top_srcdir)/ext/alsa/gstalsamixerelement.h \
$(top_srcdir)/ext/alsa/gstalsasink.h \
$(top_srcdir)/ext/alsa/gstalsasrc.h \
$(top_srcdir)/ext/cdparanoia/gstcdparanoiasrc.h \
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 76c9a02..6e7acf4 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp178800"></a>gst-plugins-base Elements</h2></div></div></div>
+<a name="idp4168720"></a>gst-plugins-base Elements</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-plugins-adder.html">adder</a></span><span class="refpurpose"> — Add N audio channels together</span>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 1d5e7dc..2441775 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp37248"></a>gst-plugins-base Plugins</h2></div></div></div>
+<a name="idp37152"></a>gst-plugins-base Plugins</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-adder.html">adder</a></span><span class="refpurpose"> — <a name="plugin-adder"></a>Adds multiple streams</span>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-adder.html b/docs/plugins/html/gst-plugins-base-plugins-adder.html
index d02810e..4b5589c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-adder.html
@@ -73,7 +73,7 @@ possible without trying to synchronize the streams.
<p>
</p>
<div class="refsect2">
-<a name="idp7800880"></a><h3>Example launch line</h3>
+<a name="idp8203424"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -94,7 +94,7 @@ Last reviewed on 2006-05-09 (0.10.7)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7983392"></a><h3>Element Information</h3>
+<a name="idp8338832"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -117,7 +117,7 @@ Last reviewed on 2006-05-09 (0.10.7)
</div>
<hr>
<div class="refsect2">
-<a name="idm32096"></a><h3>Element Pads</h3>
+<a name="idm39456"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsamixer.html b/docs/plugins/html/gst-plugins-base-plugins-alsamixer.html
index d544a90..b983e0b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsamixer.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsamixer.html
@@ -24,12 +24,6 @@
<a href="#gst-plugins-base-plugins-alsamixer.synopsis" class="shortcut">Top</a>
 | 
<a href="#gst-plugins-base-plugins-alsamixer.description" class="shortcut">Description</a>
-  | 
- <a href="#gst-plugins-base-plugins-alsamixer.object-hierarchy" class="shortcut">Object Hierarchy</a>
-  | 
- <a href="#gst-plugins-base-plugins-alsamixer.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
-  | 
- <a href="#gst-plugins-base-plugins-alsamixer.properties" class="shortcut">Properties</a>
</td></tr>
</table>
<div class="refentry">
@@ -43,38 +37,14 @@
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gst-plugins-base-plugins-alsamixer.synopsis"></a><h2>Synopsis</h2>
-<a name="GstAlsaMixerElement"></a><pre class="synopsis">struct <a class="link" href="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement-struct" title="struct GstAlsaMixerElement">GstAlsaMixerElement</a>;
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsamixer.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>
- +----GstAlsaMixerElement
-</pre>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsamixer.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
-<p>
-GstAlsaMixerElement implements
- <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a>.</p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsamixer.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--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-base-plugins-alsamixer.html#GstAlsaMixerElement--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>
+<pre class="synopsis"></pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-alsamixer.description"></a><h2>Description</h2>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7052704"></a><h3>Element Information</h3>
+<a name="idp9325760"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -97,7 +67,7 @@ GstAlsaMixerElement implements
</div>
<hr>
<div class="refsect2">
-<a name="idp5168000"></a><h3>Element Pads</h3>
+<a name="idp6984048"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -105,28 +75,6 @@ GstAlsaMixerElement implements
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-alsamixer.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GstAlsaMixerElement-struct"></a><h3>struct GstAlsaMixerElement</h3>
-<pre class="programlisting">struct GstAlsaMixerElement;</pre>
-<p>
-</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsamixer.property-details"></a><h2>Property Details</h2>
-<div class="refsect2">
-<a name="GstAlsaMixerElement--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>
-<p>ALSA device, as defined in an asound configuration file.</p>
-<p>Default value: "default"</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAlsaMixerElement--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>
-<p>Human-readable name of the sound device.</p>
-<p>Default value: ""</p>
-</div>
</div>
</div>
<div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
index a59fc30..ccf3f50 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
@@ -54,8 +54,8 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a>
- +----<a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiosink.html#GstAudioSink">GstAudioSink</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>
+----GstAlsaSink
</pre>
</div>
@@ -78,7 +78,7 @@ GstAlsaSink implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp5819104"></a><h3>Element Information</h3>
+<a name="idp7652208"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -101,7 +101,7 @@ GstAlsaSink implements
</div>
<hr>
<div class="refsect2">
-<a name="idp5826560"></a><h3>Element Pads</h3>
+<a name="idp7659664"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
index 6dddeea..3f42d33 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
@@ -55,8 +55,8 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc">GstAudioBaseSrc</a>
- +----<a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc">GstAudioSrc</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>
+----GstAlsaSrc
</pre>
</div>
@@ -64,7 +64,7 @@
<a name="gst-plugins-base-plugins-alsasrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GstAlsaSrc implements
- <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a>.</p>
+ <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-base-plugins-alsasrc.properties"></a><h2>Properties</h2>
@@ -79,7 +79,7 @@ GstAlsaSrc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp5974112"></a><h3>Element Information</h3>
+<a name="idp8412864"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -102,7 +102,7 @@ GstAlsaSrc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp5981568"></a><h3>Element Pads</h3>
+<a name="idp8420320"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsink.html b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
index 536123c..b5fa6be 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
@@ -98,13 +98,13 @@ most GStreamer elements, Appsink provides external API functions.
</p>
<p>
For the documentation of the API, please see the
-<a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsink.html">libgstapp</a> section in
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html">libgstapp</a> section in
the GStreamer Plugins Base Libraries documentation.
</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9537296"></a><h3>Element Information</h3>
+<a name="idp9939184"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -127,7 +127,7 @@ the GStreamer Plugins Base Libraries documentation.
</div>
<hr>
<div class="refsect2">
-<a name="idp9544704"></a><h3>Element Pads</h3>
+<a name="idp9946672"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -287,7 +287,7 @@ the GStreamer Plugins Base Libraries documentation.
<hr>
<div class="refsect2">
<a name="GstAppSink-pull-preroll"></a><h3>The <code class="literal">"pull-preroll"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">GstSample</span>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
</p>
@@ -371,7 +371,7 @@ the GStreamer Plugins Base Libraries documentation.
<hr>
<div class="refsect2">
<a name="GstAppSink-pull-sample"></a><h3>The <code class="literal">"pull-sample"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">GstSample</span>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
</p>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
index 818379e..856f41d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
@@ -76,7 +76,7 @@ GstAppSrc implements
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-latency" title='The "max-latency" property'>max-latency</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-latency" title='The "min-latency" property'>min-latency</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size" title='The "size" property'>size</a>" <span class="type">gint64</span> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type" title='The "stream-type" property'>stream-type</a>" <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#GstAppStreamType"><span class="type">GstAppStreamType</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type" title='The "stream-type" property'>stream-type</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html#GstAppStreamType"><span class="type">GstAppStreamType</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals" title='The "emit-signals" property'>emit-signals</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-base-plugins-appsrc.html#GstAppSrc--min-percent" title='The "min-percent" property'>min-percent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
</pre>
@@ -100,13 +100,13 @@ external API functions.
</p>
<p>
For the documentation of the API, please see the
-<a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html">libgstapp</a> section in the
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html">libgstapp</a> section in the
GStreamer Plugins Base Libraries documentation.
</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp5318304"></a><h3>Element Information</h3>
+<a name="idp7386384"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -129,7 +129,7 @@ GStreamer Plugins Base Libraries documentation.
</div>
<hr>
<div class="refsect2">
-<a name="idp5325712"></a><h3>Element Pads</h3>
+<a name="idp7393872"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -227,7 +227,7 @@ GStreamer Plugins Base Libraries documentation.
<hr>
<div class="refsect2">
<a name="GstAppSrc--stream-type"></a><h3>The <code class="literal">"stream-type"</code> property</h3>
-<pre class="programlisting"> "stream-type" <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-appsrc.html#GstAppStreamType"><span class="type">GstAppStreamType</span></a> : Read / Write</pre>
+<pre class="programlisting"> "stream-type" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html#GstAppStreamType"><span class="type">GstAppStreamType</span></a> : Read / Write</pre>
<p>the type of the stream.</p>
<p>Default value: GST_APP_STREAM_TYPE_STREAM</p>
</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
index 262f5cd..a5078ab 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioconvert.html
@@ -74,7 +74,7 @@ signedness and endianness conversion and channel transformations.
<p>
</p>
<div class="refsect2">
-<a name="idp7492768"></a><h3>Example launch line</h3>
+<a name="idp6321904"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -108,7 +108,7 @@ Last reviewed on 2006-03-02 (0.10.4)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6056560"></a><h3>Element Information</h3>
+<a name="idp9276176"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -131,7 +131,7 @@ Last reviewed on 2006-03-02 (0.10.4)
</div>
<hr>
<div class="refsect2">
-<a name="idp8247520"></a><h3>Element Pads</h3>
+<a name="idp9029200"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
index 39103ea..43eaff7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiorate.html
@@ -103,7 +103,7 @@ tolerance) to a perfect time.
<p>
</p>
<div class="refsect2">
-<a name="idp7159520"></a><h3>Example pipelines</h3>
+<a name="idp8565120"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -122,7 +122,7 @@ for saving in a raw audio file.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7162240"></a><h3>Element Information</h3>
+<a name="idp10427616"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -145,7 +145,7 @@ for saving in a raw audio file.
</div>
<hr>
<div class="refsect2">
-<a name="idp7169696"></a><h3>Element Pads</h3>
+<a name="idp10435072"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
index 151a253..a6942e4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
@@ -71,7 +71,7 @@ a configurable windowing function to enhance quality.
<p>
</p>
<div class="refsect2">
-<a name="idp7642752"></a><h3>Example launch line</h3>
+<a name="idp9365952"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -90,7 +90,7 @@ To create the Ogg/Vorbis file refer to the documentation of vorbisenc.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7071712"></a><h3>Element Information</h3>
+<a name="idp7848656"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -113,7 +113,7 @@ To create the Ogg/Vorbis file refer to the documentation of vorbisenc.
</div>
<hr>
<div class="refsect2">
-<a name="idp7321920"></a><h3>Element Pads</h3>
+<a name="idp8632432"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
index a63759c..2706b52 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audiotestsrc.html
@@ -78,7 +78,7 @@ different waveforms and allows to set the base frequency and volume.
<p>
</p>
<div class="refsect2">
-<a name="idp6449264"></a><h3>Example launch line</h3>
+<a name="idp10244384"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -110,7 +110,7 @@ the saw wave is correct.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6453136"></a><h3>Element Information</h3>
+<a name="idp10248256"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -133,7 +133,7 @@ the saw wave is correct.
</div>
<hr>
<div class="refsect2">
-<a name="idp10177776"></a><h3>Element Pads</h3>
+<a name="idp10540240"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
index 0a29280..792911c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
@@ -57,7 +57,7 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc">GstAudioCdSrc</a>
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc">GstAudioCdSrc</a>
+----GstCdParanoiaSrc
</pre>
</div>
@@ -89,7 +89,7 @@ GstCdParanoiaSrc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9233664"></a><h3>Element Information</h3>
+<a name="idp5269504"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -112,7 +112,7 @@ GstCdParanoiaSrc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp10285696"></a><h3>Element Pads</h3>
+<a name="idp10759264"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
index 06fb67a..bb16b82 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
@@ -66,7 +66,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp4880112"></a><h3>Element Information</h3>
+<a name="idp6165216"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -89,7 +89,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp9261280"></a><h3>Element Pads</h3>
+<a name="idp7673408"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
index ef99e14..c91581b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
@@ -109,7 +109,7 @@ use, as it creates a suitable source element as well.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10622688"></a><h3>Element Information</h3>
+<a name="idp10897904"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -132,7 +132,7 @@ use, as it creates a suitable source element as well.
</div>
<hr>
<div class="refsect2">
-<a name="idp10630208"></a><h3>Element Pads</h3>
+<a name="idp10905424"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
index de074af..5446734 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-encodebin.html
@@ -70,7 +70,7 @@ GstEncodeBin implements
<pre class="synopsis">
"<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance" title='The "audio-jitter-tolerance" property'>audio-jitter-tolerance</a>" <span class="type">guint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding" title='The "avoid-reencoding" property'>avoid-reencoding</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-base-plugins-encodebin.html#GstEncodeBin--profile" title='The "profile" property'>profile</a>" <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile" title='The "profile" property'>profile</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read / Write
"<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max" title='The "queue-buffers-max" property'>queue-buffers-max</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-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max" title='The "queue-bytes-max" property'>queue-bytes-max</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-base-plugins-encodebin.html#GstEncodeBin--queue-time-max" title='The "queue-time-max" property'>queue-time-max</a>" <span class="type">guint64</span> : Read / Write
@@ -87,7 +87,7 @@ GstEncodeBin implements
<a name="gst-plugins-base-plugins-encodebin.description"></a><h2>Description</h2>
<p>
EncodeBin provides a bin for encoding/muxing various streams according to
-a specified <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>.
+a specified <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>.
</p>
<p>
Based on the profile that was set (via the <a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile" title='The "profile" property'><span class="type">"profile"</span></a> property),
@@ -99,7 +99,7 @@ encoded/muxed/converted stream in output.
<p>
</p>
<div class="refsect2">
-<a name="idp6153584"></a><h3>Features</h3>
+<a name="idp9863536"></a><h3>Features</h3>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Automatic encoder and muxer selection based on elements available on the
@@ -118,7 +118,7 @@ signal.
</li>
<li class="listitem">
Avoid reencoding (passthrough). If the input stream is already encoded and is
-compatible with what the <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> expects, then the stream won't
+compatible with what the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> expects, then the stream won't
be re-encoded but just passed through downstream to the muxer or the output.
</li>
<li class="listitem">
@@ -128,9 +128,9 @@ to a pad. <a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncod
segments and re-encoding the segments of media that need encoding.
</li>
<li class="listitem">
-Standard behaviour is to use a <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> to have both
+Standard behaviour is to use a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> to have both
encoding and muxing performed. But you can also provide a single stream
-profile (like <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="type">GstEncodingAudioProfile</span></a>) to only have the encoding done and
+profile (like <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="type">GstEncodingAudioProfile</span></a>) to only have the encoding done and
handle the encoded output yourself.
</li>
<li class="listitem">
@@ -140,7 +140,7 @@ will automatically fix those imperfections for you. See
<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance" title='The "audio-jitter-tolerance" property'><span class="type">"audio-jitter-tolerance"</span></a> for more details.
</li>
<li class="listitem">
-Variable or Constant video framerate. If your <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> has
+Variable or Constant video framerate. If your <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> has
the variableframerate property deactivated (default), then the incoming
raw video stream will be retimestampped in order to produce a constant
framerate.
@@ -164,7 +164,7 @@ user a way to install the missing element.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10928496"></a><h3>Element Information</h3>
+<a name="idp11290832"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -187,7 +187,7 @@ user a way to install the missing element.
</div>
<hr>
<div class="refsect2">
-<a name="idp10935904"></a><h3>Element Pads</h3>
+<a name="idp11298240"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -304,9 +304,9 @@ user a way to install the missing element.
<hr>
<div class="refsect2">
<a name="GstEncodeBin--profile"></a><h3>The <code class="literal">"profile"</code> property</h3>
-<pre class="programlisting"> "profile" <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read / Write</pre>
+<pre class="programlisting"> "profile" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read / Write</pre>
<p>
-The <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> to use. This property must be set before going
+The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> to use. This property must be set before going
to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a> or higher.
</p>
</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-gdpdepay.html b/docs/plugins/html/gst-plugins-base-plugins-gdpdepay.html
index 699bc0a..f919996 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-gdpdepay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-gdpdepay.html
@@ -61,7 +61,7 @@ buffers and events.
<p>
</p>
<div class="refsect2">
-<a name="idp6523024"></a><div class="informalexample">
+<a name="idp8368432"></a><div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
@@ -79,7 +79,7 @@ example for gdppay.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8138816"></a><h3>Element Information</h3>
+<a name="idp6714976"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -102,7 +102,7 @@ example for gdppay.
</div>
<hr>
<div class="refsect2">
-<a name="idp6112400"></a><h3>Element Pads</h3>
+<a name="idp9237360"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-gdppay.html b/docs/plugins/html/gst-plugins-base-plugins-gdppay.html
index 3e1e1ef..897fc0e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-gdppay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-gdppay.html
@@ -71,7 +71,7 @@ GStreamer Data Protocol.
<p>
</p>
<div class="refsect2">
-<a name="idp8286688"></a><div class="informalexample">
+<a name="idp9422512"></a><div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
@@ -89,7 +89,7 @@ with the example shown in gdpdepay.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8461504"></a><h3>Element Information</h3>
+<a name="idp8275808"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -112,7 +112,7 @@ with the example shown in gdpdepay.
</div>
<hr>
<div class="refsect2">
-<a name="idp10850384"></a><h3>Element Pads</h3>
+<a name="idp11205344"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosink.html b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
index 5b6b8e4..d692bc5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosink.html
@@ -101,7 +101,7 @@ and retry after the location was mounted successfully.
<p>
</p>
<div class="refsect2">
-<a name="idp8731776"></a><h3>Example pipelines</h3>
+<a name="idp7541712"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -144,7 +144,7 @@ it in the home directory of user foo.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8736624"></a><h3>Element Information</h3>
+<a name="idp7546560"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -167,7 +167,7 @@ it in the home directory of user foo.
</div>
<hr>
<div class="refsect2">
-<a name="idp10448080"></a><h3>Element Pads</h3>
+<a name="idp11607184"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
index c35d235..e6f8789 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giosrc.html
@@ -95,7 +95,7 @@ mounting was successful.
<p>
</p>
<div class="refsect2">
-<a name="idp10485616"></a><h3>Example launch lines</h3>
+<a name="idp8044096"></a><h3>Example launch lines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -139,7 +139,7 @@ web server using the http protocol.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10490464"></a><h3>Element Information</h3>
+<a name="idp7562480"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -162,7 +162,7 @@ web server using the http protocol.
</div>
<hr>
<div class="refsect2">
-<a name="idp11264176"></a><h3>Element Pads</h3>
+<a name="idp7570000"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
index c513cd3..6f35b68 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsink.html
@@ -74,7 +74,7 @@ It can, for example, be used to write a stream to memory with a
<p>
</p>
<div class="refsect2">
-<a name="idp9482736"></a><h3>Example code</h3>
+<a name="idp11377200"></a><h3>Example code</h3>
<p>
The following example writes the received data to a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html"><span class="type">GMemoryOutputStream</span></a>.
</p>
@@ -141,7 +141,7 @@ out_data <span class="gtkdoc opt">=</span> <span class="function">g_memory_ouput
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9945936"></a><h3>Element Information</h3>
+<a name="idp11381552"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -164,7 +164,7 @@ out_data <span class="gtkdoc opt">=</span> <span class="function">g_memory_ouput
</div>
<hr>
<div class="refsect2">
-<a name="idp11150720"></a><h3>Element Pads</h3>
+<a name="idp11581488"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
index 0a6ba6a..2851ebc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-giostreamsrc.html
@@ -75,7 +75,7 @@ It can, for example, be used to read data from memory with a
<p>
</p>
<div class="refsect2">
-<a name="idp8750048"></a><h3>Example code</h3>
+<a name="idp9214272"></a><h3>Example code</h3>
<p>
The following example reads data from a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a>.
</p>
@@ -140,7 +140,7 @@ src <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gst
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8754448"></a><h3>Element Information</h3>
+<a name="idp9218672"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -163,7 +163,7 @@ src <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gst
</div>
<hr>
<div class="refsect2">
-<a name="idp11168080"></a><h3>Element Pads</h3>
+<a name="idp11508592"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
index 776e90f..3bf91a9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
@@ -194,7 +194,7 @@ Last reviewed on 2006-09-12 (0.10.10)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11539984"></a><h3>Element Information</h3>
+<a name="idp11944528"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -217,7 +217,7 @@ Last reviewed on 2006-09-12 (0.10.10)
</div>
<hr>
<div class="refsect2">
-<a name="idp11547392"></a><h3>Element Pads</h3>
+<a name="idp11951936"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
index 1e74523..bc254e5 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
@@ -192,7 +192,7 @@ Last reviewed on 2006-09-12 (0.10.10)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11918320"></a><h3>Element Information</h3>
+<a name="idp12285424"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -215,7 +215,7 @@ Last reviewed on 2006-09-12 (0.10.10)
</div>
<hr>
<div class="refsect2">
-<a name="idp11925888"></a><h3>Element Pads</h3>
+<a name="idp12292992"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
index 479e5b7..e145b9e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
@@ -57,7 +57,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9281520"></a><h3>Element Information</h3>
+<a name="idp9672240"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -80,7 +80,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp8356944"></a><h3>Element Pads</h3>
+<a name="idp9705008"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
index f919195..4ca7b16 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
@@ -76,7 +76,7 @@ GstOggMux implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11433472"></a><h3>Element Information</h3>
+<a name="idp9135856"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -99,7 +99,7 @@ GstOggMux implements
</div>
<hr>
<div class="refsect2">
-<a name="idp11427024"></a><h3>Element Pads</h3>
+<a name="idp9130208"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playbin.html b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
index 328d2a7..b229ac2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playbin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
@@ -65,7 +65,7 @@ enum <a class="link" href="gst-plugins-base-plugins-playbin.html#
<a name="gst-plugins-base-plugins-playbin.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GstPlayBin implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>, <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>, <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>, <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a> and <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstChildProxy.html">GstChildProxy</a>, <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/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> 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-base-plugins-playbin.properties"></a><h2>Properties</h2>
@@ -89,7 +89,7 @@ GstPlayBin implements
"<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--n-text" title='The "n-text" property'>n-text</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-base-plugins-playbin.html#GstPlayBin--n-video" title='The "n-video" property'>n-video</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-base-plugins-playbin.html#GstPlayBin--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>" <span class="type">guint64</span> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--sample" title='The "sample" property'>sample</a>" <span class="type">GstSample</span>* : Read
+ "<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--sample" title='The "sample" property'>sample</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>* : Read
"<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--source" title='The "source" property'>source</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>* : Read
"<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--subtitle-encoding" title='The "subtitle-encoding" property'>subtitle-encoding</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-base-plugins-playbin.html#GstPlayBin--suburi" title='The "suburi" property'>suburi</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
@@ -159,7 +159,7 @@ volume control with mute option
<p>
</p>
<div class="refsect2">
-<a name="idp12817536"></a><h3>Usage</h3>
+<a name="idp13186528"></a><h3>Usage</h3>
<p>
A playbin element can be created just like any other element using
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make"><code class="function">gst_element_factory_make()</code></a>. The file/URI to play should be set via the <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--uri" title='The "uri" property'><span class="type">"uri"</span></a>
@@ -207,7 +207,7 @@ the duration or position will have been returned in units of nanoseconds.
</p>
<hr>
<div class="refsect2">
-<a name="idp12833648"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="idp13202640"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
<p>
By default, if no audio sink or video sink has been specified via the
<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink" title='The "audio-sink" property'><span class="type">"audio-sink"</span></a> or <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-sink" title='The "video-sink" property'><span class="type">"video-sink"</span></a> property, playbin will use the autoaudiosink
@@ -248,7 +248,7 @@ It is also possible to 'suppress' audio and/or video output by using
</p>
<hr>
<div class="refsect2">
-<a name="idp12844208"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="idp13213200"></a><h3>Retrieving Tags and Other Meta Data</h3>
<p>
Most of the common meta data (artist, title, etc.) can be retrieved by
watching for TAG messages on the pipeline's bus (see above).
@@ -263,7 +263,7 @@ from the negotiated caps on the sink pads of the sinks.
</p>
<hr>
<div class="refsect2">
-<a name="idp12846320"></a><h3>Buffering</h3>
+<a name="idp13215312"></a><h3>Buffering</h3>
Playbin handles buffering automatically for the most part, but applications
need to handle parts of the buffering process as well. Whenever playbin is
buffering, it will post BUFFERING messages on the bus with a percentage
@@ -308,17 +308,17 @@ of 100 percent is received (if PLAYING is the desired state, that is).
</p>
<hr>
<div class="refsect2">
-<a name="idp12849088"></a><h3>Embedding the video window in your application</h3>
+<a name="idp13218080"></a><h3>Embedding the video window in your application</h3>
By default, playbin (or rather the video sinks used) will create their own
window. Applications will usually want to force output to a window of their
-own, however. This can be done using the <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface, which most
+own, however. This can be done using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface, which most
video sinks implement. See the documentation there for more details.
</div>
<p>
</p>
<hr>
<div class="refsect2">
-<a name="idp12851056"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="idp13220048"></a><h3>Specifying which CD/DVD device to use</h3>
The device to use for CDs/DVDs needs to be set on the source element
playbin creates before it is opened. The most generic way of doing this
is to connect to playbin's "source-setup" (or "notify::source") signal,
@@ -334,7 +334,7 @@ dvd://[/path/to/device]
</p>
<hr>
<div class="refsect2">
-<a name="idp12852624"></a><h3>Handling redirects</h3>
+<a name="idp13221616"></a><h3>Handling redirects</h3>
<p>
Some elements may post 'redirect' messages on the bus to tell the
application to open another location. These are element messages containing
@@ -347,7 +347,7 @@ for such redirects can be found in many quicktime movie trailers.
</p>
<hr>
<div class="refsect2">
-<a name="idp12854304"></a><h3>Examples</h3>
+<a name="idp13223296"></a><h3>Examples</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -393,7 +393,7 @@ the drive is detected automatically by the plugin).
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp12859200"></a><h3>Element Information</h3>
+<a name="idp13228192"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -416,7 +416,7 @@ the drive is detected automatically by the plugin).
</div>
<hr>
<div class="refsect2">
-<a name="idp12866656"></a><h3>Element Pads</h3>
+<a name="idp13235648"></a><h3>Element Pads</h3>
</div>
</div>
<p>
@@ -686,7 +686,7 @@ Get the total number of available video streams.
<hr>
<div class="refsect2">
<a name="GstPlayBin--sample"></a><h3>The <code class="literal">"sample"</code> property</h3>
-<pre class="programlisting"> "sample" <span class="type">GstSample</span>* : Read</pre>
+<pre class="programlisting"> "sample" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>* : Read</pre>
<p>
Get the currently rendered or prerolled sample in the video sink.
The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> in the sample will describe the format of the buffer.
@@ -828,7 +828,7 @@ to notify your application's main thread.
<hr>
<div class="refsect2">
<a name="GstPlayBin-convert-sample"></a><h3>The <code class="literal">"convert-sample"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">GstSample</span>* user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
<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) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
index 75f13c4..ab0ba02 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp5883136"></a><h2>Plugin Information</h2>
+<a name="idp8964480"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7434336"></a><h2>Elements</h2>
+<a name="idp6341520"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
index 4e63a7d..8c26ffb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8079392"></a><h2>Plugin Information</h2>
+<a name="idp8659488"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp6111680"></a><h2>Elements</h2>
+<a name="idp7131520"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
index 69fe5e1..ae37d4d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp15788720"></a><h2>Plugin Information</h2>
+<a name="idp9300752"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp8329952"></a><h2>Elements</h2>
+<a name="idp7199840"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
index 5164c45..7cc9ce6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6584720"></a><h2>Plugin Information</h2>
+<a name="idp6678848"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7493536"></a><h2>Elements</h2>
+<a name="idp9517056"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
index c73d9b1..36f15b2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp11192400"></a><h2>Plugin Information</h2>
+<a name="idp9470688"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp15783920"></a><h2>Elements</h2>
+<a name="idp12494784"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
index 97d2775..13d1c60 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7980880"></a><h2>Plugin Information</h2>
+<a name="idp8062608"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7512080"></a><h2>Elements</h2>
+<a name="idp7737696"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
index 4fa6b37..f8558c7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp10021344"></a><h2>Plugin Information</h2>
+<a name="idp16316176"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp10513600"></a><h2>Elements</h2>
+<a name="idp10650992"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
index 1d3fe29..ed9cfbd 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp14270288"></a><h2>Plugin Information</h2>
+<a name="idp7179024"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp8793152"></a><h2>Elements</h2>
+<a name="idp10318848"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-decodebin.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-decodebin.html
index f17ce09..e8511f1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-decodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-decodebin.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp9005616"></a><h2>Plugin Information</h2>
+<a name="idp8609824"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp6473456"></a><h2>Elements</h2>
+<a name="idp7067008"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
index c6b424d..167683a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7491568"></a><h2>Plugin Information</h2>
+<a name="idp9296576"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp6014864"></a><h2>Elements</h2>
+<a name="idp9821632"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gdp.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gdp.html
index 23b220e..9c4a7f3 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gdp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gdp.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8851536"></a><h2>Plugin Information</h2>
+<a name="idp6309920"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp14859888"></a><h2>Elements</h2>
+<a name="idp6582448"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
index 6249604..a4cec2c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp11184688"></a><h2>Plugin Information</h2>
+<a name="idp15484528"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7630064"></a><h2>Elements</h2>
+<a name="idp6101440"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
index 479c72e..40860c3 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp15700016"></a><h2>Plugin Information</h2>
+<a name="idp9426752"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7371424"></a><h2>Elements</h2>
+<a name="idp9075488"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
index 6a74359..837df39 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6751136"></a><h2>Plugin Information</h2>
+<a name="idp7766704"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp6016576"></a><h2>Elements</h2>
+<a name="idp6628544"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
index b021327..f26d103 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp9148720"></a><h2>Plugin Information</h2>
+<a name="idp16419216"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp8346304"></a><h2>Elements</h2>
+<a name="idp8823616"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
index b17ef7d..e173ac2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp5674976"></a><h2>Plugin Information</h2>
+<a name="idp14475584"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp10431952"></a><h2>Elements</h2>
+<a name="idp9577296"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
index 809fc05..74e241c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp15995184"></a><h2>Plugin Information</h2>
+<a name="idp9338048"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp6050384"></a><h2>Elements</h2>
+<a name="idp5836144"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
index 2f60f55..ded4bdc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16101600"></a><h2>Plugin Information</h2>
+<a name="idp14462512"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7090160"></a><h2>Elements</h2>
+<a name="idp8799408"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
index 4518b4c..04529ff 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8618208"></a><h2>Plugin Information</h2>
+<a name="idp9419824"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7386704"></a><h2>Elements</h2>
+<a name="idp6068352"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
index 89dcdcb..5d456c4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp5214080"></a><h2>Plugin Information</h2>
+<a name="idp16634576"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp8092672"></a><h2>Elements</h2>
+<a name="idp7746144"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody></tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
index 0136750..4c973bc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8003216"></a><h2>Plugin Information</h2>
+<a name="idp6167616"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp11325200"></a><h2>Elements</h2>
+<a name="idp7963456"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
index ba164ef..03b780c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7643104"></a><h2>Plugin Information</h2>
+<a name="idp16670080"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp9790464"></a><h2>Elements</h2>
+<a name="idp5847360"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
index a798c99..2d49f4c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp9062272"></a><h2>Plugin Information</h2>
+<a name="idp9331424"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp9152512"></a><h2>Elements</h2>
+<a name="idp16661472"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
index c52ae02..ae25e30 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp5243200"></a><h2>Plugin Information</h2>
+<a name="idp9073168"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp4838976"></a><h2>Elements</h2>
+<a name="idp11146128"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
index 86e755f..d0960b0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8993312"></a><h2>Plugin Information</h2>
+<a name="idp6069664"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp15667936"></a><h2>Elements</h2>
+<a name="idp6246608"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
index 420edef..a248913 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp9360800"></a><h2>Plugin Information</h2>
+<a name="idp5966736"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp8147936"></a><h2>Elements</h2>
+<a name="idp10390256"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
index b464918..0b8e032 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -29,7 +29,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8368192"></a><h2>Plugin Information</h2>
+<a name="idp9609296"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -57,7 +57,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp5704608"></a><h2>Elements</h2>
+<a name="idp16625248"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
index 1112c36..dfad77d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -28,7 +28,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp11394768"></a><h2>Plugin Information</h2>
+<a name="idp7824192"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -56,7 +56,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp8299264"></a><h2>Elements</h2>
+<a name="idp8218208"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
index 76520fb..7a934f0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-subtitleoverlay.html
@@ -84,7 +84,7 @@ DVD subpicture subtitles.
<p>
</p>
<div class="refsect2">
-<a name="idp6514000"></a><h3>Examples</h3>
+<a name="idp6455072"></a><h3>Examples</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -102,7 +102,7 @@ DVD subpicture subtitles.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6107776"></a><h3>Element Information</h3>
+<a name="idp6137248"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -125,7 +125,7 @@ DVD subpicture subtitles.
</div>
<hr>
<div class="refsect2">
-<a name="idp12461872"></a><h3>Element Pads</h3>
+<a name="idp12766128"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
index f91d288..e05177e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsink.html
@@ -68,7 +68,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp12418000"></a><h3>Example launch line</h3>
+<a name="idp12774016"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -92,7 +92,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsink fd<span class="gtkdoc opt">=</
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp12420608"></a><h3>Element Information</h3>
+<a name="idp12776624"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -115,7 +115,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsink fd<span class="gtkdoc opt">=</
</div>
<hr>
<div class="refsect2">
-<a name="idp12428016"></a><h3>Element Pads</h3>
+<a name="idp12919440"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
index 70e1cc2..b33439f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpclientsrc.html
@@ -69,7 +69,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp11302480"></a><h3>Example launch line</h3>
+<a name="idp9563568"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -93,7 +93,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc port<span class="gtkdoc
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11305088"></a><h3>Element Information</h3>
+<a name="idp12138240"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -116,7 +116,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc port<span class="gtkdoc
</div>
<hr>
<div class="refsect2">
-<a name="idp12412608"></a><h3>Element Pads</h3>
+<a name="idp12145648"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
index 5985f46..6ad5c32 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversink.html
@@ -69,7 +69,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp11775072"></a><h3>Example launch line</h3>
+<a name="idp13604432"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -93,7 +93,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc port<span class="gtkdoc
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp13065104"></a><h3>Element Information</h3>
+<a name="idp9163040"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -116,7 +116,7 @@ gst<span class="gtkdoc opt">-</span>launch tcpclientsrc port<span class="gtkdoc
</div>
<hr>
<div class="refsect2">
-<a name="idp13072512"></a><h3>Element Pads</h3>
+<a name="idp13635040"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
index 74a508d..acfed6f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-tcpserversrc.html
@@ -69,7 +69,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp12434432"></a><h3>Example launch line</h3>
+<a name="idp12729552"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -93,7 +93,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp12437200"></a><h3>Element Information</h3>
+<a name="idp12732320"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -116,7 +116,7 @@ gst<span class="gtkdoc opt">-</span>launch fdsrc fd<span class="gtkdoc opt">=</s
</div>
<hr>
<div class="refsect2">
-<a name="idp11757648"></a><h3>Element Pads</h3>
+<a name="idp9180320"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
index 3ec8c83..6116a92 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
@@ -85,7 +85,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp13687760"></a><h3>Element Information</h3>
+<a name="idp14054208"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -108,7 +108,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp13695168"></a><h3>Element Pads</h3>
+<a name="idp14061616"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textrender.html b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
index c78003f..77c387d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textrender.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
@@ -70,7 +70,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8171168"></a><h3>Element Information</h3>
+<a name="idp6020640"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -93,7 +93,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp13197328"></a><h3>Element Pads</h3>
+<a name="idp13714128"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
index b62bbb2..50e6069 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
@@ -65,7 +65,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7460368"></a><h3>Element Information</h3>
+<a name="idp7062304"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -88,7 +88,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp13872576"></a><h3>Element Pads</h3>
+<a name="idp13589088"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
index 12853ff..60eac21 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
@@ -93,7 +93,7 @@ GstTheoraEnc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp14064192"></a><h3>Element Information</h3>
+<a name="idp14549296"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -116,7 +116,7 @@ GstTheoraEnc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp14071648"></a><h3>Element Pads</h3>
+<a name="idp14556752"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
index 94c5a59..38f65ea 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
@@ -65,7 +65,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8049152"></a><h3>Element Information</h3>
+<a name="idp9697744"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -88,7 +88,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp11735584"></a><h3>Element Pads</h3>
+<a name="idp14210192"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
index 7d9dac2..853b132 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
@@ -58,7 +58,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp5647840"></a><h3>Element Information</h3>
+<a name="idp7914960"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -81,7 +81,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp6261488"></a><h3>Element Pads</h3>
+<a name="idp8696096"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
index 9408b30..2d909e2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
@@ -103,7 +103,7 @@ handle the given <a class="link" href="gst-plugins-base-plugins-uridecodebin.htm
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp14365984"></a><h3>Element Information</h3>
+<a name="idp14708688"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -126,7 +126,7 @@ handle the given <a class="link" href="gst-plugins-base-plugins-uridecodebin.htm
</div>
<hr>
<div class="refsect2">
-<a name="idp14373440"></a><h3>Element Pads</h3>
+<a name="idp14716144"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
index 9614d05..24d8bcd 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
@@ -52,7 +52,7 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</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>
+----GstVideoConvert
</pre>
</div>
@@ -70,7 +70,7 @@ Convert video frames between a great variety of video formats.
<p>
</p>
<div class="refsect2">
-<a name="idp5648672"></a><h3>Example launch line</h3>
+<a name="idp9260976"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -88,7 +88,7 @@ Convert video frames between a great variety of video formats.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8168640"></a><h3>Element Information</h3>
+<a name="idp9729344"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -111,7 +111,7 @@ Convert video frames between a great variety of video formats.
</div>
<hr>
<div class="refsect2">
-<a name="idp11017520"></a><h3>Element Pads</h3>
+<a name="idp10701504"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
index 6f09b1f..734aa48 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videorate.html
@@ -115,7 +115,7 @@ applications should be prepared for this.
<p>
</p>
<div class="refsect2">
-<a name="idp14232544"></a><h3>Example pipelines</h3>
+<a name="idp15058912"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -149,7 +149,7 @@ Last reviewed on 2006-09-02 (0.10.11)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp14693712"></a><h3>Element Information</h3>
+<a name="idp15063328"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -172,7 +172,7 @@ Last reviewed on 2006-09-02 (0.10.11)
</div>
<hr>
<div class="refsect2">
-<a name="idp14701168"></a><h3>Element Pads</h3>
+<a name="idp15070784"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
index 9651243..8ed8210 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
@@ -53,7 +53,7 @@ enum <a class="link" href="gst-plugins-base-plugins-videoscale.ht
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</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>
+----GstVideoScale
</pre>
</div>
@@ -84,7 +84,7 @@ pipeline.
<p>
</p>
<div class="refsect2">
-<a name="idp13963808"></a><h3>Example pipelines</h3>
+<a name="idp15176432"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -120,7 +120,7 @@ Last reviewed on 2006-03-02 (0.10.4)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp13968208"></a><h3>Element Information</h3>
+<a name="idp15180832"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -143,7 +143,7 @@ Last reviewed on 2006-03-02 (0.10.4)
</div>
<hr>
<div class="refsect2">
-<a name="idp13975680"></a><h3>Element Pads</h3>
+<a name="idp14498672"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
index 3685421..1ec23e0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
@@ -92,7 +92,7 @@ property.
<p>
</p>
<div class="refsect2">
-<a name="idp15172816"></a><h3>Example launch line</h3>
+<a name="idp15578096"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -110,7 +110,7 @@ property.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp15170448"></a><h3>Element Information</h3>
+<a name="idp15575728"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -133,7 +133,7 @@ property.
</div>
<hr>
<div class="refsect2">
-<a name="idp15161648"></a><h3>Element Pads</h3>
+<a name="idp15566928"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-volume.html b/docs/plugins/html/gst-plugins-base-plugins-volume.html
index 01100c6..ac91011 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-volume.html
@@ -54,7 +54,7 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</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>
+----GstVolume
</pre>
</div>
@@ -62,7 +62,7 @@
<a name="gst-plugins-base-plugins-volume.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GstVolume implements
- <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstmixer.html#GstMixer">GstMixer</a> and <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>.</p>
+ <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-gststreamvolume.html#GstStreamVolume">GstStreamVolume</a>.</p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-volume.properties"></a><h2>Properties</h2>
@@ -79,7 +79,7 @@ The volume element changes the volume of the audio data.
<p>
</p>
<div class="refsect2">
-<a name="idp7711904"></a><h3>Example launch line</h3>
+<a name="idp9527088"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -99,7 +99,7 @@ the same pipeline without the volume element.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp13997168"></a><h3>Element Information</h3>
+<a name="idp14334416"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -122,7 +122,7 @@ the same pipeline without the volume element.
</div>
<hr>
<div class="refsect2">
-<a name="idp15220144"></a><h3>Element Pads</h3>
+<a name="idp14262080"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
index 326c708..4fad008 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
@@ -49,7 +49,7 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</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>
+----GstVorbisDec
</pre>
</div>
@@ -58,7 +58,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7430624"></a><h3>Element Information</h3>
+<a name="idp9598656"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -81,7 +81,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp6941312"></a><h3>Element Pads</h3>
+<a name="idp6388992"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
index dc83380..1299a74 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
@@ -53,7 +53,7 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</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>
+----GstVorbisEnc
</pre>
</div>
@@ -79,7 +79,7 @@ GstVorbisEnc implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp15409296"></a><h3>Element Information</h3>
+<a name="idp15030224"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -102,7 +102,7 @@ GstVorbisEnc implements
</div>
<hr>
<div class="refsect2">
-<a name="idp14864224"></a><h3>Element Pads</h3>
+<a name="idp15037632"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
index 944990c..e4c81ef 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
@@ -58,7 +58,7 @@
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8806304"></a><h3>Element Information</h3>
+<a name="idp9174784"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -81,7 +81,7 @@
</div>
<hr>
<div class="refsect2">
-<a name="idp7092368"></a><h3>Element Pads</h3>
+<a name="idp6351584"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
index 88e275a..0ecd49c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
@@ -66,7 +66,7 @@ GstVorbisTag implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6280016"></a><h3>Element Information</h3>
+<a name="idp6642160"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -89,7 +89,7 @@ GstVorbisTag implements
</div>
<hr>
<div class="refsect2">
-<a name="idp14614880"></a><h3>Element Pads</h3>
+<a name="idp9226848"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
index 0dc12fb..910e335 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
@@ -54,7 +54,7 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</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>
+----GstXImageSink
</pre>
</div>
@@ -62,7 +62,7 @@
<a name="gst-plugins-base-plugins-ximagesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GstXImageSink implements
- <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a> and <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>.</p>
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a>.</p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-ximagesink.properties"></a><h2>Properties</h2>
@@ -82,7 +82,7 @@ GstXImageSink implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp14926848"></a><h3>Element Information</h3>
+<a name="idp15395728"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -105,7 +105,7 @@ GstXImageSink implements
</div>
<hr>
<div class="refsect2">
-<a name="idp14934304"></a><h3>Element Pads</h3>
+<a name="idp15403184"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
index cb3bf8a..288de67 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
@@ -54,7 +54,7 @@
+----<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="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideosink.html#GstVideoSink">GstVideoSink</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>
+----GstXvImageSink
</pre>
</div>
@@ -62,7 +62,7 @@
<a name="gst-plugins-base-plugins-xvimagesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GstXvImageSink implements
- <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstnavigation.html#GstNavigation">GstNavigation</a>, <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</a> and <a href="../gst-plugins-base-libs-1.0/gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance">GstColorBalance</a>.</p>
+ <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-gstvideooverlay.html#GstVideoOverlay">GstVideoOverlay</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-base-plugins-xvimagesink.properties"></a><h2>Properties</h2>
@@ -92,7 +92,7 @@ GstXvImageSink implements
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp15798544"></a><h3>Element Information</h3>
+<a name="idp16429584"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -115,7 +115,7 @@ GstXvImageSink implements
</div>
<hr>
<div class="refsect2">
-<a name="idp15806000"></a><h3>Element Pads</h3>
+<a name="idp16437040"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gst-plugins-base-plugins.devhelp2 b/docs/plugins/html/gst-plugins-base-plugins.devhelp2
index 8656aeb..d7000a8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins.devhelp2
+++ b/docs/plugins/html/gst-plugins-base-plugins.devhelp2
@@ -84,13 +84,13 @@
</sub>
</chapters>
<functions>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp7800880"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idp7983392"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idm32096"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp8203424"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idp8338832"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idm39456"/>
<keyword type="struct" name="struct GstAdder" link="gst-plugins-base-plugins-adder.html#GstAdder-struct"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-adder.html#GstAdder--caps"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp5318304"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp5325712"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp7386384"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp7393872"/>
<keyword type="struct" name="struct GstAppSrc" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"/>
<keyword type="property" name="The &quot;block&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps"/>
@@ -108,8 +108,8 @@
<keyword type="signal" name="The &quot;need-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
<keyword type="signal" name="The &quot;push-buffer&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer"/>
<keyword type="signal" name="The &quot;seek-data&quot; signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9537296"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9544704"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9939184"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9946672"/>
<keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--caps"/>
<keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--drop"/>
@@ -125,34 +125,31 @@
<keyword type="signal" name="The &quot;pull-buffer-list&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer-list"/>
<keyword type="signal" name="The &quot;new-sample&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-sample"/>
<keyword type="signal" name="The &quot;pull-sample&quot; signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-sample"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp7052704"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp5168000"/>
- <keyword type="struct" name="struct GstAlsaMixerElement" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement-struct"/>
- <keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device"/>
- <keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp5819104"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp5826560"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp9325760"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp6984048"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp7652208"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp7659664"/>
<keyword type="struct" name="struct GstAlsaSink" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name"/>
<keyword type="property" name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp5974112"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp5981568"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp8412864"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp8420320"/>
<keyword type="struct" name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
<keyword type="property" name="The &quot;device&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
<keyword type="property" name="The &quot;device-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
<keyword type="property" name="The &quot;card-name&quot; property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp7492768"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp6056560"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp8247520"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp6321904"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp9276176"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp9029200"/>
<keyword type="struct" name="struct GstAudioConvert" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct"/>
<keyword type="enum" name="enum GstAudioConvertDithering" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering"/>
<keyword type="enum" name="enum GstAudioConvertNoiseShaping" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping"/>
<keyword type="property" name="The &quot;dithering&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering"/>
<keyword type="property" name="The &quot;noise-shaping&quot; property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp7159520"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp7162240"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp7169696"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp8565120"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10427616"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10435072"/>
<keyword type="struct" name="struct GstAudioRate" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate-struct"/>
<keyword type="property" name="The &quot;add&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add"/>
<keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop"/>
@@ -161,15 +158,15 @@
<keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent"/>
<keyword type="property" name="The &quot;tolerance&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance"/>
<keyword type="property" name="The &quot;skip-to-first&quot; property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp7642752"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp7071712"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp7321920"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp9365952"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp7848656"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp8632432"/>
<keyword type="struct" name="struct GstAudioResample" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct"/>
<keyword type="property" name="The &quot;filter-length&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length"/>
<keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp6449264"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp6453136"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10177776"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp10244384"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10248256"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10540240"/>
<keyword type="struct" name="struct GstAudioTestSrc" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"/>
<keyword type="enum" name="enum GstAudioTestSrcWave" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave"/>
<keyword type="property" name="The &quot;freq&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq"/>
@@ -180,8 +177,8 @@
<keyword type="property" name="The &quot;wave&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave"/>
<keyword type="property" name="The &quot;can-activate-pull&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull"/>
<keyword type="property" name="The &quot;can-activate-push&quot; property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-push"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp9233664"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10285696"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp5269504"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10759264"/>
<keyword type="struct" name="struct GstCdParanoiaSrc" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-struct"/>
<keyword type="property" name="The &quot;generic-device&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--generic-device"/>
<keyword type="property" name="The &quot;paranoia-mode&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--paranoia-mode"/>
@@ -190,12 +187,12 @@
<keyword type="property" name="The &quot;cache-size&quot; property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--cache-size"/>
<keyword type="signal" name="The &quot;transport-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-transport-error"/>
<keyword type="signal" name="The &quot;uncorrected-error&quot; signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-uncorrected-error"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp4880112"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp9261280"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp6165216"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp7673408"/>
<keyword type="struct" name="struct GstClockOverlay" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct"/>
<keyword type="property" name="The &quot;time-format&quot; property" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp10622688"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp10630208"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp10897904"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp10905424"/>
<keyword type="struct" name="struct GstDecodeBin" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-struct"/>
<keyword type="property" name="The &quot;threaded&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--threaded"/>
<keyword type="property" name="The &quot;sink-caps&quot; property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--sink-caps"/>
@@ -217,9 +214,9 @@
<keyword type="signal" name="The &quot;autoplug-select&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-select"/>
<keyword type="signal" name="The &quot;autoplug-sort&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-sort"/>
<keyword type="signal" name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-drained"/>
- <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp6153584"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp10928496"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp10935904"/>
+ <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp9863536"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp11290832"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp11298240"/>
<keyword type="struct" name="GstEncodeBin" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-struct"/>
<keyword type="property" name="The &quot;audio-jitter-tolerance&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance"/>
<keyword type="property" name="The &quot;avoid-reencoding&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding"/>
@@ -229,46 +226,46 @@
<keyword type="property" name="The &quot;queue-time-max&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max"/>
<keyword type="property" name="The &quot;flags&quot; property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags"/>
<keyword type="signal" name="The &quot;request-pad&quot; signal" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videoconvert.html#idp5648672"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoconvert.html#idp8168640"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoconvert.html#idp11017520"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videoconvert.html#idp9260976"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoconvert.html#idp9729344"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoconvert.html#idp10701504"/>
<keyword type="struct" name="struct GstVideoConvert" link="gst-plugins-base-plugins-videoconvert.html#GstVideoConvert-struct"/>
<keyword type="property" name="The &quot;dither&quot; property" link="gst-plugins-base-plugins-videoconvert.html#GstVideoConvert--dither"/>
- <keyword type="" name="" link="gst-plugins-base-plugins-gdpdepay.html#idp6523024"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp8138816"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp6112400"/>
+ <keyword type="" name="" link="gst-plugins-base-plugins-gdpdepay.html#idp8368432"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp6714976"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp9237360"/>
<keyword type="struct" name="struct GstGDPDepay" link="gst-plugins-base-plugins-gdpdepay.html#GstGDPDepay-struct"/>
- <keyword type="" name="" link="gst-plugins-base-plugins-gdppay.html#idp8286688"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp8461504"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp10850384"/>
+ <keyword type="" name="" link="gst-plugins-base-plugins-gdppay.html#idp9422512"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp8275808"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp11205344"/>
<keyword type="struct" name="struct GstGDPPay" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay-struct"/>
<keyword type="property" name="The &quot;crc-header&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-header"/>
<keyword type="property" name="The &quot;crc-payload&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-payload"/>
<keyword type="property" name="The &quot;version&quot; property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--version"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp8731776"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp8736624"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp10448080"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp7541712"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp7546560"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp11607184"/>
<keyword type="struct" name="struct GstGioSink" link="gst-plugins-base-plugins-giosink.html#GstGioSink-struct"/>
<keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--location"/>
<keyword type="property" name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--file"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp10485616"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp10490464"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11264176"/>
+ <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp8044096"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp7562480"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp7570000"/>
<keyword type="struct" name="struct GstGioSrc" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc-struct"/>
<keyword type="property" name="The &quot;location&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--location"/>
<keyword type="property" name="The &quot;file&quot; property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--file"/>
- <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp9482736"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp9945936"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11150720"/>
+ <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp11377200"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11381552"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11581488"/>
<keyword type="struct" name="struct GstGioStreamSink" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink-struct"/>
<keyword type="property" name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink--stream"/>
- <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp8750048"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp8754448"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp11168080"/>
+ <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp9214272"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp9218672"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp11508592"/>
<keyword type="struct" name="struct GstGioStreamSrc" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc-struct"/>
<keyword type="property" name="The &quot;stream&quot; property" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp11539984"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp11547392"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp11944528"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp11951936"/>
<keyword type="struct" name="struct GstMultiFdSink" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-struct"/>
<keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy"/>
<keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod"/>
@@ -306,8 +303,8 @@
<keyword type="signal" name="The &quot;add-full&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full"/>
<keyword type="signal" name="The &quot;remove-flush&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush"/>
<keyword type="signal" name="The &quot;client-handle-removed&quot; signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-handle-removed"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multisocketsink.html#idp11918320"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multisocketsink.html#idp11925888"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multisocketsink.html#idp12285424"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multisocketsink.html#idp12292992"/>
<keyword type="struct" name="struct GstMultiSocketSink" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-struct"/>
<keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multisocketsink.html#GstRecoverPolicy"/>
<keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multisocketsink.html#GstSyncMethod"/>
@@ -342,26 +339,26 @@
<keyword type="signal" name="The &quot;remove&quot; signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-remove"/>
<keyword type="signal" name="The &quot;remove-flush&quot; signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-remove-flush"/>
<keyword type="signal" name="The &quot;client-handle-removed&quot; signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-handle-removed"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp9281520"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp8356944"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp9672240"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp9705008"/>
<keyword type="struct" name="struct GstOggDemux" link="gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp11433472"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp11427024"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp9135856"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp9130208"/>
<keyword type="struct" name="struct GstOggMux" link="gst-plugins-base-plugins-oggmux.html#GstOggMux-struct"/>
<keyword type="property" name="The &quot;max-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay"/>
<keyword type="property" name="The &quot;max-page-delay&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay"/>
<keyword type="property" name="The &quot;max-tolerance&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance"/>
<keyword type="property" name="The &quot;skeleton&quot; property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton"/>
- <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12817536"/>
- <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12833648"/>
- <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12844208"/>
- <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12846320"/>
- <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12849088"/>
- <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12851056"/>
- <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin.html#idp12852624"/>
- <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12854304"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12859200"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12866656"/>
+ <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp13186528"/>
+ <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp13202640"/>
+ <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp13213200"/>
+ <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp13215312"/>
+ <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp13218080"/>
+ <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp13220048"/>
+ <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin.html#idp13221616"/>
+ <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp13223296"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp13228192"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp13235648"/>
<keyword type="struct" name="struct GstPlayBin" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-struct"/>
<keyword type="enum" name="enum GstPlayFlags" link="gst-plugins-base-plugins-playbin.html#GstPlayFlags"/>
<keyword type="property" name="The &quot;audio-sink&quot; property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
@@ -404,42 +401,42 @@
<keyword type="signal" name="The &quot;text-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-text-tags-changed"/>
<keyword type="signal" name="The &quot;video-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-video-changed"/>
<keyword type="signal" name="The &quot;video-tags-changed&quot; signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-video-tags-changed"/>
- <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp6514000"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp6107776"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp12461872"/>
+ <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp6455072"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp6137248"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp12766128"/>
<keyword type="struct" name="struct GstSubtitleOverlay" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay-struct"/>
<keyword type="property" name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc"/>
<keyword type="property" name="The &quot;silent&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent"/>
<keyword type="property" name="The &quot;subtitle-encoding&quot; property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11302480"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11305088"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12412608"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp9563568"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12138240"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12145648"/>
<keyword type="struct" name="struct GstTCPClientSrc" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc-struct"/>
<keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host"/>
<keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port"/>
<keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp12418000"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12420608"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp12428016"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp12774016"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12776624"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp12919440"/>
<keyword type="struct" name="struct GstTCPClientSink" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink-struct"/>
<keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host"/>
<keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port"/>
<keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp12434432"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp12437200"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp11757648"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp12729552"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp12732320"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp9180320"/>
<keyword type="struct" name="struct GstTCPServerSrc" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc-struct"/>
<keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host"/>
<keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
<keyword type="property" name="The &quot;protocol&quot; property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp11775072"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13065104"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13072512"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13604432"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp9163040"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13635040"/>
<keyword type="struct" name="struct GstTCPServerSink" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink-struct"/>
<keyword type="property" name="The &quot;host&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host"/>
<keyword type="property" name="The &quot;port&quot; property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp13687760"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp13695168"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp14054208"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp14061616"/>
<keyword type="struct" name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
<keyword type="property" name="The &quot;deltax&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltax"/>
<keyword type="property" name="The &quot;deltay&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltay"/>
@@ -461,8 +458,8 @@
<keyword type="property" name="The &quot;color&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color"/>
<keyword type="property" name="The &quot;xpos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos"/>
<keyword type="property" name="The &quot;ypos&quot; property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp8171168"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp13197328"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp6020640"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp13714128"/>
<keyword type="struct" name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
<keyword type="property" name="The &quot;font-desc&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
<keyword type="property" name="The &quot;halignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
@@ -470,12 +467,12 @@
<keyword type="property" name="The &quot;valignment&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment"/>
<keyword type="property" name="The &quot;xpad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad"/>
<keyword type="property" name="The &quot;ypad&quot; property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp7460368"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13872576"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp7062304"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13589088"/>
<keyword type="struct" name="struct GstTheoraDec" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct"/>
<keyword type="property" name="The &quot;crop&quot; property" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14064192"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14071648"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14549296"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14556752"/>
<keyword type="struct" name="struct GstTheoraEnc" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct"/>
<keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate"/>
<keyword type="property" name="The &quot;border&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border"/>
@@ -498,15 +495,15 @@
<keyword type="property" name="The &quot;multipass-cache-file&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file"/>
<keyword type="property" name="The &quot;multipass-mode&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode"/>
<keyword type="property" name="The &quot;dup-on-gap&quot; property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--dup-on-gap"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idp8049152"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp11735584"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idp9697744"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp14210192"/>
<keyword type="struct" name="struct GstTheoraParse" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct"/>
<keyword type="property" name="The &quot;synchronization-points&quot; property" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp5647840"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp6261488"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp7914960"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp8696096"/>
<keyword type="struct" name="struct GstTimeOverlay" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14365984"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14373440"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14708688"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14716144"/>
<keyword type="struct" name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
<keyword type="enum" name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
<keyword type="property" name="The &quot;uri&quot; property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--uri"/>
@@ -527,9 +524,9 @@
<keyword type="signal" name="The &quot;drained&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained"/>
<keyword type="signal" name="The &quot;autoplug-sort&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort"/>
<keyword type="signal" name="The &quot;source-setup&quot; signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp14232544"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp14693712"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14701168"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp15058912"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp15063328"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp15070784"/>
<keyword type="struct" name="struct GstVideoRate" link="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct"/>
<keyword type="property" name="The &quot;drop&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop"/>
<keyword type="property" name="The &quot;duplicate&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate"/>
@@ -541,9 +538,9 @@
<keyword type="property" name="The &quot;average-period&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period"/>
<keyword type="property" name="The &quot;drop-only&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only"/>
<keyword type="property" name="The &quot;max-rate&quot; property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp13963808"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp13968208"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp13975680"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp15176432"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp15180832"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp14498672"/>
<keyword type="struct" name="struct GstVideoScale" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale-struct"/>
<keyword type="enum" name="enum GstVideoScaleMethod" link="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod"/>
<keyword type="property" name="The &quot;method&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method"/>
@@ -552,9 +549,9 @@
<keyword type="property" name="The &quot;envelope&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope"/>
<keyword type="property" name="The &quot;sharpen&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen"/>
<keyword type="property" name="The &quot;sharpness&quot; property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15172816"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15170448"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15161648"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15578096"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15575728"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15566928"/>
<keyword type="struct" name="struct GstVideoTestSrc" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc-struct"/>
<keyword type="enum" name="enum GstVideoTestSrcPattern" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern"/>
<keyword type="property" name="The &quot;pattern&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--pattern"/>
@@ -577,17 +574,17 @@
<keyword type="property" name="The &quot;background-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color"/>
<keyword type="property" name="The &quot;foreground-color&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--foreground-color"/>
<keyword type="property" name="The &quot;horizontal-speed&quot; property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--horizontal-speed"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp7711904"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp13997168"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp15220144"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp9527088"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp14334416"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp14262080"/>
<keyword type="struct" name="struct GstVolume" link="gst-plugins-base-plugins-volume.html#GstVolume-struct"/>
<keyword type="property" name="The &quot;mute&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--mute"/>
<keyword type="property" name="The &quot;volume&quot; property" link="gst-plugins-base-plugins-volume.html#GstVolume--volume"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp7430624"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp6941312"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp9598656"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp6388992"/>
<keyword type="struct" name="struct GstVorbisDec" link="gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15409296"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp14864224"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15030224"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp15037632"/>
<keyword type="struct" name="struct GstVorbisEnc" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc-struct"/>
<keyword type="property" name="The &quot;bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate"/>
<keyword type="property" name="The &quot;last-message&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message"/>
@@ -595,14 +592,14 @@
<keyword type="property" name="The &quot;max-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate"/>
<keyword type="property" name="The &quot;min-bitrate&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate"/>
<keyword type="property" name="The &quot;quality&quot; property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp8806304"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp7092368"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp9174784"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp6351584"/>
<keyword type="struct" name="struct GstVorbisParse" link="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp6280016"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp14614880"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp6642160"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp9226848"/>
<keyword type="struct" name="struct GstVorbisTag" link="gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp14926848"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp14934304"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp15395728"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp15403184"/>
<keyword type="struct" name="struct GstXImageSink" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink-struct"/>
<keyword type="property" name="The &quot;display&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display"/>
<keyword type="property" name="The &quot;pixel-aspect-ratio&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio"/>
@@ -612,8 +609,8 @@
<keyword type="property" name="The &quot;handle-expose&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose"/>
<keyword type="property" name="The &quot;window-height&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height"/>
<keyword type="property" name="The &quot;window-width&quot; property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp15798544"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp15806000"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16429584"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16437040"/>
<keyword type="struct" name="struct GstXvImageSink" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink-struct"/>
<keyword type="property" name="The &quot;brightness&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness"/>
<keyword type="property" name="The &quot;contrast&quot; property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--contrast"/>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 92eb13c..5fd54ab 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -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 Base Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Base Plugins 1.0 (0.11.90)
+ for GStreamer Base Plugins 1.0 (0.11.90.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-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
</p></div>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index 340c21e..17a495e 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -65,16 +65,8 @@
<ANCHOR id="GstAppSink-pull-sample" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-appsink.html#GstAppSink-pull-sample">
<ANCHOR id="gst-plugins-base-plugins-alsamixer" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html">
<ANCHOR id="gst-plugins-base-plugins-alsamixer.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.synopsis">
-<ANCHOR id="GstAlsaMixerElement" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement">
-<ANCHOR id="gst-plugins-base-plugins-alsamixer.object-hierarchy" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.object-hierarchy">
-<ANCHOR id="gst-plugins-base-plugins-alsamixer.implemented-interfaces" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.implemented-interfaces">
-<ANCHOR id="gst-plugins-base-plugins-alsamixer.properties" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.properties">
<ANCHOR id="gst-plugins-base-plugins-alsamixer.description" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.description">
<ANCHOR id="gst-plugins-base-plugins-alsamixer.details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.details">
-<ANCHOR id="GstAlsaMixerElement-struct" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement-struct">
-<ANCHOR id="gst-plugins-base-plugins-alsamixer.property-details" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.property-details">
-<ANCHOR id="GstAlsaMixerElement--device" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device">
-<ANCHOR id="GstAlsaMixerElement--device-name" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name">
<ANCHOR id="gst-plugins-base-plugins-alsasink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html">
<ANCHOR id="gst-plugins-base-plugins-alsasink.synopsis" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.synopsis">
<ANCHOR id="GstAlsaSink" href="gst-plugins-base-plugins-1.0/gst-plugins-base-plugins-alsasink.html#GstAlsaSink">
diff --git a/ext/Makefile.in b/ext/Makefile.in
index ad4997d..76df459 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/ext/alsa/Makefile.am b/ext/alsa/Makefile.am
index b08901e..1c6acf6 100644
--- a/ext/alsa/Makefile.am
+++ b/ext/alsa/Makefile.am
@@ -2,10 +2,6 @@ plugin_LTLIBRARIES = libgstalsa.la
libgstalsa_la_SOURCES = \
gstalsadeviceprobe.c \
- gstalsamixer.c \
- gstalsamixerelement.c \
- gstalsamixertrack.c \
- gstalsamixeroptions.c \
gstalsaplugin.c \
gstalsasink.c \
gstalsasrc.c \
@@ -17,7 +13,6 @@ libgstalsa_la_CFLAGS = \
$(GST_CFLAGS) \
$(ALSA_CFLAGS)
libgstalsa_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(ALSA_LIBS)
@@ -28,9 +23,5 @@ libgstalsa_la_LIBTOOLFLAGS = --tag=disable-static
noinst_HEADERS = \
gstalsa.h \
gstalsadeviceprobe.h \
- gstalsamixer.h \
- gstalsamixerelement.h \
- gstalsamixertrack.h \
- gstalsamixeroptions.h \
gstalsasrc.h \
gstalsasink.h
diff --git a/ext/alsa/Makefile.in b/ext/alsa/Makefile.in
index 6de753f..58546bc 100644
--- a/ext/alsa/Makefile.in
+++ b/ext/alsa/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -129,14 +129,9 @@ am__uninstall_files_from_dir = { \
am__installdirs = "$(DESTDIR)$(plugindir)"
LTLIBRARIES = $(plugin_LTLIBRARIES)
am__DEPENDENCIES_1 =
-libgstalsa_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
+libgstalsa_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_libgstalsa_la_OBJECTS = libgstalsa_la-gstalsadeviceprobe.lo \
- libgstalsa_la-gstalsamixer.lo \
- libgstalsa_la-gstalsamixerelement.lo \
- libgstalsa_la-gstalsamixertrack.lo \
- libgstalsa_la-gstalsamixeroptions.lo \
libgstalsa_la-gstalsaplugin.lo libgstalsa_la-gstalsasink.lo \
libgstalsa_la-gstalsasrc.lo libgstalsa_la-gstalsa.lo
libgstalsa_la_OBJECTS = $(am_libgstalsa_la_OBJECTS)
@@ -464,10 +459,6 @@ top_srcdir = @top_srcdir@
plugin_LTLIBRARIES = libgstalsa.la
libgstalsa_la_SOURCES = \
gstalsadeviceprobe.c \
- gstalsamixer.c \
- gstalsamixerelement.c \
- gstalsamixertrack.c \
- gstalsamixeroptions.c \
gstalsaplugin.c \
gstalsasink.c \
gstalsasrc.c \
@@ -480,7 +471,6 @@ libgstalsa_la_CFLAGS = \
$(ALSA_CFLAGS)
libgstalsa_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(ALSA_LIBS)
@@ -490,10 +480,6 @@ libgstalsa_la_LIBTOOLFLAGS = --tag=disable-static
noinst_HEADERS = \
gstalsa.h \
gstalsadeviceprobe.h \
- gstalsamixer.h \
- gstalsamixerelement.h \
- gstalsamixertrack.h \
- gstalsamixeroptions.h \
gstalsasrc.h \
gstalsasink.h
@@ -541,7 +527,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
@@ -574,10 +560,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsa.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsamixer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsamixerelement.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsamixertrack.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsaplugin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsasink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstalsa_la-gstalsasrc.Plo@am__quote@
@@ -610,34 +592,6 @@ libgstalsa_la-gstalsadeviceprobe.lo: gstalsadeviceprobe.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 $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsadeviceprobe.lo `test -f 'gstalsadeviceprobe.c' || echo '$(srcdir)/'`gstalsadeviceprobe.c
-libgstalsa_la-gstalsamixer.lo: gstalsamixer.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixer.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixer.Tpo -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixer.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixer.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixer.c' object='libgstalsa_la-gstalsamixer.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 $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
-
-libgstalsa_la-gstalsamixerelement.lo: gstalsamixerelement.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixerelement.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Tpo -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixerelement.c' object='libgstalsa_la-gstalsamixerelement.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 $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
-
-libgstalsa_la-gstalsamixertrack.lo: gstalsamixertrack.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixertrack.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Tpo -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixertrack.c' object='libgstalsa_la-gstalsamixertrack.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 $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
-
-libgstalsa_la-gstalsamixeroptions.lo: gstalsamixeroptions.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Tpo -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixeroptions.c' object='libgstalsa_la-gstalsamixeroptions.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 $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
-
libgstalsa_la-gstalsaplugin.lo: gstalsaplugin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsaplugin.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsaplugin.Tpo -c -o libgstalsa_la-gstalsaplugin.lo `test -f 'gstalsaplugin.c' || echo '$(srcdir)/'`gstalsaplugin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsaplugin.Tpo $(DEPDIR)/libgstalsa_la-gstalsaplugin.Plo
diff --git a/ext/alsa/gstalsa.c b/ext/alsa/gstalsa.c
index 19a9ee0..c1529af 100644
--- a/ext/alsa/gstalsa.c
+++ b/ext/alsa/gstalsa.c
@@ -163,7 +163,7 @@ gst_alsa_detect_formats (GstObject * obj, snd_pcm_hw_params_t * hw_params,
s = gst_caps_get_structure (in_caps, i);
if (!gst_structure_has_name (s, "audio/x-raw")) {
- GST_WARNING_OBJECT (obj, "skipping non-raw format");
+ GST_DEBUG_OBJECT (obj, "skipping non-raw format");
continue;
}
@@ -476,7 +476,7 @@ gst_alsa_probe_supported_formats (GstObject * obj, snd_pcm_t * handle,
snd_pcm_t *pcm = gst_alsa_open_iec958_pcm (obj);
if (G_LIKELY (pcm)) {
- gst_caps_append (caps, gst_caps_new_empty_simple ("audio/x-iec958"));
+ gst_caps_append (caps, gst_caps_from_string (PASSTHROUGH_CAPS));
snd_pcm_close (pcm);
}
}
diff --git a/ext/alsa/gstalsa.h b/ext/alsa/gstalsa.h
index ee813ae..3f4aa87 100644
--- a/ext/alsa/gstalsa.h
+++ b/ext/alsa/gstalsa.h
@@ -39,6 +39,15 @@
(SND_LIB_MAJOR == (major) && SND_LIB_MINOR == (minor) && \
SND_LIB_SUBMINOR >= (micro)))
+#define PASSTHROUGH_CAPS \
+ "audio/x-ac3, framed = (boolean) true;" \
+ "audio/x-eac3, framed = (boolean) true; " \
+ "audio/x-dts, framed = (boolean) true, " \
+ "block-size = (int) { 512, 1024, 2048 }; " \
+ "audio/mpeg, mpegversion = (int) 1, " \
+ "mpegaudioversion = (int) [ 1, 2 ], parsed = (boolean) true;"
+
+
GST_DEBUG_CATEGORY_EXTERN (alsa_debug);
#define GST_CAT_DEFAULT alsa_debug
diff --git a/ext/alsa/gstalsamixer.c b/ext/alsa/gstalsamixer.c
deleted file mode 100644
index cd1b056..0000000
--- a/ext/alsa/gstalsamixer.c
+++ /dev/null
@@ -1,950 +0,0 @@
-/* ALSA mixer implementation.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:element-alsamixer
- * @see_also: alsasink, alsasrc
- *
- * This element controls various aspects such as the volume and balance
- * of an audio device using the ALSA api.
- *
- * The application should query and use the interfaces provided by this
- * element to control the device.
- *
- * Last reviewed on 2006-03-01 (0.10.4)
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "gstalsamixer.h"
-#include "gst/glib-compat-private.h"
-#include <errno.h>
-
-static void gst_alsa_mixer_update_option (GstAlsaMixer * mixer,
- GstAlsaMixerOptions * alsa_opts);
-static void gst_alsa_mixer_update_track (GstAlsaMixer * mixer,
- GstAlsaMixerTrack * alsa_track);
-static int gst_alsa_mixer_handle_callback (snd_mixer_t * handle,
- unsigned int mask, snd_mixer_elem_t * elem);
-
-/* First some utils, then the mixer implementation */
-static gboolean
-gst_alsa_mixer_open (GstAlsaMixer * mixer)
-{
- gint err;
- snd_ctl_t *ctl;
- snd_ctl_card_info_t *card_info;
-
- g_return_val_if_fail (mixer->handle == NULL, FALSE);
-
- /* open and initialize the mixer device */
- err = snd_mixer_open (&mixer->handle, 0);
- if (err < 0 || mixer->handle == NULL)
- goto open_failed;
-
- if ((err = snd_mixer_attach (mixer->handle, mixer->device)) < 0) {
- GST_WARNING ("Cannot open mixer for sound device '%s': %s", mixer->device,
- snd_strerror (err));
- goto error;
- }
-
- if ((err = snd_mixer_selem_register (mixer->handle, NULL, NULL)) < 0) {
- GST_WARNING ("Cannot register mixer elements: %s", snd_strerror (err));
- goto error;
- }
-
- if ((err = snd_mixer_load (mixer->handle)) < 0) {
- GST_WARNING ("Cannot load mixer settings: %s", snd_strerror (err));
- goto error;
- }
-
- snd_mixer_set_callback_private (mixer->handle, mixer);
- snd_mixer_set_callback (mixer->handle, gst_alsa_mixer_handle_callback);
-
- /* now get the device name, any of this is not fatal */
- g_free (mixer->cardname);
- if ((err = snd_ctl_open (&ctl, mixer->device, 0)) < 0) {
- GST_WARNING ("Cannot open CTL: %s", snd_strerror (err));
- goto no_card_name;
- }
-
- snd_ctl_card_info_malloc (&card_info);
- if ((err = snd_ctl_card_info (ctl, card_info)) < 0) {
- GST_WARNING ("Cannot get card info: %s", snd_strerror (err));
- snd_ctl_close (ctl);
- goto no_card_name;
- }
-
- mixer->cardname = g_strdup (snd_ctl_card_info_get_name (card_info));
- GST_DEBUG ("Card name = %s", GST_STR_NULL (mixer->cardname));
- snd_ctl_card_info_free (card_info);
- snd_ctl_close (ctl);
-
-no_card_name:
- if (mixer->cardname == NULL) {
- mixer->cardname = g_strdup ("Unknown");
- GST_DEBUG ("Cannot find card name");
- }
-
- GST_INFO ("Successfully opened mixer for device '%s'.", mixer->device);
-
- return TRUE;
-
- /* ERROR */
-open_failed:
- {
- GST_WARNING ("Cannot open mixer: %s", snd_strerror (err));
- mixer->handle = NULL;
- return FALSE;
- }
-error:
- {
- snd_mixer_close (mixer->handle);
- mixer->handle = NULL;
- return FALSE;
- }
-}
-
-static snd_mixer_elem_t *
-gst_alsa_mixer_find_master_mixer (GstAlsaMixer * mixer, snd_mixer_t * handle)
-{
- snd_mixer_elem_t *element;
- gint i, count;
-
- count = snd_mixer_get_count (handle);
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- /* Check if we have a playback mixer labelled as 'Master' */
- element = snd_mixer_first_elem (handle);
- for (i = 0; i < count; i++) {
- if (snd_mixer_selem_has_playback_volume (element) &&
- strcmp (snd_mixer_selem_get_name (element), "Master") == 0) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return element;
- }
- element = snd_mixer_elem_next (element);
- }
-
- /* If not, check if we have a playback mixer labelled as 'Front' */
- element = snd_mixer_first_elem (handle);
- for (i = 0; i < count; i++) {
- if (snd_mixer_selem_has_playback_volume (element) &&
- strcmp (snd_mixer_selem_get_name (element), "Front") == 0) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return element;
- }
- element = snd_mixer_elem_next (element);
- }
-
- /* If not, check if we have a playback mixer labelled as 'PCM' */
- element = snd_mixer_first_elem (handle);
- for (i = 0; i < count; i++) {
- if (snd_mixer_selem_has_playback_volume (element) &&
- strcmp (snd_mixer_selem_get_name (element), "PCM") == 0) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return element;
- }
- element = snd_mixer_elem_next (element);
- }
-
- /* If not, check if we have a playback mixer labelled as 'Speaker' */
- element = snd_mixer_first_elem (handle);
- for (i = 0; i < count; i++) {
- if (snd_mixer_selem_has_playback_volume (element) &&
- strcmp (snd_mixer_selem_get_name (element), "Speaker") == 0) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return element;
- }
- element = snd_mixer_elem_next (element);
- }
-
- /* If not, check if we have a playback mixer with both volume and switch that
- * is not mono */
- element = snd_mixer_first_elem (handle);
- for (i = 0; i < count; i++) {
- if (snd_mixer_selem_has_playback_volume (element) &&
- snd_mixer_selem_has_playback_switch (element) &&
- !snd_mixer_selem_is_playback_mono (element)) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return element;
- }
- element = snd_mixer_elem_next (element);
- }
-
- /* If not, check if we have any playback mixer with both volume and switch */
- element = snd_mixer_first_elem (handle);
- for (i = 0; i < count; i++) {
- if (snd_mixer_selem_has_playback_volume (element) &&
- snd_mixer_selem_has_playback_switch (element)) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return element;
- }
- element = snd_mixer_elem_next (element);
- }
-
- /* If not, take any playback mixer with a volume control */
- element = snd_mixer_first_elem (handle);
- for (i = 0; i < count; i++) {
- if (snd_mixer_selem_has_playback_volume (element)) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return element;
- }
- element = snd_mixer_elem_next (element);
- }
-
- GST_ALSA_MIXER_UNLOCK (mixer);
- /* Looks like we're out of luck ... */
- return NULL;
-}
-
-static void
-gst_alsa_mixer_update (GstAlsaMixer * mixer, snd_mixer_elem_t * elem)
-{
- GList *item;
-
- g_return_if_fail (mixer != NULL);
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- for (item = mixer->tracklist; item != NULL; item = item->next) {
- if (GST_IS_ALSA_MIXER_TRACK (item->data)) {
- if (elem && (GST_ALSA_MIXER_TRACK (item->data)->element != elem))
- continue;
-
- gst_alsa_mixer_update_track (mixer, GST_ALSA_MIXER_TRACK (item->data));
- } else if (GST_IS_ALSA_MIXER_OPTIONS (item->data)) {
- if (elem && (GST_ALSA_MIXER_OPTIONS (item->data)->element != elem))
- continue;
-
- gst_alsa_mixer_update_option (mixer, GST_ALSA_MIXER_OPTIONS (item->data));
- }
- }
-
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-static int
-gst_alsa_mixer_elem_handle_callback (snd_mixer_elem_t * elem, unsigned int mask)
-{
- GstAlsaMixer *mixer =
- (GstAlsaMixer *) snd_mixer_elem_get_callback_private (elem);
-
- GST_LOG ("ALSA elem cb");
-
- g_return_val_if_fail (mixer != NULL, 1);
-
- gst_alsa_mixer_update (mixer, elem);
-
- return 0;
-}
-
-static int
-gst_alsa_mixer_handle_callback (snd_mixer_t * handle, unsigned int mask,
- snd_mixer_elem_t * elem)
-{
- GstAlsaMixer *mixer =
- (GstAlsaMixer *) snd_mixer_get_callback_private (handle);
-
- GST_LOG ("ALSA cb");
-
- g_return_val_if_fail (mixer != NULL, 1);
-
- /* Hopefully won't be call recursively and will handle pending elem events */
- snd_mixer_handle_events (mixer->handle);
-
- gst_alsa_mixer_update (mixer, elem);
-
- return 0;
-}
-
-static void
-gst_alsa_mixer_ensure_track_list (GstAlsaMixer * mixer)
-{
- gint i, count;
- snd_mixer_elem_t *element, *master;
- GList *item;
-
- g_return_if_fail (mixer->handle != NULL);
-
- if (mixer->tracklist)
- return;
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- master = gst_alsa_mixer_find_master_mixer (mixer, mixer->handle);
-
- count = snd_mixer_get_count (mixer->handle);
- element = snd_mixer_first_elem (mixer->handle);
-
- /* build track list
- *
- * Some ALSA tracks may have playback and capture capabilities.
- * Here we model them as two separate GStreamer tracks.
- */
-
- for (i = 0; i < count; i++) {
- GstMixerTrack *play_track = NULL;
- GstMixerTrack *cap_track = NULL;
- const gchar *name;
- GList *item;
- gint samename = 0;
-
- name = snd_mixer_selem_get_name (element);
-
- /* prevent dup names */
- for (item = mixer->tracklist; item != NULL; item = item->next) {
- snd_mixer_elem_t *temp;
-
- if (GST_IS_ALSA_MIXER_OPTIONS (item->data))
- temp = GST_ALSA_MIXER_OPTIONS (item->data)->element;
- else
- temp = GST_ALSA_MIXER_TRACK (item->data)->element;
-
- if (strcmp (name, snd_mixer_selem_get_name (temp)) == 0)
- samename++;
- }
-
- GST_LOG ("[%s] probing element #%u, mixer->dir=%u", name, i, mixer->dir);
-
- if (mixer->dir & GST_ALSA_MIXER_PLAYBACK) {
- gboolean has_playback_switch, has_playback_volume;
-
- has_playback_switch = snd_mixer_selem_has_playback_switch (element);
- has_playback_volume = snd_mixer_selem_has_playback_volume (element);
-
- GST_LOG ("[%s] PLAYBACK: has_playback_volume=%d, has_playback_switch=%d"
- "%s", name, has_playback_volume, has_playback_switch,
- (element == master) ? " MASTER" : "");
-
- if (has_playback_volume) {
- gint flags = GST_MIXER_TRACK_OUTPUT;
-
- if (element == master)
- flags |= GST_MIXER_TRACK_MASTER;
-
- play_track = gst_alsa_mixer_track_new (element, samename, i,
- flags, FALSE, NULL, FALSE);
-
- } else if (has_playback_switch) {
- /* simple mute switch */
- play_track = gst_alsa_mixer_track_new (element, samename, i,
- GST_MIXER_TRACK_OUTPUT, TRUE, NULL, FALSE);
- }
-
- if (snd_mixer_selem_is_enumerated (element)) {
- GstMixerOptions *opts = gst_alsa_mixer_options_new (element, i);
-
- GST_LOG ("[%s] is enumerated (%d)", name, i);
- mixer->tracklist = g_list_append (mixer->tracklist, opts);
- }
- }
-
- if (mixer->dir & GST_ALSA_MIXER_CAPTURE) {
- gboolean has_capture_switch, has_common_switch;
- gboolean has_capture_volume, has_common_volume;
-
- has_capture_switch = snd_mixer_selem_has_capture_switch (element);
- has_common_switch = snd_mixer_selem_has_common_switch (element);
- has_capture_volume = snd_mixer_selem_has_capture_volume (element);
- has_common_volume = snd_mixer_selem_has_common_volume (element);
-
- GST_LOG ("[%s] CAPTURE: has_capture_volume=%d, has_common_volume=%d, "
- "has_capture_switch=%d, has_common_switch=%d, play_track=%p", name,
- has_capture_volume, has_common_volume, has_capture_switch,
- has_common_switch, play_track);
-
- if (has_capture_volume && !(play_track && has_common_volume)) {
- cap_track = gst_alsa_mixer_track_new (element, samename, i,
- GST_MIXER_TRACK_INPUT, FALSE, NULL, play_track != NULL);
- } else if (has_capture_switch && !(play_track && has_common_switch)) {
- cap_track = gst_alsa_mixer_track_new (element, samename, i,
- GST_MIXER_TRACK_INPUT, TRUE, NULL, play_track != NULL);
- }
- }
-
-
- if (play_track && cap_track) {
- GST_ALSA_MIXER_TRACK (play_track)->shared_mute =
- GST_ALSA_MIXER_TRACK (cap_track);
- GST_ALSA_MIXER_TRACK (cap_track)->shared_mute =
- GST_ALSA_MIXER_TRACK (play_track);
- }
-
- if (play_track)
- mixer->tracklist = g_list_append (mixer->tracklist, play_track);
-
- if (cap_track)
- mixer->tracklist = g_list_append (mixer->tracklist, cap_track);
-
- element = snd_mixer_elem_next (element);
- }
-
- for (item = mixer->tracklist; item != NULL; item = item->next) {
- snd_mixer_elem_t *temp;
-
- if (GST_IS_ALSA_MIXER_OPTIONS (item->data))
- temp = GST_ALSA_MIXER_OPTIONS (item->data)->element;
- else
- temp = GST_ALSA_MIXER_TRACK (item->data)->element;
-
- snd_mixer_elem_set_callback (temp, gst_alsa_mixer_elem_handle_callback);
- snd_mixer_elem_set_callback_private (temp, mixer);
- }
-
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-static void
-task_monitor_alsa (gpointer data)
-{
- struct pollfd *pfds;
- int nfds, rnfds;
- unsigned short revents;
- GstAlsaMixer *mixer = (GstAlsaMixer *) data;
- gint ret;
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- nfds = snd_mixer_poll_descriptors_count (mixer->handle);
- if (nfds <= 0) {
- GST_ERROR ("snd_mixer_poll_descriptors_count <= 0: %d", nfds);
- /* FIXME: sleep ? stop monitoring ? */
- GST_ALSA_MIXER_UNLOCK (mixer);
- return;
- }
-
- pfds = g_newa (struct pollfd, nfds + 1);
- rnfds = snd_mixer_poll_descriptors (mixer->handle, pfds, nfds);
- g_assert (rnfds <= nfds);
-
- if (rnfds < 0) {
- GST_ELEMENT_ERROR (mixer, RESOURCE, READ, (NULL), ("alsa error: %s",
- snd_strerror (rnfds)));
- gst_task_pause (mixer->task);
- GST_ALSA_MIXER_UNLOCK (mixer);
- return;
- }
-
- pfds[rnfds].fd = mixer->pfd[0];
- pfds[rnfds].events = POLLIN | POLLPRI | POLLHUP | POLLERR;
- pfds[rnfds].revents = 0;
-
- GST_ALSA_MIXER_UNLOCK (mixer);
-
- GST_LOG ("task loop");
- ret = poll (pfds, rnfds + 1, -1);
-
- if (ret < 0) {
- GST_ELEMENT_ERROR (mixer, RESOURCE, READ, (NULL), GST_ERROR_SYSTEM);
- gst_task_pause (mixer->task);
- return;
- }
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- ret =
- snd_mixer_poll_descriptors_revents (mixer->handle, pfds, nfds, &revents);
- if (ret < 0) {
- GST_ELEMENT_ERROR (mixer, RESOURCE, READ, (NULL), ("alsa error: %s",
- snd_strerror (ret)));
- gst_task_pause (mixer->task);
- } else if (revents & (POLLIN | POLLPRI)) {
- GST_DEBUG ("Handling events");
- snd_mixer_handle_events (mixer->handle);
- } else if (revents & (POLLERR | POLLNVAL | POLLHUP)) {
- GST_ELEMENT_ERROR (mixer, RESOURCE, READ, (NULL), (NULL));
- gst_task_pause (mixer->task);
- }
-
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-/* API */
-
-GstAlsaMixer *
-gst_alsa_mixer_new (const char *device, GstAlsaMixerDirection dir)
-{
- GstAlsaMixer *ret = NULL;
-
- g_return_val_if_fail (device != NULL, NULL);
-
- ret = g_new0 (GstAlsaMixer, 1);
-
- if (pipe (ret->pfd) == -1)
- goto error;
-
- g_rec_mutex_init (&ret->rec_mutex);
- g_rec_mutex_init (&ret->task_mutex);
-
- ret->task = gst_task_new (task_monitor_alsa, ret);
- gst_task_set_lock (ret->task, &ret->task_mutex);
-
- ret->device = g_strdup (device);
- ret->dir = dir;
-
- if (!gst_alsa_mixer_open (ret))
- goto error;
-
- if (gst_task_start (ret->task) == FALSE) {
- GST_WARNING ("Could not start alsamixer task");
- }
-
- return ret;
-
- /* ERRORS */
-error:
- {
- gst_alsa_mixer_free (ret);
- return NULL;
- }
-}
-
-void
-gst_alsa_mixer_free (GstAlsaMixer * mixer)
-{
- g_return_if_fail (mixer != NULL);
-
- if (mixer->task) {
- if (write (mixer->pfd[1], "stop", 5) <= 0) {
- GST_ERROR ("Cannot send " "stop" " to alsamixer task");
- close (mixer->pfd[1]);
- mixer->pfd[1] = -1;
- }
-
- if (gst_task_join (mixer->task) == FALSE) {
- GST_ERROR ("Cannot join alsamixer task");
- }
-
- gst_object_unref (mixer->task);
- mixer->task = NULL;
- }
-
- g_rec_mutex_clear (&mixer->task_mutex);
-
- if (mixer->pfd[0] > 0) {
- close (mixer->pfd[0]);
- mixer->pfd[0] = -1;
- }
-
- if (mixer->pfd[1] > 0) {
- close (mixer->pfd[1]);
- mixer->pfd[1] = -1;
- }
-
- if (mixer->interface) {
- g_object_unref (G_OBJECT (mixer->interface));
- mixer->interface = NULL;
- }
-
- if (mixer->device) {
- g_free (mixer->device);
- mixer->device = NULL;
- }
-
- if (mixer->cardname) {
- g_free (mixer->cardname);
- mixer->cardname = NULL;
- }
-
- if (mixer->tracklist) {
- g_list_foreach (mixer->tracklist, (GFunc) g_object_unref, NULL);
- g_list_free (mixer->tracklist);
- mixer->tracklist = NULL;
- }
-
- if (mixer->handle) {
- snd_mixer_close (mixer->handle);
- mixer->handle = NULL;
- }
- g_rec_mutex_clear (&mixer->rec_mutex);
-
- g_free (mixer);
-}
-
-const GList *
-gst_alsa_mixer_list_tracks (GstAlsaMixer * mixer)
-{
- g_return_val_if_fail (mixer->handle != NULL, NULL);
-
- gst_alsa_mixer_ensure_track_list (mixer);
-
- return (const GList *) mixer->tracklist;
-}
-
-void
-gst_alsa_mixer_get_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
- gint * volumes)
-{
- gint i;
- GstAlsaMixerTrack *alsa_track = GST_ALSA_MIXER_TRACK (track);
-
- g_return_if_fail (mixer->handle != NULL);
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- gst_alsa_mixer_track_update (alsa_track);
-
- if (track->flags & GST_MIXER_TRACK_OUTPUT) { /* return playback volume */
-
- /* Is emulated mute flag activated? */
- if (track->flags & GST_MIXER_TRACK_MUTE &&
- !(alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_PSWITCH)) {
- for (i = 0; i < track->num_channels; i++)
- volumes[i] = alsa_track->volumes[i];
- } else {
- for (i = 0; i < track->num_channels; i++) {
- long tmp = 0;
-
- snd_mixer_selem_get_playback_volume (alsa_track->element, i, &tmp);
- alsa_track->volumes[i] = volumes[i] = (gint) tmp;
- }
- }
-
- } else if (track->flags & GST_MIXER_TRACK_INPUT) { /* return capture volume */
-
- /* Is emulated record flag activated? */
- if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH ||
- track->flags & GST_MIXER_TRACK_RECORD) {
- for (i = 0; i < track->num_channels; i++) {
- long tmp = 0;
-
- snd_mixer_selem_get_capture_volume (alsa_track->element, i, &tmp);
- alsa_track->volumes[i] = volumes[i] = (gint) tmp;
- }
- } else {
- for (i = 0; i < track->num_channels; i++)
- volumes[i] = alsa_track->volumes[i];
- }
- }
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-static gboolean
-check_if_volumes_are_the_same (guint num_channels, gint * volumes)
-{
- guint i;
-
- if (num_channels <= 1)
- return TRUE;
-
- for (i = 1; i < num_channels; i++) {
- if (volumes[i] != volumes[0])
- return FALSE;
- }
-
- return TRUE;
-}
-
-void
-gst_alsa_mixer_set_volume (GstAlsaMixer * mixer, GstMixerTrack * track,
- gint * volumes)
-{
- GstAlsaMixerTrack *alsa_track = GST_ALSA_MIXER_TRACK (track);
- gint i;
-
- g_return_if_fail (mixer->handle != NULL);
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- gst_alsa_mixer_track_update (alsa_track);
-
- if (track->flags & GST_MIXER_TRACK_OUTPUT) {
-
- /* Is emulated mute flag activated? */
- if (track->flags & GST_MIXER_TRACK_MUTE &&
- !(alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_PSWITCH)) {
- for (i = 0; i < track->num_channels; i++)
- alsa_track->volumes[i] = volumes[i];
- } else {
- if (check_if_volumes_are_the_same (track->num_channels, volumes)) {
- snd_mixer_selem_set_playback_volume_all (alsa_track->element,
- volumes[0]);
- for (i = 0; i < track->num_channels; i++)
- alsa_track->volumes[i] = volumes[0];
- } else {
- for (i = 0; i < track->num_channels; i++) {
- alsa_track->volumes[i] = volumes[i];
- snd_mixer_selem_set_playback_volume (alsa_track->element, i,
- volumes[i]);
- }
- }
- }
-
- } else if (track->flags & GST_MIXER_TRACK_INPUT) {
-
- /* Is emulated record flag activated? */
- if (track->flags & GST_MIXER_TRACK_RECORD ||
- alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH) {
- if (check_if_volumes_are_the_same (track->num_channels, volumes)) {
- snd_mixer_selem_set_capture_volume_all (alsa_track->element,
- volumes[0]);
- for (i = 0; i < track->num_channels; i++)
- alsa_track->volumes[i] = volumes[0];
- } else {
- for (i = 0; i < track->num_channels; i++) {
- alsa_track->volumes[i] = volumes[i];
- snd_mixer_selem_set_capture_volume (alsa_track->element, i,
- volumes[i]);
- }
- }
- } else {
- for (i = 0; i < track->num_channels; i++)
- alsa_track->volumes[i] = volumes[i];
- }
- }
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-void
-gst_alsa_mixer_set_mute (GstAlsaMixer * mixer, GstMixerTrack * track,
- gboolean mute)
-{
- GstAlsaMixerTrack *alsa_track = GST_ALSA_MIXER_TRACK (track);
-
- g_return_if_fail (mixer->handle != NULL);
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- gst_alsa_mixer_track_update (alsa_track);
-
- if (! !(mute) == ! !(track->flags & GST_MIXER_TRACK_MUTE)) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return;
- }
- if (mute) {
- track->flags |= GST_MIXER_TRACK_MUTE;
-
- if (alsa_track->shared_mute)
- ((GstMixerTrack *) (alsa_track->shared_mute))->flags |=
- GST_MIXER_TRACK_MUTE;
- } else {
- track->flags &= ~GST_MIXER_TRACK_MUTE;
-
- if (alsa_track->shared_mute)
- ((GstMixerTrack *) (alsa_track->shared_mute))->flags &=
- ~GST_MIXER_TRACK_MUTE;
- }
-
- if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_PSWITCH) {
- snd_mixer_selem_set_playback_switch_all (alsa_track->element, mute ? 0 : 1);
- } else {
- gint i;
- GstAlsaMixerTrack *ctrl_track;
-
- if ((track->flags & GST_MIXER_TRACK_INPUT)
- && alsa_track->shared_mute != NULL)
- ctrl_track = alsa_track->shared_mute;
- else
- ctrl_track = alsa_track;
-
- for (i = 0; i < ((GstMixerTrack *) ctrl_track)->num_channels; i++) {
- long vol =
- mute ? ((GstMixerTrack *) ctrl_track)->min_volume : ctrl_track->
- volumes[i];
- snd_mixer_selem_set_playback_volume (ctrl_track->element, i, vol);
- }
- }
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-void
-gst_alsa_mixer_set_record (GstAlsaMixer * mixer,
- GstMixerTrack * track, gboolean record)
-{
- GstAlsaMixerTrack *alsa_track = GST_ALSA_MIXER_TRACK (track);
-
- g_return_if_fail (mixer->handle != NULL);
-
- GST_ALSA_MIXER_LOCK (mixer);
-
- gst_alsa_mixer_track_update (alsa_track);
-
- if (! !(record) == ! !(track->flags & GST_MIXER_TRACK_RECORD)) {
- GST_ALSA_MIXER_UNLOCK (mixer);
- return;
- }
-
- if (record) {
- track->flags |= GST_MIXER_TRACK_RECORD;
- } else {
- track->flags &= ~GST_MIXER_TRACK_RECORD;
- }
-
- if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH) {
- snd_mixer_selem_set_capture_switch_all (alsa_track->element,
- record ? 1 : 0);
-
- /* update all tracks in same exclusive cswitch group */
- if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH_EXCL) {
- GList *item;
-
- for (item = mixer->tracklist; item != NULL; item = item->next) {
-
- if (GST_IS_ALSA_MIXER_TRACK (item->data)) {
- GstAlsaMixerTrack *item_alsa_track =
- GST_ALSA_MIXER_TRACK (item->data);
-
- if (item_alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH_EXCL &&
- item_alsa_track->capture_group == alsa_track->capture_group) {
- gst_alsa_mixer_track_update (item_alsa_track);
- }
- }
- }
- }
- } else {
- gint i;
-
- for (i = 0; i < track->num_channels; i++) {
- long vol = record ? alsa_track->volumes[i] : track->min_volume;
-
- snd_mixer_selem_set_capture_volume (alsa_track->element, i, vol);
- }
- }
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-void
-gst_alsa_mixer_set_option (GstAlsaMixer * mixer,
- GstMixerOptions * opts, gchar * value)
-{
- gint idx = -1, n = 0;
- GList *item;
- GstAlsaMixerOptions *alsa_opts = GST_ALSA_MIXER_OPTIONS (opts);
-
- g_return_if_fail (mixer->handle != NULL);
-
- for (item = opts->values; item != NULL; item = item->next, n++) {
- if (!strcmp (item->data, value)) {
- idx = n;
- break;
- }
- }
- if (idx == -1)
- return;
-
- GST_ALSA_MIXER_LOCK (mixer);
- snd_mixer_selem_set_enum_item (alsa_opts->element, 0, idx);
- GST_ALSA_MIXER_UNLOCK (mixer);
-}
-
-const gchar *
-gst_alsa_mixer_get_option (GstAlsaMixer * mixer, GstMixerOptions * opts)
-{
- gint ret;
- guint idx;
- GstAlsaMixerOptions *alsa_opts = GST_ALSA_MIXER_OPTIONS (opts);
-
- g_return_val_if_fail (mixer->handle != NULL, NULL);
- GST_ALSA_MIXER_LOCK (mixer);
- ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx);
- GST_ALSA_MIXER_UNLOCK (mixer);
- if (ret == 0)
- return g_list_nth_data (opts->values, idx);
- else
- return snd_strerror (ret); /* feeble attempt at error handling */
-}
-
-GstMixerFlags
-gst_alsa_mixer_get_mixer_flags (GstAlsaMixer * mixer)
-{
- g_return_val_if_fail (mixer != NULL, GST_MIXER_FLAG_NONE);
-
- return GST_MIXER_FLAG_AUTO_NOTIFICATIONS;
-}
-
-static void
-gst_alsa_mixer_update_option (GstAlsaMixer * mixer,
- GstAlsaMixerOptions * alsa_opts)
-{
- gint ret;
- guint idx;
- /* const */ gchar *option;
-
- if (mixer->interface == NULL) {
- GST_WARNING ("Cannot send update notifications, no GstMixer * given");
- return;
- }
- GST_ALSA_MIXER_LOCK (mixer);
- ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx);
- GST_ALSA_MIXER_UNLOCK (mixer);
- if (ret == 0) {
- option = g_list_nth_data (GST_MIXER_OPTIONS (alsa_opts)->values, idx);
- gst_mixer_option_changed (mixer->interface, GST_MIXER_OPTIONS (alsa_opts),
- option);
- }
-}
-
-static void
-gst_alsa_mixer_update_track (GstAlsaMixer * mixer,
- GstAlsaMixerTrack * alsa_track)
-{
- GstMixerTrack *track = (GstMixerTrack *) alsa_track;
- gboolean old_mute;
- gboolean old_record;
- gint i, n_channels;
- gint *old_volumes;
-
- GST_DEBUG ("Updating track %" GST_PTR_FORMAT, alsa_track);
-
- if (mixer->interface == NULL) {
- GST_WARNING ("Cannot send update notifications, no GstMixer * given");
- return;
- }
-
- old_mute = ! !(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE));
- old_record = ! !(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD));
- old_volumes = g_new (gint, track->num_channels);
- n_channels = track->num_channels;
- memcpy (old_volumes, alsa_track->volumes,
- sizeof (gint) * track->num_channels);
-
- gst_alsa_mixer_track_update (alsa_track);
-
- if (old_record !=
- ! !(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD))) {
- gst_mixer_record_toggled (mixer->interface, track,
- ! !GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_RECORD));
- }
- if (old_mute != ! !(GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))) {
- gst_mixer_mute_toggled (mixer->interface, track,
- ! !GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE));
- }
-
- n_channels = MIN (n_channels, track->num_channels);
- for (i = 0; i < n_channels; i++) {
- if (old_volumes[i] != alsa_track->volumes[i]) {
- gst_mixer_volume_changed (mixer->interface, track, alsa_track->volumes);
- break;
- }
- }
- g_free (old_volumes);
-}
-
-/* utility function for gstalsamixerelement to set the interface */
-void
-_gst_alsa_mixer_set_interface (GstAlsaMixer * mixer, GstMixer * interface)
-{
- g_return_if_fail (mixer != NULL && mixer->interface == NULL);
- g_return_if_fail (interface != NULL);
-
- mixer->interface = g_object_ref (G_OBJECT (interface));
-}
diff --git a/ext/alsa/gstalsamixer.h b/ext/alsa/gstalsamixer.h
deleted file mode 100644
index c62c9bf..0000000
--- a/ext/alsa/gstalsamixer.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/* ALSA mixer interface implementation.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef __GST_ALSA_MIXER_H__
-#define __GST_ALSA_MIXER_H__
-
-
-#include "gstalsa.h"
-
-#include <gst/audio/mixer.h>
-#include "gstalsamixeroptions.h"
-#include "gstalsamixertrack.h"
-
-
-G_BEGIN_DECLS
-
-/* This does not get you what you think it does, use obj->mixer */
-/* #define GST_ALSA_MIXER(obj) ((GstAlsaMixer*)(obj)) */
-
-typedef struct _GstAlsaMixer GstAlsaMixer;
-
-typedef enum {
- GST_ALSA_MIXER_CAPTURE = 1<<0,
- GST_ALSA_MIXER_PLAYBACK = 1<<1,
- GST_ALSA_MIXER_ALL = GST_ALSA_MIXER_CAPTURE | GST_ALSA_MIXER_PLAYBACK
-} GstAlsaMixerDirection;
-
-/**
- * GstAlsaMixer:
- *
- * Opaque data structure
- */
-struct _GstAlsaMixer
-{
- GList * tracklist; /* list of available tracks */
-
- snd_mixer_t * handle;
-
- GstTask * task;
- GRecMutex task_mutex;
-
- GRecMutex rec_mutex;
-
- int pfd[2];
-
- GstMixer * interface;
- gchar * device;
- gchar * cardname;
-
- GstAlsaMixerDirection dir;
-};
-
-#define GST_ALSA_MIXER_LOCK(mixer) g_rec_mutex_lock (&mixer->rec_mutex)
-#define GST_ALSA_MIXER_UNLOCK(mixer) g_rec_mutex_unlock (&mixer->rec_mutex)
-
-GstAlsaMixer* gst_alsa_mixer_new (const gchar *device,
- GstAlsaMixerDirection dir);
-void gst_alsa_mixer_free (GstAlsaMixer *mixer);
-
-const GList* gst_alsa_mixer_list_tracks (GstAlsaMixer * mixer);
-void gst_alsa_mixer_set_volume (GstAlsaMixer * mixer,
- GstMixerTrack * track,
- gint * volumes);
-void gst_alsa_mixer_get_volume (GstAlsaMixer * mixer,
- GstMixerTrack * track,
- gint * volumes);
-void gst_alsa_mixer_set_record (GstAlsaMixer * mixer,
- GstMixerTrack * track,
- gboolean record);
-void gst_alsa_mixer_set_mute (GstAlsaMixer * mixer,
- GstMixerTrack * track,
- gboolean mute);
-void gst_alsa_mixer_set_option (GstAlsaMixer * mixer,
- GstMixerOptions * opts,
- gchar * value);
-const gchar* gst_alsa_mixer_get_option (GstAlsaMixer * mixer,
- GstMixerOptions * opts);
-void _gst_alsa_mixer_set_interface (GstAlsaMixer * mixer,
- GstMixer * interface);
-GstMixerFlags gst_alsa_mixer_get_mixer_flags (GstAlsaMixer *mixer);
-
-#define GST_IMPLEMENT_ALSA_MIXER_METHODS(Type, interface_as_function) \
-static const GList* \
-interface_as_function ## _list_tracks (GstMixer * mixer) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_val_if_fail (this != NULL, NULL); \
- g_return_val_if_fail (this->mixer != NULL, NULL); \
- \
- return gst_alsa_mixer_list_tracks (this->mixer); \
-} \
- \
-static void \
-interface_as_function ## _set_volume (GstMixer * mixer, GstMixerTrack * track, \
- gint * volumes) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_if_fail (this != NULL); \
- g_return_if_fail (this->mixer != NULL); \
- \
- gst_alsa_mixer_set_volume (this->mixer, track, volumes); \
-} \
- \
-static void \
-interface_as_function ## _get_volume (GstMixer * mixer, GstMixerTrack * track, \
- gint * volumes) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_if_fail (this != NULL); \
- g_return_if_fail (this->mixer != NULL); \
- \
- gst_alsa_mixer_get_volume (this->mixer, track, volumes); \
-} \
- \
-static void \
-interface_as_function ## _set_record (GstMixer * mixer, GstMixerTrack * track, \
- gboolean record) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_if_fail (this != NULL); \
- g_return_if_fail (this->mixer != NULL); \
- \
- gst_alsa_mixer_set_record (this->mixer, track, record); \
-} \
- \
-static void \
-interface_as_function ## _set_mute (GstMixer * mixer, GstMixerTrack * track, \
- gboolean mute) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_if_fail (this != NULL); \
- g_return_if_fail (this->mixer != NULL); \
- \
- gst_alsa_mixer_set_mute (this->mixer, track, mute); \
-} \
- \
-static void \
-interface_as_function ## _set_option (GstMixer * mixer, GstMixerOptions * opts, \
- gchar * value) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_if_fail (this != NULL); \
- g_return_if_fail (this->mixer != NULL); \
- \
- gst_alsa_mixer_set_option (this->mixer, opts, value); \
-} \
- \
-static const gchar* \
-interface_as_function ## _get_option (GstMixer * mixer, GstMixerOptions * opts) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_val_if_fail (this != NULL, NULL); \
- g_return_val_if_fail (this->mixer != NULL, NULL); \
- \
- return gst_alsa_mixer_get_option (this->mixer, opts); \
-} \
- \
-static GstMixerFlags \
-interface_as_function ## _get_mixer_flags (GstMixer * mixer) \
-{ \
- Type *this = (Type*) mixer; \
- \
- g_return_val_if_fail (this != NULL, GST_MIXER_FLAG_NONE); \
- g_return_val_if_fail (this->mixer != NULL, GST_MIXER_FLAG_NONE); \
- \
- return gst_alsa_mixer_get_mixer_flags (this->mixer); \
-} \
- \
-static GstMixerType \
-interface_as_function ## _get_mixer_type (GstMixer * mixer) \
-{ \
- return GST_MIXER_HARDWARE; \
-} \
- \
-static void \
-interface_as_function ## _interface_init (GstMixerInterface * iface) \
-{ \
- /* set up the interface hooks */ \
- iface->list_tracks = interface_as_function ## _list_tracks; \
- iface->set_volume = interface_as_function ## _set_volume; \
- iface->get_volume = interface_as_function ## _get_volume; \
- iface->set_mute = interface_as_function ## _set_mute; \
- iface->set_record = interface_as_function ## _set_record; \
- iface->set_option = interface_as_function ## _set_option; \
- iface->get_option = interface_as_function ## _get_option; \
- iface->get_mixer_flags = interface_as_function ## _get_mixer_flags; \
- iface->get_mixer_type = interface_as_function ## _get_mixer_type; \
-}
-
-
-G_END_DECLS
-
-
-#endif /* __GST_ALSA_MIXER_H__ */
diff --git a/ext/alsa/gstalsamixerelement.c b/ext/alsa/gstalsamixerelement.c
deleted file mode 100644
index 906448f..0000000
--- a/ext/alsa/gstalsamixerelement.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/* ALSA mixer implementation.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 "gstalsamixerelement.h"
-#include "gstalsadeviceprobe.h"
-
-#define DEFAULT_PROP_DEVICE "default"
-#define DEFAULT_PROP_DEVICE_NAME ""
-
-enum
-{
- PROP_0,
- PROP_DEVICE,
- PROP_DEVICE_NAME
-};
-
-static void gst_alsa_mixer_element_init_interfaces (GType type);
-#define gst_alsa_mixer_element_parent_class parent_class
-G_DEFINE_TYPE_WITH_CODE (GstAlsaMixerElement, gst_alsa_mixer_element,
- GST_TYPE_ELEMENT,
- gst_alsa_mixer_element_init_interfaces (g_define_type_id));
-
-/* massive macro that takes care of all the GstMixer stuff */
-GST_IMPLEMENT_ALSA_MIXER_METHODS (GstAlsaMixerElement, gst_alsa_mixer_element);
-
-static void gst_alsa_mixer_element_get_property (GObject * object,
- guint prop_id, GValue * value, GParamSpec * pspec);
-static void gst_alsa_mixer_element_set_property (GObject * object,
- guint prop_id, const GValue * value, GParamSpec * pspec);
-static void gst_alsa_mixer_element_finalize (GObject * object);
-
-static GstStateChangeReturn gst_alsa_mixer_element_change_state (GstElement
- * element, GstStateChange transition);
-
-static void
-gst_alsa_mixer_element_init_interfaces (GType type)
-{
- static const GInterfaceInfo mixer_iface_info = {
- (GInterfaceInitFunc) gst_alsa_mixer_element_interface_init,
- NULL,
- NULL,
- };
-
- g_type_add_interface_static (type, GST_TYPE_MIXER, &mixer_iface_info);
-
-#if 0
- gst_alsa_type_add_device_property_probe_interface (type);
-#endif
-}
-
-static void
-gst_alsa_mixer_element_class_init (GstAlsaMixerElementClass * klass)
-{
- GstElementClass *element_class;
- GObjectClass *gobject_class;
-
- element_class = (GstElementClass *) klass;
- gobject_class = (GObjectClass *) klass;
-
- gobject_class->finalize = gst_alsa_mixer_element_finalize;
- gobject_class->get_property = gst_alsa_mixer_element_get_property;
- gobject_class->set_property = gst_alsa_mixer_element_set_property;
-
- g_object_class_install_property (gobject_class, PROP_DEVICE,
- g_param_spec_string ("device", "Device",
- "ALSA device, as defined in an asound configuration file",
- DEFAULT_PROP_DEVICE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (gobject_class, PROP_DEVICE_NAME,
- g_param_spec_string ("device-name", "Device name",
- "Human-readable name of the sound device",
- DEFAULT_PROP_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- gst_element_class_set_static_metadata (element_class,
- "Alsa mixer", "Generic/Audio",
- "Control sound input and output levels with ALSA",
- "Leif Johnson <leif@ambient.2y.net>");
-
- element_class->change_state =
- GST_DEBUG_FUNCPTR (gst_alsa_mixer_element_change_state);
-}
-
-static void
-gst_alsa_mixer_element_finalize (GObject * obj)
-{
- GstAlsaMixerElement *this = GST_ALSA_MIXER_ELEMENT (obj);
-
- g_free (this->device);
-
- G_OBJECT_CLASS (parent_class)->finalize (obj);
-}
-
-static void
-gst_alsa_mixer_element_init (GstAlsaMixerElement * this)
-{
- this->mixer = NULL;
- this->device = g_strdup (DEFAULT_PROP_DEVICE);
-}
-
-static void
-gst_alsa_mixer_element_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec)
-{
- GstAlsaMixerElement *this = GST_ALSA_MIXER_ELEMENT (object);
-
- switch (prop_id) {
- case PROP_DEVICE:{
- GST_OBJECT_LOCK (this);
- g_free (this->device);
- this->device = g_value_dup_string (value);
- /* make sure we never set NULL, this is nice when we want to open the
- * device. */
- if (this->device == NULL)
- this->device = g_strdup (DEFAULT_PROP_DEVICE);
- GST_OBJECT_UNLOCK (this);
- break;
- }
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gst_alsa_mixer_element_get_property (GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec)
-{
- GstAlsaMixerElement *this = GST_ALSA_MIXER_ELEMENT (object);
-
- switch (prop_id) {
- case PROP_DEVICE:{
- GST_OBJECT_LOCK (this);
- g_value_set_string (value, this->device);
- GST_OBJECT_UNLOCK (this);
- break;
- }
- case PROP_DEVICE_NAME:{
- GST_OBJECT_LOCK (this);
- if (this->mixer) {
- g_value_set_string (value, this->mixer->cardname);
- } else {
- g_value_set_string (value, NULL);
- }
- GST_OBJECT_UNLOCK (this);
- break;
- }
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static GstStateChangeReturn
-gst_alsa_mixer_element_change_state (GstElement * element,
- GstStateChange transition)
-{
- GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
- GstAlsaMixerElement *this = GST_ALSA_MIXER_ELEMENT (element);
-
- switch (transition) {
- case GST_STATE_CHANGE_NULL_TO_READY:
- if (!this->mixer) {
- this->mixer = gst_alsa_mixer_new (this->device, GST_ALSA_MIXER_ALL);
- if (!this->mixer)
- goto open_failed;
- _gst_alsa_mixer_set_interface (this->mixer, GST_MIXER (element));
- }
- break;
- default:
- break;
- }
-
- ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
- if (ret == GST_STATE_CHANGE_FAILURE)
- return ret;
-
- switch (transition) {
- case GST_STATE_CHANGE_READY_TO_NULL:
- if (this->mixer) {
- gst_alsa_mixer_free (this->mixer);
- this->mixer = NULL;
- }
- break;
- default:
- break;
- }
-
- return ret;
-
- /* ERRORS */
-open_failed:
- {
- GST_ELEMENT_ERROR (element, RESOURCE, OPEN_READ_WRITE, (NULL),
- ("Failed to open alsa mixer device '%s'", this->device));
- return GST_STATE_CHANGE_FAILURE;
- }
-}
diff --git a/ext/alsa/gstalsamixerelement.h b/ext/alsa/gstalsamixerelement.h
deleted file mode 100644
index 16cb245..0000000
--- a/ext/alsa/gstalsamixerelement.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ALSA mixer interface implementation.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef __GST_ALSA_MIXER_ELEMENT_H__
-#define __GST_ALSA_MIXER_ELEMENT_H__
-
-
-#include "gstalsa.h"
-#include "gstalsamixer.h"
-
-G_BEGIN_DECLS
-
-#define GST_ALSA_MIXER_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ALSA_MIXER_ELEMENT,GstAlsaMixerElement))
-#define GST_ALSA_MIXER_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ALSA_MIXER_ELEMENT,GstAlsaMixerElementClass))
-#define GST_IS_ALSA_MIXER_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ALSA_MIXER_ELEMENT))
-#define GST_IS_ALSA_MIXER_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ALSA_MIXER_ELEMENT))
-#define GST_TYPE_ALSA_MIXER_ELEMENT (gst_alsa_mixer_element_get_type())
-
-typedef struct _GstAlsaMixerElement GstAlsaMixerElement;
-typedef struct _GstAlsaMixerElementClass GstAlsaMixerElementClass;
-
-/**
- * GstAlsaMixerElement
- *
- * Opaque datastructure.
- */
-struct _GstAlsaMixerElement {
- GstElement parent;
-
- GstAlsaMixer *mixer;
- gchar *device;
-};
-
-struct _GstAlsaMixerElementClass {
- GstElementClass parent;
-};
-
-
-GType gst_alsa_mixer_element_get_type (void);
-
-
-G_END_DECLS
-
-
-#endif /* __GST_ALSA_MIXER_ELEMENT_H__ */
diff --git a/ext/alsa/gstalsamixeroptions.c b/ext/alsa/gstalsamixeroptions.c
deleted file mode 100644
index 20bb89d..0000000
--- a/ext/alsa/gstalsamixeroptions.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* ALSA mixer object implementation.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 "gstalsamixeroptions.h"
-
-static void gst_alsa_mixer_options_init (GstAlsaMixerOptions * alsa_opts);
-static void gst_alsa_mixer_options_class_init (gpointer g_class,
- gpointer class_data);
-
-static GstMixerOptionsClass *parent_class = NULL;
-
-GType
-gst_alsa_mixer_options_get_type (void)
-{
- static GType opts_type = 0;
-
- if (!opts_type) {
- static const GTypeInfo opts_info = {
- sizeof (GstAlsaMixerOptionsClass),
- NULL,
- NULL,
- gst_alsa_mixer_options_class_init,
- NULL,
- NULL,
- sizeof (GstAlsaMixerOptions),
- 0,
- (GInstanceInitFunc) gst_alsa_mixer_options_init,
- };
-
- opts_type =
- g_type_register_static (GST_TYPE_MIXER_OPTIONS, "GstAlsaMixerOptions",
- &opts_info, 0);
- }
-
- return opts_type;
-}
-
-static void
-gst_alsa_mixer_options_class_init (gpointer g_class, gpointer class_data)
-{
- parent_class = g_type_class_peek_parent (g_class);
-}
-
-static void
-gst_alsa_mixer_options_init (GstAlsaMixerOptions * alsa_opts)
-{
-}
-
-GstMixerOptions *
-gst_alsa_mixer_options_new (snd_mixer_elem_t * element, gint track_num)
-{
- GstMixerOptions *opts;
- GstAlsaMixerOptions *alsa_opts;
- GstMixerTrack *track;
- const gchar *label;
- guint index;
- gint num, i;
- gchar str[256];
-
- label = snd_mixer_selem_get_name (element);
- index = snd_mixer_selem_get_index (element);
-
- GST_LOG ("[%s,%u]", label, index);
-
- opts = g_object_new (GST_ALSA_MIXER_OPTIONS_TYPE,
- "untranslated-label", label, "index", index, NULL);
- alsa_opts = (GstAlsaMixerOptions *) opts;
- track = (GstMixerTrack *) opts;
-
- /* set basic information */
- track->label = g_strdup (label); /* FIXME: translate this? */
- track->num_channels = 0;
- track->flags = 0;
- alsa_opts->element = element;
- alsa_opts->track_num = track_num;
-
- /* get enumerations for switch/options object */
- num = snd_mixer_selem_get_enum_items (element);
- for (i = 0; i < num; i++) {
- if (snd_mixer_selem_get_enum_item_name (element, i, 255, str) < 0) {
- g_object_unref (G_OBJECT (alsa_opts));
- return NULL;
- }
-
- opts->values = g_list_append (opts->values, g_strdup (str));
- }
-
- return opts;
-}
diff --git a/ext/alsa/gstalsamixeroptions.h b/ext/alsa/gstalsamixeroptions.h
deleted file mode 100644
index 7336657..0000000
--- a/ext/alsa/gstalsamixeroptions.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* ALSA mixer options object.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef __GST_ALSA_MIXER_OPTIONS_H__
-#define __GST_ALSA_MIXER_OPTIONS_H__
-
-
-#include "gstalsa.h"
-#include <gst/audio/mixeroptions.h>
-
-
-G_BEGIN_DECLS
-
-
-#define GST_ALSA_MIXER_OPTIONS_TYPE (gst_alsa_mixer_options_get_type ())
-#define GST_ALSA_MIXER_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ALSA_MIXER_OPTIONS,GstAlsaMixerOptions))
-#define GST_ALSA_MIXER_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ALSA_MIXER_OPTIONS,GstAlsaMixerOptionsClass))
-#define GST_IS_ALSA_MIXER_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ALSA_MIXER_OPTIONS))
-#define GST_IS_ALSA_MIXER_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ALSA_MIXER_OPTIONS))
-#define GST_TYPE_ALSA_MIXER_OPTIONS (gst_alsa_mixer_options_get_type())
-
-
-typedef struct _GstAlsaMixerOptions GstAlsaMixerOptions;
-typedef struct _GstAlsaMixerOptionsClass GstAlsaMixerOptionsClass;
-
-
-struct _GstAlsaMixerOptions {
- GstMixerOptions parent;
- snd_mixer_elem_t *element; /* the ALSA mixer element for this track */
- gint track_num;
-};
-
-struct _GstAlsaMixerOptionsClass {
- GstMixerOptionsClass parent;
-};
-
-
-GType gst_alsa_mixer_options_get_type (void);
-GstMixerOptions *gst_alsa_mixer_options_new (snd_mixer_elem_t * element,
- gint track_num);
-
-
-G_END_DECLS
-
-
-#endif /* __GST_ALSA_MIXER_OPTIONS_H__ */
diff --git a/ext/alsa/gstalsamixertrack.c b/ext/alsa/gstalsamixertrack.c
deleted file mode 100644
index dea8ef0..0000000
--- a/ext/alsa/gstalsamixertrack.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/* ALSA mixer track implementation.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 <gst/gst-i18n-plugin.h>
-
-#include "gstalsamixertrack.h"
-
-static void gst_alsa_mixer_track_init (GstAlsaMixerTrack * alsa_track);
-static void gst_alsa_mixer_track_class_init (gpointer g_class,
- gpointer class_data);
-
-static GstMixerTrackClass *parent_class = NULL;
-
-GType
-gst_alsa_mixer_track_get_type (void)
-{
- static GType track_type = 0;
-
- if (!track_type) {
- static const GTypeInfo track_info = {
- sizeof (GstAlsaMixerTrackClass),
- NULL,
- NULL,
- gst_alsa_mixer_track_class_init,
- NULL,
- NULL,
- sizeof (GstAlsaMixerTrack),
- 0,
- (GInstanceInitFunc) gst_alsa_mixer_track_init,
- NULL
- };
-
- track_type =
- g_type_register_static (GST_TYPE_MIXER_TRACK, "GstAlsaMixerTrack",
- &track_info, 0);
- }
-
- return track_type;
-}
-
-static void
-gst_alsa_mixer_track_class_init (gpointer g_class, gpointer class_data)
-{
- parent_class = g_type_class_peek_parent (g_class);
-}
-
-static void
-gst_alsa_mixer_track_init (GstAlsaMixerTrack * alsa_track)
-{
-}
-
-static void
-gst_alsa_mixer_track_update_alsa_capabilities (GstAlsaMixerTrack * alsa_track)
-{
- alsa_track->alsa_flags = 0;
- alsa_track->capture_group = -1;
-
- /* common flags */
- if (snd_mixer_selem_has_common_volume (alsa_track->element))
- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_VOLUME;
-
- if (snd_mixer_selem_has_common_switch (alsa_track->element))
- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_SWITCH;
-
- /* Since we create two separate mixer track objects for alsa elements that
- * support both playback and capture, we're going to 'hide' the alsa flags
- * that don't pertain to this mixer track from alsa_flags, otherwise
- * gst_alsa_mixer_track_update() is going to do things we don't want */
-
- /* playback flags */
- if ((GST_MIXER_TRACK (alsa_track)->flags & GST_MIXER_TRACK_OUTPUT)) {
- if (snd_mixer_selem_has_playback_volume (alsa_track->element))
- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PVOLUME;
-
- if (snd_mixer_selem_has_playback_switch (alsa_track->element))
- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PSWITCH;
- }
-
- /* capture flags */
- if ((GST_MIXER_TRACK (alsa_track)->flags & GST_MIXER_TRACK_INPUT)) {
- if (snd_mixer_selem_has_capture_volume (alsa_track->element))
- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CVOLUME;
-
- if (snd_mixer_selem_has_capture_switch (alsa_track->element)) {
- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH;
-
- if (snd_mixer_selem_has_capture_switch_exclusive (alsa_track->element)) {
- alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH_EXCL;
- alsa_track->capture_group =
- snd_mixer_selem_get_capture_group (alsa_track->element);
- }
- }
- }
-
- GST_LOG ("[%s] alsa_flags=0x%08x, capture_group=%d",
- snd_mixer_selem_get_name (alsa_track->element),
- alsa_track->alsa_flags, alsa_track->capture_group);
-}
-
-inline static gboolean
-alsa_track_has_cap (GstAlsaMixerTrack * alsa_track, guint32 flag)
-{
- return ((alsa_track->alsa_flags & flag) != 0);
-}
-
-GstMixerTrack *
-gst_alsa_mixer_track_new (snd_mixer_elem_t * element,
- gint num, gint track_num, gint flags, gboolean sw,
- GstAlsaMixerTrack * shared_mute_track, gboolean append_capture)
-{
- GstAlsaMixerTrack *alsa_track;
- GstMixerTrack *track;
- const gchar *name;
- guint index;
- const gchar *label;
- gint i;
- long min = 0, max = 0;
- const struct
- {
- const gchar orig[12];
- const gchar trans[12];
- } alsa_track_labels[] = {
- {
- "Master", N_("Master")}, {
- "Bass", N_("Bass")}, {
- "Treble", N_("Treble")}, {
- "PCM", N_("PCM")}, {
- "Synth", N_("Synth")}, {
- "Line", N_("Line-in")}, {
- "CD", N_("CD")}, {
- "Mic", N_("Microphone")}, {
- "PC Speaker", N_("PC Speaker")}, {
- "Playback", N_("Playback")}, {
- "Capture", N_("Capture")}
- };
-
- name = snd_mixer_selem_get_name (element);
- index = snd_mixer_selem_get_index (element);
-
- GST_LOG
- ("[%s,%u] num=%d,track_num=%d,flags=0x%08x,sw=%s,shared_mute_track=%p",
- name, index, num, track_num, flags, (sw) ? "true" : "false",
- shared_mute_track);
-
- track = (GstMixerTrack *) g_object_new (GST_ALSA_MIXER_TRACK_TYPE,
- "untranslated-label", name, "index", index, NULL);
-
- alsa_track = (GstAlsaMixerTrack *) track;
-
- GST_LOG ("[%s] created new mixer track %p", name, track);
-
- /* This reflects the assumptions used for GstAlsaMixerTrack */
- if (!(! !(flags & GST_MIXER_TRACK_OUTPUT) ^ ! !(flags &
- GST_MIXER_TRACK_INPUT))) {
- GST_ERROR ("Mixer track must be either output or input!");
- g_return_val_if_reached (NULL);
- }
-
- track->flags = flags;
- alsa_track->element = element;
- alsa_track->shared_mute = shared_mute_track;
- alsa_track->track_num = track_num;
- alsa_track->alsa_channels = 0;
-
- gst_alsa_mixer_track_update_alsa_capabilities (alsa_track);
-
- if (flags & GST_MIXER_TRACK_OUTPUT) {
- while (alsa_track->alsa_channels < GST_ALSA_MAX_CHANNELS &&
- snd_mixer_selem_has_playback_channel (element,
- alsa_track->alsa_channels)) {
- alsa_track->alsa_channels++;
- }
- GST_LOG ("[%s] %d output channels", name, alsa_track->alsa_channels);
- } else if (flags & GST_MIXER_TRACK_INPUT) {
- while (alsa_track->alsa_channels < GST_ALSA_MAX_CHANNELS &&
- snd_mixer_selem_has_capture_channel (element,
- alsa_track->alsa_channels)) {
- alsa_track->alsa_channels++;
- }
- GST_LOG ("[%s] %d input channels", name, alsa_track->alsa_channels);
- } else {
- g_assert_not_reached ();
- }
-
- if (sw)
- track->num_channels = 0;
- else
- track->num_channels = alsa_track->alsa_channels;
-
- /* translate the name if we can */
- label = name;
- for (i = 0; i < G_N_ELEMENTS (alsa_track_labels); ++i) {
- if (g_utf8_collate (label, alsa_track_labels[i].orig) == 0) {
- label = _(alsa_track_labels[i].trans);
- break;
- }
- }
-
- if (num == 0) {
- track->label = g_strdup_printf ("%s%s%s", label,
- append_capture ? " " : "", append_capture ? _("Capture") : "");
- } else {
- track->label = g_strdup_printf ("%s%s%s %d", label,
- append_capture ? " " : "", append_capture ? _("Capture") : "", num);
- }
-
- /* set volume information */
- if (track->num_channels > 0) {
- if ((flags & GST_MIXER_TRACK_OUTPUT))
- snd_mixer_selem_get_playback_volume_range (element, &min, &max);
- else
- snd_mixer_selem_get_capture_volume_range (element, &min, &max);
- }
- track->min_volume = (gint) min;
- track->max_volume = (gint) max;
-
- for (i = 0; i < track->num_channels; i++) {
- long tmp = 0;
-
- if (flags & GST_MIXER_TRACK_OUTPUT)
- snd_mixer_selem_get_playback_volume (element, i, &tmp);
- else
- snd_mixer_selem_get_capture_volume (element, i, &tmp);
-
- alsa_track->volumes[i] = (gint) tmp;
- }
-
- gst_alsa_mixer_track_update (alsa_track);
-
- return track;
-}
-
-void
-gst_alsa_mixer_track_update (GstAlsaMixerTrack * alsa_track)
-{
- GstMixerTrack *track = (GstMixerTrack *) alsa_track;
- gint i;
- gint audible = !(track->flags & GST_MIXER_TRACK_MUTE);
-
- if (alsa_track_has_cap (alsa_track, GST_ALSA_MIXER_TRACK_PVOLUME)) {
- /* update playback volume */
- for (i = 0; i < track->num_channels; i++) {
- long vol = 0;
-
- snd_mixer_selem_get_playback_volume (alsa_track->element, i, &vol);
- alsa_track->volumes[i] = (gint) vol;
- }
- }
-
- if (alsa_track_has_cap (alsa_track, GST_ALSA_MIXER_TRACK_CVOLUME)) {
- /* update capture volume */
- for (i = 0; i < track->num_channels; i++) {
- long vol = 0;
-
- snd_mixer_selem_get_capture_volume (alsa_track->element, i, &vol);
- alsa_track->volumes[i] = (gint) vol;
- }
- }
-
- /* Any updates in flags? */
- if (alsa_track_has_cap (alsa_track, GST_ALSA_MIXER_TRACK_PSWITCH)) {
- int v = 0;
-
- audible = 0;
- for (i = 0; i < alsa_track->alsa_channels; ++i) {
- snd_mixer_selem_get_playback_switch (alsa_track->element, i, &v);
- audible += v;
- }
-
- } else if (alsa_track_has_cap (alsa_track, GST_ALSA_MIXER_TRACK_PVOLUME) &&
- track->flags & GST_MIXER_TRACK_MUTE) {
- /* check if user has raised volume with a parallel running application */
-
- for (i = 0; i < track->num_channels; i++) {
- long vol = 0;
-
- snd_mixer_selem_get_playback_volume (alsa_track->element, i, &vol);
-
- if (vol > track->min_volume) {
- audible = 1;
- break;
- }
- }
- }
-
- if (! !(audible) != !(track->flags & GST_MIXER_TRACK_MUTE)) {
- if (audible) {
- track->flags &= ~GST_MIXER_TRACK_MUTE;
-
- if (alsa_track->shared_mute)
- ((GstMixerTrack *) (alsa_track->shared_mute))->flags &=
- ~GST_MIXER_TRACK_MUTE;
- } else {
- track->flags |= GST_MIXER_TRACK_MUTE;
-
- if (alsa_track->shared_mute)
- ((GstMixerTrack *) (alsa_track->shared_mute))->flags |=
- GST_MIXER_TRACK_MUTE;
- }
- }
-
- if (track->flags & GST_MIXER_TRACK_INPUT) {
- gint recording = track->flags & GST_MIXER_TRACK_RECORD;
-
- if (alsa_track_has_cap (alsa_track, GST_ALSA_MIXER_TRACK_CSWITCH)) {
- int v = 0;
-
- recording = 0;
- for (i = 0; i < alsa_track->alsa_channels; ++i) {
- snd_mixer_selem_get_capture_switch (alsa_track->element, i, &v);
- recording += v;
- }
-
- } else if (alsa_track_has_cap (alsa_track, GST_ALSA_MIXER_TRACK_CVOLUME) &&
- !(track->flags & GST_MIXER_TRACK_RECORD)) {
- /* check if user has raised volume with a parallel running application */
-
- for (i = 0; i < track->num_channels; i++) {
- long vol = 0;
-
- snd_mixer_selem_get_capture_volume (alsa_track->element, i, &vol);
-
- if (vol > track->min_volume) {
- recording = 1;
- break;
- }
- }
- }
-
- if (recording)
- track->flags |= GST_MIXER_TRACK_RECORD;
- else
- track->flags &= ~GST_MIXER_TRACK_RECORD;
- }
-
-}
diff --git a/ext/alsa/gstalsamixertrack.h b/ext/alsa/gstalsamixertrack.h
deleted file mode 100644
index b5fbef2..0000000
--- a/ext/alsa/gstalsamixertrack.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ALSA mixer track object.
- * Copyright (C) 2003 Leif Johnson <leif@ambient.2y.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#ifndef __GST_ALSA_MIXER_TRACK_H__
-#define __GST_ALSA_MIXER_TRACK_H__
-
-
-#include "gstalsa.h"
-#include <gst/audio/mixertrack.h>
-
-
-G_BEGIN_DECLS
-
-
-#define GST_ALSA_MIXER_TRACK_TYPE (gst_alsa_mixer_track_get_type ())
-#define GST_ALSA_MIXER_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ALSA_MIXER_TRACK,GstAlsaMixerTrack))
-#define GST_ALSA_MIXER_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ALSA_MIXER_TRACK,GstAlsaMixerTrackClass))
-#define GST_IS_ALSA_MIXER_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ALSA_MIXER_TRACK))
-#define GST_IS_ALSA_MIXER_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ALSA_MIXER_TRACK))
-#define GST_TYPE_ALSA_MIXER_TRACK (gst_alsa_mixer_track_get_type())
-
-typedef struct _GstAlsaMixerTrack GstAlsaMixerTrack;
-typedef struct _GstAlsaMixerTrackClass GstAlsaMixerTrackClass;
-
-#define GST_ALSA_MIXER_TRACK_VOLUME (1<<0) /* common volume */
-#define GST_ALSA_MIXER_TRACK_PVOLUME (1<<1)
-#define GST_ALSA_MIXER_TRACK_CVOLUME (1<<2)
-#define GST_ALSA_MIXER_TRACK_SWITCH (1<<3) /* common switch */
-#define GST_ALSA_MIXER_TRACK_PSWITCH (1<<4)
-#define GST_ALSA_MIXER_TRACK_CSWITCH (1<<5)
-#define GST_ALSA_MIXER_TRACK_CSWITCH_EXCL (1<<6)
-
-#define GST_ALSA_MAX_CHANNELS (SND_MIXER_SCHN_LAST+1)
-
-struct _GstAlsaMixerTrack {
- GstMixerTrack parent;
- snd_mixer_elem_t *element; /* the ALSA mixer element for this track */
- GstAlsaMixerTrack *shared_mute;
- gint track_num;
- guint32 alsa_flags; /* alsa track capabilities */
- gint alsa_channels;
- gint capture_group;
- gint volumes[GST_ALSA_MAX_CHANNELS];
-};
-
-struct _GstAlsaMixerTrackClass {
- GstMixerTrackClass parent;
-};
-
-GType gst_alsa_mixer_track_get_type (void);
-GstMixerTrack * gst_alsa_mixer_track_new (snd_mixer_elem_t * element,
- gint num,
- gint track_num,
- gint flags,
- gboolean sw, /* is simple switch? */
- GstAlsaMixerTrack * shared_mute_track,
- gboolean label_append_capture);
-void gst_alsa_mixer_track_update (GstAlsaMixerTrack * alsa_track);
-
-G_END_DECLS
-
-
-#endif /* __GST_ALSA_MIXER_TRACK_H__ */
diff --git a/ext/alsa/gstalsaplugin.c b/ext/alsa/gstalsaplugin.c
index 62a4a92..e703a85 100644
--- a/ext/alsa/gstalsaplugin.c
+++ b/ext/alsa/gstalsaplugin.c
@@ -25,7 +25,6 @@
#include "gstalsasink.h"
#include "gstalsasrc.h"
-#include "gstalsamixerelement.h"
#include <gst/gst-i18n-plugin.h>
@@ -58,9 +57,6 @@ plugin_init (GstPlugin * plugin)
{
int err;
- if (!gst_element_register (plugin, "alsamixer", GST_RANK_NONE,
- GST_TYPE_ALSA_MIXER_ELEMENT))
- return FALSE;
if (!gst_element_register (plugin, "alsasrc", GST_RANK_PRIMARY,
GST_TYPE_ALSA_SRC))
return FALSE;
diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c
index 08d28be..97fd6b5 100644
--- a/ext/alsa/gstalsasink.c
+++ b/ext/alsa/gstalsasink.c
@@ -22,7 +22,7 @@
/**
* SECTION:element-alsasink
- * @see_also: alsasrc, alsamixer
+ * @see_also: alsasrc
*
* This element renders raw audio samples using the ALSA api.
*
@@ -51,6 +51,7 @@
#include "gstalsasink.h"
#include "gstalsadeviceprobe.h"
+#include <gst/audio/gstaudioiec61937.h>
#include <gst/gst-i18n-plugin.h>
#include "gst/glib-compat-private.h"
@@ -81,6 +82,7 @@ static void gst_alsasink_get_property (GObject * object,
guint prop_id, GValue * value, GParamSpec * pspec);
static GstCaps *gst_alsasink_getcaps (GstBaseSink * bsink, GstCaps * filter);
+static gboolean gst_alsasink_query (GstBaseSink * bsink, GstQuery * query);
static gboolean gst_alsasink_open (GstAudioSink * asink);
static gboolean gst_alsasink_prepare (GstAudioSink * asink,
@@ -91,6 +93,9 @@ static gint gst_alsasink_write (GstAudioSink * asink, gpointer data,
guint length);
static guint gst_alsasink_delay (GstAudioSink * asink);
static void gst_alsasink_reset (GstAudioSink * asink);
+static gboolean gst_alsasink_acceptcaps (GstAlsaSink * alsa, GstCaps * caps);
+static GstBuffer *gst_alsasink_payload (GstAudioBaseSink * sink,
+ GstBuffer * buf);
static gint output_ref; /* 0 */
static snd_output_t *output; /* NULL */
@@ -104,7 +109,7 @@ static GstStaticPadTemplate alsasink_sink_factory =
"format = (string) " GST_AUDIO_FORMATS_ALL ", "
"layout = (string) interleaved, "
"rate = (int) [ 1, MAX ], " "channels = (int) [ 1, MAX ]; "
- "audio/x-iec958")
+ PASSTHROUGH_CAPS)
);
static void
@@ -140,11 +145,13 @@ gst_alsasink_class_init (GstAlsaSinkClass * klass)
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
GstBaseSinkClass *gstbasesink_class;
+ GstAudioBaseSinkClass *gstbaseaudiosink_class;
GstAudioSinkClass *gstaudiosink_class;
gobject_class = (GObjectClass *) klass;
gstelement_class = (GstElementClass *) klass;
gstbasesink_class = (GstBaseSinkClass *) klass;
+ gstbaseaudiosink_class = (GstAudioBaseSinkClass *) klass;
gstaudiosink_class = (GstAudioSinkClass *) klass;
parent_class = g_type_class_peek_parent (klass);
@@ -161,6 +168,9 @@ gst_alsasink_class_init (GstAlsaSinkClass * klass)
gst_static_pad_template_get (&alsasink_sink_factory));
gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_alsasink_getcaps);
+ gstbasesink_class->query = GST_DEBUG_FUNCPTR (gst_alsasink_query);
+
+ gstbaseaudiosink_class->payload = GST_DEBUG_FUNCPTR (gst_alsasink_payload);
gstaudiosink_class->open = GST_DEBUG_FUNCPTR (gst_alsasink_open);
gstaudiosink_class->prepare = GST_DEBUG_FUNCPTR (gst_alsasink_prepare);
@@ -312,6 +322,83 @@ gst_alsasink_getcaps (GstBaseSink * bsink, GstCaps * filter)
}
}
+static gboolean
+gst_alsasink_acceptcaps (GstAlsaSink * alsa, GstCaps * caps)
+{
+ GstPad *pad = GST_BASE_SINK (alsa)->sinkpad;
+ GstCaps *pad_caps;
+ GstStructure *st;
+ gboolean ret = FALSE;
+ GstAudioRingBufferSpec spec = { 0 };
+
+ pad_caps = gst_pad_query_caps (pad, caps);
+ if (!pad_caps || gst_caps_is_empty (pad_caps)) {
+ if (pad_caps)
+ gst_caps_unref (pad_caps);
+ ret = FALSE;
+ goto done;
+ }
+ gst_caps_unref (pad_caps);
+
+ /* If we've not got fixed caps, creating a stream might fail, so let's just
+ * return from here with default acceptcaps behaviour */
+ if (!gst_caps_is_fixed (caps))
+ goto done;
+
+ /* parse helper expects this set, so avoid nasty warning
+ * will be set properly later on anyway */
+ spec.latency_time = GST_SECOND;
+ if (!gst_audio_ring_buffer_parse_caps (&spec, caps))
+ goto done;
+
+ /* Make sure input is framed (one frame per buffer) and can be payloaded */
+ switch (spec.type) {
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3:
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3:
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS:
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG:
+ {
+ gboolean framed = FALSE, parsed = FALSE;
+ st = gst_caps_get_structure (caps, 0);
+
+ gst_structure_get_boolean (st, "framed", &framed);
+ gst_structure_get_boolean (st, "parsed", &parsed);
+ if ((!framed && !parsed) || gst_audio_iec61937_frame_size (&spec) <= 0)
+ goto done;
+ }
+ default:{
+ }
+ }
+ ret = TRUE;
+
+done:
+ return ret;
+}
+
+static gboolean
+gst_alsasink_query (GstBaseSink * sink, GstQuery * query)
+{
+ GstAlsaSink *alsa = GST_ALSA_SINK (sink);
+ gboolean ret;
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_ACCEPT_CAPS:
+ {
+ GstCaps *caps;
+
+ gst_query_parse_accept_caps (query, &caps);
+ ret = gst_alsasink_acceptcaps (alsa, caps);
+ gst_query_set_accept_caps_result (query, ret);
+ ret = TRUE;
+ break;
+ }
+ default:
+ ret = GST_BASE_SINK_CLASS (parent_class)->query (sink, query);
+ break;
+ }
+ return ret;
+}
+
static int
set_hwparams (GstAlsaSink * alsa)
{
@@ -693,7 +780,10 @@ alsasink_parse_spec (GstAlsaSink * alsa, GstAudioRingBufferSpec * spec)
case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW:
alsa->format = SND_PCM_FORMAT_MU_LAW;
break;
- case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958:
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3:
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3:
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS:
+ case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG:
alsa->format = SND_PCM_FORMAT_S16_BE;
alsa->iec958 = TRUE;
break;
@@ -1001,3 +1091,40 @@ prepare_error:
return;
}
}
+
+static GstBuffer *
+gst_alsasink_payload (GstAudioBaseSink * sink, GstBuffer * buf)
+{
+ GstAlsaSink *alsa;
+
+ alsa = GST_ALSA_SINK (sink);
+
+ if (alsa->iec958) {
+ GstBuffer *out;
+ gint framesize;
+ GstMapInfo iinfo, oinfo;
+
+ framesize = gst_audio_iec61937_frame_size (&sink->ringbuffer->spec);
+ if (framesize <= 0)
+ return NULL;
+
+ out = gst_buffer_new_and_alloc (framesize);
+
+ gst_buffer_map (buf, &iinfo, GST_MAP_READ);
+ gst_buffer_map (out, &oinfo, GST_MAP_WRITE);
+
+ if (!gst_audio_iec61937_payload (iinfo.data, iinfo.size,
+ oinfo.data, oinfo.size, &sink->ringbuffer->spec)) {
+ gst_buffer_unref (out);
+ return NULL;
+ }
+
+ gst_buffer_unmap (buf, &iinfo);
+ gst_buffer_unmap (out, &oinfo);
+
+ gst_buffer_copy_into (out, buf, GST_BUFFER_COPY_METADATA, 0, -1);
+ return out;
+ }
+
+ return gst_buffer_ref (buf);
+}
diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c
index e0ec455..20e6e15 100644
--- a/ext/alsa/gstalsasrc.c
+++ b/ext/alsa/gstalsasrc.c
@@ -21,7 +21,7 @@
/**
* SECTION:element-alsasrc
- * @see_also: alsasink, alsamixer
+ * @see_also: alsasink
*
* This element reads data from an audio card using the ALSA API.
*
@@ -65,12 +65,8 @@ enum
PROP_LAST
};
-static void gst_alsasrc_init_interfaces (GType type);
#define gst_alsasrc_parent_class parent_class
-G_DEFINE_TYPE_WITH_CODE (GstAlsaSrc, gst_alsasrc,
- GST_TYPE_AUDIO_SRC, gst_alsasrc_init_interfaces (g_define_type_id));
-
-GST_IMPLEMENT_ALSA_MIXER_METHODS (GstAlsaSrc, gst_alsasrc_mixer);
+G_DEFINE_TYPE (GstAlsaSrc, gst_alsasrc, GST_TYPE_AUDIO_SRC);
static void gst_alsasrc_finalize (GObject * object);
static void gst_alsasrc_set_property (GObject * object,
@@ -123,22 +119,6 @@ gst_alsasrc_finalize (GObject * object)
}
static void
-gst_alsasrc_init_interfaces (GType type)
-{
- static const GInterfaceInfo mixer_iface_info = {
- (GInterfaceInitFunc) gst_alsasrc_mixer_interface_init,
- NULL,
- NULL,
- };
-
- g_type_add_interface_static (type, GST_TYPE_MIXER, &mixer_iface_info);
-
-#if 0
- gst_alsa_type_add_device_property_probe_interface (type);
-#endif
-}
-
-static void
gst_alsasrc_class_init (GstAlsaSrcClass * klass)
{
GObjectClass *gobject_class;
@@ -667,9 +647,6 @@ gst_alsasrc_open (GstAudioSrc * asrc)
CHECK (snd_pcm_open (&alsa->handle, alsa->device, SND_PCM_STREAM_CAPTURE,
SND_PCM_NONBLOCK), open_error);
- if (!alsa->mixer)
- alsa->mixer = gst_alsa_mixer_new (alsa->device, GST_ALSA_MIXER_CAPTURE);
-
return TRUE;
/* ERRORS */
@@ -768,11 +745,6 @@ gst_alsasrc_close (GstAudioSrc * asrc)
snd_pcm_close (alsa->handle);
alsa->handle = NULL;
- if (alsa->mixer) {
- gst_alsa_mixer_free (alsa->mixer);
- alsa->mixer = NULL;
- }
-
gst_caps_replace (&alsa->cached_caps, NULL);
return TRUE;
diff --git a/ext/alsa/gstalsasrc.h b/ext/alsa/gstalsasrc.h
index e395743..2aea13e 100644
--- a/ext/alsa/gstalsasrc.h
+++ b/ext/alsa/gstalsasrc.h
@@ -25,7 +25,6 @@
#include <gst/audio/gstaudiosrc.h>
#include "gstalsa.h"
-#include "gstalsamixer.h"
G_BEGIN_DECLS
@@ -72,8 +71,6 @@ struct _GstAlsaSrc {
snd_pcm_uframes_t buffer_size;
snd_pcm_uframes_t period_size;
- GstAlsaMixer *mixer;
-
GMutex *alsa_lock;
};
diff --git a/ext/cdparanoia/Makefile.in b/ext/cdparanoia/Makefile.in
index 1c3086c..3a44526 100644
--- a/ext/cdparanoia/Makefile.in
+++ b/ext/cdparanoia/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -517,7 +517,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/ext/libvisual/Makefile.in b/ext/libvisual/Makefile.in
index f6be4a4..ce06c76 100644
--- a/ext/libvisual/Makefile.in
+++ b/ext/libvisual/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -506,7 +506,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/ext/ogg/Makefile.in b/ext/ogg/Makefile.in
index 6798f17..f0d16b4 100644
--- a/ext/ogg/Makefile.in
+++ b/ext/ogg/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -534,7 +534,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index bc715ae..cc09cf3 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -1915,7 +1915,9 @@ static GstStaticPadTemplate ogg_demux_sink_template_factory =
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("application/ogg; application/x-annodex")
+ GST_STATIC_CAPS ("application/ogg; audio/ogg; video/ogg; "
+ "application/annodex; audio/annodex; video/annodex; "
+ "application/kate")
);
static void gst_ogg_demux_finalize (GObject * object);
diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c
index 29060b8..0620e31 100644
--- a/ext/ogg/gstoggmux.c
+++ b/ext/ogg/gstoggmux.c
@@ -97,7 +97,7 @@ enum
static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("application/ogg")
+ GST_STATIC_CAPS ("application/ogg; audio/ogg; video/ogg")
);
static GstStaticPadTemplate video_sink_factory =
@@ -128,8 +128,10 @@ static GstStaticPadTemplate subtitle_sink_factory =
static void gst_ogg_mux_finalize (GObject * object);
-static GstFlowReturn
-gst_ogg_mux_collected (GstCollectPads2 * pads, GstOggMux * ogg_mux);
+static GstFlowReturn gst_ogg_mux_collected (GstCollectPads * pads,
+ GstOggMux * ogg_mux);
+static gboolean gst_ogg_mux_sink_event (GstCollectPads * pads,
+ GstCollectData * pad, GstEvent * event, gpointer user_data);
static gboolean gst_ogg_mux_handle_src_event (GstPad * pad, GstObject * parent,
GstEvent * event);
static GstPad *gst_ogg_mux_request_new_pad (GstElement * element,
@@ -244,9 +246,12 @@ gst_ogg_mux_init (GstOggMux * ogg_mux)
/* seed random number generator for creation of serial numbers */
srand (time (NULL));
- ogg_mux->collect = gst_collect_pads2_new ();
- gst_collect_pads2_set_function (ogg_mux->collect,
- (GstCollectPads2Function) GST_DEBUG_FUNCPTR (gst_ogg_mux_collected),
+ ogg_mux->collect = gst_collect_pads_new ();
+ gst_collect_pads_set_function (ogg_mux->collect,
+ (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_ogg_mux_collected),
+ ogg_mux);
+ gst_collect_pads_set_event_function (ogg_mux->collect,
+ (GstCollectPadsEventFunction) GST_DEBUG_FUNCPTR (gst_ogg_mux_sink_event),
ogg_mux);
ogg_mux->max_delay = DEFAULT_MAX_DELAY;
@@ -272,7 +277,7 @@ gst_ogg_mux_finalize (GObject * object)
}
static void
-gst_ogg_mux_ogg_pad_destroy_notify (GstCollectData2 * data)
+gst_ogg_mux_ogg_pad_destroy_notify (GstCollectData * data)
{
GstOggPadData *oggpad = (GstOggPadData *) data;
GstBuffer *buf;
@@ -304,11 +309,11 @@ gst_ogg_mux_sinkconnect (GstPad * pad, GstPad * peer)
}
static gboolean
-gst_ogg_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+gst_ogg_mux_sink_event (GstCollectPads * pads, GstCollectData * pad,
+ GstEvent * event, gpointer user_data)
{
- GstOggMux *ogg_mux = GST_OGG_MUX (parent);
- GstOggPadData *ogg_pad = (GstOggPadData *) gst_pad_get_element_private (pad);
- gboolean ret = FALSE;
+ GstOggMux *ogg_mux = GST_OGG_MUX (user_data);
+ GstOggPadData *ogg_pad = (GstOggPadData *) pad;
GST_DEBUG_OBJECT (pad, "Got %s event", GST_EVENT_TYPE_NAME (event));
@@ -351,9 +356,9 @@ gst_ogg_mux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
/* now GstCollectPads can take care of the rest, e.g. EOS */
if (event != NULL)
- ret = ogg_pad->collect_event (pad, parent, event);
+ return gst_collect_pads_event_default (pads, pad, event, FALSE);
- return ret;
+ return TRUE;
}
static gboolean
@@ -447,7 +452,7 @@ gst_ogg_mux_request_new_pad (GstElement * element,
GstOggPadData *oggpad;
oggpad = (GstOggPadData *)
- gst_collect_pads2_add_pad_full (ogg_mux->collect, newpad,
+ gst_collect_pads_add_pad_full (ogg_mux->collect, newpad,
sizeof (GstOggPadData), gst_ogg_mux_ogg_pad_destroy_notify, FALSE);
ogg_mux->active_pads++;
@@ -474,10 +479,6 @@ gst_ogg_mux_request_new_pad (GstElement * element,
}
gst_segment_init (&oggpad->segment, GST_FORMAT_TIME);
-
- oggpad->collect_event = (GstPadEventFunction) GST_PAD_EVENTFUNC (newpad);
- gst_pad_set_event_function (newpad,
- GST_DEBUG_FUNCPTR (gst_ogg_mux_sink_event));
}
}
@@ -509,7 +510,7 @@ gst_ogg_mux_release_pad (GstElement * element, GstPad * pad)
ogg_mux = GST_OGG_MUX (gst_pad_get_parent (pad));
- gst_collect_pads2_remove_pad (ogg_mux->collect, pad);
+ gst_collect_pads_remove_pad (ogg_mux->collect, pad);
gst_element_remove_pad (element, pad);
gst_object_unref (ogg_mux);
@@ -918,9 +919,9 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux, gboolean * popped)
walk = ogg_mux->collect->data;
while (walk) {
GstOggPadData *pad;
- GstCollectData2 *data;
+ GstCollectData *data;
- data = (GstCollectData2 *) walk->data;
+ data = (GstCollectData *) walk->data;
pad = (GstOggPadData *) data;
walk = g_slist_next (walk);
@@ -931,7 +932,7 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux, gboolean * popped)
if (pad->buffer == NULL) {
GstBuffer *buf;
- buf = gst_collect_pads2_pop (ogg_mux->collect, data);
+ buf = gst_collect_pads_pop (ogg_mux->collect, data);
GST_LOG_OBJECT (data->pad, "popped buffer %" GST_PTR_FORMAT, buf);
/* On EOS we get a NULL buffer */
@@ -978,8 +979,8 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux, gboolean * popped)
if (pad->map.is_sparse) {
GST_DEBUG_OBJECT (pad, "Pad is sparse, marking as such");
- gst_collect_pads2_set_waiting (ogg_mux->collect,
- (GstCollectData2 *) pad, FALSE);
+ gst_collect_pads_set_waiting (ogg_mux->collect,
+ (GstCollectData *) pad, FALSE);
}
}
if (caps)
@@ -1521,11 +1522,18 @@ gst_ogg_mux_send_headers (GstOggMux * mux)
/* hbufs holds all buffers for the headers now */
/* create caps with the buffers */
- caps = gst_pad_query_caps (mux->srcpad, NULL);
+ /* FIXME: should prefer media type audio/ogg, video/ogg, etc. depending on
+ * what we create, if acceptable downstream (instead of defaulting to
+ * application/ogg because that's the first in the template caps) */
+ caps = gst_pad_get_allowed_caps (mux->srcpad);
if (caps) {
- caps = gst_ogg_mux_set_header_on_caps (caps, hbufs);
- gst_pad_set_caps (mux->srcpad, caps);
- gst_caps_unref (caps);
+ if (!gst_caps_is_fixed (caps))
+ caps = gst_caps_fixate (caps);
+ if (caps) {
+ caps = gst_ogg_mux_set_header_on_caps (caps, hbufs);
+ gst_pad_set_caps (mux->srcpad, caps);
+ gst_caps_unref (caps);
+ }
}
/* and send the buffers */
while (hbufs != NULL) {
@@ -1576,7 +1584,7 @@ gst_ogg_mux_process_best_pad (GstOggMux * ogg_mux, GstOggPadData * best)
ogg_mux->pulling ? ogg_mux->pulling->collect.pad : NULL);
if (ogg_mux->pulling) {
- next_buf = gst_collect_pads2_peek (ogg_mux->collect,
+ next_buf = gst_collect_pads_peek (ogg_mux->collect,
&ogg_mux->pulling->collect);
if (next_buf) {
ogg_mux->pulling->eos = FALSE;
@@ -1590,7 +1598,7 @@ gst_ogg_mux_process_best_pad (GstOggMux * ogg_mux, GstOggPadData * best)
/* We could end up pushing from the best pad instead, so check that
* as well */
if (best && best != ogg_mux->pulling) {
- next_buf = gst_collect_pads2_peek (ogg_mux->collect, &best->collect);
+ next_buf = gst_collect_pads_peek (ogg_mux->collect, &best->collect);
if (next_buf) {
best->eos = FALSE;
gst_buffer_unref (next_buf);
@@ -1885,7 +1893,7 @@ gst_ogg_mux_process_best_pad (GstOggMux * ogg_mux, GstOggPadData * best)
* Returns TRUE if all pads are EOS.
*/
static gboolean
-all_pads_eos (GstCollectPads2 * pads)
+all_pads_eos (GstCollectPads * pads)
{
GSList *walk;
@@ -1916,7 +1924,7 @@ all_pads_eos (GstCollectPads2 * pads)
* are all empty, and then sends EOS.
*/
static GstFlowReturn
-gst_ogg_mux_collected (GstCollectPads2 * pads, GstOggMux * ogg_mux)
+gst_ogg_mux_collected (GstCollectPads * pads, GstOggMux * ogg_mux)
{
GstOggPadData *best;
GstFlowReturn ret;
@@ -2001,7 +2009,7 @@ gst_ogg_mux_set_property (GObject * object,
/* reset all variables in the ogg pads. */
static void
-gst_ogg_mux_init_collectpads (GstCollectPads2 * collect)
+gst_ogg_mux_init_collectpads (GstCollectPads * collect)
{
GSList *walk;
@@ -2029,7 +2037,7 @@ gst_ogg_mux_init_collectpads (GstCollectPads2 * collect)
/* Clear all buffers from the collectpads object */
static void
-gst_ogg_mux_clear_collectpads (GstCollectPads2 * collect)
+gst_ogg_mux_clear_collectpads (GstCollectPads * collect)
{
GSList *walk;
@@ -2073,12 +2081,12 @@ gst_ogg_mux_change_state (GstElement * element, GstStateChange transition)
case GST_STATE_CHANGE_READY_TO_PAUSED:
gst_ogg_mux_clear (ogg_mux);
gst_ogg_mux_init_collectpads (ogg_mux->collect);
- gst_collect_pads2_start (ogg_mux->collect);
+ gst_collect_pads_start (ogg_mux->collect);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
- gst_collect_pads2_stop (ogg_mux->collect);
+ gst_collect_pads_stop (ogg_mux->collect);
break;
default:
break;
diff --git a/ext/ogg/gstoggmux.h b/ext/ogg/gstoggmux.h
index 64d71a1..fb87ca0 100644
--- a/ext/ogg/gstoggmux.h
+++ b/ext/ogg/gstoggmux.h
@@ -24,7 +24,7 @@
#include <ogg/ogg.h>
#include <gst/gst.h>
-#include <gst/base/gstcollectpads2.h>
+#include <gst/base/gstcollectpads.h>
#include "gstoggstream.h"
G_BEGIN_DECLS
@@ -48,7 +48,7 @@ GstOggPadState;
/* all information needed for one ogg stream */
typedef struct
{
- GstCollectData2 collect; /* we extend the CollectData */
+ GstCollectData collect; /* we extend the CollectData */
GstOggStream map;
gboolean have_type;
@@ -82,8 +82,6 @@ typedef struct
gint64 next_granule; /* expected granule of next buffer ts */
gint64 keyframe_granule; /* granule of last preceding keyframe */
- GstPadEventFunction collect_event;
-
GstTagList *tags;
}
GstOggPadData;
@@ -101,7 +99,7 @@ struct _GstOggMux
GstPad *srcpad;
/* sinkpads */
- GstCollectPads2 *collect;
+ GstCollectPads *collect;
/* number of pads which have not received EOS */
gint active_pads;
diff --git a/ext/pango/Makefile.in b/ext/pango/Makefile.in
index 72f7646..e38d6c3 100644
--- a/ext/pango/Makefile.in
+++ b/ext/pango/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -532,7 +532,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/ext/theora/Makefile.in b/ext/theora/Makefile.in
index bb9de54..4077176 100644
--- a/ext/theora/Makefile.in
+++ b/ext/theora/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -523,7 +523,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
index 5fe8a28..1d4925f 100644
--- a/ext/theora/gsttheoradec.c
+++ b/ext/theora/gsttheoradec.c
@@ -1,5 +1,8 @@
/* GStreamer
* Copyright (C) 2004 Benjamin Otte <in7y118@public.uni-hamburg.de>
+ * Copyright (c) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.com>
+ * Author : Mark Nauwelaerts <mark.nauwelaerts@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
@@ -83,33 +86,27 @@ GST_STATIC_PAD_TEMPLATE ("sink",
);
#define gst_theora_dec_parent_class parent_class
-G_DEFINE_TYPE (GstTheoraDec, gst_theora_dec, GST_TYPE_ELEMENT);
+G_DEFINE_TYPE (GstTheoraDec, gst_theora_dec, GST_TYPE_VIDEO_DECODER);
static void theora_dec_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
static void theora_dec_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
-static gboolean theora_dec_setcaps (GstTheoraDec * dec, GstCaps * caps);
-static gboolean theora_dec_sink_event (GstPad * pad, GstObject * parent,
- GstEvent * event);
-static GstFlowReturn theora_dec_chain (GstPad * pad, GstObject * parent,
- GstBuffer * buffer);
-static GstStateChangeReturn theora_dec_change_state (GstElement * element,
- GstStateChange transition);
-static gboolean theora_dec_src_event (GstPad * pad, GstObject * parent,
- GstEvent * event);
-static gboolean theora_dec_src_query (GstPad * pad, GstObject * parent,
+static gboolean theora_dec_start (GstVideoDecoder * decoder);
+static gboolean theora_dec_stop (GstVideoDecoder * decoder);
+static gboolean theora_dec_set_format (GstVideoDecoder * decoder,
+ GstVideoCodecState * state);
+static gboolean theora_dec_reset (GstVideoDecoder * decoder, gboolean hard);
+static GstFlowReturn theora_dec_parse (GstVideoDecoder * decoder,
+ GstVideoCodecFrame * frame, GstAdapter * adapter, gboolean at_eos);
+static GstFlowReturn theora_dec_handle_frame (GstVideoDecoder * decoder,
+ GstVideoCodecFrame * frame);
+static gboolean theora_dec_decide_allocation (GstVideoDecoder * decoder,
GstQuery * query);
-static gboolean theora_dec_src_convert (GstPad * pad, GstFormat src_format,
- gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
-#if 0
-static const GstFormat *theora_get_formats (GstPad * pad);
-#endif
-#if 0
-static const GstEventMask *theora_get_event_masks (GstPad * pad);
-#endif
+static GstFlowReturn theora_dec_decode_buffer (GstTheoraDec * dec,
+ GstBuffer * buf, GstVideoCodecFrame * frame);
static gboolean
gst_theora_dec_ctl_is_supported (int req)
@@ -122,7 +119,8 @@ static void
gst_theora_dec_class_init (GstTheoraDecClass * klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+ GstVideoDecoderClass *video_decoder_class = GST_VIDEO_DECODER_CLASS (klass);
gobject_class->set_property = theora_dec_set_property;
gobject_class->get_property = theora_dec_get_property;
@@ -171,16 +169,24 @@ gst_theora_dec_class_init (GstTheoraDecClass * klass)
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
- gst_element_class_add_pad_template (gstelement_class,
+ gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&theora_dec_src_factory));
- gst_element_class_add_pad_template (gstelement_class,
+ gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&theora_dec_sink_factory));
- gst_element_class_set_static_metadata (gstelement_class,
+ gst_element_class_set_details_simple (element_class,
"Theora video decoder", "Codec/Decoder/Video",
"decode raw theora streams to raw YUV video",
"Benjamin Otte <otte@gnome.org>, Wim Taymans <wim@fluendo.com>");
- gstelement_class->change_state = theora_dec_change_state;
+ video_decoder_class->start = GST_DEBUG_FUNCPTR (theora_dec_start);
+ video_decoder_class->stop = GST_DEBUG_FUNCPTR (theora_dec_stop);
+ video_decoder_class->reset = GST_DEBUG_FUNCPTR (theora_dec_reset);
+ video_decoder_class->set_format = GST_DEBUG_FUNCPTR (theora_dec_set_format);
+ video_decoder_class->parse = GST_DEBUG_FUNCPTR (theora_dec_parse);
+ video_decoder_class->handle_frame =
+ GST_DEBUG_FUNCPTR (theora_dec_handle_frame);
+ video_decoder_class->decide_allocation =
+ GST_DEBUG_FUNCPTR (theora_dec_decide_allocation);
GST_DEBUG_CATEGORY_INIT (theoradec_debug, "theoradec", 0, "Theora decoder");
}
@@ -188,546 +194,147 @@ gst_theora_dec_class_init (GstTheoraDecClass * klass)
static void
gst_theora_dec_init (GstTheoraDec * dec)
{
- dec->sinkpad =
- gst_pad_new_from_static_template (&theora_dec_sink_factory, "sink");
- gst_pad_set_event_function (dec->sinkpad, theora_dec_sink_event);
- gst_pad_set_chain_function (dec->sinkpad, theora_dec_chain);
- gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
-
- dec->srcpad =
- gst_pad_new_from_static_template (&theora_dec_src_factory, "src");
- gst_pad_set_event_function (dec->srcpad, theora_dec_src_event);
- gst_pad_set_query_function (dec->srcpad, theora_dec_src_query);
- gst_pad_use_fixed_caps (dec->srcpad);
-
- gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);
-
dec->telemetry_mv = THEORA_DEF_TELEMETRY_MV;
dec->telemetry_mbmode = THEORA_DEF_TELEMETRY_MBMODE;
dec->telemetry_qi = THEORA_DEF_TELEMETRY_QI;
dec->telemetry_bits = THEORA_DEF_TELEMETRY_BITS;
- dec->gather = NULL;
- dec->decode = NULL;
- dec->queued = NULL;
- dec->pendingevents = NULL;
+
+ /* input is packetized,
+ * but is not marked that way so data gets parsed and keyframes marked */
}
static void
gst_theora_dec_reset (GstTheoraDec * dec)
{
dec->need_keyframe = TRUE;
- dec->last_timestamp = -1;
- dec->discont = TRUE;
- dec->frame_nr = -1;
- dec->seqnum = gst_util_seqnum_next ();
- dec->dropped = 0;
- dec->processed = 0;
- gst_segment_init (&dec->segment, GST_FORMAT_TIME);
-
- GST_OBJECT_LOCK (dec);
- dec->proportion = 1.0;
- dec->earliest_time = -1;
- GST_OBJECT_UNLOCK (dec);
-
- g_list_foreach (dec->queued, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->queued);
- dec->queued = NULL;
- g_list_foreach (dec->gather, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->gather);
- dec->gather = NULL;
- g_list_foreach (dec->decode, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->decode);
- dec->decode = NULL;
- g_list_foreach (dec->pendingevents, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->pendingevents);
- dec->pendingevents = NULL;
-
- if (dec->tags) {
- gst_tag_list_free (dec->tags);
- dec->tags = NULL;
- }
+ dec->can_crop = FALSE;
}
-#if 0
-static const GstFormat *
-theora_get_formats (GstPad * pad)
+static gboolean
+theora_dec_start (GstVideoDecoder * decoder)
{
- static GstFormat src_formats[] = {
- GST_FORMAT_DEFAULT, /* frames in this case */
- GST_FORMAT_TIME,
- GST_FORMAT_BYTES,
- 0
- };
- static GstFormat sink_formats[] = {
- GST_FORMAT_DEFAULT,
- GST_FORMAT_TIME,
- 0
- };
-
- return (GST_PAD_IS_SRC (pad) ? src_formats : sink_formats);
-}
-#endif
+ GstTheoraDec *dec = GST_THEORA_DEC (decoder);
-#if 0
-static const GstEventMask *
-theora_get_event_masks (GstPad * pad)
-{
- static const GstEventMask theora_src_event_masks[] = {
- {GST_EVENT_SEEK, GST_SEEK_METHOD_SET | GST_SEEK_FLAG_FLUSH},
- {0,}
- };
+ GST_DEBUG_OBJECT (dec, "start");
+ th_info_clear (&dec->info);
+ th_comment_clear (&dec->comment);
+ GST_DEBUG_OBJECT (dec, "Setting have_header to FALSE");
+ dec->have_header = FALSE;
+ gst_theora_dec_reset (dec);
- return theora_src_event_masks;
+ return TRUE;
}
-#endif
static gboolean
-theora_dec_src_convert (GstPad * pad,
- GstFormat src_format, gint64 src_value,
- GstFormat * dest_format, gint64 * dest_value)
+theora_dec_stop (GstVideoDecoder * decoder)
{
- gboolean res = TRUE;
- GstTheoraDec *dec;
- guint64 scale = 1;
-
- if (src_format == *dest_format) {
- *dest_value = src_value;
- return TRUE;
- }
-
- dec = GST_THEORA_DEC (gst_pad_get_parent (pad));
-
- /* we need the info part before we can done something */
- if (!dec->have_header)
- goto no_header;
-
- switch (src_format) {
- case GST_FORMAT_BYTES:
- switch (*dest_format) {
- case GST_FORMAT_DEFAULT:
- *dest_value = gst_util_uint64_scale_int (src_value, 8,
- dec->info.pic_height * dec->info.pic_width * dec->output_bpp);
- break;
- case GST_FORMAT_TIME:
- /* seems like a rather silly conversion, implement me if you like */
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_TIME:
- switch (*dest_format) {
- case GST_FORMAT_BYTES:
- scale =
- dec->output_bpp * (dec->info.pic_width * dec->info.pic_height) /
- 8;
- case GST_FORMAT_DEFAULT:
- *dest_value = scale * gst_util_uint64_scale (src_value,
- dec->info.fps_numerator, dec->info.fps_denominator * GST_SECOND);
- break;
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_DEFAULT:
- switch (*dest_format) {
- case GST_FORMAT_TIME:
- *dest_value = gst_util_uint64_scale (src_value,
- GST_SECOND * dec->info.fps_denominator, dec->info.fps_numerator);
- break;
- case GST_FORMAT_BYTES:
- *dest_value = gst_util_uint64_scale_int (src_value,
- dec->output_bpp * dec->info.pic_width * dec->info.pic_height, 8);
- break;
- default:
- res = FALSE;
- }
- break;
- default:
- res = FALSE;
+ GstTheoraDec *dec = GST_THEORA_DEC (decoder);
+
+ GST_DEBUG_OBJECT (dec, "stop");
+ th_info_clear (&dec->info);
+ th_comment_clear (&dec->comment);
+ th_setup_free (dec->setup);
+ dec->setup = NULL;
+ th_decode_free (dec->decoder);
+ dec->decoder = NULL;
+ gst_theora_dec_reset (dec);
+ if (dec->tags) {
+ gst_tag_list_free (dec->tags);
+ dec->tags = NULL;
}
-done:
- gst_object_unref (dec);
- return res;
- /* ERRORS */
-no_header:
- {
- GST_DEBUG_OBJECT (dec, "no header yet, cannot convert");
- res = FALSE;
- goto done;
- }
+ return TRUE;
}
-#if 0
+/* FIXME : Do we want to handle hard resets differently ? */
static gboolean
-theora_dec_sink_convert (GstPad * pad,
- GstFormat src_format, gint64 src_value,
- GstFormat * dest_format, gint64 * dest_value)
+theora_dec_reset (GstVideoDecoder * bdec, gboolean hard)
{
- gboolean res = TRUE;
- GstTheoraDec *dec;
-
- if (src_format == *dest_format) {
- *dest_value = src_value;
- return TRUE;
- }
-
- dec = GST_THEORA_DEC (gst_pad_get_parent (pad));
-
- /* we need the info part before we can done something */
- if (!dec->have_header)
- goto no_header;
-
- switch (src_format) {
- case GST_FORMAT_DEFAULT:
- switch (*dest_format) {
- case GST_FORMAT_TIME:
- *dest_value = _theora_granule_start_time (dec, src_value);
- break;
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_TIME:
- switch (*dest_format) {
- case GST_FORMAT_DEFAULT:
- {
- guint rest;
-
- /* framecount */
- *dest_value = gst_util_uint64_scale (src_value,
- dec->info.fps_numerator, GST_SECOND * dec->info.fps_denominator);
-
- /* funny way of calculating granulepos in theora */
- rest = *dest_value / dec->info.keyframe_granule_shift;
- *dest_value -= rest;
- *dest_value <<= dec->granule_shift;
- *dest_value += rest;
- break;
- }
- default:
- res = FALSE;
- break;
- }
- break;
- default:
- res = FALSE;
- }
-done:
- gst_object_unref (dec);
- return res;
-
- /* ERRORS */
-no_header:
- {
- GST_DEBUG_OBJECT (dec, "no header yet, cannot convert");
- res = FALSE;
- goto done;
- }
+ gst_theora_dec_reset (GST_THEORA_DEC (bdec));
+ return TRUE;
}
-#endif
-static gboolean
-theora_dec_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
+static GstFlowReturn
+theora_dec_parse (GstVideoDecoder * decoder,
+ GstVideoCodecFrame * frame, GstAdapter * adapter, gboolean at_eos)
{
- GstTheoraDec *dec;
- gboolean res = FALSE;
-
- dec = GST_THEORA_DEC (parent);
-
- switch (GST_QUERY_TYPE (query)) {
- case GST_QUERY_POSITION:
- {
- gint64 value;
- GstFormat format;
- gint64 time;
-
- /* parse format */
- gst_query_parse_position (query, &format, NULL);
-
- time = dec->last_timestamp;
- time = gst_segment_to_stream_time (&dec->segment, GST_FORMAT_TIME, time);
-
- GST_LOG_OBJECT (dec,
- "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
+ gint av;
+ const guint8 *data;
- if (!(res =
- theora_dec_src_convert (pad, GST_FORMAT_TIME, time, &format,
- &value)))
- goto error;
+ av = gst_adapter_available (adapter);
- gst_query_set_position (query, format, value);
+ data = gst_adapter_map (adapter, 1);
+ /* check for keyframe; must not be header packet */
+ if (!(data[0] & 0x80) && (data[0] & 0x40) == 0)
+ GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame);
+ gst_adapter_unmap (adapter);
- GST_LOG_OBJECT (dec,
- "query %p: we return %" G_GINT64_FORMAT " (format %u)", query, value,
- format);
- break;
- }
- case GST_QUERY_DURATION:
- {
- /* forward to peer for total */
- res = gst_pad_peer_query (dec->sinkpad, query);
- if (!res)
- goto error;
-
- break;
- }
- case GST_QUERY_CONVERT:
- {
- GstFormat src_fmt, dest_fmt;
- gint64 src_val, dest_val;
-
- gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
- if (!(res =
- theora_dec_src_convert (pad, src_fmt, src_val, &dest_fmt,
- &dest_val)))
- goto error;
-
- gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
- break;
- }
- default:
- res = gst_pad_query_default (pad, parent, query);
- break;
- }
-done:
-
- return res;
-
- /* ERRORS */
-error:
- {
- GST_DEBUG_OBJECT (dec, "query failed");
- goto done;
- }
+ /* and pass along all */
+ gst_video_decoder_add_to_frame (decoder, av);
+ return gst_video_decoder_have_frame (decoder);
}
+
static gboolean
-theora_dec_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
+theora_dec_set_format (GstVideoDecoder * bdec, GstVideoCodecState * state)
{
- gboolean res = TRUE;
GstTheoraDec *dec;
- dec = GST_THEORA_DEC (parent);
-
- switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_SEEK:
- {
- GstFormat format, tformat;
- gdouble rate;
- GstEvent *real_seek;
- GstSeekFlags flags;
- GstSeekType cur_type, stop_type;
- gint64 cur, stop;
- gint64 tcur, tstop;
- guint32 seqnum;
-
- gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
- &stop_type, &stop);
- seqnum = gst_event_get_seqnum (event);
- gst_event_unref (event);
-
- /* we have to ask our peer to seek to time here as we know
- * nothing about how to generate a granulepos from the src
- * formats or anything.
- *
- * First bring the requested format to time
- */
- tformat = GST_FORMAT_TIME;
- if (!(res = theora_dec_src_convert (pad, format, cur, &tformat, &tcur)))
- goto convert_error;
- if (!(res = theora_dec_src_convert (pad, format, stop, &tformat, &tstop)))
- goto convert_error;
-
- /* then seek with time on the peer */
- real_seek = gst_event_new_seek (rate, GST_FORMAT_TIME,
- flags, cur_type, tcur, stop_type, tstop);
- gst_event_set_seqnum (real_seek, seqnum);
-
- res = gst_pad_push_event (dec->sinkpad, real_seek);
- break;
- }
- case GST_EVENT_QOS:
- {
- gdouble proportion;
- GstClockTimeDiff diff;
- GstClockTime timestamp;
-
- gst_event_parse_qos (event, NULL, &proportion, &diff, &timestamp);
-
- /* we cannot randomly skip frame decoding since we don't have
- * B frames. we can however use the timestamp and diff to not
- * push late frames. This would at least save us the time to
- * crop/memcpy the data. */
- GST_OBJECT_LOCK (dec);
- dec->proportion = proportion;
- dec->earliest_time = timestamp + diff;
- GST_OBJECT_UNLOCK (dec);
-
- GST_DEBUG_OBJECT (dec, "got QoS %" GST_TIME_FORMAT ", %" G_GINT64_FORMAT,
- GST_TIME_ARGS (timestamp), diff);
-
- res = gst_pad_push_event (dec->sinkpad, event);
- break;
- }
- default:
- res = gst_pad_push_event (dec->sinkpad, event);
- break;
- }
-done:
+ dec = GST_THEORA_DEC (bdec);
- return res;
+ /* Keep a copy of the input state */
+ if (dec->input_state)
+ gst_video_codec_state_unref (dec->input_state);
+ dec->input_state = gst_video_codec_state_ref (state);
- /* ERRORS */
-convert_error:
- {
- GST_DEBUG_OBJECT (dec, "could not convert format");
- goto done;
- }
-}
+ /* FIXME : Interesting, we always accept any kind of caps ? */
+ if (state->codec_data) {
+ GstBuffer *buffer;
+ GstMapInfo minfo;
+ guint8 *data;
+ guint size;
+ guint offset;
-static gboolean
-theora_dec_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
- gboolean ret = FALSE;
- GstTheoraDec *dec;
+ buffer = state->codec_data;
+ gst_buffer_map (buffer, &minfo, GST_MAP_READ);
- dec = GST_THEORA_DEC (parent);
+ offset = 0;
+ size = minfo.size;
+ data = (guint8 *) minfo.data;
- GST_LOG_OBJECT (dec, "handling event");
- switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_FLUSH_START:
- ret = gst_pad_push_event (dec->srcpad, event);
- break;
- case GST_EVENT_FLUSH_STOP:
- gst_theora_dec_reset (dec);
- ret = gst_pad_push_event (dec->srcpad, event);
- break;
- case GST_EVENT_EOS:
- ret = gst_pad_push_event (dec->srcpad, event);
- break;
- case GST_EVENT_SEGMENT:
- {
- const GstSegment *segment;
+ while (size > 2) {
+ guint psize;
+ GstBuffer *buf;
- gst_event_parse_segment (event, &segment);
+ psize = (data[0] << 8) | data[1];
+ /* skip header */
+ data += 2;
+ size -= 2;
+ offset += 2;
- /* we need TIME format */
- if (segment->format != GST_FORMAT_TIME)
- goto newseg_wrong_format;
+ /* make sure we don't read too much */
+ psize = MIN (psize, size);
- GST_DEBUG_OBJECT (dec, "segment: %" GST_SEGMENT_FORMAT, segment);
+ buf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, psize);
- /* now configure the values */
- gst_segment_copy_into (segment, &dec->segment);
- dec->seqnum = gst_event_get_seqnum (event);
+ /* first buffer is a discont buffer */
+ if (offset == 2)
+ GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
- /* We don't forward this unless/until the decoder is initialised */
- if (dec->have_header) {
- ret = gst_pad_push_event (dec->srcpad, event);
- } else {
- dec->pendingevents = g_list_append (dec->pendingevents, event);
- ret = TRUE;
- }
- break;
- }
- case GST_EVENT_CAPS:
- {
- GstCaps *caps;
+ /* now feed it to the decoder we can ignore the error */
+ theora_dec_decode_buffer (dec, buf, NULL);
+ gst_buffer_unref (buf);
- gst_event_parse_caps (event, &caps);
- ret = theora_dec_setcaps (dec, caps);
- gst_event_unref (event);
- break;
- }
- case GST_EVENT_TAG:
- {
- if (dec->have_header)
- /* and forward */
- ret = gst_pad_push_event (dec->srcpad, event);
- else {
- /* store it to send once we're initialized */
- dec->pendingevents = g_list_append (dec->pendingevents, event);
- ret = TRUE;
- }
- break;
+ /* skip the data */
+ size -= psize;
+ data += psize;
+ offset += psize;
}
- default:
- ret = gst_pad_event_default (pad, parent, event);
- break;
- }
-done:
-
- return ret;
- /* ERRORS */
-newseg_wrong_format:
- {
- GST_DEBUG_OBJECT (dec, "received non TIME newsegment");
- gst_event_unref (event);
- goto done;
+ gst_buffer_unmap (buffer, &minfo);
}
-}
-
-static gboolean
-theora_dec_setcaps (GstTheoraDec * dec, GstCaps * caps)
-{
- GstStructure *s;
- const GValue *codec_data;
-
- s = gst_caps_get_structure (caps, 0);
- /* parse the par, this overrides the encoded par */
- dec->have_par = gst_structure_get_fraction (s, "pixel-aspect-ratio",
- &dec->par_num, &dec->par_den);
-
- if ((codec_data = gst_structure_get_value (s, "codec_data"))) {
- if (G_VALUE_TYPE (codec_data) == GST_TYPE_BUFFER) {
- GstBuffer *buffer;
- GstMapInfo map;
- guint8 *ptr;
- gsize left;
- guint offset;
-
- buffer = gst_value_get_buffer (codec_data);
-
- offset = 0;
- gst_buffer_map (buffer, &map, GST_MAP_READ);
-
- ptr = map.data;
- left = map.size;
-
- while (left > 2) {
- guint psize;
- GstBuffer *buf;
-
- psize = (ptr[0] << 8) | ptr[1];
- /* skip header */
- ptr += 2;
- left -= 2;
- offset += 2;
-
- /* make sure we don't read too much */
- psize = MIN (psize, left);
-
- buf =
- gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, psize);
-
- /* first buffer is a discont buffer */
- if (offset == 2)
- GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
-
- /* now feed it to the decoder we can ignore the error */
- theora_dec_chain (dec->sinkpad, GST_OBJECT_CAST (dec), buf);
-
- /* skip the data */
- left -= psize;
- ptr += psize;
- offset += psize;
- }
- gst_buffer_unmap (buffer, &map);
- }
- }
+ GST_DEBUG_OBJECT (dec, "Done");
return TRUE;
}
@@ -763,198 +370,80 @@ theora_handle_comment_packet (GstTheoraDec * dec, ogg_packet * packet)
GST_TAG_NOMINAL_BITRATE, dec->info.target_bitrate, NULL);
}
+ if (dec->tags)
+ gst_tag_list_free (dec->tags);
dec->tags = list;
return GST_FLOW_OK;
}
static GstFlowReturn
-theora_negotiate (GstTheoraDec * dec)
+theora_handle_type_packet (GstTheoraDec * dec, ogg_packet * packet)
{
- GstVideoFormat format;
- GstQuery *query;
- GstBufferPool *pool;
- guint size, min, max;
- GstStructure *config;
- GstCaps *caps;
- GstVideoInfo info, cinfo;
+ gint par_num, par_den;
+ GstFlowReturn ret = GST_FLOW_OK;
+ GstVideoCodecState *state;
+ GstVideoFormat fmt;
+ GstVideoInfo *info = &dec->input_state->info;
+
+ GST_DEBUG_OBJECT (dec, "fps %d/%d, PAR %d/%d",
+ dec->info.fps_numerator, dec->info.fps_denominator,
+ dec->info.aspect_numerator, dec->info.aspect_denominator);
+ /* calculate par
+ * the info.aspect_* values reflect PAR;
+ * 0:x and x:0 are allowed and can be interpreted as 1:1.
+ */
+ par_num = GST_VIDEO_INFO_PAR_N (info);
+ par_den = GST_VIDEO_INFO_PAR_D (info);
+
+ /* If we have a default PAR, see if the decoder specified a different one */
+ if (par_num == 1 && par_den == 1 &&
+ (dec->info.aspect_numerator != 0 && dec->info.aspect_denominator != 0)) {
+ par_num = dec->info.aspect_numerator;
+ par_den = dec->info.aspect_denominator;
+ }
/* theora has:
*
- * frame_width/frame_height : dimension of the encoded frame
+ * width/height : dimension of the encoded frame
* pic_width/pic_height : dimension of the visible part
* pic_x/pic_y : offset in encoded frame where visible part starts
*/
- GST_DEBUG_OBJECT (dec, "frame dimension %dx%d, PAR %d/%d, fps %d/%d",
- dec->info.frame_width, dec->info.frame_height,
- dec->info.aspect_numerator, dec->info.aspect_denominator,
- dec->info.fps_numerator, dec->info.fps_denominator);
- GST_DEBUG_OBJECT (dec, "picture dimension %dx%d, offset %d:%d",
- dec->info.pic_width, dec->info.pic_height, dec->info.pic_x,
- dec->info.pic_y);
+ GST_DEBUG_OBJECT (dec, "dimension %dx%d, PAR %d/%d", dec->info.pic_width,
+ dec->info.pic_height, par_num, par_den);
+ GST_DEBUG_OBJECT (dec, "frame dimension %dx%d, offset %d:%d",
+ dec->info.pic_width, dec->info.pic_height,
+ dec->info.pic_x, dec->info.pic_y);
switch (dec->info.pixel_fmt) {
- case TH_PF_444:
- dec->output_bpp = 24;
- format = GST_VIDEO_FORMAT_Y444;
- break;
case TH_PF_420:
- dec->output_bpp = 12; /* Average bits per pixel. */
- format = GST_VIDEO_FORMAT_I420;
+ fmt = GST_VIDEO_FORMAT_I420;
break;
case TH_PF_422:
- dec->output_bpp = 16;
- format = GST_VIDEO_FORMAT_Y42B;
+ fmt = GST_VIDEO_FORMAT_Y42B;
break;
- default:
- goto invalid_format;
- }
-
- if (dec->info.pic_width != dec->info.frame_width ||
- dec->info.pic_height != dec->info.frame_height ||
- dec->info.pic_x != 0 || dec->info.pic_y != 0) {
- GST_DEBUG_OBJECT (dec, "we need to crop");
- dec->need_cropping = TRUE;
- } else {
- GST_DEBUG_OBJECT (dec, "no cropping needed");
- dec->need_cropping = FALSE;
- }
-
- /* info contains the dimensions for the coded picture before cropping */
- gst_video_info_init (&info);
- gst_video_info_set_format (&info, format, dec->info.frame_width,
- dec->info.frame_height);
- info.fps_n = dec->info.fps_numerator;
- info.fps_d = dec->info.fps_denominator;
- /* calculate par
- * the info.aspect_* values reflect PAR;
- * 0:x and x:0 are allowed and can be interpreted as 1:1.
- */
- if (dec->have_par) {
- /* we had a par on the sink caps, override the encoded par */
- GST_DEBUG_OBJECT (dec, "overriding with input PAR %dx%d", dec->par_num,
- dec->par_den);
- info.par_n = dec->par_num;
- info.par_d = dec->par_den;
- } else {
- /* take encoded par */
- info.par_n = dec->info.aspect_numerator;
- info.par_d = dec->info.aspect_denominator;
- }
- if (info.par_n == 0 || info.par_d == 0) {
- info.par_n = info.par_d = 1;
- }
-
- /* these values are for all versions of the colorspace specified in the
- * theora info */
- info.chroma_site = GST_VIDEO_CHROMA_SITE_JPEG;
- info.colorimetry.range = GST_VIDEO_COLOR_RANGE_16_235;
- info.colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_BT601;
- info.colorimetry.transfer = GST_VIDEO_TRANSFER_BT709;
- switch (dec->info.colorspace) {
- case TH_CS_ITU_REC_470M:
- info.colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT470M;
- break;
- case TH_CS_ITU_REC_470BG:
- info.colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT470BG;
+ case TH_PF_444:
+ fmt = GST_VIDEO_FORMAT_Y444;
break;
default:
- info.colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_UNKNOWN;
- break;
- }
-
- /* remove reconfigure flag now */
- gst_pad_check_reconfigure (dec->srcpad);
-
- /* for the output caps we always take the cropped dimensions */
- cinfo = info;
- gst_video_info_set_format (&cinfo, GST_VIDEO_INFO_FORMAT (&info),
- dec->info.pic_width, dec->info.pic_height);
- caps = gst_video_info_to_caps (&cinfo);
- gst_pad_set_caps (dec->srcpad, caps);
-
- /* find a pool for the negotiated caps now */
- query = gst_query_new_allocation (caps, TRUE);
-
- if (gst_pad_peer_query (dec->srcpad, query)) {
- /* check if downstream supports cropping */
- dec->has_cropping =
- gst_query_has_allocation_meta (query, GST_VIDEO_CROP_META_API_TYPE);
- } else {
- /* not a problem, deal with defaults */
- GST_DEBUG_OBJECT (dec, "didn't get downstream ALLOCATION hints");
- dec->has_cropping = FALSE;
- }
-
- if (gst_query_get_n_allocation_pools (query) > 0) {
- /* we got configuration from our peer, parse them */
- gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
- } else {
- pool = NULL;
- size = 0;
- min = max = 0;
- }
- GST_DEBUG_OBJECT (dec, "downstream cropping %d", dec->has_cropping);
-
- if (pool == NULL) {
- /* we did not get a pool, make one ourselves then */
- pool = gst_video_buffer_pool_new ();
- }
-
- if (dec->pool) {
- gst_buffer_pool_set_active (dec->pool, FALSE);
- gst_object_unref (dec->pool);
- }
- dec->pool = pool;
-
- if (dec->has_cropping) {
- dec->vinfo = info;
- /* we can crop, configure the pool with buffers of caps and size of the
- * decoded picture size and then crop them with metadata */
- gst_caps_unref (caps);
- caps = gst_video_info_to_caps (&info);
- } else {
- /* no cropping, use cropped videoinfo */
- dec->vinfo = cinfo;
+ goto unsupported_format;
}
- size = MAX (size, GST_VIDEO_INFO_SIZE (&dec->vinfo));
- config = gst_buffer_pool_get_config (pool);
- gst_buffer_pool_config_set_params (config, caps, size, min, max);
- gst_caps_unref (caps);
+ GST_VIDEO_INFO_WIDTH (info) = dec->info.pic_width;
+ GST_VIDEO_INFO_HEIGHT (info) = dec->info.pic_height;
- if (gst_query_has_allocation_meta (query, GST_VIDEO_META_API_TYPE)) {
- /* just set the option, if the pool can support it we will transparently use
- * it through the video info API. We could also see if the pool support this
- * option and only activate it then. */
- gst_buffer_pool_config_add_option (config,
- GST_BUFFER_POOL_OPTION_VIDEO_META);
+ /* Ensure correct offsets in chroma for formats that need it
+ * by rounding the offset. libtheora will add proper pixels,
+ * so no need to handle them ourselves. */
+ if (dec->info.pic_x & 1 && dec->info.pixel_fmt != TH_PF_444) {
+ GST_VIDEO_INFO_WIDTH (info)++;
}
-
- gst_buffer_pool_set_config (pool, config);
- /* and activate */
- gst_buffer_pool_set_active (pool, TRUE);
-
- gst_query_unref (query);
-
- return GST_FLOW_OK;
-
- /* ERRORS */
-invalid_format:
- {
- GST_ERROR_OBJECT (dec, "Invalid pixel format %d", dec->info.pixel_fmt);
- return GST_FLOW_ERROR;
+ if (dec->info.pic_y & 1 && dec->info.pixel_fmt == TH_PF_420) {
+ GST_VIDEO_INFO_HEIGHT (info)++;
}
-}
-static GstFlowReturn
-theora_handle_type_packet (GstTheoraDec * dec, ogg_packet * packet)
-{
- GstFlowReturn ret = GST_FLOW_OK;
- GList *walk;
-
- if ((ret = theora_negotiate (dec)) != GST_FLOW_OK)
- goto negotiate_failed;
+ GST_DEBUG_OBJECT (dec, "after fixup frame dimension %dx%d, offset %d:%d",
+ info->width, info->height, dec->info.pic_x, dec->info.pic_y);
/* done */
dec->decoder = th_decode_alloc (&dec->info, dec->setup);
@@ -976,27 +465,52 @@ theora_handle_type_packet (GstTheoraDec * dec, ogg_packet * packet)
GST_WARNING_OBJECT (dec, "Could not enable BITS mode visualisation");
}
- dec->have_header = TRUE;
+ /* Create the output state */
+ dec->output_state = state =
+ gst_video_decoder_set_output_state (GST_VIDEO_DECODER (dec), fmt,
+ info->width, info->height, dec->input_state);
+
+ /* FIXME : Do we still need to set fps/par now that we pass the reference input stream ? */
+ state->info.fps_n = dec->info.fps_numerator;
+ state->info.fps_d = dec->info.fps_denominator;
+ state->info.par_n = par_num;
+ state->info.par_d = par_den;
- if (dec->pendingevents) {
- for (walk = dec->pendingevents; walk; walk = g_list_next (walk))
- gst_pad_push_event (dec->srcpad, GST_EVENT_CAST (walk->data));
- g_list_free (dec->pendingevents);
- dec->pendingevents = NULL;
+ /* these values are for all versions of the colorspace specified in the
+ * theora info */
+ state->info.chroma_site = GST_VIDEO_CHROMA_SITE_JPEG;
+ state->info.colorimetry.range = GST_VIDEO_COLOR_RANGE_16_235;
+ state->info.colorimetry.matrix = GST_VIDEO_COLOR_MATRIX_BT601;
+ state->info.colorimetry.transfer = GST_VIDEO_TRANSFER_BT709;
+ switch (dec->info.colorspace) {
+ case TH_CS_ITU_REC_470M:
+ state->info.colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT470M;
+ break;
+ case TH_CS_ITU_REC_470BG:
+ state->info.colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_BT470BG;
+ break;
+ default:
+ state->info.colorimetry.primaries = GST_VIDEO_COLOR_PRIMARIES_UNKNOWN;
+ break;
}
+ dec->have_header = TRUE;
+
+ /* FIXME : Put this on the next outgoing frame */
+ /* FIXME : */
if (dec->tags) {
- gst_pad_push_event (dec->srcpad, gst_event_new_tag (dec->tags));
+ gst_pad_push_event (GST_VIDEO_DECODER (dec)->srcpad,
+ gst_event_new_tag (dec->tags));
dec->tags = NULL;
}
return ret;
/* ERRORS */
-negotiate_failed:
+unsupported_format:
{
- GST_ERROR_OBJECT (dec, "failed to negotiate");
- return ret;
+ GST_ERROR_OBJECT (dec, "Invalid pixel format %d", dec->info.pixel_fmt);
+ return GST_FLOW_ERROR;
}
}
@@ -1038,103 +552,29 @@ header_read_error:
}
}
-/* returns TRUE if buffer is within segment, else FALSE.
- * if Buffer is on segment border, it's timestamp and duration will be clipped */
-static gboolean
-clip_buffer (GstTheoraDec * dec, GstBuffer * buf)
-{
- gboolean res = TRUE;
- GstClockTime in_ts, in_dur, stop;
- guint64 cstart, cstop;
-
- in_ts = GST_BUFFER_TIMESTAMP (buf);
- in_dur = GST_BUFFER_DURATION (buf);
-
- GST_LOG_OBJECT (dec,
- "timestamp:%" GST_TIME_FORMAT " , duration:%" GST_TIME_FORMAT,
- GST_TIME_ARGS (in_ts), GST_TIME_ARGS (in_dur));
-
- /* can't clip without TIME segment */
- if (dec->segment.format != GST_FORMAT_TIME)
- goto beach;
-
- /* we need a start time */
- if (!GST_CLOCK_TIME_IS_VALID (in_ts))
- goto beach;
-
- /* generate valid stop, if duration unknown, we have unknown stop */
- stop =
- GST_CLOCK_TIME_IS_VALID (in_dur) ? (in_ts + in_dur) : GST_CLOCK_TIME_NONE;
-
- /* now clip */
- if (!(res = gst_segment_clip (&dec->segment, GST_FORMAT_TIME,
- in_ts, stop, &cstart, &cstop)))
- goto beach;
-
- /* update timestamp and possibly duration if the clipped stop time is
- * valid */
- GST_BUFFER_TIMESTAMP (buf) = cstart;
- if (GST_CLOCK_TIME_IS_VALID (cstop))
- GST_BUFFER_DURATION (buf) = cstop - cstart;
-
-beach:
- GST_LOG_OBJECT (dec, "%sdropping", (res ? "not " : ""));
- return res;
-}
-
-static GstFlowReturn
-theora_dec_push_forward (GstTheoraDec * dec, GstBuffer * buf)
-{
- GstFlowReturn result = GST_FLOW_OK;
-
- if (clip_buffer (dec, buf)) {
- if (dec->discont) {
- GST_LOG_OBJECT (dec, "setting DISCONT");
- GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
- dec->discont = FALSE;
- }
- result = gst_pad_push (dec->srcpad, buf);
- } else {
- gst_buffer_unref (buf);
- }
-
- return result;
-}
-
-static GstFlowReturn
-theora_dec_push_reverse (GstTheoraDec * dec, GstBuffer * buf)
-{
- GstFlowReturn result = GST_FLOW_OK;
-
- dec->queued = g_list_prepend (dec->queued, buf);
-
- return result;
-}
-
/* Allocate buffer and copy image data into Y444 format */
static GstFlowReturn
-theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf, GstBuffer ** out)
+theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf,
+ GstVideoCodecFrame * frame)
{
+ GstVideoDecoder *decoder = GST_VIDEO_DECODER (dec);
gint width, height, stride;
- gint pic_width, pic_height;
GstFlowReturn result;
- int i, comp;
+ gint i, comp;
guint8 *dest, *src;
- GstVideoFrame frame;
- GstVideoCropMeta *crop;
+ GstVideoFrame vframe;
+ gint pic_width, pic_height;
gint offset_x, offset_y;
- if G_UNLIKELY
- (gst_pad_check_reconfigure (dec->srcpad))
- if G_UNLIKELY
- ((result = theora_negotiate (dec)) != GST_FLOW_OK)
- goto negotiate_failed;
+ result = gst_video_decoder_alloc_output_frame (decoder, frame);
- result = gst_buffer_pool_acquire_buffer (dec->pool, out, NULL);
- if (G_UNLIKELY (result != GST_FLOW_OK))
- goto no_buffer;
+ if (G_UNLIKELY (result != GST_FLOW_OK)) {
+ GST_DEBUG_OBJECT (dec, "could not get buffer, reason: %s",
+ gst_flow_get_name (result));
+ return result;
+ }
- if (!dec->has_cropping) {
+ if (!dec->can_crop) {
/* we need to crop the hard way */
offset_x = dec->info.pic_x;
offset_y = dec->info.pic_y;
@@ -1154,14 +594,36 @@ theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf, GstBuffer ** out)
pic_width = dec->info.frame_width;
pic_height = dec->info.frame_height;
- if (dec->has_cropping && dec->need_cropping) {
- crop = gst_buffer_add_video_crop_meta (*out);
+ if (dec->info.pic_width != dec->info.frame_width ||
+ dec->info.pic_height != dec->info.frame_height ||
+ dec->info.pic_x != 0 || dec->info.pic_y != 0) {
+ GstVideoMeta *vmeta;
+ GstVideoCropMeta *cmeta;
+
+ vmeta = gst_buffer_get_video_meta (frame->output_buffer);
+ /* If the buffer pool didn't add the meta already
+ * we add it ourselves here */
+ if (!vmeta)
+ vmeta = gst_buffer_add_video_meta (frame->output_buffer,
+ GST_VIDEO_FRAME_FLAG_NONE,
+ dec->output_state->info.finfo->format,
+ dec->info.frame_width, dec->info.frame_height);
+
+ /* Just to be sure that the buffer pool doesn't do something
+ * completely weird and we would crash later
+ */
+ g_assert (vmeta->format == dec->output_state->info.finfo->format);
+ g_assert (vmeta->width == dec->info.frame_width);
+ g_assert (vmeta->height == dec->info.frame_height);
+
+ cmeta = gst_buffer_add_video_crop_meta (frame->output_buffer);
+
/* we can do things slightly more efficient when we know that
* downstream understands clipping */
- crop->x = dec->info.pic_x;
- crop->y = dec->info.pic_y;
- crop->width = dec->info.pic_width;
- crop->height = dec->info.pic_height;
+ cmeta->x = dec->info.pic_x;
+ cmeta->y = dec->info.pic_y;
+ cmeta->width = dec->info.pic_width;
+ cmeta->height = dec->info.pic_height;
}
}
@@ -1169,17 +631,18 @@ theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf, GstBuffer ** out)
GST_CAT_TRACE_OBJECT (GST_CAT_PERFORMANCE, dec,
"doing unavoidable video frame copy");
- if G_UNLIKELY
- (!gst_video_frame_map (&frame, &dec->vinfo, *out, GST_MAP_WRITE))
- goto invalid_frame;
+ if (G_UNLIKELY (!gst_video_frame_map (&vframe, &dec->output_state->info,
+ frame->output_buffer, GST_MAP_WRITE)))
+ goto invalid_frame;
for (comp = 0; comp < 3; comp++) {
width =
- GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (frame.info.finfo, comp, pic_width);
+ GST_VIDEO_FORMAT_INFO_SCALE_WIDTH (vframe.info.finfo, comp, pic_width);
height =
- GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (frame.info.finfo, comp, pic_height);
- stride = GST_VIDEO_FRAME_COMP_STRIDE (&frame, comp);
- dest = GST_VIDEO_FRAME_COMP_DATA (&frame, comp);
+ GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (vframe.info.finfo, comp,
+ pic_height);
+ stride = GST_VIDEO_FRAME_COMP_STRIDE (&vframe, comp);
+ dest = GST_VIDEO_FRAME_COMP_DATA (&vframe, comp);
src = buf[comp].data;
src += ((height == pic_height) ? offset_y : offset_y / 2)
@@ -1193,23 +656,9 @@ theora_handle_image (GstTheoraDec * dec, th_ycbcr_buffer buf, GstBuffer ** out)
src += buf[comp].stride;
}
}
- gst_video_frame_unmap (&frame);
+ gst_video_frame_unmap (&vframe);
return GST_FLOW_OK;
-
- /* ERRORS */
-negotiate_failed:
- {
- GST_DEBUG_OBJECT (dec, "could not negotiate, reason: %s",
- gst_flow_get_name (result));
- return result;
- }
-no_buffer:
- {
- GST_DEBUG_OBJECT (dec, "could not get buffer, reason: %s",
- gst_flow_get_name (result));
- return result;
- }
invalid_frame:
{
GST_DEBUG_OBJECT (dec, "could not map video frame");
@@ -1219,11 +668,10 @@ invalid_frame:
static GstFlowReturn
theora_handle_data_packet (GstTheoraDec * dec, ogg_packet * packet,
- GstClockTime outtime, GstClockTime outdur)
+ GstVideoCodecFrame * frame)
{
/* normal data packet */
th_ycbcr_buffer buf;
- GstBuffer *out;
gboolean keyframe;
GstFlowReturn result;
ogg_int64_t gp;
@@ -1231,17 +679,6 @@ theora_handle_data_packet (GstTheoraDec * dec, ogg_packet * packet,
if (G_UNLIKELY (!dec->have_header))
goto not_initialized;
- /* get timestamp and durations */
- if (outtime == -1)
- outtime = dec->last_timestamp;
- if (outdur == -1)
- outdur = gst_util_uint64_scale_int (GST_SECOND, dec->info.fps_denominator,
- dec->info.fps_numerator);
-
- /* calculate expected next timestamp */
- if (outtime != -1 && outdur != -1)
- dec->last_timestamp = outtime + outdur;
-
/* the second most significant bit of the first data byte is cleared
* for keyframes. We can only check it if it's not a zero-length packet. */
keyframe = packet->bytes && ((packet->packet[0] & 0x40) == 0);
@@ -1258,50 +695,10 @@ theora_handle_data_packet (GstTheoraDec * dec, ogg_packet * packet,
if (G_UNLIKELY (th_decode_packetin (dec->decoder, packet, &gp) < 0))
goto decode_error;
- if (outtime != -1) {
- gboolean need_skip;
- GstClockTime running_time;
- GstClockTime earliest_time;
- gdouble proportion;
-
- /* qos needs to be done on running time */
- running_time = gst_segment_to_running_time (&dec->segment, GST_FORMAT_TIME,
- outtime);
-
- GST_OBJECT_LOCK (dec);
- proportion = dec->proportion;
- earliest_time = dec->earliest_time;
- /* check for QoS, don't perform the last steps of getting and
- * pushing the buffers that are known to be late. */
- need_skip = earliest_time != -1 && running_time <= earliest_time;
- GST_OBJECT_UNLOCK (dec);
-
- if (need_skip) {
- GstMessage *qos_msg;
- guint64 stream_time;
- gint64 jitter;
-
- GST_DEBUG_OBJECT (dec, "skipping decoding: qostime %"
- GST_TIME_FORMAT " <= %" GST_TIME_FORMAT,
- GST_TIME_ARGS (running_time), GST_TIME_ARGS (earliest_time));
-
- dec->dropped++;
-
- stream_time =
- gst_segment_to_stream_time (&dec->segment, GST_FORMAT_TIME, outtime);
- jitter = GST_CLOCK_DIFF (running_time, earliest_time);
-
- qos_msg =
- gst_message_new_qos (GST_OBJECT_CAST (dec), FALSE, running_time,
- stream_time, outtime, outdur);
- gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000);
- gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS,
- dec->processed, dec->dropped);
- gst_element_post_message (GST_ELEMENT_CAST (dec), qos_msg);
-
- goto dropping_qos;
- }
- }
+ if (frame &&
+ (gst_video_decoder_get_max_decode_time (GST_VIDEO_DECODER (dec),
+ frame) < 0))
+ goto dropping_qos;
/* this does postprocessing and set up the decoded frame
* pointers in our yuv variable */
@@ -1312,25 +709,10 @@ theora_handle_data_packet (GstTheoraDec * dec, ogg_packet * packet,
|| (buf[0].height != dec->info.frame_height)))
goto wrong_dimensions;
- result = theora_handle_image (dec, buf, &out);
+ result = theora_handle_image (dec, buf, frame);
if (result != GST_FLOW_OK)
return result;
- GST_BUFFER_OFFSET (out) = dec->frame_nr;
- if (dec->frame_nr != -1)
- dec->frame_nr++;
- GST_BUFFER_OFFSET_END (out) = dec->frame_nr;
-
- GST_BUFFER_TIMESTAMP (out) = outtime;
- GST_BUFFER_DURATION (out) = outdur;
-
- dec->processed++;
-
- if (dec->segment.rate >= 0.0)
- result = theora_dec_push_forward (dec, out);
- else
- result = theora_dec_push_reverse (dec, out);
-
return result;
/* ERRORS */
@@ -1343,16 +725,12 @@ not_initialized:
dropping:
{
GST_WARNING_OBJECT (dec, "dropping frame because we need a keyframe");
- dec->discont = TRUE;
- return GST_FLOW_OK;
+ return GST_VIDEO_DECODER_FLOW_NEED_DATA;
}
dropping_qos:
{
- if (dec->frame_nr != -1)
- dec->frame_nr++;
- dec->discont = TRUE;
GST_WARNING_OBJECT (dec, "dropping frame because of QoS");
- return GST_FLOW_OK;
+ return GST_VIDEO_DECODER_FLOW_NEED_DATA;
}
decode_error:
{
@@ -1375,17 +753,17 @@ wrong_dimensions:
}
static GstFlowReturn
-theora_dec_decode_buffer (GstTheoraDec * dec, GstBuffer * buf)
+theora_dec_decode_buffer (GstTheoraDec * dec, GstBuffer * buf,
+ GstVideoCodecFrame * frame)
{
ogg_packet packet;
GstFlowReturn result = GST_FLOW_OK;
- GstClockTime timestamp, duration;
- GstMapInfo map;
+ GstMapInfo minfo;
/* make ogg_packet out of the buffer */
- gst_buffer_map (buf, &map, GST_MAP_READ);
- packet.packet = map.data;
- packet.bytes = map.size;
+ gst_buffer_map (buf, &minfo, GST_MAP_READ);
+ packet.packet = minfo.data;
+ packet.bytes = minfo.size;
packet.granulepos = -1;
packet.packetno = 0; /* we don't really care */
packet.b_o_s = dec->have_header ? 0 : 1;
@@ -1394,13 +772,7 @@ theora_dec_decode_buffer (GstTheoraDec * dec, GstBuffer * buf)
GST_LOG_OBJECT (dec, "decode buffer of size %ld", packet.bytes);
- /* save last seem timestamp for interpolating the next timestamps using the
- * framerate when we need to */
- timestamp = GST_BUFFER_TIMESTAMP (buf);
- duration = GST_BUFFER_DURATION (buf);
-
- GST_DEBUG_OBJECT (dec, "header=%02x, outtime=%" GST_TIME_FORMAT,
- packet.bytes ? packet.packet[0] : -1, GST_TIME_ARGS (timestamp));
+ GST_DEBUG_OBJECT (dec, "header=%02x", packet.bytes ? packet.packet[0] : -1);
/* switch depending on packet type. A zero byte packet is always a data
* packet; we don't dereference it in that case. */
@@ -1410,257 +782,83 @@ theora_dec_decode_buffer (GstTheoraDec * dec, GstBuffer * buf)
goto done;
}
result = theora_handle_header_packet (dec, &packet);
+ /* header packets are not meant to be displayed */
+ /* FIXME : This is a temporary hack. The proper fix would be to
+ * not call _finish_frame() for these types of packets */
+ GST_VIDEO_CODEC_FRAME_FLAG_SET (frame,
+ GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY);
} else {
- result = theora_handle_data_packet (dec, &packet, timestamp, duration);
+ result = theora_handle_data_packet (dec, &packet, frame);
}
+
done:
- gst_buffer_unmap (buf, &map);
+ gst_buffer_unmap (buf, &minfo);
return result;
}
-/* For reverse playback we use a technique that can be used for
- * any keyframe based video codec.
- *
- * Input:
- * Buffer decoding order: 7 8 9 4 5 6 1 2 3 EOS
- * Keyframe flag: K K
- * Discont flag: D D D
- *
- * - Each Discont marks a discont in the decoding order.
- * - The keyframes mark where we can start decoding.
- *
- * First we prepend incomming buffers to the gather queue, whenever we receive
- * a discont, we flush out the gather queue.
- *
- * The above data will be accumulated in the gather queue like this:
- *
- * gather queue: 9 8 7
- * D
- *
- * Whe buffer 4 is received (with a DISCONT), we flush the gather queue like
- * this:
- *
- * while (gather)
- * take head of queue and prepend to decode queue.
- * if we copied a keyframe, decode the decode queue.
- *
- * After we flushed the gather queue, we add 4 to the (now empty) gather queue.
- * We get the following situation:
- *
- * gather queue: 4
- * decode queue: 7 8 9
- *
- * After we received 5 (Keyframe) and 6:
- *
- * gather queue: 6 5 4
- * decode queue: 7 8 9
- *
- * When we receive 1 (DISCONT) which triggers a flush of the gather queue:
- *
- * Copy head of the gather queue (6) to decode queue:
- *
- * gather queue: 5 4
- * decode queue: 6 7 8 9
- *
- * Copy head of the gather queue (5) to decode queue. This is a keyframe so we
- * can start decoding.
- *
- * gather queue: 4
- * decode queue: 5 6 7 8 9
- *
- * Decode frames in decode queue, store raw decoded data in output queue, we
- * can take the head of the decode queue and prepend the decoded result in the
- * output queue:
- *
- * gather queue: 4
- * decode queue:
- * output queue: 9 8 7 6 5
- *
- * Now output all the frames in the output queue, picking a frame from the
- * head of the queue.
- *
- * Copy head of the gather queue (4) to decode queue, we flushed the gather
- * queue and can now store input buffer in the gather queue:
- *
- * gather queue: 1
- * decode queue: 4
- *
- * When we receive EOS, the queue looks like:
- *
- * gather queue: 3 2 1
- * decode queue: 4
- *
- * Fill decode queue, first keyframe we copy is 2:
- *
- * gather queue: 1
- * decode queue: 2 3 4
- *
- * Decoded output:
- *
- * gather queue: 1
- * decode queue:
- * output queue: 4 3 2
- *
- * Leftover buffer 1 cannot be decoded and must be discarded.
- */
static GstFlowReturn
-theora_dec_flush_decode (GstTheoraDec * dec)
+theora_dec_handle_frame (GstVideoDecoder * bdec, GstVideoCodecFrame * frame)
{
- GstFlowReturn res = GST_FLOW_OK;
-
- while (dec->decode) {
- GstBuffer *buf = GST_BUFFER_CAST (dec->decode->data);
-
- GST_DEBUG_OBJECT (dec, "decoding buffer %p, ts %" GST_TIME_FORMAT,
- buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
-
- /* decode buffer, prepend to output queue */
- res = theora_dec_decode_buffer (dec, buf);
-
- /* don't need it anymore now */
- gst_buffer_unref (buf);
-
- dec->decode = g_list_delete_link (dec->decode, dec->decode);
- }
- while (dec->queued) {
- GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data);
-
- /* iterate output queue an push downstream */
- res = gst_pad_push (dec->srcpad, buf);
-
- dec->queued = g_list_delete_link (dec->queued, dec->queued);
- }
-
- return res;
-}
+ GstTheoraDec *dec;
+ GstFlowReturn res;
-static GstFlowReturn
-theora_dec_chain_reverse (GstTheoraDec * dec, gboolean discont, GstBuffer * buf)
-{
- GstFlowReturn res = GST_FLOW_OK;
-
- /* if we have a discont, move buffers to the decode list */
- if (G_UNLIKELY (discont)) {
- GST_DEBUG_OBJECT (dec, "received discont,gathering buffers");
- while (dec->gather) {
- GstBuffer *gbuf;
- guint8 data[1];
-
- gbuf = GST_BUFFER_CAST (dec->gather->data);
- /* remove from the gather list */
- dec->gather = g_list_delete_link (dec->gather, dec->gather);
- /* copy to decode queue */
- dec->decode = g_list_prepend (dec->decode, gbuf);
-
- /* if we copied a keyframe, flush and decode the decode queue */
- if (gst_buffer_extract (gbuf, 0, data, 1) == 1) {
- if ((data[0] & 0x40) == 0) {
- GST_DEBUG_OBJECT (dec, "copied keyframe");
- res = theora_dec_flush_decode (dec);
- }
- }
- }
- }
+ dec = GST_THEORA_DEC (bdec);
- /* add buffer to gather queue */
- GST_DEBUG_OBJECT (dec, "gathering buffer %p, size %" G_GSIZE_FORMAT, buf,
- gst_buffer_get_size (buf));
- dec->gather = g_list_prepend (dec->gather, buf);
+ res = theora_dec_decode_buffer (dec, frame->input_buffer, frame);
+ if (res == GST_FLOW_OK)
+ res = gst_video_decoder_finish_frame (bdec, frame);
return res;
}
-static GstFlowReturn
-theora_dec_chain_forward (GstTheoraDec * dec, gboolean discont,
- GstBuffer * buffer)
+static gboolean
+theora_dec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
{
- GstFlowReturn result;
+ GstTheoraDec *dec = GST_THEORA_DEC (decoder);
+ GstVideoCodecState *state;
+ GstBufferPool *pool;
+ guint size, min, max;
+ GstStructure *config;
- result = theora_dec_decode_buffer (dec, buffer);
+ if (!GST_VIDEO_DECODER_CLASS (parent_class)->decide_allocation (decoder,
+ query))
+ return FALSE;
- gst_buffer_unref (buffer);
+ state = gst_video_decoder_get_output_state (decoder);
- return result;
-}
+ gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
-static GstFlowReturn
-theora_dec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
-{
- GstTheoraDec *dec;
- GstFlowReturn res;
- gboolean discont;
-
- dec = GST_THEORA_DEC (parent);
-
- /* peel of DISCONT flag */
- discont = GST_BUFFER_IS_DISCONT (buf);
-
- /* resync on DISCONT */
- if (G_UNLIKELY (discont)) {
- GST_DEBUG_OBJECT (dec, "received DISCONT buffer");
- dec->need_keyframe = TRUE;
- dec->last_timestamp = -1;
- dec->discont = TRUE;
+ dec->can_crop = FALSE;
+ config = gst_buffer_pool_get_config (pool);
+ if (gst_query_has_allocation_meta (query, GST_VIDEO_META_API_TYPE)) {
+ gst_buffer_pool_config_add_option (config,
+ GST_BUFFER_POOL_OPTION_VIDEO_META);
+ dec->can_crop =
+ gst_query_has_allocation_meta (query, GST_VIDEO_CROP_META_API_TYPE);
}
- if (dec->segment.rate > 0.0)
- res = theora_dec_chain_forward (dec, discont, buf);
- else
- res = theora_dec_chain_reverse (dec, discont, buf);
-
- return res;
-}
+ if (dec->can_crop) {
+ GstVideoInfo info = state->info;
+ GstCaps *caps;
-static GstStateChangeReturn
-theora_dec_change_state (GstElement * element, GstStateChange transition)
-{
- GstTheoraDec *dec = GST_THEORA_DEC (element);
- GstStateChangeReturn ret;
-
- switch (transition) {
- case GST_STATE_CHANGE_NULL_TO_READY:
- break;
- case GST_STATE_CHANGE_READY_TO_PAUSED:
- th_info_clear (&dec->info);
- th_comment_clear (&dec->comment);
- GST_DEBUG_OBJECT (dec, "Setting have_header to FALSE in READY->PAUSED");
- dec->have_header = FALSE;
- dec->have_par = FALSE;
- gst_theora_dec_reset (dec);
- break;
- case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
- break;
- default:
- break;
+ /* Calculate uncropped size */
+ gst_video_info_set_format (&info, info.finfo->format, dec->info.frame_width,
+ dec->info.frame_height);
+ size = MAX (size, info.size);
+ caps = gst_video_info_to_caps (&info);
+ gst_buffer_pool_config_set_params (config, caps, size, min, max);
+ gst_caps_unref (caps);
}
- ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+ gst_buffer_pool_set_config (pool, config);
- switch (transition) {
- case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
- break;
- case GST_STATE_CHANGE_PAUSED_TO_READY:
- th_info_clear (&dec->info);
- th_comment_clear (&dec->comment);
- th_setup_free (dec->setup);
- dec->setup = NULL;
- th_decode_free (dec->decoder);
- dec->decoder = NULL;
- gst_theora_dec_reset (dec);
- if (dec->pool) {
- gst_buffer_pool_set_active (dec->pool, FALSE);
- gst_object_unref (dec->pool);
- dec->pool = NULL;
- }
- break;
- case GST_STATE_CHANGE_READY_TO_NULL:
- break;
- default:
- break;
- }
+ gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
- return ret;
+ gst_object_unref (pool);
+ gst_video_codec_state_unref (state);
+
+ return TRUE;
}
static void
@@ -1712,3 +910,10 @@ theora_dec_get_property (GObject * object, guint prop_id,
break;
}
}
+
+gboolean
+gst_theora_dec_register (GstPlugin * plugin)
+{
+ return gst_element_register (plugin, "theoradec",
+ GST_RANK_PRIMARY, GST_TYPE_THEORA_DEC);
+}
diff --git a/ext/theora/gsttheoradec.h b/ext/theora/gsttheoradec.h
index e9fe1a8..be95801 100644
--- a/ext/theora/gsttheoradec.h
+++ b/ext/theora/gsttheoradec.h
@@ -1,5 +1,8 @@
/* GStreamer
* Copyright (C) 2004 Benjamin Otte <in7y118@public.uni-hamburg.de>
+ * Copyright (c) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.com>
+ * Author : Mark Nauwelaerts <mark.nauwelaerts@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
@@ -25,9 +28,9 @@
#endif
#include <gst/gst.h>
+#include <gst/video/gstvideodecoder.h>
#include <theora/theoradec.h>
#include <string.h>
-#include <gst/video/video.h>
G_BEGIN_DECLS
@@ -52,69 +55,39 @@ typedef struct _GstTheoraDecClass GstTheoraDecClass;
*/
struct _GstTheoraDec
{
- GstElement element;
-
- /* Pads */
- GstPad *sinkpad;
- GstPad *srcpad;
+ GstVideoDecoder element;
/* theora decoder state */
th_dec_ctx *decoder;
+ //theora_state state;
th_setup_info *setup;
th_info info;
th_comment comment;
gboolean have_header;
- GstClockTime last_timestamp;
- guint64 frame_nr;
gboolean need_keyframe;
- GstVideoInfo vinfo;
-
- gint output_bpp;
- GstBufferPool *pool;
- gboolean has_cropping;
- gboolean need_cropping;
+ GstVideoCodecState *input_state;
+ GstVideoCodecState *output_state;
- /* telemetry debugging options */
+ /* telemetry debuging options */
gint telemetry_mv;
gint telemetry_mbmode;
gint telemetry_qi;
gint telemetry_bits;
- /* list of buffers that need timestamps */
- GList *queued;
- /* list of raw output buffers */
- GList *output;
- /* gather/decode queues for reverse playback */
- GList *gather;
- GList *decode;
- GList *pendingevents;
-
GstTagList *tags;
-
- /* segment info */ /* with STREAM_LOCK */
- GstSegment segment;
- gboolean discont;
- guint32 seqnum;
-
- /* QoS stuff */ /* with LOCK*/
- gdouble proportion;
- GstClockTime earliest_time;
- guint64 processed;
- guint64 dropped;
-
- gboolean have_par;
- gint par_num;
- gint par_den;
+
+ gboolean can_crop;
};
struct _GstTheoraDecClass
{
- GstElementClass parent_class;
+ GstVideoDecoderClass parent_class;
};
GType gst_theora_dec_get_type (void);
+gboolean gst_theora_dec_register (GstPlugin * plugin);
G_END_DECLS
diff --git a/ext/theora/gsttheoraenc.c b/ext/theora/gsttheoraenc.c
index 1d07506..92965dd 100644
--- a/ext/theora/gsttheoraenc.c
+++ b/ext/theora/gsttheoraenc.c
@@ -1,5 +1,8 @@
/* GStreamer
* Copyright (C) 2004 Wim Taymans <wim@fluendo.com>
+ * Copyright (c) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.com>
+ * Author : Mark Nauwelaerts <mark.nauwelaerts@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
@@ -62,6 +65,7 @@
#include <gst/tag/tag.h>
#include <gst/video/video.h>
+#include <gst/video/gstvideometa.h>
#define GST_CAT_DEFAULT theoraenc_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
@@ -111,7 +115,6 @@ _ilog (unsigned int v)
#define THEORA_DEF_RATE_BUFFER 0
#define THEORA_DEF_MULTIPASS_CACHE_FILE NULL
#define THEORA_DEF_MULTIPASS_MODE MULTIPASS_MODE_SINGLE_PASS
-#define THEORA_DEF_DUP_ON_GAP FALSE
enum
{
PROP_0,
@@ -127,8 +130,7 @@ enum
PROP_CAP_UNDERFLOW,
PROP_RATE_BUFFER,
PROP_MULTIPASS_CACHE_FILE,
- PROP_MULTIPASS_MODE,
- PROP_DUP_ON_GAP
+ PROP_MULTIPASS_MODE
/* FILL ME */
};
@@ -151,57 +153,6 @@ granulepos_to_timestamp (GstTheoraEnc * theoraenc, ogg_int64_t granulepos)
theoraenc->info.fps_numerator);
}
-/* Generate a dummy encoder context for use in th_encode_ctl queries
- Release with th_encode_free()
- This and the next routine from theora/examples/libtheora_info.c */
-static th_enc_ctx *
-dummy_encode_ctx (void)
-{
- th_enc_ctx *ctx;
- th_info info;
-
- /* set the minimal video parameters */
- th_info_init (&info);
- info.frame_width = 320;
- info.frame_height = 240;
- info.fps_numerator = 1;
- info.fps_denominator = 1;
-
- /* allocate and initialize a context object */
- ctx = th_encode_alloc (&info);
- if (!ctx)
- GST_WARNING ("Failed to allocate dummy encoder context.");
-
- /* clear the info struct */
- th_info_clear (&info);
-
- return ctx;
-}
-
-/* Query the current and maximum values for the 'speed level' setting.
- This can be used to ask the encoder to trade off encoding quality
- vs. performance cost, for example to adapt to realtime constraints. */
-static int
-check_speed_level (th_enc_ctx * ctx, int *current, int *max)
-{
- int ret;
-
- /* query the current speed level */
- ret = th_encode_ctl (ctx, TH_ENCCTL_GET_SPLEVEL, current, sizeof (int));
- if (ret) {
- GST_WARNING ("Error %d getting current speed level.", ret);
- return ret;
- }
- /* query the maximum speed level, which varies by encoder version */
- ret = th_encode_ctl (ctx, TH_ENCCTL_GET_SPLEVEL_MAX, max, sizeof (int));
- if (ret) {
- GST_WARNING ("Error %d getting maximum speed level.", ret);
- return ret;
- }
-
- return 0;
-}
-
static GstStaticPadTemplate theora_enc_sink_factory =
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
@@ -222,22 +173,22 @@ GST_STATIC_PAD_TEMPLATE ("src",
);
#define gst_theora_enc_parent_class parent_class
-G_DEFINE_TYPE_WITH_CODE (GstTheoraEnc, gst_theora_enc,
- GST_TYPE_ELEMENT, G_IMPLEMENT_INTERFACE (GST_TYPE_PRESET, NULL));
-
-static GstCaps *theora_enc_src_caps;
-
-static gboolean theora_enc_sink_event (GstPad * pad, GstObject * parent,
- GstEvent * event);
-static gboolean theora_enc_src_event (GstPad * pad, GstObject * parent,
- GstEvent * event);
-static GstFlowReturn theora_enc_chain (GstPad * pad, GstObject * parent,
- GstBuffer * buffer);
-static GstStateChangeReturn theora_enc_change_state (GstElement * element,
- GstStateChange transition);
-static gboolean theora_enc_sink_query (GstPad * pad, GstObject * parent,
+G_DEFINE_TYPE (GstTheoraEnc, gst_theora_enc, GST_TYPE_VIDEO_ENCODER);
+
+static gboolean theora_enc_start (GstVideoEncoder * enc);
+static gboolean theora_enc_stop (GstVideoEncoder * enc);
+static gboolean theora_enc_set_format (GstVideoEncoder * enc,
+ GstVideoCodecState * state);
+static GstFlowReturn theora_enc_handle_frame (GstVideoEncoder * enc,
+ GstVideoCodecFrame * frame);
+static GstFlowReturn theora_enc_pre_push (GstVideoEncoder * benc,
+ GstVideoCodecFrame * frame);
+static GstFlowReturn theora_enc_finish (GstVideoEncoder * enc);
+static gboolean theora_enc_propose_allocation (GstVideoEncoder * encoder,
GstQuery * query);
-static gboolean theora_enc_sink_setcaps (GstTheoraEnc * enc, GstCaps * caps);
+
+static GstCaps *theora_enc_getcaps (GstVideoEncoder * encoder,
+ GstCaps * filter);
static void theora_enc_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
static void theora_enc_set_property (GObject * object, guint prop_id,
@@ -247,39 +198,39 @@ static void theora_enc_finalize (GObject * object);
static gboolean theora_enc_write_multipass_cache (GstTheoraEnc * enc,
gboolean begin, gboolean eos);
-static char *theora_enc_get_supported_formats (void);
-
-static void theora_timefifo_free (GstTheoraEnc * enc);
-static GstFlowReturn
-theora_enc_encode_and_push (GstTheoraEnc * enc, ogg_packet op,
- GstBuffer * buffer);
-
static void
gst_theora_enc_class_init (GstTheoraEncClass * klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
- GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
- char *caps_string;
-
- /* query runtime encoder properties */
- th_enc_ctx *th_ctx;
- int default_speed_level = THEORA_DEF_SPEEDLEVEL;
- int max_speed_level = default_speed_level;
-
- GST_DEBUG_CATEGORY_INIT (theoraenc_debug, "theoraenc", 0, "Theora encoder");
-
- th_ctx = dummy_encode_ctx ();
- if (th_ctx) {
- if (check_speed_level (th_ctx, &default_speed_level, &max_speed_level))
- GST_WARNING
- ("Failed to determine settings for the speed-level property.");
- th_encode_free (th_ctx);
- }
+ GstElementClass *element_class = (GstElementClass *) klass;
+ GstVideoEncoderClass *gstvideo_encoder_class =
+ GST_VIDEO_ENCODER_CLASS (klass);
gobject_class->set_property = theora_enc_set_property;
gobject_class->get_property = theora_enc_get_property;
gobject_class->finalize = theora_enc_finalize;
+ gst_element_class_add_pad_template (element_class,
+ gst_static_pad_template_get (&theora_enc_src_factory));
+ gst_element_class_add_pad_template (element_class,
+ gst_static_pad_template_get (&theora_enc_sink_factory));
+ gst_element_class_set_details_simple (element_class,
+ "Theora video encoder", "Codec/Encoder/Video",
+ "encode raw YUV video to a theora stream",
+ "Wim Taymans <wim@fluendo.com>");
+
+ gstvideo_encoder_class->start = GST_DEBUG_FUNCPTR (theora_enc_start);
+ gstvideo_encoder_class->stop = GST_DEBUG_FUNCPTR (theora_enc_stop);
+ gstvideo_encoder_class->set_format =
+ GST_DEBUG_FUNCPTR (theora_enc_set_format);
+ gstvideo_encoder_class->handle_frame =
+ GST_DEBUG_FUNCPTR (theora_enc_handle_frame);
+ gstvideo_encoder_class->pre_push = GST_DEBUG_FUNCPTR (theora_enc_pre_push);
+ gstvideo_encoder_class->finish = GST_DEBUG_FUNCPTR (theora_enc_finish);
+ gstvideo_encoder_class->getcaps = GST_DEBUG_FUNCPTR (theora_enc_getcaps);
+ gstvideo_encoder_class->propose_allocation =
+ GST_DEBUG_FUNCPTR (theora_enc_propose_allocation);
+
/* general encoding stream options */
g_object_class_install_property (gobject_class, PROP_BITRATE,
g_param_spec_int ("bitrate", "Bitrate", "Compressed video bitrate (kbps)",
@@ -306,38 +257,40 @@ gst_theora_enc_class_init (GstTheoraEncClass * klass)
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_SPEEDLEVEL,
g_param_spec_int ("speed-level", "Speed level",
- "Controls the amount of analysis performed when encoding."
- " Higher values trade compression quality for speed."
- " This property requires libtheora version >= 1.0"
- ", and the maximum value may vary based on encoder version.",
- 0, max_speed_level, default_speed_level,
- (GParamFlags) G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
- G_PARAM_STATIC_STRINGS));
+ "Controls the amount of motion vector searching done while "
+ "encoding. This property requires libtheora version >= 1.0",
+ 0, 3, THEORA_DEF_SPEEDLEVEL,
+ (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_VP3_COMPATIBLE,
g_param_spec_boolean ("vp3-compatible", "VP3 Compatible",
- "Disables non-VP3 compatible features",
+ "Disables non-VP3 compatible features."
+ " This property requires libtheora version >= 1.1",
THEORA_DEF_VP3_COMPATIBLE,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_DROP_FRAMES,
- g_param_spec_boolean ("drop-frames", "Drop Frames",
- "Allow or disallow frame dropping",
+ g_param_spec_boolean ("drop-frames", "VP3 Compatible",
+ "Allow or disallow frame dropping."
+ " This property requires libtheora version >= 1.1",
THEORA_DEF_DROP_FRAMES,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_CAP_OVERFLOW,
- g_param_spec_boolean ("cap-overflow", "Cap Overflow",
- "Enable capping of bit reservoir overflows",
+ g_param_spec_boolean ("cap-overflow", "VP3 Compatible",
+ "Enable capping of bit reservoir overflows."
+ " This property requires libtheora version >= 1.1",
THEORA_DEF_CAP_OVERFLOW,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_CAP_UNDERFLOW,
- g_param_spec_boolean ("cap-underflow", "Cap Underflow",
- "Enable capping of bit reservoir underflows",
+ g_param_spec_boolean ("cap-underflow", "VP3 Compatible",
+ "Enable capping of bit reservoir underflows."
+ " This property requires libtheora version >= 1.1",
THEORA_DEF_CAP_UNDERFLOW,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_RATE_BUFFER,
g_param_spec_int ("rate-buffer", "Rate Control Buffer",
"Sets the size of the rate control buffer, in units of frames. "
"The default value of 0 instructs the encoder to automatically "
- "select an appropriate value",
+ "select an appropriate value."
+ " This property requires libtheora version >= 1.1",
0, 1000, THEORA_DEF_RATE_BUFFER,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_MULTIPASS_CACHE_FILE,
@@ -349,70 +302,25 @@ gst_theora_enc_class_init (GstTheoraEncClass * klass)
"Single pass or first/second pass", GST_TYPE_MULTIPASS_MODE,
THEORA_DEF_MULTIPASS_MODE,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (gobject_class, PROP_DUP_ON_GAP,
- g_param_spec_boolean ("dup-on-gap", "Create DUP frame on GAP flag",
- "Allow codec to handle frames with GAP flag as duplicates "
- "of previous frame. "
- "This is good to work with variable frame rate stabilized "
- "by videorate element. It will add variable latency with maximal "
- "size of keyframe distance, this way it is a bad idea "
- "to use with live streams.",
- THEORA_DEF_DUP_ON_GAP,
- (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&theora_enc_src_factory));
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&theora_enc_sink_factory));
- gst_element_class_set_static_metadata (gstelement_class,
- "Theora video encoder", "Codec/Encoder/Video",
- "encode raw YUV video to a theora stream",
- "Wim Taymans <wim@fluendo.com>");
-
- caps_string = g_strdup_printf ("video/x-raw, "
- "format = (string) { %s }, "
- "framerate = (fraction) [1/MAX, MAX], "
- "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
- theora_enc_get_supported_formats ());
- theora_enc_src_caps = gst_caps_from_string (caps_string);
- g_free (caps_string);
- gstelement_class->change_state = theora_enc_change_state;
+ GST_DEBUG_CATEGORY_INIT (theoraenc_debug, "theoraenc", 0, "Theora encoder");
}
static void
gst_theora_enc_init (GstTheoraEnc * enc)
{
- enc->sinkpad =
- gst_pad_new_from_static_template (&theora_enc_sink_factory, "sink");
- gst_pad_set_chain_function (enc->sinkpad, theora_enc_chain);
- gst_pad_set_event_function (enc->sinkpad, theora_enc_sink_event);
- gst_pad_set_query_function (enc->sinkpad, theora_enc_sink_query);
- gst_element_add_pad (GST_ELEMENT (enc), enc->sinkpad);
-
- enc->srcpad =
- gst_pad_new_from_static_template (&theora_enc_src_factory, "src");
- gst_pad_set_event_function (enc->srcpad, theora_enc_src_event);
- gst_pad_use_fixed_caps (enc->srcpad);
- gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad);
-
- gst_segment_init (&enc->segment, GST_FORMAT_UNDEFINED);
-
enc->video_bitrate = THEORA_DEF_BITRATE;
enc->video_quality = THEORA_DEF_QUALITY;
enc->keyframe_auto = THEORA_DEF_KEYFRAME_AUTO;
enc->keyframe_freq = THEORA_DEF_KEYFRAME_FREQ;
enc->keyframe_force = THEORA_DEF_KEYFRAME_FREQ_FORCE;
- enc->expected_ts = GST_CLOCK_TIME_NONE;
-
- /* enc->speed_level is set to the libtheora default by the constructor */
+ enc->speed_level = THEORA_DEF_SPEEDLEVEL;
enc->vp3_compatible = THEORA_DEF_VP3_COMPATIBLE;
enc->drop_frames = THEORA_DEF_DROP_FRAMES;
enc->cap_overflow = THEORA_DEF_CAP_OVERFLOW;
enc->cap_underflow = THEORA_DEF_CAP_UNDERFLOW;
enc->rate_buffer = THEORA_DEF_RATE_BUFFER;
- enc->dup_on_gap = THEORA_DEF_DUP_ON_GAP;
enc->multipass_mode = THEORA_DEF_MULTIPASS_MODE;
enc->multipass_cache_file = THEORA_DEF_MULTIPASS_CACHE_FILE;
@@ -447,6 +355,9 @@ theora_enc_finalize (GObject * object)
theora_enc_clear_multipass_cache (enc);
+ if (enc->input_state)
+ gst_video_codec_state_unref (enc->input_state);
+
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -458,13 +369,7 @@ theora_enc_reset (GstTheoraEnc * enc)
GST_OBJECT_LOCK (enc);
enc->info.target_bitrate = enc->video_bitrate;
- if (enc->quality_changed) {
- enc->info.quality = enc->video_quality;
- } else {
- if (enc->video_bitrate == 0) {
- enc->info.quality = enc->video_quality;
- }
- }
+ enc->info.quality = enc->video_quality;
enc->bitrate_changed = FALSE;
enc->quality_changed = FALSE;
GST_OBJECT_UNLOCK (enc);
@@ -507,19 +412,63 @@ theora_enc_reset (GstTheoraEnc * enc)
theora_enc_write_multipass_cache (enc, TRUE, FALSE);
}
-static void
-theora_enc_clear (GstTheoraEnc * enc)
+static gboolean
+theora_enc_start (GstVideoEncoder * benc)
{
+ GstTheoraEnc *enc;
+
+ GST_DEBUG_OBJECT (benc, "start: init theora");
+ enc = GST_THEORA_ENC (benc);
+
+ th_info_init (&enc->info);
+ th_comment_init (&enc->comment);
enc->packetno = 0;
- enc->bytes_out = 0;
- enc->granulepos_offset = 0;
- enc->timestamp_offset = 0;
- theora_timefifo_free (enc);
+ if (enc->multipass_mode >= MULTIPASS_MODE_FIRST_PASS) {
+ GError *err = NULL;
+
+ if (!enc->multipass_cache_file) {
+ GST_ELEMENT_ERROR (enc, LIBRARY, SETTINGS, (NULL), (NULL));
+ return FALSE;
+ }
+ enc->multipass_cache_fd =
+ g_io_channel_new_file (enc->multipass_cache_file,
+ (enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS ? "w" : "r"), &err);
+
+ if (enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS)
+ enc->multipass_cache_adapter = gst_adapter_new ();
+
+ if (!enc->multipass_cache_fd) {
+ GST_ELEMENT_ERROR (enc, RESOURCE, OPEN_READ, (NULL),
+ ("Failed to open multipass cache file: %s", err->message));
+ g_error_free (err);
+ return FALSE;
+ }
- enc->next_ts = GST_CLOCK_TIME_NONE;
- enc->next_discont = FALSE;
- enc->expected_ts = GST_CLOCK_TIME_NONE;
+ g_io_channel_set_encoding (enc->multipass_cache_fd, NULL, NULL);
+ }
+
+ return TRUE;
+}
+
+static gboolean
+theora_enc_stop (GstVideoEncoder * benc)
+{
+ GstTheoraEnc *enc;
+
+ GST_DEBUG_OBJECT (benc, "stop: clearing theora state");
+ enc = GST_THEORA_ENC (benc);
+
+ if (enc->encoder) {
+ th_encode_free (enc->encoder);
+ enc->encoder = NULL;
+ }
+ th_comment_clear (&enc->comment);
+ th_info_clear (&enc->info);
+
+ enc->initialised = FALSE;
+
+ return TRUE;
}
static char *
@@ -527,10 +476,10 @@ theora_enc_get_supported_formats (void)
{
th_enc_ctx *encoder;
th_info info;
- static const struct
+ struct
{
th_pixel_fmt pixelformat;
- const char fourcc[5];
+ const char *fourcc;
} formats[] = {
{
TH_PF_420, "I420"}, {
@@ -568,111 +517,51 @@ theora_enc_get_supported_formats (void)
}
static GstCaps *
-theora_enc_sink_getcaps (GstPad * pad, GstCaps * filter)
+theora_enc_getcaps (GstVideoEncoder * encoder, GstCaps * filter)
{
- GstTheoraEnc *encoder;
- GstPad *peer;
- GstCaps *caps;
-
- /* If we already have caps return them */
- if ((caps = gst_pad_get_current_caps (pad)) != NULL)
- return caps;
+ GstCaps *caps, *ret;
+ char *supported_formats, *caps_string;
- encoder = GST_THEORA_ENC (gst_pad_get_parent (pad));
- if (!encoder)
+ supported_formats = theora_enc_get_supported_formats ();
+ if (!supported_formats) {
+ GST_WARNING ("no supported formats found. Encoder disabled?");
return gst_caps_new_empty ();
-
- peer = gst_pad_get_peer (encoder->srcpad);
- if (peer) {
- GstCaps *templ_caps;
- GstCaps *peer_caps, *tmp_caps;
- GstStructure *s;
- guint i, n;
-
- peer_caps = gst_pad_query_caps (peer, NULL);
-
- /* Translate peercaps to YUV */
- peer_caps = gst_caps_make_writable (peer_caps);
- n = gst_caps_get_size (peer_caps);
- for (i = 0; i < n; i++) {
- s = gst_caps_get_structure (peer_caps, i);
-
- gst_structure_set_name (s, "video/x-raw");
- gst_structure_remove_field (s, "streamheader");
- }
-
- templ_caps = gst_pad_get_pad_template_caps (pad);
-
- tmp_caps = gst_caps_intersect (peer_caps, templ_caps);
- caps = gst_caps_intersect (tmp_caps, theora_enc_src_caps);
- gst_caps_unref (tmp_caps);
- gst_caps_unref (peer_caps);
- gst_object_unref (peer);
- peer = NULL;
- } else {
- caps = gst_caps_ref (theora_enc_src_caps);
}
- gst_object_unref (encoder);
+ caps_string = g_strdup_printf ("video/x-raw, "
+ "format = (string) { %s }, "
+ "framerate = (fraction) [1/MAX, MAX], "
+ "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
+ supported_formats);
+ caps = gst_caps_from_string (caps_string);
+ g_free (caps_string);
+ g_free (supported_formats);
+ GST_DEBUG ("Supported caps: %" GST_PTR_FORMAT, caps);
- if (filter) {
- GstCaps *intersection;
+ ret = gst_video_encoder_proxy_getcaps (encoder, caps, filter);
+ gst_caps_unref (caps);
- intersection =
- gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
- gst_caps_unref (caps);
- caps = intersection;
- }
-
- return caps;
+ return ret;
}
static gboolean
-theora_enc_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
+theora_enc_set_format (GstVideoEncoder * benc, GstVideoCodecState * state)
{
- gboolean res = FALSE;
+ GstTheoraEnc *enc = GST_THEORA_ENC (benc);
+ GstVideoInfo *info = &state->info;
- switch (GST_QUERY_TYPE (query)) {
- case GST_QUERY_CAPS:
- {
- GstCaps *filter, *caps;
-
- gst_query_parse_caps (query, &filter);
- caps = theora_enc_sink_getcaps (pad, filter);
- gst_query_set_caps_result (query, caps);
- gst_caps_unref (caps);
- res = TRUE;
- break;
- }
- default:
- res = gst_pad_query_default (pad, parent, query);
- break;
- }
-
- return res;
-}
-
-static gboolean
-theora_enc_sink_setcaps (GstTheoraEnc * enc, GstCaps * caps)
-{
- GstVideoInfo info;
+ enc->width = GST_VIDEO_INFO_WIDTH (info);
+ enc->height = GST_VIDEO_INFO_HEIGHT (info);
th_info_clear (&enc->info);
th_info_init (&enc->info);
-
- if (!gst_video_info_from_caps (&info, caps))
- goto invalid_caps;
-
- enc->vinfo = info;
-
/* Theora has a divisible-by-sixteen restriction for the encoded video size but
* we can define a picture area using pic_width/pic_height */
- enc->info.frame_width = GST_ROUND_UP_16 (info.width);
- enc->info.frame_height = GST_ROUND_UP_16 (info.height);
- enc->info.pic_width = info.width;
- enc->info.pic_height = info.height;
-
- switch (GST_VIDEO_INFO_FORMAT (&info)) {
+ enc->info.frame_width = GST_ROUND_UP_16 (enc->width);
+ enc->info.frame_height = GST_ROUND_UP_16 (enc->height);
+ enc->info.pic_width = enc->width;
+ enc->info.pic_height = enc->height;
+ switch (GST_VIDEO_INFO_FORMAT (info)) {
case GST_VIDEO_FORMAT_I420:
enc->info.pixel_fmt = TH_PF_420;
break;
@@ -686,22 +575,18 @@ theora_enc_sink_setcaps (GstTheoraEnc * enc, GstCaps * caps)
g_assert_not_reached ();
}
- enc->info.fps_numerator = info.fps_n;
- enc->info.fps_denominator = info.fps_d;
-
- enc->info.aspect_numerator = info.par_n;
- enc->info.aspect_denominator = info.par_d;
-#if 0
- /* setting them to 0 indicates that the decoder can chose a good aspect
- * ratio, defaulting to 1/1 */
- enc->info.aspect_numerator = 0;
- enc->par_n = 1;
- enc->info.aspect_denominator = 0;
- enc->par_d = 1;
-#endif
+ enc->info.fps_numerator = enc->fps_n = GST_VIDEO_INFO_FPS_N (info);
+ enc->info.fps_denominator = enc->fps_d = GST_VIDEO_INFO_FPS_D (info);
+ enc->info.aspect_numerator = GST_VIDEO_INFO_PAR_N (info);
+ enc->info.aspect_denominator = GST_VIDEO_INFO_PAR_D (info);
enc->info.colorspace = TH_CS_UNSPECIFIED;
+ /* Save input state */
+ if (enc->input_state)
+ gst_video_codec_state_unref (enc->input_state);
+ enc->input_state = gst_video_codec_state_ref (state);
+
/* as done in theora */
enc->info.keyframe_granule_shift = _ilog (enc->keyframe_force - 1);
GST_DEBUG_OBJECT (enc,
@@ -712,37 +597,41 @@ theora_enc_sink_setcaps (GstTheoraEnc * enc, GstCaps * caps)
enc->initialised = TRUE;
return TRUE;
-
- /* ERRORS */
-invalid_caps:
- {
- GST_DEBUG_OBJECT (enc, "could not parse caps");
- return FALSE;
- }
}
-static guint64
-granulepos_add (guint64 granulepos, guint64 addend, gint shift)
+static GstFlowReturn
+theora_enc_pre_push (GstVideoEncoder * benc, GstVideoCodecFrame * frame)
{
- guint64 iframe, pframe;
-
- iframe = granulepos >> shift;
- pframe = granulepos - (iframe << shift);
- iframe += addend;
+ GstTheoraEnc *enc = GST_THEORA_ENC (benc);
+ guint64 pfn;
- return (iframe << shift) + pframe;
+ /* see ext/ogg/README; OFFSET_END takes "our" granulepos, OFFSET its
+ * time representation */
+ /* granulepos from sync frame */
+ pfn = frame->presentation_frame_number - frame->distance_from_sync;
+ /* correct to correspond to linear running time */
+ pfn -= enc->pfn_offset;
+ pfn += enc->granulepos_offset + 1;
+ /* granulepos */
+ GST_BUFFER_OFFSET_END (frame->output_buffer) =
+ (pfn << enc->info.keyframe_granule_shift) + frame->distance_from_sync;
+ GST_BUFFER_OFFSET (frame->output_buffer) = granulepos_to_timestamp (enc,
+ GST_BUFFER_OFFSET_END (frame->output_buffer));
+
+ return GST_FLOW_OK;
}
-/* prepare a buffer for transmission by passing data through libtheora */
static GstFlowReturn
-theora_buffer_from_packet (GstTheoraEnc * enc, ogg_packet * packet,
- GstClockTime timestamp, GstClockTime running_time,
- GstClockTime duration, GstBuffer ** buffer)
+theora_push_packet (GstTheoraEnc * enc, ogg_packet * packet)
{
+ GstVideoEncoder *benc;
GstBuffer *buf;
- GstFlowReturn ret = GST_FLOW_OK;
+ GstFlowReturn ret;
+ GstVideoCodecFrame *frame;
+
+ benc = GST_VIDEO_ENCODER (enc);
- buf = gst_buffer_new_and_alloc (packet->bytes);
+ buf = gst_buffer_new_allocate (NULL, packet->bytes, NULL);
if (!buf) {
GST_WARNING_OBJECT (enc, "Could not allocate buffer");
ret = GST_FLOW_ERROR;
@@ -750,72 +639,33 @@ theora_buffer_from_packet (GstTheoraEnc * enc, ogg_packet * packet,
}
gst_buffer_fill (buf, 0, packet->packet, packet->bytes);
- /* see ext/ogg/README; OFFSET_END takes "our" granulepos, OFFSET its
- * time representation */
- GST_BUFFER_OFFSET_END (buf) =
- granulepos_add (packet->granulepos, enc->granulepos_offset,
- enc->info.keyframe_granule_shift);
- GST_BUFFER_OFFSET (buf) = granulepos_to_timestamp (enc,
- GST_BUFFER_OFFSET_END (buf));
-
- GST_BUFFER_TIMESTAMP (buf) = timestamp;
- GST_BUFFER_DURATION (buf) = duration;
-
- if (enc->next_discont) {
- GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
- enc->next_discont = FALSE;
- }
- /* th_packet_iskeyframe returns positive for keyframes */
- if (th_packet_iskeyframe (packet) > 0) {
- GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
+ frame = gst_video_encoder_get_oldest_frame (benc);
+ frame->output_buffer = buf;
+
+ /* the second most significant bit of the first data byte is cleared
+ * for keyframes */
+ if (packet->bytes > 0 && (packet->packet[0] & 0x40) == 0) {
+ GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (frame);
} else {
- GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
+ GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT (frame);
}
enc->packetno++;
-done:
- *buffer = buf;
- return ret;
-}
-
-/* push out the buffer and do internal bookkeeping */
-static GstFlowReturn
-theora_push_buffer (GstTheoraEnc * enc, GstBuffer * buffer)
-{
- GstFlowReturn ret;
-
- enc->bytes_out += gst_buffer_get_size (buffer);
-
- ret = gst_pad_push (enc->srcpad, buffer);
-
- return ret;
-}
-
-static GstFlowReturn
-theora_push_packet (GstTheoraEnc * enc, ogg_packet * packet,
- GstClockTime timestamp, GstClockTime running_time, GstClockTime duration)
-{
- GstBuffer *buf;
- GstFlowReturn ret;
-
- ret =
- theora_buffer_from_packet (enc, packet, timestamp, running_time, duration,
- &buf);
- if (ret == GST_FLOW_OK)
- ret = theora_push_buffer (enc, buf);
+ ret = gst_video_encoder_finish_frame (benc, frame);
+done:
return ret;
}
static GstCaps *
-theora_set_header_on_caps (GstCaps * caps, GSList * buffers)
+theora_set_header_on_caps (GstCaps * caps, GList * buffers)
{
GstStructure *structure;
GValue array = { 0 };
GValue value = { 0 };
GstBuffer *buffer;
- GSList *walk;
+ GList *walk;
caps = gst_caps_make_writable (caps);
structure = gst_caps_get_structure (caps, 0);
@@ -849,162 +699,9 @@ theora_set_header_on_caps (GstCaps * caps, GSList * buffers)
}
static void
-theora_enc_force_keyframe (GstTheoraEnc * enc)
-{
- GstClockTime next_ts;
-
- /* make sure timestamps increment after resetting the decoder */
- next_ts = enc->next_ts + enc->timestamp_offset;
-
- theora_enc_reset (enc);
- enc->granulepos_offset =
- gst_util_uint64_scale (next_ts, enc->vinfo.fps_n,
- GST_SECOND * enc->vinfo.fps_d);
- enc->timestamp_offset = next_ts;
- enc->next_ts = 0;
-}
-
-static gboolean
-theora_enc_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
- GstTheoraEnc *enc;
- ogg_packet op;
- gboolean res;
-
- enc = GST_THEORA_ENC (parent);
-
- switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_CAPS:
- {
- GstCaps *caps;
-
- gst_event_parse_caps (event, &caps);
- res = theora_enc_sink_setcaps (enc, caps);
- gst_event_unref (event);
- break;
- }
- case GST_EVENT_SEGMENT:
- {
- gst_event_copy_segment (event, &enc->segment);
-
- res = gst_pad_push_event (enc->srcpad, event);
- break;
- }
- case GST_EVENT_EOS:
- if (enc->initialised) {
- /* clear all standing buffers */
- if (enc->dup_on_gap)
- theora_enc_encode_and_push (enc, op, NULL);
- /* push last packet with eos flag, should not be called */
- while (th_encode_packetout (enc->encoder, 1, &op)) {
- GstClockTime next_time =
- th_granule_time (enc->encoder, op.granulepos) * GST_SECOND;
-
- theora_push_packet (enc, &op, GST_CLOCK_TIME_NONE, enc->next_ts,
- next_time - enc->next_ts);
- enc->next_ts = next_time;
- }
- }
- if (enc->initialised && enc->multipass_cache_fd
- && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS)
- theora_enc_write_multipass_cache (enc, TRUE, TRUE);
-
- theora_enc_clear_multipass_cache (enc);
-
- res = gst_pad_push_event (enc->srcpad, event);
- break;
- case GST_EVENT_FLUSH_STOP:
- gst_segment_init (&enc->segment, GST_FORMAT_UNDEFINED);
- res = gst_pad_push_event (enc->srcpad, event);
- theora_timefifo_free (enc);
- break;
- case GST_EVENT_CUSTOM_DOWNSTREAM:
- {
- const GstStructure *s;
-
- s = gst_event_get_structure (event);
-
- if (gst_structure_has_name (s, "GstForceKeyUnit"))
- theora_enc_force_keyframe (enc);
- res = gst_pad_push_event (enc->srcpad, event);
- break;
- }
- default:
- res = gst_pad_push_event (enc->srcpad, event);
- break;
- }
- return res;
-}
-
-static gboolean
-theora_enc_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
- GstTheoraEnc *enc;
- gboolean res = TRUE;
-
- enc = GST_THEORA_ENC (parent);
-
- switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_CUSTOM_UPSTREAM:
- {
- const GstStructure *s;
-
- s = gst_event_get_structure (event);
-
- if (gst_structure_has_name (s, "GstForceKeyUnit")) {
- GST_OBJECT_LOCK (enc);
- enc->force_keyframe = TRUE;
- GST_OBJECT_UNLOCK (enc);
- /* consume the event */
- res = TRUE;
- gst_event_unref (event);
- } else {
- res = gst_pad_push_event (enc->sinkpad, event);
- }
- break;
- }
- default:
- res = gst_pad_push_event (enc->sinkpad, event);
- break;
- }
-
- return res;
-}
-
-static gboolean
-theora_enc_is_discontinuous (GstTheoraEnc * enc, GstClockTime timestamp,
- GstClockTime duration)
-{
- GstClockTimeDiff max_diff;
- gboolean ret = FALSE;
-
- /* Allow 3/4 a frame off */
- max_diff = (enc->info.fps_denominator * GST_SECOND * 3) /
- (enc->info.fps_numerator * 4);
-
- if (timestamp != GST_CLOCK_TIME_NONE
- && enc->expected_ts != GST_CLOCK_TIME_NONE) {
- if ((GstClockTimeDiff) (timestamp - enc->expected_ts) > max_diff) {
- GST_DEBUG_OBJECT (enc, "Incoming TS %" GST_TIME_FORMAT
- " exceeds expected value %" GST_TIME_FORMAT
- " by too much, marking discontinuity",
- GST_TIME_ARGS (timestamp), GST_TIME_ARGS (enc->expected_ts));
- ret = TRUE;
- }
- }
-
- if (GST_CLOCK_TIME_IS_VALID (duration))
- enc->expected_ts = timestamp + duration;
- else
- enc->expected_ts = GST_CLOCK_TIME_NONE;
-
- return ret;
-}
-
-static void
theora_enc_init_buffer (th_ycbcr_buffer buf, GstVideoFrame * frame)
{
- GstVideoInfo info;
+ GstVideoInfo vinfo;
guint i;
/* According to Theora developer Timothy Terriberry, the Theora
@@ -1015,14 +712,14 @@ theora_enc_init_buffer (th_ycbcr_buffer buf, GstVideoFrame * frame)
* is perfectly ok, even though it does not strictly look ok.
*/
- gst_video_info_init (&info);
- gst_video_info_set_format (&info, GST_VIDEO_FRAME_FORMAT (frame),
+ gst_video_info_init (&vinfo);
+ gst_video_info_set_format (&vinfo, GST_VIDEO_FRAME_FORMAT (frame),
GST_ROUND_UP_16 (GST_VIDEO_FRAME_WIDTH (frame)),
GST_ROUND_UP_16 (GST_VIDEO_FRAME_HEIGHT (frame)));
for (i = 0; i < 3; i++) {
- buf[i].width = GST_VIDEO_INFO_COMP_WIDTH (&info, i);
- buf[i].height = GST_VIDEO_INFO_COMP_HEIGHT (&info, i);
+ buf[i].width = GST_VIDEO_INFO_COMP_WIDTH (&vinfo, i);
+ buf[i].height = GST_VIDEO_INFO_COMP_HEIGHT (&vinfo, i);
buf[i].data = GST_VIDEO_FRAME_COMP_DATA (frame, i);
buf[i].stride = GST_VIDEO_FRAME_COMP_STRIDE (frame, i);
}
@@ -1034,27 +731,29 @@ theora_enc_read_multipass_cache (GstTheoraEnc * enc)
GstBuffer *cache_buf;
const guint8 *cache_data;
gsize bytes_read = 0;
- gint bytes_consumed = 0;
+ gssize bytes_consumed = 0;
GIOStatus stat = G_IO_STATUS_NORMAL;
gboolean done = FALSE;
while (!done) {
if (gst_adapter_available (enc->multipass_cache_adapter) == 0) {
- GstMapInfo map;
+ GstMapInfo minfo;
+
+ cache_buf = gst_buffer_new_allocate (NULL, 512, NULL);
- cache_buf = gst_buffer_new_and_alloc (512);
+ gst_buffer_map (cache_buf, &minfo, GST_MAP_WRITE);
- gst_buffer_map (cache_buf, &map, GST_MAP_READ);
stat = g_io_channel_read_chars (enc->multipass_cache_fd,
- (gchar *) map.data, map.size, &bytes_read, NULL);
+ (gchar *) minfo.data, minfo.size, &bytes_read, NULL);
if (bytes_read <= 0) {
- gst_buffer_unmap (cache_buf, &map);
+ gst_buffer_unmap (cache_buf, &minfo);
gst_buffer_unref (cache_buf);
break;
} else {
- gst_buffer_unmap (cache_buf, &map);
+ gst_buffer_unmap (cache_buf, &minfo);
gst_buffer_resize (cache_buf, 0, bytes_read);
+
gst_adapter_push (enc->multipass_cache_adapter, cache_buf);
}
}
@@ -1131,311 +830,57 @@ theora_enc_write_multipass_cache (GstTheoraEnc * enc, gboolean begin,
return TRUE;
}
-/**
- * g_slice_free can't be used with g_queue_foreach.
- * so we create new function with predefined GstClockTime size.
- */
-static void
-theora_free_gstclocktime (gpointer mem)
-{
- g_slice_free (GstClockTime, mem);
-}
-
-static void
-theora_timefifo_in (GstTheoraEnc * enc, const GstClockTime * timestamp)
-{
- GstClockTime *ptr;
-
- if (!enc->t_queue)
- enc->t_queue = g_queue_new ();
-
- g_assert (enc->t_queue != NULL);
-
- ptr = g_slice_new (GstClockTime);
- *ptr = *timestamp;
-
- g_queue_push_head (enc->t_queue, ptr);
-}
-
-static GstClockTime
-theora_timefifo_out (GstTheoraEnc * enc)
-{
- GstClockTime ret, *ptr;
-
- g_assert (enc->t_queue != NULL);
-
- ptr = g_queue_pop_tail (enc->t_queue);
- g_assert (ptr != NULL);
-
- ret = *ptr;
- theora_free_gstclocktime (ptr);
-
- return ret;
-}
-
-/**
- * theora_timefifo_truncate - truncate the timestamp queue.
- * After frame encoding we should have only one buffer for next time.
- * The count of timestamps should be the same. If it is less,
- * some thing really bad has happened. If it is bigger, encoder
- * decided to return less then we ordered.
- * TODO: for now we will just drop this timestamps. The better solution
- * probably will be to recovery frames by recovery timestamps with
- * last buffer.
- */
static void
-theora_timefifo_truncate (GstTheoraEnc * enc)
+theora_enc_reset_ts (GstTheoraEnc * enc, GstClockTime running_time, gint pfn)
{
- if (enc->dup_on_gap) {
- guint length;
- g_assert (enc->t_queue != NULL);
- length = g_queue_get_length (enc->t_queue);
-
- if (length > 1) {
- /* it is also not good if we have more then 1. */
- GST_DEBUG_OBJECT (enc, "Dropping %u time stamps", length - 1);
- while (g_queue_get_length (enc->t_queue) > 1) {
- theora_timefifo_out (enc);
- }
- }
- }
-}
-
-static void
-theora_timefifo_free (GstTheoraEnc * enc)
-{
- if (enc->t_queue) {
- if (g_queue_get_length (enc->t_queue))
- g_queue_foreach (enc->t_queue, (GFunc) theora_free_gstclocktime, NULL);
- g_queue_free (enc->t_queue);
- enc->t_queue = NULL;
- }
- /* prevbuf makes no sense without timestamps,
- * so clear it too. */
- if (enc->prevbuf) {
- gst_buffer_unref (enc->prevbuf);
- enc->prevbuf = NULL;
- }
-
+ enc->granulepos_offset =
+ gst_util_uint64_scale (running_time, enc->fps_n, GST_SECOND * enc->fps_d);
+ enc->timestamp_offset = running_time;
+ enc->pfn_offset = pfn;
}
-static void
-theora_update_prevbuf (GstTheoraEnc * enc, GstBuffer * buffer)
+static GstBuffer *
+theora_enc_buffer_from_header_packet (GstTheoraEnc * enc, ogg_packet * packet)
{
- if (enc->prevbuf) {
- gst_buffer_unref (enc->prevbuf);
- enc->prevbuf = NULL;
- }
- enc->prevbuf = gst_buffer_ref (buffer);
+ GstBuffer *outbuf;
+
+ outbuf = gst_buffer_new_allocate (NULL, packet->bytes, NULL);
+ gst_buffer_fill (outbuf, 0, packet->packet, packet->bytes);
+ GST_BUFFER_OFFSET (outbuf) = 0;
+ GST_BUFFER_OFFSET_END (outbuf) = 0;
+ GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
+ GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
+
+ GST_DEBUG ("created header packet buffer, %d bytes",
+ gst_buffer_get_size (outbuf));
+ return outbuf;
}
-/**
- * theora_enc_encode_and_push - encode buffer or queued previous buffer
- * buffer - buffer to encode. If set to NULL it should encode only
- * queued buffers and produce dups if needed.
- */
-
static GstFlowReturn
-theora_enc_encode_and_push (GstTheoraEnc * enc, ogg_packet op,
- GstBuffer * buffer)
-{
- GstFlowReturn ret;
- GstVideoFrame frame;
- th_ycbcr_buffer ycbcr;
- gint res;
-
- if (enc->dup_on_gap) {
- guint t_queue_length;
-
- if (enc->t_queue)
- t_queue_length = g_queue_get_length (enc->t_queue);
- else
- t_queue_length = 0;
-
- if (buffer) {
- GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer);
-
- /* videorate can easy create 200 dup frames in one shot.
- * In this case th_encode_ctl will just return TH_EINVAL
- * and we will generate only one frame as result.
- * To make us more bullet proof, make sure we have no
- * more dup frames than keyframe interval.
- */
- if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_GAP) &&
- enc->keyframe_force > t_queue_length) {
- GST_DEBUG_OBJECT (enc, "Got GAP frame, queue as duplicate.");
-
- theora_timefifo_in (enc, &timestamp);
- gst_buffer_unref (buffer);
- return GST_FLOW_OK;
- } else {
- theora_timefifo_in (enc, &timestamp);
- /* We should have one frame delay to create correct frame order.
- * First time we got buffer, prevbuf should be empty. Nothing else
- * should be done here.
- */
- if (!enc->prevbuf) {
- theora_update_prevbuf (enc, buffer);
- gst_buffer_unref (buffer);
- return GST_FLOW_OK;
- } else {
- theora_update_prevbuf (enc, buffer);
- /* after theora_update_prevbuf t_queue_length was changed */
- t_queue_length++;
-
- if (t_queue_length > 2) {
- /* now in t_queue_length should be two real buffers: current and
- * previous. All others are timestamps of duplicate frames. */
- t_queue_length -= 2;
- res = th_encode_ctl (enc->encoder, TH_ENCCTL_SET_DUP_COUNT,
- &t_queue_length, sizeof (t_queue_length));
- if (res < 0)
- GST_WARNING_OBJECT (enc, "Failed marking dups for last frame");
- }
- }
- }
- } else {
- /* if there is no buffer, then probably we got EOS or discontinuous.
- * We need to encode every thing what was left in the queue
- */
- GST_DEBUG_OBJECT (enc, "Encode collected buffers.");
- if (t_queue_length > 1) {
- t_queue_length--;
- res = th_encode_ctl (enc->encoder, TH_ENCCTL_SET_DUP_COUNT,
- &t_queue_length, sizeof (t_queue_length));
- if (res < 0)
- GST_WARNING_OBJECT (enc, "Failed marking dups for last frame.");
- } else {
- GST_DEBUG_OBJECT (enc, "Prevbuffer is empty. Nothing to encode.");
- return GST_FLOW_OK;
- }
- }
- gst_video_frame_map (&frame, &enc->vinfo, enc->prevbuf, GST_MAP_READ);
- theora_enc_init_buffer (ycbcr, &frame);
- } else {
- gst_video_frame_map (&frame, &enc->vinfo, buffer, GST_MAP_READ);
- theora_enc_init_buffer (ycbcr, &frame);
- }
-
- /* check for buffer, it can be optional */
- if (enc->current_discont && buffer) {
- GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer);
- GstClockTime running_time =
- gst_segment_to_running_time (&enc->segment, GST_FORMAT_TIME, timestamp);
- theora_enc_reset (enc);
- enc->granulepos_offset =
- gst_util_uint64_scale (running_time, enc->vinfo.fps_n,
- GST_SECOND * enc->vinfo.fps_d);
- enc->timestamp_offset = running_time;
- enc->next_ts = 0;
- enc->next_discont = TRUE;
- }
-
- if (enc->multipass_cache_fd
- && enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS) {
- if (!theora_enc_read_multipass_cache (enc)) {
- ret = GST_FLOW_ERROR;
- goto multipass_read_failed;
- }
- }
-#ifdef TH_ENCCTL_SET_DUPLICATE_FLAG
- if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_GAP)) {
- th_encode_ctl (enc->encoder, TH_ENCCTL_SET_DUPLICATE_FLAG, NULL, 0);
- }
-#endif
-
- res = th_encode_ycbcr_in (enc->encoder, ycbcr);
- /* none of the failure cases can happen here */
- g_assert (res == 0);
-
- if (enc->multipass_cache_fd
- && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS) {
- if (!theora_enc_write_multipass_cache (enc, FALSE, FALSE)) {
- ret = GST_FLOW_ERROR;
- goto multipass_write_failed;
- }
- }
-
- ret = GST_FLOW_OK;
- while (th_encode_packetout (enc->encoder, 0, &op)) {
- GstClockTime next_time, duration;
- GstClockTime timestamp = 0;
- GST_DEBUG_OBJECT (enc, "encoded. granule:%" G_GINT64_FORMAT ", packet:%p, "
- "bytes:%ld", (gint64) op.granulepos, op.packet, op.bytes);
-
- next_time = th_granule_time (enc->encoder, op.granulepos) * GST_SECOND;
- duration = next_time - enc->next_ts;
-
- if (enc->dup_on_gap && !enc->current_discont)
- timestamp = theora_timefifo_out (enc);
- else
- timestamp = GST_BUFFER_TIMESTAMP (buffer);
-
- ret = theora_push_packet (enc, &op, timestamp, enc->next_ts, duration);
-
- enc->next_ts = next_time;
- if (ret != GST_FLOW_OK) {
- theora_timefifo_truncate (enc);
- goto data_push;
- }
- }
-
- theora_timefifo_truncate (enc);
-done:
- gst_video_frame_unmap (&frame);
- if (buffer)
- gst_buffer_unref (buffer);
- enc->current_discont = FALSE;
-
- return ret;
-
- /* ERRORS */
-multipass_read_failed:
- {
- GST_DEBUG_OBJECT (enc, "multipass read failed");
- goto done;
- }
-multipass_write_failed:
- {
- GST_DEBUG_OBJECT (enc, "multipass write failed");
- goto done;
- }
-data_push:
- {
- GST_DEBUG_OBJECT (enc, "error pushing buffer: %s", gst_flow_get_name (ret));
- goto done;
- }
-}
-
-static GstFlowReturn
-theora_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+theora_enc_handle_frame (GstVideoEncoder * benc, GstVideoCodecFrame * frame)
{
GstTheoraEnc *enc;
ogg_packet op;
- GstClockTime timestamp, duration, running_time;
+ GstClockTime timestamp, running_time;
GstFlowReturn ret;
gboolean force_keyframe;
- enc = GST_THEORA_ENC (parent);
+ enc = GST_THEORA_ENC (benc);
/* we keep track of two timelines.
- * - The timestamps from the incoming buffers, which we copy to the outgoing
+ * - The timestamps from the incomming buffers, which we copy to the outgoing
* encoded buffers as-is. We need to do this as we simply forward the
* newsegment events.
* - The running_time of the buffers, which we use to construct the granulepos
* in the packets.
*/
- timestamp = GST_BUFFER_TIMESTAMP (buffer);
- duration = GST_BUFFER_DURATION (buffer);
+ timestamp = frame->pts;
+ /* incoming buffers are clipped, so this should be positive */
running_time =
- gst_segment_to_running_time (&enc->segment, GST_FORMAT_TIME, timestamp);
- if ((gint64) running_time < 0) {
- GST_DEBUG_OBJECT (enc, "Dropping buffer, timestamp: %" GST_TIME_FORMAT,
- GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
- gst_buffer_unref (buffer);
- return GST_FLOW_OK;
- }
+ gst_segment_to_running_time (&GST_VIDEO_ENCODER_INPUT_SEGMENT (enc),
+ GST_FORMAT_TIME, timestamp);
+ g_return_val_if_fail (running_time >= 0 || timestamp < 0, GST_FLOW_ERROR);
GST_OBJECT_LOCK (enc);
if (enc->bitrate_changed) {
@@ -1455,40 +900,16 @@ theora_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
}
/* see if we need to schedule a keyframe */
- force_keyframe = enc->force_keyframe;
- enc->force_keyframe = FALSE;
+ force_keyframe = GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME (frame);
GST_OBJECT_UNLOCK (enc);
- if (force_keyframe) {
- GstClockTime stream_time;
- GstStructure *s;
-
- stream_time = gst_segment_to_stream_time (&enc->segment,
- GST_FORMAT_TIME, timestamp);
-
- s = gst_structure_new ("GstForceKeyUnit",
- "timestamp", G_TYPE_UINT64, timestamp,
- "stream-time", G_TYPE_UINT64, stream_time,
- "running-time", G_TYPE_UINT64, running_time, NULL);
-
- theora_enc_force_keyframe (enc);
-
- gst_pad_push_event (enc->srcpad,
- gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s));
- }
-
- /* make sure we copy the discont flag to the next outgoing buffer when it's
- * set on the incoming buffer */
- if (GST_BUFFER_IS_DISCONT (buffer)) {
- enc->next_discont = TRUE;
- }
-
if (enc->packetno == 0) {
/* no packets written yet, setup headers */
GstCaps *caps;
GstBuffer *buf;
- GSList *buffers = NULL;
+ GList *buffers = NULL;
int result;
+ GstVideoCodecState *state;
enc->granulepos_offset = 0;
enc->timestamp_offset = 0;
@@ -1507,166 +928,128 @@ theora_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
while ((result =
th_encode_flushheader (enc->encoder, &enc->comment, &op)) > 0) {
- ret =
- theora_buffer_from_packet (enc, &op, GST_CLOCK_TIME_NONE,
- GST_CLOCK_TIME_NONE, GST_CLOCK_TIME_NONE, &buf);
- if (ret != GST_FLOW_OK) {
- goto header_buffer_alloc;
- }
- buffers = g_slist_prepend (buffers, buf);
+ buf = theora_enc_buffer_from_header_packet (enc, &op);
+ buffers = g_list_prepend (buffers, buf);
}
if (result < 0) {
- g_slist_foreach (buffers, (GFunc) gst_buffer_unref, NULL);
- g_slist_free (buffers);
+ g_list_foreach (buffers, (GFunc) gst_buffer_unref, NULL);
+ g_list_free (buffers);
goto encoder_disabled;
}
- buffers = g_slist_reverse (buffers);
+ buffers = g_list_reverse (buffers);
/* mark buffers and put on caps */
- caps = gst_caps_new_simple ("video/x-theora",
- "width", G_TYPE_INT, enc->vinfo.width,
- "height", G_TYPE_INT, enc->vinfo.height,
- "framerate", GST_TYPE_FRACTION, enc->vinfo.fps_n, enc->vinfo.fps_d,
- "pixel-aspect-ratio", GST_TYPE_FRACTION, enc->vinfo.par_n,
- enc->vinfo.par_d, NULL);
+ caps = gst_caps_new_empty_simple ("video/x-theora");
caps = theora_set_header_on_caps (caps, buffers);
- GST_DEBUG ("here are the caps: %" GST_PTR_FORMAT, caps);
- gst_pad_set_caps (enc->srcpad, caps);
- gst_caps_unref (caps);
-
- /* push out the header buffers */
- while (buffers) {
- buf = buffers->data;
- buffers = g_slist_delete_link (buffers, buffers);
- if ((ret = theora_push_buffer (enc, buf)) != GST_FLOW_OK) {
- g_slist_foreach (buffers, (GFunc) gst_buffer_unref, NULL);
- g_slist_free (buffers);
- goto header_push;
+ state = gst_video_encoder_set_output_state (benc, caps, enc->input_state);
+
+ GST_DEBUG ("here are the caps: %" GST_PTR_FORMAT, state->caps);
+
+ gst_video_codec_state_unref (state);
+
+ gst_video_encoder_set_headers (benc, buffers);
+
+ theora_enc_reset_ts (enc, running_time, frame->presentation_frame_number);
+ }
+
+ {
+ th_ycbcr_buffer ycbcr;
+ gint res;
+ GstVideoFrame vframe;
+
+ if (force_keyframe) {
+ theora_enc_reset (enc);
+ theora_enc_reset_ts (enc, running_time, frame->presentation_frame_number);
+ }
+
+ if (enc->multipass_cache_fd
+ && enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS) {
+ if (!theora_enc_read_multipass_cache (enc)) {
+ ret = GST_FLOW_ERROR;
+ goto multipass_read_failed;
}
}
- enc->granulepos_offset =
- gst_util_uint64_scale (running_time, enc->vinfo.fps_n,
- GST_SECOND * enc->vinfo.fps_d);
- enc->timestamp_offset = running_time;
- enc->next_ts = 0;
- }
+ gst_video_frame_map (&vframe, &enc->input_state->info, frame->input_buffer,
+ GST_MAP_READ);
+ theora_enc_init_buffer (ycbcr, &vframe);
+
+ res = th_encode_ycbcr_in (enc->encoder, ycbcr);
+ gst_video_frame_unmap (&vframe);
- enc->current_discont = theora_enc_is_discontinuous (enc,
- running_time, duration);
+ /* none of the failure cases can happen here */
+ g_assert (res == 0);
- /* empty queue if discontinuous */
- if (enc->current_discont && enc->dup_on_gap)
- theora_enc_encode_and_push (enc, op, NULL);
+ if (enc->multipass_cache_fd
+ && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS) {
+ if (!theora_enc_write_multipass_cache (enc, FALSE, FALSE)) {
+ ret = GST_FLOW_ERROR;
+ goto multipass_write_failed;
+ }
+ }
- ret = theora_enc_encode_and_push (enc, op, buffer);
+ ret = GST_FLOW_OK;
+ while (th_encode_packetout (enc->encoder, 0, &op)) {
+ ret = theora_push_packet (enc, &op);
+ if (ret != GST_FLOW_OK)
+ goto data_push;
+ }
+ }
return ret;
/* ERRORS */
-header_buffer_alloc:
+multipass_read_failed:
{
- gst_buffer_unref (buffer);
return ret;
}
-header_push:
+multipass_write_failed:
+ {
+ return ret;
+ }
+data_push:
{
- gst_buffer_unref (buffer);
return ret;
}
encoder_disabled:
{
GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
("libtheora has been compiled with the encoder disabled"));
- gst_buffer_unref (buffer);
return GST_FLOW_ERROR;
}
}
-static GstStateChangeReturn
-theora_enc_change_state (GstElement * element, GstStateChange transition)
+static gboolean
+theora_enc_finish (GstVideoEncoder * benc)
{
GstTheoraEnc *enc;
- GstStateChangeReturn ret;
- th_enc_ctx *th_ctx;
-
- enc = GST_THEORA_ENC (element);
-
- switch (transition) {
- case GST_STATE_CHANGE_NULL_TO_READY:
- th_ctx = dummy_encode_ctx ();
- if (!th_ctx) {
- GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
- ("libtheora has been compiled with the encoder disabled"));
- return GST_STATE_CHANGE_FAILURE;
- }
- th_encode_free (th_ctx);
- break;
- case GST_STATE_CHANGE_READY_TO_PAUSED:
- GST_DEBUG_OBJECT (enc, "READY->PAUSED Initing theora state");
- th_info_init (&enc->info);
- th_comment_init (&enc->comment);
- enc->packetno = 0;
- enc->force_keyframe = FALSE;
-
- if (enc->multipass_mode >= MULTIPASS_MODE_FIRST_PASS) {
- GError *err = NULL;
-
- if (!enc->multipass_cache_file) {
- ret = GST_STATE_CHANGE_FAILURE;
- GST_ELEMENT_ERROR (enc, LIBRARY, SETTINGS, (NULL), (NULL));
- return ret;
- }
- enc->multipass_cache_fd =
- g_io_channel_new_file (enc->multipass_cache_file,
- (enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS ? "w" : "r"),
- &err);
-
- if (enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS)
- enc->multipass_cache_adapter = gst_adapter_new ();
-
- if (!enc->multipass_cache_fd) {
- ret = GST_STATE_CHANGE_FAILURE;
- GST_ELEMENT_ERROR (enc, RESOURCE, OPEN_READ, (NULL),
- ("Failed to open multipass cache file: %s", err->message));
- g_error_free (err);
- return ret;
- }
-
- g_io_channel_set_encoding (enc->multipass_cache_fd, NULL, NULL);
- }
- break;
- case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
- break;
- default:
- break;
+ ogg_packet op;
+
+ enc = GST_THEORA_ENC (benc);
+
+ if (enc->initialised) {
+ /* push last packet with eos flag, should not be called */
+ while (th_encode_packetout (enc->encoder, 1, &op)) {
+ theora_push_packet (enc, &op);
+ }
}
+ if (enc->initialised && enc->multipass_cache_fd
+ && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS)
+ theora_enc_write_multipass_cache (enc, TRUE, TRUE);
- ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+ theora_enc_clear_multipass_cache (enc);
- switch (transition) {
- case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
- break;
- case GST_STATE_CHANGE_PAUSED_TO_READY:
- GST_DEBUG_OBJECT (enc, "PAUSED->READY Clearing theora state");
- if (enc->encoder) {
- th_encode_free (enc->encoder);
- enc->encoder = NULL;
- }
- th_comment_clear (&enc->comment);
- th_info_clear (&enc->info);
+ return TRUE;
+}
- theora_enc_clear (enc);
- enc->initialised = FALSE;
- break;
- case GST_STATE_CHANGE_READY_TO_NULL:
- break;
- default:
- break;
- }
+static gboolean
+theora_enc_propose_allocation (GstVideoEncoder * encoder, GstQuery * query)
+{
+ gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE);
- return ret;
+ return GST_VIDEO_ENCODER_CLASS (parent_class)->propose_allocation (encoder,
+ query);
}
static void
@@ -1679,12 +1062,13 @@ theora_enc_set_property (GObject * object, guint prop_id,
case PROP_BITRATE:
GST_OBJECT_LOCK (enc);
enc->video_bitrate = g_value_get_int (value) * 1000;
+ enc->video_quality = 0;
enc->bitrate_changed = TRUE;
GST_OBJECT_UNLOCK (enc);
break;
case PROP_QUALITY:
GST_OBJECT_LOCK (enc);
- if (GST_STATE (enc) >= GST_STATE_PAUSED && enc->video_bitrate > 0) {
+ if (GST_STATE (enc) >= GST_STATE_PAUSED && enc->video_quality == 0) {
GST_WARNING_OBJECT (object, "Can't change from bitrate to quality mode"
" while playing");
} else {
@@ -1705,10 +1089,6 @@ theora_enc_set_property (GObject * object, guint prop_id,
break;
case PROP_SPEEDLEVEL:
enc->speed_level = g_value_get_int (value);
- if (enc->encoder) {
- th_encode_ctl (enc->encoder, TH_ENCCTL_SET_SPLEVEL, &enc->speed_level,
- sizeof (enc->speed_level));
- }
break;
case PROP_VP3_COMPATIBLE:
enc->vp3_compatible = g_value_get_boolean (value);
@@ -1731,9 +1111,6 @@ theora_enc_set_property (GObject * object, guint prop_id,
case PROP_MULTIPASS_MODE:
enc->multipass_mode = g_value_get_enum (value);
break;
- case PROP_DUP_ON_GAP:
- enc->dup_on_gap = g_value_get_boolean (value);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1790,11 +1167,15 @@ theora_enc_get_property (GObject * object, guint prop_id,
case PROP_MULTIPASS_MODE:
g_value_set_enum (value, enc->multipass_mode);
break;
- case PROP_DUP_ON_GAP:
- g_value_set_boolean (value, enc->dup_on_gap);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
+
+gboolean
+gst_theora_enc_register (GstPlugin * plugin)
+{
+ return gst_element_register (plugin, "theoraenc",
+ GST_RANK_PRIMARY, GST_TYPE_THEORA_ENC);
+}
diff --git a/ext/theora/gsttheoraenc.h b/ext/theora/gsttheoraenc.h
index 9379818..3053e1e 100644
--- a/ext/theora/gsttheoraenc.h
+++ b/ext/theora/gsttheoraenc.h
@@ -1,5 +1,8 @@
/* GStreamer
* Copyright (C) 2004 Wim Taymans <wim@fluendo.com>
+ * Copyright (c) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.com>
+ * Author : Mark Nauwelaerts <mark.nauwelaerts@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
@@ -22,10 +25,9 @@
#include <gst/gst.h>
#include <gst/base/gstadapter.h>
+#include <gst/video/gstvideoencoder.h>
#include <theora/theoraenc.h>
-#include <gst/video/video.h>
-
G_BEGIN_DECLS
#define GST_TYPE_THEORA_ENC \
@@ -63,12 +65,7 @@ typedef enum
*/
struct _GstTheoraEnc
{
- GstElement element;
-
- GstPad *sinkpad;
- GstPad *srcpad;
-
- GstSegment segment;
+ GstVideoEncoder element;
ogg_stream_state to;
@@ -85,19 +82,16 @@ struct _GstTheoraEnc
gint keyframe_freq;
gint keyframe_force;
- GstVideoInfo vinfo;
- gint info_width, info_height;
- GstClockTime next_ts;
+ GstVideoCodecState *input_state;
- GstClockTime expected_ts;
- gboolean next_discont;
-
- gboolean force_keyframe;
+ gint width, height;
+ gint fps_n, fps_d;
guint packetno;
guint64 bytes_out;
guint64 granulepos_offset;
guint64 timestamp_offset;
+ guint64 pfn_offset;
gint speed_level;
gboolean vp3_compatible;
@@ -106,13 +100,6 @@ struct _GstTheoraEnc
gboolean cap_underflow;
int rate_buffer;
- /* variables for dup-on-gap */
- gboolean dup_on_gap;
- gboolean current_discont;
- GstBuffer *prevbuf;
- GQueue *t_queue;
- /* end dup-on-gap */
-
GstTheoraEncMultipassMode multipass_mode;
GIOChannel *multipass_cache_fd;
GstAdapter *multipass_cache_adapter;
@@ -121,10 +108,11 @@ struct _GstTheoraEnc
struct _GstTheoraEncClass
{
- GstElementClass parent_class;
+ GstVideoEncoderClass parent_class;
};
GType gst_theora_enc_get_type (void);
+gboolean gst_theora_enc_register (GstPlugin * plugin);
G_END_DECLS
diff --git a/ext/vorbis/Makefile.in b/ext/vorbis/Makefile.in
index a027803..f5fddbb 100644
--- a/ext/vorbis/Makefile.in
+++ b/ext/vorbis/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -571,7 +571,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in
index 17726db..31fa5c9 100644
--- a/gst-libs/Makefile.in
+++ b/gst-libs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/gst-libs/gst/Makefile.am b/gst-libs/gst/Makefile.am
index 959dbd4..514a0b8 100644
--- a/gst-libs/gst/Makefile.am
+++ b/gst-libs/gst/Makefile.am
@@ -1,8 +1,4 @@
-# The interfaces directory has to be built before the others,
-# otherwise some generated header files will be missing for the
-# plugins in the other directories.
SUBDIRS = \
- interfaces \
tag \
fft \
rtp \
@@ -17,7 +13,7 @@ SUBDIRS = \
noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
# dependencies:
-audio: interfaces tag
+audio: tag
riff: tag audio
@@ -26,7 +22,7 @@ rtsp: sdp
pbutils: video audio
INDEPENDENT_SUBDIRS = \
- interfaces tag audio fft rtp sdp video app
+ tag audio fft rtp sdp video app
.PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index eb7c8f3..c498578 100644
--- a/gst-libs/gst/Makefile.in
+++ b/gst-libs/gst/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -430,12 +430,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-
-# The interfaces directory has to be built before the others,
-# otherwise some generated header files will be missing for the
-# plugins in the other directories.
SUBDIRS = \
- interfaces \
tag \
fft \
rtp \
@@ -449,7 +444,7 @@ SUBDIRS = \
noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
INDEPENDENT_SUBDIRS = \
- interfaces tag audio fft rtp sdp video app
+ tag audio fft rtp sdp video app
all: all-recursive
@@ -801,7 +796,7 @@ uninstall-am:
# dependencies:
-audio: interfaces tag
+audio: tag
riff: tag audio
diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
index 76350f5..c061a43 100644
--- a/gst-libs/gst/app/Makefile.am
+++ b/gst-libs/gst/app/Makefile.am
@@ -49,8 +49,8 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
-DGST_USE_UNSTABLE_API \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
--library=libgstapp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
diff --git a/gst-libs/gst/app/Makefile.in b/gst-libs/gst/app/Makefile.in
index 30924d1..4665783 100644
--- a/gst-libs/gst/app/Makefile.in
+++ b/gst-libs/gst/app/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -560,7 +560,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -647,7 +647,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -668,7 +668,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -689,7 +689,7 @@ install-libgstapp_@GST_API_VERSION@includeHEADERS: $(libgstapp_@GST_API_VERSION@
@list='$(libgstapp_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstapp_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstapp_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstapp_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstapp_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -973,8 +973,8 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ -I$(top_builddir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstapp-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --include=GstBase-@GST_API_VERSION@ \
diff --git a/gst-libs/gst/app/gstappsrc.c b/gst-libs/gst/app/gstappsrc.c
index 605df44..c814412 100644
--- a/gst-libs/gst/app/gstappsrc.c
+++ b/gst-libs/gst/app/gstappsrc.c
@@ -977,6 +977,7 @@ gst_app_src_create (GstBaseSrc * bsrc, guint64 offset, guint size,
goto seek_error;
priv->offset = offset;
+ priv->is_eos = FALSE;
}
}
diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index c87d080..64a8db7 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
@@ -22,10 +22,6 @@ libgstaudio_@GST_API_VERSION@_la_SOURCES = \
audio.c \
gstaudioringbuffer.c \
gstaudioclock.c \
- mixer.c \
- mixeroptions.c \
- mixertrack.c \
- mixerutils.c \
gstaudiocdsrc.c \
gstaudiodecoder.c \
gstaudioencoder.c \
@@ -54,10 +50,6 @@ libgstaudio_@GST_API_VERSION@include_HEADERS = \
gstaudiometa.h \
gstaudiosink.h \
gstaudiosrc.h \
- mixer.h \
- mixeroptions.h \
- mixertrack.h \
- mixerutils.h \
streamvolume.h \
gstaudioiec61937.h
@@ -66,7 +58,6 @@ nodist_libgstaudio_@GST_API_VERSION@include_HEADERS = \
libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
libgstaudio_@GST_API_VERSION@_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
libgstaudio_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
@@ -93,18 +84,15 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
$(gir_cincludes) \
- --add-include-path=$(builddir)/../interfaces \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
--library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
--library=libgstaudio-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
- --include=GstInterfaces-@GST_API_VERSION@ \
--libtool="$(top_builddir)/libtool" \
--pkg gstreamer-@GST_API_VERSION@ \
--pkg gstreamer-base-@GST_API_VERSION@ \
- --pkg gstreamer-interfaces-@GST_API_VERSION@ \
--pkg-export gstreamer-audio-@GST_API_VERSION@ \
--add-init-section="gst_init(NULL,NULL);" \
--output $@ \
@@ -125,9 +113,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
- --includedir=$(builddir)/../interfaces \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/audio/Makefile.in b/gst-libs/gst/audio/Makefile.in
index a2fafe1..4fc8bea 100644
--- a/gst-libs/gst/audio/Makefile.in
+++ b/gst-libs/gst/audio/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -143,18 +143,13 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
-libgstaudio_@GST_API_VERSION@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
+libgstaudio_@GST_API_VERSION@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am_libgstaudio_@GST_API_VERSION@_la_OBJECTS = \
libgstaudio_@GST_API_VERSION@_la-audio.lo \
libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo \
libgstaudio_@GST_API_VERSION@_la-gstaudioclock.lo \
- libgstaudio_@GST_API_VERSION@_la-mixer.lo \
- libgstaudio_@GST_API_VERSION@_la-mixeroptions.lo \
- libgstaudio_@GST_API_VERSION@_la-mixertrack.lo \
- libgstaudio_@GST_API_VERSION@_la-mixerutils.lo \
libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.lo \
libgstaudio_@GST_API_VERSION@_la-gstaudiodecoder.lo \
libgstaudio_@GST_API_VERSION@_la-gstaudioencoder.lo \
@@ -519,10 +514,6 @@ libgstaudio_@GST_API_VERSION@_la_SOURCES = \
audio.c \
gstaudioringbuffer.c \
gstaudioclock.c \
- mixer.c \
- mixeroptions.c \
- mixertrack.c \
- mixerutils.c \
gstaudiocdsrc.c \
gstaudiodecoder.c \
gstaudioencoder.c \
@@ -550,10 +541,6 @@ libgstaudio_@GST_API_VERSION@include_HEADERS = \
gstaudiometa.h \
gstaudiosink.h \
gstaudiosrc.h \
- mixer.h \
- mixeroptions.h \
- mixertrack.h \
- mixerutils.h \
streamvolume.h \
gstaudioiec61937.h
@@ -562,7 +549,6 @@ nodist_libgstaudio_@GST_API_VERSION@include_HEADERS = \
libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
libgstaudio_@GST_API_VERSION@_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
@@ -634,7 +620,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -680,10 +666,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiosink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiosrc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixeroptions.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixertrack.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixerutils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-streamvolume.Plo@am__quote@
.c.o:
@@ -728,34 +710,6 @@ libgstaudio_@GST_API_VERSION@_la-gstaudioclock.lo: gstaudioclock.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-gstaudioclock.lo `test -f 'gstaudioclock.c' || echo '$(srcdir)/'`gstaudioclock.c
-libgstaudio_@GST_API_VERSION@_la-mixer.lo: mixer.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-mixer.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixer.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixer.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixer.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixer.c' object='libgstaudio_@GST_API_VERSION@_la-mixer.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.c
-
-libgstaudio_@GST_API_VERSION@_la-mixeroptions.lo: mixeroptions.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-mixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixeroptions.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixeroptions.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixeroptions.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixeroptions.c' object='libgstaudio_@GST_API_VERSION@_la-mixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.c
-
-libgstaudio_@GST_API_VERSION@_la-mixertrack.lo: mixertrack.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-mixertrack.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixertrack.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixertrack.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixertrack.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixertrack.c' object='libgstaudio_@GST_API_VERSION@_la-mixertrack.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.c
-
-libgstaudio_@GST_API_VERSION@_la-mixerutils.lo: mixerutils.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-mixerutils.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixerutils.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixerutils.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-mixerutils.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixerutils.c' object='libgstaudio_@GST_API_VERSION@_la-mixerutils.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.c
-
libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.lo: gstaudiocdsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.lo `test -f 'gstaudiocdsrc.c' || echo '$(srcdir)/'`gstaudiocdsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.Plo
@@ -857,7 +811,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -878,7 +832,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -899,7 +853,7 @@ install-libgstaudio_@GST_API_VERSION@includeHEADERS: $(libgstaudio_@GST_API_VERS
@list='$(libgstaudio_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstaudio_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -920,7 +874,7 @@ install-nodist_libgstaudio_@GST_API_VERSION@includeHEADERS: $(nodist_libgstaudio
@list='$(nodist_libgstaudio_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstaudio_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstaudio_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -1208,18 +1162,15 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ -I$(top_builddir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ $(gir_cincludes) \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=$(builddir)/../interfaces \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --library=libgstaudio-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --include=GstBase-@GST_API_VERSION@ \
-@HAVE_INTROSPECTION_TRUE@ --include=GstInterfaces-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --libtool="$(top_builddir)/libtool" \
@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-base-@GST_API_VERSION@ \
-@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-interfaces-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --pkg-export gstreamer-audio-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --add-init-section="gst_init(NULL,NULL);" \
@HAVE_INTROSPECTION_TRUE@ --output $@ \
@@ -1231,9 +1182,8 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir)/../interfaces \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst-libs/gst/audio/mixer.c b/gst-libs/gst/audio/mixer.c
deleted file mode 100644
index 4c52b25..0000000
--- a/gst-libs/gst/audio/mixer.c
+++ /dev/null
@@ -1,821 +0,0 @@
-/* GStreamer Mixer
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * mixer.c: mixer design virtual class function wrappers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 "mixer.h"
-#include "audio-marshal.h"
-
-#define GST_MIXER_MESSAGE_NAME "gst-mixer-message"
-
-/**
- * SECTION:gstmixer
- * @short_description: Interface for elements that provide mixer operations
- * @see_also: alsamixer, oss4mixer, sunaudiomixer
- *
- * Basic interface for hardware mixer controls.
- *
- * Applications rarely need to use this interface, it is provided mainly
- * for system-level mixer applets and the like. Volume control in playback
- * applications should be done using a <classname>volume</classname>
- * element or, if available, using the <quote>volume</quote> property of
- * the audio sink element used (as provided by <classname>pulsesink</classname>
- * for example), or even better: just use the <classname>playbin2</classname>
- * element's <quote>volume</quote> property.
- *
- * Usage: In order to use the <classname>GstMixer</classname> interface, the
- * element needs to be at least in READY state (so that the element has opened
- * the mixer device). Once the element has been set to READY state or higher,
- * it can be cast to a <classname>GstMixer</classname> using the GST_MIXER
- * macro (in C) and the mixer API can be used.
- */
-
-/* FIXME 0.11: check if we need to add API for sometimes-supportedness
- * (aka making up for GstImplementsInterface removal) */
-
-static void gst_mixer_class_init (GstMixerInterface * iface);
-
-GType
-gst_mixer_get_type (void)
-{
- static GType gst_mixer_type = 0;
-
- if (!gst_mixer_type) {
- static const GTypeInfo gst_mixer_info = {
- sizeof (GstMixerInterface),
- (GBaseInitFunc) gst_mixer_class_init,
- NULL,
- NULL,
- NULL,
- NULL,
- 0,
- 0,
- NULL,
- };
-
- gst_mixer_type = g_type_register_static (G_TYPE_INTERFACE,
- "GstMixer", &gst_mixer_info, 0);
- }
-
- return gst_mixer_type;
-}
-
-static void
-gst_mixer_class_init (GstMixerInterface * iface)
-{
- /* default virtual functions */
- iface->get_mixer_type = NULL;
- iface->list_tracks = NULL;
- iface->set_volume = NULL;
- iface->get_volume = NULL;
- iface->set_mute = NULL;
- iface->set_record = NULL;
- iface->set_option = NULL;
- iface->get_option = NULL;
-}
-
-/**
- * gst_mixer_list_tracks:
- * @mixer: the #GstMixer (a #GstElement) to get the tracks from.
- *
- * Returns a list of available tracks for this mixer/element. Note
- * that it is allowed for sink (output) elements to only provide
- * the output tracks in this list. Likewise, for sources (inputs),
- * it is allowed to only provide input elements in this list.
- *
- * Returns: A #GList consisting of zero or more #GstMixerTracks.
- * The list is owned by the #GstMixer instance and must not be freed
- * or modified.
- */
-
-const GList *
-gst_mixer_list_tracks (GstMixer * mixer)
-{
- GstMixerInterface *iface;
-
- g_return_val_if_fail (mixer != NULL, NULL);
-
- iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->list_tracks) {
- return iface->list_tracks (mixer);
- }
-
- return NULL;
-}
-
-/**
- * gst_mixer_set_volume:
- * @mixer: The #GstMixer (a #GstElement) that owns the track.
- * @track: The #GstMixerTrack to set the volume on.
- * @volumes: an array of integers (of size track->num_channels)
- * that gives the wanted volume for each channel in
- * this track.
- *
- * Sets the volume on each channel in a track. Short note about
- * naming: a track is defined as one separate stream owned by
- * the mixer/element, such as 'Line-in' or 'Microphone'. A
- * channel is said to be a mono-stream inside this track. A
- * stereo track thus contains two channels.
- */
-
-void
-gst_mixer_set_volume (GstMixer * mixer, GstMixerTrack * track, gint * volumes)
-{
- GstMixerInterface *iface;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (track != NULL);
- g_return_if_fail (volumes != NULL);
-
- iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->set_volume) {
- iface->set_volume (mixer, track, volumes);
- }
-}
-
-/**
- * gst_mixer_get_volume:
- * @mixer: the #GstMixer (a #GstElement) that owns the track
- * @track: the GstMixerTrack to get the volume from.
- * @volumes: a pre-allocated array of integers (of size
- * track->num_channels) to store the current volume
- * of each channel in the given track in.
- *
- * Get the current volume(s) on the given track.
- */
-
-void
-gst_mixer_get_volume (GstMixer * mixer, GstMixerTrack * track, gint * volumes)
-{
- GstMixerInterface *iface;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (track != NULL);
- g_return_if_fail (volumes != NULL);
-
- iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->get_volume) {
- iface->get_volume (mixer, track, volumes);
- } else {
- gint i;
-
- for (i = 0; i < track->num_channels; i++) {
- volumes[i] = 0;
- }
- }
-}
-
-/**
- * gst_mixer_set_mute:
- * @mixer: the #GstMixer (a #GstElement) that owns the track.
- * @track: the #GstMixerTrack to operate on.
- * @mute: a boolean value indicating whether to turn on or off
- * muting.
- *
- * Mutes or unmutes the given channel. To find out whether a
- * track is currently muted, use GST_MIXER_TRACK_HAS_FLAG ().
- */
-
-void
-gst_mixer_set_mute (GstMixer * mixer, GstMixerTrack * track, gboolean mute)
-{
- GstMixerInterface *iface;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (track != NULL);
-
- iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->set_mute) {
- iface->set_mute (mixer, track, mute);
- }
-}
-
-/**
- * gst_mixer_set_record:
- * @mixer: The #GstMixer (a #GstElement) that owns the track.
- * @track: the #GstMixerTrack to operate on.
- * @record: a boolean value that indicates whether to turn on
- * or off recording.
- *
- * Enables or disables recording on the given track. Note that
- * this is only possible on input tracks, not on output tracks
- * (see GST_MIXER_TRACK_HAS_FLAG () and the GST_MIXER_TRACK_INPUT
- * flag).
- */
-
-void
-gst_mixer_set_record (GstMixer * mixer, GstMixerTrack * track, gboolean record)
-{
- GstMixerInterface *iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->set_record) {
- iface->set_record (mixer, track, record);
- }
-}
-
-/**
- * gst_mixer_set_option:
- * @mixer: The #GstMixer (a #GstElement) that owns the optionlist.
- * @opts: The #GstMixerOptions that we operate on.
- * @value: The requested new option value.
- *
- * Sets a name/value option in the mixer to the requested value.
- */
-
-void
-gst_mixer_set_option (GstMixer * mixer, GstMixerOptions * opts, gchar * value)
-{
- GstMixerInterface *iface;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (opts != NULL);
-
- iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->set_option) {
- iface->set_option (mixer, opts, value);
- }
-}
-
-/**
- * gst_mixer_get_option:
- * @mixer: The #GstMixer (a #GstElement) that owns the optionlist.
- * @opts: The #GstMixerOptions that we operate on.
- *
- * Get the current value of a name/value option in the mixer.
- *
- * Returns: current value of the name/value option.
- */
-
-const gchar *
-gst_mixer_get_option (GstMixer * mixer, GstMixerOptions * opts)
-{
- GstMixerInterface *iface;
-
- g_return_val_if_fail (mixer != NULL, NULL);
- g_return_val_if_fail (opts != NULL, NULL);
-
- iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->get_option) {
- return iface->get_option (mixer, opts);
- }
-
- return NULL;
-}
-
-/**
- * gst_mixer_get_mixer_type:
- * @mixer: The #GstMixer implementation
- *
- * Get the #GstMixerType of this mixer implementation.
- *
- * Returns: A the #GstMixerType.
- *
- * Since: 0.10.24
- */
-GstMixerType
-gst_mixer_get_mixer_type (GstMixer * mixer)
-{
- GstMixerInterface *iface = GST_MIXER_GET_INTERFACE (mixer);
-
- g_return_val_if_fail (iface->get_mixer_type != NULL, GST_MIXER_SOFTWARE);
- return iface->get_mixer_type (mixer);
-}
-
-/**
- * gst_mixer_get_mixer_flags:
- * @mixer: The #GstMixer implementation
- *
- * Get the set of supported flags for this mixer implementation.
- *
- * Returns: A set of or-ed GstMixerFlags for supported features.
- */
-GstMixerFlags
-gst_mixer_get_mixer_flags (GstMixer * mixer)
-{
- GstMixerInterface *iface;
-
- g_return_val_if_fail (mixer != NULL, FALSE);
- iface = GST_MIXER_GET_INTERFACE (mixer);
-
- if (iface->get_mixer_flags) {
- return iface->get_mixer_flags (mixer);
- }
- return GST_MIXER_FLAG_NONE;
-}
-
-/**
- * gst_mixer_mute_toggled:
- * @mixer: the #GstMixer (a #GstElement) that owns the track
- * @track: the GstMixerTrack that has change mute state.
- * @mute: the new state of the mute flag on the track
- *
- * This function is called by the mixer implementation to produce
- * a notification message on the bus indicating that the given track
- * has changed mute state.
- *
- * This function only works for GstElements that are implementing the
- * GstMixer interface, and the element needs to have been provided a bus.
- */
-void
-gst_mixer_mute_toggled (GstMixer * mixer, GstMixerTrack * track, gboolean mute)
-{
- GstStructure *s;
- GstMessage *m;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (GST_IS_ELEMENT (mixer));
- g_return_if_fail (track != NULL);
-
- s = gst_structure_new (GST_MIXER_MESSAGE_NAME,
- "type", G_TYPE_STRING, "mute-toggled",
- "track", GST_TYPE_MIXER_TRACK, track, "mute", G_TYPE_BOOLEAN, mute, NULL);
-
- m = gst_message_new_element (GST_OBJECT (mixer), s);
- if (gst_element_post_message (GST_ELEMENT (mixer), m) == FALSE) {
- GST_WARNING ("This element has no bus, therefore no message sent!");
- }
-}
-
-/**
- * gst_mixer_record_toggled:
- * @mixer: the #GstMixer (a #GstElement) that owns the track
- * @track: the GstMixerTrack that has changed recording state.
- * @record: the new state of the record flag on the track
- *
- * This function is called by the mixer implementation to produce
- * a notification message on the bus indicating that the given track
- * has changed recording state.
- *
- * This function only works for GstElements that are implementing the
- * GstMixer interface, and the element needs to have been provided a bus.
- */
-void
-gst_mixer_record_toggled (GstMixer * mixer,
- GstMixerTrack * track, gboolean record)
-{
- GstStructure *s;
- GstMessage *m;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (GST_IS_ELEMENT (mixer));
- g_return_if_fail (track != NULL);
-
- s = gst_structure_new (GST_MIXER_MESSAGE_NAME,
- "type", G_TYPE_STRING, "record-toggled",
- "track", GST_TYPE_MIXER_TRACK, track,
- "record", G_TYPE_BOOLEAN, record, NULL);
-
- m = gst_message_new_element (GST_OBJECT (mixer), s);
- if (gst_element_post_message (GST_ELEMENT (mixer), m) == FALSE) {
- GST_WARNING ("This element has no bus, therefore no message sent!");
- }
-}
-
-/**
- * gst_mixer_volume_changed:
- * @mixer: the #GstMixer (a #GstElement) that owns the track
- * @track: the GstMixerTrack that has changed.
- * @volumes: Array of volume values, one per channel on the mixer track.
- *
- * This function is called by the mixer implementation to produce
- * a notification message on the bus indicating that the volume(s) for the
- * given track have changed.
- *
- * This function only works for GstElements that are implementing the
- * GstMixer interface, and the element needs to have been provided a bus.
- */
-void
-gst_mixer_volume_changed (GstMixer * mixer,
- GstMixerTrack * track, gint * volumes)
-{
- GstStructure *s;
- GstMessage *m;
- GValue l = { 0, };
- GValue v = { 0, };
- gint i;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (GST_IS_ELEMENT (mixer));
- g_return_if_fail (track != NULL);
-
- s = gst_structure_new (GST_MIXER_MESSAGE_NAME,
- "type", G_TYPE_STRING, "volume-changed",
- "track", GST_TYPE_MIXER_TRACK, track, NULL);
-
- g_value_init (&l, GST_TYPE_ARRAY);
-
- g_value_init (&v, G_TYPE_INT);
-
- /* FIXME 0.11: pass track->num_channels to the function */
- for (i = 0; i < track->num_channels; ++i) {
- g_value_set_int (&v, volumes[i]);
- gst_value_array_append_value (&l, &v);
- }
- g_value_unset (&v);
-
- gst_structure_set_value (s, "volumes", &l);
- g_value_unset (&l);
-
- m = gst_message_new_element (GST_OBJECT (mixer), s);
- if (gst_element_post_message (GST_ELEMENT (mixer), m) == FALSE) {
- GST_WARNING ("This element has no bus, therefore no message sent!");
- }
-}
-
-/**
- * gst_mixer_option_changed:
- * @mixer: the #GstMixer (a #GstElement) that owns the options
- * @opts: the GstMixerOptions that has changed value.
- * @value: the new value of the GstMixerOptions.
- *
- * This function is called by the mixer implementation to produce
- * a notification message on the bus indicating that the given options
- * object has changed state.
- *
- * This function only works for GstElements that are implementing the
- * GstMixer interface, and the element needs to have been provided a bus.
- */
-void
-gst_mixer_option_changed (GstMixer * mixer,
- GstMixerOptions * opts, const gchar * value)
-{
- GstStructure *s;
- GstMessage *m;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (GST_IS_ELEMENT (mixer));
- g_return_if_fail (opts != NULL);
-
- s = gst_structure_new (GST_MIXER_MESSAGE_NAME,
- "type", G_TYPE_STRING, "option-changed",
- "options", GST_TYPE_MIXER_OPTIONS, opts,
- "value", G_TYPE_STRING, value, NULL);
-
- m = gst_message_new_element (GST_OBJECT (mixer), s);
- if (gst_element_post_message (GST_ELEMENT (mixer), m) == FALSE) {
- GST_WARNING ("This element has no bus, therefore no message sent!");
- }
-}
-
-/**
- * gst_mixer_options_list_changed:
- * @mixer: the #GstMixer (a #GstElement) that owns the options
- * @opts: the GstMixerOptions whose list of values has changed
- *
- * This function is called by the mixer implementation to produce
- * a notification message on the bus indicating that the list of possible
- * options of a given options object has changed.
- *
- * The new options are not contained in the message on purpose. Applications
- * should call gst_mixer_options_get_values() on @opts to make @opts update
- * its internal state and obtain the new list of values.
- *
- * This function only works for GstElements that are implementing the
- * GstMixer interface, and the element needs to have been provided a bus
- * for this to work.
- *
- * Since: 0.10.18
- */
-void
-gst_mixer_options_list_changed (GstMixer * mixer, GstMixerOptions * opts)
-{
- GstStructure *s;
- GstMessage *m;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (GST_IS_ELEMENT (mixer));
- g_return_if_fail (opts != NULL);
- g_return_if_fail (GST_IS_MIXER_OPTIONS (opts));
-
- /* we do not include the new list here on purpose, so that the application
- * has to use gst_mixer_options_get_values() to get the new list, which then
- * allows the mixer options object to update the internal GList in a somewhat
- * thread-safe way at least */
- s = gst_structure_new (GST_MIXER_MESSAGE_NAME,
- "type", G_TYPE_STRING, "options-list-changed",
- "options", GST_TYPE_MIXER_OPTIONS, opts, NULL);
-
- m = gst_message_new_element (GST_OBJECT (mixer), s);
- if (gst_element_post_message (GST_ELEMENT (mixer), m) == FALSE) {
- GST_WARNING ("This element has no bus, therefore no message sent!");
- }
-}
-
-/**
- * gst_mixer_mixer_changed:
- * @mixer: the #GstMixer (a #GstElement) which has changed
- *
- * This function is called by the mixer implementation to produce
- * a notification message on the bus indicating that the list of available
- * mixer tracks for a given mixer object has changed. Applications should
- * rebuild their interface when they receive this message.
- *
- * This function only works for GstElements that are implementing the
- * GstMixer interface, and the element needs to have been provided a bus.
- *
- * Since: 0.10.18
- */
-void
-gst_mixer_mixer_changed (GstMixer * mixer)
-{
- GstStructure *s;
- GstMessage *m;
-
- g_return_if_fail (mixer != NULL);
- g_return_if_fail (GST_IS_ELEMENT (mixer));
-
- s = gst_structure_new (GST_MIXER_MESSAGE_NAME,
- "type", G_TYPE_STRING, "mixer-changed", NULL);
-
- m = gst_message_new_element (GST_OBJECT (mixer), s);
- if (gst_element_post_message (GST_ELEMENT (mixer), m) == FALSE) {
- GST_WARNING ("This element has no bus, therefore no message sent!");
- }
-}
-
-static gboolean
-gst_mixer_message_is_mixer_message (GstMessage * message)
-{
- const GstStructure *s;
-
- if (message == NULL)
- return FALSE;
- if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT)
- return FALSE;
-
- s = gst_message_get_structure (message);
- return gst_structure_has_name (s, GST_MIXER_MESSAGE_NAME);
-}
-
-/**
- * gst_mixer_message_get_type:
- * @message: A GstMessage to inspect.
- *
- * Check a bus message to see if it is a GstMixer notification
- * message and return the GstMixerMessageType identifying which
- * type of notification it is.
- *
- * Returns: The type of the GstMixerMessage, or GST_MIXER_MESSAGE_INVALID
- * if the message is not a GstMixer notification.
- *
- * Since: 0.10.14
- */
-GstMixerMessageType
-gst_mixer_message_get_type (GstMessage * message)
-{
- const GstStructure *s;
- const gchar *m_type;
-
- if (!gst_mixer_message_is_mixer_message (message))
- return GST_MIXER_MESSAGE_INVALID;
-
- s = gst_message_get_structure (message);
- m_type = gst_structure_get_string (s, "type");
- g_return_val_if_fail (m_type != NULL, GST_MIXER_MESSAGE_INVALID);
-
- if (g_str_equal (m_type, "mute-toggled"))
- return GST_MIXER_MESSAGE_MUTE_TOGGLED;
- else if (g_str_equal (m_type, "record-toggled"))
- return GST_MIXER_MESSAGE_RECORD_TOGGLED;
- else if (g_str_equal (m_type, "volume-changed"))
- return GST_MIXER_MESSAGE_VOLUME_CHANGED;
- else if (g_str_equal (m_type, "option-changed"))
- return GST_MIXER_MESSAGE_OPTION_CHANGED;
- else if (g_str_equal (m_type, "options-list-changed"))
- return GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED;
- else if (g_str_equal (m_type, "mixer-changed"))
- return GST_MIXER_MESSAGE_MIXER_CHANGED;
-
- return GST_MIXER_MESSAGE_INVALID;
-}
-
-#define GST_MIXER_MESSAGE_HAS_TYPE(msg,msg_type) \
-(gst_mixer_message_get_type (msg) == GST_MIXER_MESSAGE_ ## msg_type)
-
-/**
- * gst_mixer_message_parse_mute_toggled:
- * @message: A mute-toggled change notification message.
- * @track: Pointer to hold a GstMixerTrack object, or NULL.
- * @mute: A pointer to a gboolean variable, or NULL.
- *
- * Extracts the contents of a mute-toggled bus message. Reads
- * the GstMixerTrack that has changed, and the new value of the mute
- * flag.
- *
- * The GstMixerTrack remains valid until the message is freed.
- *
- * Since: 0.10.14
- */
-void
-gst_mixer_message_parse_mute_toggled (GstMessage * message,
- GstMixerTrack ** track, gboolean * mute)
-{
- const GstStructure *s;
-
- g_return_if_fail (gst_mixer_message_is_mixer_message (message));
- g_return_if_fail (GST_MIXER_MESSAGE_HAS_TYPE (message, MUTE_TOGGLED));
-
- s = gst_message_get_structure (message);
-
- if (track) {
- const GValue *v = gst_structure_get_value (s, "track");
-
- g_return_if_fail (v != NULL);
- *track = (GstMixerTrack *) g_value_get_object (v);
- g_return_if_fail (GST_IS_MIXER_TRACK (*track));
- }
-
- if (mute)
- g_return_if_fail (gst_structure_get_boolean (s, "mute", mute));
-}
-
-/**
- * gst_mixer_message_parse_record_toggled:
- * @message: A record-toggled change notification message.
- * @track: Pointer to hold a GstMixerTrack object, or NULL.
- * @record: A pointer to a gboolean variable, or NULL.
- *
- * Extracts the contents of a record-toggled bus message. Reads
- * the GstMixerTrack that has changed, and the new value of the
- * recording flag.
- *
- * The GstMixerTrack remains valid until the message is freed.
- *
- * Since: 0.10.14
- */
-void
-gst_mixer_message_parse_record_toggled (GstMessage * message,
- GstMixerTrack ** track, gboolean * record)
-{
- const GstStructure *s;
-
- g_return_if_fail (gst_mixer_message_is_mixer_message (message));
- g_return_if_fail (GST_MIXER_MESSAGE_HAS_TYPE (message, RECORD_TOGGLED));
-
- s = gst_message_get_structure (message);
-
- if (track) {
- const GValue *v = gst_structure_get_value (s, "track");
-
- g_return_if_fail (v != NULL);
- *track = (GstMixerTrack *) g_value_get_object (v);
- g_return_if_fail (GST_IS_MIXER_TRACK (*track));
- }
-
- if (record)
- g_return_if_fail (gst_structure_get_boolean (s, "record", record));
-}
-
-/**
- * gst_mixer_message_parse_volume_changed:
- * @message: A volume-changed change notification message.
- * @track: Pointer to hold a GstMixerTrack object, or NULL.
- * @volumes: A pointer to receive an array of gint values, or NULL.
- * @num_channels: Result location to receive the number of channels, or NULL.
- *
- * Parses a volume-changed notification message and extracts the track object
- * it refers to, as well as an array of volumes and the size of the volumes array.
- *
- * The track object remains valid until the message is freed.
- *
- * The caller must free the array returned in the volumes parameter using g_free
- * when they are done with it.
- *
- * Since: 0.10.14
- */
-void
-gst_mixer_message_parse_volume_changed (GstMessage * message,
- GstMixerTrack ** track, gint ** volumes, gint * num_channels)
-{
- const GstStructure *s;
-
- g_return_if_fail (gst_mixer_message_is_mixer_message (message));
- g_return_if_fail (GST_MIXER_MESSAGE_HAS_TYPE (message, VOLUME_CHANGED));
-
- s = gst_message_get_structure (message);
-
- if (track) {
- const GValue *v = gst_structure_get_value (s, "track");
-
- g_return_if_fail (v != NULL);
- *track = (GstMixerTrack *) g_value_get_object (v);
- g_return_if_fail (GST_IS_MIXER_TRACK (*track));
- }
-
- if (volumes || num_channels) {
- gint n_chans, i;
- const GValue *v = gst_structure_get_value (s, "volumes");
-
- g_return_if_fail (v != NULL);
- g_return_if_fail (GST_VALUE_HOLDS_ARRAY (v));
-
- n_chans = gst_value_array_get_size (v);
- if (num_channels)
- *num_channels = n_chans;
-
- if (volumes) {
- *volumes = g_new (gint, n_chans);
- for (i = 0; i < n_chans; i++) {
- const GValue *e = gst_value_array_get_value (v, i);
-
- g_return_if_fail (e != NULL && G_VALUE_HOLDS_INT (e));
- (*volumes)[i] = g_value_get_int (e);
- }
- }
- }
-}
-
-/**
- * gst_mixer_message_parse_option_changed:
- * @message: A volume-changed change notification message.
- * @options: Pointer to hold a GstMixerOptions object, or NULL.
- * @value: Result location to receive the new options value, or NULL.
- *
- * Extracts the GstMixerOptions and new value from a option-changed bus notification
- * message.
- *
- * The options and value returned remain valid until the message is freed.
- *
- * Since: 0.10.14
- */
-void
-gst_mixer_message_parse_option_changed (GstMessage * message,
- GstMixerOptions ** options, const gchar ** value)
-{
- const GstStructure *s;
-
- g_return_if_fail (gst_mixer_message_is_mixer_message (message));
- g_return_if_fail (GST_MIXER_MESSAGE_HAS_TYPE (message, OPTION_CHANGED));
-
- s = gst_message_get_structure (message);
-
- if (options) {
- const GValue *v = gst_structure_get_value (s, "options");
-
- g_return_if_fail (v != NULL);
- *options = (GstMixerOptions *) g_value_get_object (v);
- g_return_if_fail (GST_IS_MIXER_OPTIONS (*options));
- }
-
- if (value)
- *value = gst_structure_get_string (s, "value");
-}
-
-/**
- * gst_mixer_message_parse_options_list_changed:
- * @message: A volume-changed change notification message.
- * @options: Pointer to hold a GstMixerOptions object, or NULL.
- *
- * Extracts the GstMixerOptions whose value list has changed from an
- * options-list-changed bus notification message.
- *
- * The options object returned remains valid until the message is freed. You
- * do not need to unref it.
- *
- * Since: 0.10.18
- */
-void
-gst_mixer_message_parse_options_list_changed (GstMessage * message,
- GstMixerOptions ** options)
-{
- const GstStructure *s;
-
- g_return_if_fail (gst_mixer_message_is_mixer_message (message));
- g_return_if_fail (GST_MIXER_MESSAGE_HAS_TYPE (message, OPTIONS_LIST_CHANGED));
-
- s = gst_message_get_structure (message);
-
- if (options) {
- const GValue *v = gst_structure_get_value (s, "options");
-
- g_return_if_fail (v != NULL);
- *options = (GstMixerOptions *) g_value_get_object (v);
- g_return_if_fail (GST_IS_MIXER_OPTIONS (*options));
- }
-}
diff --git a/gst-libs/gst/audio/mixer.h b/gst-libs/gst/audio/mixer.h
deleted file mode 100644
index 1de602d..0000000
--- a/gst-libs/gst/audio/mixer.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* GStreamer Mixer
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * mixer.h: mixer interface design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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_MIXER_H__
-#define __GST_MIXER_H__
-
-#include <gst/gst.h>
-#include <gst/audio/mixeroptions.h>
-#include <gst/audio/mixertrack.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_MIXER \
- (gst_mixer_get_type ())
-#define GST_MIXER(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER, GstMixer))
-#define GST_IS_MIXER(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MIXER))
-#define GST_MIXER_GET_INTERFACE(inst) \
- (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_MIXER, GstMixerInterface))
-
-typedef struct _GstMixer GstMixer;
-typedef struct _GstMixerInterface GstMixerInterface;
-
-/**
- * GstMixerType:
- * @GST_MIXER_HARDWARE: mixing is implemented with dedicated hardware.
- * @GST_MIXER_SOFTWARE: mixing is implemented via software processing.
- *
- * Mixer classification.
- */
-typedef enum
-{
- GST_MIXER_HARDWARE,
- GST_MIXER_SOFTWARE
-} GstMixerType;
-
-/**
- * GstMixerMessageType:
- * @GST_MIXER_MESSAGE_INVALID: Not a GstMixer message
- * @GST_MIXER_MESSAGE_MUTE_TOGGLED: A mute-toggled GstMixer message
- * @GST_MIXER_MESSAGE_RECORD_TOGGLED: A record-toggled GstMixer message
- * @GST_MIXER_MESSAGE_VOLUME_CHANGED: A volume-changed GstMixer message
- * @GST_MIXER_MESSAGE_OPTION_CHANGED: An option-changed GstMixer message
- * @GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED: An options-list-changed
- * GstMixer message, posted when the list of available options for a
- * GstMixerOptions object has changed (Since: 0.10.18)
- * @GST_MIXER_MESSAGE_MIXER_CHANGED: A mixer-changed GstMixer message, posted
- * when the list of available mixer tracks has changed. The application
- * should re-build its interface in this case (Since: 0.10.18)
- *
- * An enumeration for the type of a GstMixer message received on the bus
- *
- * Since: 0.10.14
- */
-typedef enum
-{
- GST_MIXER_MESSAGE_INVALID,
- GST_MIXER_MESSAGE_MUTE_TOGGLED,
- GST_MIXER_MESSAGE_RECORD_TOGGLED,
- GST_MIXER_MESSAGE_VOLUME_CHANGED,
- GST_MIXER_MESSAGE_OPTION_CHANGED,
- GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED,
- GST_MIXER_MESSAGE_MIXER_CHANGED
-} GstMixerMessageType;
-
-/**
- * GstMixerFlags:
- * @GST_MIXER_FLAG_NONE: No flags
- * @GST_MIXER_FLAG_AUTO_NOTIFICATIONS: The mixer implementation automatically
- * sends notification messages.
- * @GST_MIXER_FLAG_HAS_WHITELIST: The mixer implementation flags tracks that
- * should be displayed by default (whitelisted). Since: 0.10.23
- * @GST_MIXER_FLAG_GROUPING: The mixer implementation will leave some controls
- * marked without either input or output. Controls marked as input or
- * output should be grouped with input & output sliders, even if they
- * are options or bare switches. Since: 0.10.23
- *
- * Flags indicating which optional features are supported by a mixer
- * implementation.
- *
- * Since: 0.10.14
- */
-typedef enum
-{
- GST_MIXER_FLAG_NONE = 0,
- GST_MIXER_FLAG_AUTO_NOTIFICATIONS = (1<<0),
- GST_MIXER_FLAG_HAS_WHITELIST = (1<<1),
- GST_MIXER_FLAG_GROUPING = (1<<2),
-} GstMixerFlags;
-
-struct _GstMixerInterface {
- GTypeInterface iface;
-
- /* virtual functions */
- const GList * (* list_tracks) (GstMixer *mixer);
-
- void (* set_volume) (GstMixer *mixer,
- GstMixerTrack *track,
- gint *volumes);
- void (* get_volume) (GstMixer *mixer,
- GstMixerTrack *track,
- gint *volumes);
-
- void (* set_mute) (GstMixer *mixer,
- GstMixerTrack *track,
- gboolean mute);
- void (* set_record) (GstMixer *mixer,
- GstMixerTrack *track,
- gboolean record);
- void (* set_option) (GstMixer *mixer,
- GstMixerOptions *opts,
- gchar *value);
- const gchar * (* get_option) (GstMixer *mixer,
- GstMixerOptions *opts);
-
- GstMixerFlags (* get_mixer_flags) (GstMixer *mixer);
-
- GstMixerType (* get_mixer_type) (GstMixer *mixer);
-};
-
-GType gst_mixer_get_type (void);
-
-/* virtual class function wrappers */
-const GList * gst_mixer_list_tracks (GstMixer *mixer);
-void gst_mixer_set_volume (GstMixer *mixer,
- GstMixerTrack *track,
- gint *volumes);
-void gst_mixer_get_volume (GstMixer *mixer,
- GstMixerTrack *track,
- gint *volumes);
-void gst_mixer_set_mute (GstMixer *mixer,
- GstMixerTrack *track,
- gboolean mute);
-void gst_mixer_set_record (GstMixer *mixer,
- GstMixerTrack *track,
- gboolean record);
-void gst_mixer_set_option (GstMixer *mixer,
- GstMixerOptions *opts,
- gchar *value);
-const gchar * gst_mixer_get_option (GstMixer *mixer,
- GstMixerOptions *opts);
-
-/* trigger bus messages */
-void gst_mixer_mute_toggled (GstMixer *mixer,
- GstMixerTrack *track,
- gboolean mute);
-void gst_mixer_record_toggled (GstMixer *mixer,
- GstMixerTrack *track,
- gboolean record);
-void gst_mixer_volume_changed (GstMixer *mixer,
- GstMixerTrack *track,
- gint *volumes);
-void gst_mixer_option_changed (GstMixer *mixer,
- GstMixerOptions *opts,
- const gchar *value);
-
-void gst_mixer_mixer_changed (GstMixer *mixer);
-
-void gst_mixer_options_list_changed (GstMixer *mixer,
- GstMixerOptions *opts);
-
-GstMixerType gst_mixer_get_mixer_type (GstMixer *mixer);
-
-GstMixerFlags gst_mixer_get_mixer_flags (GstMixer *mixer);
-
-/* Functions for recognising and parsing GstMixerMessages on the bus */
-GstMixerMessageType gst_mixer_message_get_type (GstMessage *message);
-void gst_mixer_message_parse_mute_toggled (GstMessage *message,
- GstMixerTrack **track,
- gboolean *mute);
-void gst_mixer_message_parse_record_toggled (GstMessage *message,
- GstMixerTrack **track,
- gboolean *record);
-void gst_mixer_message_parse_volume_changed (GstMessage *message,
- GstMixerTrack **track,
- gint **volumes,
- gint *num_channels);
-void gst_mixer_message_parse_option_changed (GstMessage *message,
- GstMixerOptions **options,
- const gchar **value);
-void gst_mixer_message_parse_options_list_changed (GstMessage *message,
- GstMixerOptions **options);
-
-G_END_DECLS
-
-#endif /* __GST_MIXER_H__ */
diff --git a/gst-libs/gst/audio/mixeroptions.c b/gst-libs/gst/audio/mixeroptions.c
deleted file mode 100644
index 01b75b4..0000000
--- a/gst-libs/gst/audio/mixeroptions.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* GStreamer Mixer
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * mixeroptions.c: mixer track options object design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstmixeroptions
- * @short_description: Multi-option mixer control
- * @see_also: GstMixer, GstMixerTrack
- *
- * Mixer control object that allows switching between multiple options.
- * Note that <classname>GstMixerOptions</classname> is a subclass of
- * <classname>GstMixerTrack</classname>.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "mixeroptions.h"
-
-#if 0
-enum
-{
- /* FILL ME */
- SIGNAL_OPTION_CHANGED,
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
-#endif
-
-static void gst_mixer_options_class_init (GstMixerOptionsClass * klass);
-static void gst_mixer_options_init (GstMixerOptions * mixer);
-static void gst_mixer_options_dispose (GObject * object);
-
-static GObjectClass *parent_class = NULL;
-
-GType
-gst_mixer_options_get_type (void)
-{
- static GType gst_mixer_options_type = 0;
-
- if (!gst_mixer_options_type) {
- static const GTypeInfo mixer_options_info = {
- sizeof (GstMixerOptionsClass),
- NULL,
- NULL,
- (GClassInitFunc) gst_mixer_options_class_init,
- NULL,
- NULL,
- sizeof (GstMixerOptions),
- 0,
- (GInstanceInitFunc) gst_mixer_options_init,
- NULL
- };
-
- gst_mixer_options_type =
- g_type_register_static (GST_TYPE_MIXER_TRACK,
- "GstMixerOptions", &mixer_options_info, 0);
- }
-
- return gst_mixer_options_type;
-}
-
-static void
-gst_mixer_options_class_init (GstMixerOptionsClass * klass)
-{
- GObjectClass *object_klass = (GObjectClass *) klass;
-
- parent_class = g_type_class_peek_parent (klass);
-#if 0
- signals[SIGNAL_OPTION_CHANGED] =
- g_signal_new ("option_changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstMixerOptionsClass, option_changed),
- NULL, NULL, g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
-#endif
-
- object_klass->dispose = gst_mixer_options_dispose;
-}
-
-static void
-gst_mixer_options_init (GstMixerOptions * mixer_options)
-{
- mixer_options->values = NULL;
-}
-
-/**
- * gst_mixer_options_get_values:
- * @mixer_options: The #GstMixerOptions item that owns the values.
- *
- * Get the values for the mixer option.
- *
- * Returns: A list of strings with all the possible values for the mixer
- * option. You must not free or modify the list or its contents, it belongs
- * to the @mixer_options object.
- */
-GList *
-gst_mixer_options_get_values (GstMixerOptions * mixer_options)
-{
- GstMixerOptionsClass *klass;
- GList *ret = NULL;
-
- g_return_val_if_fail (GST_IS_MIXER_OPTIONS (mixer_options), NULL);
-
- klass = GST_MIXER_OPTIONS_GET_CLASS (mixer_options);
-
- if (klass->get_values != NULL) {
- ret = klass->get_values (mixer_options);
- } else {
- ret = mixer_options->values;
- }
-
- return ret;
-}
-
-
-static void
-gst_mixer_options_dispose (GObject * object)
-{
- GstMixerOptions *opts = GST_MIXER_OPTIONS (object);
-
- g_list_foreach (opts->values, (GFunc) g_free, NULL);
- g_list_free (opts->values);
- opts->values = NULL;
-
- if (parent_class->dispose)
- parent_class->dispose (object);
-}
diff --git a/gst-libs/gst/audio/mixeroptions.h b/gst-libs/gst/audio/mixeroptions.h
deleted file mode 100644
index bbb55a7..0000000
--- a/gst-libs/gst/audio/mixeroptions.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* GStreamer Mixer
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * mixeroptions.h: mixer track options object
- * This should be a subclass of MixerItem, along with MixerOptions,
- * but that's not possible because of API/ABI in 0.8.x. FIXME.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_MIXER_OPTIONS_H__
-#define __GST_MIXER_OPTIONS_H__
-
-#include <gst/gst.h>
-#include <gst/audio/mixertrack.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_MIXER_OPTIONS \
- (gst_mixer_options_get_type ())
-#define GST_MIXER_OPTIONS(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER_OPTIONS, \
- GstMixerOptions))
-#define GST_MIXER_OPTIONS_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_MIXER_OPTIONS, GstMixerOptionsClass))
-#define GST_MIXER_OPTIONS_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MIXER_OPTIONS, \
- GstMixerOptionsClass))
-#define GST_IS_MIXER_OPTIONS(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MIXER_OPTIONS))
-#define GST_IS_MIXER_OPTIONS_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MIXER_OPTIONS))
-
-typedef struct _GstMixerOptions GstMixerOptions;
-typedef struct _GstMixerOptionsClass GstMixerOptionsClass;
-
-/**
- * GstMixerOptions:
- * @values: List of option strings. Do not access this member directly,
- * always use gst_mixer_options_get_values() instead.
- *
- * Mixer control object.
- */
-struct _GstMixerOptions {
- GstMixerTrack parent;
-
- /*< public >*/
- /* list of strings (do not access directly) (FIXME 0.11: make private) */
- GList *values;
-
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
-/**
- * GstMixerOptionsClass:
- * @parent: the parent class
- * @get_values: Optional implementation of gst_mixer_options_get_values().
- * (Since: 0.10.18)
- */
-struct _GstMixerOptionsClass {
- GstMixerTrackClass parent;
-
- GList * (* get_values) (GstMixerOptions *opts);
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
-GType gst_mixer_options_get_type (void);
-
-GList * gst_mixer_options_get_values (GstMixerOptions *mixer_options);
-
-G_END_DECLS
-
-#endif /* __GST_MIXER_OPTIONS_H__ */
diff --git a/gst-libs/gst/audio/mixertrack.c b/gst-libs/gst/audio/mixertrack.c
deleted file mode 100644
index c4bef1c..0000000
--- a/gst-libs/gst/audio/mixertrack.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/* GStreamer Mixer
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * mixertrack.c: mixer track object design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstmixertrack
- * @short_description: Basic mixer control object (volume slider, switch)
- * @see_also: GstMixer, GstMixerOptions
- *
- * Basic mixer control object (note that it is a GObject and not a GstObject).
- *
- * A mixer track represents a single slider control of none, one or more
- * channels. A mixer track with no channels is usually interpreted as a
- * on/off switch control.
- *
- * Note the presence of both min_volume and max_volume fields. Applications
- * must not assume that min_volume is 0 or max_volume is any particular
- * value.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "mixertrack.h"
-#if 0
-enum
-{
- /* FILL ME */
- SIGNAL_VOLUME_CHANGED,
- SIGNAL_RECORD_TOGGLED,
- SIGNAL_MUTE_TOGGLED,
- LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
-#endif
-
-enum
-{
- ARG_0,
- ARG_LABEL,
- ARG_UNTRANSLATED_LABEL,
- ARG_INDEX,
- ARG_MIN_VOLUME,
- ARG_MAX_VOLUME,
- ARG_FLAGS,
- ARG_NUM_CHANNELS
-};
-
-static void gst_mixer_track_class_init (GstMixerTrackClass * klass);
-static void gst_mixer_track_init (GstMixerTrack * mixer);
-static void gst_mixer_track_dispose (GObject * object);
-
-static void gst_mixer_track_get_property (GObject * object, guint prop_id,
- GValue * value, GParamSpec * pspec);
-static void gst_mixer_track_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec);
-
-static GObjectClass *parent_class = NULL;
-
-GType
-gst_mixer_track_get_type (void)
-{
- static GType gst_mixer_track_type = 0;
-
- if (!gst_mixer_track_type) {
- static const GTypeInfo mixer_track_info = {
- sizeof (GstMixerTrackClass),
- NULL,
- NULL,
- (GClassInitFunc) gst_mixer_track_class_init,
- NULL,
- NULL,
- sizeof (GstMixerTrack),
- 0,
- (GInstanceInitFunc) gst_mixer_track_init,
- NULL
- };
-
- gst_mixer_track_type =
- g_type_register_static (G_TYPE_OBJECT,
- "GstMixerTrack", &mixer_track_info, 0);
- }
-
- return gst_mixer_track_type;
-}
-
-static void
-gst_mixer_track_class_init (GstMixerTrackClass * klass)
-{
- GObjectClass *object_klass = G_OBJECT_CLASS (klass);
-
- parent_class = g_type_class_peek_parent (klass);
-
- object_klass->get_property = gst_mixer_track_get_property;
- object_klass->set_property = gst_mixer_track_set_property;
-
- g_object_class_install_property (object_klass, ARG_LABEL,
- g_param_spec_string ("label", "Track label",
- "The label assigned to the track (may be translated)", NULL,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_STATIC_STRINGS));
-
- /**
- * GstMixerTrack:untranslated-label
- *
- * The untranslated label of the mixer track, if available. Mixer track
- * implementations must set this at construct time. Applications may find
- * this useful to determine icons for various kind of tracks. However,
- * applications mustn't make any assumptions about the naming of tracks,
- * the untranslated labels are purely informational and may change.
- *
- * Since: 0.10.13
- **/
- g_object_class_install_property (object_klass, ARG_UNTRANSLATED_LABEL,
- g_param_spec_string ("untranslated-label", "Untranslated track label",
- "The untranslated label assigned to the track (since 0.10.13)",
- NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
-
- /**
- * GstMixerTrack:index
- *
- * Index of the mixer track, if available. Mixer track implementations
- * must set this at construct time. This can be used to discern between
- * multiple tracks with identical labels.
- *
- * Since: 0.10.21
- */
- g_object_class_install_property (object_klass, ARG_INDEX,
- g_param_spec_uint ("index", "Index",
- "Track index", 0, G_MAXUINT,
- 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-
- g_object_class_install_property (object_klass, ARG_MIN_VOLUME,
- g_param_spec_int ("min-volume", "Minimum volume level",
- "The minimum possible volume level", G_MININT, G_MAXINT,
- 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (object_klass, ARG_MAX_VOLUME,
- g_param_spec_int ("max-volume", "Maximum volume level",
- "The maximum possible volume level", G_MININT, G_MAXINT,
- 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (object_klass, ARG_FLAGS,
- g_param_spec_uint ("flags", "Flags",
- "Flags indicating the type of mixer track",
- 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (object_klass, ARG_NUM_CHANNELS,
- g_param_spec_int ("num-channels", "Number of channels",
- "The number of channels contained within the track",
- 0, G_MAXINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-
-#if 0
- signals[SIGNAL_RECORD_TOGGLED] =
- g_signal_new ("record_toggled", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstMixerTrackClass,
- record_toggled),
- NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN,
- G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
- signals[SIGNAL_MUTE_TOGGLED] =
- g_signal_new ("mute_toggled", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstMixerTrackClass,
- mute_toggled),
- NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN,
- G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
- signals[SIGNAL_VOLUME_CHANGED] =
- g_signal_new ("volume_changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstMixerTrackClass,
- volume_changed),
- NULL, NULL, g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1, G_TYPE_POINTER);
-#endif
-
- object_klass->dispose = gst_mixer_track_dispose;
-}
-
-static void
-gst_mixer_track_init (GstMixerTrack * mixer_track)
-{
- mixer_track->label = NULL;
- mixer_track->min_volume = mixer_track->max_volume = 0;
- mixer_track->flags = 0;
- mixer_track->num_channels = 0;
-}
-
-/* FIXME 0.11: move these as members into the mixer track structure */
-#define MIXER_TRACK_OBJECT_DATA_KEY_UNTRANSLATED_LABEL "gst-mixer-track-ulabel"
-#define MIXER_TRACK_OBJECT_DATA_KEY_INDEX "index"
-
-static void
-gst_mixer_track_get_property (GObject * object, guint prop_id, GValue * value,
- GParamSpec * pspec)
-{
- GstMixerTrack *mixer_track;
-
- mixer_track = GST_MIXER_TRACK (object);
-
- switch (prop_id) {
- case ARG_LABEL:
- g_value_set_string (value, mixer_track->label);
- break;
- case ARG_UNTRANSLATED_LABEL:
- g_value_set_string (value,
- (const gchar *) g_object_get_data (G_OBJECT (mixer_track),
- MIXER_TRACK_OBJECT_DATA_KEY_UNTRANSLATED_LABEL));
- break;
- case ARG_INDEX:
- g_value_set_uint (value,
- GPOINTER_TO_INT (g_object_get_data (G_OBJECT (mixer_track),
- MIXER_TRACK_OBJECT_DATA_KEY_INDEX)));
- break;
- case ARG_MIN_VOLUME:
- g_value_set_int (value, mixer_track->min_volume);
- break;
- case ARG_MAX_VOLUME:
- g_value_set_int (value, mixer_track->max_volume);
- break;
- case ARG_FLAGS:
- g_value_set_uint (value, (guint32) mixer_track->flags);
- break;
- case ARG_NUM_CHANNELS:
- g_value_set_int (value, mixer_track->num_channels);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gst_mixer_track_set_property (GObject * object, guint prop_id,
- const GValue * value, GParamSpec * pspec)
-{
- GstMixerTrack *mixer_track;
-
- mixer_track = GST_MIXER_TRACK (object);
-
- switch (prop_id) {
- case ARG_UNTRANSLATED_LABEL:
- g_object_set_data_full (G_OBJECT (mixer_track),
- MIXER_TRACK_OBJECT_DATA_KEY_UNTRANSLATED_LABEL,
- g_value_dup_string (value), (GDestroyNotify) g_free);
- break;
- case ARG_INDEX:
- g_object_set_data (G_OBJECT (mixer_track),
- MIXER_TRACK_OBJECT_DATA_KEY_INDEX,
- GINT_TO_POINTER (g_value_get_uint (value)));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gst_mixer_track_dispose (GObject * object)
-{
- GstMixerTrack *channel = GST_MIXER_TRACK (object);
-
- if (channel->label) {
- g_free (channel->label);
- channel->label = NULL;
- }
-
- if (parent_class->dispose)
- parent_class->dispose (object);
-}
diff --git a/gst-libs/gst/audio/mixertrack.h b/gst-libs/gst/audio/mixertrack.h
deleted file mode 100644
index a92ba53..0000000
--- a/gst-libs/gst/audio/mixertrack.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* GStreamer Mixer
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * mixertrack.h: mixer track object
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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_MIXER_TRACK_H__
-#define __GST_MIXER_TRACK_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_MIXER_TRACK \
- (gst_mixer_track_get_type ())
-#define GST_MIXER_TRACK(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER_TRACK, \
- GstMixerTrack))
-#define GST_MIXER_TRACK_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MIXER_TRACK, \
- GstMixerTrackClass))
-#define GST_IS_MIXER_TRACK(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MIXER_TRACK))
-#define GST_IS_MIXER_TRACK_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MIXER_TRACK))
-
-/*
- * Naming:
- *
- * A track is a single input/output stream (e.g. line-in,
- * microphone, etc.). Channels are then single streams
- * within a track. A mono stream has one channel, a stereo
- * stream has two, etc.
- *
- * Input tracks can have 'recording' enabled, which means
- * that any input will be hearable into the speakers that
- * are attached to the output. Mute is obvious. A track
- * flagged as master is the master volume track on this
- * mixer, which means that setting this track will change
- * the hearable volume on any output.
- */
-/**
- * GstMixerTrackFlags:
- * @GST_MIXER_TRACK_INPUT: mixer track is for input
- * @GST_MIXER_TRACK_OUTPUT: mixer track is for output
- * @GST_MIXER_TRACK_MUTE: input or output is muted
- * @GST_MIXER_TRACK_RECORD: input is audible in speakers attached to output
- * (for #GST_MIXER_TRACK_INPUT mixer tracks only)
- * @GST_MIXER_TRACK_MASTER: this mixer track is likely to be the master control
- * @GST_MIXER_TRACK_SOFTWARE: mixer track's' volume control is implemented
- * in software (as opposed to a hardware control)
- * @GST_MIXER_TRACK_NO_RECORD: input track lacks support for recordable.
- * Since: 0.10.23
- * @GST_MIXER_TRACK_NO_MUTE: play track doesn't support mute. Since: 0.10.23
- * @GST_MIXER_TRACK_WHITELIST: track should be displayed "by default" in apps.
- * Since: 0.10.23
- * @GST_MIXER_TRACK_READABLE: track is read-only. Since: 0.10.25
- * @GST_MIXER_TRACK_WRITABLE: track is write-only. Since: 0.10.25
- *
- * Mixer track flags.
- */
-typedef enum {
- GST_MIXER_TRACK_INPUT = (1 << 0),
- GST_MIXER_TRACK_OUTPUT = (1 << 1),
- GST_MIXER_TRACK_MUTE = (1 << 2),
- GST_MIXER_TRACK_RECORD = (1 << 3),
- GST_MIXER_TRACK_MASTER = (1 << 4),
- GST_MIXER_TRACK_SOFTWARE = (1 << 5),
- GST_MIXER_TRACK_NO_RECORD = (1 << 6),
- GST_MIXER_TRACK_NO_MUTE = (1 << 7),
- GST_MIXER_TRACK_WHITELIST = (1 << 8),
- GST_MIXER_TRACK_READABLE = (1 << 9),
- GST_MIXER_TRACK_WRITABLE = (1 << 10)
-} GstMixerTrackFlags;
-
-#define GST_MIXER_TRACK_HAS_FLAG(channel, flag) \
- ((channel)->flags & flag)
-
-typedef struct _GstMixerTrack GstMixerTrack;
-typedef struct _GstMixerTrackClass GstMixerTrackClass;
-
-struct _GstMixerTrack {
- GObject parent;
-
- gchar *label;
-
- GstMixerTrackFlags flags;
-
- gint num_channels;
- gint min_volume;
- gint max_volume;
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstMixerTrackClass {
- GObjectClass parent;
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
-GType gst_mixer_track_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GST_MIXER_TRACK_H__ */
diff --git a/gst-libs/gst/audio/mixerutils.c b/gst-libs/gst/audio/mixerutils.c
deleted file mode 100644
index ff29ea3..0000000
--- a/gst-libs/gst/audio/mixerutils.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* GStreamer
- * Copyright (C) 2003-2004 Ronald Bultje <rbultje@ronald.bitfreak.net>
- * Copyright (C) 2005-2006 Tim-Philipp Müller <tim centricular net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/**
- * SECTION:gstaudiomixerutils
- * @short_description: utility functions to find available audio mixers
- * from the plugin registry
- *
- * <refsect2>
- * <para>
- * Provides some utility functions to detect available audio mixers
- * on the system.
- * </para>
- * </refsect2>
- */
-
-/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "mixerutils.h"
-
-#include <string.h>
-
-static void
-gst_audio_mixer_filter_do_filter (GstAudioMixerFilterFunc filter_func,
- GstElementFactory * factory,
- GstElement ** p_element, GList ** p_collection, gpointer user_data)
-{
- /* so, the element is a mixer, let's see if the caller wants it */
- if (filter_func != NULL) {
- if (filter_func (GST_MIXER (*p_element), user_data) == TRUE) {
- *p_collection = g_list_prepend (*p_collection, *p_element);
- /* do not set state back to NULL here on purpose, caller
- * might want to keep the mixer open */
- *p_element = NULL;
- }
- } else {
- gst_element_set_state (*p_element, GST_STATE_NULL);
- *p_collection = g_list_prepend (*p_collection, *p_element);
- *p_element = NULL;
- }
-
- /* create new element for further probing if the old one was cleared */
- if (*p_element == NULL) {
- *p_element = gst_element_factory_create (factory, NULL);
- }
-}
-
-static gboolean
-gst_audio_mixer_filter_check_element (GstElement * element)
-{
- GstStateChangeReturn ret;
-
- /* open device (only then we can know for sure whether it is a mixer) */
- gst_element_set_state (element, GST_STATE_READY);
- ret = gst_element_get_state (element, NULL, NULL, 1 * GST_SECOND);
- if (ret != GST_STATE_CHANGE_SUCCESS) {
- GST_DEBUG ("could not open device / set element to READY");
- gst_element_set_state (element, GST_STATE_NULL);
- return FALSE;
- }
-
- /* is this device a mixer? */
- if (!GST_IS_MIXER (element)) {
- GST_DEBUG ("element is not a mixer");
- gst_element_set_state (element, GST_STATE_NULL);
- return FALSE;
- }
-
- /* any tracks? */
- if (!gst_mixer_list_tracks (GST_MIXER (element))) {
- GST_DEBUG ("element is a mixer, but has no tracks");
- gst_element_set_state (element, GST_STATE_NULL);
- return FALSE;
- }
-
- GST_DEBUG ("element is a mixer with mixer tracks");
- return TRUE;
-}
-
-static void
-gst_audio_mixer_filter_probe_feature (GstAudioMixerFilterFunc filter_func,
- GstElementFactory * factory,
- GList ** p_collection, gboolean first, gpointer user_data)
-{
- GstElement *element;
-
- GST_DEBUG ("probing %s ...", gst_element_factory_get_longname (factory));
-
- /* create element */
- element = gst_element_factory_create (factory, NULL);
-
- if (element == NULL) {
- GST_DEBUG ("could not create element from factory");
- return;
- }
-
- GST_DEBUG ("created element %s (%p)", GST_ELEMENT_NAME (element), element);
-
-#if 0
- if (GST_IS_PROPERTY_PROBE (element)) {
- GstPropertyProbe *probe;
- const GParamSpec *devspec;
-
- probe = GST_PROPERTY_PROBE (element);
-
- GST_DEBUG ("probing available devices ...");
- if ((devspec = gst_property_probe_get_property (probe, "device"))) {
- GValueArray *array;
-
- if ((array = gst_property_probe_probe_and_get_values (probe, devspec))) {
- guint n;
-
- GST_DEBUG ("there are %d available devices", array->n_values);
-
- /* set all devices and test for mixer */
- for (n = 0; n < array->n_values; n++) {
- GValue *device;
-
- /* set this device */
- device = g_value_array_get_nth (array, n);
- g_object_set_property (G_OBJECT (element), "device", device);
-
- GST_DEBUG ("trying device %s ..", g_value_get_string (device));
-
- if (gst_audio_mixer_filter_check_element (element)) {
- gst_audio_mixer_filter_do_filter (filter_func, factory, &element,
- p_collection, user_data);
-
- if (first && *p_collection != NULL) {
- GST_DEBUG ("Stopping after first found mixer, as requested");
- break;
- }
- }
- }
- g_value_array_free (array);
- }
- }
- } else
-#endif
- {
- GST_DEBUG ("element does not support the property probe interface");
-
- if (gst_audio_mixer_filter_check_element (element)) {
- gst_audio_mixer_filter_do_filter (filter_func, factory, &element,
- p_collection, user_data);
- }
- }
-
- if (element) {
- gst_element_set_state (element, GST_STATE_NULL);
- gst_object_unref (element);
- }
-}
-
-static gint
-element_factory_rank_compare_func (gconstpointer a, gconstpointer b)
-{
- gint rank_a = gst_plugin_feature_get_rank (GST_PLUGIN_FEATURE (a));
- gint rank_b = gst_plugin_feature_get_rank (GST_PLUGIN_FEATURE (b));
-
- /* make order chosen in the end more determinable */
- if (rank_a == rank_b) {
- const gchar *name_a = GST_OBJECT_NAME (GST_PLUGIN_FEATURE (a));
- const gchar *name_b = GST_OBJECT_NAME (GST_PLUGIN_FEATURE (b));
-
- return g_ascii_strcasecmp (name_a, name_b);
- }
-
- return rank_b - rank_a;
-}
-
-/**
- * gst_audio_default_registry_mixer_filter:
- * @filter_func: filter function, or #NULL
- * @first: set to #TRUE if you only want the first suitable mixer element
- * @user_data: user data to pass to the filter function
- *
- * Utility function to find audio mixer elements.
- *
- * Will traverse the default plugin registry in order of plugin rank and
- * find usable audio mixer elements. The caller may optionally fine-tune
- * the selection by specifying a filter function.
- *
- * Returns: a #GList of audio mixer #GstElement<!-- -->s. You must free each
- * element in the list by setting it to NULL state and calling
- * gst_object_unref(). After that the list itself should be freed
- * using g_list_free().
- *
- * Since: 0.10.2
- */
-GList *
-gst_audio_default_registry_mixer_filter (GstAudioMixerFilterFunc filter_func,
- gboolean first, gpointer data)
-{
- GList *mixer_list = NULL;
- GList *feature_list;
- GList *walk;
-
- /* go through all elements of a certain class and check whether
- * they implement a mixer. If so, add it to the list. */
- feature_list = gst_registry_get_feature_list (gst_registry_get (),
- GST_TYPE_ELEMENT_FACTORY);
-
- feature_list = g_list_sort (feature_list, element_factory_rank_compare_func);
-
- for (walk = feature_list; walk != NULL; walk = walk->next) {
- GstElementFactory *factory;
- const gchar *klass;
-
- factory = GST_ELEMENT_FACTORY (walk->data);
-
- /* check category */
- klass = gst_element_factory_get_klass (factory);
- if (strcmp (klass, "Generic/Audio") == 0) {
- gst_audio_mixer_filter_probe_feature (filter_func, factory,
- &mixer_list, first, data);
- }
-
- if (first && mixer_list != NULL) {
- GST_DEBUG ("Stopping after first found mixer, as requested");
- break;
- }
- }
-
- gst_plugin_feature_list_free (feature_list);
-
- return g_list_reverse (mixer_list);
-}
diff --git a/gst-libs/gst/audio/mixerutils.h b/gst-libs/gst/audio/mixerutils.h
deleted file mode 100644
index 0635dc5..0000000
--- a/gst-libs/gst/audio/mixerutils.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* GStreamer
- * Copyright (C) 2005-2006 Tim-Philipp Müller <tim centricular net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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_AUDIO_MIXERUTILS_H__
-#define __GST_AUDIO_MIXERUTILS_H__
-
-#include <gst/gst.h>
-#include <gst/audio/mixer.h>
-
-G_BEGIN_DECLS
-
-/**
- * GstAudioMixerFilterFunc:
- * @mixer: a #GstElement implementing the #GstMixer interface
- * @user_data: user data
- *
- * Function that will be called by gst_audio_default_registry_mixer_filter()
- * so the caller can decide which mixer elements should be kept and returned.
- * When the mixer element is passed to the callback function, it is opened
- * and in READY state. If you decide to keep the element, you need to set it
- * back to NULL state yourself (unless you want to keep it opened of course).
- *
- * Returns: TRUE if the element should be kept, FALSE otherwise.
- */
-typedef gboolean (*GstAudioMixerFilterFunc) (GstMixer * mixer, gpointer user_data);
-
-
-GList * gst_audio_default_registry_mixer_filter (GstAudioMixerFilterFunc filter_func,
- gboolean first,
- gpointer user_data);
-
-G_END_DECLS
-
-#endif /* __GST_AUDIO_MIXERUTILS_H__ */
diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
index 5b5ef37..e8a61cd 100644
--- a/gst-libs/gst/fft/Makefile.am
+++ b/gst-libs/gst/fft/Makefile.am
@@ -60,7 +60,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO
--warn-all \
$(gir_cincludes) \
-DGST_USE_UNSTABLE_API \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--library=libgstfft-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--libtool="$(top_builddir)/libtool" \
@@ -84,7 +84,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/fft/Makefile.in b/gst-libs/gst/fft/Makefile.in
index 37426a2..f3c0cde 100644
--- a/gst-libs/gst/fft/Makefile.in
+++ b/gst-libs/gst/fft/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -571,7 +571,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -738,7 +738,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -759,7 +759,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -780,7 +780,7 @@ install-libgstfft_@GST_API_VERSION@_includeHEADERS: $(libgstfft_@GST_API_VERSION
@list='$(libgstfft_@GST_API_VERSION@_include_HEADERS)'; test -n "$(libgstfft_@GST_API_VERSION@_includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstfft_@GST_API_VERSION@_includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstfft_@GST_API_VERSION@_includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstfft_@GST_API_VERSION@_includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -1023,7 +1023,7 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ --warn-all \
@HAVE_INTROSPECTION_TRUE@ $(gir_cincludes) \
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstfft-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --libtool="$(top_builddir)/libtool" \
@@ -1038,7 +1038,7 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am
diff --git a/gst-libs/gst/interfaces/Makefile.am b/gst-libs/gst/interfaces/Makefile.am
deleted file mode 100644
index f22103c..0000000
--- a/gst-libs/gst/interfaces/Makefile.am
+++ /dev/null
@@ -1,121 +0,0 @@
-lib_LTLIBRARIES = libgstinterfaces-@GST_API_VERSION@.la
-libgstinterfacesincludedir = \
- $(includedir)/gstreamer-@GST_API_VERSION@/gst/interfaces
-
-headers_interfaces = \
- navigation.h \
- tuner.h \
- tunernorm.h \
- tunerchannel.h
-
-# variables used for enum/marshal generation
-glib_enum_headers = $(headers_interfaces)
-glib_enum_define = GST_INTERFACES
-glib_gen_prefix = gst_interfaces
-glib_gen_basename = interfaces
-
-built_sources = \
- interfaces-marshal.c \
- interfaces-enumtypes.c
-
-built_headers = \
- interfaces-marshal.h \
- interfaces-enumtypes.h
-
-libgstinterfacesinclude_HEADERS = \
- $(headers_interfaces)
-
-nodist_libgstinterfacesinclude_HEADERS = \
- interfaces-enumtypes.h
-
-libgstinterfaces_@GST_API_VERSION@_la_SOURCES = \
- navigation.c \
- tuner.c \
- tunernorm.c \
- tunerchannel.c
-
-nodist_libgstinterfaces_@GST_API_VERSION@_la_SOURCES = \
- $(built_sources) \
- interfaces-marshal.h
-
-libgstinterfaces_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstinterfaces_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
-libgstinterfaces_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-
-BUILT_SOURCES = \
- $(built_sources) \
- $(built_headers)
-
-EXTRA_DIST = interfaces-marshal.list
-
-CLEANFILES = $(BUILT_SOURCES)
-
-include $(top_srcdir)/common/gst-glib-gen.mak
-
-if HAVE_INTROSPECTION
-BUILT_GIRSOURCES = GstInterfaces-@GST_API_VERSION@.gir
-
-gir_headers=$(patsubst %,$(srcdir)/%, $(libgstinterfacesinclude_HEADERS))
-gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstinterfacesinclude_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstinterfaces_@GST_API_VERSION@_la_SOURCES))
-gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstinterfaces_@GST_API_VERSION@_la_SOURCES))
-gir_cincludes=$(patsubst %,--c-include='gst/interfaces/%',$(libgstinterfacesinclude_HEADERS))
-gir_cincludes+=$(patsubst %,--c-include='gst/interfaces/%',$(nodist_libgstinterfacesinclude_HEADERS))
-
-GstInterfaces-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinterfaces-@GST_API_VERSION@.la
- $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
- GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
- $(INTROSPECTION_SCANNER) -v --namespace GstInterfaces \
- --nsversion=@GST_API_VERSION@ \
- --strip-prefix=Gst \
- --warn-all \
- $(gir_cincludes) \
- -DGST_USE_UNSTABLE_API \
- -I$(top_srcdir)/gst-libs \
- -I$(top_builddir)/gst-libs \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --library=libgstinterfaces-@GST_API_VERSION@.la \
- --include=Gst-@GST_API_VERSION@ \
- --libtool="$(top_builddir)/libtool" \
- --pkg gstreamer-@GST_API_VERSION@ \
- --pkg-export gstreamer-interfaces-@GST_API_VERSION@ \
- --add-init-section="gst_init(NULL,NULL);" \
- --output $@ \
- $(gir_headers) \
- $(gir_sources)
-
-# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
-# install anything - we need to install inside our prefix.
-girdir = $(datadir)/gir-1.0
-gir_DATA = $(BUILT_GIRSOURCES)
-
-typelibsdir = $(libdir)/girepository-1.0/
-
-typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
-
-%.typelib: %.gir $(INTROSPECTION_COMPILER)
- $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
- $(INTROSPECTION_COMPILER) \
- --includedir=$(srcdir) \
- --includedir=$(builddir) \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
-CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
-endif
-
-Android.mk: Makefile.am $(BUILT_SOURCES)
- androgenizer -:PROJECT libgstinterfaces -:SHARED libgstinterfaces-@GST_API_VERSION@ \
- -:TAGS eng debug \
- -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
- -:SOURCES $(libgstinterfaces_@GST_API_VERSION@_la_SOURCES) \
- $(nodist_libgstinterfaces_@GST_API_VERSION@_la_SOURCES) \
- -:CFLAGS $(DEFS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) \
- -:LDFLAGS $(libgstinterfaces_@GST_API_VERSION@_la_LDFLAGS) \
- $(libgstinterfaces_@GST_API_VERSION@_la_LIBADD) \
- -ldl \
- -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/interfaces \
- -:HEADERS $(libgstinterfacesinclude_HEADERS) \
- $(nodist_libgstinterfacesinclude_HEADERS) \
- -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
- > $@
diff --git a/gst-libs/gst/interfaces/Makefile.in b/gst-libs/gst/interfaces/Makefile.in
deleted file mode 100644
index 5feda23..0000000
--- a/gst-libs/gst/interfaces/Makefile.in
+++ /dev/null
@@ -1,1099 +0,0 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# these are the variables your Makefile.am should set
-# the example is based on the colorbalance interface
-
-#glib_enum_headers=$(colorbalance_headers)
-#glib_enum_define=GST_COLOR_BALANCE
-#glib_gen_prefix=gst_color_balance
-#glib_gen_basename=colorbalance
-
-
-
-VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
- esac; \
- test $$am__dry = yes; \
- }
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-DIST_COMMON = $(libgstinterfacesinclude_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/common/gst-glib-gen.mak
-@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
-subdir = gst-libs/gst/interfaces
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
- $(top_srcdir)/common/m4/as-auto-alt.m4 \
- $(top_srcdir)/common/m4/as-compiler-flag.m4 \
- $(top_srcdir)/common/m4/as-libtool.m4 \
- $(top_srcdir)/common/m4/as-python.m4 \
- $(top_srcdir)/common/m4/as-scrub-include.m4 \
- $(top_srcdir)/common/m4/as-version.m4 \
- $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
- $(top_srcdir)/common/m4/gst-arch.m4 \
- $(top_srcdir)/common/m4/gst-args.m4 \
- $(top_srcdir)/common/m4/gst-check.m4 \
- $(top_srcdir)/common/m4/gst-default.m4 \
- $(top_srcdir)/common/m4/gst-error.m4 \
- $(top_srcdir)/common/m4/gst-feature.m4 \
- $(top_srcdir)/common/m4/gst-function.m4 \
- $(top_srcdir)/common/m4/gst-gettext.m4 \
- $(top_srcdir)/common/m4/gst-glib2.m4 \
- $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
- $(top_srcdir)/common/m4/gst-platform.m4 \
- $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
- $(top_srcdir)/common/m4/gst-plugindir.m4 \
- $(top_srcdir)/common/m4/gst-x11.m4 \
- $(top_srcdir)/common/m4/gst.m4 \
- $(top_srcdir)/common/m4/gtk-doc.m4 \
- $(top_srcdir)/common/m4/introspection.m4 \
- $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
- $(top_srcdir)/m4/freetype2.m4 $(top_srcdir)/m4/gettext.m4 \
- $(top_srcdir)/m4/gst-alsa.m4 $(top_srcdir)/m4/iconv.m4 \
- $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lrint.m4 \
- $(top_srcdir)/m4/lrintf.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
- $(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/po.m4 \
- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/vorbis.m4 \
- $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
- "$(DESTDIR)$(typelibsdir)" \
- "$(DESTDIR)$(libgstinterfacesincludedir)" \
- "$(DESTDIR)$(libgstinterfacesincludedir)"
-LTLIBRARIES = $(lib_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libgstinterfaces_@GST_API_VERSION@_la_DEPENDENCIES = \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_libgstinterfaces_@GST_API_VERSION@_la_OBJECTS = \
- libgstinterfaces_@GST_API_VERSION@_la-navigation.lo \
- libgstinterfaces_@GST_API_VERSION@_la-tuner.lo \
- libgstinterfaces_@GST_API_VERSION@_la-tunernorm.lo \
- libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.lo
-am__objects_1 = \
- libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.lo \
- libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.lo
-nodist_libgstinterfaces_@GST_API_VERSION@_la_OBJECTS = \
- $(am__objects_1)
-libgstinterfaces_@GST_API_VERSION@_la_OBJECTS = \
- $(am_libgstinterfaces_@GST_API_VERSION@_la_OBJECTS) \
- $(nodist_libgstinterfaces_@GST_API_VERSION@_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-libgstinterfaces_@GST_API_VERSION@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
- --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
- $(CCLD) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) \
- $(CFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_LDFLAGS) \
- $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = $(libgstinterfaces_@GST_API_VERSION@_la_SOURCES) \
- $(nodist_libgstinterfaces_@GST_API_VERSION@_la_SOURCES)
-DIST_SOURCES = $(libgstinterfaces_@GST_API_VERSION@_la_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-DATA = $(gir_DATA) $(typelibs_DATA)
-HEADERS = $(libgstinterfacesinclude_HEADERS) \
- $(nodist_libgstinterfacesinclude_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-ALSA_CFLAGS = @ALSA_CFLAGS@
-ALSA_LIBS = @ALSA_LIBS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUDIORESAMPLE_FORMAT_AUTO = @AUDIORESAMPLE_FORMAT_AUTO@
-AUDIORESAMPLE_FORMAT_FLOAT = @AUDIORESAMPLE_FORMAT_FLOAT@
-AUDIORESAMPLE_FORMAT_INT = @AUDIORESAMPLE_FORMAT_INT@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CDPARANOIA_CFLAGS = @CDPARANOIA_CFLAGS@
-CDPARANOIA_LIBS = @CDPARANOIA_LIBS@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@
-DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@
-DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@
-DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@
-DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-FT2_CFLAGS = @FT2_CFLAGS@
-FT2_CONFIG = @FT2_CONFIG@
-FT2_LIBS = @FT2_LIBS@
-GCOV = @GCOV@
-GCOV_CFLAGS = @GCOV_CFLAGS@
-GCOV_LIBS = @GCOV_LIBS@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LDFLAGS = @GIO_LDFLAGS@
-GIO_LIBS = @GIO_LIBS@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_PREFIX = @GLIB_PREFIX@
-GLIB_REQ = @GLIB_REQ@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GST_AGE = @GST_AGE@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_API_VERSION = @GST_API_VERSION@
-GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
-GST_BASE_LIBS = @GST_BASE_LIBS@
-GST_CFLAGS = @GST_CFLAGS@
-GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@
-GST_CHECK_LIBS = @GST_CHECK_LIBS@
-GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
-GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
-GST_CURRENT = @GST_CURRENT@
-GST_CXXFLAGS = @GST_CXXFLAGS@
-GST_INSTALL_PLUGINS_HELPER = @GST_INSTALL_PLUGINS_HELPER@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBS = @GST_LIBS@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
-GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
-GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
-GST_PLUGINS_DIR = @GST_PLUGINS_DIR@
-GST_PLUGINS_NONPORTED = @GST_PLUGINS_NONPORTED@
-GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PREFIX = @GST_PREFIX@
-GST_REVISION = @GST_REVISION@
-GST_TOOLS_DIR = @GST_TOOLS_DIR@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_LIBS = @GTK_LIBS@
-GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
-GTK_X11_LIBS = @GTK_X11_LIBS@
-HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
-HAVE_X = @HAVE_X@
-HAVE_XSHM = @HAVE_XSHM@
-HAVE_ZLIB = @HAVE_ZLIB@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
-IVORBIS_LIBS = @IVORBIS_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBM = @LIBM@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBVISUAL_CFLAGS = @LIBVISUAL_CFLAGS@
-LIBVISUAL_LIBS = @LIBVISUAL_LIBS@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OGG_CFLAGS = @OGG_CFLAGS@
-OGG_LIBS = @OGG_LIBS@
-ORCC = @ORCC@
-ORCC_FLAGS = @ORCC_FLAGS@
-ORC_CFLAGS = @ORC_CFLAGS@
-ORC_LIBS = @ORC_LIBS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
-PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
-PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
-PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
-PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
-PANGO_CFLAGS = @PANGO_CFLAGS@
-PANGO_LIBS = @PANGO_LIBS@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-QT4_MOC = @QT4_MOC@
-QT_CFLAGS = @QT_CFLAGS@
-QT_LIBS = @QT_LIBS@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-THEORA_CFLAGS = @THEORA_CFLAGS@
-THEORA_LIBS = @THEORA_LIBS@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-VORBISENC_LIBS = @VORBISENC_LIBS@
-VORBISFILE_LIBS = @VORBISFILE_LIBS@
-VORBIS_CFLAGS = @VORBIS_CFLAGS@
-VORBIS_LIBS = @VORBIS_LIBS@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-XGETTEXT = @XGETTEXT@
-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@
-X_PRE_LIBS = @X_PRE_LIBS@
-ZLIB_CFLAGS = @ZLIB_CFLAGS@
-ZLIB_LIBS = @ZLIB_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lib_LTLIBRARIES = libgstinterfaces-@GST_API_VERSION@.la
-libgstinterfacesincludedir = \
- $(includedir)/gstreamer-@GST_API_VERSION@/gst/interfaces
-
-headers_interfaces = \
- navigation.h \
- tuner.h \
- tunernorm.h \
- tunerchannel.h
-
-
-# variables used for enum/marshal generation
-glib_enum_headers = $(headers_interfaces)
-glib_enum_define = GST_INTERFACES
-glib_gen_prefix = gst_interfaces
-glib_gen_basename = interfaces
-built_sources = \
- interfaces-marshal.c \
- interfaces-enumtypes.c
-
-built_headers = \
- interfaces-marshal.h \
- interfaces-enumtypes.h
-
-libgstinterfacesinclude_HEADERS = \
- $(headers_interfaces)
-
-nodist_libgstinterfacesinclude_HEADERS = \
- interfaces-enumtypes.h
-
-libgstinterfaces_@GST_API_VERSION@_la_SOURCES = \
- navigation.c \
- tuner.c \
- tunernorm.c \
- tunerchannel.c
-
-nodist_libgstinterfaces_@GST_API_VERSION@_la_SOURCES = \
- $(built_sources) \
- interfaces-marshal.h
-
-libgstinterfaces_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstinterfaces_@GST_API_VERSION@_la_LIBADD = $(GST_LIBS) $(LIBM)
-libgstinterfaces_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-BUILT_SOURCES = \
- $(built_sources) \
- $(built_headers)
-
-EXTRA_DIST = interfaces-marshal.list
-CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
-enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
-@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstInterfaces-@GST_API_VERSION@.gir
-@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, \
-@HAVE_INTROSPECTION_TRUE@ $(libgstinterfacesinclude_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@ $(patsubst %,$(builddir)/%, \
-@HAVE_INTROSPECTION_TRUE@ $(nodist_libgstinterfacesinclude_HEADERS))
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, \
-@HAVE_INTROSPECTION_TRUE@ $(libgstinterfaces_@GST_API_VERSION@_la_SOURCES)) \
-@HAVE_INTROSPECTION_TRUE@ $(patsubst %,$(builddir)/%, \
-@HAVE_INTROSPECTION_TRUE@ $(nodist_libgstinterfaces_@GST_API_VERSION@_la_SOURCES))
-@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst \
-@HAVE_INTROSPECTION_TRUE@ %,--c-include='gst/interfaces/%',$(libgstinterfacesinclude_HEADERS)) \
-@HAVE_INTROSPECTION_TRUE@ $(patsubst \
-@HAVE_INTROSPECTION_TRUE@ %,--c-include='gst/interfaces/%',$(nodist_libgstinterfacesinclude_HEADERS))
-
-# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
-# install anything - we need to install inside our prefix.
-@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
-@HAVE_INTROSPECTION_TRUE@gir_DATA = $(BUILT_GIRSOURCES)
-@HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0/
-@HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
-all: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/gst-glib-gen.mak $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-libs/gst/interfaces/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu gst-libs/gst/interfaces/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-$(top_srcdir)/common/gst-glib-gen.mak:
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
- }
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
- done
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libgstinterfaces-@GST_API_VERSION@.la: $(libgstinterfaces_@GST_API_VERSION@_la_OBJECTS) $(libgstinterfaces_@GST_API_VERSION@_la_DEPENDENCIES) $(EXTRA_libgstinterfaces_@GST_API_VERSION@_la_DEPENDENCIES)
- $(AM_V_CCLD)$(libgstinterfaces_@GST_API_VERSION@_la_LINK) -rpath $(libdir) $(libgstinterfaces_@GST_API_VERSION@_la_OBJECTS) $(libgstinterfaces_@GST_API_VERSION@_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-navigation.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tuner.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunernorm.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-libgstinterfaces_@GST_API_VERSION@_la-navigation.lo: navigation.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_API_VERSION@_la-navigation.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-navigation.Tpo -c -o libgstinterfaces_@GST_API_VERSION@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-navigation.Tpo $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-navigation.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='navigation.c' object='libgstinterfaces_@GST_API_VERSION@_la-navigation.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_API_VERSION@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
-
-libgstinterfaces_@GST_API_VERSION@_la-tuner.lo: tuner.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_API_VERSION@_la-tuner.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tuner.Tpo -c -o libgstinterfaces_@GST_API_VERSION@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tuner.Tpo $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tuner.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tuner.c' object='libgstinterfaces_@GST_API_VERSION@_la-tuner.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_API_VERSION@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
-
-libgstinterfaces_@GST_API_VERSION@_la-tunernorm.lo: tunernorm.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_API_VERSION@_la-tunernorm.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunernorm.Tpo -c -o libgstinterfaces_@GST_API_VERSION@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunernorm.Tpo $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunernorm.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tunernorm.c' object='libgstinterfaces_@GST_API_VERSION@_la-tunernorm.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_API_VERSION@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
-
-libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.lo: tunerchannel.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.Tpo -c -o libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.Tpo $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tunerchannel.c' object='libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_API_VERSION@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
-
-libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.lo: interfaces-marshal.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.Tpo -c -o libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.Tpo $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interfaces-marshal.c' object='libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_API_VERSION@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.c
-
-libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.lo: interfaces-enumtypes.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.Tpo -c -o libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.Tpo $(DEPDIR)/libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interfaces-enumtypes.c' object='libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_API_VERSION@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.c
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-girDATA: $(gir_DATA)
- @$(NORMAL_INSTALL)
- @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
- done
-
-uninstall-girDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
-install-typelibsDATA: $(typelibs_DATA)
- @$(NORMAL_INSTALL)
- @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibsdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibsdir)" || exit $$?; \
- done
-
-uninstall-typelibsDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
-install-libgstinterfacesincludeHEADERS: $(libgstinterfacesinclude_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(libgstinterfacesincludedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstinterfacesincludedir)' || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstinterfacesincludedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstinterfacesincludedir)" || exit $$?; \
- done
-
-uninstall-libgstinterfacesincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(libgstinterfacesincludedir)'; $(am__uninstall_files_from_dir)
-install-nodist_libgstinterfacesincludeHEADERS: $(nodist_libgstinterfacesinclude_HEADERS)
- @$(NORMAL_INSTALL)
- @list='$(nodist_libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(libgstinterfacesincludedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstinterfacesincludedir)' || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstinterfacesincludedir)'"; \
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstinterfacesincludedir)" || exit $$?; \
- done
-
-uninstall-nodist_libgstinterfacesincludeHEADERS:
- @$(NORMAL_UNINSTALL)
- @list='$(nodist_libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(libgstinterfacesincludedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstinterfacesincludedir)" "$(DESTDIR)$(libgstinterfacesincludedir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-clean: clean-am
-
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-girDATA \
- install-libgstinterfacesincludeHEADERS \
- install-nodist_libgstinterfacesincludeHEADERS \
- install-typelibsDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
- uninstall-libgstinterfacesincludeHEADERS \
- uninstall-nodist_libgstinterfacesincludeHEADERS \
- uninstall-typelibsDATA
-
-.MAKE: all check install install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-girDATA \
- install-html install-html-am install-info install-info-am \
- install-libLTLIBRARIES install-libgstinterfacesincludeHEADERS \
- install-man install-nodist_libgstinterfacesincludeHEADERS \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip install-typelibsDATA installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-girDATA \
- uninstall-libLTLIBRARIES \
- uninstall-libgstinterfacesincludeHEADERS \
- uninstall-nodist_libgstinterfacesincludeHEADERS \
- uninstall-typelibsDATA
-
-
-# these are all the rules generating the relevant files
-$(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
- $(AM_V_GEN)glib-genmarshal --header --prefix=$(glib_gen_prefix)_marshal $^ > $(glib_gen_basename)-marshal.h.tmp && \
- mv $(glib_gen_basename)-marshal.h.tmp $(glib_gen_basename)-marshal.h
-
-$(glib_gen_basename)-marshal.c: $(glib_gen_basename)-marshal.list
- $(AM_V_GEN)echo "#include \"$(glib_gen_basename)-marshal.h\"" >> $(glib_gen_basename)-marshal.c.tmp && \
- glib-genmarshal --body --prefix=$(glib_gen_prefix)_marshal $^ >> $(glib_gen_basename)-marshal.c.tmp && \
- mv $(glib_gen_basename)-marshal.c.tmp $(glib_gen_basename)-marshal.c
-
-$(glib_gen_basename)-enumtypes.h: $(glib_enum_headers)
- $(AM_V_GEN)glib-mkenums \
- --fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
- --fprod "\n/* enumerations from \"@filename@\" */\n" \
- --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
- --ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \
- $^ > $@
-
-$(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
- @if test "x$(glib_enum_headers)" = "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi
- $(AM_V_GEN)glib-mkenums \
- --fhead "#include \"$(glib_gen_basename)-enumtypes.h\"\n$(enum_headers)" \
- --fprod "\n/* enumerations from \"@filename@\" */" \
- --vhead "GType\n@enum_name@_get_type (void)\n{\n static volatile gsize g_define_type_id__volatile = 0;\n if (g_once_init_enter (&g_define_type_id__volatile)) {\n static const G@Type@Value values[] = {" \
- --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
- --vtail " { 0, NULL, NULL }\n };\n GType g_define_type_id = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n }\n return g_define_type_id__volatile;\n}\n" \
- $^ > $@
-
-# a hack rule to make sure .Plo files exist because they get include'd
-# from Makefile's
-.deps/%-marshal.Plo:
- @touch $@
-
-.deps/%-enumtypes.Plo:
- @touch $@
-
-@HAVE_INTROSPECTION_TRUE@GstInterfaces-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinterfaces-@GST_API_VERSION@.la
-@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@ GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
-@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_SCANNER) -v --namespace GstInterfaces \
-@HAVE_INTROSPECTION_TRUE@ --nsversion=@GST_API_VERSION@ \
-@HAVE_INTROSPECTION_TRUE@ --strip-prefix=Gst \
-@HAVE_INTROSPECTION_TRUE@ --warn-all \
-@HAVE_INTROSPECTION_TRUE@ $(gir_cincludes) \
-@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
-@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ -I$(top_builddir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --library=libgstinterfaces-@GST_API_VERSION@.la \
-@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
-@HAVE_INTROSPECTION_TRUE@ --libtool="$(top_builddir)/libtool" \
-@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-@GST_API_VERSION@ \
-@HAVE_INTROSPECTION_TRUE@ --pkg-export gstreamer-interfaces-@GST_API_VERSION@ \
-@HAVE_INTROSPECTION_TRUE@ --add-init-section="gst_init(NULL,NULL);" \
-@HAVE_INTROSPECTION_TRUE@ --output $@ \
-@HAVE_INTROSPECTION_TRUE@ $(gir_headers) \
-@HAVE_INTROSPECTION_TRUE@ $(gir_sources)
-
-@HAVE_INTROSPECTION_TRUE@%.typelib: %.gir $(INTROSPECTION_COMPILER)
-@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
-@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-
-Android.mk: Makefile.am $(BUILT_SOURCES)
- androgenizer -:PROJECT libgstinterfaces -:SHARED libgstinterfaces-@GST_API_VERSION@ \
- -:TAGS eng debug \
- -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
- -:SOURCES $(libgstinterfaces_@GST_API_VERSION@_la_SOURCES) \
- $(nodist_libgstinterfaces_@GST_API_VERSION@_la_SOURCES) \
- -:CFLAGS $(DEFS) $(libgstinterfaces_@GST_API_VERSION@_la_CFLAGS) \
- -:LDFLAGS $(libgstinterfaces_@GST_API_VERSION@_la_LDFLAGS) \
- $(libgstinterfaces_@GST_API_VERSION@_la_LIBADD) \
- -ldl \
- -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/interfaces \
- -:HEADERS $(libgstinterfacesinclude_HEADERS) \
- $(nodist_libgstinterfacesinclude_HEADERS) \
- -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
- > $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/gst-libs/gst/interfaces/interfaces-marshal.list b/gst-libs/gst/interfaces/interfaces-marshal.list
deleted file mode 100644
index c99ddc7..0000000
--- a/gst-libs/gst/interfaces/interfaces-marshal.list
+++ /dev/null
@@ -1,2 +0,0 @@
-VOID:OBJECT,ULONG
-VOID:OBJECT,INT
diff --git a/gst-libs/gst/interfaces/tuner.c b/gst-libs/gst/interfaces/tuner.c
deleted file mode 100644
index cbec72b..0000000
--- a/gst-libs/gst/interfaces/tuner.c
+++ /dev/null
@@ -1,577 +0,0 @@
-/* GStreamer Tuner
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * tuner.c: tuner design virtual class function wrappers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 "tuner.h"
-#include "interfaces-marshal.h"
-
-#include <string.h>
-
-/**
- * SECTION:gsttuner
- * @short_description: Interface for elements providing tuner operations
- *
- * <refsect2>
- * <para>
- * The GstTuner interface is provided by elements that have the ability to
- * tune into multiple input signals, for example TV or radio capture cards.
- * </para><para>
- * The interpretation of 'tuning into' an input stream depends on the element
- * implementing the interface. For v4lsrc, it might imply selection of an
- * input source and/or frequency to be configured on a TV card. Another
- * GstTuner implementation might be to allow selection of an active input pad
- * from multiple input pads.
- * </para><para>
- * That said, the GstTuner interface functions are biased toward the
- * TV capture scenario.
- * </para><para>
- * The general parameters provided are for configuration are:
- * <itemizedlist>
- * <listitem>Selection of a current #GstTunerChannel. The current channel
- * represents the input source (e.g. Composite, S-Video etc for TV capture).
- * </listitem>
- * <listitem>The #GstTunerNorm for the channel. The norm chooses the
- * interpretation of the incoming signal for the current channel. For example,
- * PAL or NTSC, or more specific variants there-of.
- * </listitem>
- * <listitem>Channel frequency. If the current channel has the ability to tune
- * between multiple frequencies (if it has the GST_TUNER_CHANNEL_FREQUENCY flag)
- * then the frequency can be changed/retrieved via the
- * gst_tuner_set_frequency() and gst_tuner_get_frequency() methods.
- * </listitem>
- * </itemizedlist>
- * </para>
- * <para>
- * Where applicable, the signal strength can be retrieved and/or monitored
- * via a signal.
- * </para>
- * </refsect2>
- */
-
-/* FIXME 0.11: check if we need to add API for sometimes-supportedness
- * (aka making up for GstImplementsInterface removal) */
-
-/* FIXME 0.11: replace signals with messages (+ make API thread-safe) */
-
-enum
-{
- NORM_CHANGED,
- CHANNEL_CHANGED,
- FREQUENCY_CHANGED,
- SIGNAL_CHANGED,
- LAST_SIGNAL
-};
-
-static void gst_tuner_class_init (GstTunerInterface * iface);
-
-static guint gst_tuner_signals[LAST_SIGNAL] = { 0 };
-
-GType
-gst_tuner_get_type (void)
-{
- static GType gst_tuner_type = 0;
-
- if (!gst_tuner_type) {
- static const GTypeInfo gst_tuner_info = {
- sizeof (GstTunerInterface),
- (GBaseInitFunc) gst_tuner_class_init,
- NULL,
- NULL,
- NULL,
- NULL,
- 0,
- 0,
- NULL,
- };
-
- gst_tuner_type = g_type_register_static (G_TYPE_INTERFACE,
- "GstTuner", &gst_tuner_info, 0);
- }
-
- return gst_tuner_type;
-}
-
-static void
-gst_tuner_class_init (GstTunerInterface * iface)
-{
- static gboolean initialized = FALSE;
-
- if (!initialized) {
- /**
- * GstTuner::norm-changed:
- * @tuner: The element providing the GstTuner interface
- * @norm: The new configured norm.
- *
- * Reports that the current #GstTunerNorm has changed.
- */
- gst_tuner_signals[NORM_CHANGED] =
- g_signal_new ("norm-changed",
- GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstTunerInterface, norm_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_TUNER_NORM);
- /**
- * GstTuner::channel-changed:
- * @tuner: The element providing the GstTuner interface
- * @channel: The new configured channel.
- *
- * Reports that the current #GstTunerChannel has changed.
- */
- gst_tuner_signals[CHANNEL_CHANGED] =
- g_signal_new ("channel-changed",
- GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstTunerInterface, channel_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
- GST_TYPE_TUNER_CHANNEL);
- /**
- * GstTuner::frequency-changed:
- * @tuner: The element providing the GstTuner interface
- * @frequency: The new frequency (an unsigned long)
- *
- * Reports that the current frequency has changed.
- */
- gst_tuner_signals[FREQUENCY_CHANGED] =
- g_signal_new ("frequency-changed",
- GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstTunerInterface, frequency_changed),
- NULL, NULL,
- gst_interfaces_marshal_VOID__OBJECT_ULONG, G_TYPE_NONE, 2,
- GST_TYPE_TUNER_CHANNEL, G_TYPE_ULONG);
- /**
- * GstTuner::signal-changed:
- * @tuner: The element providing the GstTuner interface
- * @channel: The current #GstTunerChannel
- * @signal: The new signal strength (an integer)
- *
- * Reports that the signal strength has changed.
- *
- * See Also: gst_tuner_signal_strength()
- */
- gst_tuner_signals[SIGNAL_CHANGED] =
- g_signal_new ("signal-changed",
- GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstTunerInterface, signal_changed),
- NULL, NULL,
- gst_interfaces_marshal_VOID__OBJECT_INT, G_TYPE_NONE, 2,
- GST_TYPE_TUNER_CHANNEL, G_TYPE_INT);
-
- initialized = TRUE;
- }
-
- /* default virtual functions */
- iface->list_channels = NULL;
- iface->set_channel = NULL;
- iface->get_channel = NULL;
-
- iface->list_norms = NULL;
- iface->set_norm = NULL;
- iface->get_norm = NULL;
-
- iface->set_frequency = NULL;
- iface->get_frequency = NULL;
- iface->signal_strength = NULL;
-}
-
-/**
- * gst_tuner_list_channels:
- * @tuner: the #GstTuner (a #GstElement) to get the channels from.
- *
- * Retrieve a #GList of #GstTunerChannels available
- * (e.g. 'composite', 's-video', ...) from the given tuner object.
- *
- * Returns: A list of channels available on this tuner. The list is
- * owned by the GstTuner and must not be freed.
- */
-const GList *
-gst_tuner_list_channels (GstTuner * tuner)
-{
- GstTunerInterface *iface;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), NULL);
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->list_channels) {
- return iface->list_channels (tuner);
- }
-
- return NULL;
-}
-
-/**
- * gst_tuner_set_channel:
- * @tuner: the #GstTuner (a #GstElement) that owns the channel.
- * @channel: the channel to tune to.
- *
- * Tunes the object to the given channel, which should be one of the
- * channels returned by gst_tuner_list_channels().
- */
-
-void
-gst_tuner_set_channel (GstTuner * tuner, GstTunerChannel * channel)
-{
- GstTunerInterface *iface;
-
- g_return_if_fail (GST_IS_TUNER (tuner));
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->set_channel) {
- iface->set_channel (tuner, channel);
- }
-}
-
-/**
- * gst_tuner_get_channel:
- * @tuner: the #GstTuner (a #GstElement) to get the current channel from.
- *
- * Retrieve the current channel from the tuner.
- *
- * Returns: the current channel of the tuner object.
- */
-
-GstTunerChannel *
-gst_tuner_get_channel (GstTuner * tuner)
-{
- GstTunerInterface *iface;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), NULL);
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->get_channel) {
- return iface->get_channel (tuner);
- }
-
- return NULL;
-}
-
-/**
- * gst_tuner_list_norms:
- * @tuner: the #GstTuner (*a #GstElement) to get the list of norms from.
- *
- * Retrieve a GList of available #GstTunerNorm settings for the currently
- * tuned channel on the given tuner object.
- *
- * Returns: A list of norms available on the current channel for this
- * tuner object. The list is owned by the GstTuner and must not
- * be freed.
- */
-
-const GList *
-gst_tuner_list_norms (GstTuner * tuner)
-{
- GstTunerInterface *iface;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), NULL);
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->list_norms) {
- return iface->list_norms (tuner);
- }
-
- return NULL;
-}
-
-/**
- * gst_tuner_set_norm:
- * @tuner: the #GstTuner (a #GstElement) to set the norm on.
- * @norm: the norm to use for the current channel.
- *
- * Changes the video norm on this tuner to the given norm, which should be
- * one of the norms returned by gst_tuner_list_norms().
- */
-
-void
-gst_tuner_set_norm (GstTuner * tuner, GstTunerNorm * norm)
-{
- GstTunerInterface *iface;
-
- g_return_if_fail (GST_IS_TUNER (tuner));
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->set_norm) {
- iface->set_norm (tuner, norm);
- }
-}
-
-/**
- * gst_tuner_get_norm:
- * @tuner: the #GstTuner (a #GstElement) to get the current norm from.
- *
- * Get the current video norm from the given tuner object for the
- * currently selected channel.
- *
- * Returns: the current norm.
- */
-
-GstTunerNorm *
-gst_tuner_get_norm (GstTuner * tuner)
-{
- GstTunerInterface *iface;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), NULL);
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->get_norm) {
- return iface->get_norm (tuner);
- }
-
- return NULL;
-}
-
-/**
- * gst_tuner_set_frequency:
- * @tuner: The #GstTuner (a #GstElement) that owns the given channel.
- * @channel: The #GstTunerChannel to set the frequency on.
- * @frequency: The frequency to tune in to.
- *
- * Sets a tuning frequency on the given tuner/channel. Note that this
- * requires the given channel to be a "tuning" channel, which can be
- * checked using GST_TUNER_CHANNEL_HAS_FLAG (), with the proper flag
- * being GST_TUNER_CHANNEL_FREQUENCY.
- *
- * The frequency is in Hz, with minimum steps indicated by the
- * frequency_multiplicator provided in the #GstTunerChannel. The
- * valid range is provided in the min_frequency and max_frequency properties
- * of the #GstTunerChannel.
- */
-
-void
-gst_tuner_set_frequency (GstTuner * tuner,
- GstTunerChannel * channel, gulong frequency)
-{
- GstTunerInterface *iface;
-
- g_return_if_fail (GST_IS_TUNER (tuner));
- g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
- g_return_if_fail (GST_TUNER_CHANNEL_HAS_FLAG (channel,
- GST_TUNER_CHANNEL_FREQUENCY));
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->set_frequency) {
- iface->set_frequency (tuner, channel, frequency);
- }
-}
-
-/**
- * gst_tuner_get_frequency:
- * @tuner: The #GstTuner (a #GstElement) that owns the given channel.
- * @channel: The #GstTunerChannel to retrieve the frequency from.
- *
- * Retrieve the current frequency from the given channel. As for
- * gst_tuner_set_frequency(), the #GstTunerChannel must support frequency
- * operations, as indicated by the GST_TUNER_CHANNEL_FREQUENCY flag.
- *
- * Returns: The current frequency, or 0 on error.
- */
-
-gulong
-gst_tuner_get_frequency (GstTuner * tuner, GstTunerChannel * channel)
-{
- GstTunerInterface *iface;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), 0);
- g_return_val_if_fail (GST_IS_TUNER_CHANNEL (channel), 0);
- g_return_val_if_fail (GST_TUNER_CHANNEL_HAS_FLAG (channel,
- GST_TUNER_CHANNEL_FREQUENCY), 0);
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
-
- if (iface->get_frequency) {
- return iface->get_frequency (tuner, channel);
- }
-
- return 0;
-}
-
-/**
- * gst_tuner_signal_strength:
- * @tuner: the #GstTuner (a #GstElement) that owns the given channel.
- * @channel: the #GstTunerChannel to get the signal strength from.
- *
- * Get the strength of the signal on this channel. Note that this
- * requires the current channel to be a "tuning" channel, i.e. a
- * channel on which frequency can be set. This can be checked using
- * GST_TUNER_CHANNEL_HAS_FLAG (), and the appropriate flag to check
- * for is GST_TUNER_CHANNEL_FREQUENCY.
- *
- * The valid range of the signal strength is indicated in the
- * min_signal and max_signal properties of the #GstTunerChannel.
- *
- * Returns: Signal strength, or 0 on error.
- */
-gint
-gst_tuner_signal_strength (GstTuner * tuner, GstTunerChannel * channel)
-{
- GstTunerInterface *iface;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), 0);
- g_return_val_if_fail (GST_IS_TUNER_CHANNEL (channel), 0);
- g_return_val_if_fail (GST_TUNER_CHANNEL_HAS_FLAG (channel,
- GST_TUNER_CHANNEL_FREQUENCY), 0);
-
- iface = GST_TUNER_GET_INTERFACE (tuner);
- if (iface->signal_strength) {
- return iface->signal_strength (tuner, channel);
- }
-
- return 0;
-}
-
-/**
- * gst_tuner_find_norm_by_name:
- * @tuner: A #GstTuner instance
- * @norm: A string containing the name of a #GstTunerNorm
- *
- * Look up a #GstTunerNorm by name.
- *
- * Returns: A #GstTunerNorm, or NULL if no norm with the provided name
- * is available.
- */
-GstTunerNorm *
-gst_tuner_find_norm_by_name (GstTuner * tuner, gchar * norm)
-{
- GList *walk;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), NULL);
- g_return_val_if_fail (norm != NULL, NULL);
-
- walk = (GList *) gst_tuner_list_norms (tuner);
- while (walk) {
- if (strcmp (GST_TUNER_NORM (walk->data)->label, norm) == 0)
- return GST_TUNER_NORM (walk->data);
- walk = g_list_next (walk);
- }
- return NULL;
-}
-
-/**
- * gst_tuner_find_channel_by_name:
- * @tuner: A #GstTuner instance
- * @channel: A string containing the name of a #GstTunerChannel
- *
- * Look up a #GstTunerChannel by name.
- *
- * Returns: A #GstTunerChannel, or NULL if no channel with the provided name
- * is available.
- */
-GstTunerChannel *
-gst_tuner_find_channel_by_name (GstTuner * tuner, gchar * channel)
-{
- GList *walk;
-
- g_return_val_if_fail (GST_IS_TUNER (tuner), NULL);
- g_return_val_if_fail (channel != NULL, NULL);
-
- walk = (GList *) gst_tuner_list_channels (tuner);
- while (walk) {
- if (strcmp (GST_TUNER_CHANNEL (walk->data)->label, channel) == 0)
- return GST_TUNER_CHANNEL (walk->data);
- walk = g_list_next (walk);
- }
- return NULL;
-}
-
-/**
- * gst_tuner_channel_changed:
- * @tuner: A #GstTuner instance
- * @channel: A #GstTunerChannel instance
- *
- * Called by elements implementing the #GstTuner interface when the
- * current channel changes. Fires the #GstTuner::channel-changed signal.
- */
-void
-gst_tuner_channel_changed (GstTuner * tuner, GstTunerChannel * channel)
-{
- g_return_if_fail (GST_IS_TUNER (tuner));
- g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
-
- g_signal_emit (G_OBJECT (tuner),
- gst_tuner_signals[CHANNEL_CHANGED], 0, channel);
-}
-
-/**
- * gst_tuner_norm_changed:
- * @tuner: A #GstTuner instance
- * @norm: A #GstTunerNorm instance
- *
- * Called by elements implementing the #GstTuner interface when the
- * current norm changes. Fires the #GstTuner::norm-changed signal.
- *
- */
-void
-gst_tuner_norm_changed (GstTuner * tuner, GstTunerNorm * norm)
-{
- g_return_if_fail (GST_IS_TUNER (tuner));
- g_return_if_fail (GST_IS_TUNER_NORM (norm));
-
- g_signal_emit (G_OBJECT (tuner), gst_tuner_signals[NORM_CHANGED], 0, norm);
-}
-
-/**
- * gst_tuner_frequency_changed:
- * @tuner: A #GstTuner instance
- * @channel: The current #GstTunerChannel
- * @frequency: The new frequency setting
- *
- * Called by elements implementing the #GstTuner interface when the
- * configured frequency changes. Fires the #GstTuner::frequency-changed
- * signal on the tuner, and the #GstTunerChannel::frequency-changed signal
- * on the channel.
- */
-void
-gst_tuner_frequency_changed (GstTuner * tuner,
- GstTunerChannel * channel, gulong frequency)
-{
- g_return_if_fail (GST_IS_TUNER (tuner));
- g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
-
- g_signal_emit (G_OBJECT (tuner),
- gst_tuner_signals[FREQUENCY_CHANGED], 0, channel, frequency);
-
- g_signal_emit_by_name (G_OBJECT (channel), "frequency_changed", frequency);
-}
-
-/**
- * gst_tuner_signal_changed:
- * @tuner: A #GstTuner instance
- * @channel: The current #GstTunerChannel
- * @signal: The new signal strength
- *
- * Called by elements implementing the #GstTuner interface when the
- * incoming signal strength changes. Fires the #GstTuner::signal-changed
- * signal on the tuner and the #GstTunerChannel::signal-changed signal on
- * the channel.
- */
-void
-gst_tuner_signal_changed (GstTuner * tuner,
- GstTunerChannel * channel, gint signal)
-{
- g_return_if_fail (GST_IS_TUNER (tuner));
- g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
-
- g_signal_emit (G_OBJECT (tuner),
- gst_tuner_signals[SIGNAL_CHANGED], 0, channel, signal);
-
- g_signal_emit_by_name (G_OBJECT (channel), "signal_changed", signal);
-}
diff --git a/gst-libs/gst/interfaces/tuner.h b/gst-libs/gst/interfaces/tuner.h
deleted file mode 100644
index 36fd6fc..0000000
--- a/gst-libs/gst/interfaces/tuner.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* GStreamer Tuner
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * tuner.h: tuner interface design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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_TUNER_H__
-#define __GST_TUNER_H__
-
-#include <gst/gst.h>
-#include <gst/interfaces/tunernorm.h>
-#include <gst/interfaces/tunerchannel.h>
-#include <gst/interfaces/interfaces-enumtypes.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_TUNER \
- (gst_tuner_get_type ())
-#define GST_TUNER(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER, GstTuner))
-#define GST_IS_TUNER(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER))
-#define GST_TUNER_GET_INTERFACE(inst) \
- (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_TUNER, GstTunerInterface))
-
-typedef struct _GstTuner GstTuner;
-typedef struct _GstTunerInterface GstTunerInterface;
-
-/**
- * GstTunerInterface:
- * @iface: the parent interface
- * @list_channels: list available channels
- * @set_channel: set to a channel
- * @get_channel: return the current channel
- * @list_norms: list available norms
- * @set_norm: set a norm
- * @get_norm: return the current norm
- * @set_frequency: set the frequency
- * @get_frequency: return the current frequency
- * @signal_strength: get the signal strength
- * @channel_changed: default handler for channel changed notification
- * @norm_changed: default handler for norm changed notification
- * @frequency_changed: default handler for frequency changed notification
- * @signal_changed: default handler for signal-strength changed notification
- *
- * Tuner interface.
- */
-struct _GstTunerInterface {
- GTypeInterface iface;
-
- /* virtual functions */
- const GList * (* list_channels) (GstTuner *tuner);
- void (* set_channel) (GstTuner *tuner,
- GstTunerChannel *channel);
- GstTunerChannel *
- (* get_channel) (GstTuner *tuner);
-
- const GList * (* list_norms) (GstTuner *tuner);
- void (* set_norm) (GstTuner *tuner,
- GstTunerNorm *norm);
- GstTunerNorm *(* get_norm) (GstTuner *tuner);
-
- void (* set_frequency) (GstTuner *tuner,
- GstTunerChannel *channel,
- gulong frequency);
- gulong (* get_frequency) (GstTuner *tuner,
- GstTunerChannel *channel);
- gint (* signal_strength) (GstTuner *tuner,
- GstTunerChannel *channel);
-
- /* signals */
- void (*channel_changed) (GstTuner *tuner,
- GstTunerChannel *channel);
- void (*norm_changed) (GstTuner *tuner,
- GstTunerNorm *norm);
- void (*frequency_changed) (GstTuner *tuner,
- GstTunerChannel *channel,
- gulong frequency);
- void (*signal_changed) (GstTuner *tuner,
- GstTunerChannel *channel,
- gint signal);
-};
-
-GType gst_tuner_get_type (void);
-
-/* virtual class function wrappers */
-const GList * gst_tuner_list_channels (GstTuner *tuner);
-void gst_tuner_set_channel (GstTuner *tuner,
- GstTunerChannel *channel);
-GstTunerChannel *
- gst_tuner_get_channel (GstTuner *tuner);
-
-const GList * gst_tuner_list_norms (GstTuner *tuner);
-void gst_tuner_set_norm (GstTuner *tuner,
- GstTunerNorm *norm);
-GstTunerNorm * gst_tuner_get_norm (GstTuner *tuner);
-
-void gst_tuner_set_frequency (GstTuner *tuner,
- GstTunerChannel *channel,
- gulong frequency);
-gulong gst_tuner_get_frequency (GstTuner *tuner,
- GstTunerChannel *channel);
-gint gst_tuner_signal_strength (GstTuner *tuner,
- GstTunerChannel *channel);
-
-/* helper functions */
-GstTunerNorm * gst_tuner_find_norm_by_name (GstTuner *tuner,
- gchar *norm);
-GstTunerChannel *gst_tuner_find_channel_by_name (GstTuner *tuner,
- gchar *channel);
-
-/* trigger signals */
-void gst_tuner_channel_changed (GstTuner *tuner,
- GstTunerChannel *channel);
-void gst_tuner_norm_changed (GstTuner *tuner,
- GstTunerNorm *norm);
-void gst_tuner_frequency_changed (GstTuner *tuner,
- GstTunerChannel *channel,
- gulong frequency);
-void gst_tuner_signal_changed (GstTuner *tuner,
- GstTunerChannel *channel,
- gint signal);
-
-G_END_DECLS
-
-#endif /* __GST_TUNER_H__ */
diff --git a/gst-libs/gst/interfaces/tunerchannel.c b/gst-libs/gst/interfaces/tunerchannel.c
deleted file mode 100644
index ac2b74e..0000000
--- a/gst-libs/gst/interfaces/tunerchannel.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* GStreamer Tuner
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * tunerchannel.c: tuner channel object design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 "tunerchannel.h"
-
-/**
- * SECTION:gsttunerchannel
- * @short_description: A channel from an element implementing the #GstTuner
- * interface.
- *
- * <refsect2>
- * <para>The #GstTunerChannel object is provided by an element implementing
- * the #GstTuner interface.
- * </para>
- * <para>
- * GstTunerChannel provides a name and flags to determine the type and
- * capabilities of the channel. If the GST_TUNER_CHANNEL_FREQUENCY flag is
- * set, then the channel also information about the minimum and maximum
- * frequency, and range of the reported signal strength.
- * </para>
- * </refsect2>
- */
-
-enum
-{
- /* FILL ME */
- SIGNAL_FREQUENCY_CHANGED,
- SIGNAL_SIGNAL_CHANGED,
- LAST_SIGNAL
-};
-
-static void gst_tuner_channel_class_init (GstTunerChannelClass * klass);
-static void gst_tuner_channel_init (GstTunerChannel * channel);
-static void gst_tuner_channel_dispose (GObject * object);
-
-static GObjectClass *parent_class = NULL;
-static guint signals[LAST_SIGNAL] = { 0 };
-
-GType
-gst_tuner_channel_get_type (void)
-{
- static GType gst_tuner_channel_type = 0;
-
- if (!gst_tuner_channel_type) {
- static const GTypeInfo tuner_channel_info = {
- sizeof (GstTunerChannelClass),
- NULL,
- NULL,
- (GClassInitFunc) gst_tuner_channel_class_init,
- NULL,
- NULL,
- sizeof (GstTunerChannel),
- 0,
- (GInstanceInitFunc) gst_tuner_channel_init,
- NULL
- };
-
- gst_tuner_channel_type =
- g_type_register_static (G_TYPE_OBJECT,
- "GstTunerChannel", &tuner_channel_info, 0);
- }
-
- return gst_tuner_channel_type;
-}
-
-static void
-gst_tuner_channel_class_init (GstTunerChannelClass * klass)
-{
- GObjectClass *object_klass = (GObjectClass *) klass;
-
- parent_class = g_type_class_peek_parent (klass);
-
- /**
- * GstTunerChannel::frequency-changed:
- * @tunerchannel: The #GstTunerChannel
- * @frequency: The new frequency (an unsigned long)
- *
- * Reports that the current frequency has changed.
- */
- signals[SIGNAL_FREQUENCY_CHANGED] =
- g_signal_new ("frequency-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstTunerChannelClass,
- frequency_changed),
- NULL, NULL, g_cclosure_marshal_VOID__ULONG, G_TYPE_NONE, 1, G_TYPE_ULONG);
- /**
- * GstTunerChannel::signal-changed:
- * @tunerchannel: The #GstTunerChannel
- * @signal: The new signal strength (an integer)
- *
- * Reports that the signal strength has changed.
- *
- * See Also: gst_tuner_signal_strength()
- */
- signals[SIGNAL_SIGNAL_CHANGED] =
- g_signal_new ("signal-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstTunerChannelClass,
- signal_changed),
- NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
-
- object_klass->dispose = gst_tuner_channel_dispose;
-}
-
-static void
-gst_tuner_channel_init (GstTunerChannel * channel)
-{
- channel->label = NULL;
- channel->flags = 0;
- channel->min_frequency = channel->max_frequency = 0;
- channel->min_signal = channel->max_signal = 0;
-}
-
-static void
-gst_tuner_channel_dispose (GObject * object)
-{
- GstTunerChannel *channel = GST_TUNER_CHANNEL (object);
-
- if (channel->label) {
- g_free (channel->label);
- channel->label = NULL;
- }
-
- if (parent_class->dispose)
- parent_class->dispose (object);
-}
diff --git a/gst-libs/gst/interfaces/tunerchannel.h b/gst-libs/gst/interfaces/tunerchannel.h
deleted file mode 100644
index 1bbb6cf..0000000
--- a/gst-libs/gst/interfaces/tunerchannel.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* GStreamer Tuner
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * tunerchannel.h: tuner channel object design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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_TUNER_CHANNEL_H__
-#define __GST_TUNER_CHANNEL_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_TUNER_CHANNEL \
- (gst_tuner_channel_get_type ())
-#define GST_TUNER_CHANNEL(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER_CHANNEL, \
- GstTunerChannel))
-#define GST_TUNER_CHANNEL_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER_CHANNEL, \
- GstTunerChannelClass))
-#define GST_IS_TUNER_CHANNEL(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER_CHANNEL))
-#define GST_IS_TUNER_CHANNEL_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_CHANNEL))
-
-typedef struct _GstTunerChannel GstTunerChannel;
-typedef struct _GstTunerChannelClass GstTunerChannelClass;
-
-/**
- * GstTunerChannelFlags:
- * @GST_TUNER_CHANNEL_INPUT: The channel is for input
- * @GST_TUNER_CHANNEL_OUTPUT: The channel is for output
- * @GST_TUNER_CHANNEL_FREQUENCY: The channel has a frequency setting
- * and signal strength.
- * @GST_TUNER_CHANNEL_AUDIO: The channel carries audio.
- *
- * An enumeration for flags indicating the available capabilities
- * of a #GstTunerChannel.
- */
-typedef enum {
- GST_TUNER_CHANNEL_INPUT = (1<<0),
- GST_TUNER_CHANNEL_OUTPUT = (1<<1),
- GST_TUNER_CHANNEL_FREQUENCY = (1<<2),
- GST_TUNER_CHANNEL_AUDIO = (1<<3)
-} GstTunerChannelFlags;
-
-/**
- * GST_TUNER_CHANNEL_HAS_FLAG:
- * @channel: A #GstTunerChannel
- * @flag: The flag to check for
- *
- * Macro to check if the given flag is set on a channel
- */
-#define GST_TUNER_CHANNEL_HAS_FLAG(channel, flag) \
- ((channel)->flags & flag)
-
-/**
- * GstTunerChannel:
- * @label: A string containing a descriptive name for this channel
- * @flags: A set of #GstTunerChannelFlags for this channel
- * @freq_multiplicator: The step size (in Hz) for the frequency setting.
- * @min_frequency: Minimum valid frequency setting (in Hz).
- * @max_frequency: Maximum valid frequency setting (in Hz).
- * @min_signal: Minimum reported signal strength value.
- * @max_signal: Maximum reported signal strength value.
- */
-struct _GstTunerChannel {
- GObject parent;
-
- /*< public >*/
- gchar *label;
- GstTunerChannelFlags flags;
- gfloat freq_multiplicator;
- gulong min_frequency;
- gulong max_frequency;
- gint min_signal;
- gint max_signal;
-
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstTunerChannelClass {
- GObjectClass parent;
-
- /*< private >*/
- /* signals */
- void (*frequency_changed) (GstTunerChannel *channel,
- gulong frequency);
- void (*signal_changed) (GstTunerChannel *channel,
- gint signal);
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
-GType gst_tuner_channel_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GST_TUNER_CHANNEL_H__ */
diff --git a/gst-libs/gst/interfaces/tunernorm.c b/gst-libs/gst/interfaces/tunernorm.c
deleted file mode 100644
index 47260b0..0000000
--- a/gst-libs/gst/interfaces/tunernorm.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* GStreamer Tuner
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * tunernorm.c: tuner norm object design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 "tunernorm.h"
-
-/**
- * SECTION:gsttunernorm
- * @short_description: Encapsulates information about the data format(s)
- * for a #GstTunerChannel.
- *
- * <refsect2>
- * <para>The #GstTunerNorm object is created by an element implementing the
- * #GstTuner interface and encapsulates the selection of a capture/output format
- * for a selected #GstTunerChannel.
- * </para>
- * </refsect2>
- */
-
-enum
-{
- /* FILL ME */
- LAST_SIGNAL
-};
-
-static void gst_tuner_norm_class_init (GstTunerNormClass * klass);
-static void gst_tuner_norm_init (GstTunerNorm * norm);
-static void gst_tuner_norm_dispose (GObject * object);
-
-static GObjectClass *parent_class = NULL;
-
-/*static guint signals[LAST_SIGNAL] = { 0 };*/
-
-GType
-gst_tuner_norm_get_type (void)
-{
- static GType gst_tuner_norm_type = 0;
-
- if (!gst_tuner_norm_type) {
- static const GTypeInfo tuner_norm_info = {
- sizeof (GstTunerNormClass),
- NULL,
- NULL,
- (GClassInitFunc) gst_tuner_norm_class_init,
- NULL,
- NULL,
- sizeof (GstTunerNorm),
- 0,
- (GInstanceInitFunc) gst_tuner_norm_init,
- NULL
- };
-
- gst_tuner_norm_type =
- g_type_register_static (G_TYPE_OBJECT,
- "GstTunerNorm", &tuner_norm_info, 0);
- }
-
- return gst_tuner_norm_type;
-}
-
-static void
-gst_tuner_norm_class_init (GstTunerNormClass * klass)
-{
- GObjectClass *object_klass = (GObjectClass *) klass;
-
- parent_class = g_type_class_peek_parent (klass);
-
- object_klass->dispose = gst_tuner_norm_dispose;
-}
-
-static void
-gst_tuner_norm_init (GstTunerNorm * norm)
-{
- norm->label = NULL;
- g_value_init (&norm->framerate, GST_TYPE_FRACTION);
-}
-
-static void
-gst_tuner_norm_dispose (GObject * object)
-{
- GstTunerNorm *norm = GST_TUNER_NORM (object);
-
- if (norm->label) {
- g_free (norm->label);
- norm->label = NULL;
- }
-
- if (parent_class->dispose)
- parent_class->dispose (object);
-}
diff --git a/gst-libs/gst/interfaces/tunernorm.h b/gst-libs/gst/interfaces/tunernorm.h
deleted file mode 100644
index 988f4cb..0000000
--- a/gst-libs/gst/interfaces/tunernorm.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* GStreamer Tuner
- * Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
- *
- * tunernorm.h: tuner norm object design
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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_TUNER_NORM_H__
-#define __GST_TUNER_NORM_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_TUNER_NORM \
- (gst_tuner_norm_get_type ())
-#define GST_TUNER_NORM(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER_NORM, GstTunerNorm))
-#define GST_TUNER_NORM_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER_NORM, GstTunerNormClass))
-#define GST_IS_TUNER_NORM(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER_NORM))
-#define GST_IS_TUNER_NORM_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_NORM))
-
-typedef struct _GstTunerNorm GstTunerNorm;
-typedef struct _GstTunerNormClass GstTunerNormClass;
-
-/**
- * GstTunerNorm:
- * @label: A string containing a descriptive name for the norm
- * @framerate: A GValue containing the framerate associated with this norm,
- * if any. (May be unset).
- */
-struct _GstTunerNorm {
- GObject parent;
-
- /*< public >*/
- gchar *label;
- GValue framerate;
-
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstTunerNormClass {
- GObjectClass parent;
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
-GType gst_tuner_norm_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GST_TUNER_NORM_H__ */
diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
index b577d90..f2e7c31 100644
--- a/gst-libs/gst/pbutils/Makefile.am
+++ b/gst-libs/gst/pbutils/Makefile.am
@@ -86,12 +86,12 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
-DGST_USE_UNSTABLE_API \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
--library=$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
--library=$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
--library=libgstpbutils-@GST_API_VERSION@.la \
- --library-path=`$(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
+ --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
--library=gstreamer-@GST_API_VERSION@ \
--include=Gst-@GST_API_VERSION@ \
--libtool="$(top_builddir)/libtool" \
@@ -116,7 +116,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/pbutils/Makefile.in b/gst-libs/gst/pbutils/Makefile.in
index 4c0668b..811edc9 100644
--- a/gst-libs/gst/pbutils/Makefile.in
+++ b/gst-libs/gst/pbutils/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -623,7 +623,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -782,7 +782,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -803,7 +803,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -824,7 +824,7 @@ install-libgstpbutils_@GST_API_VERSION@includeHEADERS: $(libgstpbutils_@GST_API_
@list='$(libgstpbutils_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstpbutils_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstpbutils_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstpbutils_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstpbutils_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -845,7 +845,7 @@ install-nodist_libgstpbutils_@GST_API_VERSION@includeHEADERS: $(nodist_libgstpbu
@list='$(nodist_libgstpbutils_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstpbutils_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstpbutils_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstpbutils_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstpbutils_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -1135,12 +1135,12 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ -I$(top_builddir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --library=$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --library=$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --library=libgstpbutils-@GST_API_VERSION@.la \
-@HAVE_INTROSPECTION_TRUE@ --library-path=`$(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=gstreamer-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --libtool="$(top_builddir)/libtool" \
@@ -1156,7 +1156,7 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst-libs/gst/pbutils/descriptions.c b/gst-libs/gst/pbutils/descriptions.c
index 6dee021..e0b6fb9 100644
--- a/gst-libs/gst/pbutils/descriptions.c
+++ b/gst-libs/gst/pbutils/descriptions.c
@@ -65,11 +65,16 @@ typedef struct
static const FormatInfo formats[] = {
/* container/tag formats with static descriptions */
+ {"audio/annodex", "Ogg", FLAG_CONTAINER},
+ {"audio/ogg", "Ogg", FLAG_CONTAINER},
+ {"audio/webm", "WebM", FLAG_CONTAINER},
+ {"audio/x-matroska", "Matroska", FLAG_CONTAINER},
+ {"application/annodex", "Ogg", FLAG_CONTAINER},
{"application/gxf", "General Exchange Format (GXF)", FLAG_CONTAINER},
{"application/ogg", "Ogg", FLAG_CONTAINER},
+ {"application/kate", "Ogg", FLAG_CONTAINER},
{"application/mxf", "Material eXchange Format (MXF)", FLAG_CONTAINER},
{"application/vnd.rn-realmedia", "Realmedia", FLAG_CONTAINER},
- {"application/x-annodex", "Ogg", FLAG_CONTAINER},
{"application/x-id3", N_("ID3 tag"), FLAG_CONTAINER},
{"application/x-ape", N_("APE tag"), FLAG_CONTAINER},
{"application/x-apetag", N_("APE tag"), FLAG_CONTAINER},
@@ -78,9 +83,12 @@ static const FormatInfo formats[] = {
{"application/x-pn-realaudio", "RealAudio", FLAG_CONTAINER},
{"application/x-yuv4mpeg", "Y4M", FLAG_CONTAINER},
{"multipart/x-mixed-replace", "Multipart", FLAG_CONTAINER},
+ {"video/annodex", "Ogg", FLAG_CONTAINER},
+ {"video/ogg", "Ogg", FLAG_CONTAINER},
{"video/x-fli", "FLI/FLC/FLX Animation", FLAG_CONTAINER},
{"video/x-flv", "Flash", FLAG_CONTAINER},
{"video/x-matroska", "Matroska", FLAG_CONTAINER},
+ {"video/x-matroska-3d", "Matroska", FLAG_CONTAINER},
{"video/webm", "WebM", FLAG_CONTAINER},
{"video/x-ms-asf", "Advanced Streaming Format (ASF)", FLAG_CONTAINER},
{"video/x-msvideo", "Audio Video Interleave (AVI)", FLAG_CONTAINER},
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
index e4e40a8..94d1823 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
@@ -89,6 +89,9 @@ struct _GstDiscovererPrivate
/* TRUE if discoverer has been started */
gboolean running;
+ /* TRUE if ASYNC_DONE has been received (need to check for subtitle tags) */
+ gboolean async_done;
+
/* current items */
GstDiscovererInfo *current_info;
GError *current_error;
@@ -97,6 +100,9 @@ struct _GstDiscovererPrivate
/* List of private streams */
GList *streams;
+ /* List of these sinks and their handler IDs (to remove the probe) */
+ guint pending_subtitle_pads;
+
/* Global elements */
GstBin *pipeline;
GstElement *uridecodebin;
@@ -262,9 +268,12 @@ gst_discoverer_init (GstDiscoverer * dc)
dc->priv->timeout = DEFAULT_PROP_TIMEOUT;
dc->priv->async = FALSE;
+ dc->priv->async_done = FALSE;
dc->priv->lock = g_mutex_new ();
+ dc->priv->pending_subtitle_pads = 0;
+
GST_LOG ("Creating pipeline");
dc->priv->pipeline = (GstBin *) gst_pipeline_new ("Discoverer");
GST_LOG_OBJECT (dc, "Creating uridecodebin");
@@ -461,6 +470,30 @@ is_subtitle_caps (const GstCaps * caps)
return ret;
}
+static GstPadProbeReturn
+got_subtitle_data (GstPad * pad, GstPadProbeInfo * info, GstDiscoverer * dc)
+{
+
+ if (!(GST_IS_BUFFER (info->data) || (GST_IS_EVENT (info->data)
+ && GST_EVENT_TYPE ((GstEvent *) info->data) == GST_EVENT_GAP)))
+ return GST_PAD_PROBE_OK;
+
+
+ DISCO_LOCK (dc);
+
+ dc->priv->pending_subtitle_pads--;
+
+ if (dc->priv->pending_subtitle_pads == 0) {
+ GstMessage *msg = gst_message_new_application (NULL,
+ gst_structure_new_empty ("DiscovererDone"));
+ gst_element_post_message ((GstElement *) dc->priv->pipeline, msg);
+ }
+ DISCO_UNLOCK (dc);
+
+ return GST_PAD_PROBE_REMOVE;
+
+}
+
static void
uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
GstDiscoverer * dc)
@@ -486,10 +519,19 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
caps = gst_pad_query_caps (pad, NULL);
+ sinkpad = gst_element_get_static_pad (ps->queue, "sink");
+ if (sinkpad == NULL)
+ goto error;
+
if (is_subtitle_caps (caps)) {
/* Subtitle streams are sparse and may not provide any information - don't
* wait for data to preroll */
+ gst_pad_add_probe (sinkpad, GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM,
+ (GstPadProbeCallback) got_subtitle_data, dc, NULL);
g_object_set (ps->sink, "async", FALSE, NULL);
+ DISCO_LOCK (dc);
+ dc->priv->pending_subtitle_pads++;
+ DISCO_UNLOCK (dc);
}
gst_caps_unref (caps);
@@ -504,9 +546,6 @@ uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
if (!gst_element_sync_state_with_parent (ps->queue))
goto error;
- sinkpad = gst_element_get_static_pad (ps->queue, "sink");
- if (sinkpad == NULL)
- goto error;
if (gst_pad_link_full (pad, sinkpad,
GST_PAD_LINK_CHECK_NOTHING) != GST_PAD_LINK_OK)
goto error;
@@ -730,7 +769,8 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
info->framerate_num = vinfo.fps_n;
info->framerate_denom = vinfo.fps_d;
- info->interlaced = (vinfo.flags & GST_VIDEO_FLAG_INTERLACED) != 0;
+ info->interlaced =
+ vinfo.interlace_mode != GST_VIDEO_INTERLACE_MODE_PROGRESSIVE;
}
if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
@@ -798,8 +838,8 @@ collect_information (GstDiscoverer * dc, const GstStructure * st,
info->caps = gst_caps_ref (caps);
}
- if (gst_structure_id_get (st, _TAGS_QUARK,
- GST_TYPE_TAG_LIST, &tags_st, NULL)) {
+ if (gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st,
+ NULL)) {
gst_discoverer_merge_and_replace_tags (&info->tags, tags_st);
}
@@ -1087,8 +1127,8 @@ discoverer_collect (GstDiscoverer * dc)
gst_caps_get_structure (dc->priv->current_info->stream_info->caps, 0);
if (g_str_has_prefix (gst_structure_get_name (st), "image/"))
- ((GstDiscovererVideoInfo *) dc->priv->current_info->
- stream_info)->is_image = TRUE;
+ ((GstDiscovererVideoInfo *) dc->priv->current_info->stream_info)->
+ is_image = TRUE;
}
}
@@ -1174,10 +1214,30 @@ handle_message (GstDiscoverer * dc, GstMessage * msg)
done = TRUE;
break;
+ case GST_MESSAGE_APPLICATION:{
+ const gchar *name;
+ gboolean async_done;
+ name = gst_structure_get_name (gst_message_get_structure (msg));
+ /* Maybe ASYNC_DONE is received & we're just waiting for subtitle tags */
+ DISCO_LOCK (dc);
+ async_done = dc->priv->async_done;
+ DISCO_UNLOCK (dc);
+ if (g_str_equal (name, "DiscovererDone") && async_done)
+ return TRUE;
+ break;
+ }
+
case GST_MESSAGE_ASYNC_DONE:
if (GST_MESSAGE_SRC (msg) == (GstObject *) dc->priv->pipeline) {
GST_DEBUG ("Finished changing state asynchronously");
- done = TRUE;
+ DISCO_LOCK (dc);
+ if (dc->priv->pending_subtitle_pads == 0) {
+ done = TRUE;
+ } else {
+ /* Remember that ASYNC_DONE has been received, wait for subtitles */
+ dc->priv->async_done = TRUE;
+ }
+ DISCO_UNLOCK (dc);
}
break;
@@ -1232,7 +1292,6 @@ handle_message (GstDiscoverer * dc, GstMessage * msg)
return done;
}
-
static void
handle_current_sync (GstDiscoverer * dc)
{
@@ -1319,6 +1378,9 @@ discoverer_cleanup (GstDiscoverer * dc)
dc->priv->current_info = NULL;
+ dc->priv->pending_subtitle_pads = 0;
+ dc->priv->async_done = FALSE;
+
/* Try popping the next uri */
if (dc->priv->async) {
if (dc->priv->pending_uris != NULL) {
diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
index 24dd941..72ff6ab 100644
--- a/gst-libs/gst/riff/Makefile.am
+++ b/gst-libs/gst/riff/Makefile.am
@@ -37,9 +37,8 @@ GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERS
-DGST_USE_UNSTABLE_API \
--add-include-path=$(builddir)/../tag \
--add-include-path=$(builddir)/../audio \
- --add-include-path=$(builddir)/../interfaces \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
--library=libgstriff-@GST_API_VERSION@.la \
--include=GstAudio-@GST_API_VERSION@ \
--include=GstTag-@GST_API_VERSION@ \
@@ -48,7 +47,6 @@ GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERS
--pkg gstreamer-@GST_API_VERSION@ \
--pkg gstreamer-tag-@GST_API_VERSION@ \
--pkg gstreamer-audio-@GST_API_VERSION@ \
- --pkg gstreamer-interfaces-@GST_API_VERSION@ \
--pkg-export gstreamer-riff-@GST_API_VERSION@ \
--add-init-section="gst_init(NULL,NULL);" \
--output $@ \
@@ -71,9 +69,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
--includedir=$(builddir) \
--includedir=$(builddir)/../tag \
--includedir=$(builddir)/../audio \
- --includedir=$(builddir)/../interfaces \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/riff/Makefile.in b/gst-libs/gst/riff/Makefile.in
index ddcd3ae..c6297e2 100644
--- a/gst-libs/gst/riff/Makefile.in
+++ b/gst-libs/gst/riff/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -538,7 +538,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -625,7 +625,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -646,7 +646,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -667,7 +667,7 @@ install-libgstriff_@GST_API_VERSION@includeHEADERS: $(libgstriff_@GST_API_VERSIO
@list='$(libgstriff_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstriff_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstriff_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstriff_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstriff_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -912,9 +912,8 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
@HAVE_INTROSPECTION_TRUE@ --add-include-path=$(builddir)/../tag \
@HAVE_INTROSPECTION_TRUE@ --add-include-path=$(builddir)/../audio \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=$(builddir)/../interfaces \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstriff-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=GstAudio-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --include=GstTag-@GST_API_VERSION@ \
@@ -923,7 +922,6 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-tag-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-audio-@GST_API_VERSION@ \
-@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-interfaces-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --pkg-export gstreamer-riff-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --add-init-section="gst_init(NULL,NULL);" \
@HAVE_INTROSPECTION_TRUE@ --output $@ \
@@ -937,9 +935,8 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir)/../tag \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir)/../audio \
-@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir)/../interfaces \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am
diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
index 446d9b1..f7f16df 100644
--- a/gst-libs/gst/rtp/Makefile.am
+++ b/gst-libs/gst/rtp/Makefile.am
@@ -37,8 +37,8 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
$(gir_cincludes) \
-DGST_USE_UNSTABLE_API \
-I$(top_srcdir)/gst-libs \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
--library=libgstrtp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
@@ -65,8 +65,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/rtp/Makefile.in b/gst-libs/gst/rtp/Makefile.in
index ccfa203..615b6f3 100644
--- a/gst-libs/gst/rtp/Makefile.in
+++ b/gst-libs/gst/rtp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -539,7 +539,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -650,7 +650,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -671,7 +671,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -692,7 +692,7 @@ install-libgstrtpincludeHEADERS: $(libgstrtpinclude_HEADERS)
@list='$(libgstrtpinclude_HEADERS)'; test -n "$(libgstrtpincludedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstrtpincludedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstrtpincludedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstrtpincludedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -932,8 +932,8 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ $(gir_cincludes) \
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstrtp-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --include=GstBase-@GST_API_VERSION@ \
@@ -951,8 +951,8 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index b6b2d8f..2698ba6 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
@@ -69,7 +69,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
-I$(top_builddir)/gst-libs \
-I$(top_srcdir)/gst-libs \
--add-include-path=$(builddir)/../sdp \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--library=libgstrtsp-@GST_API_VERSION@.la \
--include=Gio-2.0 \
--include=Gst-@GST_API_VERSION@ \
@@ -99,7 +99,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
--includedir=$(srcdir) \
--includedir=$(builddir) \
--includedir=$(builddir)/../sdp \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/rtsp/Makefile.in b/gst-libs/gst/rtsp/Makefile.in
index e10e1a6..d5f1c16 100644
--- a/gst-libs/gst/rtsp/Makefile.in
+++ b/gst-libs/gst/rtsp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -588,7 +588,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -723,7 +723,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -744,7 +744,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -765,7 +765,7 @@ install-libgstrtspincludeHEADERS: $(libgstrtspinclude_HEADERS)
@list='$(libgstrtspinclude_HEADERS)'; test -n "$(libgstrtspincludedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstrtspincludedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstrtspincludedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstrtspincludedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -786,7 +786,7 @@ install-nodist_libgstrtspincludeHEADERS: $(nodist_libgstrtspinclude_HEADERS)
@list='$(nodist_libgstrtspinclude_HEADERS)'; test -n "$(libgstrtspincludedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstrtspincludedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstrtspincludedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstrtspincludedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -1071,7 +1071,7 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ -I$(top_builddir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ --add-include-path=$(builddir)/../sdp \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstrtsp-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gio-2.0 \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@@ -1092,7 +1092,7 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir)/../sdp \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
index 7011261..df240fc 100644
--- a/gst-libs/gst/sdp/Makefile.am
+++ b/gst-libs/gst/sdp/Makefile.am
@@ -28,7 +28,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
$(gir_cincludes) \
-DGST_USE_UNSTABLE_API \
-I$(top_srcdir)/gst-libs \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--library=libgstsdp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--libtool="$(top_builddir)/libtool" \
@@ -52,7 +52,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/sdp/Makefile.in b/gst-libs/gst/sdp/Makefile.in
index 68469cc..7e9d066 100644
--- a/gst-libs/gst/sdp/Makefile.in
+++ b/gst-libs/gst/sdp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -524,7 +524,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -595,7 +595,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -616,7 +616,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -637,7 +637,7 @@ install-libgstsdpincludeHEADERS: $(libgstsdpinclude_HEADERS)
@list='$(libgstsdpinclude_HEADERS)'; test -n "$(libgstsdpincludedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstsdpincludedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstsdpincludedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstsdpincludedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -877,7 +877,7 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ $(gir_cincludes) \
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstsdp-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --libtool="$(top_builddir)/libtool" \
@@ -892,7 +892,7 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
index f0c642f..27633a8 100644
--- a/gst-libs/gst/tag/Makefile.am
+++ b/gst-libs/gst/tag/Makefile.am
@@ -39,8 +39,8 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
--warn-all \
$(gir_cincludes) \
-DGST_USE_UNSTABLE_API \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
--library=libgsttag-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
@@ -67,8 +67,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/tag/Makefile.in b/gst-libs/gst/tag/Makefile.in
index 2cedf87..92b4879 100644
--- a/gst-libs/gst/tag/Makefile.in
+++ b/gst-libs/gst/tag/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -587,7 +587,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -790,7 +790,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -811,7 +811,7 @@ install-licensetransDATA: $(licensetrans_DATA)
@list='$(licensetrans_DATA)'; test -n "$(licensetransdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(licensetransdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(licensetransdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(licensetransdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -832,7 +832,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -853,7 +853,7 @@ install-libgsttagincludeHEADERS: $(libgsttaginclude_HEADERS)
@list='$(libgsttaginclude_HEADERS)'; test -n "$(libgsttagincludedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgsttagincludedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgsttagincludedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgsttagincludedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -1094,8 +1094,8 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ --warn-all \
@HAVE_INTROSPECTION_TRUE@ $(gir_cincludes) \
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgsttag-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --include=GstBase-@GST_API_VERSION@ \
@@ -1113,8 +1113,8 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
update-isocodes: mklangtables
diff --git a/gst-libs/gst/tag/gstvorbistag.c b/gst-libs/gst/tag/gstvorbistag.c
index caf0c0e..d37ac83 100644
--- a/gst-libs/gst/tag/gstvorbistag.c
+++ b/gst-libs/gst/tag/gstvorbistag.c
@@ -646,8 +646,9 @@ gst_tag_to_metadata_block_picture (const gchar * tag,
* Creates a new tag list that contains the information parsed out of a
* vorbiscomment packet.
*
- * Returns: A #GList of newly-allocated key=value strings. Free with
- * g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)
+ * Returns: (element-type utf8) (transfer full): A #GList of newly-allocated
+ * key=value strings. Free with g_list_foreach (list, (GFunc) g_free, NULL)
+ * plus g_list_free (list)
*/
GList *
gst_tag_to_vorbis_comments (const GstTagList * list, const gchar * tag)
diff --git a/gst-libs/gst/tag/gstxmptag.c b/gst-libs/gst/tag/gstxmptag.c
index 3d257aa..8bbaf3b 100644
--- a/gst-libs/gst/tag/gstxmptag.c
+++ b/gst-libs/gst/tag/gstxmptag.c
@@ -60,7 +60,8 @@ static const gchar *schema_list[] = {
*
* Gets the list of supported schemas in the xmp lib
*
- * Returns: a %NULL terminated array of strings with the schema names
+ * Returns: (transfer none): a %NULL terminated array of strings with the
+ * schema names
*
* Since: 0.10.33
*/
diff --git a/gst-libs/gst/tag/lang.c b/gst-libs/gst/tag/lang.c
index c37366e..f1ff081 100644
--- a/gst-libs/gst/tag/lang.c
+++ b/gst-libs/gst/tag/lang.c
@@ -266,8 +266,8 @@ qsort_strcmp_func (const void *p1, const void *p2)
* tagging purposes (e.g. to tag an audio track appropriately in a video or
* audio editor).
*
- * Returns: NULL-terminated string array with two-letter language codes. Free
- * with g_strfreev() when no longer needed.
+ * Returns: (transfer full): NULL-terminated string array with two-letter
+ * language codes. Free with g_strfreev() when no longer needed.
*
* Since: 0.10.26
*/
diff --git a/gst-libs/gst/tag/licenses.c b/gst-libs/gst/tag/licenses.c
index 1891344..90b7717 100644
--- a/gst-libs/gst/tag/licenses.c
+++ b/gst-libs/gst/tag/licenses.c
@@ -201,8 +201,8 @@ static const gchar jurisdictions[] =
* (e.g. to tag an audio track appropriately in a video or audio editor, or
* an image in a camera application).
*
- * Returns: NULL-terminated array of license strings. Free with g_strfreev()
- * when no longer needed.
+ * Returns: (transfer full): NULL-terminated array of license strings. Free
+ * with g_strfreev() when no longer needed.
*
* Since: 0.10.36
*/
diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
index 4321bbf..8799952 100644
--- a/gst-libs/gst/video/Makefile.am
+++ b/gst-libs/gst/video/Makefile.am
@@ -1,22 +1,21 @@
-# variables used for enum/marshal generation
-glib_enum_headers = video.h colorbalance.h
+# variables used for enum generation
+glib_enum_headers = video.h colorbalance.h navigation.h
glib_enum_define = GST_VIDEO
glib_gen_prefix = gst_video
glib_gen_basename = video
-built_sources = video-enumtypes.c video-marshal.c
-built_headers = video-enumtypes.h video-marshal.h
+built_sources = video-enumtypes.c
+built_headers = video-enumtypes.h
BUILT_SOURCES = $(built_sources) $(built_headers)
lib_LTLIBRARIES = libgstvideo-@GST_API_VERSION@.la
CLEANFILES = $(BUILT_SOURCES)
-EXTRA_DIST = video-marshal.list
-
libgstvideo_@GST_API_VERSION@_la_SOURCES = \
colorbalance.c \
colorbalancechannel.c \
+ navigation.c \
video.c \
gstvideosink.c \
gstvideofilter.c \
@@ -24,7 +23,10 @@ libgstvideo_@GST_API_VERSION@_la_SOURCES = \
gstvideometa.c \
gstvideopool.c \
videoorientation.c \
- videooverlay.c
+ videooverlay.c \
+ gstvideodecoder.c \
+ gstvideoencoder.c \
+ gstvideoutils.c
nodist_libgstvideo_@GST_API_VERSION@_la_SOURCES = $(BUILT_SOURCES)
@@ -32,13 +34,17 @@ libgstvideo_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSI
libgstvideo_@GST_API_VERSION@include_HEADERS = \
colorbalance.h \
colorbalancechannel.h \
+ navigation.h \
video.h \
gstvideosink.h \
gstvideofilter.h \
gstvideometa.h \
gstvideopool.h \
videoorientation.h \
- videooverlay.h
+ videooverlay.h \
+ gstvideodecoder.h \
+ gstvideoencoder.h \
+ gstvideoutils.h
nodist_libgstvideo_@GST_API_VERSION@include_HEADERS = $(built_headers)
libgstvideo_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -68,8 +74,8 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
-DGST_USE_UNSTABLE_API \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
--library=libgstvideo-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
@@ -96,8 +102,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
- --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in
index b8723ab..56def4f 100644
--- a/gst-libs/gst/video/Makefile.in
+++ b/gst-libs/gst/video/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -63,7 +63,7 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(libgstvideo_@GST_API_VERSION@include_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/common/gst-glib-gen.mak
+ $(top_srcdir)/common/gst-glib-gen.mak TODO
@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = gst-libs/gst/video
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -148,6 +148,7 @@ libgstvideo_@GST_API_VERSION@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
am_libgstvideo_@GST_API_VERSION@_la_OBJECTS = \
libgstvideo_@GST_API_VERSION@_la-colorbalance.lo \
libgstvideo_@GST_API_VERSION@_la-colorbalancechannel.lo \
+ libgstvideo_@GST_API_VERSION@_la-navigation.lo \
libgstvideo_@GST_API_VERSION@_la-video.lo \
libgstvideo_@GST_API_VERSION@_la-gstvideosink.lo \
libgstvideo_@GST_API_VERSION@_la-gstvideofilter.lo \
@@ -155,9 +156,11 @@ am_libgstvideo_@GST_API_VERSION@_la_OBJECTS = \
libgstvideo_@GST_API_VERSION@_la-gstvideometa.lo \
libgstvideo_@GST_API_VERSION@_la-gstvideopool.lo \
libgstvideo_@GST_API_VERSION@_la-videoorientation.lo \
- libgstvideo_@GST_API_VERSION@_la-videooverlay.lo
-am__objects_1 = libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo \
- libgstvideo_@GST_API_VERSION@_la-video-marshal.lo
+ libgstvideo_@GST_API_VERSION@_la-videooverlay.lo \
+ libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.lo \
+ libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.lo \
+ libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo
+am__objects_1 = libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo
am__objects_2 =
am__objects_3 = $(am__objects_1) $(am__objects_2)
nodist_libgstvideo_@GST_API_VERSION@_la_OBJECTS = $(am__objects_3)
@@ -489,20 +492,20 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-# variables used for enum/marshal generation
-glib_enum_headers = video.h colorbalance.h
+# variables used for enum generation
+glib_enum_headers = video.h colorbalance.h navigation.h
glib_enum_define = GST_VIDEO
glib_gen_prefix = gst_video
glib_gen_basename = video
-built_sources = video-enumtypes.c video-marshal.c
-built_headers = video-enumtypes.h video-marshal.h
+built_sources = video-enumtypes.c
+built_headers = video-enumtypes.h
BUILT_SOURCES = $(built_sources) $(built_headers)
lib_LTLIBRARIES = libgstvideo-@GST_API_VERSION@.la
CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
-EXTRA_DIST = video-marshal.list
libgstvideo_@GST_API_VERSION@_la_SOURCES = \
colorbalance.c \
colorbalancechannel.c \
+ navigation.c \
video.c \
gstvideosink.c \
gstvideofilter.c \
@@ -510,20 +513,27 @@ libgstvideo_@GST_API_VERSION@_la_SOURCES = \
gstvideometa.c \
gstvideopool.c \
videoorientation.c \
- videooverlay.c
+ videooverlay.c \
+ gstvideodecoder.c \
+ gstvideoencoder.c \
+ gstvideoutils.c
nodist_libgstvideo_@GST_API_VERSION@_la_SOURCES = $(BUILT_SOURCES)
libgstvideo_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/video
libgstvideo_@GST_API_VERSION@include_HEADERS = \
colorbalance.h \
colorbalancechannel.h \
+ navigation.h \
video.h \
gstvideosink.h \
gstvideofilter.h \
gstvideometa.h \
gstvideopool.h \
videoorientation.h \
- videooverlay.h
+ videooverlay.h \
+ gstvideodecoder.h \
+ gstvideoencoder.h \
+ gstvideoutils.h
nodist_libgstvideo_@GST_API_VERSION@include_HEADERS = $(built_headers)
libgstvideo_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -596,7 +606,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -630,12 +640,15 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-colorbalance.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-colorbalancechannel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-convertframe.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideofilter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideometa.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideopool.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideosink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-navigation.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-enumtypes.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-marshal.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-videoorientation.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-videooverlay.Plo@am__quote@
@@ -675,6 +688,13 @@ libgstvideo_@GST_API_VERSION@_la-colorbalancechannel.lo: colorbalancechannel.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-colorbalancechannel.lo `test -f 'colorbalancechannel.c' || echo '$(srcdir)/'`colorbalancechannel.c
+libgstvideo_@GST_API_VERSION@_la-navigation.lo: navigation.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-navigation.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-navigation.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-navigation.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-navigation.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='navigation.c' object='libgstvideo_@GST_API_VERSION@_la-navigation.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
+
libgstvideo_@GST_API_VERSION@_la-video.lo: video.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video.lo `test -f 'video.c' || echo '$(srcdir)/'`video.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video.Plo
@@ -731,6 +751,27 @@ libgstvideo_@GST_API_VERSION@_la-videooverlay.lo: videooverlay.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-videooverlay.lo `test -f 'videooverlay.c' || echo '$(srcdir)/'`videooverlay.c
+libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.lo: gstvideodecoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.lo `test -f 'gstvideodecoder.c' || echo '$(srcdir)/'`gstvideodecoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideodecoder.c' object='libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-gstvideodecoder.lo `test -f 'gstvideodecoder.c' || echo '$(srcdir)/'`gstvideodecoder.c
+
+libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.lo: gstvideoencoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.lo `test -f 'gstvideoencoder.c' || echo '$(srcdir)/'`gstvideoencoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideoencoder.c' object='libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoencoder.lo `test -f 'gstvideoencoder.c' || echo '$(srcdir)/'`gstvideoencoder.c
+
+libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo: gstvideoutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutils.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo `test -f 'gstvideoutils.c' || echo '$(srcdir)/'`gstvideoutils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutils.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-gstvideoutils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideoutils.c' object='libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-gstvideoutils.lo `test -f 'gstvideoutils.c' || echo '$(srcdir)/'`gstvideoutils.c
+
libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo: video-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-enumtypes.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-enumtypes.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-enumtypes.Plo
@@ -738,13 +779,6 @@ libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo: video-enumtypes.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.c
-libgstvideo_@GST_API_VERSION@_la-video-marshal.lo: video-marshal.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_API_VERSION@_la-video-marshal.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-marshal.Tpo -c -o libgstvideo_@GST_API_VERSION@_la-video-marshal.lo `test -f 'video-marshal.c' || echo '$(srcdir)/'`video-marshal.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-marshal.Tpo $(DEPDIR)/libgstvideo_@GST_API_VERSION@_la-video-marshal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video-marshal.c' object='libgstvideo_@GST_API_VERSION@_la-video-marshal.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_API_VERSION@_la-video-marshal.lo `test -f 'video-marshal.c' || echo '$(srcdir)/'`video-marshal.c
-
mostlyclean-libtool:
-rm -f *.lo
@@ -755,7 +789,7 @@ install-girDATA: $(gir_DATA)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(girdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -776,7 +810,7 @@ install-typelibsDATA: $(typelibs_DATA)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(typelibsdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -797,7 +831,7 @@ install-libgstvideo_@GST_API_VERSION@includeHEADERS: $(libgstvideo_@GST_API_VERS
@list='$(libgstvideo_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstvideo_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -818,7 +852,7 @@ install-nodist_libgstvideo_@GST_API_VERSION@includeHEADERS: $(nodist_libgstvideo
@list='$(nodist_libgstvideo_@GST_API_VERSION@include_HEADERS)'; test -n "$(libgstvideo_@GST_API_VERSION@includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(libgstvideo_@GST_API_VERSION@includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
@@ -1107,8 +1141,8 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ -DGST_USE_UNSTABLE_API \
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ -I$(top_builddir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstvideo-@GST_API_VERSION@.la \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_API_VERSION@ \
@HAVE_INTROSPECTION_TRUE@ --include=GstBase-@GST_API_VERSION@ \
@@ -1126,8 +1160,8 @@ $(glib_gen_basename)-enumtypes.c: $(glib_enum_headers)
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
-@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+@HAVE_INTROSPECTION_TRUE@ --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
Android.mk: Makefile.am $(BUILT_SOURCES)
diff --git a/gst-libs/gst/video/TODO b/gst-libs/gst/video/TODO
new file mode 100644
index 0000000..4770de1
--- /dev/null
+++ b/gst-libs/gst/video/TODO
@@ -0,0 +1,51 @@
+Base Video Classes TODO
+
+Main goal:
+
+ Make the video encoder/decoder base classes more consistent with the
+other GStreamer API, especially with the audio encoder/decoder base
+classes.
+
+API:
+
+ The API should be named similar, the base classes should be used
+similar by the sub-classes, the behaviour of the base classes should
+be similar.
+ Currently there are many, mostly small, differences between the audio
+and video base classes API. Things like GstVideoState should be merged
+with the stuff we have in 0.11 to make the API the same in 0.11 and
+0.10 as far as possible, things like GstVideoInfo might make sense to
+be backported (at least partially).
+
+
+Specifics:
+ * Use a GInstancePrivate for extensability.
+
+ * Try to move more common video objects to video.[ch]
+
+Known bugs:
+ https://bugzilla.gnome.org/show_bug.cgi?id=664127
+ [basevideodecoder] Add separate drain vfunc and differentiate
+ between hard/soft reset in reset vfunc
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=660770
+ Doesn't support handling of "partial" frames
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=654294
+ Impossible to flush pending frames in ::set_format
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=658241
+ add API to handle QoS events and dropping logic
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=667653
+ Autodetect multicore/multithread processors
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=617021
+ Add support for QoS messages to -bad decoders and other elements
+
+
+Peripheral issues
+ https://bugzilla.gnome.org/show_bug.cgi?id=663262
+ theoraenc: spurious encoder resets due to unstable upstream
+ timestamps cause quality issues
+ => Investigate how to specify/handle variable framerates.
diff --git a/gst-libs/gst/video/colorbalance.c b/gst-libs/gst/video/colorbalance.c
index 57a4de4..53aeca3 100644
--- a/gst-libs/gst/video/colorbalance.c
+++ b/gst-libs/gst/video/colorbalance.c
@@ -25,7 +25,6 @@
#endif
#include "colorbalance.h"
-#include "video-marshal.h"
/**
* SECTION:gstcolorbalance
@@ -99,8 +98,7 @@ gst_color_balance_class_init (GstColorBalanceInterface * iface)
g_signal_new ("value-changed",
GST_TYPE_COLOR_BALANCE, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstColorBalanceInterface, value_changed),
- NULL, NULL,
- gst_video_marshal_VOID__OBJECT_INT,
+ NULL, NULL, NULL,
G_TYPE_NONE, 2, GST_TYPE_COLOR_BALANCE_CHANNEL, G_TYPE_INT);
initialized = TRUE;
diff --git a/gst-libs/gst/video/colorbalancechannel.c b/gst-libs/gst/video/colorbalancechannel.c
index ae22fba..bcd6b78 100644
--- a/gst-libs/gst/video/colorbalancechannel.c
+++ b/gst-libs/gst/video/colorbalancechannel.c
@@ -96,8 +96,7 @@ gst_color_balance_channel_class_init (GstColorBalanceChannelClass * klass)
g_signal_new ("value-changed", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstColorBalanceChannelClass,
- value_changed),
- NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
+ value_changed), NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_INT);
object_klass->dispose = gst_color_balance_channel_dispose;
}
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
new file mode 100644
index 0000000..0778ca7
--- /dev/null
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -0,0 +1,2818 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ * Copyright (C) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.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., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstvideodecoder
+ * @short_description: Base class for video decoders
+ * @see_also:
+ *
+ * This base class is for video decoders turning encoded data into raw video
+ * frames.
+ *
+ * GstVideoDecoder and subclass should cooperate as follows.
+ * <orderedlist>
+ * <listitem>
+ * <itemizedlist><title>Configuration</title>
+ * <listitem><para>
+ * Initially, GstVideoDecoder calls @start when the decoder element
+ * is activated, which allows subclass to perform any global setup.
+ * </para></listitem>
+ * <listitem><para>
+ * GstVideoDecoder calls @set_format to inform subclass of caps
+ * describing input video data that it is about to receive, including
+ * possibly configuration data.
+ * While unlikely, it might be called more than once, if changing input
+ * parameters require reconfiguration.
+ * </para></listitem>
+ * <listitem><para>
+ * GstVideoDecoder calls @stop at end of all processing.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * <listitem>
+ * <itemizedlist>
+ * <title>Data processing</title>
+ * <listitem><para>
+ * Base class gathers input data, and optionally allows subclass
+ * to parse this into subsequently manageable chunks, typically
+ * corresponding to and referred to as 'frames'.
+ * </para></listitem>
+ * <listitem><para>
+ * Input frame is provided to subclass' @handle_frame. The ownership of
+ * the frame is given to @handle_frame.
+ * </para></listitem>
+ * <listitem><para>
+ * If codec processing results in decoded data, subclass should call
+ * @gst_video_decoder_finish_frame to have decoded data pushed.
+ * downstream.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * <listitem>
+ * <itemizedlist><title>Shutdown phase</title>
+ * <listitem><para>
+ * GstVideoDecoder class calls @stop to inform the subclass that data
+ * parsing will be stopped.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * </orderedlist>
+ *
+ * Subclass is responsible for providing pad template caps for
+ * source and sink pads. The pads need to be named "sink" and "src". It also
+ * needs to set the fixed caps on srcpad, when the format is ensured. This
+ * is typically when base class calls subclass' @set_format function, though
+ * it might be delayed until calling @gst_video_decoder_finish_frame.
+ *
+ * Subclass is also responsible for providing (presentation) timestamps
+ * (likely based on corresponding input ones). If that is not applicable
+ * or possible, baseclass provides limited framerate based interpolation.
+ *
+ * Similarly, the baseclass provides some limited (legacy) seeking support
+ * (upon explicit subclass request), as full-fledged support
+ * should rather be left to upstream demuxer, parser or alike. This simple
+ * approach caters for seeking and duration reporting using estimated input
+ * bitrates.
+ *
+ * Baseclass provides some support for reverse playback, in particular
+ * in case incoming data is not packetized or upstream does not provide
+ * fragments on keyframe boundaries. However, subclass should then be prepared
+ * for the parsing and frame processing stage to occur separately (rather
+ * than otherwise the latter immediately following the former),
+ * and should ensure the parsing stage properly marks keyframes or rely on
+ * upstream to do so properly for incoming data.
+ *
+ * Things that subclass need to take care of:
+ * <itemizedlist>
+ * <listitem><para>Provide pad templates</para></listitem>
+ * <listitem><para>
+ * Set source pad caps when appropriate
+ * </para></listitem>
+ * <listitem><para>
+ * Configure some baseclass behaviour parameters.
+ * </para></listitem>
+ * <listitem><para>
+ * Optionally parse input data, if it is not considered packetized.
+ * Data will be provided to @parse which should invoke @gst_video_decoder_add_to_frame and
+ * @gst_video_decoder_have_frame as appropriate.
+ * </para></listitem>
+ * <listitem><para>
+ * Accept data in @handle_frame and provide decoded results to
+ * @gst_video_decoder_finish_frame.
+ * </para></listitem>
+ * </itemizedlist>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* TODO
+ *
+ * * Add a flag/boolean for I-frame-only/image decoders so we can do extra
+ * features, like applying QoS on input (as opposed to after the frame is
+ * decoded).
+ * * Add a flag/boolean for decoders that require keyframes, so the base
+ * class can automatically discard non-keyframes before one has arrived
+ * * Detect reordered frame/timestamps and fix the pts/dts
+ * * Support for GstIndex (or shall we not care ?)
+ * * Calculate actual latency based on input/output timestamp/frame_number
+ * and if it exceeds the recorded one, save it and emit a GST_MESSAGE_LATENCY
+ * * Emit latency message when it changes
+ *
+ */
+
+#include "gstvideodecoder.h"
+#include "gstvideoutils.h"
+
+#include <gst/video/gstvideopool.h>
+#include <gst/video/gstvideometa.h>
+#include <string.h>
+
+GST_DEBUG_CATEGORY (videodecoder_debug);
+#define GST_CAT_DEFAULT videodecoder_debug
+
+#define GST_VIDEO_DECODER_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_VIDEO_DECODER, \
+ GstVideoDecoderPrivate))
+
+struct _GstVideoDecoderPrivate
+{
+ /* FIXME introduce a context ? */
+
+ GstBufferPool *pool;
+ GstAllocator *allocator;
+ GstAllocationParams params;
+
+ /* parse tracking */
+ /* input data */
+ GstAdapter *input_adapter;
+ /* assembles current frame */
+ GstAdapter *output_adapter;
+
+ /* Whether we attempt to convert newsegment from bytes to
+ * time using a bitrate estimation */
+ gboolean do_estimate_rate;
+
+ /* Whether input is considered packetized or not */
+ gboolean packetized;
+
+ /* Error handling */
+ gint max_errors;
+ gint error_count;
+
+ /* ... being tracked here;
+ * only available during parsing */
+ GstVideoCodecFrame *current_frame;
+ /* events that should apply to the current frame */
+ GList *current_frame_events;
+
+ /* relative offset of input data */
+ guint64 input_offset;
+ /* relative offset of frame */
+ guint64 frame_offset;
+ /* tracking ts and offsets */
+ GList *timestamps;
+
+ /* combine to yield (presentation) ts */
+ GstClockTime timestamp_offset;
+
+ /* last outgoing ts */
+ GstClockTime last_timestamp;
+
+ /* reverse playback */
+ /* collect input */
+ GList *gather;
+ /* to-be-parsed */
+ GList *parse;
+ /* collected parsed frames */
+ GList *parse_gather;
+ /* frames to be handled == decoded */
+ GList *decode;
+ /* collected output */
+ GList *queued;
+ /* Used internally for avoiding processing of frames to flush */
+ gboolean process;
+
+
+ /* FIXME : base_picture_number is never set */
+ guint64 base_picture_number;
+ /* FIXME : reorder_depth is never set */
+ int reorder_depth;
+ int distance_from_sync;
+
+ guint64 system_frame_number;
+ guint64 decode_frame_number;
+
+ GList *frames; /* Protected with OBJECT_LOCK */
+ GstVideoCodecState *input_state;
+ GstVideoCodecState *output_state;
+ gboolean output_state_changed;
+
+ /* QoS properties */
+ gdouble proportion;
+ GstClockTime earliest_time;
+ gboolean discont;
+ /* qos messages: frames dropped/processed */
+ guint dropped;
+ guint processed;
+
+ /* Outgoing byte size ? */
+ gint64 bytes_out;
+ gint64 time;
+
+ gint64 min_latency;
+ gint64 max_latency;
+};
+
+static GstElementClass *parent_class = NULL;
+static void gst_video_decoder_class_init (GstVideoDecoderClass * klass);
+static void gst_video_decoder_init (GstVideoDecoder * dec,
+ GstVideoDecoderClass * klass);
+
+static void gst_video_decoder_finalize (GObject * object);
+
+static gboolean gst_video_decoder_setcaps (GstVideoDecoder * dec,
+ GstCaps * caps);
+static gboolean gst_video_decoder_sink_event (GstPad * pad, GstObject * parent,
+ GstEvent * event);
+static gboolean gst_video_decoder_src_event (GstPad * pad, GstObject * parent,
+ GstEvent * event);
+static GstFlowReturn gst_video_decoder_chain (GstPad * pad, GstObject * parent,
+ GstBuffer * buf);
+static gboolean gst_video_decoder_sink_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
+static GstStateChangeReturn gst_video_decoder_change_state (GstElement *
+ element, GstStateChange transition);
+static gboolean gst_video_decoder_src_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
+static void gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full);
+
+static GstFlowReturn gst_video_decoder_have_frame_2 (GstVideoDecoder * decoder);
+static gboolean gst_video_decoder_set_src_caps (GstVideoDecoder * decoder);
+
+static guint64
+gst_video_decoder_get_timestamp (GstVideoDecoder * decoder, int picture_number);
+static guint64 gst_video_decoder_get_frame_duration (GstVideoDecoder * decoder,
+ GstVideoCodecFrame * frame);
+static GstVideoCodecFrame *gst_video_decoder_new_frame (GstVideoDecoder *
+ decoder);
+
+static void gst_video_decoder_clear_queues (GstVideoDecoder * dec);
+
+static gboolean gst_video_decoder_sink_event_default (GstVideoDecoder * decoder,
+ GstEvent * event);
+static gboolean gst_video_decoder_src_event_default (GstVideoDecoder * decoder,
+ GstEvent * event);
+static gboolean gst_video_decoder_decide_allocation_default (GstVideoDecoder *
+ decoder, GstQuery * query);
+
+/* we can't use G_DEFINE_ABSTRACT_TYPE because we need the klass in the _init
+ * method to get to the padtemplates */
+GType
+gst_video_decoder_get_type (void)
+{
+ static volatile gsize type = 0;
+
+ if (g_once_init_enter (&type)) {
+ GType _type;
+ static const GTypeInfo info = {
+ sizeof (GstVideoDecoderClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gst_video_decoder_class_init,
+ NULL,
+ NULL,
+ sizeof (GstVideoDecoder),
+ 0,
+ (GInstanceInitFunc) gst_video_decoder_init,
+ };
+
+ _type = g_type_register_static (GST_TYPE_ELEMENT,
+ "GstVideoDecoder", &info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&type, _type);
+ }
+ return type;
+}
+
+static void
+gst_video_decoder_class_init (GstVideoDecoderClass * klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gstelement_class = GST_ELEMENT_CLASS (klass);
+
+ GST_DEBUG_CATEGORY_INIT (videodecoder_debug, "videodecoder", 0,
+ "Base Video Decoder");
+
+ parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (GstVideoDecoderPrivate));
+
+ gobject_class->finalize = gst_video_decoder_finalize;
+
+ gstelement_class->change_state =
+ GST_DEBUG_FUNCPTR (gst_video_decoder_change_state);
+
+ klass->sink_event = gst_video_decoder_sink_event_default;
+ klass->src_event = gst_video_decoder_src_event_default;
+ klass->decide_allocation = gst_video_decoder_decide_allocation_default;
+}
+
+static void
+gst_video_decoder_init (GstVideoDecoder * decoder, GstVideoDecoderClass * klass)
+{
+ GstPadTemplate *pad_template;
+ GstPad *pad;
+
+ GST_DEBUG_OBJECT (decoder, "gst_video_decoder_init");
+
+ decoder->priv = GST_VIDEO_DECODER_GET_PRIVATE (decoder);
+
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink");
+ g_return_if_fail (pad_template != NULL);
+
+ decoder->sinkpad = pad = gst_pad_new_from_template (pad_template, "sink");
+
+ gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_video_decoder_chain));
+ gst_pad_set_event_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_decoder_sink_event));
+ gst_pad_set_query_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_decoder_sink_query));
+ gst_element_add_pad (GST_ELEMENT (decoder), decoder->sinkpad);
+
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "src");
+ g_return_if_fail (pad_template != NULL);
+
+ decoder->srcpad = pad = gst_pad_new_from_template (pad_template, "src");
+
+ gst_pad_set_event_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_decoder_src_event));
+ gst_pad_set_query_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_decoder_src_query));
+ gst_pad_use_fixed_caps (pad);
+ gst_element_add_pad (GST_ELEMENT (decoder), decoder->srcpad);
+
+ gst_segment_init (&decoder->input_segment, GST_FORMAT_TIME);
+ gst_segment_init (&decoder->output_segment, GST_FORMAT_TIME);
+
+ g_rec_mutex_init (&decoder->stream_lock);
+
+ decoder->priv->input_adapter = gst_adapter_new ();
+ decoder->priv->output_adapter = gst_adapter_new ();
+ decoder->priv->packetized = TRUE;
+
+ gst_video_decoder_reset (decoder, TRUE);
+}
+
+static gboolean
+gst_video_rawvideo_convert (GstVideoCodecState * state,
+ GstFormat src_format, gint64 src_value,
+ GstFormat * dest_format, gint64 * dest_value)
+{
+ gboolean res = FALSE;
+ guint vidsize;
+ guint fps_n, fps_d;
+
+ g_return_val_if_fail (dest_format != NULL, FALSE);
+ g_return_val_if_fail (dest_value != NULL, FALSE);
+
+ if (src_format == *dest_format || src_value == 0 || src_value == -1) {
+ *dest_value = src_value;
+ return TRUE;
+ }
+
+ vidsize = GST_VIDEO_INFO_SIZE (&state->info);
+ fps_n = GST_VIDEO_INFO_FPS_N (&state->info);
+ fps_d = GST_VIDEO_INFO_FPS_D (&state->info);
+
+ if (src_format == GST_FORMAT_BYTES &&
+ *dest_format == GST_FORMAT_DEFAULT && vidsize) {
+ /* convert bytes to frames */
+ *dest_value = gst_util_uint64_scale_int (src_value, 1, vidsize);
+ res = TRUE;
+ } else if (src_format == GST_FORMAT_DEFAULT &&
+ *dest_format == GST_FORMAT_BYTES && vidsize) {
+ /* convert bytes to frames */
+ *dest_value = src_value * vidsize;
+ res = TRUE;
+ } else if (src_format == GST_FORMAT_DEFAULT &&
+ *dest_format == GST_FORMAT_TIME && fps_n) {
+ /* convert frames to time */
+ *dest_value = gst_util_uint64_scale (src_value, GST_SECOND * fps_d, fps_n);
+ res = TRUE;
+ } else if (src_format == GST_FORMAT_TIME &&
+ *dest_format == GST_FORMAT_DEFAULT && fps_d) {
+ /* convert time to frames */
+ *dest_value = gst_util_uint64_scale (src_value, fps_n, GST_SECOND * fps_d);
+ res = TRUE;
+ } else if (src_format == GST_FORMAT_TIME &&
+ *dest_format == GST_FORMAT_BYTES && fps_d && vidsize) {
+ /* convert time to frames */
+ *dest_value = gst_util_uint64_scale (src_value,
+ fps_n * vidsize, GST_SECOND * fps_d);
+ res = TRUE;
+ } else if (src_format == GST_FORMAT_BYTES &&
+ *dest_format == GST_FORMAT_TIME && fps_n && vidsize) {
+ /* convert frames to time */
+ *dest_value = gst_util_uint64_scale (src_value,
+ GST_SECOND * fps_d, fps_n * vidsize);
+ res = TRUE;
+ }
+
+ return res;
+}
+
+static gboolean
+gst_video_encoded_video_convert (gint64 bytes, gint64 time,
+ GstFormat src_format, gint64 src_value, GstFormat * dest_format,
+ gint64 * dest_value)
+{
+ gboolean res = FALSE;
+
+ g_return_val_if_fail (dest_format != NULL, FALSE);
+ g_return_val_if_fail (dest_value != NULL, FALSE);
+
+ if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+ src_value == -1)) {
+ if (dest_value)
+ *dest_value = src_value;
+ return TRUE;
+ }
+
+ if (bytes <= 0 || time <= 0) {
+ GST_DEBUG ("not enough metadata yet to convert");
+ goto exit;
+ }
+
+ switch (src_format) {
+ case GST_FORMAT_BYTES:
+ switch (*dest_format) {
+ case GST_FORMAT_TIME:
+ *dest_value = gst_util_uint64_scale (src_value, time, bytes);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ case GST_FORMAT_TIME:
+ switch (*dest_format) {
+ case GST_FORMAT_BYTES:
+ *dest_value = gst_util_uint64_scale (src_value, bytes, time);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ default:
+ GST_DEBUG ("unhandled conversion from %d to %d", src_format,
+ *dest_format);
+ res = FALSE;
+ }
+
+exit:
+ return res;
+}
+
+static GstVideoCodecState *
+_new_input_state (GstCaps * caps)
+{
+ GstVideoCodecState *state;
+ GstStructure *structure;
+ const GValue *codec_data;
+
+ state = g_slice_new0 (GstVideoCodecState);
+ state->ref_count = 1;
+ gst_video_info_init (&state->info);
+ if (G_UNLIKELY (!gst_video_info_from_caps (&state->info, caps)))
+ goto parse_fail;
+ state->caps = gst_caps_ref (caps);
+
+ structure = gst_caps_get_structure (caps, 0);
+
+ codec_data = gst_structure_get_value (structure, "codec_data");
+ if (codec_data && G_VALUE_TYPE (codec_data) == GST_TYPE_BUFFER)
+ state->codec_data = GST_BUFFER (g_value_dup_boxed (codec_data));
+
+ return state;
+
+parse_fail:
+ {
+ g_slice_free (GstVideoCodecState, state);
+ return NULL;
+ }
+}
+
+static GstVideoCodecState *
+_new_output_state (GstVideoFormat fmt, guint width, guint height,
+ GstVideoCodecState * reference)
+{
+ GstVideoCodecState *state;
+
+ state = g_slice_new0 (GstVideoCodecState);
+ state->ref_count = 1;
+ gst_video_info_init (&state->info);
+ gst_video_info_set_format (&state->info, fmt, width, height);
+
+ if (reference) {
+ GstVideoInfo *tgt, *ref;
+
+ tgt = &state->info;
+ ref = &reference->info;
+
+ /* Copy over extra fields from reference state */
+ tgt->interlace_mode = ref->interlace_mode;
+ tgt->flags = ref->flags;
+ tgt->chroma_site = ref->chroma_site;
+ tgt->colorimetry = ref->colorimetry;
+ GST_DEBUG ("reference par %d/%d fps %d/%d",
+ ref->par_n, ref->par_d, ref->fps_n, ref->fps_d);
+ tgt->par_n = ref->par_n;
+ tgt->par_d = ref->par_d;
+ tgt->fps_n = ref->fps_n;
+ tgt->fps_d = ref->fps_d;
+ }
+
+ GST_DEBUG ("reference par %d/%d fps %d/%d",
+ state->info.par_n, state->info.par_d,
+ state->info.fps_n, state->info.fps_d);
+
+ return state;
+}
+
+static gboolean
+gst_video_decoder_setcaps (GstVideoDecoder * decoder, GstCaps * caps)
+{
+ GstVideoDecoderClass *decoder_class;
+ GstVideoCodecState *state;
+ gboolean ret = TRUE;
+
+ decoder_class = GST_VIDEO_DECODER_GET_CLASS (decoder);
+
+ GST_DEBUG_OBJECT (decoder, "setcaps %" GST_PTR_FORMAT, caps);
+
+ state = _new_input_state (caps);
+
+ if (G_UNLIKELY (state == NULL))
+ goto parse_fail;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ if (decoder_class->set_format)
+ ret = decoder_class->set_format (decoder, state);
+
+ if (!ret)
+ goto refused_format;
+
+ if (decoder->priv->input_state)
+ gst_video_codec_state_unref (decoder->priv->input_state);
+ decoder->priv->input_state = state;
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return ret;
+
+ /* ERRORS */
+
+parse_fail:
+ {
+ GST_WARNING_OBJECT (decoder, "Failed to parse caps");
+ return FALSE;
+ }
+
+refused_format:
+ {
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ GST_WARNING_OBJECT (decoder, "Subclass refused caps");
+ gst_video_codec_state_unref (state);
+ return FALSE;
+ }
+}
+
+static void
+gst_video_decoder_finalize (GObject * object)
+{
+ GstVideoDecoder *decoder;
+
+ decoder = GST_VIDEO_DECODER (object);
+
+ GST_DEBUG_OBJECT (object, "finalize");
+
+ g_rec_mutex_clear (&decoder->stream_lock);
+
+ if (decoder->priv->input_adapter) {
+ g_object_unref (decoder->priv->input_adapter);
+ decoder->priv->input_adapter = NULL;
+ }
+ if (decoder->priv->output_adapter) {
+ g_object_unref (decoder->priv->output_adapter);
+ decoder->priv->output_adapter = NULL;
+ }
+
+ if (decoder->priv->input_state)
+ gst_video_codec_state_unref (decoder->priv->input_state);
+ if (decoder->priv->output_state)
+ gst_video_codec_state_unref (decoder->priv->output_state);
+
+ if (decoder->priv->pool) {
+ gst_object_unref (decoder->priv->pool);
+ decoder->priv->pool = NULL;
+ }
+
+ if (decoder->priv->allocator) {
+ gst_allocator_unref (decoder->priv->allocator);
+ decoder->priv->pool = NULL;
+ }
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* hard == FLUSH, otherwise discont */
+static GstFlowReturn
+gst_video_decoder_flush (GstVideoDecoder * dec, gboolean hard)
+{
+ GstVideoDecoderClass *klass;
+ GstVideoDecoderPrivate *priv = dec->priv;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ klass = GST_VIDEO_DECODER_GET_CLASS (dec);
+
+ GST_LOG_OBJECT (dec, "flush hard %d", hard);
+
+ /* Inform subclass */
+ if (klass->reset)
+ klass->reset (dec, hard);
+
+ /* FIXME make some more distinction between hard and soft,
+ * but subclass may not be prepared for that */
+ /* FIXME perhaps also clear pending frames ?,
+ * but again, subclass may still come up with one of those */
+ if (!hard) {
+ /* TODO ? finish/drain some stuff */
+ } else {
+ gst_segment_init (&dec->input_segment, GST_FORMAT_UNDEFINED);
+ gst_segment_init (&dec->output_segment, GST_FORMAT_UNDEFINED);
+ gst_video_decoder_clear_queues (dec);
+ priv->error_count = 0;
+ g_list_foreach (priv->current_frame_events, (GFunc) gst_event_unref, NULL);
+ g_list_free (priv->current_frame_events);
+ priv->current_frame_events = NULL;
+ }
+ /* and get (re)set for the sequel */
+ gst_video_decoder_reset (dec, FALSE);
+
+ return ret;
+}
+
+
+static gboolean
+gst_video_decoder_push_event (GstVideoDecoder * decoder, GstEvent * event)
+{
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_SEGMENT:
+ {
+ GstSegment segment;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ gst_event_copy_segment (event, &segment);
+
+ GST_DEBUG_OBJECT (decoder, "segment %" GST_SEGMENT_FORMAT, &segment);
+
+ if (segment.format != GST_FORMAT_TIME) {
+ GST_DEBUG_OBJECT (decoder, "received non TIME newsegment");
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ break;
+ }
+
+ decoder->output_segment = segment;
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ break;
+ }
+ default:
+ break;
+ }
+
+ return gst_pad_push_event (decoder->srcpad, event);
+}
+
+static gboolean
+gst_video_decoder_sink_event_default (GstVideoDecoder * decoder,
+ GstEvent * event)
+{
+ GstVideoDecoderClass *decoder_class;
+ GstVideoDecoderPrivate *priv;
+ gboolean ret = FALSE;
+
+ priv = decoder->priv;
+ decoder_class = GST_VIDEO_DECODER_GET_CLASS (decoder);
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_CAPS:
+ {
+ GstCaps *caps;
+
+ gst_event_parse_caps (event, &caps);
+ ret = gst_video_decoder_setcaps (decoder, caps);
+ gst_event_unref (event);
+ event = NULL;
+ break;
+ }
+ case GST_EVENT_EOS:
+ {
+ GstFlowReturn flow_ret = GST_FLOW_OK;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ if (!priv->packetized)
+ while (flow_ret == GST_FLOW_OK &&
+ gst_adapter_available (priv->input_adapter))
+ flow_ret =
+ decoder_class->parse (decoder, priv->current_frame,
+ priv->input_adapter, TRUE);
+
+ if (decoder_class->finish) {
+ flow_ret = decoder_class->finish (decoder);
+ } else {
+ flow_ret = GST_FLOW_OK;
+ }
+
+ ret = (flow_ret == GST_FLOW_OK);
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ break;
+ }
+ case GST_EVENT_SEGMENT:
+ {
+ GstSegment segment;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ gst_event_copy_segment (event, &segment);
+
+ if (segment.format == GST_FORMAT_TIME) {
+ GST_DEBUG_OBJECT (decoder,
+ "received TIME SEGMENT %" GST_SEGMENT_FORMAT, &segment);
+ } else {
+ gint64 start;
+
+ GST_DEBUG_OBJECT (decoder,
+ "received SEGMENT %" GST_SEGMENT_FORMAT, &segment);
+
+ /* handle newsegment as a result from our legacy simple seeking */
+ /* note that initial 0 should convert to 0 in any case */
+ if (priv->do_estimate_rate &&
+ gst_pad_query_convert (decoder->sinkpad, GST_FORMAT_BYTES,
+ segment.start, GST_FORMAT_TIME, &start)) {
+ /* best attempt convert */
+ /* as these are only estimates, stop is kept open-ended to avoid
+ * premature cutting */
+ GST_DEBUG_OBJECT (decoder,
+ "converted to TIME start %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (start));
+ segment.start = start;
+ segment.stop = GST_CLOCK_TIME_NONE;
+ segment.time = start;
+ /* replace event */
+ gst_event_unref (event);
+ event = gst_event_new_segment (&segment);
+ } else {
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ goto newseg_wrong_format;
+ }
+ }
+
+ gst_video_decoder_flush (decoder, FALSE);
+
+ priv->timestamp_offset = segment.start;
+
+ decoder->input_segment = segment;
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ break;
+ }
+ case GST_EVENT_FLUSH_STOP:
+ {
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ /* well, this is kind of worse than a DISCONT */
+ gst_video_decoder_flush (decoder, TRUE);
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ }
+ default:
+ break;
+ }
+
+ /* Forward non-serialized events and EOS/FLUSH_STOP immediately.
+ * For EOS this is required because no buffer or serialized event
+ * will come after EOS and nothing could trigger another
+ * _finish_frame() call. *
+ * If the subclass handles sending of EOS manually it can return
+ * _DROPPED from ::finish() and all other subclasses should have
+ * decoded/flushed all remaining data before this
+ *
+ * For FLUSH_STOP this is required because it is expected
+ * to be forwarded immediately and no buffers are queued anyway.
+ */
+ if (event) {
+ if (!GST_EVENT_IS_SERIALIZED (event)
+ || GST_EVENT_TYPE (event) == GST_EVENT_EOS
+ || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+ ret = gst_video_decoder_push_event (decoder, event);
+ } else {
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ decoder->priv->current_frame_events =
+ g_list_prepend (decoder->priv->current_frame_events, event);
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ ret = TRUE;
+ }
+ }
+
+ return ret;
+
+newseg_wrong_format:
+ {
+ GST_DEBUG_OBJECT (decoder, "received non TIME newsegment");
+ gst_event_unref (event);
+ /* SWALLOW EVENT */
+ return TRUE;
+ }
+}
+
+static gboolean
+gst_video_decoder_sink_event (GstPad * pad, GstObject * parent,
+ GstEvent * event)
+{
+ GstVideoDecoder *decoder;
+ GstVideoDecoderClass *decoder_class;
+ gboolean ret = FALSE;
+
+ decoder = GST_VIDEO_DECODER (parent);
+ decoder_class = GST_VIDEO_DECODER_GET_CLASS (decoder);
+
+ GST_DEBUG_OBJECT (decoder, "received event %d, %s", GST_EVENT_TYPE (event),
+ GST_EVENT_TYPE_NAME (event));
+
+ if (decoder_class->sink_event)
+ ret = decoder_class->sink_event (decoder, event);
+
+ return ret;
+}
+
+/* perform upstream byte <-> time conversion (duration, seeking)
+ * if subclass allows and if enough data for moderately decent conversion */
+static inline gboolean
+gst_video_decoder_do_byte (GstVideoDecoder * dec)
+{
+ return dec->priv->do_estimate_rate && (dec->priv->bytes_out > 0)
+ && (dec->priv->time > GST_SECOND);
+}
+
+static gboolean
+gst_video_decoder_do_seek (GstVideoDecoder * dec, GstEvent * event)
+{
+ GstFormat format;
+ GstSeekFlags flags;
+ GstSeekType start_type, end_type;
+ gdouble rate;
+ gint64 start, start_time, end_time;
+ GstSegment seek_segment;
+ guint32 seqnum;
+
+ gst_event_parse_seek (event, &rate, &format, &flags, &start_type,
+ &start_time, &end_type, &end_time);
+
+ /* we'll handle plain open-ended flushing seeks with the simple approach */
+ if (rate != 1.0) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: rate");
+ return FALSE;
+ }
+
+ if (start_type != GST_SEEK_TYPE_SET) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: start time");
+ return FALSE;
+ }
+
+ if (end_type != GST_SEEK_TYPE_NONE ||
+ (end_type == GST_SEEK_TYPE_SET && end_time != GST_CLOCK_TIME_NONE)) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: end time");
+ return FALSE;
+ }
+
+ if (!(flags & GST_SEEK_FLAG_FLUSH)) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: not flushing");
+ return FALSE;
+ }
+
+ memcpy (&seek_segment, &dec->output_segment, sizeof (seek_segment));
+ gst_segment_do_seek (&seek_segment, rate, format, flags, start_type,
+ start_time, end_type, end_time, NULL);
+ start_time = seek_segment.position;
+
+ if (!gst_pad_query_convert (dec->sinkpad, GST_FORMAT_TIME, start_time,
+ GST_FORMAT_BYTES, &start)) {
+ GST_DEBUG_OBJECT (dec, "conversion failed");
+ return FALSE;
+ }
+
+ seqnum = gst_event_get_seqnum (event);
+ event = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags,
+ GST_SEEK_TYPE_SET, start, GST_SEEK_TYPE_NONE, -1);
+ gst_event_set_seqnum (event, seqnum);
+
+ GST_DEBUG_OBJECT (dec, "seeking to %" GST_TIME_FORMAT " at byte offset %"
+ G_GINT64_FORMAT, GST_TIME_ARGS (start_time), start);
+
+ return gst_pad_push_event (dec->sinkpad, event);
+}
+
+static gboolean
+gst_video_decoder_src_event_default (GstVideoDecoder * decoder,
+ GstEvent * event)
+{
+ GstVideoDecoderPrivate *priv;
+ gboolean res = FALSE;
+
+ priv = decoder->priv;
+
+ GST_DEBUG_OBJECT (decoder,
+ "received event %d, %s", GST_EVENT_TYPE (event),
+ GST_EVENT_TYPE_NAME (event));
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_SEEK:
+ {
+ GstFormat format;
+ gdouble rate;
+ GstSeekFlags flags;
+ GstSeekType cur_type, stop_type;
+ gint64 cur, stop;
+ gint64 tcur, tstop;
+ guint32 seqnum;
+
+ gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
+ &stop_type, &stop);
+ seqnum = gst_event_get_seqnum (event);
+
+ /* upstream gets a chance first */
+ if ((res = gst_pad_push_event (decoder->sinkpad, event)))
+ break;
+
+ /* if upstream fails for a time seek, maybe we can help if allowed */
+ if (format == GST_FORMAT_TIME) {
+ if (gst_video_decoder_do_byte (decoder))
+ res = gst_video_decoder_do_seek (decoder, event);
+ break;
+ }
+
+ /* ... though a non-time seek can be aided as well */
+ /* First bring the requested format to time */
+ if (!(res =
+ gst_pad_query_convert (decoder->srcpad, format, cur,
+ GST_FORMAT_TIME, &tcur)))
+ goto convert_error;
+ if (!(res =
+ gst_pad_query_convert (decoder->srcpad, format, stop,
+ GST_FORMAT_TIME, &tstop)))
+ goto convert_error;
+
+ /* then seek with time on the peer */
+ event = gst_event_new_seek (rate, GST_FORMAT_TIME,
+ flags, cur_type, tcur, stop_type, tstop);
+ gst_event_set_seqnum (event, seqnum);
+
+ res = gst_pad_push_event (decoder->sinkpad, event);
+ break;
+ }
+ case GST_EVENT_QOS:
+ {
+ GstQOSType type;
+ gdouble proportion;
+ GstClockTimeDiff diff;
+ GstClockTime timestamp;
+ GstClockTime duration;
+
+ gst_event_parse_qos (event, &type, &proportion, &diff, &timestamp);
+
+ GST_OBJECT_LOCK (decoder);
+ priv->proportion = proportion;
+ if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (timestamp))) {
+ if (G_UNLIKELY (diff > 0)) {
+ if (priv->output_state->info.fps_n > 0)
+ duration =
+ gst_util_uint64_scale (GST_SECOND,
+ priv->output_state->info.fps_d, priv->output_state->info.fps_n);
+ else
+ duration = 0;
+ priv->earliest_time = timestamp + 2 * diff + duration;
+ } else {
+ priv->earliest_time = timestamp + diff;
+ }
+ } else {
+ priv->earliest_time = GST_CLOCK_TIME_NONE;
+ }
+ GST_OBJECT_UNLOCK (decoder);
+
+ GST_DEBUG_OBJECT (decoder,
+ "got QoS %" GST_TIME_FORMAT ", %" G_GINT64_FORMAT ", %g",
+ GST_TIME_ARGS (timestamp), diff, proportion);
+
+ res = gst_pad_push_event (decoder->sinkpad, event);
+ break;
+ }
+ default:
+ res = gst_pad_push_event (decoder->sinkpad, event);
+ break;
+ }
+done:
+ return res;
+
+convert_error:
+ GST_DEBUG_OBJECT (decoder, "could not convert format");
+ goto done;
+}
+
+static gboolean
+gst_video_decoder_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+ GstVideoDecoder *decoder;
+ GstVideoDecoderClass *decoder_class;
+ gboolean ret = FALSE;
+
+ decoder = GST_VIDEO_DECODER (parent);
+ decoder_class = GST_VIDEO_DECODER_GET_CLASS (decoder);
+
+ GST_DEBUG_OBJECT (decoder, "received event %d, %s", GST_EVENT_TYPE (event),
+ GST_EVENT_TYPE_NAME (event));
+
+ if (decoder_class->src_event)
+ ret = decoder_class->src_event (decoder, event);
+
+ return ret;
+}
+
+static gboolean
+gst_video_decoder_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+ GstVideoDecoder *dec;
+ gboolean res = TRUE;
+
+ dec = GST_VIDEO_DECODER (parent);
+
+ GST_LOG_OBJECT (dec, "handling query: %" GST_PTR_FORMAT, query);
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_POSITION:
+ {
+ GstFormat format;
+ gint64 time, value;
+
+ /* upstream gets a chance first */
+ if ((res = gst_pad_peer_query (dec->sinkpad, query))) {
+ GST_LOG_OBJECT (dec, "returning peer response");
+ break;
+ }
+
+ /* we start from the last seen time */
+ time = dec->priv->last_timestamp;
+ /* correct for the segment values */
+ time = gst_segment_to_stream_time (&dec->output_segment,
+ GST_FORMAT_TIME, time);
+
+ GST_LOG_OBJECT (dec,
+ "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
+
+ /* and convert to the final format */
+ gst_query_parse_position (query, &format, NULL);
+ if (!(res = gst_pad_query_convert (pad, GST_FORMAT_TIME, time,
+ format, &value)))
+ break;
+
+ gst_query_set_position (query, format, value);
+
+ GST_LOG_OBJECT (dec,
+ "query %p: we return %" G_GINT64_FORMAT " (format %u)", query, value,
+ format);
+ break;
+ }
+ case GST_QUERY_DURATION:
+ {
+ GstFormat format;
+
+ /* upstream in any case */
+ if ((res = gst_pad_query_default (pad, parent, query)))
+ break;
+
+ gst_query_parse_duration (query, &format, NULL);
+ /* try answering TIME by converting from BYTE if subclass allows */
+ if (format == GST_FORMAT_TIME && gst_video_decoder_do_byte (dec)) {
+ gint64 value;
+
+ if (gst_pad_peer_query_duration (dec->sinkpad, GST_FORMAT_BYTES,
+ &value)) {
+ GST_LOG_OBJECT (dec, "upstream size %" G_GINT64_FORMAT, value);
+ if (gst_pad_query_convert (dec->sinkpad,
+ GST_FORMAT_BYTES, value, GST_FORMAT_TIME, &value)) {
+ gst_query_set_duration (query, GST_FORMAT_TIME, value);
+ res = TRUE;
+ }
+ }
+ }
+ break;
+ }
+ case GST_QUERY_CONVERT:
+ {
+ GstFormat src_fmt, dest_fmt;
+ gint64 src_val, dest_val;
+
+ GST_DEBUG_OBJECT (dec, "convert query");
+
+ gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+ res = gst_video_rawvideo_convert (dec->priv->output_state,
+ src_fmt, src_val, &dest_fmt, &dest_val);
+ if (!res)
+ goto error;
+ gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+ break;
+ }
+ case GST_QUERY_LATENCY:
+ {
+ gboolean live;
+ GstClockTime min_latency, max_latency;
+
+ res = gst_pad_peer_query (dec->sinkpad, query);
+ if (res) {
+ gst_query_parse_latency (query, &live, &min_latency, &max_latency);
+ GST_DEBUG_OBJECT (dec, "Peer latency: live %d, min %"
+ GST_TIME_FORMAT " max %" GST_TIME_FORMAT, live,
+ GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
+
+ GST_OBJECT_LOCK (dec);
+ min_latency += dec->priv->min_latency;
+ if (dec->priv->max_latency == GST_CLOCK_TIME_NONE) {
+ max_latency = GST_CLOCK_TIME_NONE;
+ } else if (max_latency != GST_CLOCK_TIME_NONE) {
+ max_latency += dec->priv->max_latency;
+ }
+ GST_OBJECT_UNLOCK (dec);
+
+ gst_query_set_latency (query, live, min_latency, max_latency);
+ }
+ }
+ break;
+ default:
+ res = gst_pad_query_default (pad, parent, query);
+ }
+ return res;
+
+error:
+ GST_ERROR_OBJECT (dec, "query failed");
+ return res;
+}
+
+static gboolean
+gst_video_decoder_sink_query (GstPad * pad, GstObject * parent,
+ GstQuery * query)
+{
+ GstVideoDecoder *decoder;
+ GstVideoDecoderPrivate *priv;
+ gboolean res = FALSE;
+
+ decoder = GST_VIDEO_DECODER (parent);
+ priv = decoder->priv;
+
+ GST_LOG_OBJECT (decoder, "handling query: %" GST_PTR_FORMAT, query);
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_CONVERT:
+ {
+ GstFormat src_fmt, dest_fmt;
+ gint64 src_val, dest_val;
+
+ gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+ res =
+ gst_video_encoded_video_convert (priv->bytes_out, priv->time, src_fmt,
+ src_val, &dest_fmt, &dest_val);
+ if (!res)
+ goto error;
+ gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+ break;
+ }
+ default:
+ res = gst_pad_query_default (pad, parent, query);
+ break;
+ }
+done:
+
+ return res;
+error:
+ GST_DEBUG_OBJECT (decoder, "query failed");
+ goto done;
+}
+
+typedef struct _Timestamp Timestamp;
+struct _Timestamp
+{
+ guint64 offset;
+ GstClockTime timestamp;
+ GstClockTime duration;
+};
+
+static void
+gst_video_decoder_add_timestamp (GstVideoDecoder * decoder, GstBuffer * buffer)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ Timestamp *ts;
+
+ ts = g_malloc (sizeof (Timestamp));
+
+ GST_LOG_OBJECT (decoder,
+ "adding timestamp %" GST_TIME_FORMAT " (offset:%" G_GUINT64_FORMAT ")",
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)), priv->input_offset);
+
+ ts->offset = priv->input_offset;
+ ts->timestamp = GST_BUFFER_TIMESTAMP (buffer);
+ ts->duration = GST_BUFFER_DURATION (buffer);
+
+ priv->timestamps = g_list_append (priv->timestamps, ts);
+}
+
+static void
+gst_video_decoder_get_timestamp_at_offset (GstVideoDecoder *
+ decoder, guint64 offset, GstClockTime * timestamp, GstClockTime * duration)
+{
+ Timestamp *ts;
+ GList *g;
+
+ *timestamp = GST_CLOCK_TIME_NONE;
+ *duration = GST_CLOCK_TIME_NONE;
+
+ g = decoder->priv->timestamps;
+ while (g) {
+ ts = g->data;
+ if (ts->offset <= offset) {
+ *timestamp = ts->timestamp;
+ *duration = ts->duration;
+ g_free (ts);
+ g = g->next;
+ decoder->priv->timestamps = g_list_remove (decoder->priv->timestamps, ts);
+ } else {
+ break;
+ }
+ }
+
+ GST_LOG_OBJECT (decoder,
+ "got timestamp %" GST_TIME_FORMAT " (offset:%" G_GUINT64_FORMAT ")",
+ GST_TIME_ARGS (*timestamp), offset);
+}
+
+static void
+gst_video_decoder_clear_queues (GstVideoDecoder * dec)
+{
+ GstVideoDecoderPrivate *priv = dec->priv;
+
+ g_list_foreach (priv->queued, (GFunc) gst_mini_object_unref, NULL);
+ g_list_free (priv->queued);
+ priv->queued = NULL;
+ g_list_foreach (priv->gather, (GFunc) gst_mini_object_unref, NULL);
+ g_list_free (priv->gather);
+ priv->gather = NULL;
+ g_list_foreach (priv->decode, (GFunc) gst_video_codec_frame_unref, NULL);
+ g_list_free (priv->decode);
+ priv->decode = NULL;
+ g_list_foreach (priv->parse, (GFunc) gst_mini_object_unref, NULL);
+ g_list_free (priv->parse);
+ priv->parse = NULL;
+ g_list_foreach (priv->parse_gather, (GFunc) gst_video_codec_frame_unref,
+ NULL);
+ g_list_free (priv->parse_gather);
+ priv->parse_gather = NULL;
+ g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL);
+ g_list_free (priv->frames);
+ priv->frames = NULL;
+}
+
+static void
+gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GList *g;
+
+ GST_DEBUG_OBJECT (decoder, "reset full %d", full);
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ if (full) {
+ gst_segment_init (&decoder->input_segment, GST_FORMAT_UNDEFINED);
+ gst_segment_init (&decoder->output_segment, GST_FORMAT_UNDEFINED);
+ gst_video_decoder_clear_queues (decoder);
+ priv->error_count = 0;
+ priv->max_errors = GST_VIDEO_DECODER_MAX_ERRORS;
+ if (priv->input_state)
+ gst_video_codec_state_unref (priv->input_state);
+ priv->input_state = NULL;
+ if (priv->output_state)
+ gst_video_codec_state_unref (priv->output_state);
+ priv->output_state = NULL;
+ priv->min_latency = 0;
+ priv->max_latency = 0;
+ }
+
+ priv->discont = TRUE;
+
+ priv->timestamp_offset = GST_CLOCK_TIME_NONE;
+ priv->last_timestamp = GST_CLOCK_TIME_NONE;
+
+ priv->input_offset = 0;
+ priv->frame_offset = 0;
+ gst_adapter_clear (priv->input_adapter);
+ gst_adapter_clear (priv->output_adapter);
+ g_list_foreach (priv->timestamps, (GFunc) g_free, NULL);
+ g_list_free (priv->timestamps);
+ priv->timestamps = NULL;
+
+ if (priv->current_frame) {
+ gst_video_codec_frame_unref (priv->current_frame);
+ priv->current_frame = NULL;
+ }
+
+ priv->dropped = 0;
+ priv->processed = 0;
+
+ priv->decode_frame_number = 0;
+ priv->base_picture_number = 0;
+ for (g = priv->frames; g; g = g->next) {
+ gst_video_codec_frame_unref ((GstVideoCodecFrame *) g->data);
+ }
+ g_list_free (priv->frames);
+ priv->frames = NULL;
+
+ priv->bytes_out = 0;
+ priv->time = 0;
+
+ priv->earliest_time = GST_CLOCK_TIME_NONE;
+ priv->proportion = 0.5;
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+}
+
+static GstFlowReturn
+gst_video_decoder_chain_forward (GstVideoDecoder * decoder, GstBuffer * buf)
+{
+ GstVideoDecoderPrivate *priv;
+ GstVideoDecoderClass *klass;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ klass = GST_VIDEO_DECODER_GET_CLASS (decoder);
+ priv = decoder->priv;
+
+ g_return_val_if_fail (priv->packetized || klass->parse, GST_FLOW_ERROR);
+
+ if (priv->current_frame == NULL) {
+ priv->current_frame = gst_video_decoder_new_frame (decoder);
+ }
+
+ if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+ gst_video_decoder_add_timestamp (decoder, buf);
+ }
+ priv->input_offset += gst_buffer_get_size (buf);
+
+ if (priv->packetized) {
+ priv->current_frame->input_buffer = buf;
+
+ if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) {
+ GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (priv->current_frame);
+ }
+
+ ret = gst_video_decoder_have_frame_2 (decoder);
+ } else {
+
+ gst_adapter_push (priv->input_adapter, buf);
+
+ if (G_UNLIKELY (!gst_adapter_available (priv->input_adapter)))
+ goto beach;
+
+ do {
+ ret =
+ klass->parse (decoder, priv->current_frame, priv->input_adapter,
+ FALSE);
+ } while (ret == GST_FLOW_OK && gst_adapter_available (priv->input_adapter));
+
+ }
+
+beach:
+ if (ret == GST_VIDEO_DECODER_FLOW_NEED_DATA)
+ return GST_FLOW_OK;
+
+ return ret;
+}
+
+static GstFlowReturn
+gst_video_decoder_flush_decode (GstVideoDecoder * dec)
+{
+ GstVideoDecoderPrivate *priv = dec->priv;
+ GstFlowReturn res = GST_FLOW_OK;
+ GList *walk;
+
+ walk = priv->decode;
+
+ GST_DEBUG_OBJECT (dec, "flushing buffers to decode");
+
+ /* clear buffer and decoder state */
+ gst_video_decoder_flush (dec, FALSE);
+
+ /* signal have_frame it should not capture frames */
+ priv->process = TRUE;
+
+ while (walk) {
+ GList *next;
+ GstVideoCodecFrame *frame = (GstVideoCodecFrame *) (walk->data);
+ GstBuffer *buf = frame->input_buffer;
+
+ GST_DEBUG_OBJECT (dec, "decoding frame %p, ts %" GST_TIME_FORMAT,
+ buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+ next = walk->next;
+ if (priv->current_frame)
+ gst_video_codec_frame_unref (priv->current_frame);
+ priv->current_frame = frame;
+ gst_video_codec_frame_ref (priv->current_frame);
+
+ /* decode buffer, resulting data prepended to queue */
+ res = gst_video_decoder_have_frame_2 (dec);
+
+ walk = next;
+ }
+
+ priv->process = FALSE;
+
+ return res;
+}
+
+static GstFlowReturn
+gst_video_decoder_flush_parse (GstVideoDecoder * dec)
+{
+ GstVideoDecoderPrivate *priv = dec->priv;
+ GstFlowReturn res = GST_FLOW_OK;
+ GList *walk;
+
+ walk = priv->parse;
+
+ GST_DEBUG_OBJECT (dec, "flushing buffers to parsing");
+
+ /* clear buffer and decoder state */
+ gst_video_decoder_flush (dec, FALSE);
+
+ while (walk) {
+ GList *next;
+ GstBuffer *buf = GST_BUFFER_CAST (walk->data);
+
+ GST_DEBUG_OBJECT (dec, "parsing buffer %p, ts %" GST_TIME_FORMAT,
+ buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+ next = walk->next;
+ /* parse buffer, resulting frames prepended to parse_gather queue */
+ gst_buffer_ref (buf);
+ res = gst_video_decoder_chain_forward (dec, buf);
+
+ /* if we generated output, we can discard the buffer, else we
+ * keep it in the queue */
+ if (priv->parse_gather) {
+ GST_DEBUG_OBJECT (dec, "parsed buffer to %p", priv->parse_gather->data);
+ priv->parse = g_list_delete_link (priv->parse, walk);
+ gst_buffer_unref (buf);
+ } else {
+ GST_DEBUG_OBJECT (dec, "buffer did not decode, keeping");
+ }
+ walk = next;
+ }
+
+ /* now we can process frames */
+ GST_DEBUG_OBJECT (dec, "checking frames");
+ while (priv->parse_gather) {
+ GstVideoCodecFrame *frame;
+
+ frame = (GstVideoCodecFrame *) (priv->parse_gather->data);
+ /* remove from the gather list */
+ priv->parse_gather =
+ g_list_delete_link (priv->parse_gather, priv->parse_gather);
+ /* copy to decode queue */
+ priv->decode = g_list_prepend (priv->decode, frame);
+
+ /* if we copied a keyframe, flush and decode the decode queue */
+ if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame)) {
+ GST_DEBUG_OBJECT (dec, "copied keyframe");
+ res = gst_video_decoder_flush_decode (dec);
+ }
+ }
+
+ /* now send queued data downstream */
+ while (priv->queued) {
+ GstBuffer *buf = GST_BUFFER_CAST (priv->queued->data);
+
+ if (G_LIKELY (res == GST_FLOW_OK)) {
+ GST_DEBUG_OBJECT (dec, "pushing buffer %p of size %" G_GSIZE_FORMAT ", "
+ "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf,
+ gst_buffer_get_size (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+ /* should be already, but let's be sure */
+ buf = gst_buffer_make_writable (buf);
+ /* avoid stray DISCONT from forward processing,
+ * which have no meaning in reverse pushing */
+ GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
+ res = gst_pad_push (dec->srcpad, buf);
+ } else {
+ gst_buffer_unref (buf);
+ }
+
+ priv->queued = g_list_delete_link (priv->queued, priv->queued);
+ }
+
+ return res;
+}
+
+static GstFlowReturn
+gst_video_decoder_chain_reverse (GstVideoDecoder * dec, GstBuffer * buf)
+{
+ GstVideoDecoderPrivate *priv = dec->priv;
+ GstFlowReturn result = GST_FLOW_OK;
+
+ /* if we have a discont, move buffers to the decode list */
+ if (!buf || GST_BUFFER_IS_DISCONT (buf)) {
+ GST_DEBUG_OBJECT (dec, "received discont");
+ while (priv->gather) {
+ GstBuffer *gbuf;
+
+ gbuf = GST_BUFFER_CAST (priv->gather->data);
+ /* remove from the gather list */
+ priv->gather = g_list_delete_link (priv->gather, priv->gather);
+ /* copy to parse queue */
+ priv->parse = g_list_prepend (priv->parse, gbuf);
+ }
+ /* parse and decode stuff in the parse queue */
+ gst_video_decoder_flush_parse (dec);
+ }
+
+ if (G_LIKELY (buf)) {
+ GST_DEBUG_OBJECT (dec, "gathering buffer %p of size %" G_GSIZE_FORMAT ", "
+ "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf,
+ gst_buffer_get_size (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+ /* add buffer to gather queue */
+ priv->gather = g_list_prepend (priv->gather, buf);
+ }
+
+ return result;
+}
+
+static GstFlowReturn
+gst_video_decoder_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
+{
+ GstVideoDecoder *decoder;
+ GstVideoDecoderPrivate *priv;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ decoder = GST_VIDEO_DECODER (parent);
+ priv = decoder->priv;
+
+ GST_LOG_OBJECT (decoder,
+ "chain %" GST_TIME_FORMAT " duration %" GST_TIME_FORMAT " size %"
+ G_GSIZE_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), gst_buffer_get_size (buf));
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ /* NOTE:
+ * requiring the pad to be negotiated makes it impossible to use
+ * oggdemux or filesrc ! decoder */
+
+ if (decoder->input_segment.format == GST_FORMAT_UNDEFINED) {
+ GstEvent *event;
+ GstSegment *segment = &decoder->input_segment;
+
+ GST_WARNING_OBJECT (decoder,
+ "Received buffer without a new-segment. "
+ "Assuming timestamps start from 0.");
+
+ gst_segment_init (segment, GST_FORMAT_TIME);
+
+ event = gst_event_new_segment (segment);
+
+ decoder->priv->current_frame_events =
+ g_list_prepend (decoder->priv->current_frame_events, event);
+ }
+
+ if (G_UNLIKELY (GST_BUFFER_IS_DISCONT (buf))) {
+ gint64 ts;
+
+ GST_DEBUG_OBJECT (decoder, "received DISCONT buffer");
+
+ /* track present position */
+ ts = priv->timestamp_offset;
+
+ /* buffer may claim DISCONT loudly, if it can't tell us where we are now,
+ * we'll stick to where we were ...
+ * Particularly useful/needed for upstream BYTE based */
+ if (decoder->input_segment.rate > 0.0
+ && !GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+ GST_DEBUG_OBJECT (decoder, "... but restoring previous ts tracking");
+ priv->timestamp_offset = ts;
+ }
+ }
+
+ if (decoder->input_segment.rate > 0.0)
+ ret = gst_video_decoder_chain_forward (decoder, buf);
+ else
+ ret = gst_video_decoder_chain_reverse (decoder, buf);
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ return ret;
+}
+
+static GstStateChangeReturn
+gst_video_decoder_change_state (GstElement * element, GstStateChange transition)
+{
+ GstVideoDecoder *decoder;
+ GstVideoDecoderClass *decoder_class;
+ GstStateChangeReturn ret;
+
+ decoder = GST_VIDEO_DECODER (element);
+ decoder_class = GST_VIDEO_DECODER_GET_CLASS (element);
+
+ switch (transition) {
+ case GST_STATE_CHANGE_NULL_TO_READY:
+ /* open device/library if needed */
+ if (decoder_class->open && !decoder_class->open (decoder))
+ goto open_failed;
+ break;
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
+ /* Initialize device/library if needed */
+ if (decoder_class->start && !decoder_class->start (decoder))
+ goto start_failed;
+ break;
+ default:
+ break;
+ }
+
+ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+
+ switch (transition) {
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ if (decoder_class->stop && !decoder_class->stop (decoder))
+ goto stop_failed;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ gst_video_decoder_reset (decoder, TRUE);
+ g_list_foreach (decoder->priv->current_frame_events,
+ (GFunc) gst_event_unref, NULL);
+ g_list_free (decoder->priv->current_frame_events);
+ decoder->priv->current_frame_events = NULL;
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+ break;
+ case GST_STATE_CHANGE_READY_TO_NULL:
+ /* close device/library if needed */
+ if (decoder_class->close && !decoder_class->close (decoder))
+ goto close_failed;
+ break;
+ default:
+ break;
+ }
+
+ return ret;
+
+ /* Errors */
+open_failed:
+ {
+ GST_ELEMENT_ERROR (decoder, LIBRARY, INIT, (NULL),
+ ("Failed to open decoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+
+start_failed:
+ {
+ GST_ELEMENT_ERROR (decoder, LIBRARY, INIT, (NULL),
+ ("Failed to start decoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+
+stop_failed:
+ {
+ GST_ELEMENT_ERROR (decoder, LIBRARY, INIT, (NULL),
+ ("Failed to stop decoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+
+close_failed:
+ {
+ GST_ELEMENT_ERROR (decoder, LIBRARY, INIT, (NULL),
+ ("Failed to close decoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+}
+
+static GstVideoCodecFrame *
+gst_video_decoder_new_frame (GstVideoDecoder * decoder)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GstVideoCodecFrame *frame;
+
+ frame = g_slice_new0 (GstVideoCodecFrame);
+
+ frame->ref_count = 1;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ frame->system_frame_number = priv->system_frame_number;
+ priv->system_frame_number++;
+ frame->decode_frame_number = priv->decode_frame_number;
+ priv->decode_frame_number++;
+
+ frame->dts = GST_CLOCK_TIME_NONE;
+ frame->pts = GST_CLOCK_TIME_NONE;
+ frame->duration = GST_CLOCK_TIME_NONE;
+ frame->events = priv->current_frame_events;
+ priv->current_frame_events = NULL;
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ GST_LOG_OBJECT (decoder, "Created new frame %p (sfn:%d)",
+ frame, frame->system_frame_number);
+
+ return frame;
+}
+
+static void
+gst_video_decoder_prepare_finish_frame (GstVideoDecoder *
+ decoder, GstVideoCodecFrame * frame)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GList *l, *events = NULL;
+
+#ifndef GST_DISABLE_GST_DEBUG
+ GST_LOG_OBJECT (decoder, "n %d in %d out %d",
+ g_list_length (priv->frames),
+ gst_adapter_available (priv->input_adapter),
+ gst_adapter_available (priv->output_adapter));
+#endif
+
+ GST_LOG_OBJECT (decoder,
+ "finish frame %p sync=%d pts=%" GST_TIME_FORMAT, frame,
+ GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame), GST_TIME_ARGS (frame->pts));
+
+ /* Push all pending events that arrived before this frame */
+ for (l = priv->frames; l; l = l->next) {
+ GstVideoCodecFrame *tmp = l->data;
+
+ if (tmp->events) {
+ events = g_list_concat (events, tmp->events);
+ tmp->events = NULL;
+ }
+
+ if (tmp == frame)
+ break;
+ }
+
+ for (l = g_list_last (events); l; l = l->prev) {
+ GST_LOG_OBJECT (decoder, "pushing %s event", GST_EVENT_TYPE_NAME (l->data));
+ gst_video_decoder_push_event (decoder, l->data);
+ }
+ g_list_free (events);
+
+ /* Check if the data should not be displayed. For example altref/invisible
+ * frame in vp8. In this case we should not update the timestamps. */
+ if (GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY (frame))
+ return;
+
+ /* If the frame is meant to be outputted but we don't have an output buffer
+ * we have a problem :) */
+ if (G_UNLIKELY (frame->output_buffer == NULL))
+ goto no_output_buffer;
+
+ if (GST_CLOCK_TIME_IS_VALID (frame->pts)) {
+ if (frame->pts != priv->timestamp_offset) {
+ GST_DEBUG_OBJECT (decoder,
+ "sync timestamp %" GST_TIME_FORMAT " diff %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (frame->pts),
+ GST_TIME_ARGS (frame->pts - decoder->output_segment.start));
+ priv->timestamp_offset = frame->pts;
+ } else {
+ /* This case is for one initial timestamp and no others, e.g.,
+ * filesrc ! decoder ! xvimagesink */
+ GST_WARNING_OBJECT (decoder, "sync timestamp didn't change, ignoring");
+ frame->pts = GST_CLOCK_TIME_NONE;
+ }
+ } else {
+ if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame)) {
+ GST_WARNING_OBJECT (decoder, "sync point doesn't have timestamp");
+ if (!GST_CLOCK_TIME_IS_VALID (priv->timestamp_offset)) {
+ GST_WARNING_OBJECT (decoder,
+ "No base timestamp. Assuming frames start at segment start");
+ priv->timestamp_offset = decoder->output_segment.start;
+ }
+ }
+ }
+ if (frame->pts == GST_CLOCK_TIME_NONE) {
+ frame->pts =
+ gst_video_decoder_get_timestamp (decoder, frame->decode_frame_number);
+ frame->duration = GST_CLOCK_TIME_NONE;
+ }
+ if (frame->duration == GST_CLOCK_TIME_NONE) {
+ frame->duration = gst_video_decoder_get_frame_duration (decoder, frame);
+ }
+
+ if (GST_CLOCK_TIME_IS_VALID (priv->last_timestamp)) {
+ if (frame->pts < priv->last_timestamp) {
+ GST_WARNING_OBJECT (decoder,
+ "decreasing timestamp (%" GST_TIME_FORMAT " < %"
+ GST_TIME_FORMAT ")",
+ GST_TIME_ARGS (frame->pts), GST_TIME_ARGS (priv->last_timestamp));
+ }
+ }
+ priv->last_timestamp = frame->pts;
+
+ return;
+
+ /* ERRORS */
+no_output_buffer:
+ {
+ GST_ERROR_OBJECT (decoder, "No buffer to output !");
+ }
+}
+
+static void
+gst_video_decoder_do_finish_frame (GstVideoDecoder * dec,
+ GstVideoCodecFrame * frame)
+{
+ /* unref once from the list */
+ dec->priv->frames = g_list_remove (dec->priv->frames, frame);
+ gst_video_codec_frame_unref (frame);
+
+ /* unref because this function takes ownership */
+ gst_video_codec_frame_unref (frame);
+}
+
+/**
+ * gst_video_decoder_drop_frame:
+ * @dec: a #GstVideoDecoder
+ * @frame: (transfer full): the #GstVideoCodecFrame to drop
+ *
+ * Similar to gst_video_decoder_finish_frame(), but drops @frame in any
+ * case and posts a QoS message with the frame's details on the bus.
+ * In any case, the frame is considered finished and released.
+ *
+ * Returns: a #GstFlowReturn, usually GST_FLOW_OK.
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_video_decoder_drop_frame (GstVideoDecoder * dec, GstVideoCodecFrame * frame)
+{
+ GstClockTime stream_time, jitter, earliest_time, qostime, timestamp;
+ GstSegment *segment;
+ GstMessage *qos_msg;
+ gdouble proportion;
+
+ GST_LOG_OBJECT (dec, "drop frame %p", frame);
+
+ GST_VIDEO_DECODER_STREAM_LOCK (dec);
+
+ gst_video_decoder_prepare_finish_frame (dec, frame);
+
+ GST_DEBUG_OBJECT (dec, "dropping frame %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (frame->pts));
+
+ dec->priv->dropped++;
+
+ /* post QoS message */
+ timestamp = frame->pts;
+ proportion = dec->priv->proportion;
+ segment = &dec->output_segment;
+ stream_time =
+ gst_segment_to_stream_time (segment, GST_FORMAT_TIME, timestamp);
+ qostime = gst_segment_to_running_time (segment, GST_FORMAT_TIME, timestamp);
+ earliest_time = dec->priv->earliest_time;
+ jitter = GST_CLOCK_DIFF (qostime, earliest_time);
+ qos_msg =
+ gst_message_new_qos (GST_OBJECT_CAST (dec), FALSE, qostime, stream_time,
+ timestamp, GST_CLOCK_TIME_NONE);
+ gst_message_set_qos_values (qos_msg, jitter, proportion, 1000000);
+ gst_message_set_qos_stats (qos_msg, GST_FORMAT_BUFFERS,
+ dec->priv->processed, dec->priv->dropped);
+ gst_element_post_message (GST_ELEMENT_CAST (dec), qos_msg);
+
+ /* now free the frame */
+ gst_video_decoder_do_finish_frame (dec, frame);
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (dec);
+
+ return GST_FLOW_OK;
+}
+
+/**
+ * gst_video_decoder_finish_frame:
+ * @decoder: a #GstVideoDecoder
+ * @frame: (transfer full): a decoded #GstVideoCodecFrame
+ *
+ * @frame should have a valid decoded data buffer, whose metadata fields
+ * are then appropriately set according to frame data and pushed downstream.
+ * If no output data is provided, @frame is considered skipped.
+ * In any case, the frame is considered finished and released.
+ *
+ * Returns: a #GstFlowReturn resulting from sending data downstream
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_video_decoder_finish_frame (GstVideoDecoder * decoder,
+ GstVideoCodecFrame * frame)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GstBuffer *output_buffer;
+ GstFlowReturn ret = GST_FLOW_OK;
+ guint64 start, stop;
+ GstSegment *segment;
+
+ GST_LOG_OBJECT (decoder, "finish frame %p", frame);
+
+ if (G_UNLIKELY (priv->output_state_changed || (priv->output_state
+ && gst_pad_check_reconfigure (decoder->srcpad))))
+ gst_video_decoder_set_src_caps (decoder);
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ gst_video_decoder_prepare_finish_frame (decoder, frame);
+ priv->processed++;
+ /* no buffer data means this frame is skipped */
+ if (!frame->output_buffer || GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY (frame)) {
+ GST_DEBUG_OBJECT (decoder, "skipping frame %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (frame->pts));
+ goto done;
+ }
+
+ output_buffer = gst_buffer_make_writable (frame->output_buffer);
+ frame->output_buffer = NULL;
+
+ GST_BUFFER_FLAG_UNSET (output_buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+
+ if (priv->discont) {
+ GST_BUFFER_FLAG_SET (output_buffer, GST_BUFFER_FLAG_DISCONT);
+ priv->discont = FALSE;
+ }
+
+ /* Check for clipping */
+ start = frame->pts;
+ stop = frame->pts + frame->duration;
+
+ segment = &decoder->output_segment;
+ if (gst_segment_clip (segment, GST_FORMAT_TIME, start, stop, &start, &stop)) {
+ GST_BUFFER_TIMESTAMP (output_buffer) = start;
+ GST_BUFFER_DURATION (output_buffer) = stop - start;
+ GST_LOG_OBJECT (decoder,
+ "accepting buffer inside segment: %" GST_TIME_FORMAT " %"
+ GST_TIME_FORMAT " seg %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT
+ " time %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (output_buffer)),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (output_buffer) +
+ GST_BUFFER_DURATION (output_buffer)),
+ GST_TIME_ARGS (segment->start), GST_TIME_ARGS (segment->stop),
+ GST_TIME_ARGS (segment->time));
+ } else {
+ GST_LOG_OBJECT (decoder,
+ "dropping buffer outside segment: %" GST_TIME_FORMAT
+ " %" GST_TIME_FORMAT
+ " seg %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT
+ " time %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (frame->pts),
+ GST_TIME_ARGS (frame->pts + frame->duration),
+ GST_TIME_ARGS (segment->start),
+ GST_TIME_ARGS (segment->stop), GST_TIME_ARGS (segment->time));
+ gst_buffer_unref (output_buffer);
+ ret = GST_FLOW_OK;
+ goto done;
+ }
+
+ GST_BUFFER_OFFSET (output_buffer) = GST_BUFFER_OFFSET_NONE;
+ GST_BUFFER_OFFSET_END (output_buffer) = GST_BUFFER_OFFSET_NONE;
+
+ /* update rate estimate */
+ priv->bytes_out += gst_buffer_get_size (output_buffer);
+ if (GST_CLOCK_TIME_IS_VALID (frame->duration)) {
+ priv->time += frame->duration;
+ } else {
+ /* FIXME : Use difference between current and previous outgoing
+ * timestamp, and relate to difference between current and previous
+ * bytes */
+ /* better none than nothing valid */
+ priv->time = GST_CLOCK_TIME_NONE;
+ }
+
+ GST_LOG_OBJECT (decoder, "pushing frame ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (output_buffer)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (output_buffer)));
+
+ /* we got data, so note things are looking up again */
+ /* FIXME : Shouldn't we avoid going under zero ? */
+ if (G_UNLIKELY (priv->error_count))
+ priv->error_count--;
+ if (decoder->output_segment.rate < 0.0) {
+ GST_LOG_OBJECT (decoder, "queued buffer");
+ priv->queued = g_list_prepend (priv->queued, output_buffer);
+ } else {
+ ret = gst_pad_push (decoder->srcpad, output_buffer);
+ }
+
+done:
+
+ gst_video_decoder_do_finish_frame (decoder, frame);
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return ret;
+}
+
+/**
+ * gst_video_decoder_add_to_frame:
+ * @decoder: a #GstVideoDecoder
+ * @n_bytes: an encoded #GstVideoCodecFrame
+ *
+ * Removes next @n_bytes of input data and adds it to currently parsed frame.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_decoder_add_to_frame (GstVideoDecoder * decoder, int n_bytes)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GstBuffer *buf;
+
+ GST_LOG_OBJECT (decoder, "add %d bytes to frame", n_bytes);
+
+ if (n_bytes == 0)
+ return;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ if (gst_adapter_available (priv->output_adapter) == 0) {
+ priv->frame_offset =
+ priv->input_offset - gst_adapter_available (priv->input_adapter);
+ }
+ buf = gst_adapter_take_buffer (priv->input_adapter, n_bytes);
+
+ gst_adapter_push (priv->output_adapter, buf);
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+}
+
+static guint64
+gst_video_decoder_get_timestamp (GstVideoDecoder * decoder, int picture_number)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GstVideoCodecState *state = priv->output_state;
+
+ if (state->info.fps_d == 0 || state->info.fps_n == 0) {
+ return -1;
+ }
+ if (picture_number < priv->base_picture_number) {
+ return priv->timestamp_offset -
+ (gint64) gst_util_uint64_scale (priv->base_picture_number
+ - picture_number, state->info.fps_d * GST_SECOND, state->info.fps_n);
+ } else {
+ return priv->timestamp_offset +
+ gst_util_uint64_scale (picture_number -
+ priv->base_picture_number, state->info.fps_d * GST_SECOND,
+ state->info.fps_n);
+ }
+}
+
+static guint64
+gst_video_decoder_get_frame_duration (GstVideoDecoder * decoder,
+ GstVideoCodecFrame * frame)
+{
+ GstVideoCodecState *state = decoder->priv->output_state;
+
+ if (state->info.fps_d == 0 || state->info.fps_n == 0) {
+ return GST_CLOCK_TIME_NONE;
+ }
+
+ /* FIXME: For interlaced frames this needs to take into account
+ * the number of valid fields in the frame
+ */
+
+ return gst_util_uint64_scale (GST_SECOND, state->info.fps_d,
+ state->info.fps_n);
+}
+
+/**
+ * gst_video_decoder_have_frame:
+ * @decoder: a #GstVideoDecoder
+ *
+ * Gathers all data collected for currently parsed frame, gathers corresponding
+ * metadata and passes it along for further processing, i.e. @handle_frame.
+ *
+ * Returns: a #GstFlowReturn
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_video_decoder_have_frame (GstVideoDecoder * decoder)
+{
+ GstBuffer *buffer;
+ int n_available;
+ GstClockTime timestamp;
+ GstClockTime duration;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ GST_LOG_OBJECT (decoder, "have_frame");
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ n_available = gst_adapter_available (decoder->priv->output_adapter);
+ if (n_available) {
+ buffer =
+ gst_adapter_take_buffer (decoder->priv->output_adapter, n_available);
+ } else {
+ buffer = gst_buffer_new_and_alloc (0);
+ }
+
+ decoder->priv->current_frame->input_buffer = buffer;
+
+ gst_video_decoder_get_timestamp_at_offset (decoder,
+ decoder->priv->frame_offset, &timestamp, &duration);
+
+ GST_BUFFER_TIMESTAMP (buffer) = timestamp;
+ GST_BUFFER_DURATION (buffer) = duration;
+
+ GST_LOG_OBJECT (decoder, "collected frame size %d, "
+ "ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT,
+ n_available, GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration));
+
+ ret = gst_video_decoder_have_frame_2 (decoder);
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return ret;
+}
+
+static GstFlowReturn
+gst_video_decoder_have_frame_2 (GstVideoDecoder * decoder)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GstVideoCodecFrame *frame = priv->current_frame;
+ GstVideoDecoderClass *decoder_class;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ decoder_class = GST_VIDEO_DECODER_GET_CLASS (decoder);
+
+ /* FIXME : This should only have to be checked once (either the subclass has an
+ * implementation, or it doesn't) */
+ g_return_val_if_fail (decoder_class->handle_frame != NULL, GST_FLOW_ERROR);
+
+ /* capture frames and queue for later processing */
+ if (decoder->output_segment.rate < 0.0 && !priv->process) {
+ priv->parse_gather = g_list_prepend (priv->parse_gather, frame);
+ goto exit;
+ }
+
+ frame->distance_from_sync = priv->distance_from_sync;
+ priv->distance_from_sync++;
+ frame->pts = GST_BUFFER_TIMESTAMP (frame->input_buffer);
+ frame->duration = GST_BUFFER_DURATION (frame->input_buffer);
+
+ /* For keyframes, DTS = PTS */
+ if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame))
+ frame->dts = frame->pts;
+
+ GST_LOG_OBJECT (decoder, "pts %" GST_TIME_FORMAT, GST_TIME_ARGS (frame->pts));
+ GST_LOG_OBJECT (decoder, "dts %" GST_TIME_FORMAT, GST_TIME_ARGS (frame->dts));
+ GST_LOG_OBJECT (decoder, "dist %d", frame->distance_from_sync);
+ priv->frames = g_list_append (priv->frames, frame);
+ frame->deadline =
+ gst_segment_to_running_time (&decoder->input_segment, GST_FORMAT_TIME,
+ frame->pts);
+
+ /* do something with frame */
+ gst_video_codec_frame_ref (frame);
+ ret = decoder_class->handle_frame (decoder, frame);
+ if (ret != GST_FLOW_OK)
+ GST_DEBUG_OBJECT (decoder, "flow error %s", gst_flow_get_name (ret));
+
+exit:
+ /* current frame has either been added to parse_gather or sent to
+ handle frame so there is no need to unref it */
+
+ /* create new frame */
+ priv->current_frame = gst_video_decoder_new_frame (decoder);
+ return ret;
+}
+
+
+/**
+ * gst_video_decoder_get_output_state:
+ * @decoder: a #GstVideoDecoder
+ *
+ * Get the #GstVideoCodecState currently describing the output stream.
+ *
+ * Returns: (transfer full): #GstVideoCodecState describing format of video data.
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecState *
+gst_video_decoder_get_output_state (GstVideoDecoder * decoder)
+{
+ GstVideoCodecState *state = NULL;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ if (decoder->priv->output_state)
+ state = gst_video_codec_state_ref (decoder->priv->output_state);
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return state;
+}
+
+/**
+ * gst_video_decoder_set_output_state:
+ * @decoder: a #GstVideoDecoder
+ * @fmt: a #GstVideoFormat
+ * @width: The width in pixels
+ * @height: The height in pixels
+ * @reference: (allow-none) (transfer none): An optional reference #GstVideoCodecState
+ *
+ * Creates a new #GstVideoCodecState with the specified @fmt, @width and @height
+ * as the output state for the decoder.
+ * Any previously set output state on @decoder will be replaced by the newly
+ * created one.
+ *
+ * If the subclass wishes to copy over existing fields (like pixel aspec ratio,
+ * or framerate) from an existing #GstVideoCodecState, it can be provided as a
+ * @reference.
+ *
+ * If the subclass wishes to override some fields from the output state (like
+ * pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.
+ *
+ * The new output state will only take effect (set on pads and buffers) starting
+ * from the next call to #gst_video_decoder_finish_frame().
+ *
+ * Returns: (transfer full): the newly configured output state.
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecState *
+gst_video_decoder_set_output_state (GstVideoDecoder * decoder,
+ GstVideoFormat fmt, guint width, guint height,
+ GstVideoCodecState * reference)
+{
+ GstVideoDecoderPrivate *priv = decoder->priv;
+ GstVideoCodecState *state;
+
+ GST_DEBUG_OBJECT (decoder, "fmt:%d, width:%d, height:%d, reference:%p",
+ fmt, width, height, reference);
+
+ /* Create the new output state */
+ state = _new_output_state (fmt, width, height, reference);
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ /* Replace existing output state by new one */
+ if (priv->output_state)
+ gst_video_codec_state_unref (priv->output_state);
+ priv->output_state = gst_video_codec_state_ref (state);
+
+ priv->output_state_changed = TRUE;
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return state;
+}
+
+
+/**
+ * gst_video_decoder_get_oldest_frame:
+ * @decoder: a #GstVideoDecoder
+ *
+ * Get the oldest pending unfinished #GstVideoCodecFrame
+ *
+ * Returns: (transfer full): oldest pending unfinished #GstVideoCodecFrame.
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecFrame *
+gst_video_decoder_get_oldest_frame (GstVideoDecoder * decoder)
+{
+ GstVideoCodecFrame *frame = NULL;
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ if (decoder->priv->frames)
+ frame = gst_video_codec_frame_ref (decoder->priv->frames->data);
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return (GstVideoCodecFrame *) frame;
+}
+
+/**
+ * gst_video_decoder_get_frame:
+ * @decoder: a #GstVideoDecoder
+ * @frame_number: system_frame_number of a frame
+ *
+ * Get a pending unfinished #GstVideoCodecFrame
+ *
+ * Returns: (transfer none): pending unfinished #GstVideoCodecFrame identified by @frame_number.
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecFrame *
+gst_video_decoder_get_frame (GstVideoDecoder * decoder, int frame_number)
+{
+ GList *g;
+ GstVideoCodecFrame *frame = NULL;
+
+ GST_DEBUG_OBJECT (decoder, "frame_number : %d", frame_number);
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ for (g = decoder->priv->frames; g; g = g->next) {
+ GstVideoCodecFrame *tmp = g->data;
+
+ if (tmp->system_frame_number == frame_number) {
+ frame = tmp;
+ break;
+ }
+ }
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return frame;
+}
+
+static gboolean
+gst_video_decoder_decide_allocation_default (GstVideoDecoder * decoder,
+ GstQuery * query)
+{
+ GstCaps *outcaps;
+ GstBufferPool *pool = NULL;
+ guint size, min, max;
+ GstAllocator *allocator = NULL;
+ GstAllocationParams params;
+ GstStructure *config;
+ gboolean update_pool, update_allocator;
+ GstVideoInfo vinfo;
+
+ gst_query_parse_allocation (query, &outcaps, NULL);
+ gst_video_info_init (&vinfo);
+ gst_video_info_from_caps (&vinfo, outcaps);
+
+ /* we got configuration from our peer or the decide_allocation method,
+ * parse them */
+ if (gst_query_get_n_allocation_params (query) > 0) {
+ /* try the allocator */
+ gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+ update_allocator = TRUE;
+ } else {
+ allocator = NULL;
+ gst_allocation_params_init (&params);
+ update_allocator = FALSE;
+ }
+
+ if (gst_query_get_n_allocation_pools (query) > 0) {
+ gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
+ size = MAX (size, vinfo.size);
+ update_pool = TRUE;
+ } else {
+ pool = NULL;
+ size = vinfo.size;
+ min = max = 0;
+
+ update_pool = FALSE;
+ }
+
+ if (pool == NULL) {
+ /* no pool, we can make our own */
+ GST_DEBUG_OBJECT (decoder, "no pool, making new pool");
+ pool = gst_video_buffer_pool_new ();
+ }
+
+ /* now configure */
+ config = gst_buffer_pool_get_config (pool);
+ gst_buffer_pool_config_set_params (config, outcaps, size, min, max);
+ gst_buffer_pool_config_set_allocator (config, allocator, &params);
+ gst_buffer_pool_set_config (pool, config);
+
+ if (update_allocator)
+ gst_query_set_nth_allocation_param (query, 0, allocator, &params);
+ else
+ gst_query_add_allocation_param (query, allocator, &params);
+ if (allocator)
+ gst_allocator_unref (allocator);
+
+ if (update_pool)
+ gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
+ else
+ gst_query_add_allocation_pool (query, pool, size, min, max);
+
+ if (pool)
+ gst_object_unref (pool);
+
+ return TRUE;
+}
+
+/**
+ * gst_video_decoder_set_src_caps:
+ * @decoder: a #GstVideoDecoder
+ *
+ * Sets src pad caps according to currently configured #GstVideoCodecState.
+ *
+ * Returns: #TRUE if the caps were accepted downstream, else #FALSE.
+ *
+ * Since: 0.10.36
+ */
+static gboolean
+gst_video_decoder_set_src_caps (GstVideoDecoder * decoder)
+{
+ GstVideoCodecState *state = decoder->priv->output_state;
+ GstVideoDecoderClass *klass;
+ GstQuery *query = NULL;
+ GstBufferPool *pool = NULL;
+ GstAllocator *allocator;
+ GstAllocationParams params;
+ gboolean ret = TRUE;
+
+ g_return_val_if_fail (GST_VIDEO_INFO_WIDTH (&state->info) != 0, FALSE);
+ g_return_val_if_fail (GST_VIDEO_INFO_HEIGHT (&state->info) != 0, FALSE);
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ klass = GST_VIDEO_DECODER_GET_CLASS (decoder);
+
+ GST_DEBUG_OBJECT (decoder, "output_state par %d/%d fps %d/%d",
+ state->info.par_n, state->info.par_d,
+ state->info.fps_n, state->info.fps_d);
+
+ if (G_UNLIKELY (state->caps == NULL))
+ state->caps = gst_video_info_to_caps (&state->info);
+
+ GST_DEBUG_OBJECT (decoder, "setting caps %" GST_PTR_FORMAT, state->caps);
+
+ ret = gst_pad_set_caps (decoder->srcpad, state->caps);
+ if (!ret)
+ goto done;
+ decoder->priv->output_state_changed = FALSE;
+
+ /* Negotiate pool */
+ query = gst_query_new_allocation (state->caps, TRUE);
+
+ if (!gst_pad_peer_query (decoder->srcpad, query)) {
+ GST_DEBUG_OBJECT (decoder, "didn't get downstream ALLOCATION hints");
+ }
+
+ g_assert (klass->decide_allocation != NULL);
+ ret = klass->decide_allocation (decoder, query);
+
+ GST_DEBUG_OBJECT (decoder, "ALLOCATION (%d) params: %" GST_PTR_FORMAT, ret,
+ query);
+
+ if (!ret)
+ goto no_decide_allocation;
+
+ /* we got configuration from our peer or the decide_allocation method,
+ * parse them */
+ if (gst_query_get_n_allocation_params (query) > 0) {
+ gst_query_parse_nth_allocation_param (query, 0, &allocator, &params);
+ } else {
+ allocator = NULL;
+ gst_allocation_params_init (&params);
+ }
+
+ if (gst_query_get_n_allocation_pools (query) > 0)
+ gst_query_parse_nth_allocation_pool (query, 0, &pool, NULL, NULL, NULL);
+ if (!pool) {
+ if (allocator)
+ gst_allocator_unref (allocator);
+ ret = FALSE;
+ goto no_decide_allocation;
+ }
+
+ if (decoder->priv->allocator)
+ gst_allocator_unref (decoder->priv->allocator);
+ decoder->priv->allocator = allocator;
+ decoder->priv->params = params;
+
+ if (decoder->priv->pool) {
+ gst_buffer_pool_set_active (decoder->priv->pool, FALSE);
+ gst_object_unref (decoder->priv->pool);
+ }
+ decoder->priv->pool = pool;
+
+ /* and activate */
+ gst_buffer_pool_set_active (pool, TRUE);
+
+done:
+ if (query)
+ gst_query_unref (query);
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return ret;
+
+ /* Errors */
+no_decide_allocation:
+ {
+ GST_WARNING_OBJECT (decoder, "Subclass failed to decide allocation");
+ goto done;
+ }
+}
+
+/**
+ * gst_video_decoder_alloc_output_buffer:
+ * @decoder: a #GstVideoDecoder
+ *
+ * Helper function that uses @gst_pad_alloc_buffer_and_set_caps()
+ * to allocate a buffer to hold a video frame for @decoder's
+ * current #GstVideoCodecState.
+ *
+ * Returns: (transfer full): allocated buffer
+ *
+ * Since: 0.10.36
+ */
+GstBuffer *
+gst_video_decoder_alloc_output_buffer (GstVideoDecoder * decoder)
+{
+ GstBuffer *buffer;
+
+ GST_DEBUG ("alloc src buffer");
+
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+ if (G_UNLIKELY (decoder->priv->output_state_changed
+ || (decoder->priv->output_state
+ && gst_pad_check_reconfigure (decoder->srcpad))))
+ gst_video_decoder_set_src_caps (decoder);
+
+ gst_buffer_pool_acquire_buffer (decoder->priv->pool, &buffer, NULL);
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return buffer;
+}
+
+/**
+ * gst_video_decoder_alloc_output_frame:
+ * @decoder: a #GstVideoDecoder
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Helper function that uses @gst_pad_alloc_buffer_and_set_caps()
+ * to allocate a buffer to hold a video frame for @decoder's
+ * current #GstVideoCodecState. Subclass should already have configured video state
+ * and set src pad caps.
+ *
+ * Returns: result from pad alloc call
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_video_decoder_alloc_output_frame (GstVideoDecoder *
+ decoder, GstVideoCodecFrame * frame)
+{
+ GstFlowReturn flow_ret;
+ GstVideoCodecState *state = decoder->priv->output_state;
+ int num_bytes = GST_VIDEO_INFO_SIZE (&state->info);
+
+ g_return_val_if_fail (num_bytes != 0, GST_FLOW_ERROR);
+
+ if (G_UNLIKELY (decoder->priv->output_state_changed
+ || (decoder->priv->output_state
+ && gst_pad_check_reconfigure (decoder->srcpad))))
+ gst_video_decoder_set_src_caps (decoder);
+
+ GST_LOG_OBJECT (decoder, "alloc buffer size %d", num_bytes);
+ GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+
+ flow_ret = gst_buffer_pool_acquire_buffer (decoder->priv->pool,
+ &frame->output_buffer, NULL);
+
+ GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+
+ return flow_ret;
+}
+
+/**
+ * gst_video_decoder_get_max_decode_time:
+ * @decoder: a #GstVideoDecoder
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Determines maximum possible decoding time for @frame that will
+ * allow it to decode and arrive in time (as determined by QoS events).
+ * In particular, a negative result means decoding in time is no longer possible
+ * and should therefore occur as soon/skippy as possible.
+ *
+ * Returns: max decoding time.
+ *
+ * Since: 0.10.36
+ */
+GstClockTimeDiff
+gst_video_decoder_get_max_decode_time (GstVideoDecoder *
+ decoder, GstVideoCodecFrame * frame)
+{
+ GstClockTimeDiff deadline;
+ GstClockTime earliest_time;
+
+ GST_OBJECT_LOCK (decoder);
+ earliest_time = decoder->priv->earliest_time;
+ if (GST_CLOCK_TIME_IS_VALID (earliest_time))
+ deadline = GST_CLOCK_DIFF (earliest_time, frame->deadline);
+ else
+ deadline = G_MAXINT64;
+
+ GST_LOG_OBJECT (decoder, "earliest %" GST_TIME_FORMAT
+ ", frame deadline %" GST_TIME_FORMAT ", deadline %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (earliest_time), GST_TIME_ARGS (frame->deadline),
+ GST_TIME_ARGS (deadline));
+
+ GST_OBJECT_UNLOCK (decoder);
+
+ return deadline;
+}
+
+GstFlowReturn
+_gst_video_decoder_error (GstVideoDecoder * dec, gint weight,
+ GQuark domain, gint code, gchar * txt, gchar * dbg, const gchar * file,
+ const gchar * function, gint line)
+{
+ if (txt)
+ GST_WARNING_OBJECT (dec, "error: %s", txt);
+ if (dbg)
+ GST_WARNING_OBJECT (dec, "error: %s", dbg);
+ dec->priv->error_count += weight;
+ dec->priv->discont = TRUE;
+ if (dec->priv->max_errors < dec->priv->error_count) {
+ gst_element_message_full (GST_ELEMENT (dec), GST_MESSAGE_ERROR,
+ domain, code, txt, dbg, file, function, line);
+ return GST_FLOW_ERROR;
+ } else {
+ return GST_FLOW_OK;
+ }
+}
+
+/**
+ * gst_video_decoder_set_max_errors:
+ * @dec: a #GstVideoDecoder
+ * @num: max tolerated errors
+ *
+ * Sets numbers of tolerated decoder errors, where a tolerated one is then only
+ * warned about, but more than tolerated will lead to fatal error. Default
+ * is set to GST_VIDEO_DECODER_MAX_ERRORS.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_decoder_set_max_errors (GstVideoDecoder * dec, gint num)
+{
+ g_return_if_fail (GST_IS_VIDEO_DECODER (dec));
+
+ dec->priv->max_errors = num;
+}
+
+/**
+ * gst_video_decoder_get_max_errors:
+ * @dec: a #GstVideoDecoder
+ *
+ * Returns: currently configured decoder tolerated error count.
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_video_decoder_get_max_errors (GstVideoDecoder * dec)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_DECODER (dec), 0);
+
+ return dec->priv->max_errors;
+}
+
+/**
+ * gst_video_decoder_set_packetized:
+ * @decoder: a #GstVideoDecoder
+ * @packetized: whether the input data should be considered as packetized.
+ *
+ * Allows baseclass to consider input data as packetized or not. If the
+ * input is packetized, then the @parse method will not be called.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_decoder_set_packetized (GstVideoDecoder * decoder,
+ gboolean packetized)
+{
+ decoder->priv->packetized = packetized;
+}
+
+/**
+ * gst_video_decoder_get_packetized:
+ * @decoder: a #GstVideoDecoder
+ *
+ * Queries whether input data is considered packetized or not by the
+ * base class.
+ *
+ * Returns: TRUE if input data is considered packetized.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_decoder_get_packetized (GstVideoDecoder * decoder)
+{
+ return decoder->priv->packetized;
+}
+
+/**
+ * gst_video_decoder_set_estimate_rate:
+ * @dec: a #GstVideoDecoder
+ * @enabled: whether to enable byte to time conversion
+ *
+ * Allows baseclass to perform byte to time estimated conversion.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_decoder_set_estimate_rate (GstVideoDecoder * dec, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_VIDEO_DECODER (dec));
+
+ dec->priv->do_estimate_rate = enabled;
+}
+
+/**
+ * gst_video_decoder_get_estimate_rate:
+ * @dec: a #GstVideoDecoder
+ *
+ * Returns: currently configured byte to time conversion setting
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_decoder_get_estimate_rate (GstVideoDecoder * dec)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_DECODER (dec), 0);
+
+ return dec->priv->do_estimate_rate;
+}
+
+/**
+ * gst_video_decoder_set_latency:
+ * @decoder: a #GstVideoDecoder
+ * @min_latency: minimum latency
+ * @max_latency: maximum latency
+ *
+ * Informs baseclass of encoding latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_decoder_set_latency (GstVideoDecoder * decoder,
+ GstClockTime min_latency, GstClockTime max_latency)
+{
+ g_return_if_fail (GST_CLOCK_TIME_IS_VALID (min_latency));
+ g_return_if_fail (max_latency >= min_latency);
+
+ GST_OBJECT_LOCK (decoder);
+ decoder->priv->min_latency = min_latency;
+ decoder->priv->max_latency = max_latency;
+ GST_OBJECT_UNLOCK (decoder);
+
+ gst_element_post_message (GST_ELEMENT_CAST (decoder),
+ gst_message_new_latency (GST_OBJECT_CAST (decoder)));
+}
+
+/**
+ * gst_video_decoder_get_latency:
+ * @decoder: a #GstVideoDecoder
+ * @min_latency: (out) (allow-none): the configured minimum latency
+ * @max_latency: (out) (allow-none): the configured maximum latency
+ *
+ * Returns the configured encoding latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_decoder_get_latency (GstVideoDecoder * decoder,
+ GstClockTime * min_latency, GstClockTime * max_latency)
+{
+ GST_OBJECT_LOCK (decoder);
+ if (min_latency)
+ *min_latency = decoder->priv->min_latency;
+ if (max_latency)
+ *max_latency = decoder->priv->max_latency;
+ GST_OBJECT_UNLOCK (decoder);
+}
diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h
new file mode 100644
index 0000000..2bd2940
--- /dev/null
+++ b/gst-libs/gst/video/gstvideodecoder.h
@@ -0,0 +1,367 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ * Copyright (C) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.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., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _GST_VIDEO_DECODER_H_
+#define _GST_VIDEO_DECODER_H_
+
+#include <gst/base/gstadapter.h>
+#include <gst/video/video.h>
+#include <gst/video/gstvideoutils.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_VIDEO_DECODER \
+ (gst_video_decoder_get_type())
+#define GST_VIDEO_DECODER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VIDEO_DECODER,GstVideoDecoder))
+#define GST_VIDEO_DECODER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VIDEO_DECODER,GstVideoDecoderClass))
+#define GST_VIDEO_DECODER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_VIDEO_DECODER,GstVideoDecoderClass))
+#define GST_IS_VIDEO_DECODER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_DECODER))
+#define GST_IS_VIDEO_DECODER_CLASS(obj) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VIDEO_DECODER))
+
+/**
+ * GST_VIDEO_DECODER_SINK_NAME:
+ *
+ * The name of the templates for the sink pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_SINK_NAME "sink"
+/**
+ * GST_VIDEO_DECODER_SRC_NAME:
+ *
+ * The name of the templates for the source pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_SRC_NAME "src"
+
+/**
+ * GST_VIDEO_DECODER_SRC_PAD:
+ * @obj: a #GstVideoDecoder
+ *
+ * Gives the pointer to the source #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_SRC_PAD(obj) (((GstVideoDecoder *) (obj))->srcpad)
+
+/**
+ * GST_VIDEO_DECODER_SINK_PAD:
+ * @obj: a #GstVideoDecoder
+ *
+ * Gives the pointer to the sink #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_SINK_PAD(obj) (((GstVideoDecoder *) (obj))->sinkpad)
+/**
+ * GST_VIDEO_DECODER_FLOW_NEED_DATA:
+ *
+ * Returned while parsing to indicate more data is needed.
+ *
+ * Since: 0.10.36
+ **/
+#define GST_VIDEO_DECODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
+
+/**
+ * GST_VIDEO_DECODER_INPUT_SEGMENT:
+ * @obj: base decoder instance
+ *
+ * Gives the segment of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_INPUT_SEGMENT(obj) (GST_VIDEO_DECODER_CAST (obj)->input_segment)
+
+/**
+ * GST_VIDEO_DECODER_OUTPUT_SEGMENT:
+ * @obj: base decoder instance
+ *
+ * Gives the segment of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_OUTPUT_SEGMENT(obj) (GST_VIDEO_DECODER_CAST (obj)->output_segment)
+
+/**
+ * GST_VIDEO_DECODER_STREAM_LOCK:
+ * @decoder: video decoder instance
+ *
+ * Obtain a lock to protect the decoder function from concurrent access.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_STREAM_LOCK(decoder) g_rec_mutex_lock (&GST_VIDEO_DECODER (decoder)->stream_lock)
+
+/**
+ * GST_VIDEO_DECODER_STREAM_UNLOCK:
+ * @decoder: video decoder instance
+ *
+ * Release the lock that protects the decoder function from concurrent access.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_STREAM_UNLOCK(decoder) g_rec_mutex_unlock (&GST_VIDEO_DECODER (decoder)->stream_lock)
+
+typedef struct _GstVideoDecoder GstVideoDecoder;
+typedef struct _GstVideoDecoderClass GstVideoDecoderClass;
+typedef struct _GstVideoDecoderPrivate GstVideoDecoderPrivate;
+
+
+/* do not use this one, use macro below */
+GstFlowReturn _gst_video_decoder_error (GstVideoDecoder *dec, gint weight,
+ GQuark domain, gint code,
+ gchar *txt, gchar *debug,
+ const gchar *file, const gchar *function,
+ gint line);
+
+/**
+ * GST_VIDEO_DECODER_ERROR:
+ * @el: the base video decoder element that generates the error
+ * @weight: element defined weight of the error, added to error count
+ * @domain: like CORE, LIBRARY, RESOURCE or STREAM (see #gstreamer-GstGError)
+ * @code: error code defined for that domain (see #gstreamer-GstGError)
+ * @text: the message to display (format string and args enclosed in
+ * parentheses)
+ * @debug: debugging information for the message (format string and args
+ * enclosed in parentheses)
+ * @ret: variable to receive return value
+ *
+ * Utility function that video decoder elements can use in case they encountered
+ * a data processing error that may be fatal for the current "data unit" but
+ * need not prevent subsequent decoding. Such errors are counted and if there
+ * are too many, as configured in the context's max_errors, the pipeline will
+ * post an error message and the application will be requested to stop further
+ * media processing. Otherwise, it is considered a "glitch" and only a warning
+ * is logged. In either case, @ret is set to the proper value to
+ * return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_ERROR(el, w, domain, code, text, debug, ret) \
+G_STMT_START { \
+ gchar *__txt = _gst_element_error_printf text; \
+ gchar *__dbg = _gst_element_error_printf debug; \
+ GstVideoDecoder *dec = GST_VIDEO_DECODER (el); \
+ ret = _gst_video_decoder_error (dec, w, GST_ ## domain ## _ERROR, \
+ GST_ ## domain ## _ERROR_ ## code, __txt, __dbg, __FILE__, \
+ GST_FUNCTION, __LINE__); \
+} G_STMT_END
+
+/**
+ * GST_VIDEO_DECODER_MAX_ERRORS:
+ *
+ * Default maximum number of errors tolerated before signaling error.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_DECODER_MAX_ERRORS 10
+
+
+/**
+ * GstVideoDecoder:
+ *
+ * The opaque #GstVideoDecoder data structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstVideoDecoder
+{
+ /*< private >*/
+ GstElement element;
+
+ /*< protected >*/
+ GstPad *sinkpad;
+ GstPad *srcpad;
+
+ /* protects all data processing, i.e. is locked
+ * in the chain function, finish_frame and when
+ * processing serialized events */
+ GRecMutex stream_lock;
+
+ /* MT-protected (with STREAM_LOCK) */
+ GstSegment input_segment;
+ GstSegment output_segment;
+
+ GstVideoDecoderPrivate *priv;
+
+ /* FIXME before moving to base */
+ void *padding[GST_PADDING_LARGE];
+};
+
+/**
+ * GstVideoDecoderClass:
+ * @open: Optional.
+ * Called when the element changes to GST_STATE_READY.
+ * Allows opening external resources.
+ * @close: Optional.
+ * Called when the element changes to GST_STATE_NULL.
+ * Allows closing external resources.
+ * @start: Optional.
+ * Called when the element starts processing.
+ * Allows opening external resources.
+ * @stop: Optional.
+ * Called when the element stops processing.
+ * Allows closing external resources.
+ * @set_format: Notifies subclass of incoming data format (caps).
+ * @parse: Required for non-packetized input.
+ * Allows chopping incoming data into manageable units (frames)
+ * for subsequent decoding.
+ * @reset: Optional.
+ * Allows subclass (decoder) to perform post-seek semantics reset.
+ * @handle_frame: Provides input data frame to subclass.
+ * @finish: Optional.
+ * Called to request subclass to dispatch any pending remaining
+ * data (e.g. at EOS).
+ * @sink_event: Optional.
+ * Event handler on the sink pad. This function should return
+ * TRUE if the event was handled and should be discarded
+ * (i.e. not unref'ed).
+ * @src_event: Optional.
+ * Event handler on the source pad. This function should return
+ * TRUE if the event was handled and should be discarded
+ * (i.e. not unref'ed).
+ * @decide_allocation: Optional.
+ * Setup the allocation parameters for allocating output
+ * buffers. The passed in query contains the result of the
+ * downstream allocation query.
+ *
+ * Subclasses can override any of the available virtual methods or not, as
+ * needed. At minimum @handle_frame needs to be overridden, and @set_format
+ * and likely as well. If non-packetized input is supported or expected,
+ * @parse needs to be overridden as well.
+ *
+ * Since: 0.10.36
+ */
+struct _GstVideoDecoderClass
+{
+ /*< private >*/
+ GstElementClass element_class;
+
+ /*< public >*/
+ gboolean (*open) (GstVideoDecoder *decoder);
+
+ gboolean (*close) (GstVideoDecoder *decoder);
+
+ gboolean (*start) (GstVideoDecoder *decoder);
+
+ gboolean (*stop) (GstVideoDecoder *decoder);
+
+ GstFlowReturn (*parse) (GstVideoDecoder *decoder,
+ GstVideoCodecFrame *frame,
+ GstAdapter *adapter,
+ gboolean at_eos);
+
+ gboolean (*set_format) (GstVideoDecoder *decoder,
+ GstVideoCodecState * state);
+
+ gboolean (*reset) (GstVideoDecoder *decoder,
+ gboolean hard);
+
+ GstFlowReturn (*finish) (GstVideoDecoder *decoder);
+
+ GstFlowReturn (*handle_frame) (GstVideoDecoder *decoder,
+ GstVideoCodecFrame *frame);
+
+ gboolean (*sink_event) (GstVideoDecoder *decoder,
+ GstEvent *event);
+
+ gboolean (*src_event) (GstVideoDecoder *decoder,
+ GstEvent *event);
+
+ gboolean (*decide_allocation) (GstVideoDecoder *decoder, GstQuery *query);
+
+
+ /*< private >*/
+ /* FIXME before moving to base */
+ void *padding[GST_PADDING_LARGE];
+};
+
+GType gst_video_decoder_get_type (void);
+
+/* Context parameters */
+void gst_video_decoder_set_packetized (GstVideoDecoder * decoder,
+ gboolean packetized);
+
+gboolean gst_video_decoder_get_packetized (GstVideoDecoder * decoder);
+
+void gst_video_decoder_set_estimate_rate (GstVideoDecoder * dec,
+ gboolean enabled);
+
+gint gst_video_decoder_get_estimate_rate (GstVideoDecoder * dec);
+
+void gst_video_decoder_set_max_errors (GstVideoDecoder * dec,
+ gint num);
+
+gint gst_video_decoder_get_max_errors (GstVideoDecoder * dec);
+
+void gst_video_decoder_set_latency (GstVideoDecoder *decoder,
+ GstClockTime min_latency,
+ GstClockTime max_latency);
+void gst_video_decoder_get_latency (GstVideoDecoder *decoder,
+ GstClockTime *min_latency,
+ GstClockTime *max_latency);
+
+
+/* Object methods */
+
+GstVideoCodecFrame *gst_video_decoder_get_frame (GstVideoDecoder *decoder,
+ int frame_number);
+
+GstVideoCodecFrame *gst_video_decoder_get_oldest_frame (GstVideoDecoder *decoder);
+
+/* Parsing related methods */
+void gst_video_decoder_add_to_frame (GstVideoDecoder *decoder,
+ int n_bytes);
+GstFlowReturn gst_video_decoder_have_frame (GstVideoDecoder *decoder);
+
+GstBuffer *gst_video_decoder_alloc_output_buffer (GstVideoDecoder * decoder);
+
+GstFlowReturn gst_video_decoder_alloc_output_frame (GstVideoDecoder *decoder,
+ GstVideoCodecFrame *frame);
+
+GstVideoCodecState *gst_video_decoder_set_output_state (GstVideoDecoder *decoder,
+ GstVideoFormat fmt, guint width, guint height,
+ GstVideoCodecState *reference);
+
+GstVideoCodecState *gst_video_decoder_get_output_state (GstVideoDecoder *decoder);
+
+GstClockTimeDiff gst_video_decoder_get_max_decode_time (GstVideoDecoder *decoder,
+ GstVideoCodecFrame *frame);
+
+GstFlowReturn gst_video_decoder_finish_frame (GstVideoDecoder *decoder,
+ GstVideoCodecFrame *frame);
+
+GstFlowReturn gst_video_decoder_drop_frame (GstVideoDecoder *dec,
+ GstVideoCodecFrame *frame);
+
+G_END_DECLS
+
+#endif
+
diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c
new file mode 100644
index 0000000..1f05f9d
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoencoder.c
@@ -0,0 +1,1693 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ * Copyright (C) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.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., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstvideoencoder
+ * @short_description: Base class for video encoders
+ * @see_also:
+ *
+ * This base class is for video encoders turning raw video into
+ * encoded video data.
+ *
+ * GstVideoEncoder and subclass should cooperate as follows.
+ * <orderedlist>
+ * <listitem>
+ * <itemizedlist><title>Configuration</title>
+ * <listitem><para>
+ * Initially, GstVideoEncoder calls @start when the encoder element
+ * is activated, which allows subclass to perform any global setup.
+ * </para></listitem>
+ * <listitem><para>
+ * GstVideoEncoder calls @set_format to inform subclass of the format
+ * of input video data that it is about to receive. Subclass should
+ * setup for encoding and configure base class as appropriate
+ * (e.g. latency). While unlikely, it might be called more than once,
+ * if changing input parameters require reconfiguration. Baseclass
+ * will ensure that processing of current configuration is finished.
+ * </para></listitem>
+ * <listitem><para>
+ * GstVideoEncoder calls @stop at end of all processing.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * <listitem>
+ * <itemizedlist>
+ * <title>Data processing</title>
+ * <listitem><para>
+ * Base class collects input data and metadata into a frame and hands
+ * this to subclass' @handle_frame.
+ * </para></listitem>
+ * <listitem><para>
+ * If codec processing results in encoded data, subclass should call
+ * @gst_video_encoder_finish_frame to have encoded data pushed
+ * downstream.
+ * </para></listitem>
+ * <listitem><para>
+ * If implemented, baseclass calls subclass @pre_push just prior to
+ * pushing to allow subclasses to modify some metadata on the buffer.
+ * If it returns GST_FLOW_OK, the buffer is pushed downstream.
+ * </para></listitem>
+ * <listitem><para>
+ * GstVideoEncoderClass will handle both srcpad and sinkpad events.
+ * Sink events will be passed to subclass if @event callback has been
+ * provided.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * <listitem>
+ * <itemizedlist><title>Shutdown phase</title>
+ * <listitem><para>
+ * GstVideoEncoder class calls @stop to inform the subclass that data
+ * parsing will be stopped.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * </orderedlist>
+ *
+ * Subclass is responsible for providing pad template caps for
+ * source and sink pads. The pads need to be named "sink" and "src". It should
+ * also be able to provide fixed src pad caps in @getcaps by the time it calls
+ * @gst_video_encoder_finish_frame.
+ *
+ * Things that subclass need to take care of:
+ * <itemizedlist>
+ * <listitem><para>Provide pad templates</para></listitem>
+ * <listitem><para>
+ * Provide source pad caps before pushing the first buffer
+ * </para></listitem>
+ * <listitem><para>
+ * Accept data in @handle_frame and provide encoded results to
+ * @gst_video_encoder_finish_frame.
+ * </para></listitem>
+ * </itemizedlist>
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* TODO
+ *
+ * * Change _set_output_format() to steal the reference of the provided caps
+ * * Calculate actual latency based on input/output timestamp/frame_number
+ * and if it exceeds the recorded one, save it and emit a GST_MESSAGE_LATENCY
+ */
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#include "gstvideoencoder.h"
+#include "gstvideoutils.h"
+
+#include <gst/video/gstvideometa.h>
+
+#include <string.h>
+
+GST_DEBUG_CATEGORY (videoencoder_debug);
+#define GST_CAT_DEFAULT videoencoder_debug
+
+#define GST_VIDEO_ENCODER_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_VIDEO_ENCODER, \
+ GstVideoEncoderPrivate))
+
+struct _GstVideoEncoderPrivate
+{
+ guint64 presentation_frame_number;
+ int distance_from_sync;
+
+ /* FIXME : (and introduce a context ?) */
+ gboolean drained;
+ gboolean at_eos;
+
+ gint64 min_latency;
+ gint64 max_latency;
+
+ GList *current_frame_events;
+
+ GList *headers;
+ gboolean new_headers; /* Whether new headers were just set */
+
+ GList *force_key_unit; /* List of pending forced keyunits */
+
+ guint64 system_frame_number;
+
+ GList *frames; /* Protected with OBJECT_LOCK */
+ GstVideoCodecState *input_state;
+ GstVideoCodecState *output_state;
+ gboolean output_state_changed;
+
+ gint64 bytes;
+ gint64 time;
+};
+
+typedef struct _ForcedKeyUnitEvent ForcedKeyUnitEvent;
+struct _ForcedKeyUnitEvent
+{
+ GstClockTime running_time;
+ gboolean pending; /* TRUE if this was requested already */
+ gboolean all_headers;
+ guint count;
+};
+
+static void
+forced_key_unit_event_free (ForcedKeyUnitEvent * evt)
+{
+ g_slice_free (ForcedKeyUnitEvent, evt);
+}
+
+static ForcedKeyUnitEvent *
+forced_key_unit_event_new (GstClockTime running_time, gboolean all_headers,
+ guint count)
+{
+ ForcedKeyUnitEvent *evt = g_slice_new0 (ForcedKeyUnitEvent);
+
+ evt->running_time = running_time;
+ evt->all_headers = all_headers;
+ evt->count = count;
+
+ return evt;
+}
+
+static GstElementClass *parent_class = NULL;
+static void gst_video_encoder_class_init (GstVideoEncoderClass * klass);
+static void gst_video_encoder_init (GstVideoEncoder * enc,
+ GstVideoEncoderClass * klass);
+
+static void gst_video_encoder_finalize (GObject * object);
+
+static gboolean gst_video_encoder_setcaps (GstVideoEncoder * enc,
+ GstCaps * caps);
+static GstCaps *gst_video_encoder_sink_getcaps (GstVideoEncoder * encoder,
+ GstCaps * filter);
+static gboolean gst_video_encoder_src_event (GstPad * pad, GstObject * parent,
+ GstEvent * event);
+static gboolean gst_video_encoder_sink_event (GstPad * pad, GstObject * parent,
+ GstEvent * event);
+static GstFlowReturn gst_video_encoder_chain (GstPad * pad, GstObject * parent,
+ GstBuffer * buf);
+static GstStateChangeReturn gst_video_encoder_change_state (GstElement *
+ element, GstStateChange transition);
+static gboolean gst_video_encoder_sink_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
+static gboolean gst_video_encoder_src_query (GstPad * pad, GstObject * parent,
+ GstQuery * query);
+static GstVideoCodecFrame *gst_video_encoder_new_frame (GstVideoEncoder *
+ encoder, GstBuffer * buf, GstClockTime timestamp, GstClockTime duration);
+
+static gboolean gst_video_encoder_sink_event_default (GstVideoEncoder * encoder,
+ GstEvent * event);
+static gboolean gst_video_encoder_src_event_default (GstVideoEncoder * encoder,
+ GstEvent * event);
+static gboolean gst_video_encoder_propose_allocation_default (GstVideoEncoder *
+ encoder, GstQuery * query);
+
+/* we can't use G_DEFINE_ABSTRACT_TYPE because we need the klass in the _init
+ * method to get to the padtemplates */
+GType
+gst_video_encoder_get_type (void)
+{
+ static volatile gsize type = 0;
+
+ if (g_once_init_enter (&type)) {
+ GType _type;
+ static const GTypeInfo info = {
+ sizeof (GstVideoEncoderClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gst_video_encoder_class_init,
+ NULL,
+ NULL,
+ sizeof (GstVideoEncoder),
+ 0,
+ (GInstanceInitFunc) gst_video_encoder_init,
+ };
+ const GInterfaceInfo preset_interface_info = {
+ NULL, /* interface_init */
+ NULL, /* interface_finalize */
+ NULL /* interface_data */
+ };
+
+ _type = g_type_register_static (GST_TYPE_ELEMENT,
+ "GstVideoEncoder", &info, G_TYPE_FLAG_ABSTRACT);
+ g_type_add_interface_static (_type, GST_TYPE_PRESET,
+ &preset_interface_info);
+ g_once_init_leave (&type, _type);
+ }
+ return type;
+}
+
+static void
+gst_video_encoder_class_init (GstVideoEncoderClass * klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gstelement_class = GST_ELEMENT_CLASS (klass);
+
+ GST_DEBUG_CATEGORY_INIT (videoencoder_debug, "videoencoder", 0,
+ "Base Video Encoder");
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ g_type_class_add_private (klass, sizeof (GstVideoEncoderPrivate));
+
+ gobject_class->finalize = gst_video_encoder_finalize;
+
+ gstelement_class->change_state =
+ GST_DEBUG_FUNCPTR (gst_video_encoder_change_state);
+
+ klass->sink_event = gst_video_encoder_sink_event_default;
+ klass->src_event = gst_video_encoder_src_event_default;
+ klass->propose_allocation = gst_video_encoder_propose_allocation_default;
+}
+
+static void
+gst_video_encoder_reset (GstVideoEncoder * encoder)
+{
+ GstVideoEncoderPrivate *priv = encoder->priv;
+ GList *g;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+ priv->presentation_frame_number = 0;
+ priv->distance_from_sync = 0;
+
+ g_list_foreach (priv->force_key_unit, (GFunc) forced_key_unit_event_free,
+ NULL);
+ g_list_free (priv->force_key_unit);
+ priv->force_key_unit = NULL;
+
+ priv->drained = TRUE;
+ priv->min_latency = 0;
+ priv->max_latency = 0;
+
+ g_list_foreach (priv->headers, (GFunc) gst_event_unref, NULL);
+ g_list_free (priv->headers);
+ priv->headers = NULL;
+ priv->new_headers = FALSE;
+
+ g_list_foreach (priv->current_frame_events, (GFunc) gst_event_unref, NULL);
+ g_list_free (priv->current_frame_events);
+ priv->current_frame_events = NULL;
+
+ for (g = priv->frames; g; g = g->next) {
+ gst_video_codec_frame_unref ((GstVideoCodecFrame *) g->data);
+ }
+ g_list_free (priv->frames);
+ priv->frames = NULL;
+
+ priv->bytes = 0;
+ priv->time = 0;
+
+ if (priv->input_state)
+ gst_video_codec_state_unref (priv->input_state);
+ priv->input_state = NULL;
+ if (priv->output_state)
+ gst_video_codec_state_unref (priv->output_state);
+ priv->output_state = NULL;
+
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+}
+
+static void
+gst_video_encoder_init (GstVideoEncoder * encoder, GstVideoEncoderClass * klass)
+{
+ GstVideoEncoderPrivate *priv;
+ GstPadTemplate *pad_template;
+ GstPad *pad;
+
+ GST_DEBUG_OBJECT (encoder, "gst_video_encoder_init");
+
+ priv = encoder->priv = GST_VIDEO_ENCODER_GET_PRIVATE (encoder);
+
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink");
+ g_return_if_fail (pad_template != NULL);
+
+ encoder->sinkpad = pad = gst_pad_new_from_template (pad_template, "sink");
+
+ gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_video_encoder_chain));
+ gst_pad_set_event_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_encoder_sink_event));
+ gst_pad_set_query_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_encoder_sink_query));
+ gst_element_add_pad (GST_ELEMENT (encoder), encoder->sinkpad);
+
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "src");
+ g_return_if_fail (pad_template != NULL);
+
+ encoder->srcpad = pad = gst_pad_new_from_template (pad_template, "src");
+
+ gst_pad_set_query_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_encoder_src_query));
+ gst_pad_set_event_function (pad,
+ GST_DEBUG_FUNCPTR (gst_video_encoder_src_event));
+ gst_element_add_pad (GST_ELEMENT (encoder), encoder->srcpad);
+
+ gst_segment_init (&encoder->input_segment, GST_FORMAT_TIME);
+ gst_segment_init (&encoder->output_segment, GST_FORMAT_TIME);
+
+ g_rec_mutex_init (&encoder->stream_lock);
+
+ priv->at_eos = FALSE;
+ priv->headers = NULL;
+ priv->new_headers = FALSE;
+
+ gst_video_encoder_reset (encoder);
+}
+
+static gboolean
+gst_video_encoded_video_convert (gint64 bytes, gint64 time,
+ GstFormat src_format, gint64 src_value, GstFormat * dest_format,
+ gint64 * dest_value)
+{
+ gboolean res = FALSE;
+
+ g_return_val_if_fail (dest_format != NULL, FALSE);
+ g_return_val_if_fail (dest_value != NULL, FALSE);
+
+ if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+ src_value == -1)) {
+ if (dest_value)
+ *dest_value = src_value;
+ return TRUE;
+ }
+
+ if (bytes <= 0 || time <= 0) {
+ GST_DEBUG ("not enough metadata yet to convert");
+ goto exit;
+ }
+
+ switch (src_format) {
+ case GST_FORMAT_BYTES:
+ switch (*dest_format) {
+ case GST_FORMAT_TIME:
+ *dest_value = gst_util_uint64_scale (src_value, time, bytes);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ case GST_FORMAT_TIME:
+ switch (*dest_format) {
+ case GST_FORMAT_BYTES:
+ *dest_value = gst_util_uint64_scale (src_value, bytes, time);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ default:
+ GST_DEBUG ("unhandled conversion from %d to %d", src_format,
+ *dest_format);
+ res = FALSE;
+ }
+
+exit:
+ return res;
+}
+
+/**
+ * gst_video_encoder_set_headers:
+ * @encoder: a #GstVideoEncoder
+ * @headers: (transfer full) (element-type GstBuffer): a list of #GstBuffer containing the codec header
+ *
+ * Set the codec headers to be sent downstream whenever requested.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_encoder_set_headers (GstVideoEncoder * video_encoder, GList * headers)
+{
+ GST_VIDEO_ENCODER_STREAM_LOCK (video_encoder);
+
+ GST_DEBUG_OBJECT (video_encoder, "new headers %p", headers);
+ if (video_encoder->priv->headers) {
+ g_list_foreach (video_encoder->priv->headers, (GFunc) gst_buffer_unref,
+ NULL);
+ g_list_free (video_encoder->priv->headers);
+ }
+ video_encoder->priv->headers = headers;
+ video_encoder->priv->new_headers = TRUE;
+
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (video_encoder);
+}
+
+static gboolean
+gst_video_encoder_drain (GstVideoEncoder * enc)
+{
+ GstVideoEncoderPrivate *priv;
+ GstVideoEncoderClass *enc_class;
+ gboolean ret = TRUE;
+
+ enc_class = GST_VIDEO_ENCODER_GET_CLASS (enc);
+ priv = enc->priv;
+
+ GST_DEBUG_OBJECT (enc, "draining");
+
+ if (priv->drained) {
+ GST_DEBUG_OBJECT (enc, "already drained");
+ return TRUE;
+ }
+
+ if (enc_class->reset) {
+ GST_DEBUG_OBJECT (enc, "requesting subclass to finish");
+ ret = enc_class->reset (enc, TRUE);
+ }
+ /* everything should be away now */
+ if (priv->frames) {
+ /* not fatal/impossible though if subclass/enc eats stuff */
+ g_list_foreach (priv->frames, (GFunc) gst_video_codec_frame_unref, NULL);
+ g_list_free (priv->frames);
+ priv->frames = NULL;
+ }
+
+ return ret;
+}
+
+static GstVideoCodecState *
+_new_output_state (GstCaps * caps, GstVideoCodecState * reference)
+{
+ GstVideoCodecState *state;
+
+ state = g_slice_new0 (GstVideoCodecState);
+ state->ref_count = 1;
+ gst_video_info_init (&state->info);
+ gst_video_info_set_format (&state->info, GST_VIDEO_FORMAT_ENCODED, 0, 0);
+
+ state->caps = caps;
+
+ if (reference) {
+ GstVideoInfo *tgt, *ref;
+
+ tgt = &state->info;
+ ref = &reference->info;
+
+ /* Copy over extra fields from reference state */
+ tgt->interlace_mode = ref->interlace_mode;
+ tgt->flags = ref->flags;
+ tgt->width = ref->width;
+ tgt->height = ref->height;
+ tgt->chroma_site = ref->chroma_site;
+ tgt->colorimetry = ref->colorimetry;
+ tgt->par_n = ref->par_n;
+ tgt->par_d = ref->par_d;
+ tgt->fps_n = ref->fps_n;
+ tgt->fps_d = ref->fps_d;
+ }
+
+ return state;
+}
+
+static GstVideoCodecState *
+_new_input_state (GstCaps * caps)
+{
+ GstVideoCodecState *state;
+
+ state = g_slice_new0 (GstVideoCodecState);
+ state->ref_count = 1;
+ gst_video_info_init (&state->info);
+ if (G_UNLIKELY (!gst_video_info_from_caps (&state->info, caps)))
+ goto parse_fail;
+ state->caps = gst_caps_ref (caps);
+
+ return state;
+
+parse_fail:
+ {
+ g_slice_free (GstVideoCodecState, state);
+ return NULL;
+ }
+}
+
+static gboolean
+gst_video_encoder_setcaps (GstVideoEncoder * encoder, GstCaps * caps)
+{
+ GstVideoEncoderClass *encoder_class;
+ GstVideoCodecState *state;
+ gboolean ret;
+ gboolean samecaps = FALSE;
+
+ encoder_class = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+
+ /* subclass should do something here ... */
+ g_return_val_if_fail (encoder_class->set_format != NULL, FALSE);
+
+ GST_DEBUG_OBJECT (encoder, "setcaps %" GST_PTR_FORMAT, caps);
+
+ state = _new_input_state (caps);
+ if (G_UNLIKELY (!state))
+ goto parse_fail;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+ if (encoder->priv->input_state)
+ samecaps =
+ gst_video_info_is_equal (&state->info,
+ &encoder->priv->input_state->info);
+
+ if (!samecaps) {
+ /* arrange draining pending frames */
+ gst_video_encoder_drain (encoder);
+
+ /* and subclass should be ready to configure format at any time around */
+ ret = encoder_class->set_format (encoder, state);
+ if (ret) {
+ if (encoder->priv->input_state)
+ gst_video_codec_state_unref (encoder->priv->input_state);
+ encoder->priv->input_state = state;
+ } else
+ gst_video_codec_state_unref (state);
+ } else {
+ /* no need to stir things up */
+ GST_DEBUG_OBJECT (encoder,
+ "new video format identical to configured format");
+ gst_video_codec_state_unref (state);
+ ret = TRUE;
+ }
+
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ if (!ret)
+ GST_WARNING_OBJECT (encoder, "rejected caps %" GST_PTR_FORMAT, caps);
+
+ return ret;
+
+parse_fail:
+ {
+ GST_WARNING_OBJECT (encoder, "Failed to parse caps");
+ return FALSE;
+ }
+}
+
+/**
+ * gst_video_encoder_proxy_getcaps:
+ * @enc: a #GstVideoEncoder
+ * @caps: initial caps
+ *
+ * Returns caps that express @caps (or sink template caps if @caps == NULL)
+ * restricted to resolution/format/... combinations supported by downstream
+ * elements (e.g. muxers).
+ *
+ * Returns: a #GstCaps owned by caller
+ *
+ * Since: 0.10.36
+ */
+GstCaps *
+gst_video_encoder_proxy_getcaps (GstVideoEncoder * encoder, GstCaps * caps,
+ GstCaps * filter)
+{
+ GstCaps *templ_caps;
+ GstCaps *allowed;
+ GstCaps *fcaps, *filter_caps;
+ gint i, j;
+
+ /* Allow downstream to specify width/height/framerate/PAR constraints
+ * and forward them upstream for video converters to handle
+ */
+ templ_caps =
+ caps ? gst_caps_ref (caps) :
+ gst_pad_get_pad_template_caps (encoder->sinkpad);
+ allowed = gst_pad_get_allowed_caps (encoder->srcpad);
+
+ if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) {
+ fcaps = templ_caps;
+ goto done;
+ }
+
+ GST_LOG_OBJECT (encoder, "template caps %" GST_PTR_FORMAT, templ_caps);
+ GST_LOG_OBJECT (encoder, "allowed caps %" GST_PTR_FORMAT, allowed);
+
+ filter_caps = gst_caps_new_empty ();
+
+ for (i = 0; i < gst_caps_get_size (templ_caps); i++) {
+ GQuark q_name =
+ gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
+
+ for (j = 0; j < gst_caps_get_size (allowed); j++) {
+ const GstStructure *allowed_s = gst_caps_get_structure (allowed, j);
+ const GValue *val;
+ GstStructure *s;
+
+ s = gst_structure_new_id_empty (q_name);
+ if ((val = gst_structure_get_value (allowed_s, "width")))
+ gst_structure_set_value (s, "width", val);
+ if ((val = gst_structure_get_value (allowed_s, "height")))
+ gst_structure_set_value (s, "height", val);
+ if ((val = gst_structure_get_value (allowed_s, "framerate")))
+ gst_structure_set_value (s, "framerate", val);
+ if ((val = gst_structure_get_value (allowed_s, "pixel-aspect-ratio")))
+ gst_structure_set_value (s, "pixel-aspect-ratio", val);
+
+ filter_caps = gst_caps_merge_structure (filter_caps, s);
+ }
+ }
+
+ fcaps = gst_caps_intersect (filter_caps, templ_caps);
+ gst_caps_unref (filter_caps);
+ gst_caps_unref (templ_caps);
+
+ if (filter) {
+ GST_LOG_OBJECT (encoder, "intersecting with %" GST_PTR_FORMAT, filter);
+ filter_caps = gst_caps_intersect (fcaps, filter);
+ gst_caps_unref (fcaps);
+ fcaps = filter_caps;
+ }
+
+done:
+ gst_caps_replace (&allowed, NULL);
+
+ GST_LOG_OBJECT (encoder, "proxy caps %" GST_PTR_FORMAT, fcaps);
+
+ return fcaps;
+}
+
+static GstCaps *
+gst_video_encoder_sink_getcaps (GstVideoEncoder * encoder, GstCaps * filter)
+{
+ GstVideoEncoderClass *klass;
+ GstCaps *caps;
+
+ klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+
+ if (klass->getcaps)
+ caps = klass->getcaps (encoder, filter);
+ else
+ caps = gst_video_encoder_proxy_getcaps (encoder, NULL, filter);
+
+ GST_LOG_OBJECT (encoder, "Returning caps %" GST_PTR_FORMAT, caps);
+
+ return caps;
+}
+
+static gboolean
+gst_video_encoder_propose_allocation_default (GstVideoEncoder * encoder,
+ GstQuery * query)
+{
+ return TRUE;
+}
+
+static gboolean
+gst_video_encoder_sink_query (GstPad * pad, GstObject * parent,
+ GstQuery * query)
+{
+ GstVideoEncoder *encoder;
+ gboolean res = FALSE;
+
+ encoder = GST_VIDEO_ENCODER (parent);
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_CAPS:
+ {
+ GstCaps *filter, *caps;
+
+ gst_query_parse_caps (query, &filter);
+ caps = gst_video_encoder_sink_getcaps (encoder, filter);
+ gst_query_set_caps_result (query, caps);
+ gst_caps_unref (caps);
+ res = TRUE;
+ break;
+ }
+ case GST_QUERY_ALLOCATION:
+ {
+ GstVideoEncoderClass *klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+
+ if (klass->propose_allocation)
+ res = klass->propose_allocation (encoder, query);
+ break;
+ }
+ default:
+ res = gst_pad_query_default (pad, parent, query);
+ break;
+ }
+ return res;
+}
+
+static void
+gst_video_encoder_finalize (GObject * object)
+{
+ GstVideoEncoder *encoder;
+
+ GST_DEBUG_OBJECT (object, "finalize");
+
+ encoder = GST_VIDEO_ENCODER (object);
+ if (encoder->priv->headers) {
+ g_list_foreach (encoder->priv->headers, (GFunc) gst_buffer_unref, NULL);
+ g_list_free (encoder->priv->headers);
+ }
+ g_rec_mutex_clear (&encoder->stream_lock);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static gboolean
+gst_video_encoder_push_event (GstVideoEncoder * encoder, GstEvent * event)
+{
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_SEGMENT:
+ {
+ GstSegment segment;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+ gst_event_copy_segment (event, &segment);
+
+ GST_DEBUG_OBJECT (encoder, "segment %" GST_SEGMENT_FORMAT, &segment);
+
+ if (segment.format != GST_FORMAT_TIME) {
+ GST_DEBUG_OBJECT (encoder, "received non TIME segment");
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+ break;
+ }
+
+ encoder->output_segment = segment;
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+ break;
+ }
+ default:
+ break;
+ }
+
+ return gst_pad_push_event (encoder->srcpad, event);
+}
+
+static gboolean
+gst_video_encoder_sink_event_default (GstVideoEncoder * encoder,
+ GstEvent * event)
+{
+ GstVideoEncoderClass *encoder_class;
+ gboolean ret = FALSE;
+
+ encoder_class = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_CAPS:
+ {
+ GstCaps *caps;
+
+ gst_event_parse_caps (event, &caps);
+ ret = gst_video_encoder_setcaps (encoder, caps);
+ gst_event_unref (event);
+ event = NULL;
+ break;
+ }
+ case GST_EVENT_EOS:
+ {
+ GstFlowReturn flow_ret;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+ encoder->priv->at_eos = TRUE;
+
+ if (encoder_class->finish) {
+ flow_ret = encoder_class->finish (encoder);
+ } else {
+ flow_ret = GST_FLOW_OK;
+ }
+
+ ret = (flow_ret == GST_FLOW_OK);
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+ break;
+ }
+ case GST_EVENT_SEGMENT:
+ {
+ GstSegment segment;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+ gst_event_copy_segment (event, &segment);
+
+ GST_DEBUG_OBJECT (encoder, "segment %" GST_SEGMENT_FORMAT, &segment);
+
+ if (segment.format != GST_FORMAT_TIME) {
+ GST_DEBUG_OBJECT (encoder, "received non TIME newsegment");
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+ break;
+ }
+
+ encoder->priv->at_eos = FALSE;
+
+ encoder->input_segment = segment;
+ ret = TRUE;
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+ break;
+ }
+ case GST_EVENT_CUSTOM_DOWNSTREAM:
+ {
+ if (gst_video_event_is_force_key_unit (event)) {
+ GstClockTime running_time;
+ gboolean all_headers;
+ guint count;
+
+ if (gst_video_event_parse_downstream_force_key_unit (event,
+ NULL, NULL, &running_time, &all_headers, &count)) {
+ ForcedKeyUnitEvent *fevt;
+
+ GST_OBJECT_LOCK (encoder);
+ fevt = forced_key_unit_event_new (running_time, all_headers, count);
+ encoder->priv->force_key_unit =
+ g_list_append (encoder->priv->force_key_unit, fevt);
+ GST_OBJECT_UNLOCK (encoder);
+
+ GST_DEBUG_OBJECT (encoder,
+ "force-key-unit event: running-time %" GST_TIME_FORMAT
+ ", all_headers %d, count %u",
+ GST_TIME_ARGS (running_time), all_headers, count);
+ }
+ gst_event_unref (event);
+ event = NULL;
+ ret = TRUE;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ /* Forward non-serialized events and EOS/FLUSH_STOP immediately.
+ * For EOS this is required because no buffer or serialized event
+ * will come after EOS and nothing could trigger another
+ * _finish_frame() call. *
+ * If the subclass handles sending of EOS manually it can simply
+ * not chain up to the parent class' event handler
+ *
+ * For FLUSH_STOP this is required because it is expected
+ * to be forwarded immediately and no buffers are queued anyway.
+ */
+ if (event) {
+ if (!GST_EVENT_IS_SERIALIZED (event)
+ || GST_EVENT_TYPE (event) == GST_EVENT_EOS
+ || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+ ret = gst_video_encoder_push_event (encoder, event);
+ } else {
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+ encoder->priv->current_frame_events =
+ g_list_prepend (encoder->priv->current_frame_events, event);
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+ ret = TRUE;
+ }
+ }
+
+ return ret;
+}
+
+static gboolean
+gst_video_encoder_sink_event (GstPad * pad, GstObject * parent,
+ GstEvent * event)
+{
+ GstVideoEncoder *enc;
+ GstVideoEncoderClass *klass;
+ gboolean ret = TRUE;
+
+ enc = GST_VIDEO_ENCODER (parent);
+ klass = GST_VIDEO_ENCODER_GET_CLASS (enc);
+
+ GST_DEBUG_OBJECT (enc, "received event %d, %s", GST_EVENT_TYPE (event),
+ GST_EVENT_TYPE_NAME (event));
+
+ if (klass->sink_event)
+ ret = klass->sink_event (enc, event);
+
+ return ret;
+}
+
+static gboolean
+gst_video_encoder_src_event_default (GstVideoEncoder * encoder,
+ GstEvent * event)
+{
+ gboolean ret = FALSE;
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_CUSTOM_UPSTREAM:
+ {
+ if (gst_video_event_is_force_key_unit (event)) {
+ GstClockTime running_time;
+ gboolean all_headers;
+ guint count;
+
+ if (gst_video_event_parse_upstream_force_key_unit (event,
+ &running_time, &all_headers, &count)) {
+ ForcedKeyUnitEvent *fevt;
+
+ GST_OBJECT_LOCK (encoder);
+ fevt = forced_key_unit_event_new (running_time, all_headers, count);
+ encoder->priv->force_key_unit =
+ g_list_append (encoder->priv->force_key_unit, fevt);
+ GST_OBJECT_UNLOCK (encoder);
+
+ GST_DEBUG_OBJECT (encoder,
+ "force-key-unit event: running-time %" GST_TIME_FORMAT
+ ", all_headers %d, count %u",
+ GST_TIME_ARGS (running_time), all_headers, count);
+ }
+ gst_event_unref (event);
+ event = NULL;
+ ret = TRUE;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ if (event)
+ ret =
+ gst_pad_event_default (encoder->srcpad, GST_OBJECT_CAST (encoder),
+ event);
+
+ return ret;
+}
+
+static gboolean
+gst_video_encoder_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+ GstVideoEncoder *encoder;
+ GstVideoEncoderClass *klass;
+ gboolean ret = FALSE;
+
+ encoder = GST_VIDEO_ENCODER (parent);
+ klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+
+ GST_LOG_OBJECT (encoder, "handling event: %" GST_PTR_FORMAT, event);
+
+ if (klass->src_event)
+ ret = klass->src_event (encoder, event);
+
+ return ret;
+}
+
+static gboolean
+gst_video_encoder_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+ GstVideoEncoderPrivate *priv;
+ GstVideoEncoder *enc;
+ gboolean res;
+
+ enc = GST_VIDEO_ENCODER (parent);
+ priv = enc->priv;
+
+ GST_LOG_OBJECT (enc, "handling query: %" GST_PTR_FORMAT, query);
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_CONVERT:
+ {
+ GstFormat src_fmt, dest_fmt;
+ gint64 src_val, dest_val;
+
+ gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+ res =
+ gst_video_encoded_video_convert (priv->bytes, priv->time, src_fmt,
+ src_val, &dest_fmt, &dest_val);
+ if (!res)
+ goto error;
+ gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+ break;
+ }
+ case GST_QUERY_LATENCY:
+ {
+ gboolean live;
+ GstClockTime min_latency, max_latency;
+
+ res = gst_pad_peer_query (enc->sinkpad, query);
+ if (res) {
+ gst_query_parse_latency (query, &live, &min_latency, &max_latency);
+ GST_DEBUG_OBJECT (enc, "Peer latency: live %d, min %"
+ GST_TIME_FORMAT " max %" GST_TIME_FORMAT, live,
+ GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
+
+ GST_OBJECT_LOCK (enc);
+ min_latency += priv->min_latency;
+ if (enc->priv->max_latency == GST_CLOCK_TIME_NONE) {
+ max_latency = GST_CLOCK_TIME_NONE;
+ } else if (max_latency != GST_CLOCK_TIME_NONE) {
+ max_latency += enc->priv->max_latency;
+ }
+ GST_OBJECT_UNLOCK (enc);
+
+ gst_query_set_latency (query, live, min_latency, max_latency);
+ }
+ }
+ break;
+ default:
+ res = gst_pad_query_default (pad, parent, query);
+ }
+ return res;
+
+error:
+ GST_DEBUG_OBJECT (enc, "query failed");
+ return res;
+}
+
+static GstVideoCodecFrame *
+gst_video_encoder_new_frame (GstVideoEncoder * encoder, GstBuffer * buf,
+ GstClockTime timestamp, GstClockTime duration)
+{
+ GstVideoEncoderPrivate *priv = encoder->priv;
+ GstVideoCodecFrame *frame;
+
+ frame = g_slice_new0 (GstVideoCodecFrame);
+
+ frame->ref_count = 1;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+ frame->system_frame_number = priv->system_frame_number;
+ priv->system_frame_number++;
+
+ frame->presentation_frame_number = priv->presentation_frame_number;
+ priv->presentation_frame_number++;
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ frame->events = priv->current_frame_events;
+ priv->current_frame_events = NULL;
+ frame->input_buffer = buf;
+ frame->pts = timestamp;
+ frame->duration = duration;
+
+ return frame;
+}
+
+
+static GstFlowReturn
+gst_video_encoder_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
+{
+ GstVideoEncoder *encoder;
+ GstVideoEncoderPrivate *priv;
+ GstVideoEncoderClass *klass;
+ GstVideoCodecFrame *frame;
+ GstFlowReturn ret = GST_FLOW_OK;
+ guint64 start, stop = GST_CLOCK_TIME_NONE, cstart, cstop;
+
+ encoder = GST_VIDEO_ENCODER (parent);
+ priv = encoder->priv;
+ klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+
+ g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR);
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+ start = GST_BUFFER_TIMESTAMP (buf);
+ if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buf)))
+ stop = start + GST_BUFFER_DURATION (buf);
+
+ GST_LOG_OBJECT (encoder,
+ "received buffer of size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, gst_buffer_get_size (buf),
+ GST_TIME_ARGS (start), GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+ if (priv->at_eos) {
+ ret = GST_FLOW_EOS;
+ goto done;
+ }
+
+ /* Drop buffers outside of segment */
+ if (!gst_segment_clip (&encoder->output_segment,
+ GST_FORMAT_TIME, start, stop, &cstart, &cstop)) {
+ GST_DEBUG_OBJECT (encoder, "clipping to segment dropped frame");
+ gst_buffer_unref (buf);
+ goto done;
+ }
+
+ frame = gst_video_encoder_new_frame (encoder, buf, cstart, cstop - cstart);
+
+ GST_OBJECT_LOCK (encoder);
+ if (priv->force_key_unit) {
+ ForcedKeyUnitEvent *fevt = NULL;
+ GstClockTime running_time;
+ GList *l;
+
+ running_time =
+ gst_segment_to_running_time (&encoder->output_segment, GST_FORMAT_TIME,
+ GST_BUFFER_TIMESTAMP (buf));
+
+ for (l = priv->force_key_unit; l; l = l->next) {
+ ForcedKeyUnitEvent *tmp = l->data;
+
+ /* Skip pending keyunits */
+ if (tmp->pending)
+ continue;
+
+ /* Simple case, keyunit ASAP */
+ if (tmp->running_time == GST_CLOCK_TIME_NONE) {
+ fevt = tmp;
+ break;
+ }
+
+ /* Event for before this frame */
+ if (tmp->running_time <= running_time) {
+ fevt = tmp;
+ break;
+ }
+ }
+
+ if (fevt) {
+ GST_DEBUG_OBJECT (encoder,
+ "Forcing a key unit at running time %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (running_time));
+ GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME (frame);
+ if (fevt->all_headers)
+ GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS (frame);
+ fevt->pending = TRUE;
+ }
+ }
+ GST_OBJECT_UNLOCK (encoder);
+
+ priv->frames = g_list_append (priv->frames, frame);
+
+ /* new data, more finish needed */
+ priv->drained = FALSE;
+
+ GST_LOG_OBJECT (encoder, "passing frame pfn %d to subclass",
+ frame->presentation_frame_number);
+
+ gst_video_codec_frame_ref (frame);
+ ret = klass->handle_frame (encoder, frame);
+
+done:
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ return ret;
+}
+
+static GstStateChangeReturn
+gst_video_encoder_change_state (GstElement * element, GstStateChange transition)
+{
+ GstVideoEncoder *encoder;
+ GstVideoEncoderClass *encoder_class;
+ GstStateChangeReturn ret;
+
+ encoder = GST_VIDEO_ENCODER (element);
+ encoder_class = GST_VIDEO_ENCODER_GET_CLASS (element);
+
+ switch (transition) {
+ case GST_STATE_CHANGE_NULL_TO_READY:
+ /* open device/library if needed */
+ if (encoder_class->open && !encoder_class->open (encoder))
+ goto open_failed;
+ break;
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
+ /* Initialize device/library if needed */
+ if (encoder_class->start && !encoder_class->start (encoder))
+ goto start_failed;
+ break;
+ default:
+ break;
+ }
+
+ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+
+ switch (transition) {
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ gst_video_encoder_reset (encoder);
+ if (encoder_class->stop && !encoder_class->stop (encoder))
+ goto stop_failed;
+ break;
+ case GST_STATE_CHANGE_READY_TO_NULL:
+ /* close device/library if needed */
+ if (encoder_class->close && !encoder_class->close (encoder))
+ goto close_failed;
+ break;
+ default:
+ break;
+ }
+
+ return ret;
+
+ /* Errors */
+
+open_failed:
+ {
+ GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, (NULL),
+ ("Failed to open encoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+
+start_failed:
+ {
+ GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, (NULL),
+ ("Failed to start encoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+
+stop_failed:
+ {
+ GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, (NULL),
+ ("Failed to stop encoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+
+close_failed:
+ {
+ GST_ELEMENT_ERROR (encoder, LIBRARY, INIT, (NULL),
+ ("Failed to close encoder"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+}
+
+static gboolean
+gst_video_encoder_set_src_caps (GstVideoEncoder * encoder)
+{
+ gboolean ret;
+ GstVideoCodecState *state = encoder->priv->output_state;
+ GstVideoInfo *info = &state->info;
+
+ g_return_val_if_fail (state->caps != NULL, FALSE);
+
+ if (encoder->priv->output_state_changed) {
+ state->caps = gst_caps_make_writable (state->caps);
+
+ /* Fill caps */
+ gst_caps_set_simple (state->caps, "width", G_TYPE_INT, info->width,
+ "height", G_TYPE_INT, info->height,
+ "pixel-aspect-ratio", GST_TYPE_FRACTION,
+ info->par_n, info->par_d, NULL);
+ if (info->flags & GST_VIDEO_FLAG_VARIABLE_FPS && info->fps_n != 0) {
+ /* variable fps with a max-framerate */
+ gst_caps_set_simple (state->caps, "framerate", GST_TYPE_FRACTION, 0, 1,
+ "max-framerate", GST_TYPE_FRACTION, info->fps_n, info->fps_d, NULL);
+ } else {
+ /* no variable fps or no max-framerate */
+ gst_caps_set_simple (state->caps, "framerate", GST_TYPE_FRACTION,
+ info->fps_n, info->fps_d, NULL);
+ }
+ if (state->codec_data)
+ gst_caps_set_simple (state->caps, "codec_data", GST_TYPE_BUFFER,
+ state->codec_data, NULL);
+ encoder->priv->output_state_changed = FALSE;
+ }
+
+ ret = gst_pad_set_caps (encoder->srcpad, state->caps);
+
+ return ret;
+}
+
+/**
+ * gst_video_encoder_finish_frame:
+ * @encoder: a #GstVideoEncoder
+ * @frame: (transfer full): an encoded #GstVideoCodecFrame
+ *
+ * @frame must have a valid encoded data buffer, whose metadata fields
+ * are then appropriately set according to frame data or no buffer at
+ * all if the frame should be dropped.
+ * It is subsequently pushed downstream or provided to @pre_push.
+ * In any case, the frame is considered finished and released.
+ *
+ * Returns: a #GstFlowReturn resulting from sending data downstream
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_video_encoder_finish_frame (GstVideoEncoder * encoder,
+ GstVideoCodecFrame * frame)
+{
+ GstVideoEncoderPrivate *priv = encoder->priv;
+ GstFlowReturn ret = GST_FLOW_OK;
+ GstVideoEncoderClass *encoder_class;
+ GList *l;
+ gboolean send_headers = FALSE;
+ gboolean discont = (frame->presentation_frame_number == 0);
+
+ encoder_class = GST_VIDEO_ENCODER_GET_CLASS (encoder);
+
+ GST_LOG_OBJECT (encoder,
+ "finish frame fpn %d", frame->presentation_frame_number);
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+
+ if (G_UNLIKELY (priv->output_state_changed))
+ gst_video_encoder_set_src_caps (encoder);
+
+ if (G_UNLIKELY (priv->output_state == NULL))
+ goto no_output_state;
+
+ /* Push all pending events that arrived before this frame */
+ for (l = priv->frames; l; l = l->next) {
+ GstVideoCodecFrame *tmp = l->data;
+
+ if (tmp->events) {
+ GList *k;
+
+ for (k = g_list_last (tmp->events); k; k = k->prev)
+ gst_video_encoder_push_event (encoder, k->data);
+ g_list_free (tmp->events);
+ tmp->events = NULL;
+ }
+
+ if (tmp == frame)
+ break;
+ }
+
+ /* no buffer data means this frame is skipped/dropped */
+ if (!frame->output_buffer) {
+ GST_DEBUG_OBJECT (encoder, "skipping frame %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (frame->pts));
+ goto done;
+ }
+
+ if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame) && priv->force_key_unit) {
+ GstClockTime stream_time, running_time;
+ GstEvent *ev;
+ ForcedKeyUnitEvent *fevt = NULL;
+ GList *l;
+
+ running_time =
+ gst_segment_to_running_time (&encoder->output_segment, GST_FORMAT_TIME,
+ frame->pts);
+
+ GST_OBJECT_LOCK (encoder);
+ for (l = priv->force_key_unit; l; l = l->next) {
+ ForcedKeyUnitEvent *tmp = l->data;
+
+ /* Skip non-pending keyunits */
+ if (!tmp->pending)
+ continue;
+
+ /* Simple case, keyunit ASAP */
+ if (tmp->running_time == GST_CLOCK_TIME_NONE) {
+ fevt = tmp;
+ break;
+ }
+
+ /* Event for before this frame */
+ if (tmp->running_time <= running_time) {
+ fevt = tmp;
+ break;
+ }
+ }
+
+ if (fevt) {
+ priv->force_key_unit = g_list_remove (priv->force_key_unit, fevt);
+ }
+ GST_OBJECT_UNLOCK (encoder);
+
+ if (fevt) {
+ stream_time =
+ gst_segment_to_stream_time (&encoder->output_segment, GST_FORMAT_TIME,
+ frame->pts);
+
+ ev = gst_video_event_new_downstream_force_key_unit
+ (frame->pts, stream_time, running_time,
+ fevt->all_headers, fevt->count);
+
+ gst_video_encoder_push_event (encoder, ev);
+
+ if (fevt->all_headers)
+ send_headers = TRUE;
+
+ GST_DEBUG_OBJECT (encoder,
+ "Forced key unit: running-time %" GST_TIME_FORMAT
+ ", all_headers %d, count %u",
+ GST_TIME_ARGS (running_time), fevt->all_headers, fevt->count);
+ forced_key_unit_event_free (fevt);
+ }
+ }
+
+ if (GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT (frame)) {
+ priv->distance_from_sync = 0;
+ GST_BUFFER_FLAG_UNSET (frame->output_buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+ /* For keyframes, DTS = PTS */
+ frame->dts = frame->pts;
+ } else {
+ GST_BUFFER_FLAG_SET (frame->output_buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+ }
+
+ frame->distance_from_sync = priv->distance_from_sync;
+ priv->distance_from_sync++;
+
+ GST_BUFFER_TIMESTAMP (frame->output_buffer) = frame->pts;
+ GST_BUFFER_DURATION (frame->output_buffer) = frame->duration;
+
+ /* update rate estimate */
+ priv->bytes += gst_buffer_get_size (frame->output_buffer);
+ if (GST_CLOCK_TIME_IS_VALID (frame->duration)) {
+ priv->time += frame->duration;
+ } else {
+ /* better none than nothing valid */
+ priv->time = GST_CLOCK_TIME_NONE;
+ }
+
+ if (G_UNLIKELY (send_headers || priv->new_headers)) {
+ GList *tmp, *copy = NULL;
+
+ GST_DEBUG_OBJECT (encoder, "Sending headers");
+
+ /* First make all buffers metadata-writable */
+ for (tmp = priv->headers; tmp; tmp = tmp->next) {
+ GstBuffer *tmpbuf = GST_BUFFER (tmp->data);
+
+ copy = g_list_append (copy, gst_buffer_make_writable (tmpbuf));
+ }
+ g_list_free (priv->headers);
+ priv->headers = copy;
+
+ for (tmp = priv->headers; tmp; tmp = tmp->next) {
+ GstBuffer *tmpbuf = GST_BUFFER (tmp->data);
+
+ gst_buffer_ref (tmpbuf);
+ priv->bytes += gst_buffer_get_size (tmpbuf);
+ if (G_UNLIKELY (discont)) {
+ GST_LOG_OBJECT (encoder, "marking discont");
+ GST_BUFFER_FLAG_SET (tmpbuf, GST_BUFFER_FLAG_DISCONT);
+ discont = FALSE;
+ }
+
+ gst_pad_push (encoder->srcpad, tmpbuf);
+ }
+ priv->new_headers = FALSE;
+ }
+
+ if (G_UNLIKELY (discont)) {
+ GST_LOG_OBJECT (encoder, "marking discont");
+ GST_BUFFER_FLAG_SET (frame->output_buffer, GST_BUFFER_FLAG_DISCONT);
+ }
+
+ if (encoder_class->pre_push)
+ ret = encoder_class->pre_push (encoder, frame);
+
+ if (ret == GST_FLOW_OK)
+ ret = gst_pad_push (encoder->srcpad, frame->output_buffer);
+
+ frame->output_buffer = NULL;
+
+done:
+ /* handed out */
+ priv->frames = g_list_remove (priv->frames, frame);
+ /* Remove the reference from the list and the reference that
+ * was provided to us */
+ gst_video_codec_frame_unref (frame);
+ gst_video_codec_frame_unref (frame);
+
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ return ret;
+
+ /* ERRORS */
+no_output_state:
+ {
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+ GST_ERROR_OBJECT (encoder, "Output state was not configured");
+ return GST_FLOW_ERROR;
+ }
+}
+
+/**
+ * gst_video_encoder_get_output_state:
+ * @encoder: a #GstVideoEncoder
+ *
+ * Get the current #GstVideoCodecState
+ *
+ * Returns: (transfer full): #GstVideoCodecState describing format of video data.
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecState *
+gst_video_encoder_get_output_state (GstVideoEncoder * encoder)
+{
+ GstVideoCodecState *state;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+ state = gst_video_codec_state_ref (encoder->priv->output_state);
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ return state;
+}
+
+/**
+ * gst_video_encoder_set_output_state:
+ * @encoder: a #GstVideoEncoder
+ * @caps: (transfer full): the #GstCaps to use for the output
+ * @reference: (allow-none) (transfer none): An optional reference @GstVideoCodecState
+ *
+ * Creates a new #GstVideoCodecState with the specified caps as the output state
+ * for the encoder.
+ * Any previously set output state on @decoder will be replaced by the newly
+ * created one.
+ *
+ * The specified @caps should not contain any resolution, pixel-aspect-ratio,
+ * framerate, codec-data, .... Those should be specified instead in the returned
+ * #GstVideoCodecState.
+ *
+ * If the subclass wishes to copy over existing fields (like pixel aspect ratio,
+ * or framerate) from an existing #GstVideoCodecState, it can be provided as a
+ * @reference.
+ *
+ * If the subclass wishes to override some fields from the output state (like
+ * pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.
+ *
+ * The new output state will only take effect (set on pads and buffers) starting
+ * from the next call to #gst_video_encoder_finish_frame().
+ *
+ * Returns: (transfer full): the newly configured output state.
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecState *
+gst_video_encoder_set_output_state (GstVideoEncoder * encoder, GstCaps * caps,
+ GstVideoCodecState * reference)
+{
+ GstVideoEncoderPrivate *priv = encoder->priv;
+ GstVideoCodecState *state;
+
+ g_return_val_if_fail (caps != NULL, NULL);
+
+ state = _new_output_state (caps, reference);
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+ if (priv->output_state)
+ gst_video_codec_state_unref (priv->output_state);
+ priv->output_state = gst_video_codec_state_ref (state);
+
+ priv->output_state_changed = TRUE;
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ return state;
+}
+
+/**
+ * gst_video_encoder_set_latency:
+ * @encoder: a #GstVideoEncoder
+ * @min_latency: minimum latency
+ * @max_latency: maximum latency
+ *
+ * Informs baseclass of encoding latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_encoder_set_latency (GstVideoEncoder * encoder,
+ GstClockTime min_latency, GstClockTime max_latency)
+{
+ g_return_if_fail (GST_CLOCK_TIME_IS_VALID (min_latency));
+ g_return_if_fail (max_latency >= min_latency);
+
+ GST_OBJECT_LOCK (encoder);
+ encoder->priv->min_latency = min_latency;
+ encoder->priv->max_latency = max_latency;
+ GST_OBJECT_UNLOCK (encoder);
+
+ gst_element_post_message (GST_ELEMENT_CAST (encoder),
+ gst_message_new_latency (GST_OBJECT_CAST (encoder)));
+}
+
+/**
+ * gst_video_encoder_get_latency:
+ * @encoder: a #GstVideoEncoder
+ * @min_latency: (out) (allow-none): the configured minimum latency
+ * @max_latency: (out) (allow-none): the configured maximum latency
+ *
+ * Returns the configured encoding latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_encoder_get_latency (GstVideoEncoder * encoder,
+ GstClockTime * min_latency, GstClockTime * max_latency)
+{
+ GST_OBJECT_LOCK (encoder);
+ if (min_latency)
+ *min_latency = encoder->priv->min_latency;
+ if (max_latency)
+ *max_latency = encoder->priv->max_latency;
+ GST_OBJECT_UNLOCK (encoder);
+}
+
+/**
+ * gst_video_encoder_get_oldest_frame:
+ * @encoder: a #GstVideoEncoder
+ *
+ * Get the oldest unfinished pending #GstVideoCodecFrame
+ *
+ * Returns: (transfer full): oldest unfinished pending #GstVideoCodecFrame
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecFrame *
+gst_video_encoder_get_oldest_frame (GstVideoEncoder * encoder)
+{
+ GstVideoCodecFrame *frame = NULL;
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+ if (encoder->priv->frames)
+ frame = gst_video_codec_frame_ref (encoder->priv->frames->data);
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ return (GstVideoCodecFrame *) frame;
+}
+
+/**
+ * gst_video_encoder_get_frame:
+ * @encoder: a #GstVideoEnccoder
+ * @frame_number: system_frame_number of a frame
+ *
+ * Get a pending unfinished #GstVideoCodecFrame
+ *
+ * Returns: (transfer none): pending unfinished #GstVideoCodecFrame identified by @frame_number.
+ *
+ * Since: 0.10.36
+ */
+GstVideoCodecFrame *
+gst_video_encoder_get_frame (GstVideoEncoder * encoder, int frame_number)
+{
+ GList *g;
+ GstVideoCodecFrame *frame = NULL;
+
+ GST_DEBUG_OBJECT (encoder, "frame_number : %d", frame_number);
+
+ GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
+ for (g = encoder->priv->frames; g; g = g->next) {
+ GstVideoCodecFrame *tmp = g->data;
+
+ if (tmp->system_frame_number == frame_number) {
+ frame = tmp;
+ break;
+ }
+ }
+ GST_VIDEO_ENCODER_STREAM_UNLOCK (encoder);
+
+ return frame;
+}
diff --git a/gst-libs/gst/video/gstvideoencoder.h b/gst-libs/gst/video/gstvideoencoder.h
new file mode 100644
index 0000000..0b58422
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoencoder.h
@@ -0,0 +1,304 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ * Copyright (C) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.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., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _GST_VIDEO_ENCODER_H_
+#define _GST_VIDEO_ENCODER_H_
+
+#include <gst/video/gstvideoutils.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_VIDEO_ENCODER \
+ (gst_video_encoder_get_type())
+#define GST_VIDEO_ENCODER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VIDEO_ENCODER,GstVideoEncoder))
+#define GST_VIDEO_ENCODER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_VIDEO_ENCODER,GstVideoEncoderClass))
+#define GST_VIDEO_ENCODER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_VIDEO_ENCODER,GstVideoEncoderClass))
+#define GST_IS_VIDEO_ENCODER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_ENCODER))
+#define GST_IS_VIDEO_ENCODER_CLASS(obj) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VIDEO_ENCODER))
+#define GST_VIDEO_ENCODER_CAST(enc) ((GstVideoEncoder*)enc)
+
+/**
+ * GST_VIDEO_ENCODER_SINK_NAME:
+ *
+ * The name of the templates for the sink pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_SINK_NAME "sink"
+/**
+ * GST_VIDEO_ENCODER_SRC_NAME:
+ *
+ * The name of the templates for the source pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_SRC_NAME "src"
+
+/**
+ * GST_VIDEO_ENCODER_SRC_PAD:
+ * @obj: a #GstVideoEncoder
+ *
+ * Gives the pointer to the source #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_SRC_PAD(obj) (((GstVideoEncoder *) (obj))->srcpad)
+
+/**
+ * GST_VIDEO_ENCODER_SINK_PAD:
+ * @obj: a #GstVideoEncoder
+ *
+ * Gives the pointer to the sink #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_SINK_PAD(obj) (((GstVideoEncoder *) (obj))->sinkpad)
+
+/**
+ * GST_VIDEO_ENCODER_FLOW_NEED_DATA:
+ *
+ * Returned while parsing to indicate more data is needed.
+ *
+ * Since: 0.10.36
+ **/
+#define GST_VIDEO_ENCODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
+
+/**
+ * GST_VIDEO_ENCODER_FLOW_DROPPED:
+ *
+ * Returned when the event/buffer should be dropped.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1
+
+/**
+ * GST_VIDEO_ENCODER_INPUT_SEGMENT:
+ * @obj: base parse instance
+ *
+ * Gives the segment of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_INPUT_SEGMENT(obj) (GST_VIDEO_ENCODER_CAST (obj)->input_segment)
+
+/**
+ * GST_VIDEO_ENCODER_OUTPUT_SEGMENT:
+ * @obj: base parse instance
+ *
+ * Gives the segment of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_OUTPUT_SEGMENT(obj) (GST_VIDEO_ENCODER_CAST (obj)->output_segment)
+
+/**
+ * GST_VIDEO_ENCODER_STREAM_LOCK:
+ * @encoder: video encoder instance
+ *
+ * Obtain a lock to protect the encoder function from concurrent access.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_STREAM_LOCK(encoder) g_rec_mutex_lock (&GST_VIDEO_ENCODER (encoder)->stream_lock)
+
+/**
+ * GST_VIDEO_ENCODER_STREAM_UNLOCK:
+ * @encoder: video encoder instance
+ *
+ * Release the lock that protects the encoder function from concurrent access.
+ *
+ * Since: 0.10.36
+ */
+#define GST_VIDEO_ENCODER_STREAM_UNLOCK(encoder) g_rec_mutex_unlock (&GST_VIDEO_ENCODER (encoder)->stream_lock)
+
+typedef struct _GstVideoEncoder GstVideoEncoder;
+typedef struct _GstVideoEncoderPrivate GstVideoEncoderPrivate;
+typedef struct _GstVideoEncoderClass GstVideoEncoderClass;
+
+/**
+ * GstVideoEncoder:
+ *
+ * The opaque #GstVideoEncoder data structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstVideoEncoder
+{
+ /*< private >*/
+ GstElement element;
+
+ /*< protected >*/
+ GstPad *sinkpad;
+ GstPad *srcpad;
+
+ /* protects all data processing, i.e. is locked
+ * in the chain function, finish_frame and when
+ * processing serialized events */
+ GRecMutex stream_lock;
+
+ /* MT-protected (with STREAM_LOCK) */
+ GstSegment input_segment;
+ GstSegment output_segment;
+
+ GstVideoEncoderPrivate *priv;
+ /* FIXME before moving to base */
+ void *padding[GST_PADDING_LARGE];
+};
+
+/**
+ * GstVideoEncoderClass:
+ * @open: Optional.
+ * Called when the element changes to GST_STATE_READY.
+ * Allows opening external resources. Since: 0.10.37.
+ * @close: Optional.
+ * Called when the element changes to GST_STATE_NULL.
+ * Allows closing external resources. Since: 0.10.37.
+ * @start: Optional.
+ * Called when the element starts processing.
+ * Allows opening external resources.
+ * @stop: Optional.
+ * Called when the element stops processing.
+ * Allows closing external resources.
+ * @set_format: Optional.
+ * Notifies subclass of incoming data format.
+ * GstVideoCodecState fields have already been
+ * set according to provided caps.
+ * @handle_frame: Provides input frame to subclass.
+ * @reset: Optional.
+ * Allows subclass (encoder) to perform post-seek semantics reset.
+ * @finish: Optional.
+ * Called to request subclass to dispatch any pending remaining
+ * data (e.g. at EOS).
+ * @pre_push: Optional.
+ * Allows subclass to push frame downstream in whatever
+ * shape or form it deems appropriate. If not provided,
+ * provided encoded frame data is simply pushed downstream.
+ * @getcaps: Optional.
+ * Allows for a custom sink getcaps implementation (e.g.
+ * for multichannel input specification). If not implemented,
+ * default returns gst_video_encoder_proxy_getcaps
+ * applied to sink template caps.
+ * @sink_event: Optional.
+ * Event handler on the sink pad. This function should return
+ * TRUE if the event was handled and should be discarded
+ * (i.e. not unref'ed).
+ * @src_event: Optional.
+ * Event handler on the source pad. This function should return
+ * TRUE if the event was handled and should be discarded
+ * (i.e. not unref'ed).
+ * @propose_allocation: Optional.
+ * Propose buffer allocation parameters for upstream elements.
+ *
+ * Subclasses can override any of the available virtual methods or not, as
+ * needed. At minimum @handle_frame needs to be overridden, and @set_format
+ * and @get_caps are likely needed as well.
+ *
+ * Since: 0.10.36
+ */
+struct _GstVideoEncoderClass
+{
+ /*< private >*/
+ GstElementClass element_class;
+
+ /*< public >*/
+ /* virtual methods for subclasses */
+ gboolean (*open) (GstVideoEncoder *encoder);
+
+ gboolean (*close) (GstVideoEncoder *encoder);
+
+ gboolean (*start) (GstVideoEncoder *encoder);
+
+ gboolean (*stop) (GstVideoEncoder *encoder);
+
+ gboolean (*set_format) (GstVideoEncoder *encoder,
+ GstVideoCodecState *state);
+
+ GstFlowReturn (*handle_frame) (GstVideoEncoder *encoder,
+ GstVideoCodecFrame *frame);
+
+ gboolean (*reset) (GstVideoEncoder *encoder,
+ gboolean hard);
+
+ GstFlowReturn (*finish) (GstVideoEncoder *encoder);
+
+ GstFlowReturn (*pre_push) (GstVideoEncoder *encoder,
+ GstVideoCodecFrame *frame);
+
+ GstCaps * (*getcaps) (GstVideoEncoder *enc,
+ GstCaps *filter);
+
+ gboolean (*sink_event) (GstVideoEncoder *encoder,
+ GstEvent *event);
+
+ gboolean (*src_event) (GstVideoEncoder *encoder,
+ GstEvent *event);
+
+ gboolean (*propose_allocation) (GstVideoEncoder * encoder,
+ GstQuery * query);
+
+ /*< private >*/
+ /* FIXME before moving to base */
+ gpointer _gst_reserved[GST_PADDING_LARGE];
+};
+
+GType gst_video_encoder_get_type (void);
+
+GstVideoCodecState* gst_video_encoder_get_output_state (GstVideoEncoder *encoder);
+
+GstVideoCodecState* gst_video_encoder_set_output_state (GstVideoEncoder * encoder,
+ GstCaps * caps,
+ GstVideoCodecState * reference);
+
+GstVideoCodecFrame* gst_video_encoder_get_frame (GstVideoEncoder *encoder,
+ int frame_number);
+GstVideoCodecFrame* gst_video_encoder_get_oldest_frame (GstVideoEncoder *encoder);
+
+GstFlowReturn gst_video_encoder_finish_frame (GstVideoEncoder *encoder,
+ GstVideoCodecFrame *frame);
+
+GstCaps * gst_video_encoder_proxy_getcaps (GstVideoEncoder * enc,
+ GstCaps * caps,
+ GstCaps * filter);
+void gst_video_encoder_set_discont (GstVideoEncoder *encoder);
+gboolean gst_video_encoder_get_discont (GstVideoEncoder *encoder);
+
+void gst_video_encoder_set_latency (GstVideoEncoder *encoder,
+ GstClockTime min_latency,
+ GstClockTime max_latency);
+void gst_video_encoder_get_latency (GstVideoEncoder *encoder,
+ GstClockTime *min_latency,
+ GstClockTime *max_latency);
+
+void gst_video_encoder_set_headers (GstVideoEncoder *encoder,
+ GList *headers);
+G_END_DECLS
+
+#endif
+
diff --git a/gst-libs/gst/video/gstvideofilter.c b/gst-libs/gst/video/gstvideofilter.c
index e36e45d..40364d2 100644
--- a/gst-libs/gst/video/gstvideofilter.c
+++ b/gst-libs/gst/video/gstvideofilter.c
@@ -116,22 +116,44 @@ config_failed:
static gboolean
gst_video_filter_decide_allocation (GstBaseTransform * trans, GstQuery * query)
{
+ GstBufferPool *pool = NULL;
+ GstStructure *config;
+ guint min, max, size;
+ gboolean update_pool;
if (gst_query_get_n_allocation_pools (query) > 0) {
- GstBufferPool *pool = NULL;
+ gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
- gst_query_parse_nth_allocation_pool (query, 0, &pool, NULL, NULL, NULL);
+ if (!pool)
+ pool = gst_video_buffer_pool_new ();
- if (pool) {
- GstStructure *config;
-
- config = gst_buffer_pool_get_config (pool);
- gst_buffer_pool_config_add_option (config,
- GST_BUFFER_POOL_OPTION_VIDEO_META);
- gst_buffer_pool_set_config (pool, config);
- gst_object_unref (pool);
- }
+ update_pool = TRUE;
+ } else {
+ GstCaps *outcaps;
+ GstVideoInfo vinfo;
+
+ gst_query_parse_allocation (query, &outcaps, NULL);
+ gst_video_info_init (&vinfo);
+ gst_video_info_from_caps (&vinfo, outcaps);
+ size = vinfo.size;
+ min = max = 0;
+ update_pool = FALSE;
}
+
+ if (!pool)
+ pool = gst_video_buffer_pool_new ();
+
+ config = gst_buffer_pool_get_config (pool);
+ gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_VIDEO_META);
+ gst_buffer_pool_set_config (pool, config);
+
+ if (update_pool)
+ gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
+ else
+ gst_query_add_allocation_pool (query, pool, size, min, max);
+
+ gst_object_unref (pool);
+
return GST_BASE_TRANSFORM_CLASS (parent_class)->decide_allocation (trans,
query);
}
@@ -202,6 +224,8 @@ gst_video_filter_set_caps (GstBaseTransform * trans, GstCaps * incaps,
filter->out_info = out_info;
if (fclass->transform_frame == NULL)
gst_base_transform_set_in_place (trans, TRUE);
+ if (fclass->transform_frame_ip == NULL)
+ GST_BASE_TRANSFORM_CLASS (fclass)->transform_ip_on_passthrough = FALSE;
}
filter->negotiated = res;
diff --git a/gst-libs/gst/video/gstvideometa.c b/gst-libs/gst/video/gstvideometa.c
index 2c970c6..6cb10b6 100644
--- a/gst-libs/gst/video/gstvideometa.c
+++ b/gst-libs/gst/video/gstvideometa.c
@@ -164,7 +164,7 @@ default_unmap (GstVideoMeta * meta, guint plane, GstMapInfo * info)
/**
* gst_buffer_add_video_meta:
* @buffer: a #GstBuffer
- * @flags: #GstVideoFlags
+ * @flags: #GstVideoFrameFlags
* @format: a #GstVideoFormat
* @width: the width
* @height: the height
@@ -178,16 +178,17 @@ default_unmap (GstVideoMeta * meta, guint plane, GstMapInfo * info)
* Returns: the #GstVideoMeta on @buffer.
*/
GstVideoMeta *
-gst_buffer_add_video_meta (GstBuffer * buffer, GstVideoFlags flags,
- GstVideoFormat format, guint width, guint height)
+gst_buffer_add_video_meta (GstBuffer * buffer,
+ GstVideoFrameFlags flags, GstVideoFormat format, guint width, guint height)
{
GstVideoMeta *meta;
GstVideoInfo info;
gst_video_info_set_format (&info, format, width, height);
- meta = gst_buffer_add_video_meta_full (buffer, flags, format, width, height,
- info.finfo->n_planes, info.offset, info.stride);
+ meta =
+ gst_buffer_add_video_meta_full (buffer, flags, format, width,
+ height, info.finfo->n_planes, info.offset, info.stride);
return meta;
}
@@ -195,7 +196,7 @@ gst_buffer_add_video_meta (GstBuffer * buffer, GstVideoFlags flags,
/**
* gst_buffer_add_video_meta_full:
* @buffer: a #GstBuffer
- * @flags: #GstVideoFlags
+ * @flags: #GstVideoFrameFlags
* @format: a #GstVideoFormat
* @width: the width
* @height: the height
@@ -208,9 +209,9 @@ gst_buffer_add_video_meta (GstBuffer * buffer, GstVideoFlags flags,
* Returns: the #GstVideoMeta on @buffer.
*/
GstVideoMeta *
-gst_buffer_add_video_meta_full (GstBuffer * buffer, GstVideoFlags flags,
- GstVideoFormat format, guint width, guint height,
- guint n_planes, gsize offset[GST_VIDEO_MAX_PLANES],
+gst_buffer_add_video_meta_full (GstBuffer * buffer,
+ GstVideoFrameFlags flags, GstVideoFormat format, guint width,
+ guint height, guint n_planes, gsize offset[GST_VIDEO_MAX_PLANES],
gint stride[GST_VIDEO_MAX_PLANES])
{
GstVideoMeta *meta;
diff --git a/gst-libs/gst/video/gstvideometa.h b/gst-libs/gst/video/gstvideometa.h
index a9d77d7..ffba35e 100644
--- a/gst-libs/gst/video/gstvideometa.h
+++ b/gst-libs/gst/video/gstvideometa.h
@@ -58,7 +58,7 @@ struct _GstVideoMeta {
GstBuffer *buffer;
- GstVideoFlags flags;
+ GstVideoFrameFlags flags;
GstVideoFormat format;
gint id;
guint width;
@@ -79,9 +79,9 @@ const GstMetaInfo * gst_video_meta_get_info (void);
#define gst_buffer_get_video_meta(b) ((GstVideoMeta*)gst_buffer_get_meta((b),GST_VIDEO_META_API_TYPE))
GstVideoMeta * gst_buffer_get_video_meta_id (GstBuffer *buffer, gint id);
-GstVideoMeta * gst_buffer_add_video_meta (GstBuffer *buffer, GstVideoFlags flags,
+GstVideoMeta * gst_buffer_add_video_meta (GstBuffer *buffer, GstVideoFrameFlags flags,
GstVideoFormat format, guint width, guint height);
-GstVideoMeta * gst_buffer_add_video_meta_full (GstBuffer *buffer, GstVideoFlags flags,
+GstVideoMeta * gst_buffer_add_video_meta_full (GstBuffer *buffer, GstVideoFrameFlags flags,
GstVideoFormat format, guint width, guint height,
guint n_planes, gsize offset[GST_VIDEO_MAX_PLANES],
gint stride[GST_VIDEO_MAX_PLANES]);
diff --git a/gst-libs/gst/video/gstvideopool.c b/gst-libs/gst/video/gstvideopool.c
index 96801d1..485decc 100644
--- a/gst-libs/gst/video/gstvideopool.c
+++ b/gst-libs/gst/video/gstvideopool.c
@@ -260,7 +260,8 @@ video_buffer_pool_alloc (GstBufferPool * pool, GstBuffer ** buffer,
if (priv->add_videometa) {
GST_DEBUG_OBJECT (pool, "adding GstVideoMeta");
- gst_buffer_add_video_meta_full (*buffer, 0, GST_VIDEO_INFO_FORMAT (info),
+ gst_buffer_add_video_meta_full (*buffer, GST_VIDEO_FRAME_FLAG_NONE,
+ GST_VIDEO_INFO_FORMAT (info),
GST_VIDEO_INFO_WIDTH (info), GST_VIDEO_INFO_HEIGHT (info),
GST_VIDEO_INFO_N_PLANES (info), info->offset, info->stride);
}
@@ -328,7 +329,7 @@ gst_video_buffer_pool_finalize (GObject * object)
gst_caps_unref (priv->caps);
if (priv->allocator)
- gst_allocator_ref (priv->allocator);
+ gst_allocator_unref (priv->allocator);
G_OBJECT_CLASS (gst_video_buffer_pool_parent_class)->finalize (object);
}
diff --git a/gst-libs/gst/video/gstvideoutils.c b/gst-libs/gst/video/gstvideoutils.c
new file mode 100644
index 0000000..a47a6ef
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoutils.c
@@ -0,0 +1,165 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.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., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstvideoutils.h"
+
+#include <string.h>
+
+G_DEFINE_BOXED_TYPE (GstVideoCodecFrame, gst_video_codec_frame,
+ (GBoxedCopyFunc) gst_video_codec_frame_ref,
+ (GBoxedFreeFunc) gst_video_codec_frame_unref);
+
+static void
+_gst_video_codec_frame_free (GstVideoCodecFrame * frame)
+{
+ g_return_if_fail (frame != NULL);
+
+ GST_DEBUG ("free frame %p", frame);
+
+ if (frame->input_buffer) {
+ gst_buffer_unref (frame->input_buffer);
+ }
+
+ if (frame->output_buffer) {
+ gst_buffer_unref (frame->output_buffer);
+ }
+
+ g_list_foreach (frame->events, (GFunc) gst_event_unref, NULL);
+ g_list_free (frame->events);
+
+ if (frame->coder_hook_destroy_notify && frame->coder_hook)
+ frame->coder_hook_destroy_notify (frame->coder_hook);
+
+ g_slice_free (GstVideoCodecFrame, frame);
+}
+
+/**
+ * gst_video_codec_frame_set_hook:
+ * @frame: a #GstVideoCodecFrame
+ * @hook: private data
+ * @notify: (closure hook): a #GDestroyNotify
+ *
+ * Sets the #GDestroyNotify that will be called (along with the @hook) when
+ * the frame is freed.
+ *
+ * If a @hook was previously set, then the previous set @notify will be called
+ * before the @hook is replaced.
+ */
+void
+gst_video_codec_frame_set_hook (GstVideoCodecFrame * frame, void *hook,
+ GDestroyNotify notify)
+{
+ if (frame->coder_hook_destroy_notify && frame->coder_hook)
+ frame->coder_hook_destroy_notify (frame->coder_hook);
+
+ frame->coder_hook = hook;
+ frame->coder_hook_destroy_notify = notify;
+}
+
+/**
+ * gst_video_codec_frame_ref:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Increases the refcount of the given frame by one.
+ *
+ * Returns: @buf
+ */
+GstVideoCodecFrame *
+gst_video_codec_frame_ref (GstVideoCodecFrame * frame)
+{
+ g_return_val_if_fail (frame != NULL, NULL);
+
+ g_atomic_int_inc (&frame->ref_count);
+
+ return frame;
+}
+
+/**
+ * gst_video_codec_frame_unref:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Decreases the refcount of the frame. If the refcount reaches 0, the frame
+ * will be freed.
+ */
+void
+gst_video_codec_frame_unref (GstVideoCodecFrame * frame)
+{
+ g_return_if_fail (frame != NULL);
+ g_return_if_fail (frame->ref_count > 0);
+
+ if (g_atomic_int_dec_and_test (&frame->ref_count)) {
+ _gst_video_codec_frame_free (frame);
+ }
+}
+
+
+/**
+ * gst_video_codec_state_ref:
+ * @state: a #GstVideoCodecState
+ *
+ * Increases the refcount of the given state by one.
+ *
+ * Returns: @buf
+ */
+GstVideoCodecState *
+gst_video_codec_state_ref (GstVideoCodecState * state)
+{
+ g_return_val_if_fail (state != NULL, NULL);
+
+ g_atomic_int_inc (&state->ref_count);
+
+ return state;
+}
+
+static void
+_gst_video_codec_state_free (GstVideoCodecState * state)
+{
+ if (state->caps)
+ gst_caps_unref (state->caps);
+ if (state->codec_data)
+ gst_buffer_unref (state->codec_data);
+}
+
+/**
+ * gst_video_codec_state_unref:
+ * @state: a #GstVideoCodecState
+ *
+ * Decreases the refcount of the state. If the refcount reaches 0, the state
+ * will be freed.
+ */
+void
+gst_video_codec_state_unref (GstVideoCodecState * state)
+{
+ g_return_if_fail (state != NULL);
+ g_return_if_fail (state->ref_count > 0);
+
+ if (g_atomic_int_dec_and_test (&state->ref_count)) {
+ _gst_video_codec_state_free (state);
+ }
+}
+
+G_DEFINE_BOXED_TYPE (GstVideoCodecState, gst_video_codec_state,
+ (GBoxedCopyFunc) gst_video_codec_state_ref,
+ (GBoxedFreeFunc) gst_video_codec_state_unref);
diff --git a/gst-libs/gst/video/gstvideoutils.h b/gst-libs/gst/video/gstvideoutils.h
new file mode 100644
index 0000000..7495faa
--- /dev/null
+++ b/gst-libs/gst/video/gstvideoutils.h
@@ -0,0 +1,271 @@
+/* GStreamer
+ * Copyright (C) 2008 David Schleef <ds@schleef.org>
+ * Copyright (C) 2012 Collabora Ltd.
+ * Author : Edward Hervey <edward@collabora.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., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _GST_VIDEO_UTILS_H_
+#define _GST_VIDEO_UTILS_H_
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_VIDEO_CODEC_STATE \
+ (gst_video_codec_state_get_type())
+
+#define GST_TYPE_VIDEO_CODEC_FRAME \
+ (gst_video_codec_frame_get_type())
+
+typedef struct _GstVideoCodecState GstVideoCodecState;
+typedef struct _GstVideoCodecFrame GstVideoCodecFrame;
+
+/**
+ * GstVideoCodecState:
+ * @info: The #GstVideoInfo describing the stream
+ * @caps: The #GstCaps
+ * @codec_data: (optional) a #GstBuffer corresponding to the
+ * 'codec_data' field of a stream.
+ *
+ * Structure representing the state of an incoming or outgoing video
+ * stream for encoders and decoders.
+ *
+ * Decoders and encoders will receive such a state through their
+ * respective @set_format vmethods.
+ *
+ * Decoders and encoders can set the downstream state, by using the
+ * @gst_video_decoder_set_output_state() or
+ * @gst_video_encoder_set_output_state() methods.
+ */
+struct _GstVideoCodecState
+{
+ /*< private >*/
+ gint ref_count;
+
+ /*< public >*/
+ GstVideoInfo info;
+
+ GstCaps *caps;
+
+ GstBuffer *codec_data;
+
+ /*< private >*/
+ void *padding[GST_PADDING_LARGE];
+};
+
+/**
+ * GstVideoCodecFrameFlags:
+ * @GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY: is the frame only meant to be decoded
+ * @GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT: is the frame a synchronization point (keyframe)
+ * @GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME: should the output frame be made a keyframe
+ * @GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS: should the encoder output stream headers
+ *
+ * Flags for #GstVideoCodecFrame
+ */
+typedef enum
+{
+ GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY = (1<<0),
+ GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT = (1<<1),
+ GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME = (1<<2),
+ GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS = (1<<3)
+} GstVideoCodecFrameFlags;
+
+/**
+ * GST_VIDEO_CODEC_FRAME_FLAGS:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * The entire set of flags for the @frame
+ */
+#define GST_VIDEO_CODEC_FRAME_FLAGS(frame) ((frame)->flags)
+
+/**
+ * GST_VIDEO_CODEC_FRAME_FLAG_IS_SET:
+ * @frame: a #GstVideoCodecFrame
+ * @flag: a flag to check for
+ *
+ * Checks whether the given @flag is set
+ */
+#define GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame,flag) !!(GST_VIDEO_CODEC_FRAME_FLAGS(frame) & (flag))
+
+/**
+ * GST_VIDEO_CODEC_FRAME_FLAG_SET:
+ * @frame: a #GstVideoCodecFrame
+ * @flag: Flag to set, can be any number of bits in guint32.
+ *
+ * This macro sets the given bits
+ */
+#define GST_VIDEO_CODEC_FRAME_FLAG_SET(frame,flag) (GST_VIDEO_CODEC_FRAME_FLAGS(frame) |= (flag))
+
+/**
+ * GST_VIDEO_CODEC_FRAME_FLAG_UNSET:
+ * @frame: a #GstVideoCodecFrame
+ * @flag: Flag to unset
+ *
+ * This macro usets the given bits.
+ */
+#define GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame,flag) (GST_VIDEO_CODEC_FRAME_FLAGS(frame) &= ~(flag))
+
+/**
+ * GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Tests if the buffer should only be decoded but not sent downstream.
+ */
+#define GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
+
+/**
+ * GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Sets the buffer to not be sent downstream.
+ *
+ * Decoder implementation can use this if they have frames that
+ * are not meant to be displayed.
+ *
+ * Encoder implementation can safely ignore this field.
+ */
+#define GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
+
+/**
+ * GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Tests if the frame is a synchronization point (like a keyframe).
+ *
+ * Decoder implementations can use this to detect keyframes.
+ */
+#define GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
+
+/**
+ * GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Sets the frame to be a synchronization point (like a keyframe).
+ *
+ * Encoder implementations should set this accordingly.
+ *
+ * Decoder implementing parsing features should set this when they
+ * detect such a synchronization point.
+ */
+#define GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
+#define GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT(frame) (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
+
+
+/**
+ * GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Tests if the frame must be encoded as a keyframe. Applies only to
+ * frames provided to encoders. Decoders can safely ignore this field.
+ */
+#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
+#define GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
+#define GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME(frame) (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
+
+/**
+ * GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS:
+ * @frame: a #GstVideoCodecFrame
+ *
+ * Tests if encoder should output stream headers before outputting the
+ * resulting encoded buffer for the given frame.
+ *
+ * Applies only to frames provided to encoders. Decoders can safely
+ * ignore this field.
+ */
+#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS(frame) (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
+#define GST_VIDEO_CODEC_FRAME_SET_FORCE_KEYFRAME_HEADERS(frame) (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
+#define GST_VIDEO_CODEC_FRAME_UNSET_FORCE_KEYFRAME_HEADERS(frame) (GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
+
+/**
+ * GstVideoCodecFrame:
+ * @pts: Presentation timestamp
+ * @dts: Decoding timestamp
+ * @duration: Duration of the frame
+ * @system_frame_number: Unique identifier for the frame. Use this if you need
+ * to get hold of the frame later (like when data is being decoded).
+ * Typical usage in decoders is to set this on the opaque value provided
+ * to the library and get back the frame using gst_video_decoder_get_frame()
+ * @distance_from_sync: Distance in frames from the last synchronization point.
+ * @input_buffer: the input #GstBuffer that created this frame.
+ * @output_buffer: the output #GstBuffer. Implementations should set this either
+ * directly, or by using the @gst_video_decoder_alloc_output_frame() or
+ * @gst_video_decoder_alloc_output_buffer() methods.
+ * @field_index:
+ * @n_fields: number of fields in the frame (default 2). Decoders can change
+ * this if the frame contains a different number of fields.
+ * @deadline: Running time when the frame will be used.
+ * @events: Events that will be pushed downstream before this frame is pushed.
+ *
+ * A #GstVideoCodecFrame represents a video frame both in raw and
+ * encoded form.
+ */
+struct _GstVideoCodecFrame
+{
+ /*< private >*/
+ gint ref_count;
+
+ guint32 flags;
+
+ /*< public >*/
+ gint system_frame_number; /* ED */
+ gint decode_frame_number; /* ED */
+ gint presentation_frame_number; /* ED */
+
+ GstClockTime dts; /* ED */
+ GstClockTime pts; /* ED */
+ GstClockTime duration; /* ED */
+
+ int distance_from_sync; /* ED */
+
+ GstBuffer *input_buffer; /* ED */
+ GstBuffer *output_buffer; /* ED */
+
+ GstClockTime deadline; /* D */
+
+ /* Events that should be pushed downstream *before*
+ * the next output_buffer */
+ GList *events; /* ED */
+
+ /*< private >*/
+
+ void *coder_hook;
+ GDestroyNotify coder_hook_destroy_notify;
+
+ void *padding[GST_PADDING_LARGE];
+};
+
+/* GstVideoCodecState */
+GType gst_video_codec_state_get_type (void);
+
+GstVideoCodecState *gst_video_codec_state_ref (GstVideoCodecState * state);
+
+void gst_video_codec_state_unref (GstVideoCodecState * state);
+
+
+/* GstVideoCodecFrame */
+GType gst_video_codec_frame_get_type (void);
+
+GstVideoCodecFrame *gst_video_codec_frame_ref (GstVideoCodecFrame * frame);
+void gst_video_codec_frame_unref (GstVideoCodecFrame * frame);
+void gst_video_codec_frame_set_hook (GstVideoCodecFrame *frame,
+ void *hook,
+ GDestroyNotify notify);
+
+G_END_DECLS
+
+#endif
diff --git a/gst-libs/gst/interfaces/navigation.c b/gst-libs/gst/video/navigation.c
index f8c513a..d4c1b4f 100644
--- a/gst-libs/gst/interfaces/navigation.c
+++ b/gst-libs/gst/video/navigation.c
@@ -63,8 +63,8 @@
#include "config.h"
#endif
-#include <gst/interfaces/navigation.h>
-#include <gst/interfaces/interfaces-enumtypes.h>
+#include <gst/video/navigation.h>
+#include <gst/video/video-enumtypes.h>
static void gst_navigation_class_init (GstNavigationInterface * iface);
diff --git a/gst-libs/gst/interfaces/navigation.h b/gst-libs/gst/video/navigation.h
index 6bbe010..6bbe010 100644
--- a/gst-libs/gst/interfaces/navigation.h
+++ b/gst-libs/gst/video/navigation.h
diff --git a/gst-libs/gst/video/video-marshal.list b/gst-libs/gst/video/video-marshal.list
deleted file mode 100644
index b9d0c49..0000000
--- a/gst-libs/gst/video/video-marshal.list
+++ /dev/null
@@ -1 +0,0 @@
-VOID:OBJECT,INT
diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
index de66de5..9227c52 100644
--- a/gst-libs/gst/video/video.c
+++ b/gst-libs/gst/video/video.c
@@ -123,7 +123,6 @@ static VideoFormat formats[] = {
{0x00000000, {GST_VIDEO_FORMAT_UNKNOWN, "UNKNOWN", "unknown video", 0, DPTH0,
PSTR0, PLANE_NA,
OFFS0}},
-
MAKE_YUV_FORMAT (I420, "raw video", GST_MAKE_FOURCC ('I', '4', '2', '0'),
DPTH888, PSTR111,
PLANE012, OFFS0, SUB420),
@@ -240,6 +239,8 @@ static VideoFormat formats[] = {
MAKE_YUV_FORMAT (r210, "raw video", GST_MAKE_FOURCC ('r', '2', '1', '0'),
DPTH10_10_10,
PSTR444, PLANE0, OFFS0, SUB444),
+ {0x00000000, {GST_VIDEO_FORMAT_ENCODED, "ENCODED", "encoded video",
+ GST_VIDEO_FORMAT_FLAG_COMPLEX, DPTH0, PSTR0, PLANE_NA, OFFS0}},
};
/**
@@ -839,8 +840,8 @@ gst_video_info_from_caps (GstVideoInfo * info, const GstCaps * caps)
{
GstStructure *structure;
const gchar *s;
- GstVideoFormat format;
- gint width, height, views;
+ GstVideoFormat format = GST_VIDEO_FORMAT_UNKNOWN;
+ gint width = 0, height = 0, views;
gint fps_n, fps_d;
gint par_n, par_d;
@@ -852,19 +853,27 @@ gst_video_info_from_caps (GstVideoInfo * info, const GstCaps * caps)
structure = gst_caps_get_structure (caps, 0);
- if (!gst_structure_has_name (structure, "video/x-raw"))
- goto wrong_name;
+ if (gst_structure_has_name (structure, "video/x-raw")) {
+ if (!(s = gst_structure_get_string (structure, "format")))
+ goto no_format;
- if (!(s = gst_structure_get_string (structure, "format")))
- goto no_format;
+ format = gst_video_format_from_string (s);
+ if (format == GST_VIDEO_FORMAT_UNKNOWN)
+ goto unknown_format;
- format = gst_video_format_from_string (s);
- if (format == GST_VIDEO_FORMAT_UNKNOWN)
- goto unknown_format;
+ } else if (g_str_has_prefix (gst_structure_get_name (structure), "video/") ||
+ g_str_has_prefix (gst_structure_get_name (structure), "image/")) {
+ format = GST_VIDEO_FORMAT_ENCODED;
+ } else {
+ goto wrong_name;
+ }
- if (!gst_structure_get_int (structure, "width", &width))
+ /* width and height are mandatory, except for non-raw-formats */
+ if (!gst_structure_get_int (structure, "width", &width) &&
+ format != GST_VIDEO_FORMAT_ENCODED)
goto no_width;
- if (!gst_structure_get_int (structure, "height", &height))
+ if (!gst_structure_get_int (structure, "height", &height) &&
+ format != GST_VIDEO_FORMAT_ENCODED)
goto no_height;
gst_video_info_set_format (info, format, width, height);
@@ -917,7 +926,7 @@ gst_video_info_from_caps (GstVideoInfo * info, const GstCaps * caps)
/* ERROR */
wrong_name:
{
- GST_ERROR ("wrong name '%s', expected video/x-raw",
+ GST_ERROR ("wrong name '%s', expected video/ or image/",
gst_structure_get_name (structure));
return FALSE;
}
@@ -944,6 +953,42 @@ no_height:
}
/**
+ * gst_video_info_is_equal:
+ * @info: a #GstVideoInfo
+ * @other: a #GstVideoInfo
+ *
+ * Compares two #GstVideoInfo and returns whether they are equal or not
+ *
+ * Returns: %TRUE if @info and @other are equal, else %FALSE.
+ */
+gboolean
+gst_video_info_is_equal (const GstVideoInfo * info, const GstVideoInfo * other)
+{
+ if (GST_VIDEO_INFO_FORMAT (info) != GST_VIDEO_INFO_FORMAT (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_INTERLACE_MODE (info) !=
+ GST_VIDEO_INFO_INTERLACE_MODE (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_FLAGS (info) != GST_VIDEO_INFO_FLAGS (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_WIDTH (info) != GST_VIDEO_INFO_WIDTH (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_HEIGHT (info) != GST_VIDEO_INFO_HEIGHT (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_SIZE (info) != GST_VIDEO_INFO_SIZE (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_PAR_N (info) != GST_VIDEO_INFO_PAR_N (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_PAR_D (info) != GST_VIDEO_INFO_PAR_D (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_FPS_N (info) != GST_VIDEO_INFO_FPS_N (other))
+ return FALSE;
+ if (GST_VIDEO_INFO_FPS_D (info) != GST_VIDEO_INFO_FPS_D (other))
+ return FALSE;
+ return TRUE;
+}
+
+/**
* gst_video_info_to_caps:
* @info: a #GstVideoInfo
*
@@ -1030,12 +1075,15 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info,
else
meta = gst_buffer_get_video_meta_id (buffer, id);
+ /* copy the info */
+ frame->info = *info;
+
if (meta) {
- frame->info.flags = meta->flags;
frame->info.finfo = &formats[meta->format].info;
frame->info.width = meta->width;
frame->info.height = meta->height;
frame->id = meta->id;
+ frame->flags = meta->flags;
for (i = 0; i < info->finfo->n_planes; i++)
gst_video_meta_map (meta, i, &frame->map[i], &frame->data[i],
@@ -1046,9 +1094,17 @@ gst_video_frame_map_id (GstVideoFrame * frame, GstVideoInfo * info,
if (id != -1)
goto no_metadata;
- /* copy the info */
- frame->info = *info;
frame->id = id;
+ frame->flags = 0;
+
+ if (GST_VIDEO_INFO_IS_INTERLACED (info)) {
+ if (GST_BUFFER_FLAG_IS_SET (buffer, GST_VIDEO_BUFFER_FLAG_TFF))
+ frame->flags |= GST_VIDEO_FRAME_FLAG_TFF;
+ if (GST_BUFFER_FLAG_IS_SET (buffer, GST_VIDEO_BUFFER_FLAG_RFF))
+ frame->flags |= GST_VIDEO_FRAME_FLAG_RFF;
+ if (GST_BUFFER_FLAG_IS_SET (buffer, GST_VIDEO_BUFFER_FLAG_ONEFIELD))
+ frame->flags |= GST_VIDEO_FRAME_FLAG_ONEFIELD;
+ }
gst_buffer_map (buffer, &frame->map[0], flags);
@@ -1378,6 +1434,8 @@ fill_planes (GstVideoInfo * info)
info->size = info->offset[2] +
info->stride[2] * (GST_ROUND_UP_4 (height) / 4);
break;
+ case GST_VIDEO_FORMAT_ENCODED:
+ break;
case GST_VIDEO_FORMAT_UNKNOWN:
GST_ERROR ("invalid format");
g_warning ("invalid format");
@@ -1755,15 +1813,15 @@ gst_video_event_parse_downstream_force_key_unit (GstEvent * event,
return FALSE;
if (!gst_structure_get_clock_time (s, "timestamp", &ev_timestamp))
- return FALSE; /* Not a force key unit event */
+ ev_timestamp = GST_CLOCK_TIME_NONE;
if (!gst_structure_get_clock_time (s, "stream-time", &ev_stream_time))
- return FALSE; /* Not a force key unit event */
+ ev_stream_time = GST_CLOCK_TIME_NONE;
if (!gst_structure_get_clock_time (s, "running-time", &ev_running_time))
- return FALSE; /* Not a force key unit event */
+ ev_running_time = GST_CLOCK_TIME_NONE;
if (!gst_structure_get_boolean (s, "all-headers", &ev_all_headers))
- return FALSE; /* Not a force key unit event */
+ ev_all_headers = FALSE;
if (!gst_structure_get_uint (s, "count", &ev_count))
- return FALSE; /* Not a force key unit event */
+ ev_count = 0;
if (timestamp)
*timestamp = ev_timestamp;
@@ -1819,11 +1877,11 @@ gst_video_event_parse_upstream_force_key_unit (GstEvent * event,
return FALSE;
if (!gst_structure_get_clock_time (s, "running-time", &ev_running_time))
- return FALSE; /* Not a force key unit event */
+ ev_running_time = GST_CLOCK_TIME_NONE;
if (!gst_structure_get_boolean (s, "all-headers", &ev_all_headers))
- return FALSE; /* Not a force key unit event */
+ ev_all_headers = FALSE;
if (!gst_structure_get_uint (s, "count", &ev_count))
- return FALSE; /* Not a force key unit event */
+ ev_count = 0;
if (running_time)
*running_time = ev_running_time;
diff --git a/gst-libs/gst/video/video.h b/gst-libs/gst/video/video.h
index 226c589..35ec822 100644
--- a/gst-libs/gst/video/video.h
+++ b/gst-libs/gst/video/video.h
@@ -29,6 +29,7 @@ G_BEGIN_DECLS
/**
* GstVideoFormat:
* @GST_VIDEO_FORMAT_UNKNOWN: Unknown or unset video format id
+ * @GST_VIDEO_FORMAT_ENCODED: Encoded video format
* @GST_VIDEO_FORMAT_I420: planar 4:2:0 YUV
* @GST_VIDEO_FORMAT_YV12: planar 4:2:0 YVU (like I420 but UV planes swapped)
* @GST_VIDEO_FORMAT_YUY2: packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)
@@ -117,7 +118,8 @@ typedef enum {
GST_VIDEO_FORMAT_IYU1,
GST_VIDEO_FORMAT_ARGB64,
GST_VIDEO_FORMAT_AYUV64,
- GST_VIDEO_FORMAT_r210
+ GST_VIDEO_FORMAT_r210,
+ GST_VIDEO_FORMAT_ENCODED
} GstVideoFormat;
#define GST_VIDEO_MAX_PLANES 4
@@ -265,6 +267,7 @@ struct _GstVideoFormatInfo {
#define GST_VIDEO_FORMAT_INFO_HAS_ALPHA(info) ((info)->flags & GST_VIDEO_FORMAT_FLAG_ALPHA)
#define GST_VIDEO_FORMAT_INFO_IS_LE(info) ((info)->flags & GST_VIDEO_FORMAT_FLAG_LE)
#define GST_VIDEO_FORMAT_INFO_HAS_PALETTE(info) ((info)->flags & GST_VIDEO_FORMAT_FLAG_PALETTE)
+#define GST_VIDEO_FORMAT_INFO_IS_COMPLEX(info) ((info)->flags & GST_VIDEO_FORMAT_FLAG_COMPLEX)
#define GST_VIDEO_FORMAT_INFO_BITS(info) ((info)->bits)
#define GST_VIDEO_FORMAT_INFO_N_COMPONENTS(info) ((info)->n_components)
@@ -309,12 +312,17 @@ typedef struct _GstVideoFrame GstVideoFrame;
/**
* GstVideoInterlaceMode:
* @GST_VIDEO_INTERLACE_MODE_PROGRESSIVE: all frames are progressive
- * @GST_VIDEO_INTERLACE_MODE_INTERLEAVED: video is interlaced and all fields
- * are interlaced in one frame.
- * @GST_VIDEO_INTERLACE_MODE_MIXED: video contains both interlaced and
- * progressive frames, the buffer flags describe the frame and fields.
- * @GST_VIDEO_INTERLACE_MODE_FIELDS: video is interlaced and fields are stored
- * separately. Use the id property to get access to the required field.
+ * @GST_VIDEO_INTERLACE_MODE_INTERLEAVED: 2 fields are interleaved in one video
+ * frame. Extra buffer flags describe the field order.
+ * @GST_VIDEO_INTERLACE_MODE_MIXED: frames contains both interlaced and
+ * progressive video, the buffer flags describe the frame and fields.
+ * @GST_VIDEO_INTERLACE_MODE_FIELDS: 2 fields are stored in one buffer, use the
+ * frame ID to get access to the required field. For multiview (the
+ * 'views' property > 1) the fields of view N can be found at frame ID
+ * (N * 2) and (N * 2) + 1.
+ * Each field has only half the amount of lines as noted in the
+ * height property. This mode requires multiple GstVideoMeta metadata
+ * to describe the fields.
*
* The possible values of the #GstVideoInterlaceMode describing the interlace
* mode of the stream.
@@ -329,10 +337,6 @@ typedef enum {
/**
* GstVideoFlags:
* @GST_VIDEO_FLAG_NONE: no flags
- * @GST_VIDEO_FLAG_INTERLACED: The video is interlaced
- * @GST_VIDEO_FLAG_TFF: The video has the top field first
- * @GST_VIDEO_FLAG_RFF: The video has the repeat flag
- * @GST_VIDEO_FLAG_ONEFIELD: one field
* @GST_VIDEO_FLAG_VARIABLE_FPS: a variable fps is selected, fps_n and fps_d
* denote the maximum fps of the video
*
@@ -340,11 +344,7 @@ typedef enum {
*/
typedef enum {
GST_VIDEO_FLAG_NONE = 0,
- GST_VIDEO_FLAG_INTERLACED = (1 << 0),
- GST_VIDEO_FLAG_TFF = (1 << 1),
- GST_VIDEO_FLAG_RFF = (1 << 2),
- GST_VIDEO_FLAG_ONEFIELD = (1 << 3),
- GST_VIDEO_FLAG_VARIABLE_FPS = (1 << 4)
+ GST_VIDEO_FLAG_VARIABLE_FPS = (1 << 0)
} GstVideoFlags;
/**
@@ -601,6 +601,24 @@ gboolean gst_video_info_convert (GstVideoInfo *info,
gint64 src_value,
GstFormat dest_format,
gint64 *dest_value);
+gboolean gst_video_info_is_equal (const GstVideoInfo *info,
+ const GstVideoInfo *other);
+
+/**
+ * GstVideoFrameFlags:
+ * @GST_VIDEO_FRAME_FLAG_NONE: no flags
+ * @GST_VIDEO_FRAME_FLAG_TFF: The video frame has the top field first
+ * @GST_VIDEO_FRAME_FLAG_RFF: The video frame has the repeat flag
+ * @GST_VIDEO_FRAME_FLAG_ONEFIELD: The video frame has one field
+ *
+ * Extra video frame flags
+ */
+typedef enum {
+ GST_VIDEO_FRAME_FLAG_NONE = 0,
+ GST_VIDEO_FRAME_FLAG_TFF = (1 << 0),
+ GST_VIDEO_FRAME_FLAG_RFF = (1 << 1),
+ GST_VIDEO_FRAME_FLAG_ONEFIELD = (1 << 2)
+} GstVideoFrameFlags;
/**
* GstVideoFrame:
@@ -616,6 +634,7 @@ gboolean gst_video_info_convert (GstVideoInfo *info,
*/
struct _GstVideoFrame {
GstVideoInfo info;
+ GstVideoFrameFlags flags;
GstBuffer *buffer;
gpointer meta;
@@ -693,7 +712,6 @@ gboolean gst_video_frame_copy_plane (GstVideoFrame *dest, const GstVideoFr
/**
* GstVideoBufferFlags:
- * @GST_VIDEO_BUFFER_FLAG_INTERLACED: Mark #GstBuffer as interlaced
* @GST_VIDEO_BUFFER_FLAG_TFF: If the #GstBuffer is interlaced, then the first field
* in the video frame is the top field. If unset, the
* bottom field is first.
@@ -707,10 +725,9 @@ gboolean gst_video_frame_copy_plane (GstVideoFrame *dest, const GstVideoFr
* Additional video buffer flags.
*/
typedef enum {
- GST_VIDEO_BUFFER_FLAG_INTERLACED = (GST_BUFFER_FLAG_LAST << 0),
- GST_VIDEO_BUFFER_FLAG_TFF = (GST_BUFFER_FLAG_LAST << 1),
- GST_VIDEO_BUFFER_FLAG_RFF = (GST_BUFFER_FLAG_LAST << 2),
- GST_VIDEO_BUFFER_FLAG_ONEFIELD = (GST_BUFFER_FLAG_LAST << 3),
+ GST_VIDEO_BUFFER_FLAG_TFF = (GST_BUFFER_FLAG_LAST << 0),
+ GST_VIDEO_BUFFER_FLAG_RFF = (GST_BUFFER_FLAG_LAST << 1),
+ GST_VIDEO_BUFFER_FLAG_ONEFIELD = (GST_BUFFER_FLAG_LAST << 2),
GST_VIDEO_BUFFER_FLAG_LAST = (GST_BUFFER_FLAG_LAST << 8)
} GstVideoBufferFlags;
diff --git a/gst-libs/gst/video/videoorientation.c b/gst-libs/gst/video/videoorientation.c
index 0f8ede4..bb96286 100644
--- a/gst-libs/gst/video/videoorientation.c
+++ b/gst-libs/gst/video/videoorientation.c
@@ -24,7 +24,6 @@
#endif
#include "videoorientation.h"
-#include "video-marshal.h"
#include <string.h>
diff --git a/gst-libs/gst/video/videoorientation.h b/gst-libs/gst/video/videoorientation.h
index cdc7bf4..c7407b7 100644
--- a/gst-libs/gst/video/videoorientation.h
+++ b/gst-libs/gst/video/videoorientation.h
@@ -23,7 +23,6 @@
#define __GST_VIDEO_ORIENTATION_H__
#include <gst/gst.h>
-#include <gst/interfaces/interfaces-enumtypes.h>
G_BEGIN_DECLS
diff --git a/gst-libs/gst/video/videooverlay.c b/gst-libs/gst/video/videooverlay.c
index 234ff72..99e2f48 100644
--- a/gst-libs/gst/video/videooverlay.c
+++ b/gst-libs/gst/video/videooverlay.c
@@ -140,7 +140,7 @@
* <title>GstVideoOverlay and Gtk+</title>
* <para>
* |[
- * #include &lt;gst/interfaces/xoverlay.h&gt;
+ * #include &lt;gst/video/xoverlay.h&gt;
* #include &lt;gtk/gtk.h&gt;
* #ifdef GDK_WINDOWING_X11
* #include &lt;gdk/gdkx.h&gt; // for GDK_WINDOW_XID
@@ -244,7 +244,7 @@
* |[
* #include &lt;glib.h&gt;
* #include &lt;gst/gst.h&gt;
- * #include &lt;gst/interfaces/videooverlay.h&gt;
+ * #include &lt;gst/video/videooverlay.h&gt;
*
* #include &lt;QApplication&gt;
* #include &lt;QTimer&gt;
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index f9d5544..0f8c471 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,6 +36,16 @@ A wide range of video and audio decoders, encoders, and filters are included.
<release>
<Version>
+ <revision>0.11.91</revision>
+ <branch>0.11</branch>
+ <name>Fee-fi-fo-fum</name>
+ <created>2012-05-13</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.11.91.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>0.11.90</revision>
<branch>0.11</branch>
<name>Golden bells&excl; What a world of happiness their harmony foretells&excl;</name>
diff --git a/gst-plugins-base.spec b/gst-plugins-base.spec
index 66584df..835143f 100644
--- a/gst-plugins-base.spec
+++ b/gst-plugins-base.spec
@@ -4,7 +4,7 @@
%define gst_minver 0.11.0
Name: %{gstreamer}-plugins-base
-Version: 0.11.90
+Version: 0.11.91
Release: 1.gst
Summary: GStreamer streaming media framework plug-ins
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 6464638..6c49e6b 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/gst/adder/Makefile.in b/gst/adder/Makefile.in
index eddd0e5..43c04e0 100644
--- a/gst/adder/Makefile.in
+++ b/gst/adder/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -547,7 +547,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/adder/gstadder.c b/gst/adder/gstadder.c
index 930b198..20ed243 100644
--- a/gst/adder/gstadder.c
+++ b/gst/adder/gstadder.c
@@ -116,8 +116,8 @@ static gboolean gst_adder_sink_query (GstPad * pad, GstObject * parent,
GstQuery * query);
static gboolean gst_adder_src_event (GstPad * pad, GstObject * parent,
GstEvent * event);
-static gboolean gst_adder_sink_event (GstCollectPads2 * pads,
- GstCollectData2 * pad, GstEvent * event, gpointer user_data);
+static gboolean gst_adder_sink_event (GstCollectPads * pads,
+ GstCollectData * pad, GstEvent * event, gpointer user_data);
static GstPad *gst_adder_request_new_pad (GstElement * element,
GstPadTemplate * temp, const gchar * unused, const GstCaps * caps);
@@ -126,10 +126,10 @@ static void gst_adder_release_pad (GstElement * element, GstPad * pad);
static GstStateChangeReturn gst_adder_change_state (GstElement * element,
GstStateChange transition);
-static GstFlowReturn gst_adder_do_clip (GstCollectPads2 * pads,
- GstCollectData2 * data, GstBuffer * buffer, GstBuffer ** out,
+static GstFlowReturn gst_adder_do_clip (GstCollectPads * pads,
+ GstCollectData * data, GstBuffer * buffer, GstBuffer ** out,
gpointer user_data);
-static GstFlowReturn gst_adder_collected (GstCollectPads2 * pads,
+static GstFlowReturn gst_adder_collected (GstCollectPads * pads,
gpointer user_data);
/* non-clipping versions (for float) */
@@ -701,7 +701,7 @@ gst_adder_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
* as we need to take the stream lock.
*/
gst_pad_push_event (adder->srcpad, gst_event_new_flush_start ());
- gst_collect_pads2_set_flushing (adder->collect, TRUE);
+ gst_collect_pads_set_flushing (adder->collect, TRUE);
/* We can't send FLUSH_STOP here since upstream could start pushing data
* after we unlock adder->collect.
@@ -716,7 +716,7 @@ gst_adder_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
/* now wait for the collected to be finished and mark a new
* segment. After we have the lock, no collect function is running and no
* new collect function will be called for as long as we're flushing. */
- GST_COLLECT_PADS2_STREAM_LOCK (adder->collect);
+ GST_COLLECT_PADS_STREAM_LOCK (adder->collect);
adder->segment.rate = rate;
if (curtype == GST_SEEK_TYPE_SET)
adder->segment.start = cur;
@@ -729,9 +729,9 @@ gst_adder_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
if (flush) {
/* Yes, we need to call _set_flushing again *WHEN* the streaming threads
* have stopped so that the cookie gets properly updated. */
- gst_collect_pads2_set_flushing (adder->collect, TRUE);
+ gst_collect_pads_set_flushing (adder->collect, TRUE);
}
- GST_COLLECT_PADS2_STREAM_UNLOCK (adder->collect);
+ GST_COLLECT_PADS_STREAM_UNLOCK (adder->collect);
GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT,
event);
@@ -774,11 +774,11 @@ done:
}
static gboolean
-gst_adder_sink_event (GstCollectPads2 * pads, GstCollectData2 * pad,
+gst_adder_sink_event (GstCollectPads * pads, GstCollectData * pad,
GstEvent * event, gpointer user_data)
{
GstAdder *adder = GST_ADDER (user_data);
- gboolean res = FALSE;
+ gboolean res = TRUE, discard = FALSE;
GST_DEBUG_OBJECT (pad->pad, "Got %s event on sink pad",
GST_EVENT_TYPE_NAME (event));
@@ -791,12 +791,8 @@ gst_adder_sink_event (GstCollectPads2 * pads, GstCollectData2 * pad,
gst_event_parse_caps (event, &caps);
res = gst_adder_setcaps (adder, pad->pad, caps);
gst_event_unref (event);
-
- break;
+ event = NULL;
}
- case GST_EVENT_FLUSH_START:
- res = gst_pad_event_default (pad->pad, GST_OBJECT (adder), event);
- break;
case GST_EVENT_FLUSH_STOP:
/* we received a flush-stop. We will only forward it when
* flush_stop_pending is set, and we will unset it then.
@@ -805,10 +801,8 @@ gst_adder_sink_event (GstCollectPads2 * pads, GstCollectData2 * pad,
TRUE, FALSE)) {
g_atomic_int_set (&adder->new_segment_pending, TRUE);
GST_DEBUG_OBJECT (pad->pad, "forwarding flush stop");
- res = gst_pad_event_default (pad->pad, GST_OBJECT (adder), event);
} else {
- gst_event_unref (event);
- res = TRUE;
+ discard = TRUE;
GST_DEBUG_OBJECT (pad->pad, "eating flush stop");
}
/* Clear pending tags */
@@ -821,7 +815,7 @@ gst_adder_sink_event (GstCollectPads2 * pads, GstCollectData2 * pad,
case GST_EVENT_TAG:
/* collect tags here so we can push them out when we collect data */
adder->pending_events = g_list_append (adder->pending_events, event);
- res = TRUE;
+ event = NULL;
break;
case GST_EVENT_SEGMENT:
if (g_atomic_int_compare_and_exchange (&adder->wait_for_new_segment,
@@ -830,19 +824,16 @@ gst_adder_sink_event (GstCollectPads2 * pads, GstCollectData2 * pad,
* see FIXME in gst_adder_collected() */
g_atomic_int_set (&adder->new_segment_pending, TRUE);
}
- gst_event_unref (event);
- res = TRUE;
- break;
- case GST_EVENT_EOS:
- gst_event_unref (event);
- res = TRUE;
+ discard = TRUE;
break;
default:
- res = gst_pad_event_default (pad->pad, GST_OBJECT (adder), event);
break;
}
- return res;
+ if (G_LIKELY (event))
+ return gst_collect_pads_event_default (pads, pad, event, discard);
+ else
+ return res;
}
static void
@@ -905,12 +896,12 @@ gst_adder_init (GstAdder * adder)
adder->filter_caps = NULL;
/* keep track of the sinkpads requested */
- adder->collect = gst_collect_pads2_new ();
- gst_collect_pads2_set_function (adder->collect,
+ adder->collect = gst_collect_pads_new ();
+ gst_collect_pads_set_function (adder->collect,
GST_DEBUG_FUNCPTR (gst_adder_collected), adder);
- gst_collect_pads2_set_clip_function (adder->collect,
+ gst_collect_pads_set_clip_function (adder->collect,
GST_DEBUG_FUNCPTR (gst_adder_do_clip), adder);
- gst_collect_pads2_set_event_function (adder->collect,
+ gst_collect_pads_set_event_function (adder->collect,
GST_DEBUG_FUNCPTR (gst_adder_sink_event), adder);
}
@@ -1009,7 +1000,7 @@ gst_adder_request_new_pad (GstElement * element, GstPadTemplate * templ,
g_free (name);
gst_pad_set_query_function (newpad, GST_DEBUG_FUNCPTR (gst_adder_sink_query));
- gst_collect_pads2_add_pad (adder->collect, newpad, sizeof (GstCollectData2));
+ gst_collect_pads_add_pad (adder->collect, newpad, sizeof (GstCollectData));
/* takes ownership of the pad */
if (!gst_element_add_pad (GST_ELEMENT (adder), newpad))
@@ -1026,7 +1017,7 @@ not_sink:
could_not_add:
{
GST_DEBUG_OBJECT (adder, "could not add pad");
- gst_collect_pads2_remove_pad (adder->collect, newpad);
+ gst_collect_pads_remove_pad (adder->collect, newpad);
gst_object_unref (newpad);
return NULL;
}
@@ -1042,12 +1033,12 @@ gst_adder_release_pad (GstElement * element, GstPad * pad)
GST_DEBUG_OBJECT (adder, "release pad %s:%s", GST_DEBUG_PAD_NAME (pad));
if (adder->collect)
- gst_collect_pads2_remove_pad (adder->collect, pad);
+ gst_collect_pads_remove_pad (adder->collect, pad);
gst_element_remove_pad (element, pad);
}
static GstFlowReturn
-gst_adder_do_clip (GstCollectPads2 * pads, GstCollectData2 * data,
+gst_adder_do_clip (GstCollectPads * pads, GstCollectData * data,
GstBuffer * buffer, GstBuffer ** out, gpointer user_data)
{
GstAdder *adder = GST_ADDER (user_data);
@@ -1063,7 +1054,7 @@ gst_adder_do_clip (GstCollectPads2 * pads, GstCollectData2 * data,
}
static GstFlowReturn
-gst_adder_collected (GstCollectPads2 * pads, gpointer user_data)
+gst_adder_collected (GstCollectPads * pads, gpointer user_data)
{
/*
* combine streams by adding data values
@@ -1105,7 +1096,7 @@ gst_adder_collected (GstCollectPads2 * pads, gpointer user_data)
/* get available bytes for reading, this can be 0 which could mean empty
* buffers or EOS, which we will catch when we loop over the pads. */
- outsize = gst_collect_pads2_available (pads);
+ outsize = gst_collect_pads_available (pads);
/* can only happen when no pads to collect or all EOS */
if (outsize == 0)
goto eos;
@@ -1119,18 +1110,18 @@ gst_adder_collected (GstCollectPads2 * pads, gpointer user_data)
outsize, bps, bpf);
for (collected = pads->data; collected; collected = next) {
- GstCollectData2 *collect_data;
+ GstCollectData *collect_data;
GstBuffer *inbuf;
gboolean is_gap;
/* take next to see if this is the last collectdata */
next = g_slist_next (collected);
- collect_data = (GstCollectData2 *) collected->data;
+ collect_data = (GstCollectData *) collected->data;
/* get a buffer of size bytes, if we get a buffer, it is at least outsize
* bytes big. */
- inbuf = gst_collect_pads2_take_buffer (pads, collect_data, outsize);
+ inbuf = gst_collect_pads_take_buffer (pads, collect_data, outsize);
/* NULL means EOS or an empty buffer so we still need to flush in
* case of an empty buffer. */
if (inbuf == NULL) {
@@ -1323,14 +1314,14 @@ gst_adder_change_state (GstElement * element, GstStateChange transition)
adder->new_segment_pending = TRUE;
adder->wait_for_new_segment = FALSE;
gst_segment_init (&adder->segment, GST_FORMAT_TIME);
- gst_collect_pads2_start (adder->collect);
+ gst_collect_pads_start (adder->collect);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
- /* need to unblock the collectpads2 before calling the
+ /* need to unblock the collectpads before calling the
* parent change_state so that streaming can finish */
- gst_collect_pads2_stop (adder->collect);
+ gst_collect_pads_stop (adder->collect);
break;
default:
break;
diff --git a/gst/adder/gstadder.h b/gst/adder/gstadder.h
index 9fedf06..7aa0fa3 100644
--- a/gst/adder/gstadder.h
+++ b/gst/adder/gstadder.h
@@ -24,7 +24,7 @@
#define __GST_ADDER_H__
#include <gst/gst.h>
-#include <gst/base/gstcollectpads2.h>
+#include <gst/base/gstcollectpads.h>
#include <gst/audio/audio.h>
G_BEGIN_DECLS
@@ -51,7 +51,7 @@ struct _GstAdder {
GstElement element;
GstPad *srcpad;
- GstCollectPads2 *collect;
+ GstCollectPads *collect;
/* pad counter, used for creating unique request pads */
gint padcount;
diff --git a/gst/app/Makefile.in b/gst/app/Makefile.in
index b065392..2e68d9a 100644
--- a/gst/app/Makefile.in
+++ b/gst/app/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -501,7 +501,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/audioconvert/Makefile.in b/gst/audioconvert/Makefile.in
index f5e30ad..1b68d54 100644
--- a/gst/audioconvert/Makefile.in
+++ b/gst/audioconvert/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -566,7 +566,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/audiorate/Makefile.in b/gst/audiorate/Makefile.in
index 8fd8ceb..6cbaa9e 100644
--- a/gst/audiorate/Makefile.in
+++ b/gst/audiorate/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -507,7 +507,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/audioresample/Makefile.in b/gst/audioresample/Makefile.in
index 056669c..ba0b193 100644
--- a/gst/audioresample/Makefile.in
+++ b/gst/audioresample/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -543,7 +543,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/audiotestsrc/Makefile.in b/gst/audiotestsrc/Makefile.in
index 5aef7bb..5b207ad 100644
--- a/gst/audiotestsrc/Makefile.in
+++ b/gst/audiotestsrc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -510,7 +510,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/encoding/Makefile.in b/gst/encoding/Makefile.in
index 904cfc1..aa55232 100644
--- a/gst/encoding/Makefile.in
+++ b/gst/encoding/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -547,7 +547,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/gdp/Makefile.in b/gst/gdp/Makefile.in
index c7cebfe..d9220da 100644
--- a/gst/gdp/Makefile.in
+++ b/gst/gdp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -517,7 +517,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/gdp/gstgdppay.c b/gst/gdp/gstgdppay.c
index 53f0611..d26c0a3 100644
--- a/gst/gdp/gstgdppay.c
+++ b/gst/gdp/gstgdppay.c
@@ -678,6 +678,7 @@ gst_gdp_pay_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
gst_event_parse_caps (event, &caps);
if (this->caps == NULL || !gst_caps_is_equal (this->caps, caps)) {
GST_INFO_OBJECT (pad, "caps changed to %" GST_PTR_FORMAT, caps);
+ gst_buffer_replace (&outbuffer, NULL);
gst_caps_replace (&this->caps, caps);
outbuffer = gst_gdp_buffer_from_caps (this, caps);
if (outbuffer == NULL)
diff --git a/gst/gio/Makefile.in b/gst/gio/Makefile.in
index 31e320f..f7d3c68 100644
--- a/gst/gio/Makefile.in
+++ b/gst/gio/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -531,7 +531,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/playback/Makefile.am b/gst/playback/Makefile.am
index afec333..61c60b0 100644
--- a/gst/playback/Makefile.am
+++ b/gst/playback/Makefile.am
@@ -22,7 +22,6 @@ libgstplayback_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_LIBS)
libgstplayback_la_LIBTOOLFLAGS = --tag=disable-static
diff --git a/gst/playback/Makefile.in b/gst/playback/Makefile.in
index e8d2fbc..aad467a 100644
--- a/gst/playback/Makefile.in
+++ b/gst/playback/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -132,7 +132,6 @@ am__DEPENDENCIES_1 =
libgstplayback_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1)
am_libgstplayback_la_OBJECTS = libgstplayback_la-gstdecodebin2.lo \
libgstplayback_la-gsturidecodebin.lo \
@@ -492,7 +491,6 @@ libgstplayback_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_LIBS)
libgstplayback_la_LIBTOOLFLAGS = --tag=disable-static
@@ -554,7 +552,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 46ff1f2..5bef2e3 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -152,6 +152,7 @@ struct _GstDecodeBin
guint max_size_buffers;
guint64 max_size_time;
gboolean post_stream_topology;
+ guint64 connection_speed;
GstElement *typefind; /* this holds the typefind object */
@@ -240,6 +241,7 @@ enum
#define DEFAULT_MAX_SIZE_TIME 0
#define DEFAULT_POST_STREAM_TOPOLOGY FALSE
#define DEFAULT_EXPOSE_ALL_STREAMS TRUE
+#define DEFAULT_CONNECTION_SPEED 0
/* Properties */
enum
@@ -256,6 +258,7 @@ enum
PROP_MAX_SIZE_TIME,
PROP_POST_STREAM_TOPOLOGY,
PROP_EXPOSE_ALL_STREAMS,
+ PROP_CONNECTION_SPEED,
PROP_LAST
};
@@ -887,6 +890,19 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
DEFAULT_EXPOSE_ALL_STREAMS,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstDecodeBin2::connection-speed
+ *
+ * Network connection speed in kbps (0 = unknownw)
+ *
+ * Since: 0.10.XX
+ */
+ g_object_class_install_property (gobject_klass, PROP_CONNECTION_SPEED,
+ g_param_spec_uint64 ("connection-speed", "Connection Speed",
+ "Network connection speed in kbps (0 = unknown)",
+ 0, G_MAXUINT64 / 1000, DEFAULT_CONNECTION_SPEED,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
klass->autoplug_continue =
@@ -994,6 +1010,7 @@ gst_decode_bin_init (GstDecodeBin * decode_bin)
decode_bin->max_size_time = DEFAULT_MAX_SIZE_TIME;
decode_bin->expose_allstreams = DEFAULT_EXPOSE_ALL_STREAMS;
+ decode_bin->connection_speed = DEFAULT_CONNECTION_SPEED;
}
static void
@@ -1189,6 +1206,11 @@ gst_decode_bin_set_property (GObject * object, guint prop_id,
case PROP_EXPOSE_ALL_STREAMS:
dbin->expose_allstreams = g_value_get_boolean (value);
break;
+ case PROP_CONNECTION_SPEED:
+ GST_OBJECT_LOCK (dbin);
+ dbin->connection_speed = g_value_get_uint64 (value) * 1000;
+ GST_OBJECT_UNLOCK (dbin);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1236,6 +1258,11 @@ gst_decode_bin_get_property (GObject * object, guint prop_id,
case PROP_EXPOSE_ALL_STREAMS:
g_value_set_boolean (value, dbin->expose_allstreams);
break;
+ case PROP_CONNECTION_SPEED:
+ GST_OBJECT_LOCK (dbin);
+ g_value_set_uint64 (value, dbin->connection_speed / 1000);
+ GST_OBJECT_UNLOCK (dbin);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1770,6 +1797,7 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
GstDecodeElement *delem;
GstElement *element;
GstPad *sinkpad;
+ GParamSpec *pspec;
gboolean subtitle;
/* Set dpad target to pad again, it might've been unset
@@ -1944,12 +1972,55 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
chain->demuxer = is_demuxer_element (element);
CHAIN_MUTEX_UNLOCK (chain);
+ /* Set connection-speed property if needed */
+ if (chain->demuxer == TRUE) {
+ GParamSpec *pspec;
+
+ if ((pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (element),
+ "connection-speed"))) {
+ guint64 speed = dbin->connection_speed / 1000;
+ gboolean wrong_type = FALSE;
+
+ if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT) {
+ GParamSpecUInt *pspecuint = G_PARAM_SPEC_UINT (pspec);
+
+ speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+ } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT) {
+ GParamSpecInt *pspecint = G_PARAM_SPEC_INT (pspec);
+
+ speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
+ } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT64) {
+ GParamSpecUInt64 *pspecuint = G_PARAM_SPEC_UINT64 (pspec);
+
+ speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+ } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT64) {
+ GParamSpecInt64 *pspecint = G_PARAM_SPEC_INT64 (pspec);
+
+ speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
+ } else {
+ GST_WARNING_OBJECT (dbin,
+ "The connection speed property %" G_GUINT64_FORMAT " of type %s"
+ " is not usefull not setting it", speed,
+ g_type_name (G_PARAM_SPEC_TYPE (pspec)));
+ wrong_type = TRUE;
+ }
+
+ if (wrong_type == FALSE) {
+ GST_DEBUG_OBJECT (dbin, "setting connection-speed=%" G_GUINT64_FORMAT
+ " to demuxer element", speed);
+
+ g_object_set (element, "connection-speed", speed, NULL);
+ }
+ }
+ }
+
/* link this element further */
connect_element (dbin, element, chain);
/* try to configure the subtitle encoding property when we can */
- if (g_object_class_find_property (G_OBJECT_GET_CLASS (element),
- "subtitle-encoding")) {
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (element),
+ "subtitle-encoding");
+ if (pspec && G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_STRING) {
SUBTITLE_LOCK (dbin);
GST_DEBUG_OBJECT (dbin,
"setting subtitle-encoding=%s to element", dbin->encoding);
@@ -1957,8 +2028,9 @@ connect_pad (GstDecodeBin * dbin, GstElement * src, GstDecodePad * dpad,
NULL);
SUBTITLE_UNLOCK (dbin);
subtitle = TRUE;
- } else
+ } else {
subtitle = FALSE;
+ }
/* Bring the element to the state of the parent */
if ((gst_element_set_state (element,
@@ -3749,6 +3821,14 @@ source_pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
GstDecodeChain *chain;
GstDecodeBin *dbin;
+ if ((GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) &&
+ (GST_EVENT_IS_STICKY (GST_PAD_PROBE_INFO_EVENT (info))
+ || !GST_EVENT_IS_SERIALIZED (GST_PAD_PROBE_INFO_EVENT (info)))) {
+ /* do not block on sticky or out of band events otherwise the allocation query
+ from demuxer might block the loop thread */
+ return GST_PAD_PROBE_PASS;
+ }
+
chain = dpad->chain;
dbin = chain->dbin;
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index 9dab999..c997104 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -230,7 +230,7 @@
#include <gst/pbutils/pbutils.h>
#include <gst/audio/streamvolume.h>
#include <gst/video/videooverlay.h>
-#include <gst/interfaces/navigation.h>
+#include <gst/video/navigation.h>
#include <gst/video/colorbalance.h>
#include "gstplay-enum.h"
#include "gstplayback.h"
@@ -2715,6 +2715,9 @@ pad_added_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
* the sink. */
changed = FALSE;
sinkpad = NULL;
+
+ /* store the selector for the pad */
+ g_object_set_data (G_OBJECT (pad), "playbin2.select", select);
}
GST_SOURCE_GROUP_UNLOCK (group);
@@ -2787,6 +2790,15 @@ pad_removed_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
"pad %s:%s removed from group %p", GST_DEBUG_PAD_NAME (pad), group);
GST_SOURCE_GROUP_LOCK (group);
+
+ if ((select = g_object_get_data (G_OBJECT (pad), "playbin2.select"))) {
+ g_assert (select->selector == NULL);
+ g_assert (select->srcpad == pad);
+ gst_object_unref (pad);
+ select->srcpad = NULL;
+ goto exit;
+ }
+
/* get the selector sinkpad */
if (!(peer = g_object_get_data (G_OBJECT (pad), "playbin.sinkpad")))
goto not_linked;
@@ -2804,6 +2816,16 @@ pad_removed_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
/* remove the pad from the array */
g_ptr_array_remove (select->channels, peer);
GST_DEBUG_OBJECT (playbin, "pad %p removed from array", peer);
+
+ if (!select->channels->len && select->selector) {
+ GST_DEBUG_OBJECT (playbin, "all selector sinkpads removed");
+ GST_DEBUG_OBJECT (playbin, "removing selector %p", select->selector);
+ gst_object_unref (select->srcpad);
+ select->srcpad = NULL;
+ gst_element_set_state (select->selector, GST_STATE_NULL);
+ gst_bin_remove (GST_BIN_CAST (playbin), select->selector);
+ select->selector = NULL;
+ }
}
/* unlink the pad now (can fail, the pad is unlinked before it's removed) */
@@ -2823,6 +2845,7 @@ pad_removed_cb (GstElement * decodebin, GstPad * pad, GstSourceGroup * group)
gst_object_unref (peer);
gst_object_unref (selector);
+exit:
GST_SOURCE_GROUP_UNLOCK (group);
return;
@@ -2877,7 +2900,17 @@ no_more_pads_cb (GstElement * decodebin, GstSourceGroup * group)
GST_DEBUG_OBJECT (playbin, "requesting new sink pad %d", select->type);
select->sinkpad =
gst_play_sink_request_pad (playbin->playsink, select->type);
-
+ } else if (select->srcpad && select->sinkpad) {
+ GST_DEBUG_OBJECT (playbin, "refreshing new sink pad %d", select->type);
+ gst_play_sink_refresh_pad (playbin->playsink, select->sinkpad,
+ select->type);
+ } else if (select->sinkpad && select->srcpad == NULL) {
+ GST_DEBUG_OBJECT (playbin, "releasing sink pad %d", select->type);
+ gst_play_sink_release_pad (playbin->playsink, select->sinkpad);
+ select->sinkpad = NULL;
+ }
+ if (select->sinkpad && select->srcpad &&
+ !gst_pad_is_linked (select->srcpad)) {
res = gst_pad_link (select->srcpad, select->sinkpad);
GST_DEBUG_OBJECT (playbin, "linked type %s, result: %d",
select->media_list[0], res);
@@ -3176,7 +3209,6 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
GstElement *sink;
GstPad *sinkpad = NULL;
- GST_PLAY_BIN_LOCK (group->playbin);
GST_SOURCE_GROUP_LOCK (group);
if ((sink = group->playbin->text_sink))
@@ -3253,7 +3285,6 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
done:
GST_SOURCE_GROUP_UNLOCK (group);
- GST_PLAY_BIN_UNLOCK (group->playbin);
GST_DEBUG_OBJECT (group->playbin,
"continue autoplugging group %p for %s:%s, %" GST_PTR_FORMAT ": %d",
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index c581557..33ca446 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -31,7 +31,7 @@
#include <gst/audio/streamvolume.h>
#include <gst/video/colorbalance.h>
#include <gst/video/videooverlay.h>
-#include <gst/interfaces/navigation.h>
+#include <gst/video/navigation.h>
#include "gstplaysink.h"
#include "gststreamsynchronizer.h"
@@ -1492,6 +1492,8 @@ update_colorbalance (GstPlaySink * playsink)
g_signal_handlers_unblock_by_func (balance,
G_CALLBACK (colorbalance_value_changed_cb), playsink);
+
+ gst_object_unref (balance);
}
/* make the element (bin) that contains the elements needed to perform
@@ -3505,6 +3507,55 @@ caps_notify_cb (GstPad * pad, GParamSpec * unused, GstPlaySink * playsink)
}
}
+void
+gst_play_sink_refresh_pad (GstPlaySink * playsink, GstPad * pad,
+ GstPlaySinkType type)
+{
+ gulong *block_id = NULL;
+
+ GST_DEBUG_OBJECT (playsink, "refresh pad %" GST_PTR_FORMAT, pad);
+
+ GST_PLAY_SINK_LOCK (playsink);
+ if (pad == playsink->video_pad) {
+ if (type != GST_PLAY_SINK_TYPE_VIDEO_RAW &&
+ type != GST_PLAY_SINK_TYPE_VIDEO)
+ goto wrong_type;
+ block_id = &playsink->video_block_id;
+ } else if (pad == playsink->audio_pad) {
+ if (type != GST_PLAY_SINK_TYPE_AUDIO_RAW &&
+ type != GST_PLAY_SINK_TYPE_AUDIO)
+ goto wrong_type;
+ block_id = &playsink->audio_block_id;
+ } else if (pad == playsink->text_pad) {
+ if (type != GST_PLAY_SINK_TYPE_TEXT)
+ goto wrong_type;
+ block_id = &playsink->text_block_id;
+ }
+
+ if (type != GST_PLAY_SINK_TYPE_FLUSHING) {
+ GstPad *blockpad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (pad)));
+
+ *block_id =
+ gst_pad_add_probe (blockpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+ sinkpad_blocked_cb, playsink, NULL);
+ PENDING_FLAG_SET (playsink, type);
+ gst_object_unref (blockpad);
+ }
+ GST_PLAY_SINK_UNLOCK (playsink);
+
+ return;
+
+ /* ERRORS */
+wrong_type:
+ {
+ GST_WARNING_OBJECT (playsink, "wrong type %u for pad %" GST_PTR_FORMAT,
+ type, pad);
+ GST_PLAY_SINK_UNLOCK (playsink);
+ return;
+ }
+}
+
/**
* gst_play_sink_request_pad
* @playsink: a #GstPlaySink
@@ -3629,6 +3680,7 @@ gst_play_sink_request_pad (GstPlaySink * playsink, GstPlaySinkType type)
return res;
}
+
static GstPad *
gst_play_sink_request_new_pad (GstElement * element, GstPadTemplate * templ,
const gchar * name, const GstCaps * caps)
@@ -3906,6 +3958,42 @@ gst_play_sink_change_state (GstElement * element, GstStateChange transition)
* sinks */
do_async_start (playsink);
ret = GST_STATE_CHANGE_ASYNC;
+
+ /* block all pads here */
+ GST_PLAY_SINK_LOCK (playsink);
+ if (playsink->video_pad && playsink->video_block_id == 0) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->video_pad)));
+ playsink->video_block_id =
+ gst_pad_add_probe (opad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+ sinkpad_blocked_cb, playsink, NULL);
+ PENDING_FLAG_SET (playsink, GST_PLAY_SINK_TYPE_VIDEO);
+ gst_object_unref (opad);
+ }
+
+ if (playsink->audio_pad && playsink->audio_block_id == 0) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->audio_pad)));
+ playsink->audio_block_id =
+ gst_pad_add_probe (opad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+ sinkpad_blocked_cb, playsink, NULL);
+ PENDING_FLAG_SET (playsink, GST_PLAY_SINK_TYPE_AUDIO);
+ gst_object_unref (opad);
+ }
+
+ if (playsink->text_pad && playsink->text_block_id == 0) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->text_pad)));
+ playsink->text_block_id =
+ gst_pad_add_probe (opad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+ sinkpad_blocked_cb, playsink, NULL);
+ PENDING_FLAG_SET (playsink, GST_PLAY_SINK_TYPE_TEXT);
+ gst_object_unref (opad);
+ }
+ GST_PLAY_SINK_UNLOCK (playsink);
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
/* unblock all pads here */
diff --git a/gst/playback/gstplaysink.h b/gst/playback/gstplaysink.h
index 51fe14b..6141c2c 100644
--- a/gst/playback/gstplaysink.h
+++ b/gst/playback/gstplaysink.h
@@ -70,6 +70,7 @@ GType gst_play_sink_get_type (void);
GstPad * gst_play_sink_request_pad (GstPlaySink *playsink, GstPlaySinkType type);
void gst_play_sink_release_pad (GstPlaySink *playsink, GstPad *pad);
+void gst_play_sink_refresh_pad (GstPlaySink *playsink, GstPad *pad, GstPlaySinkType type);
void gst_play_sink_set_sink (GstPlaySink * playsink, GstPlaySinkType type, GstElement * sink);
GstElement * gst_play_sink_get_sink (GstPlaySink * playsink, GstPlaySinkType type);
diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c
index 358ab93..ce61b86 100644
--- a/gst/playback/gsturidecodebin.c
+++ b/gst/playback/gsturidecodebin.c
@@ -1235,25 +1235,50 @@ gen_source_element (GstURIDecodeBin * decoder)
/* make HTTP sources send extra headers so we get icecast
* metadata in case the stream is an icecast stream */
- if (!strncmp (decoder->uri, "http://", 7) &&
- g_object_class_find_property (source_class, "iradio-mode")) {
- GST_LOG_OBJECT (decoder, "configuring iradio-mode");
- g_object_set (source, "iradio-mode", TRUE, NULL);
+ if (!strncmp (decoder->uri, "http://", 7)) {
+ pspec = g_object_class_find_property (source_class, "iradio-mode");
+
+ if (pspec && G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_STRING) {
+ GST_LOG_OBJECT (decoder, "configuring iradio-mode");
+ g_object_set (source, "iradio-mode", TRUE, NULL);
+ }
}
pspec = g_object_class_find_property (source_class, "connection-speed");
if (pspec != NULL) {
- if (G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_UINT64 ||
- G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_INT64) {
- GST_DEBUG_OBJECT (decoder,
- "setting connection-speed=%" G_GUINT64_FORMAT " on source element %s",
- decoder->connection_speed / 1000, G_OBJECT_TYPE_NAME (source));
+ guint64 speed = decoder->connection_speed / 1000;
+ gboolean wrong_type = FALSE;
+
+ if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT) {
+ GParamSpecUInt *pspecuint = G_PARAM_SPEC_UINT (pspec);
+
+ speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+ } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT) {
+ GParamSpecInt *pspecint = G_PARAM_SPEC_INT (pspec);
+
+ speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
+ } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT64) {
+ GParamSpecUInt64 *pspecuint = G_PARAM_SPEC_UINT64 (pspec);
- g_object_set (source, "connection-speed",
- decoder->connection_speed / 1000, NULL);
+ speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+ } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT64) {
+ GParamSpecInt64 *pspecint = G_PARAM_SPEC_INT64 (pspec);
+
+ speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
} else {
- g_warning ("connection-speed property of '%s' is not a 64-bit int type",
- G_OBJECT_TYPE_NAME (source));
+ GST_WARNING_OBJECT (decoder,
+ "The connection speed property %" G_GUINT64_FORMAT
+ " of type %s is not usefull not setting it", speed,
+ g_type_name (G_PARAM_SPEC_TYPE (pspec)));
+ wrong_type = TRUE;
+ }
+
+ if (wrong_type == FALSE) {
+ g_object_set (source, "connection-speed", speed, NULL);
+
+ GST_DEBUG_OBJECT (decoder,
+ "setting connection-speed=%" G_GUINT64_FORMAT " to source element",
+ speed);
}
}
@@ -1687,9 +1712,9 @@ make_decoder (GstURIDecodeBin * decoder)
if (decoder->caps)
g_object_set (decodebin, "caps", decoder->caps, NULL);
- /* Propagate expose-all-streams property */
+ /* Propagate expose-all-streams and connection-speed properties */
g_object_set (decodebin, "expose-all-streams", decoder->expose_allstreams,
- NULL);
+ "connection-speed", decoder->connection_speed / 1000, NULL);
if (!decoder->is_stream) {
/* propagate the use-buffering property but only when we are not already
@@ -2009,6 +2034,23 @@ could_not_link:
}
}
+static gboolean
+is_live_source (GstElement * source)
+{
+ GObjectClass *source_class = NULL;
+ gboolean is_live = FALSE;
+ GParamSpec *pspec;
+
+ source_class = G_OBJECT_GET_CLASS (source);
+ pspec = g_object_class_find_property (source_class, "is-live");
+ if (!pspec || G_PARAM_SPEC_VALUE_TYPE (pspec) != G_TYPE_BOOLEAN)
+ return FALSE;
+
+ g_object_get (G_OBJECT (source), "is-live", &is_live, NULL);
+
+ return is_live;
+}
+
/* construct and run the source and decoder elements until we found
* all the streams or until a preroll queue has been filled.
*/
@@ -2038,6 +2080,9 @@ setup_source (GstURIDecodeBin * decoder)
g_signal_emit (decoder, gst_uri_decode_bin_signals[SIGNAL_SOURCE_SETUP],
0, decoder->source);
+ if (is_live_source (decoder->source))
+ decoder->is_stream = FALSE;
+
/* remove the old decoders now, if any */
remove_decoders (decoder, FALSE);
diff --git a/gst/subparse/Makefile.in b/gst/subparse/Makefile.in
index 2c7643c..14e3f04 100644
--- a/gst/subparse/Makefile.in
+++ b/gst/subparse/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -535,7 +535,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c
index 3f4ee18..fa98efd 100644
--- a/gst/subparse/gstsubparse.c
+++ b/gst/subparse/gstsubparse.c
@@ -1211,7 +1211,8 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype)
}
break;
case GST_SUB_PARSE_REGEX_SUBRIP:
- result = (gpointer) g_regex_new ("^ {0,3}[ 0-9]{1,4}\\s*(\x0d)?\x0a"
+ result = (gpointer)
+ g_regex_new ("^[\\s\\n]*[\\n]? {0,3}[ 0-9]{1,4}\\s*(\x0d)?\x0a"
" ?[0-9]{1,2}: ?[0-9]{1,2}: ?[0-9]{1,2}[,.] {0,2}[0-9]{1,3}"
" +--> +[0-9]{1,2}: ?[0-9]{1,2}: ?[0-9]{1,2}[,.] {0,2}[0-9]{1,2}",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr);
diff --git a/gst/tcp/Makefile.in b/gst/tcp/Makefile.in
index 54d0824..7b50060 100644
--- a/gst/tcp/Makefile.in
+++ b/gst/tcp/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -562,7 +562,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/tcp/gsttcpclientsink.c b/gst/tcp/gsttcpclientsink.c
index 0acb43b..5ec8416 100644
--- a/gst/tcp/gsttcpclientsink.c
+++ b/gst/tcp/gsttcpclientsink.c
@@ -367,6 +367,8 @@ connect_failed:
}
g_clear_error (&err);
g_object_unref (saddr);
+ /* pretend we opened ok for proper cleanup to happen */
+ GST_OBJECT_FLAG_SET (this, GST_TCP_CLIENT_SINK_OPEN);
gst_tcp_client_sink_stop (GST_BASE_SINK (this));
return FALSE;
}
diff --git a/gst/typefind/Makefile.in b/gst/typefind/Makefile.in
index b72bdae..24e9a83 100644
--- a/gst/typefind/Makefile.in
+++ b/gst/typefind/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -511,7 +511,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c
index 50beb0a..a02b12f 100644
--- a/gst/typefind/gsttypefindfunctions.c
+++ b/gst/typefind/gsttypefindfunctions.c
@@ -3435,76 +3435,256 @@ ircam_type_find (GstTypeFind * tf, gpointer ununsed)
}
}
-/* EBML typefind helper */
-static gboolean
-ebml_check_header (GstTypeFind * tf, const gchar * doctype, int doctype_len)
+/*** Matroska/WebM ***/
+
+#define EBML_HEADER 0x1A45DFA3
+#define EBML_VERSION 0x4286
+#define EBML_DOCTYPE 0x4282
+#define EBML_DOCTYPE_VERSION 0x4287
+#define MATROSKA_SEGMENT 0x18538067
+#define MATROSKA_CLUSTER 0x1F43B675
+#define MATROSKA_TRACKS 0x1654AE6B
+#define MATROSKA_TRACK_ENTRY 0xAE
+#define MATROSKA_TRACK_TYPE 0x83
+#define MATROSKA_STEREO_MODE 0x53B8
+
+#define EBML_MAX_LEN (2 * 1024 * 1024)
+
+typedef enum
{
- /* 4 bytes for EBML ID, 1 byte for header length identifier */
- const guint8 *data = gst_type_find_peek (tf, 0, 4 + 1);
- gint len_mask = 0x80, size = 1, n = 1, total;
+ EBML_DOCTYPE_UNKNOWN = 0,
+ EBML_DOCTYPE_MATROSKA,
+ EBML_DOCTYPE_WEBM
+} GstEbmlDocType;
- if (!data)
- return FALSE;
+typedef struct
+{
+ GstEbmlDocType doctype;
+ guint audio;
+ guint video;
+ guint other;
+ guint video_stereo;
+ guint chunks;
+ guint tracks_ok; /* if we've seen and fully parsed the TRACKS element */
+} GstMatroskaInfo;
- /* ebml header? */
- if (data[0] != 0x1A || data[1] != 0x45 || data[2] != 0xDF || data[3] != 0xA3)
- return FALSE;
+static inline guint
+ebml_read_chunk_header (GstTypeFind * tf, DataScanCtx * c, guint max_size,
+ guint32 * id, guint64 * size)
+{
+ guint64 mask;
+ guint msbit_set, i, len, id_len;
+
+ if (c->size < 12 || max_size < 1)
+ return 0;
- /* length of header */
- total = data[4];
- while (size <= 8 && !(total & len_mask)) {
- size++;
- len_mask >>= 1;
+ /* element ID */
+ *id = c->data[0];
+ if ((c->data[0] & 0x80) == 0x80) {
+ id_len = 1;
+ } else if ((c->data[0] & 0xC0) == 0x40) {
+ id_len = 2;
+ } else if ((c->data[0] & 0xE0) == 0x20) {
+ id_len = 3;
+ } else if ((c->data[0] & 0xF0) == 0x10) {
+ id_len = 4;
+ } else {
+ return 0;
}
- if (size > 8)
- return FALSE;
- total &= (len_mask - 1);
- while (n < size)
- total = (total << 8) | data[4 + n++];
- /* get new data for full header, 4 bytes for EBML ID,
- * EBML length tag and the actual header */
- data = gst_type_find_peek (tf, 0, 4 + size + total);
- if (!data)
+ if (max_size < id_len)
+ return 0;
+
+ for (i = 1; i < id_len; ++i) {
+ *id = (*id << 8) | c->data[i];
+ }
+
+ data_scan_ctx_advance (tf, c, id_len);
+ max_size -= id_len;
+
+ /* size */
+ if (max_size < 1 || c->data[0] == 0)
+ return 0;
+
+ msbit_set = g_bit_nth_msf (c->data[0], 8);
+ mask = ((1 << msbit_set) - 1);
+ *size = c->data[0] & mask;
+ len = 7 - msbit_set;
+
+ if (max_size < 1 + len)
+ return 0;
+ for (i = 0; i < len; ++i) {
+ mask = (mask << 8) | 0xff;
+ *size = (*size << 8) | c->data[1 + i];
+ }
+
+ data_scan_ctx_advance (tf, c, 1 + len);
+
+ /* undefined/unknown size? (all bits 1) */
+ if (*size == mask) {
+ /* allow unknown size for SEGMENT chunk, bail out otherwise */
+ if (*id == MATROSKA_SEGMENT)
+ *size = G_MAXUINT64;
+ else
+ return 0;
+ }
+
+ return id_len + (1 + len);
+}
+
+static gboolean
+ebml_parse_chunk (GstTypeFind * tf, DataScanCtx * ctx, guint32 chunk_id,
+ guint chunk_size, GstMatroskaInfo * info, guint depth)
+{ /* FIXME: make sure input size is clipped to 32 bit */
+ static const gchar SPACES[] = " ";
+ DataScanCtx c = *ctx;
+ guint64 element_size;
+ guint32 id, hdr_len;
+
+ if (depth >= 8) /* keep SPACES large enough for depth */
return FALSE;
- /* only check doctype if asked to do so */
- if (doctype == NULL || doctype_len == 0)
- return TRUE;
+ while (chunk_size > 0) {
+ if (c.offset > EBML_MAX_LEN || !data_scan_ctx_ensure_data (tf, &c, 64))
+ return FALSE;
- /* the header must contain the doctype. For now, we don't parse the
- * whole header but simply check for the availability of that array
- * of characters inside the header. Not fully fool-proof, but good
- * enough. */
- for (n = 4 + size; n <= 4 + size + total - doctype_len; n++)
- if (!memcmp (&data[n], doctype, doctype_len))
- return TRUE;
+ hdr_len = ebml_read_chunk_header (tf, &c, chunk_size, &id, &element_size);
+ if (hdr_len == 0)
+ return FALSE;
- return FALSE;
+ g_assert (hdr_len <= chunk_size);
+ chunk_size -= hdr_len;
+
+ if (element_size > chunk_size)
+ return FALSE;
+
+ GST_DEBUG ("%s %08x, size %" G_GUINT64_FORMAT " / %" G_GUINT64_FORMAT,
+ SPACES + sizeof (SPACES) - 1 - (2 * depth), id, element_size,
+ hdr_len + element_size);
+
+ if (!data_scan_ctx_ensure_data (tf, &c, element_size)) {
+ GST_DEBUG ("not enough data");
+ return FALSE;
+ }
+
+ switch (id) {
+ case EBML_DOCTYPE:
+ if (element_size >= 8 && memcmp (c.data, "matroska", 8) == 0)
+ info->doctype = EBML_DOCTYPE_MATROSKA;
+ else if (element_size >= 4 && memcmp (c.data, "webm", 4) == 0)
+ info->doctype = EBML_DOCTYPE_WEBM;
+ break;
+ case MATROSKA_SEGMENT:
+ GST_LOG ("parsing segment");
+ ebml_parse_chunk (tf, &c, id, element_size, info, depth + 1);
+ GST_LOG ("parsed segment, done");
+ return FALSE;
+ case MATROSKA_TRACKS:
+ GST_LOG ("parsing tracks");
+ info->tracks_ok =
+ ebml_parse_chunk (tf, &c, id, element_size, info, depth + 1);
+ GST_LOG ("parsed tracks: %s, done (after %" G_GUINT64_FORMAT " bytes)",
+ info->tracks_ok ? "ok" : "FAIL", c.offset + element_size);
+ return FALSE;
+ case MATROSKA_TRACK_ENTRY:
+ GST_LOG ("parsing track entry");
+ if (!ebml_parse_chunk (tf, &c, id, element_size, info, depth + 1))
+ return FALSE;
+ break;
+ case MATROSKA_TRACK_TYPE:{
+ guint type = 0, i;
+
+ /* is supposed to always be 1-byte, but not everyone's following that */
+ for (i = 0; i < element_size; ++i)
+ type = (type << 8) | c.data[i];
+
+ GST_DEBUG ("%s track type %u",
+ SPACES + sizeof (SPACES) - 1 - (2 * depth), type);
+
+ if (type == 1)
+ ++info->video;
+ else if (c.data[0] == 2)
+ ++info->audio;
+ else
+ ++info->other;
+ break;
+ }
+ case MATROSKA_STEREO_MODE:
+ ++info->video_stereo;
+ break;
+ case MATROSKA_CLUSTER:
+ GST_WARNING ("cluster, bailing out (should've found tracks by now)");
+ return FALSE;
+ default:
+ break;
+ }
+ data_scan_ctx_advance (tf, &c, element_size);
+ chunk_size -= element_size;
+ ++info->chunks;
+ }
+
+ return TRUE;
}
-/*** video/x-matroska ***/
static GstStaticCaps matroska_caps = GST_STATIC_CAPS ("video/x-matroska");
#define MATROSKA_CAPS (gst_static_caps_get(&matroska_caps))
static void
matroska_type_find (GstTypeFind * tf, gpointer ununsed)
{
- if (ebml_check_header (tf, "matroska", 8))
- gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MATROSKA_CAPS);
- else if (ebml_check_header (tf, NULL, 0))
- gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, MATROSKA_CAPS);
-}
+ GstTypeFindProbability prob;
+ GstMatroskaInfo info = { 0, };
+ const gchar *type_name;
+ DataScanCtx c = { 0, NULL, 0 };
+ gboolean is_audio;
+ guint64 size;
+ guint32 id, hdr_len;
-/*** video/webm ***/
-static GstStaticCaps webm_caps = GST_STATIC_CAPS ("video/webm");
+ if (!data_scan_ctx_ensure_data (tf, &c, 64))
+ return;
-#define WEBM_CAPS (gst_static_caps_get(&webm_caps))
-static void
-webm_type_find (GstTypeFind * tf, gpointer ununsed)
-{
- if (ebml_check_header (tf, "webm", 4))
- gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, WEBM_CAPS);
+ if (GST_READ_UINT32_BE (c.data) != EBML_HEADER)
+ return;
+
+ while (c.offset < EBML_MAX_LEN && data_scan_ctx_ensure_data (tf, &c, 64)) {
+ hdr_len = ebml_read_chunk_header (tf, &c, c.size, &id, &size);
+ if (hdr_len == 0)
+ return;
+
+ GST_INFO ("=== top-level chunk %08x, size %" G_GUINT64_FORMAT
+ " / %" G_GUINT64_FORMAT, id, size, size + hdr_len);
+
+ if (!ebml_parse_chunk (tf, &c, id, size, &info, 0))
+ break;
+ data_scan_ctx_advance (tf, &c, size);
+ GST_INFO ("=== done with chunk %08x", id);
+ if (id == MATROSKA_SEGMENT)
+ break;
+ }
+
+ GST_INFO ("audio=%u video=%u other=%u chunks=%u doctype=%d all_tracks=%d",
+ info.audio, info.video, info.other, info.chunks, info.doctype,
+ info.tracks_ok);
+
+ /* perhaps we should bail out if tracks_ok is FALSE and wait for more data?
+ * (we would need new API to signal this properly and prevent other
+ * typefinders from taking over the decision then) */
+ is_audio = (info.audio > 0 && info.video == 0 && info.other == 0);
+
+ if (info.doctype == EBML_DOCTYPE_WEBM) {
+ type_name = (is_audio) ? "audio/webm" : "video/webm";
+ } else if (info.video > 0 && info.video_stereo) {
+ type_name = "video/x-matroska-3d";
+ } else {
+ type_name = (is_audio) ? "audio/x-matroska" : "video/x-matroska";
+ }
+
+ if (info.doctype == EBML_DOCTYPE_UNKNOWN)
+ prob = GST_TYPE_FIND_LIKELY;
+ else
+ prob = GST_TYPE_FIND_MAXIMUM;
+
+ gst_type_find_suggest_simple (tf, prob, type_name, NULL);
}
/*** application/mxf ***/
@@ -3589,30 +3769,124 @@ dv_type_find (GstTypeFind * tf, gpointer private)
}
-/*** application/ogg and application/x-annodex ***/
-static GstStaticCaps ogg_caps = GST_STATIC_CAPS ("application/ogg");
-static GstStaticCaps annodex_caps = GST_STATIC_CAPS ("application/x-annodex");
+/*** Ogg and Annodex variants ***/
static GstStaticCaps ogg_annodex_caps =
- GST_STATIC_CAPS ("application/ogg;application/x-annodex");
+ GST_STATIC_CAPS ("application/ogg;video/ogg;audio/ogg;"
+ "application/annodex;audio/annodex;video/annodex;application/kate");
#define OGGANX_CAPS (gst_static_caps_get(&ogg_annodex_caps))
+typedef enum
+{
+ OGG_AUDIO = 0,
+ OGG_VIDEO,
+ OGG_KATE,
+ OGG_OTHER,
+ OGG_SKELETON,
+ OGG_ANNODEX,
+ OGG_NUM
+} GstOggStreamType;
+
static void
ogganx_type_find (GstTypeFind * tf, gpointer private)
{
- const guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const gchar *media_type;
+ DataScanCtx c = { 0, NULL, 0 };
+ guint ogg_syncs = 0;
+ guint hdr_count[OGG_NUM] = { 0, };
+ static const struct
+ {
+ const gchar marker[10];
+ guint8 marker_size;
+ GstOggStreamType stream_type;
+ } markers[] = {
+ {
+ "\001vorbis", 7, OGG_AUDIO}, {
+ "\200theora", 7, OGG_VIDEO}, {
+ "fLaC", 4, OGG_AUDIO}, {
+ "\177FLAC", 5, OGG_AUDIO}, {
+ "Speex", 5, OGG_AUDIO}, {
+ "CMML\0\0\0\0", 8, OGG_OTHER}, {
+ "PCM ", 8, OGG_AUDIO}, {
+ "Annodex", 7, OGG_ANNODEX}, {
+ "fishead", 7, OGG_SKELETON}, {
+ "AnxData", 7, OGG_ANNODEX}, {
+ "CELT ", 8, OGG_AUDIO}, {
+ "\200kate\0\0\0", 8, OGG_KATE}, {
+ "BBCD\0", 5, OGG_VIDEO}, {
+ "OVP80\1\1", 7, OGG_VIDEO}, {
+ "OpusHead", 8, OGG_AUDIO}, {
+ "\001audio\0\0\0", 9, OGG_AUDIO}, {
+ "\001video\0\0\0", 9, OGG_VIDEO}, {
+ "\001text\0\0\0", 9, OGG_OTHER}
+ };
+
+ while (c.offset < 4096 && data_scan_ctx_ensure_data (tf, &c, 64)) {
+ guint size, i;
+
+ if (memcmp (c.data, "OggS", 5) != 0)
+ break;
+
+ ++ogg_syncs;
+
+ /* check if BOS */
+ if (c.data[5] != 0x02)
+ break;
- if ((data != NULL) && (memcmp (data, "OggS", 4) == 0)) {
+ /* headers should only have one segment */
+ if (c.data[26] != 1)
+ break;
+
+ size = c.data[27];
+ if (size < 8)
+ break;
- /* Check for an annodex fishbone header */
- data = gst_type_find_peek (tf, 28, 8);
- if (data && memcmp (data, "fishead\0", 8) == 0)
- gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM,
- gst_static_caps_get (&annodex_caps));
+ data_scan_ctx_advance (tf, &c, 28);
- gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM,
- gst_static_caps_get (&ogg_caps));
+ if (!data_scan_ctx_ensure_data (tf, &c, MAX (size, 8)))
+ break;
+
+ for (i = 0; i < G_N_ELEMENTS (markers); ++i) {
+ if (memcmp (c.data, markers[i].marker, markers[i].marker_size) == 0) {
+ ++hdr_count[markers[i].stream_type];
+ break;
+ }
+ }
+
+ if (i == G_N_ELEMENTS (markers)) {
+ GST_MEMDUMP ("unknown Ogg stream marker", c.data, size);
+ ++hdr_count[OGG_OTHER];
+ }
+
+ data_scan_ctx_advance (tf, &c, size);
}
+
+ if (ogg_syncs == 0)
+ return;
+
+ /* FIXME: what about XSPF? */
+ if (hdr_count[OGG_ANNODEX] > 0) {
+ if (hdr_count[OGG_VIDEO] > 0)
+ media_type = "video/annodex";
+ else if (hdr_count[OGG_AUDIO] > 0)
+ media_type = "audio/annodex";
+ else
+ media_type = "application/annodex";
+ } else if (hdr_count[OGG_VIDEO] > 0) {
+ media_type = "video/ogg";
+ } else if (hdr_count[OGG_AUDIO] > 0) {
+ media_type = "audio/ogg";
+ } else if (hdr_count[OGG_KATE] > 0 && hdr_count[OGG_OTHER] == 0) {
+ media_type = "application/kate";
+ } else {
+ media_type = "application/ogg";
+ }
+
+ GST_INFO ("found %s (audio:%u, video:%u, annodex:%u, skeleton:%u, other:%u)",
+ media_type, hdr_count[OGG_AUDIO], hdr_count[OGG_VIDEO],
+ hdr_count[OGG_ANNODEX], hdr_count[OGG_SKELETON], hdr_count[OGG_OTHER]);
+
+ gst_type_find_suggest_simple (tf, GST_TYPE_FIND_MAXIMUM, media_type, NULL);
}
/*** audio/x-vorbis ***/
@@ -4455,7 +4729,8 @@ plugin_init (GstPlugin * plugin)
TYPE_FIND_REGISTER (plugin, "video/mpegts", GST_RANK_PRIMARY,
mpeg_ts_type_find, "ts,mts", MPEGTS_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "application/ogg", GST_RANK_PRIMARY,
- ogganx_type_find, "anx,ogg,ogm", OGGANX_CAPS, NULL, NULL);
+ ogganx_type_find, "ogg,oga,ogv,ogm,ogx,spx,anx,axa,axv", OGGANX_CAPS,
+ NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/mpeg-elementary", GST_RANK_MARGINAL,
mpeg_video_stream_type_find, "mpv,mpeg,mpg", MPEG_VIDEO_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/mpeg4", GST_RANK_PRIMARY,
@@ -4543,9 +4818,7 @@ plugin_init (GstPlugin * plugin)
TYPE_FIND_REGISTER (plugin, "image/x-portable-pixmap", GST_RANK_SECONDARY,
pnm_type_find, "pnm,ppm,pgm,pbm", PNM_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/x-matroska", GST_RANK_PRIMARY,
- matroska_type_find, "mkv,mka", MATROSKA_CAPS, NULL, NULL);
- TYPE_FIND_REGISTER (plugin, "video/webm", GST_RANK_PRIMARY, webm_type_find,
- "webm", WEBM_CAPS, NULL, NULL);
+ matroska_type_find, "mkv,mka,mk3d,webm", MATROSKA_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "application/mxf", GST_RANK_PRIMARY,
mxf_type_find, "mxf", MXF_CAPS, NULL, NULL);
TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-mve", GST_RANK_SECONDARY,
diff --git a/gst/videoconvert/Makefile.in b/gst/videoconvert/Makefile.in
index eb772e2..865693e 100644
--- a/gst/videoconvert/Makefile.in
+++ b/gst/videoconvert/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -556,7 +556,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/videoconvert/gstvideoconvert.c b/gst/videoconvert/gstvideoconvert.c
index 74e96fb..853b470 100644
--- a/gst/videoconvert/gstvideoconvert.c
+++ b/gst/videoconvert/gstvideoconvert.c
@@ -260,14 +260,13 @@ gst_video_convert_set_info (GstVideoFilter * filter,
goto format_mismatch;
/* if present, these must match too */
- if ((in_info->flags & GST_VIDEO_FLAG_INTERLACED) !=
- (out_info->flags & GST_VIDEO_FLAG_INTERLACED))
+ if (in_info->interlace_mode != out_info->interlace_mode)
goto format_mismatch;
space->from_spec = in_spec;
space->to_spec = out_spec;
- interlaced = (in_info->flags & GST_VIDEO_FLAG_INTERLACED) != 0;
+ interlaced = GST_VIDEO_INFO_IS_INTERLACED (in_info);
space->convert =
videoconvert_convert_new (GST_VIDEO_INFO_FORMAT (out_info), out_spec,
diff --git a/gst/videorate/Makefile.in b/gst/videorate/Makefile.in
index 45902f6..17e585f 100644
--- a/gst/videorate/Makefile.in
+++ b/gst/videorate/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -505,7 +505,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/videoscale/Makefile.in b/gst/videoscale/Makefile.in
index 88f6702..676a71a 100644
--- a/gst/videoscale/Makefile.in
+++ b/gst/videoscale/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -566,7 +566,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/videotestsrc/Makefile.in b/gst/videotestsrc/Makefile.in
index 6e057bd..189f93f 100644
--- a/gst/videotestsrc/Makefile.in
+++ b/gst/videotestsrc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -568,7 +568,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/videotestsrc/gstvideotestsrc.c b/gst/videotestsrc/gstvideotestsrc.c
index 01bff7f..e37ce2a 100644
--- a/gst/videotestsrc/gstvideotestsrc.c
+++ b/gst/videotestsrc/gstvideotestsrc.c
@@ -650,7 +650,7 @@ gst_video_test_src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
if (pool)
gst_object_unref (pool);
- return TRUE;
+ return GST_BASE_SRC_CLASS (parent_class)->decide_allocation (bsrc, query);
}
static gboolean
diff --git a/gst/volume/Makefile.am b/gst/volume/Makefile.am
index dbdf8bf..be5f736 100644
--- a/gst/volume/Makefile.am
+++ b/gst/volume/Makefile.am
@@ -8,7 +8,6 @@ nodist_libgstvolume_la_SOURCES = $(ORC_NODIST_SOURCES)
libgstvolume_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
libgstvolume_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstvolume_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
diff --git a/gst/volume/Makefile.in b/gst/volume/Makefile.in
index 1c19a71..c4286a7 100644
--- a/gst/volume/Makefile.in
+++ b/gst/volume/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -151,8 +151,7 @@ am__uninstall_files_from_dir = { \
am__installdirs = "$(DESTDIR)$(plugindir)"
LTLIBRARIES = $(plugin_LTLIBRARIES)
am__DEPENDENCIES_1 =
-libgstvolume_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
+libgstvolume_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am_libgstvolume_la_OBJECTS = libgstvolume_la-gstvolume.lo
@@ -497,7 +496,6 @@ nodist_libgstvolume_la_SOURCES = $(ORC_NODIST_SOURCES)
libgstvolume_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
libgstvolume_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstvolume_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
@@ -551,7 +549,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/gst/volume/gstvolume.c b/gst/volume/gstvolume.c
index aaf54dc..6bb9c2c 100644
--- a/gst/volume/gstvolume.c
+++ b/gst/volume/gstvolume.c
@@ -45,7 +45,6 @@
#include <gst/gst.h>
#include <gst/base/gstbasetransform.h>
#include <gst/audio/audio.h>
-#include <gst/audio/mixer.h>
#include <gst/audio/gstaudiofilter.h>
#ifdef HAVE_ORC
@@ -79,9 +78,6 @@
#define VOLUME_MAX_INT32 G_MAXINT32
#define VOLUME_MIN_INT32 G_MININT32
-/* number of steps we use for the mixer interface to go from 0.0 to 1.0 */
-# define VOLUME_STEPS 100
-
#define GST_CAT_DEFAULT gst_volume_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
@@ -112,12 +108,9 @@ enum
", layout = (string) { interleaved, non-interleaved }"
#endif
-static void gst_volume_mixer_init (GstMixerInterface * iface);
-
#define gst_volume_parent_class parent_class
G_DEFINE_TYPE_WITH_CODE (GstVolume, gst_volume,
GST_TYPE_AUDIO_FILTER,
- G_IMPLEMENT_INTERFACE (GST_TYPE_MIXER, gst_volume_mixer_init);
G_IMPLEMENT_INTERFACE (GST_TYPE_STREAM_VOLUME, NULL));
static void volume_set_property (GObject * object, guint prop_id,
@@ -280,75 +273,6 @@ volume_update_volume (GstVolume * self, const GstAudioInfo * info,
return res;
}
-/* Mixer interface */
-
-static const GList *
-gst_volume_list_tracks (GstMixer * mixer)
-{
- GstVolume *self = GST_VOLUME (mixer);
-
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (GST_IS_VOLUME (self), NULL);
-
- return self->tracklist;
-}
-
-static void
-gst_volume_set_volume (GstMixer * mixer, GstMixerTrack * track, gint * volumes)
-{
- GstVolume *self = GST_VOLUME (mixer);
-
- g_return_if_fail (self != NULL);
- g_return_if_fail (GST_IS_VOLUME (self));
-
- GST_OBJECT_LOCK (self);
- self->volume = (gfloat) volumes[0] / VOLUME_STEPS;
- GST_OBJECT_UNLOCK (self);
-}
-
-static void
-gst_volume_get_volume (GstMixer * mixer, GstMixerTrack * track, gint * volumes)
-{
- GstVolume *self = GST_VOLUME (mixer);
-
- g_return_if_fail (self != NULL);
- g_return_if_fail (GST_IS_VOLUME (self));
-
- GST_OBJECT_LOCK (self);
- volumes[0] = (gint) self->volume * VOLUME_STEPS;
- GST_OBJECT_UNLOCK (self);
-}
-
-static void
-gst_volume_set_mute (GstMixer * mixer, GstMixerTrack * track, gboolean mute)
-{
- GstVolume *self = GST_VOLUME (mixer);
-
- g_return_if_fail (self != NULL);
- g_return_if_fail (GST_IS_VOLUME (self));
-
- GST_OBJECT_LOCK (self);
- self->mute = mute;
- GST_OBJECT_UNLOCK (self);
-}
-
-static GstMixerType
-gst_volume_get_mixer_type (GstMixer * mixer)
-{
- return GST_MIXER_SOFTWARE;
-}
-
-static void
-gst_volume_mixer_init (GstMixerInterface * iface)
-{
- /* default virtual functions */
- iface->list_tracks = gst_volume_list_tracks;
- iface->set_volume = gst_volume_set_volume;
- iface->get_volume = gst_volume_get_volume;
- iface->set_mute = gst_volume_set_mute;
- iface->get_mixer_type = gst_volume_get_mixer_type;
-}
-
/* Element class */
static void
@@ -413,25 +337,12 @@ gst_volume_class_init (GstVolumeClass * klass)
static void
gst_volume_init (GstVolume * self)
{
- GstMixerTrack *track = NULL;
-
self->mute = DEFAULT_PROP_MUTE;;
self->volume = DEFAULT_PROP_VOLUME;
self->tracklist = NULL;
self->negotiated = FALSE;
- track = g_object_new (GST_TYPE_MIXER_TRACK, NULL);
-
- if (GST_IS_MIXER_TRACK (track)) {
- track->label = g_strdup ("volume");
- track->num_channels = 1;
- track->min_volume = 0;
- track->max_volume = VOLUME_STEPS;
- track->flags = GST_MIXER_TRACK_SOFTWARE;
- self->tracklist = g_list_append (self->tracklist, track);
- }
-
gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (self), TRUE);
}
@@ -961,10 +872,6 @@ plugin_init (GstPlugin * plugin)
{
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "volume", 0, "Volume gain");
- /* ref class from a thread-safe context to work around missing bit of
- * thread-safety in GObject */
- g_type_class_ref (GST_TYPE_MIXER_TRACK);
-
return gst_element_register (plugin, "volume", GST_RANK_NONE,
GST_TYPE_VOLUME);
}
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 94a9046..ee12ab6 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am
index f420814..766305a 100644
--- a/pkgconfig/Makefile.am
+++ b/pkgconfig/Makefile.am
@@ -3,7 +3,6 @@ pcverfiles = \
gstreamer-audio-@GST_API_VERSION@.pc \
gstreamer-app-@GST_API_VERSION@.pc \
gstreamer-fft-@GST_API_VERSION@.pc \
- gstreamer-interfaces-@GST_API_VERSION@.pc \
gstreamer-pbutils-@GST_API_VERSION@.pc \
gstreamer-riff-@GST_API_VERSION@.pc \
gstreamer-rtp-@GST_API_VERSION@.pc \
@@ -16,7 +15,6 @@ pcverfiles_uninstalled = \
gstreamer-audio-@GST_API_VERSION@-uninstalled.pc \
gstreamer-app-@GST_API_VERSION@-uninstalled.pc \
gstreamer-fft-@GST_API_VERSION@-uninstalled.pc \
- gstreamer-interfaces-@GST_API_VERSION@-uninstalled.pc \
gstreamer-pbutils-@GST_API_VERSION@-uninstalled.pc \
gstreamer-riff-@GST_API_VERSION@-uninstalled.pc \
gstreamer-rtp-@GST_API_VERSION@-uninstalled.pc \
@@ -46,7 +44,6 @@ pcinfiles = \
gstreamer-audio.pc.in gstreamer-audio-uninstalled.pc.in \
gstreamer-app.pc.in gstreamer-app-uninstalled.pc.in \
gstreamer-fft.pc.in gstreamer-fft-uninstalled.pc.in \
- gstreamer-interfaces.pc.in gstreamer-interfaces-uninstalled.pc.in \
gstreamer-pbutils.pc.in gstreamer-pbutils-uninstalled.pc.in \
gstreamer-riff.pc.in gstreamer-riff-uninstalled.pc.in \
gstreamer-rtp.pc.in gstreamer-rtp-uninstalled.pc.in \
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index d729fb8..7f4bc92 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -59,8 +59,6 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gstreamer-audio.pc.in \
$(srcdir)/gstreamer-fft-uninstalled.pc.in \
$(srcdir)/gstreamer-fft.pc.in \
- $(srcdir)/gstreamer-interfaces-uninstalled.pc.in \
- $(srcdir)/gstreamer-interfaces.pc.in \
$(srcdir)/gstreamer-pbutils-uninstalled.pc.in \
$(srcdir)/gstreamer-pbutils.pc.in \
$(srcdir)/gstreamer-plugins-base-uninstalled.pc.in \
@@ -121,8 +119,7 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = gstreamer-audio.pc gstreamer-audio-uninstalled.pc \
gstreamer-app.pc gstreamer-app-uninstalled.pc gstreamer-fft.pc \
- gstreamer-fft-uninstalled.pc gstreamer-interfaces.pc \
- gstreamer-interfaces-uninstalled.pc gstreamer-pbutils.pc \
+ gstreamer-fft-uninstalled.pc gstreamer-pbutils.pc \
gstreamer-pbutils-uninstalled.pc gstreamer-riff.pc \
gstreamer-riff-uninstalled.pc gstreamer-rtp.pc \
gstreamer-rtp-uninstalled.pc gstreamer-rtsp.pc \
@@ -458,7 +455,6 @@ pcverfiles = \
gstreamer-audio-@GST_API_VERSION@.pc \
gstreamer-app-@GST_API_VERSION@.pc \
gstreamer-fft-@GST_API_VERSION@.pc \
- gstreamer-interfaces-@GST_API_VERSION@.pc \
gstreamer-pbutils-@GST_API_VERSION@.pc \
gstreamer-riff-@GST_API_VERSION@.pc \
gstreamer-rtp-@GST_API_VERSION@.pc \
@@ -472,7 +468,6 @@ pcverfiles_uninstalled = \
gstreamer-audio-@GST_API_VERSION@-uninstalled.pc \
gstreamer-app-@GST_API_VERSION@-uninstalled.pc \
gstreamer-fft-@GST_API_VERSION@-uninstalled.pc \
- gstreamer-interfaces-@GST_API_VERSION@-uninstalled.pc \
gstreamer-pbutils-@GST_API_VERSION@-uninstalled.pc \
gstreamer-riff-@GST_API_VERSION@-uninstalled.pc \
gstreamer-rtp-@GST_API_VERSION@-uninstalled.pc \
@@ -492,7 +487,6 @@ pcinfiles = \
gstreamer-audio.pc.in gstreamer-audio-uninstalled.pc.in \
gstreamer-app.pc.in gstreamer-app-uninstalled.pc.in \
gstreamer-fft.pc.in gstreamer-fft-uninstalled.pc.in \
- gstreamer-interfaces.pc.in gstreamer-interfaces-uninstalled.pc.in \
gstreamer-pbutils.pc.in gstreamer-pbutils-uninstalled.pc.in \
gstreamer-riff.pc.in gstreamer-riff-uninstalled.pc.in \
gstreamer-rtp.pc.in gstreamer-rtp-uninstalled.pc.in \
@@ -549,10 +543,6 @@ gstreamer-fft.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-fft.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gstreamer-fft-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-fft-uninstalled.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-gstreamer-interfaces.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-interfaces.pc.in
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-gstreamer-interfaces-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-interfaces-uninstalled.pc.in
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gstreamer-pbutils.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-pbutils.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gstreamer-pbutils-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/gstreamer-pbutils-uninstalled.pc.in
@@ -596,7 +586,7 @@ install-pkgconfigDATA: $(pkgconfig_DATA)
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
diff --git a/pkgconfig/gstreamer-audio-uninstalled.pc.in b/pkgconfig/gstreamer-audio-uninstalled.pc.in
index a55ee9d..8ccd13c 100644
--- a/pkgconfig/gstreamer-audio-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-audio-uninstalled.pc.in
@@ -10,7 +10,7 @@ typelibdir=@abs_top_builddir@/gst-libs/gst/audio
Name: GStreamer Audio Library, Uninstalled
Description: Audio helper functions and base classes, uninstalled
Version: @VERSION@
-Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@ gstreamer-interfaces-@GST_API_VERSION@
+Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@
Libs: @abs_top_builddir@/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la
Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
diff --git a/pkgconfig/gstreamer-audio.pc.in b/pkgconfig/gstreamer-audio.pc.in
index cad6aa3..28b0662 100644
--- a/pkgconfig/gstreamer-audio.pc.in
+++ b/pkgconfig/gstreamer-audio.pc.in
@@ -9,7 +9,7 @@ typelibdir=${libdir}/girepository-1.0
Name: GStreamer Audio library
Description: Audio helper functions and base classes
-Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@ gstreamer-interfaces-@GST_API_VERSION@
+Requires: gstreamer-@GST_API_VERSION@ gstreamer-base-@GST_API_VERSION@
Version: @VERSION@
Libs: -L${libdir} -lgstaudio-@GST_API_VERSION@
Cflags: -I${includedir}
diff --git a/pkgconfig/gstreamer-interfaces-uninstalled.pc.in b/pkgconfig/gstreamer-interfaces-uninstalled.pc.in
deleted file mode 100644
index 481e934..0000000
--- a/pkgconfig/gstreamer-interfaces-uninstalled.pc.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# the standard variables don't make sense for an uninstalled copy
-prefix=
-exec_prefix=
-libdir=
-# includedir is builddir because it is used to find gstconfig.h in places
-includedir=@abs_top_builddir@/gst-libs
-girdir=@abs_top_builddir@/gst-libs/gst/interfaces
-typelibdir=@abs_top_builddir@/gst-libs/gst/interfaces
-
-Name: GStreamer Interfaces Library, Uninstalled
-Description: Interfaces for GStreamer elements, uninstalled
-Version: @VERSION@
-Requires: gstreamer-@GST_API_VERSION@
-Libs: @abs_top_builddir@/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la
-Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
-
diff --git a/pkgconfig/gstreamer-interfaces.pc.in b/pkgconfig/gstreamer-interfaces.pc.in
deleted file mode 100644
index de3d6cd..0000000
--- a/pkgconfig/gstreamer-interfaces.pc.in
+++ /dev/null
@@ -1,16 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@/gstreamer-@GST_API_VERSION@
-datarootdir=${prefix}/share
-datadir=${datarootdir}
-girdir=${datadir}/gir-1.0
-typelibdir=${libdir}/girepository-1.0
-
-Name: GStreamer Interfaces Library
-Description: Interfaces for GStreamer elements
-Requires: gstreamer-@GST_API_VERSION@
-Version: @VERSION@
-Libs: -L${libdir} -lgstinterfaces-@GST_API_VERSION@
-Cflags: -I${includedir}
-
diff --git a/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in b/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
index c4d91ff..b696d8a 100644
--- a/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
@@ -10,7 +10,7 @@ Name: GStreamer Base Plugins Libraries, Uninstalled
Description: Streaming media framework, base plugins libraries, uninstalled
Version: @VERSION@
Requires: gstreamer-@GST_API_VERSION@
-Libs: -L@abs_top_builddir@/gst-libs/gst/audio -L@abs_top_builddir@/gst-libs/gst/fft -L@abs_top_builddir@/gst-libs/gst/interfaces -L@abs_top_builddir@/gst-libs/gst/riff -L@abs_top_builddir@/gst-libs/gst/rtp -L@abs_top_builddir@/gst-libs/gst/rtsp -L@abs_top_builddir@/gst-libs/gst/sdp -L@abs_top_builddir@/gst-libs/gst/tag -L@abs_top_builddir@/gst-libs/gst/pbutils -L@abs_top_builddir@/gst-libs/gst/video -L@abs_top_builddir@/gst-libs/gst/app
+Libs: -L@abs_top_builddir@/gst-libs/gst/audio -L@abs_top_builddir@/gst-libs/gst/fft -L@abs_top_builddir@/gst-libs/gst/riff -L@abs_top_builddir@/gst-libs/gst/rtp -L@abs_top_builddir@/gst-libs/gst/rtsp -L@abs_top_builddir@/gst-libs/gst/sdp -L@abs_top_builddir@/gst-libs/gst/tag -L@abs_top_builddir@/gst-libs/gst/pbutils -L@abs_top_builddir@/gst-libs/gst/video -L@abs_top_builddir@/gst-libs/gst/app
Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
-libraries=app audio fft interfaces riff rtp rtsp sdp tag pbutils video
+libraries=app audio fft riff rtp rtsp sdp tag pbutils video
diff --git a/pkgconfig/gstreamer-plugins-base.pc.in b/pkgconfig/gstreamer-plugins-base.pc.in
index 6512f2d..6ecf095 100644
--- a/pkgconfig/gstreamer-plugins-base.pc.in
+++ b/pkgconfig/gstreamer-plugins-base.pc.in
@@ -11,4 +11,4 @@ Version: @VERSION@
Libs: -L${libdir}
Cflags: -I${includedir}
-libraries=audio fft interfaces riff rtp tag pbutils video
+libraries=audio fft riff rtp tag pbutils video
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 788d4a8..3e9e6a8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,4 +1,3 @@
-ext/alsa/gstalsamixertrack.c
ext/alsa/gstalsasink.c
ext/alsa/gstalsasrc.c
ext/cdparanoia/gstcdparanoiasrc.c
diff --git a/po/af.gmo b/po/af.gmo
index 439aec4..4e52ba2 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 70012da..36d3741 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: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+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"
@@ -16,40 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr ""
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Treble"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetiseerder"
-
-msgid "Line-in"
-msgstr "Lyn-in"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofoon"
-
-#, fuzzy
-msgid "PC Speaker"
-msgstr "Luidspreker"
-
-msgid "Playback"
-msgstr ""
-
-msgid "Capture"
-msgstr ""
-
#, fuzzy
msgid "Could not open device for playback in mono mode."
msgstr "Kon nie CD-toestel oopmaak om te lees nie."
@@ -515,6 +481,31 @@ msgstr ""
msgid "Plugin or element of unknown type"
msgstr ""
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Treble"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetiseerder"
+
+#~ msgid "Line-in"
+#~ msgstr "Lyn-in"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofoon"
+
+#, fuzzy
+#~ msgid "PC Speaker"
+#~ msgstr "Luidspreker"
+
#, fuzzy
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Kon nie vfs-lêer \"%s\" oopmaak vir skryf nie."
diff --git a/po/az.gmo b/po/az.gmo
index 470b32a..2e3f4e9 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 8d9adaf..9bb8ed5 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: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+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"
@@ -17,40 +17,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.0.2\n"
-msgid "Master"
-msgstr ""
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "İncə"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sint"
-
-msgid "Line-in"
-msgstr "Xətd-giriş"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-#, fuzzy
-msgid "PC Speaker"
-msgstr "Spiker"
-
-msgid "Playback"
-msgstr ""
-
-msgid "Capture"
-msgstr ""
-
#, fuzzy
msgid "Could not open device for playback in mono mode."
msgstr "CD avadanlığı oxuma üçün açıla bilmədi."
@@ -516,6 +482,31 @@ msgstr ""
msgid "Plugin or element of unknown type"
msgstr ""
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "İncə"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sint"
+
+#~ msgid "Line-in"
+#~ msgstr "Xətd-giriş"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#, fuzzy
+#~ msgid "PC Speaker"
+#~ msgstr "Spiker"
+
#, fuzzy
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "\"%s\" vfs faylı yazma üçün açıla bilmədi."
diff --git a/po/bg.gmo b/po/bg.gmo
index 1bb4bcc..0739034 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 6399dfb..cda581b 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-26 22:31+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -18,39 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-msgid "Master"
-msgstr "Главен"
-
-msgid "Bass"
-msgstr "Баси"
-
-msgid "Treble"
-msgstr "Високи"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Синтезатор"
-
-msgid "Line-in"
-msgstr "Вход"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Микрофон"
-
-msgid "PC Speaker"
-msgstr "Високоговорител на PC"
-
-msgid "Playback"
-msgstr "Изпълнение"
-
-msgid "Capture"
-msgstr "Запис"
-
msgid "Could not open device for playback in mono mode."
msgstr "Устройството не може да се отвори за изпълнение в моно режим."
@@ -518,6 +485,39 @@ msgstr "Непознат елемент-кодер"
msgid "Plugin or element of unknown type"
msgstr "Приставка или елемент от непознат вид"
+#~ msgid "Master"
+#~ msgstr "Главен"
+
+#~ msgid "Bass"
+#~ msgstr "Баси"
+
+#~ msgid "Treble"
+#~ msgstr "Високи"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Синтезатор"
+
+#~ msgid "Line-in"
+#~ msgstr "Вход"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Микрофон"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Високоговорител на PC"
+
+#~ msgid "Playback"
+#~ msgstr "Изпълнение"
+
+#~ msgid "Capture"
+#~ msgstr "Запис"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Връзката към %s:%d е отказана."
diff --git a/po/ca.gmo b/po/ca.gmo
index e87987d..7cfefcb 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index ff9a777..100335a 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+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"
@@ -19,39 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-msgid "Master"
-msgstr "Mestre"
-
-msgid "Bass"
-msgstr "Baixos"
-
-msgid "Treble"
-msgstr "Aguts"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetitzador"
-
-msgid "Line-in"
-msgstr "Línia d'entrada"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Micròfon"
-
-msgid "PC Speaker"
-msgstr "Altaveu del PC"
-
-msgid "Playback"
-msgstr "Reproducció"
-
-msgid "Capture"
-msgstr "Captura"
-
msgid "Could not open device for playback in mono mode."
msgstr "No s'ha pogut obrir el dispositiu per a la reproducció en mode mono."
@@ -530,6 +497,39 @@ msgstr "L'element codificador és desconegut"
msgid "Plugin or element of unknown type"
msgstr "El connector o element és de tipus desconegut"
+#~ msgid "Master"
+#~ msgstr "Mestre"
+
+#~ msgid "Bass"
+#~ msgstr "Baixos"
+
+#~ msgid "Treble"
+#~ msgstr "Aguts"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetitzador"
+
+#~ msgid "Line-in"
+#~ msgstr "Línia d'entrada"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Micròfon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Altaveu del PC"
+
+#~ msgid "Playback"
+#~ msgstr "Reproducció"
+
+#~ msgid "Capture"
+#~ msgstr "Captura"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "No s'ha pogut obrir el fitxer vfs «%s» per a l'escriptura: %s."
diff --git a/po/cs.gmo b/po/cs.gmo
index f1c8a9f..5da6577 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index f5252be..00e7c8e 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-05-29 16:49+0200\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -19,39 +19,6 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Lokalize 1.2\n"
-msgid "Master"
-msgstr "Master"
-
-msgid "Bass"
-msgstr "Basy"
-
-msgid "Treble"
-msgstr "Výšky"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Syntezátor"
-
-msgid "Line-in"
-msgstr "Linkový vstup"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "PC Speaker"
-
-msgid "Playback"
-msgstr "Přehrávání"
-
-msgid "Capture"
-msgstr "Záznam"
-
msgid "Could not open device for playback in mono mode."
msgstr "Nezdařilo se otevření zařízení k přehrávání v režimu mono."
@@ -522,6 +489,39 @@ msgstr "Neznámý kodérový prvek"
msgid "Plugin or element of unknown type"
msgstr "Zásuvný modul nebo prvek neznámého typu"
+#~ msgid "Master"
+#~ msgstr "Master"
+
+#~ msgid "Bass"
+#~ msgstr "Basy"
+
+#~ msgid "Treble"
+#~ msgstr "Výšky"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Syntezátor"
+
+#~ msgid "Line-in"
+#~ msgstr "Linkový vstup"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC Speaker"
+
+#~ msgid "Playback"
+#~ msgstr "Přehrávání"
+
+#~ msgid "Capture"
+#~ msgstr "Záznam"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Spojení s %s:%d bylo odmítnuto."
diff --git a/po/da.gmo b/po/da.gmo
index d20bfa4..4bf7c19 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 813c94d..a6a7279 100644
--- a/po/da.po
+++ b/po/da.po
@@ -33,7 +33,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-28 16:38+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -42,39 +42,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr "Master"
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Diskant"
-
-msgid "PCM"
-msgstr "Pcm"
-
-msgid "Synth"
-msgstr "Synthesizer"
-
-msgid "Line-in"
-msgstr "Linie-ind"
-
-msgid "CD"
-msgstr "Cd"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "Pc-højttaler"
-
-msgid "Playback"
-msgstr "Afspilning"
-
-msgid "Capture"
-msgstr "Optage"
-
msgid "Could not open device for playback in mono mode."
msgstr "Kunne ikke afspille fra enheden i mono-tilstand."
@@ -559,6 +526,39 @@ msgstr "Ukendt indkodeelement"
msgid "Plugin or element of unknown type"
msgstr "Plugin eller element af ukendt type"
+#~ msgid "Master"
+#~ msgstr "Master"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Diskant"
+
+#~ msgid "PCM"
+#~ msgstr "Pcm"
+
+#~ msgid "Synth"
+#~ msgstr "Synthesizer"
+
+#~ msgid "Line-in"
+#~ msgstr "Linie-ind"
+
+#~ msgid "CD"
+#~ msgstr "Cd"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Pc-højttaler"
+
+#~ msgid "Playback"
+#~ msgstr "Afspilning"
+
+#~ msgid "Capture"
+#~ msgstr "Optage"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Opkobling til %s:%d afvist."
diff --git a/po/de.gmo b/po/de.gmo
index bd59a64..9d7c70b 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 5231f6e..c466e11 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-28 00:04+0200\n"
"Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -19,39 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-msgid "Master"
-msgstr "Hauptregler"
-
-msgid "Bass"
-msgstr "Bass"
-
-msgid "Treble"
-msgstr "Höhen"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Line-Eingang"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "PC-Lautsprecher"
-
-msgid "Playback"
-msgstr "Wiedergabe"
-
-msgid "Capture"
-msgstr "Aufnahme"
-
msgid "Could not open device for playback in mono mode."
msgstr "Gerät konnte nicht zur Wiedergabe in Mono geöffnet werden."
@@ -528,6 +495,39 @@ msgstr "Unbekanntes Encoder-Element"
msgid "Plugin or element of unknown type"
msgstr "Plugin oder Element unbekannten Typs"
+#~ msgid "Master"
+#~ msgstr "Hauptregler"
+
+#~ msgid "Bass"
+#~ msgstr "Bass"
+
+#~ msgid "Treble"
+#~ msgstr "Höhen"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Line-Eingang"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC-Lautsprecher"
+
+#~ msgid "Playback"
+#~ msgstr "Wiedergabe"
+
+#~ msgid "Capture"
+#~ msgstr "Aufnahme"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Verbindung nach %s:%d wurde verweigert."
diff --git a/po/el.gmo b/po/el.gmo
index ada3001..997bb19 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 2353f18..e505a3f 100644
--- a/po/el.po
+++ b/po/el.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-10-27 12:05+0200\n"
"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -20,39 +20,6 @@ msgstr ""
"X-Poedit-Language: Greek\n"
"X-Poedit-Country: GREECE\n"
-msgid "Master"
-msgstr "Γενικός"
-
-msgid "Bass"
-msgstr "Μπάσα"
-
-msgid "Treble"
-msgstr "Πρίμα"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Συνθεσάιζερ"
-
-msgid "Line-in"
-msgstr "Είσοδος γραμμής"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Μικρόφωνο"
-
-msgid "PC Speaker"
-msgstr "Ηχείο υπολογιστή"
-
-msgid "Playback"
-msgstr "Αναπαραγωγή"
-
-msgid "Capture"
-msgstr "Σύλληψη"
-
msgid "Could not open device for playback in mono mode."
msgstr "Αδυναμία ανοίγματος συσκευής για μονοφωνική αναπαραγωγή."
@@ -537,6 +504,39 @@ msgstr "Άγνωστο στοιχείο κωδικοποιητή"
msgid "Plugin or element of unknown type"
msgstr "Πρόσθετη λειτουργία ή στοιχείο άγνωστου τύπου"
+#~ msgid "Master"
+#~ msgstr "Γενικός"
+
+#~ msgid "Bass"
+#~ msgstr "Μπάσα"
+
+#~ msgid "Treble"
+#~ msgstr "Πρίμα"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Συνθεσάιζερ"
+
+#~ msgid "Line-in"
+#~ msgstr "Είσοδος γραμμής"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Μικρόφωνο"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Ηχείο υπολογιστή"
+
+#~ msgid "Playback"
+#~ msgstr "Αναπαραγωγή"
+
+#~ msgid "Capture"
+#~ msgstr "Σύλληψη"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Άρνηση σύνδεσης σε %s:%d."
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 259bd86..4164e74 100644
--- a/po/en_GB.gmo
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index 60e8f32..382d6bc 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: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+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"
@@ -15,40 +15,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr ""
-
-msgid "Bass"
-msgstr "Bass"
-
-msgid "Treble"
-msgstr "Treble"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Line-in"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Microphone"
-
-#, fuzzy
-msgid "PC Speaker"
-msgstr "Speaker"
-
-msgid "Playback"
-msgstr ""
-
-msgid "Capture"
-msgstr ""
-
#, fuzzy
msgid "Could not open device for playback in mono mode."
msgstr "Could not open CD device for reading."
@@ -514,6 +480,31 @@ msgstr ""
msgid "Plugin or element of unknown type"
msgstr ""
+#~ msgid "Bass"
+#~ msgstr "Bass"
+
+#~ msgid "Treble"
+#~ msgstr "Treble"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Line-in"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Microphone"
+
+#, fuzzy
+#~ msgid "PC Speaker"
+#~ msgstr "Speaker"
+
#, fuzzy
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Could not open vfs file \"%s\" for writing."
diff --git a/po/eo.gmo b/po/eo.gmo
index 7199475..6608d19 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 1ecd28d..42a7178 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-06-04 21:11+0100\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -17,39 +17,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-msgid "Master"
-msgstr "Ĉefa regilo"
-
-msgid "Bass"
-msgstr "Baso"
-
-msgid "Treble"
-msgstr ""
-
-msgid "PCM"
-msgstr ""
-
-msgid "Synth"
-msgstr "Sintezilo"
-
-msgid "Line-in"
-msgstr ""
-
-msgid "CD"
-msgstr "KD"
-
-msgid "Microphone"
-msgstr "Mikrofono"
-
-msgid "PC Speaker"
-msgstr "Komputila laŭtparolilo"
-
-msgid "Playback"
-msgstr "Reproduktado"
-
-msgid "Capture"
-msgstr "Kapti"
-
msgid "Could not open device for playback in mono mode."
msgstr "Ne eblis malfermi aparaton por reproduktado per unukanala reĝimo."
@@ -509,6 +476,30 @@ msgstr ""
msgid "Plugin or element of unknown type"
msgstr ""
+#~ msgid "Master"
+#~ msgstr "Ĉefa regilo"
+
+#~ msgid "Bass"
+#~ msgstr "Baso"
+
+#~ msgid "Synth"
+#~ msgstr "Sintezilo"
+
+#~ msgid "CD"
+#~ msgstr "KD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofono"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Komputila laŭtparolilo"
+
+#~ msgid "Playback"
+#~ msgstr "Reproduktado"
+
+#~ msgid "Capture"
+#~ msgstr "Kapti"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Ne eblis malfermi la vfs-dosieron \"%s\" por skribado: %s."
diff --git a/po/es.gmo b/po/es.gmo
index 305cf60..8e194ce 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 58cedb3..3f269bf 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-10-02 15:46+0200\n"
"Last-Translator: Jorge González González <aloriel@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -17,39 +17,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
-msgid "Master"
-msgstr "Maestro"
-
-msgid "Bass"
-msgstr "Bajo"
-
-msgid "Treble"
-msgstr "Agudos"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetizador"
-
-msgid "Line-in"
-msgstr "Línea de entrada"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Micrófono"
-
-msgid "PC Speaker"
-msgstr "Altavoz del equipo"
-
-msgid "Playback"
-msgstr "Reproducción"
-
-msgid "Capture"
-msgstr "Capturar"
-
msgid "Could not open device for playback in mono mode."
msgstr "No se pudo abrir el dispositivo para la reproducir en modo mono."
@@ -519,6 +486,39 @@ msgstr "Elemento codificador desconocido"
msgid "Plugin or element of unknown type"
msgstr "Complemento o elemento de tipo desconocido"
+#~ msgid "Master"
+#~ msgstr "Maestro"
+
+#~ msgid "Bass"
+#~ msgstr "Bajo"
+
+#~ msgid "Treble"
+#~ msgstr "Agudos"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetizador"
+
+#~ msgid "Line-in"
+#~ msgstr "Línea de entrada"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Micrófono"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Altavoz del equipo"
+
+#~ msgid "Playback"
+#~ msgstr "Reproducción"
+
+#~ msgid "Capture"
+#~ msgstr "Capturar"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Se rechazó la conexión con %s:%d."
diff --git a/po/eu.gmo b/po/eu.gmo
index 6c4be8e..a9f9326 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index d29463c..c113801 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-03-25 12:32+0100\n"
"Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -19,39 +19,6 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-msgid "Master"
-msgstr "Maisua"
-
-msgid "Bass"
-msgstr "Baxua"
-
-msgid "Treble"
-msgstr "Altua"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetizadorea"
-
-msgid "Line-in"
-msgstr "Linea-sarrera"
-
-msgid "CD"
-msgstr "CDa"
-
-msgid "Microphone"
-msgstr "Mikrofonoa"
-
-msgid "PC Speaker"
-msgstr "Ordenagailuko bozgorailua"
-
-msgid "Playback"
-msgstr "Erreproduzitzea"
-
-msgid "Capture"
-msgstr "Kapturatzea"
-
msgid "Could not open device for playback in mono mode."
msgstr "Ezin izan da gailua ireki mono moduan erreproduzitzeko."
@@ -520,6 +487,39 @@ msgstr "Kodetzailearen elementu ezezaguna"
msgid "Plugin or element of unknown type"
msgstr "Mota ezezaguneko plugina edo elementua"
+#~ msgid "Master"
+#~ msgstr "Maisua"
+
+#~ msgid "Bass"
+#~ msgstr "Baxua"
+
+#~ msgid "Treble"
+#~ msgstr "Altua"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetizadorea"
+
+#~ msgid "Line-in"
+#~ msgstr "Linea-sarrera"
+
+#~ msgid "CD"
+#~ msgstr "CDa"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofonoa"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Ordenagailuko bozgorailua"
+
+#~ msgid "Playback"
+#~ msgstr "Erreproduzitzea"
+
+#~ msgid "Capture"
+#~ msgstr "Kapturatzea"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "%s:%d(e)ra konektatzea ukatu da."
diff --git a/po/fi.gmo b/po/fi.gmo
index 866d4e4..e23f6c0 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 6524e07..fc22424 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-12-31 23:21+0200\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -22,39 +22,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-msgid "Master"
-msgstr "Pääkanava"
-
-msgid "Bass"
-msgstr "Basso"
-
-msgid "Treble"
-msgstr "Ylä-äänet"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Linjatulo"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofoni"
-
-msgid "PC Speaker"
-msgstr "PC-kaiutin"
-
-msgid "Playback"
-msgstr "Toisto"
-
-msgid "Capture"
-msgstr "Nauhoitus"
-
msgid "Could not open device for playback in mono mode."
msgstr "Laitetta ei voitu avata toistoa varten monona."
@@ -522,6 +489,39 @@ msgstr "Tuntematon kodekkielementti"
msgid "Plugin or element of unknown type"
msgstr "Liitännäisen tai elementin tyyppi on tuntematon"
+#~ msgid "Master"
+#~ msgstr "Pääkanava"
+
+#~ msgid "Bass"
+#~ msgstr "Basso"
+
+#~ msgid "Treble"
+#~ msgstr "Ylä-äänet"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Linjatulo"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofoni"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC-kaiutin"
+
+#~ msgid "Playback"
+#~ msgstr "Toisto"
+
+#~ msgid "Capture"
+#~ msgstr "Nauhoitus"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Yhteys kohteeseen %s:%d estettiin."
diff --git a/po/fr.gmo b/po/fr.gmo
index a40c182..4df100d 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 250f6fe..4a08934 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-28 09:19+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -19,39 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
-msgid "Master"
-msgstr "Volume général"
-
-msgid "Bass"
-msgstr "Basses"
-
-msgid "Treble"
-msgstr "Aiguës"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Entrée ligne"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Micro"
-
-msgid "PC Speaker"
-msgstr "Haut-parleur PC"
-
-msgid "Playback"
-msgstr "Lecture"
-
-msgid "Capture"
-msgstr "Enregistrement"
-
msgid "Could not open device for playback in mono mode."
msgstr "Impossible d'utiliser le périphérique pour la lecture en mode mono."
@@ -538,6 +505,39 @@ msgstr "Élément codeur inconnu"
msgid "Plugin or element of unknown type"
msgstr "Greffon ou élément de type inconnu"
+#~ msgid "Master"
+#~ msgstr "Volume général"
+
+#~ msgid "Bass"
+#~ msgstr "Basses"
+
+#~ msgid "Treble"
+#~ msgstr "Aiguës"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Entrée ligne"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Micro"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Haut-parleur PC"
+
+#~ msgid "Playback"
+#~ msgstr "Lecture"
+
+#~ msgid "Capture"
+#~ msgstr "Enregistrement"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Connexion refusée vers %s:%d."
diff --git a/po/gl.gmo b/po/gl.gmo
index be91d0b..8bcadd2 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 8ed7e20..e39de0c 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-09-05 12:48+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
@@ -19,39 +19,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Poedit-Language: galego\n"
-msgid "Master"
-msgstr "Mestre"
-
-msgid "Bass"
-msgstr "Graves"
-
-msgid "Treble"
-msgstr "Agudos"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetizador"
-
-msgid "Line-in"
-msgstr "Liña de entrada"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Micrófono"
-
-msgid "PC Speaker"
-msgstr "Altofalante do PC"
-
-msgid "Playback"
-msgstr "Reproducir"
-
-msgid "Capture"
-msgstr "Capturar"
-
msgid "Could not open device for playback in mono mode."
msgstr "Non foi posíbel abrir o dispositivo para a reprodución en modo mono."
@@ -521,6 +488,39 @@ msgstr "O elemento codificador é descoñecido"
msgid "Plugin or element of unknown type"
msgstr "Engadido ou elemento de tipo descoñecido"
+#~ msgid "Master"
+#~ msgstr "Mestre"
+
+#~ msgid "Bass"
+#~ msgstr "Graves"
+
+#~ msgid "Treble"
+#~ msgstr "Agudos"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetizador"
+
+#~ msgid "Line-in"
+#~ msgstr "Liña de entrada"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Micrófono"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Altofalante do PC"
+
+#~ msgid "Playback"
+#~ msgstr "Reproducir"
+
+#~ msgid "Capture"
+#~ msgstr "Capturar"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Rexeitouse a conexión a %s:%d."
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index d6ef1fb..e9a4b6d 100644
--- a/po/gst-plugins-base-1.0.pot
+++ b/po/gst-plugins-base-1.0.pot
@@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 0.11.90\n"
+"Project-Id-Version: gst-plugins-base 0.11.91\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+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,94 +16,49 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ext/alsa/gstalsamixertrack.c:144
-msgid "Master"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:145
-msgid "Bass"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:146
-msgid "Treble"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:147
-msgid "PCM"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:148
-msgid "Synth"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:149
-msgid "Line-in"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:150
-msgid "CD"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:151
-msgid "Microphone"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:152
-msgid "PC Speaker"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:153
-msgid "Playback"
-msgstr ""
-
-#: ext/alsa/gstalsamixertrack.c:154 ext/alsa/gstalsamixertrack.c:221
-#: ext/alsa/gstalsamixertrack.c:224
-msgid "Capture"
-msgstr ""
-
-#: ext/alsa/gstalsasink.c:468
+#: ext/alsa/gstalsasink.c:555
msgid "Could not open device for playback in mono mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:470
+#: ext/alsa/gstalsasink.c:557
msgid "Could not open device for playback in stereo mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:474
+#: ext/alsa/gstalsasink.c:561
#, c-format
msgid "Could not open device for playback in %d-channel mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:744
+#: ext/alsa/gstalsasink.c:834
msgid ""
"Could not open audio device for playback. Device is being used by another "
"application."
msgstr ""
-#: ext/alsa/gstalsasink.c:749
+#: ext/alsa/gstalsasink.c:839
msgid "Could not open audio device for playback."
msgstr ""
-#: ext/alsa/gstalsasrc.c:390
+#: ext/alsa/gstalsasrc.c:370
msgid "Could not open device for recording in mono mode."
msgstr ""
-#: ext/alsa/gstalsasrc.c:392
+#: ext/alsa/gstalsasrc.c:372
msgid "Could not open device for recording in stereo mode."
msgstr ""
-#: ext/alsa/gstalsasrc.c:396
+#: ext/alsa/gstalsasrc.c:376
#, c-format
msgid "Could not open device for recording in %d-channel mode"
msgstr ""
-#: ext/alsa/gstalsasrc.c:680
+#: ext/alsa/gstalsasrc.c:657
msgid ""
"Could not open audio device for recording. Device is being used by another "
"application."
msgstr ""
-#: ext/alsa/gstalsasrc.c:685
+#: ext/alsa/gstalsasrc.c:662
msgid "Could not open audio device for recording."
msgstr ""
@@ -119,90 +74,90 @@ msgstr ""
msgid "Could not read CD."
msgstr ""
-#: ext/ogg/gstoggdemux.c:4460
+#: ext/ogg/gstoggdemux.c:4462
msgid "Internal data stream error."
msgstr ""
-#: gst/playback/gstdecodebin2.c:1657
+#: gst/playback/gstdecodebin2.c:1684
#, c-format
msgid "A %s plugin is required to play this stream, but not installed."
msgstr ""
-#: gst/playback/gstdecodebin2.c:1664
+#: gst/playback/gstdecodebin2.c:1691
msgid "Could not determine type of stream"
msgstr ""
-#: gst/playback/gstdecodebin2.c:2261
+#: gst/playback/gstdecodebin2.c:2333
msgid "This appears to be a text file"
msgstr ""
#: gst/playback/gstplaysink.c:1297 gst/playback/gstplaysink.c:1310
-#: gst/playback/gstplaysink.c:1619 gst/playback/gstplaysink.c:1886
-#: gst/playback/gstplaysink.c:1935 gst/playback/gstplaysink.c:1950
-#: gst/playback/gstplaysink.c:1975 gst/playback/gstplaysink.c:2007
-#: gst/playback/gstplaysink.c:2127 gst/playback/gstplaysink.c:2482
-#: gst/playback/gstplaysink.c:2491 gst/playback/gstplaysink.c:2500
-#: gst/playback/gstplaysink.c:2509 gst/playback/gstplaysink.c:3541
-#: gst/playback/gsturidecodebin.c:1359
+#: gst/playback/gstplaysink.c:1621 gst/playback/gstplaysink.c:1888
+#: gst/playback/gstplaysink.c:1937 gst/playback/gstplaysink.c:1952
+#: gst/playback/gstplaysink.c:1977 gst/playback/gstplaysink.c:2009
+#: gst/playback/gstplaysink.c:2129 gst/playback/gstplaysink.c:2484
+#: gst/playback/gstplaysink.c:2493 gst/playback/gstplaysink.c:2502
+#: gst/playback/gstplaysink.c:2511 gst/playback/gstplaysink.c:3592
+#: gst/playback/gsturidecodebin.c:1384
#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""
-#: gst/playback/gstplaysink.c:1694
+#: gst/playback/gstplaysink.c:1696
#, c-format
msgid "Both autovideosink and %s elements are missing."
msgstr ""
-#: gst/playback/gstplaysink.c:1698
+#: gst/playback/gstplaysink.c:1700
msgid "The autovideosink element is missing."
msgstr ""
-#: gst/playback/gstplaysink.c:1703
+#: gst/playback/gstplaysink.c:1705
#, c-format
msgid "Configured videosink %s is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1707
+#: gst/playback/gstplaysink.c:1709
#, c-format
msgid "Both autovideosink and %s elements are not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1711
+#: gst/playback/gstplaysink.c:1713
msgid "The autovideosink element is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1923
+#: gst/playback/gstplaysink.c:1925
msgid "Custom text sink element is not usable."
msgstr ""
-#: gst/playback/gstplaysink.c:2245
+#: gst/playback/gstplaysink.c:2247
msgid "No volume control found"
msgstr ""
-#: gst/playback/gstplaysink.c:2265
+#: gst/playback/gstplaysink.c:2267
#, c-format
msgid "Both autoaudiosink and %s elements are missing."
msgstr ""
-#: gst/playback/gstplaysink.c:2269
+#: gst/playback/gstplaysink.c:2271
msgid "The autoaudiosink element is missing."
msgstr ""
-#: gst/playback/gstplaysink.c:2274
+#: gst/playback/gstplaysink.c:2276
#, c-format
msgid "Configured audiosink %s is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:2278
+#: gst/playback/gstplaysink.c:2280
#, c-format
msgid "Both autoaudiosink and %s elements are not working."
msgstr ""
-#: gst/playback/gstplaysink.c:2282
+#: gst/playback/gstplaysink.c:2284
msgid "The autoaudiosink element is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:2598 gst/playback/gstplaysink.c:2603
+#: gst/playback/gstplaysink.c:2600 gst/playback/gstplaysink.c:2605
msgid "Can't play a text file without video or visualizations."
msgstr ""
@@ -211,25 +166,25 @@ msgstr ""
msgid "No decoder available for type '%s'."
msgstr ""
-#: gst/playback/gsturidecodebin.c:1272
+#: gst/playback/gsturidecodebin.c:1297
msgid "No URI specified to play from."
msgstr ""
-#: gst/playback/gsturidecodebin.c:1278
+#: gst/playback/gsturidecodebin.c:1303
#, c-format
msgid "Invalid URI \"%s\"."
msgstr ""
-#: gst/playback/gsturidecodebin.c:1284
+#: gst/playback/gsturidecodebin.c:1309
msgid "This stream type cannot be played yet."
msgstr ""
-#: gst/playback/gsturidecodebin.c:1301
+#: gst/playback/gsturidecodebin.c:1326
#, c-format
msgid "No URI handler implemented for \"%s\"."
msgstr ""
-#: gst/playback/gsturidecodebin.c:2112
+#: gst/playback/gsturidecodebin.c:2157
msgid "Source element is invalid."
msgstr ""
@@ -459,186 +414,186 @@ msgstr ""
msgid "unparsed id3v2 tag frame"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:73
+#: gst-libs/gst/pbutils/descriptions.c:78
msgid "ID3 tag"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:74
-#: gst-libs/gst/pbutils/descriptions.c:75
+#: gst-libs/gst/pbutils/descriptions.c:79
+#: gst-libs/gst/pbutils/descriptions.c:80
msgid "APE tag"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:76
+#: gst-libs/gst/pbutils/descriptions.c:81
msgid "ICY internet radio"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:105
+#: gst-libs/gst/pbutils/descriptions.c:113
msgid "Apple Lossless Audio (ALAC)"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:115
+#: gst-libs/gst/pbutils/descriptions.c:123
msgid "Free Lossless Audio Codec (FLAC)"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:141
-#: gst-libs/gst/pbutils/descriptions.c:142
+#: gst-libs/gst/pbutils/descriptions.c:149
+#: gst-libs/gst/pbutils/descriptions.c:150
msgid "Lossless True Audio (TTA)"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:150
+#: gst-libs/gst/pbutils/descriptions.c:158
msgid "Windows Media Speech"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:165
+#: gst-libs/gst/pbutils/descriptions.c:173
msgid "CYUV Lossless"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:170
+#: gst-libs/gst/pbutils/descriptions.c:178
msgid "FFMpeg v1"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:184
+#: gst-libs/gst/pbutils/descriptions.c:192
msgid "Lossless MSZH"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:194
+#: gst-libs/gst/pbutils/descriptions.c:202
msgid "Run-length encoding"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:242
+#: gst-libs/gst/pbutils/descriptions.c:250
msgid "Subtitle"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:243
+#: gst-libs/gst/pbutils/descriptions.c:251
msgid "MPL2 subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:244
+#: gst-libs/gst/pbutils/descriptions.c:252
msgid "DKS subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:245
+#: gst-libs/gst/pbutils/descriptions.c:253
msgid "QTtext subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:246
+#: gst-libs/gst/pbutils/descriptions.c:254
msgid "Sami subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:247
+#: gst-libs/gst/pbutils/descriptions.c:255
msgid "TMPlayer subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:249
+#: gst-libs/gst/pbutils/descriptions.c:257
msgid "Kate subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:311
-#: gst-libs/gst/pbutils/descriptions.c:314
-#: gst-libs/gst/pbutils/descriptions.c:357
+#: gst-libs/gst/pbutils/descriptions.c:319
+#: gst-libs/gst/pbutils/descriptions.c:322
+#: gst-libs/gst/pbutils/descriptions.c:365
msgid "Uncompressed video"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:319
+#: gst-libs/gst/pbutils/descriptions.c:327
msgid "Uncompressed gray"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:345
+#: gst-libs/gst/pbutils/descriptions.c:353
#, c-format
msgid "Uncompressed %s YUV %s"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:354
+#: gst-libs/gst/pbutils/descriptions.c:362
#, c-format
msgid "Uncompressed %s%d-bit %s"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:407
+#: gst-libs/gst/pbutils/descriptions.c:415
#, c-format
msgid "DivX MPEG-4 Version %d"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:628
+#: gst-libs/gst/pbutils/descriptions.c:636
msgid "Uncompressed audio"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:634
+#: gst-libs/gst/pbutils/descriptions.c:642
#, c-format
msgid "Raw %d-bit %s audio"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:721
+#: gst-libs/gst/pbutils/descriptions.c:729
msgid "Audio CD source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:724
+#: gst-libs/gst/pbutils/descriptions.c:732
msgid "DVD source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:727
+#: gst-libs/gst/pbutils/descriptions.c:735
msgid "Real Time Streaming Protocol (RTSP) source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:731
+#: gst-libs/gst/pbutils/descriptions.c:739
msgid "Microsoft Media Server (MMS) protocol source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:739
+#: gst-libs/gst/pbutils/descriptions.c:747
#, c-format
msgid "%s protocol source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:811
+#: gst-libs/gst/pbutils/descriptions.c:819
#, c-format
msgid "%s video RTP depayloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:813
+#: gst-libs/gst/pbutils/descriptions.c:821
#, c-format
msgid "%s audio RTP depayloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:815
+#: gst-libs/gst/pbutils/descriptions.c:823
#, c-format
msgid "%s RTP depayloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:822
+#: gst-libs/gst/pbutils/descriptions.c:830
#, c-format
msgid "%s demuxer"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:824
+#: gst-libs/gst/pbutils/descriptions.c:832
#, c-format
msgid "%s decoder"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:862
+#: gst-libs/gst/pbutils/descriptions.c:870
#, c-format
msgid "%s video RTP payloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:864
+#: gst-libs/gst/pbutils/descriptions.c:872
#, c-format
msgid "%s audio RTP payloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:866
+#: gst-libs/gst/pbutils/descriptions.c:874
#, c-format
msgid "%s RTP payloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:873
+#: gst-libs/gst/pbutils/descriptions.c:881
#, c-format
msgid "%s muxer"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:875
+#: gst-libs/gst/pbutils/descriptions.c:883
#, c-format
msgid "%s encoder"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:907
+#: gst-libs/gst/pbutils/descriptions.c:915
#, c-format
msgid "GStreamer element %s"
msgstr ""
diff --git a/po/hu.gmo b/po/hu.gmo
index f5dd9ca..ee7edc1 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 010a355..df03d40 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-11-03 02:48+0100\n"
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -20,39 +20,6 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-msgid "Master"
-msgstr "Fő hangerő"
-
-msgid "Bass"
-msgstr "Basszus"
-
-msgid "Treble"
-msgstr "Magas"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Szintet."
-
-msgid "Line-in"
-msgstr "Vonalbemenet"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "PC hangszóró"
-
-msgid "Playback"
-msgstr "Lejátszás"
-
-msgid "Capture"
-msgstr "Felvétel"
-
msgid "Could not open device for playback in mono mode."
msgstr "Nem lehet lejátszásra megnyitni az eszközt mono módban."
@@ -522,6 +489,39 @@ msgstr "Ismeretlen kódolóelem"
msgid "Plugin or element of unknown type"
msgstr "Ismeretlen típusú bővítmény vagy elem"
+#~ msgid "Master"
+#~ msgstr "Fő hangerő"
+
+#~ msgid "Bass"
+#~ msgstr "Basszus"
+
+#~ msgid "Treble"
+#~ msgstr "Magas"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Szintet."
+
+#~ msgid "Line-in"
+#~ msgstr "Vonalbemenet"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC hangszóró"
+
+#~ msgid "Playback"
+#~ msgstr "Lejátszás"
+
+#~ msgid "Capture"
+#~ msgstr "Felvétel"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "A kapcsolat visszautasítva a következőhöz: %s:%d."
diff --git a/po/id.gmo b/po/id.gmo
index dedd9ba..4500b9b 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index b37449f..e9e64a0 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2012-01-28 11:31+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -15,39 +15,6 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr "Utama"
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Treble"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Jalur masuk"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "Pengeras Suara PC"
-
-msgid "Playback"
-msgstr "Putar kembali"
-
-msgid "Capture"
-msgstr "Tangkap"
-
msgid "Could not open device for playback in mono mode."
msgstr "Tak dapat membuka divais untuk putar kembali dalam mode mono."
@@ -515,6 +482,39 @@ msgstr "Elemen penyandi tak diketahui"
msgid "Plugin or element of unknown type"
msgstr "Plugin atau elemen dari tipe yang tak diketahui"
+#~ msgid "Master"
+#~ msgstr "Utama"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Treble"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Jalur masuk"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Pengeras Suara PC"
+
+#~ msgid "Playback"
+#~ msgstr "Putar kembali"
+
+#~ msgid "Capture"
+#~ msgstr "Tangkap"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Tak dapat membuka berkas vfs \"%s\" untuk ditulis: %s."
diff --git a/po/it.gmo b/po/it.gmo
index 7fdd6ec..b2b6c0d 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index e2f0cda..6bb4798 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-04-28 14:27+0200\n"
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -16,39 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr "Principale"
-
-msgid "Bass"
-msgstr "Bassi"
-
-msgid "Treble"
-msgstr "Acuti"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetiz"
-
-msgid "Line-in"
-msgstr "Linea in"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Microfono"
-
-msgid "PC Speaker"
-msgstr "Altoparlanti PC"
-
-msgid "Playback"
-msgstr "Riproduzione"
-
-msgid "Capture"
-msgstr "Cattura"
-
msgid "Could not open device for playback in mono mode."
msgstr "Impossibile aprire il device per la riproduzione in modalità mono."
@@ -533,6 +500,39 @@ msgstr "Elemento di codifica sconosciuto"
msgid "Plugin or element of unknown type"
msgstr "Plugin o elemento di tipo sconosciuto"
+#~ msgid "Master"
+#~ msgstr "Principale"
+
+#~ msgid "Bass"
+#~ msgstr "Bassi"
+
+#~ msgid "Treble"
+#~ msgstr "Acuti"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetiz"
+
+#~ msgid "Line-in"
+#~ msgstr "Linea in"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Microfono"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Altoparlanti PC"
+
+#~ msgid "Playback"
+#~ msgstr "Riproduzione"
+
+#~ msgid "Capture"
+#~ msgstr "Cattura"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Connessione a %s:%d rifiutata."
diff --git a/po/ja.gmo b/po/ja.gmo
index 239a50a..6e03e32 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 302ee01..741fd6a 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-10-25 10:27+0900\n"
"Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -17,39 +17,6 @@ msgstr ""
"X-Generator: Lokalize 0.2\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-msgid "Master"
-msgstr "マスター"
-
-msgid "Bass"
-msgstr "低音"
-
-msgid "Treble"
-msgstr "高音"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "シンセ"
-
-msgid "Line-in"
-msgstr "ライン入力"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "マイクロフォン"
-
-msgid "PC Speaker"
-msgstr "PCスピーカー"
-
-msgid "Playback"
-msgstr "再生"
-
-msgid "Capture"
-msgstr "キャプチャ"
-
msgid "Could not open device for playback in mono mode."
msgstr "モノラルモードで再生用にデバイスをオープンできませんでした"
@@ -521,6 +488,39 @@ msgstr "不明なエンコーダーエレメント"
msgid "Plugin or element of unknown type"
msgstr "不明な種類のプラグインまたはエレメント"
+#~ msgid "Master"
+#~ msgstr "マスター"
+
+#~ msgid "Bass"
+#~ msgstr "低音"
+
+#~ msgid "Treble"
+#~ msgstr "高音"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "シンセ"
+
+#~ msgid "Line-in"
+#~ msgstr "ライン入力"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "マイクロフォン"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PCスピーカー"
+
+#~ msgid "Playback"
+#~ msgstr "再生"
+
+#~ msgid "Capture"
+#~ msgstr "キャプチャ"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "%s:%d への接続が拒否されました"
diff --git a/po/lt.gmo b/po/lt.gmo
index 70d2e5a..e599644 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index e72813d..5def22b 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.15.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2008-03-07 23:43+0200\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -19,39 +19,6 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
-msgid "Master"
-msgstr "Pagrindinis"
-
-msgid "Bass"
-msgstr "Žemi dažniai"
-
-msgid "Treble"
-msgstr "Aukšti dažniai"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintezatorius"
-
-msgid "Line-in"
-msgstr "Įvedimas"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofonas"
-
-msgid "PC Speaker"
-msgstr "PC garsiakalbis"
-
-msgid "Playback"
-msgstr "Grojimas"
-
-msgid "Capture"
-msgstr "Įrašymas"
-
msgid "Could not open device for playback in mono mode."
msgstr "Nepavyko atverti įrenginio monofoniniam grojimui."
@@ -523,6 +490,39 @@ msgstr "Nežinomas kodavimo elementas"
msgid "Plugin or element of unknown type"
msgstr "Nežinomo tipo įskiepis ar elementas"
+#~ msgid "Master"
+#~ msgstr "Pagrindinis"
+
+#~ msgid "Bass"
+#~ msgstr "Žemi dažniai"
+
+#~ msgid "Treble"
+#~ msgstr "Aukšti dažniai"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintezatorius"
+
+#~ msgid "Line-in"
+#~ msgstr "Įvedimas"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofonas"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC garsiakalbis"
+
+#~ msgid "Playback"
+#~ msgstr "Grojimas"
+
+#~ msgid "Capture"
+#~ msgstr "Įrašymas"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Prisijungimas prie %s:%d atmestas."
diff --git a/po/lv.gmo b/po/lv.gmo
index 26449f5..da1b627 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 20ee9ee..9f8be93 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-09-02 12:02-0000\n"
"Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -22,39 +22,6 @@ msgstr ""
"2);\n"
"X-Generator: Lokalize 1.0\n"
-msgid "Master"
-msgstr "Galvenais"
-
-msgid "Bass"
-msgstr "Bass"
-
-msgid "Treble"
-msgstr "Diskants"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintēze"
-
-msgid "Line-in"
-msgstr "Line-in"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofons"
-
-msgid "PC Speaker"
-msgstr "Datora skaļrunis"
-
-msgid "Playback"
-msgstr "Atskaņošana"
-
-msgid "Capture"
-msgstr "Tveršana"
-
msgid "Could not open device for playback in mono mode."
msgstr "Nevarēja atvērt ierīci atskaņošanai mono režīmā."
@@ -521,6 +488,39 @@ msgstr "Nezināms kodētāja elements"
msgid "Plugin or element of unknown type"
msgstr "Nezināma veida spraudnis vai elements"
+#~ msgid "Master"
+#~ msgstr "Galvenais"
+
+#~ msgid "Bass"
+#~ msgstr "Bass"
+
+#~ msgid "Treble"
+#~ msgstr "Diskants"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintēze"
+
+#~ msgid "Line-in"
+#~ msgstr "Line-in"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofons"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Datora skaļrunis"
+
+#~ msgid "Playback"
+#~ msgstr "Atskaņošana"
+
+#~ msgid "Capture"
+#~ msgstr "Tveršana"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Savienojums ar %s:%d noraidīts."
diff --git a/po/nb.gmo b/po/nb.gmo
index 4ef1eb3..f267479 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 29b93f4..51eeb11 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-10-24 21:44+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -16,39 +16,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-msgid "Master"
-msgstr "Hovedvolum"
-
-msgid "Bass"
-msgstr "Bass"
-
-msgid "Treble"
-msgstr "Diskant"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Linje inn"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "PC-høyttaler"
-
-msgid "Playback"
-msgstr "Spill av"
-
-msgid "Capture"
-msgstr "Ta opp"
-
msgid "Could not open device for playback in mono mode."
msgstr "Kunne ikke åpne enheten for avspilling i mono-modus."
@@ -510,6 +477,39 @@ msgstr "Ukjent element for koding"
msgid "Plugin or element of unknown type"
msgstr "Tillegg eller element av ukjent type"
+#~ msgid "Master"
+#~ msgstr "Hovedvolum"
+
+#~ msgid "Bass"
+#~ msgstr "Bass"
+
+#~ msgid "Treble"
+#~ msgstr "Diskant"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Linje inn"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC-høyttaler"
+
+#~ msgid "Playback"
+#~ msgstr "Spill av"
+
+#~ msgid "Capture"
+#~ msgstr "Ta opp"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Kunne ikke åpne VFS-fil «%s» for skriving: %s."
diff --git a/po/nl.gmo b/po/nl.gmo
index 325a34d..6a21696 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 7ae29e3..e26364b 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-27 00:12+0200\n"
"Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -17,39 +17,6 @@ msgstr ""
"X-Generator: Lokalize 1.1\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-msgid "Master"
-msgstr "Master"
-
-msgid "Bass"
-msgstr "Lage tonen"
-
-msgid "Treble"
-msgstr "Hoge tonen"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Lijn-in"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Microfoon"
-
-msgid "PC Speaker"
-msgstr "PC-luidspreker"
-
-msgid "Playback"
-msgstr "Afspelen"
-
-msgid "Capture"
-msgstr "Opnemen"
-
msgid "Could not open device for playback in mono mode."
msgstr "Kan het apparaat niet openen voor afspelen in mono."
@@ -526,6 +493,39 @@ msgstr "Onbekend encoder-element"
msgid "Plugin or element of unknown type"
msgstr "Plugin of element van onbekend type"
+#~ msgid "Master"
+#~ msgstr "Master"
+
+#~ msgid "Bass"
+#~ msgstr "Lage tonen"
+
+#~ msgid "Treble"
+#~ msgstr "Hoge tonen"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Lijn-in"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Microfoon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC-luidspreker"
+
+#~ msgid "Playback"
+#~ msgstr "Afspelen"
+
+#~ msgid "Capture"
+#~ msgstr "Opnemen"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Verbinding naar %s:%d is geweigerd."
diff --git a/po/or.gmo b/po/or.gmo
index e1c384c..a17ceae 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 200eaa7..f37e3a1 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: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+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"
@@ -17,40 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr ""
-
-msgid "Bass"
-msgstr "ଅନୁଚ୍ଚ ସ୍ବର"
-
-msgid "Treble"
-msgstr "ଉଚ୍ଚ ସ୍ବର"
-
-msgid "PCM"
-msgstr "ପି.ସି.ଏମ."
-
-msgid "Synth"
-msgstr "ସିନ୍ଥେସାଇଜର"
-
-msgid "Line-in"
-msgstr "ଲାଇନ-ଇନ"
-
-msgid "CD"
-msgstr "ସି.ଡି."
-
-msgid "Microphone"
-msgstr "ମାଇକ୍ରୋଫୋନ୍"
-
-#, fuzzy
-msgid "PC Speaker"
-msgstr "ସ୍ବରବର୍ଦ୍ଧକ ୟନ୍ତ୍ର"
-
-msgid "Playback"
-msgstr ""
-
-msgid "Capture"
-msgstr ""
-
#, fuzzy
msgid "Could not open device for playback in mono mode."
msgstr "ସି.ଡି. ଯନ୍ତ୍ର ପଢ଼ିବା ପାଇଁ ଖୋଲିହେଲା ନାହିଁ."
@@ -516,6 +482,31 @@ msgstr ""
msgid "Plugin or element of unknown type"
msgstr ""
+#~ msgid "Bass"
+#~ msgstr "ଅନୁଚ୍ଚ ସ୍ବର"
+
+#~ msgid "Treble"
+#~ msgstr "ଉଚ୍ଚ ସ୍ବର"
+
+#~ msgid "PCM"
+#~ msgstr "ପି.ସି.ଏମ."
+
+#~ msgid "Synth"
+#~ msgstr "ସିନ୍ଥେସାଇଜର"
+
+#~ msgid "Line-in"
+#~ msgstr "ଲାଇନ-ଇନ"
+
+#~ msgid "CD"
+#~ msgstr "ସି.ଡି."
+
+#~ msgid "Microphone"
+#~ msgstr "ମାଇକ୍ରୋଫୋନ୍"
+
+#, fuzzy
+#~ msgid "PC Speaker"
+#~ msgstr "ସ୍ବରବର୍ଦ୍ଧକ ୟନ୍ତ୍ର"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "ଭି.ଏଫ.ଏସ. ଫାଇଲ \"%s\" ଲେଖିବା ପାଇଁ ଖୋଲିହେଲା ନାହିଁ: %s."
diff --git a/po/pl.gmo b/po/pl.gmo
index e9d62be..dfdf8d8 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index f5762e6..4cefed6 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-26 18:01+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -15,39 +15,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr "Główny"
-
-msgid "Bass"
-msgstr "Niskie"
-
-msgid "Treble"
-msgstr "Wysokie"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Syntezator"
-
-msgid "Line-in"
-msgstr "Wejście"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "Głośnik PC"
-
-msgid "Playback"
-msgstr "Odtwarzanie"
-
-msgid "Capture"
-msgstr "Nagrywanie"
-
msgid "Could not open device for playback in mono mode."
msgstr ""
"Nie udało się otworzyć urządzenia dźwiękowego do odtwarzania w trybie mono."
@@ -523,6 +490,39 @@ msgstr "Nieznany element kodujący"
msgid "Plugin or element of unknown type"
msgstr "Wtyczka lub element nieznanego typu"
+#~ msgid "Master"
+#~ msgstr "Główny"
+
+#~ msgid "Bass"
+#~ msgstr "Niskie"
+
+#~ msgid "Treble"
+#~ msgstr "Wysokie"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Syntezator"
+
+#~ msgid "Line-in"
+#~ msgstr "Wejście"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Głośnik PC"
+
+#~ msgid "Playback"
+#~ msgstr "Odtwarzanie"
+
+#~ msgid "Capture"
+#~ msgstr "Nagrywanie"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Połączenie z %s:%d odrzucone."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 9a1b6ed..75a8789 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index ccc6ae2..7878cd7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.31.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-01-08 01:02-0300\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -19,39 +19,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-msgid "Master"
-msgstr "Principal"
-
-msgid "Bass"
-msgstr "Grave"
-
-msgid "Treble"
-msgstr "Agudo"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetizador"
-
-msgid "Line-in"
-msgstr "Entrada de linha"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Microfone"
-
-msgid "PC Speaker"
-msgstr "Alto-falante do PC"
-
-msgid "Playback"
-msgstr "Reprodução"
-
-msgid "Capture"
-msgstr "Captura"
-
msgid "Could not open device for playback in mono mode."
msgstr "Não foi possível abrir o dispositivo para reprodução em mono."
@@ -529,6 +496,39 @@ msgstr "Elemento codificador desconhecido"
msgid "Plugin or element of unknown type"
msgstr "Elemento ou plug-in de tipo desconhecido"
+#~ msgid "Master"
+#~ msgstr "Principal"
+
+#~ msgid "Bass"
+#~ msgstr "Grave"
+
+#~ msgid "Treble"
+#~ msgstr "Agudo"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetizador"
+
+#~ msgid "Line-in"
+#~ msgstr "Entrada de linha"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Microfone"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Alto-falante do PC"
+
+#~ msgid "Playback"
+#~ msgstr "Reprodução"
+
+#~ msgid "Capture"
+#~ msgstr "Captura"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "A conexão para %s:%d foi recusada."
diff --git a/po/ro.gmo b/po/ro.gmo
index 274fd83..323c822 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index b7d0c82..3d01574 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-08-16 01:21+0300\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -16,39 +16,6 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);;\n"
-msgid "Master"
-msgstr "Principal"
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Înalte"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Linie intrare"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Microfon"
-
-msgid "PC Speaker"
-msgstr "Difuzor PC"
-
-msgid "Playback"
-msgstr "Redare"
-
-msgid "Capture"
-msgstr "Captură"
-
msgid "Could not open device for playback in mono mode."
msgstr "Nu s-a putut deschide dispozitivul pentru redare în modul mono."
@@ -518,6 +485,39 @@ msgstr "Element codor necunoscut"
msgid "Plugin or element of unknown type"
msgstr "Modul de extensie sau element de tip necunoscut"
+#~ msgid "Master"
+#~ msgstr "Principal"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Înalte"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Linie intrare"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Microfon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Difuzor PC"
+
+#~ msgid "Playback"
+#~ msgstr "Redare"
+
+#~ msgid "Capture"
+#~ msgstr "Captură"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Conexiunea la %s:%d a fost refuzată."
diff --git a/po/ru.gmo b/po/ru.gmo
index 0f6d5a3..a986105 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 1475674..4ecc50c 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-26 20:30+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
@@ -20,39 +20,6 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-msgid "Master"
-msgstr "Общий"
-
-msgid "Bass"
-msgstr "Низкие"
-
-msgid "Treble"
-msgstr "Высокие"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Синтезатор"
-
-msgid "Line-in"
-msgstr "Линейный вход"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Микрофон"
-
-msgid "PC Speaker"
-msgstr "Внутренний динамик"
-
-msgid "Playback"
-msgstr "Воспроизведение"
-
-msgid "Capture"
-msgstr "Съёмка"
-
msgid "Could not open device for playback in mono mode."
msgstr "Не удалось открыть устройство для воспроизведения в режиме моно."
@@ -523,6 +490,39 @@ msgstr "Неизвестный элемент-кодировщик"
msgid "Plugin or element of unknown type"
msgstr "Модуль или элемент неизвестного типа"
+#~ msgid "Master"
+#~ msgstr "Общий"
+
+#~ msgid "Bass"
+#~ msgstr "Низкие"
+
+#~ msgid "Treble"
+#~ msgstr "Высокие"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Синтезатор"
+
+#~ msgid "Line-in"
+#~ msgstr "Линейный вход"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Микрофон"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Внутренний динамик"
+
+#~ msgid "Playback"
+#~ msgstr "Воспроизведение"
+
+#~ msgid "Capture"
+#~ msgstr "Съёмка"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "В соединении с %s:%d отказано."
diff --git a/po/sk.gmo b/po/sk.gmo
index 1a7e7a6..6021de7 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 0e504c2..544fc2d 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-11-08 15:34+0100\n"
"Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -19,39 +19,6 @@ msgstr ""
"X-Poedit-Language: Slovak\n"
"X-Poedit-Country: SLOVAKIA\n"
-msgid "Master"
-msgstr "Hlavný"
-
-msgid "Bass"
-msgstr "Basy"
-
-msgid "Treble"
-msgstr "Výšky"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synth"
-
-msgid "Line-in"
-msgstr "Line-in"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofón"
-
-msgid "PC Speaker"
-msgstr "Reproduktor"
-
-msgid "Playback"
-msgstr "Prehrávanie"
-
-msgid "Capture"
-msgstr "Zachytávanie"
-
msgid "Could not open device for playback in mono mode."
msgstr "Nepodarilo sa otvoriť zariadenie pre prehrávanie v režime mono."
@@ -522,6 +489,39 @@ msgstr "Neznámy prvok enkodéra"
msgid "Plugin or element of unknown type"
msgstr "Neznámy typ zásuvného modulu alebo prvku"
+#~ msgid "Master"
+#~ msgstr "Hlavný"
+
+#~ msgid "Bass"
+#~ msgstr "Basy"
+
+#~ msgid "Treble"
+#~ msgstr "Výšky"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synth"
+
+#~ msgid "Line-in"
+#~ msgstr "Line-in"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofón"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Reproduktor"
+
+#~ msgid "Playback"
+#~ msgstr "Prehrávanie"
+
+#~ msgid "Capture"
+#~ msgstr "Zachytávanie"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Spojenie s %s:%d bolo odmietnuté."
diff --git a/po/sl.gmo b/po/sl.gmo
index 3901436..8aa1e4e 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index b6f8044..6441b4d 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-26 15:56+0100\n"
"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -22,39 +22,6 @@ msgstr ""
"X-Poedit-Country: SLOVENIA\n"
"X-Poedit-SourceCharset: utf-8\n"
-msgid "Master"
-msgstr "Glavni"
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Visoki toni"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetizator"
-
-msgid "Line-in"
-msgstr "Analogni vhod"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "Računalniški zvočnik"
-
-msgid "Playback"
-msgstr "Predvajanje"
-
-msgid "Capture"
-msgstr "Zajemanje"
-
msgid "Could not open device for playback in mono mode."
msgstr "Naprave ni mogoče odpreti za predvajanje v mono načinu."
@@ -520,6 +487,39 @@ msgstr "Neznan predmet kodirnika"
msgid "Plugin or element of unknown type"
msgstr "Vstavek ali predmet neznane vrste"
+#~ msgid "Master"
+#~ msgstr "Glavni"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Visoki toni"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetizator"
+
+#~ msgid "Line-in"
+#~ msgstr "Analogni vhod"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Računalniški zvočnik"
+
+#~ msgid "Playback"
+#~ msgstr "Predvajanje"
+
+#~ msgid "Capture"
+#~ msgstr "Zajemanje"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Povezava s %s:%d zavrnjena."
diff --git a/po/sq.gmo b/po/sq.gmo
index 8912c20..a4694ca 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 83a649d..b4a4d86 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: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+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"
@@ -15,40 +15,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr ""
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Treble"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Sintetizuesi"
-
-msgid "Line-in"
-msgstr "Linja-hyrje"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofoni"
-
-#, fuzzy
-msgid "PC Speaker"
-msgstr "Zë folës"
-
-msgid "Playback"
-msgstr ""
-
-msgid "Capture"
-msgstr ""
-
#, fuzzy
msgid "Could not open device for playback in mono mode."
msgstr "I pamundur hapja e dispozitivit CD për lexim."
@@ -514,6 +480,31 @@ msgstr ""
msgid "Plugin or element of unknown type"
msgstr ""
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Treble"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Sintetizuesi"
+
+#~ msgid "Line-in"
+#~ msgstr "Linja-hyrje"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofoni"
+
+#, fuzzy
+#~ msgid "PC Speaker"
+#~ msgstr "Zë folës"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "E pamundur hapja e file vfs \"%s\" për shkrim: %s."
diff --git a/po/sr.gmo b/po/sr.gmo
index 9c46556..8f8724f 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index bf18cc8..025619f 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-12-05 09:10+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnu@prevod.org>\n"
@@ -20,39 +20,6 @@ msgstr ""
"X-Generator: Virtaal 0.7.0\n"
"X-Project-Style: gnome\n"
-msgid "Master"
-msgstr "Главни"
-
-msgid "Bass"
-msgstr "Бас"
-
-msgid "Treble"
-msgstr "Високотонац"
-
-msgid "PCM"
-msgstr "ПЦМ"
-
-msgid "Synth"
-msgstr "Синтисајзер"
-
-msgid "Line-in"
-msgstr "Ул.лин."
-
-msgid "CD"
-msgstr "ЦД"
-
-msgid "Microphone"
-msgstr "Микрофон"
-
-msgid "PC Speaker"
-msgstr "Звучник"
-
-msgid "Playback"
-msgstr "Пуштање"
-
-msgid "Capture"
-msgstr "Снимање"
-
msgid "Could not open device for playback in mono mode."
msgstr "Не могу да отворим уређај ради пуштања у моно режиму."
@@ -518,6 +485,39 @@ msgstr "Непознати елемент кодера"
msgid "Plugin or element of unknown type"
msgstr "Прикључак или елемент непознате врсте"
+#~ msgid "Master"
+#~ msgstr "Главни"
+
+#~ msgid "Bass"
+#~ msgstr "Бас"
+
+#~ msgid "Treble"
+#~ msgstr "Високотонац"
+
+#~ msgid "PCM"
+#~ msgstr "ПЦМ"
+
+#~ msgid "Synth"
+#~ msgstr "Синтисајзер"
+
+#~ msgid "Line-in"
+#~ msgstr "Ул.лин."
+
+#~ msgid "CD"
+#~ msgstr "ЦД"
+
+#~ msgid "Microphone"
+#~ msgstr "Микрофон"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Звучник"
+
+#~ msgid "Playback"
+#~ msgstr "Пуштање"
+
+#~ msgid "Capture"
+#~ msgstr "Снимање"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Повезивање са %s:%d је одбијено."
diff --git a/po/sv.gmo b/po/sv.gmo
index 3fd1154..a8dd89a 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 33795c7..01a7e29 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-06-07 18:17+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -17,39 +17,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr "Övergripande"
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Diskant"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synt"
-
-msgid "Line-in"
-msgstr "Linje-in"
-
-msgid "CD"
-msgstr "Cd"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "PC-högtalare"
-
-msgid "Playback"
-msgstr "Uppspelning"
-
-msgid "Capture"
-msgstr "Fångst"
-
msgid "Could not open device for playback in mono mode."
msgstr "Kunde inte öppna enheten för uppspelning i monoläge."
@@ -518,6 +485,39 @@ msgstr "Okänt kodarelement"
msgid "Plugin or element of unknown type"
msgstr "Insticksmodul eller element av okänd typ"
+#~ msgid "Master"
+#~ msgstr "Övergripande"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Diskant"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synt"
+
+#~ msgid "Line-in"
+#~ msgstr "Linje-in"
+
+#~ msgid "CD"
+#~ msgstr "Cd"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC-högtalare"
+
+#~ msgid "Playback"
+#~ msgstr "Uppspelning"
+
+#~ msgid "Capture"
+#~ msgstr "Fångst"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Anslutningen till %s:%d nekades."
diff --git a/po/tr.gmo b/po/tr.gmo
index ad74255..e79a10b 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index dea8173..cdc1615 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-26 19:22+0200\n"
"Last-Translator: Server Acim <serveracim@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -14,39 +14,6 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr "Ana"
-
-msgid "Bass"
-msgstr "Bas"
-
-msgid "Treble"
-msgstr "Tiz"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Synthizer"
-
-msgid "Line-in"
-msgstr "Hat-girişi"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Mikrofon"
-
-msgid "PC Speaker"
-msgstr "PC Hoparlörü"
-
-msgid "Playback"
-msgstr "Çalma"
-
-msgid "Capture"
-msgstr "Yakala"
-
msgid "Could not open device for playback in mono mode."
msgstr "Mono kipte çalmak için aygıt açılamıyor."
@@ -512,6 +479,39 @@ msgstr "Bilinmeyen kodlama öğesi"
msgid "Plugin or element of unknown type"
msgstr "Bilinmeyen türde eklenti veya öğe"
+#~ msgid "Master"
+#~ msgstr "Ana"
+
+#~ msgid "Bass"
+#~ msgstr "Bas"
+
+#~ msgid "Treble"
+#~ msgstr "Tiz"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Synthizer"
+
+#~ msgid "Line-in"
+#~ msgstr "Hat-girişi"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Mikrofon"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC Hoparlörü"
+
+#~ msgid "Playback"
+#~ msgstr "Çalma"
+
+#~ msgid "Capture"
+#~ msgstr "Yakala"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "Vfs dosyası \"%s\" yazmak için açılamıyor: %s."
diff --git a/po/uk.gmo b/po/uk.gmo
index 32129b7..7d7da58 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 92e4ac0..374253a 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2011-04-27 17:49+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -19,39 +19,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Lokalize 1.1\n"
-msgid "Master"
-msgstr "Головний"
-
-msgid "Bass"
-msgstr "Низькі"
-
-msgid "Treble"
-msgstr "Високі"
-
-msgid "PCM"
-msgstr "КІМ"
-
-msgid "Synth"
-msgstr "Синтезатор"
-
-msgid "Line-in"
-msgstr "Лінійний вхід"
-
-msgid "CD"
-msgstr "Компакт-диск"
-
-msgid "Microphone"
-msgstr "Мікрофон"
-
-msgid "PC Speaker"
-msgstr "Гучномовець"
-
-msgid "Playback"
-msgstr "Відтворення"
-
-msgid "Capture"
-msgstr "Запис"
-
msgid "Could not open device for playback in mono mode."
msgstr "Не вдалося відкрити пристрій відтворення у режимі моно."
@@ -530,6 +497,39 @@ msgstr "Невідомий елемент кодера"
msgid "Plugin or element of unknown type"
msgstr "Модуль або елемент невідомого типу"
+#~ msgid "Master"
+#~ msgstr "Головний"
+
+#~ msgid "Bass"
+#~ msgstr "Низькі"
+
+#~ msgid "Treble"
+#~ msgstr "Високі"
+
+#~ msgid "PCM"
+#~ msgstr "КІМ"
+
+#~ msgid "Synth"
+#~ msgstr "Синтезатор"
+
+#~ msgid "Line-in"
+#~ msgstr "Лінійний вхід"
+
+#~ msgid "CD"
+#~ msgstr "Компакт-диск"
+
+#~ msgid "Microphone"
+#~ msgstr "Мікрофон"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Гучномовець"
+
+#~ msgid "Playback"
+#~ msgstr "Відтворення"
+
+#~ msgid "Capture"
+#~ msgstr "Запис"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "У з'єднанні з %s:%d відмовлено."
diff --git a/po/vi.gmo b/po/vi.gmo
index a22160c..afc335d 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index be2493d..cbb9601 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2010-04-27 22:51+0930\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -17,39 +17,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: LocFactoryEditor 1.8\n"
-msgid "Master"
-msgstr "Chủ"
-
-msgid "Bass"
-msgstr "Trầm"
-
-msgid "Treble"
-msgstr "Cao"
-
-msgid "PCM"
-msgstr "PCM"
-
-msgid "Synth"
-msgstr "Tổng hợp"
-
-msgid "Line-in"
-msgstr "Dây-vào"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "Máy vi âm"
-
-msgid "PC Speaker"
-msgstr "Loa PC"
-
-msgid "Playback"
-msgstr "Phát lại"
-
-msgid "Capture"
-msgstr "Bắt"
-
msgid "Could not open device for playback in mono mode."
msgstr "Không thể mở thiết bị để phát lại trong chế độ đơn nguồn."
@@ -519,6 +486,39 @@ msgstr "Không rõ phần tử mã hoá"
msgid "Plugin or element of unknown type"
msgstr "Không rõ kiểu phần bổ sung hay phần tử"
+#~ msgid "Master"
+#~ msgstr "Chủ"
+
+#~ msgid "Bass"
+#~ msgstr "Trầm"
+
+#~ msgid "Treble"
+#~ msgstr "Cao"
+
+#~ msgid "PCM"
+#~ msgstr "PCM"
+
+#~ msgid "Synth"
+#~ msgstr "Tổng hợp"
+
+#~ msgid "Line-in"
+#~ msgstr "Dây-vào"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "Máy vi âm"
+
+#~ msgid "PC Speaker"
+#~ msgstr "Loa PC"
+
+#~ msgid "Playback"
+#~ msgstr "Phát lại"
+
+#~ msgid "Capture"
+#~ msgstr "Bắt"
+
#~ msgid "Connection to %s:%d refused."
#~ msgstr "Kết nối tới « %s:%d » bị từ chối."
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 55858b6..efb1b34 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index edf1c47..5a15b2c 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.21.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-04-12 10:10+0200\n"
+"POT-Creation-Date: 2012-05-13 16:19+0200\n"
"PO-Revision-Date: 2009-01-14 12:41+0800\n"
"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -15,39 +15,6 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "Master"
-msgstr "主音量"
-
-msgid "Bass"
-msgstr "低音(Bass)"
-
-msgid "Treble"
-msgstr "高音(Treble)"
-
-msgid "PCM"
-msgstr "波形"
-
-msgid "Synth"
-msgstr "合成器"
-
-msgid "Line-in"
-msgstr "线路输入"
-
-msgid "CD"
-msgstr "CD"
-
-msgid "Microphone"
-msgstr "话筒"
-
-msgid "PC Speaker"
-msgstr "PC 扬声器"
-
-msgid "Playback"
-msgstr "回放"
-
-msgid "Capture"
-msgstr "录音"
-
msgid "Could not open device for playback in mono mode."
msgstr "无法在单声道模式打开设备播放。"
@@ -515,6 +482,39 @@ msgstr "未知的编码组件"
msgid "Plugin or element of unknown type"
msgstr "未知类型的插件或组件"
+#~ msgid "Master"
+#~ msgstr "主音量"
+
+#~ msgid "Bass"
+#~ msgstr "低音(Bass)"
+
+#~ msgid "Treble"
+#~ msgstr "高音(Treble)"
+
+#~ msgid "PCM"
+#~ msgstr "波形"
+
+#~ msgid "Synth"
+#~ msgstr "合成器"
+
+#~ msgid "Line-in"
+#~ msgstr "线路输入"
+
+#~ msgid "CD"
+#~ msgstr "CD"
+
+#~ msgid "Microphone"
+#~ msgstr "话筒"
+
+#~ msgid "PC Speaker"
+#~ msgstr "PC 扬声器"
+
+#~ msgid "Playback"
+#~ msgstr "回放"
+
+#~ msgid "Capture"
+#~ msgstr "录音"
+
#~ msgid "Could not open vfs file \"%s\" for writing: %s."
#~ msgstr "无法打开 vfs 文件“%s”写入:%s。"
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 63c1e0f..2c44935 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/sys/ximage/Makefile.am b/sys/ximage/Makefile.am
index cf8938f..d7f2390 100644
--- a/sys/ximage/Makefile.am
+++ b/sys/ximage/Makefile.am
@@ -3,7 +3,6 @@ plugin_LTLIBRARIES = libgstximagesink.la
libgstximagesink_la_SOURCES = ximagesink.c ximage.c ximagepool.c
libgstximagesink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS)
libgstximagesink_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(X_LIBS) $(XSHM_LIBS)
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index 9249a1f..eb963aa 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -458,7 +458,6 @@ plugin_LTLIBRARIES = libgstximagesink.la
libgstximagesink_la_SOURCES = ximagesink.c ximage.c ximagepool.c
libgstximagesink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS)
libgstximagesink_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(X_LIBS) $(XSHM_LIBS)
@@ -511,7 +510,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c
index f46e2e7..e0f41d4 100644
--- a/sys/ximage/ximagepool.c
+++ b/sys/ximage/ximagepool.c
@@ -580,8 +580,8 @@ ximage_buffer_pool_alloc (GstBufferPool * pool, GstBuffer ** buffer,
GST_DEBUG_OBJECT (pool, "adding GstVideoMeta");
/* these are just the defaults for now */
- meta = gst_buffer_add_video_meta (ximage, 0, GST_VIDEO_INFO_FORMAT (info),
- priv->padded_width, priv->padded_height);
+ meta = gst_buffer_add_video_meta (ximage, GST_VIDEO_FRAME_FLAG_NONE,
+ GST_VIDEO_INFO_FORMAT (info), priv->padded_width, priv->padded_height);
if (priv->need_alignment) {
gint vpad, hpad, pstride;
diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c
index 92837ea..21156a2 100644
--- a/sys/ximage/ximagesink.c
+++ b/sys/ximage/ximagesink.c
@@ -104,7 +104,7 @@
#endif
/* Our interfaces */
-#include <gst/interfaces/navigation.h>
+#include <gst/video/navigation.h>
#include <gst/video/videooverlay.h>
#include <gst/video/gstvideometa.h>
diff --git a/sys/xvimage/Makefile.am b/sys/xvimage/Makefile.am
index db923f4..170b7b8 100644
--- a/sys/xvimage/Makefile.am
+++ b/sys/xvimage/Makefile.am
@@ -3,7 +3,6 @@ plugin_LTLIBRARIES = libgstxvimagesink.la
libgstxvimagesink_la_SOURCES = xvimagesink.c xvimage.c xvimagepool.c
libgstxvimagesink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS)
libgstxvimagesink_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
diff --git a/sys/xvimage/Makefile.in b/sys/xvimage/Makefile.in
index d73680d..742084f 100644
--- a/sys/xvimage/Makefile.in
+++ b/sys/xvimage/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -458,7 +458,6 @@ plugin_LTLIBRARIES = libgstxvimagesink.la
libgstxvimagesink_la_SOURCES = xvimagesink.c xvimage.c xvimagepool.c
libgstxvimagesink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS)
libgstxvimagesink_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
@@ -512,7 +511,7 @@ install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
- $(MKDIR_P) '$(DESTDIR)$(plugindir)' || exit 1; \
+ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
}
diff --git a/sys/xvimage/xvimagepool.c b/sys/xvimage/xvimagepool.c
index f23818e..5be8d6b 100644
--- a/sys/xvimage/xvimagepool.c
+++ b/sys/xvimage/xvimagepool.c
@@ -631,8 +631,8 @@ xvimage_buffer_pool_alloc (GstBufferPool * pool, GstBuffer ** buffer,
GST_DEBUG_OBJECT (pool, "adding GstVideoMeta");
/* these are just the defaults for now */
- meta = gst_buffer_add_video_meta (xvimage, 0, GST_VIDEO_INFO_FORMAT (info),
- priv->padded_width, priv->padded_height);
+ meta = gst_buffer_add_video_meta (xvimage, GST_VIDEO_FRAME_FLAG_NONE,
+ GST_VIDEO_INFO_FORMAT (info), priv->padded_width, priv->padded_height);
if (priv->need_alignment) {
meta->width = GST_VIDEO_INFO_WIDTH (&priv->info);
diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c
index a0a933d..a8fd9ea 100644
--- a/sys/xvimage/xvimagesink.c
+++ b/sys/xvimage/xvimagesink.c
@@ -118,7 +118,7 @@
#endif
/* Our interfaces */
-#include <gst/interfaces/navigation.h>
+#include <gst/video/navigation.h>
#include <gst/video/videooverlay.h>
#include <gst/video/colorbalance.h>
/* Helper functions */
diff --git a/tests/Makefile.in b/tests/Makefile.in
index b1e71db..d8480ed 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index db023fa..43024e9 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -25,16 +25,10 @@ $(CHECK_REGISTRY):
$(TESTS_ENVIRONMENT)
# elements to ignore for the state tests
-STATE_IGNORE_ELEMENTS = cdio cdparanoiasrc libvisual_ alsasrc alsamixer alsasink
+STATE_IGNORE_ELEMENTS = cdio cdparanoiasrc libvisual_ alsasrc alsasink
TESTS = $(check_PROGRAMS)
-if USE_ALSA
-check_alsa = elements/alsa
-else
-check_alsa =
-endif
-
if USE_LIBVISUAL
check_libvisual = elements/libvisual
else
@@ -95,7 +89,6 @@ cxx_checks =
endif
check_PROGRAMS = \
- $(check_alsa) \
$(check_ogg) \
$(check_vorbis) \
elements/audioconvert \
@@ -110,7 +103,6 @@ check_PROGRAMS = \
libs/audiocdsrc \
libs/discoverer \
libs/fft \
- libs/mixer \
libs/navigation \
libs/pbutils \
libs/profile \
@@ -186,7 +178,6 @@ libs_libsabi_LDADD = \
$(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_API_VERSION@.la \
@@ -202,7 +193,6 @@ libs_audio_CFLAGS = \
libs_audio_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -235,23 +225,13 @@ libs_fft_LDADD = \
$(GST_BASE_LIBS) \
$(LDADD)
-libs_mixer_CFLAGS = \
- $(GST_PLUGINS_BASE_CFLAGS) \
- $(GST_BASE_CFLAGS) \
- $(AM_CFLAGS)
-
-libs_mixer_LDADD = \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(GST_BASE_LIBS) \
- $(LDADD)
-
libs_navigation_CFLAGS = \
$(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) \
$(AM_CFLAGS)
libs_navigation_LDADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
+ $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -320,15 +300,6 @@ elements_appsrc_LDADD = \
$(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
$(LDADD)
-elements_alsa_CFLAGS = \
- $(GST_PLUGINS_BASE_CFLAGS) \
- $(AM_CFLAGS)
-
-elements_alsa_LDADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(LDADD)
-
elements_audioconvert_CFLAGS = \
$(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) \
@@ -336,13 +307,11 @@ elements_audioconvert_CFLAGS = \
elements_audioconvert_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
elements_audiorate_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
elements_audiorate_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
@@ -376,7 +345,6 @@ elements_audioresample_CFLAGS = \
elements_audioresample_LDADD = \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -468,7 +436,6 @@ pipelines_simple_launch_lines_CFLAGS = \
pipelines_simple_launch_lines_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 13e5226..ce9f103 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -54,17 +54,17 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/common/check.mak
-check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
+check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) \
elements/audioconvert$(EXEEXT) elements/audiotestsrc$(EXEEXT) \
- elements/decodebin$(EXEEXT) $(am__EXEEXT_4) \
+ elements/decodebin$(EXEEXT) $(am__EXEEXT_3) \
generic/clock-selection$(EXEEXT) generic/states$(EXEEXT) \
gst/typefindfunctions$(EXEEXT) libs/libsabi$(EXEEXT) \
libs/audio$(EXEEXT) libs/audiocdsrc$(EXEEXT) \
- libs/discoverer$(EXEEXT) libs/fft$(EXEEXT) libs/mixer$(EXEEXT) \
+ libs/discoverer$(EXEEXT) libs/fft$(EXEEXT) \
libs/navigation$(EXEEXT) libs/pbutils$(EXEEXT) \
libs/profile$(EXEEXT) libs/rtp$(EXEEXT) libs/rtsp$(EXEEXT) \
libs/tag$(EXEEXT) libs/video$(EXEEXT) libs/xmpwriter$(EXEEXT) \
- $(am__EXEEXT_5) $(am__EXEEXT_6) \
+ $(am__EXEEXT_4) $(am__EXEEXT_5) \
pipelines/simple-launch-lines$(EXEEXT) \
pipelines/streamheader$(EXEEXT) pipelines/basetime$(EXEEXT) \
pipelines/capsfilter-renegotiation$(EXEEXT) \
@@ -73,12 +73,12 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
elements/audioresample$(EXEEXT) elements/gdpdepay$(EXEEXT) \
elements/gdppay$(EXEEXT) elements/multifdsink$(EXEEXT) \
elements/multisocketsink$(EXEEXT) elements/playbin$(EXEEXT) \
- elements/playbin-compressed$(EXEEXT) $(am__EXEEXT_7) \
- $(am__EXEEXT_8) elements/videorate$(EXEEXT) \
+ elements/playbin-compressed$(EXEEXT) $(am__EXEEXT_6) \
+ $(am__EXEEXT_7) elements/videorate$(EXEEXT) \
elements/videoscale$(EXEEXT) elements/videotestsrc$(EXEEXT) \
elements/volume$(EXEEXT) elements/adder$(EXEEXT) \
- $(am__EXEEXT_9)
-noinst_PROGRAMS = $(am__EXEEXT_10)
+ $(am__EXEEXT_8)
+noinst_PROGRAMS = $(am__EXEEXT_9)
subdir = tests/check
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -124,23 +124,22 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
-@USE_ALSA_TRUE@am__EXEEXT_1 = elements/alsa$(EXEEXT)
-@USE_OGG_TRUE@am__EXEEXT_2 = pipelines/oggmux$(EXEEXT)
-@USE_VORBIS_TRUE@am__EXEEXT_3 = elements/vorbisdec$(EXEEXT) \
+@USE_OGG_TRUE@am__EXEEXT_1 = pipelines/oggmux$(EXEEXT)
+@USE_VORBIS_TRUE@am__EXEEXT_2 = elements/vorbisdec$(EXEEXT) \
@USE_VORBIS_TRUE@ pipelines/vorbisenc$(EXEEXT) \
@USE_VORBIS_TRUE@ pipelines/vorbisdec$(EXEEXT) \
@USE_VORBIS_TRUE@ elements/vorbistag$(EXEEXT)
-@USE_THEORA_TRUE@@USE_VORBIS_TRUE@am__EXEEXT_4 = \
+@USE_THEORA_TRUE@@USE_VORBIS_TRUE@am__EXEEXT_3 = \
@USE_THEORA_TRUE@@USE_VORBIS_TRUE@ elements/encodebin$(EXEEXT)
-@HAVE_CXX_TRUE@am__EXEEXT_5 = libs/gstlibscpp$(EXEEXT)
-@HAVE_ORC_TRUE@am__EXEEXT_6 = orc/adder$(EXEEXT) \
+@HAVE_CXX_TRUE@am__EXEEXT_4 = libs/gstlibscpp$(EXEEXT)
+@HAVE_ORC_TRUE@am__EXEEXT_5 = orc/adder$(EXEEXT) \
@HAVE_ORC_TRUE@ orc/audioconvert$(EXEEXT) orc/volume$(EXEEXT) \
@HAVE_ORC_TRUE@ orc/videoscale$(EXEEXT) \
@HAVE_ORC_TRUE@ orc/videotestsrc$(EXEEXT)
-@USE_PANGO_TRUE@am__EXEEXT_7 = elements/textoverlay$(EXEEXT)
-@USE_PLUGIN_SUBPARSE_TRUE@am__EXEEXT_8 = elements/subparse$(EXEEXT)
-@USE_THEORA_TRUE@am__EXEEXT_9 = pipelines/theoraenc$(EXEEXT)
-@USE_LIBVISUAL_TRUE@am__EXEEXT_10 = elements/libvisual$(EXEEXT)
+@USE_PANGO_TRUE@am__EXEEXT_6 = elements/textoverlay$(EXEEXT)
+@USE_PLUGIN_SUBPARSE_TRUE@am__EXEEXT_7 = elements/subparse$(EXEEXT)
+@USE_THEORA_TRUE@am__EXEEXT_8 = pipelines/theoraenc$(EXEEXT)
+@USE_LIBVISUAL_TRUE@am__EXEEXT_9 = elements/libvisual$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
elements_adder_SOURCES = elements/adder.c
elements_adder_OBJECTS = adder.$(OBJEXT)
@@ -152,17 +151,9 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__dirstamp = $(am__leading_dot)dirstamp
-elements_alsa_SOURCES = elements/alsa.c
-elements_alsa_OBJECTS = elements_alsa-alsa.$(OBJEXT)
-am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-elements_alsa_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(am__DEPENDENCIES_2)
-elements_alsa_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(elements_alsa_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
elements_appsink_SOURCES = elements/appsink.c
elements_appsink_OBJECTS = elements_appsink-appsink.$(OBJEXT)
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
elements_appsink_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_2)
elements_appsink_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -181,7 +172,6 @@ elements_audioconvert_SOURCES = elements/audioconvert.c
elements_audioconvert_OBJECTS = \
elements_audioconvert-audioconvert.$(OBJEXT)
elements_audioconvert_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
elements_audioconvert_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -190,7 +180,6 @@ elements_audioconvert_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
elements_audiorate_SOURCES = elements/audiorate.c
elements_audiorate_OBJECTS = elements_audiorate-audiorate.$(OBJEXT)
elements_audiorate_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
elements_audiorate_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -201,7 +190,6 @@ elements_audioresample_OBJECTS = \
elements_audioresample-audioresample.$(OBJEXT)
elements_audioresample_DEPENDENCIES = $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
elements_audioresample_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -354,7 +342,6 @@ gst_typefindfunctions_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
libs_audio_SOURCES = libs/audio.c
libs_audio_OBJECTS = libs_audio-audio.$(OBJEXT)
libs_audio_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
libs_audio_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_audio_CFLAGS) \
@@ -393,7 +380,6 @@ libs_libsabi_OBJECTS = libs_libsabi-libsabi.$(OBJEXT)
libs_libsabi_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_API_VERSION@.la \
@@ -403,16 +389,9 @@ libs_libsabi_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_
libs_libsabi_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_libsabi_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-libs_mixer_SOURCES = libs/mixer.c
-libs_mixer_OBJECTS = libs_mixer-mixer.$(OBJEXT)
-libs_mixer_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
-libs_mixer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libs_mixer_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
libs_navigation_SOURCES = libs/navigation.c
libs_navigation_OBJECTS = libs_navigation-navigation.$(OBJEXT)
-libs_navigation_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
+libs_navigation_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
libs_navigation_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -536,7 +515,6 @@ pipelines_simple_launch_lines_SOURCES = \
pipelines_simple_launch_lines_OBJECTS = \
pipelines_simple_launch_lines-simple-launch-lines.$(OBJEXT)
pipelines_simple_launch_lines_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
pipelines_simple_launch_lines_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
@@ -619,8 +597,8 @@ am__v_CXXLD_0 = @echo " CXXLD " $@;
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
- elements/appsrc.c elements/audioconvert.c elements/audiorate.c \
+SOURCES = elements/adder.c elements/appsink.c elements/appsrc.c \
+ elements/audioconvert.c elements/audiorate.c \
elements/audioresample.c elements/audiotestsrc.c \
elements/decodebin.c elements/encodebin.c elements/gdpdepay.c \
elements/gdppay.c elements/libvisual.c elements/multifdsink.c \
@@ -632,8 +610,8 @@ SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
generic/clock-selection.c generic/states.c \
gst/typefindfunctions.c libs/audio.c libs/audiocdsrc.c \
libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
- libs/libsabi.c libs/mixer.c libs/navigation.c libs/pbutils.c \
- libs/profile.c libs/rtp.c libs/rtsp.c libs/tag.c libs/video.c \
+ libs/libsabi.c libs/navigation.c libs/pbutils.c libs/profile.c \
+ libs/rtp.c libs/rtsp.c libs/tag.c libs/video.c \
libs/xmpwriter.c $(nodist_orc_adder_SOURCES) \
$(nodist_orc_audioconvert_SOURCES) \
$(nodist_orc_videoscale_SOURCES) \
@@ -643,8 +621,8 @@ SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
pipelines/oggmux.c pipelines/simple-launch-lines.c \
pipelines/streamheader.c pipelines/theoraenc.c \
pipelines/vorbisdec.c pipelines/vorbisenc.c
-DIST_SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
- elements/appsrc.c elements/audioconvert.c elements/audiorate.c \
+DIST_SOURCES = elements/adder.c elements/appsink.c elements/appsrc.c \
+ elements/audioconvert.c elements/audiorate.c \
elements/audioresample.c elements/audiotestsrc.c \
elements/decodebin.c elements/encodebin.c elements/gdpdepay.c \
elements/gdppay.c elements/libvisual.c elements/multifdsink.c \
@@ -656,8 +634,8 @@ DIST_SOURCES = elements/adder.c elements/alsa.c elements/appsink.c \
generic/clock-selection.c generic/states.c \
gst/typefindfunctions.c libs/audio.c libs/audiocdsrc.c \
libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
- libs/libsabi.c libs/mixer.c libs/navigation.c libs/pbutils.c \
- libs/profile.c libs/rtp.c libs/rtsp.c libs/tag.c libs/video.c \
+ libs/libsabi.c libs/navigation.c libs/pbutils.c libs/profile.c \
+ libs/rtp.c libs/rtsp.c libs/tag.c libs/video.c \
libs/xmpwriter.c pipelines/basetime.c \
pipelines/capsfilter-renegotiation.c pipelines/gio.c \
pipelines/oggmux.c pipelines/simple-launch-lines.c \
@@ -974,10 +952,8 @@ TESTS_ENVIRONMENT = \
CLEANFILES = core.* test-registry.*
# elements to ignore for the state tests
-STATE_IGNORE_ELEMENTS = cdio cdparanoiasrc libvisual_ alsasrc alsamixer alsasink
+STATE_IGNORE_ELEMENTS = cdio cdparanoiasrc libvisual_ alsasrc alsasink
TESTS = $(check_PROGRAMS)
-@USE_ALSA_FALSE@check_alsa =
-@USE_ALSA_TRUE@check_alsa = elements/alsa
@USE_LIBVISUAL_FALSE@check_libvisual =
@USE_LIBVISUAL_TRUE@check_libvisual = elements/libvisual
@USE_OGG_FALSE@check_ogg =
@@ -1038,7 +1014,6 @@ libs_libsabi_LDADD = \
$(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_API_VERSION@.la \
@@ -1054,7 +1029,6 @@ libs_audio_CFLAGS = \
libs_audio_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -1088,23 +1062,13 @@ libs_fft_LDADD = \
$(GST_BASE_LIBS) \
$(LDADD)
-libs_mixer_CFLAGS = \
- $(GST_PLUGINS_BASE_CFLAGS) \
- $(GST_BASE_CFLAGS) \
- $(AM_CFLAGS)
-
-libs_mixer_LDADD = \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(GST_BASE_LIBS) \
- $(LDADD)
-
libs_navigation_CFLAGS = \
$(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) \
$(AM_CFLAGS)
libs_navigation_LDADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
+ $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -1176,15 +1140,6 @@ elements_appsrc_LDADD = \
$(top_builddir)/gst-libs/gst/app/libgstapp-@GST_API_VERSION@.la \
$(LDADD)
-elements_alsa_CFLAGS = \
- $(GST_PLUGINS_BASE_CFLAGS) \
- $(AM_CFLAGS)
-
-elements_alsa_LDADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(LDADD)
-
elements_audioconvert_CFLAGS = \
$(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) \
@@ -1192,13 +1147,11 @@ elements_audioconvert_CFLAGS = \
elements_audioconvert_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
elements_audiorate_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -1225,7 +1178,6 @@ elements_audioresample_CFLAGS = \
elements_audioresample_LDADD = \
$(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -1311,7 +1263,6 @@ pipelines_simple_launch_lines_CFLAGS = \
pipelines_simple_launch_lines_LDADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_BASE_LIBS) \
$(LDADD)
@@ -1390,9 +1341,6 @@ elements/$(am__dirstamp):
elements/adder$(EXEEXT): $(elements_adder_OBJECTS) $(elements_adder_DEPENDENCIES) $(EXTRA_elements_adder_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/adder$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_adder_OBJECTS) $(elements_adder_LDADD) $(LIBS)
-elements/alsa$(EXEEXT): $(elements_alsa_OBJECTS) $(elements_alsa_DEPENDENCIES) $(EXTRA_elements_alsa_DEPENDENCIES) elements/$(am__dirstamp)
- @rm -f elements/alsa$(EXEEXT)
- $(AM_V_CCLD)$(elements_alsa_LINK) $(elements_alsa_OBJECTS) $(elements_alsa_LDADD) $(LIBS)
elements/appsink$(EXEEXT): $(elements_appsink_OBJECTS) $(elements_appsink_DEPENDENCIES) $(EXTRA_elements_appsink_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/appsink$(EXEEXT)
$(AM_V_CCLD)$(elements_appsink_LINK) $(elements_appsink_OBJECTS) $(elements_appsink_LDADD) $(LIBS)
@@ -1498,9 +1446,6 @@ libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENC
libs/libsabi$(EXEEXT): $(libs_libsabi_OBJECTS) $(libs_libsabi_DEPENDENCIES) $(EXTRA_libs_libsabi_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/libsabi$(EXEEXT)
$(AM_V_CCLD)$(libs_libsabi_LINK) $(libs_libsabi_OBJECTS) $(libs_libsabi_LDADD) $(LIBS)
-libs/mixer$(EXEEXT): $(libs_mixer_OBJECTS) $(libs_mixer_DEPENDENCIES) $(EXTRA_libs_mixer_DEPENDENCIES) libs/$(am__dirstamp)
- @rm -f libs/mixer$(EXEEXT)
- $(AM_V_CCLD)$(libs_mixer_LINK) $(libs_mixer_OBJECTS) $(libs_mixer_LDADD) $(LIBS)
libs/navigation$(EXEEXT): $(libs_navigation_OBJECTS) $(libs_navigation_DEPENDENCIES) $(EXTRA_libs_navigation_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/navigation$(EXEEXT)
$(AM_V_CCLD)$(libs_navigation_LINK) $(libs_navigation_OBJECTS) $(libs_navigation_LDADD) $(LIBS)
@@ -1585,7 +1530,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basetime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capsfilter-renegotiation.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clock-selection.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_alsa-alsa.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_appsink-appsink.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_appsrc-appsrc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_audioconvert-audioconvert.Po@am__quote@
@@ -1612,7 +1556,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_discoverer-discoverer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_fft-fft.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_libsabi-libsabi.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_mixer-mixer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_navigation-navigation.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_pbutils-pbutils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libs_profile-profile.Po@am__quote@
@@ -1673,20 +1616,6 @@ adder.obj: elements/adder.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) $(AM_CFLAGS) $(CFLAGS) -c -o adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
-elements_alsa-alsa.o: elements/alsa.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -MT elements_alsa-alsa.o -MD -MP -MF $(DEPDIR)/elements_alsa-alsa.Tpo -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alsa-alsa.Tpo $(DEPDIR)/elements_alsa-alsa.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/alsa.c' object='elements_alsa-alsa.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_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
-
-elements_alsa-alsa.obj: elements/alsa.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -MT elements_alsa-alsa.obj -MD -MP -MF $(DEPDIR)/elements_alsa-alsa.Tpo -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alsa-alsa.Tpo $(DEPDIR)/elements_alsa-alsa.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/alsa.c' object='elements_alsa-alsa.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_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
-
elements_appsink-appsink.o: elements/appsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements_appsink-appsink.o -MD -MP -MF $(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsink-appsink.Tpo $(DEPDIR)/elements_appsink-appsink.Po
@@ -2121,20 +2050,6 @@ libs_libsabi-libsabi.obj: libs/libsabi.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) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
-libs_mixer-mixer.o: libs/mixer.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -MT libs_mixer-mixer.o -MD -MP -MF $(DEPDIR)/libs_mixer-mixer.Tpo -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mixer-mixer.Tpo $(DEPDIR)/libs_mixer-mixer.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/mixer.c' object='libs_mixer-mixer.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
-
-libs_mixer-mixer.obj: libs/mixer.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -MT libs_mixer-mixer.obj -MD -MP -MF $(DEPDIR)/libs_mixer-mixer.Tpo -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mixer-mixer.Tpo $(DEPDIR)/libs_mixer-mixer.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/mixer.c' object='libs_mixer-mixer.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
-
libs_navigation-navigation.o: libs/navigation.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs_navigation-navigation.o -MD -MP -MF $(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_navigation-navigation.Tpo $(DEPDIR)/libs_navigation-navigation.Po
diff --git a/tests/check/elements/alsa.c b/tests/check/elements/alsa.c
deleted file mode 100644
index d42b40b..0000000
--- a/tests/check/elements/alsa.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* GStreamer
- *
- * unit test for alsa elements
- *
- * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
-#include <unistd.h>
-
-#include <gst/check/gstcheck.h>
-#include <gst/audio/mixer.h>
-
-#if 0
-/* just a simple test that runs device probing on
- * an alsasrc, alsasink and alsamixer instance */
-
-GST_START_TEST (test_device_property_probe)
-{
- const gchar *elements[] = { "alsasink", "alsasrc", "alsamixer" };
- gint n;
-
- for (n = 0; n < G_N_ELEMENTS (elements); ++n) {
- GstPropertyProbe *probe;
- GValueArray *arr;
- GstElement *element;
- gint i;
-
- element = gst_element_factory_make (elements[n], elements[n]);
- fail_unless (element != NULL);
-
- probe = GST_PROPERTY_PROBE (element);
- fail_unless (probe != NULL);
-
- arr = gst_property_probe_probe_and_get_values_name (probe, "device");
- if (arr) {
- for (i = 0; i < arr->n_values; ++i) {
- const gchar *device;
- GValue *val;
-
- val = g_value_array_get_nth (arr, i);
- fail_unless (val != NULL);
- fail_unless (G_VALUE_HOLDS_STRING (val));
-
- device = g_value_get_string (val);
- fail_unless (device != NULL);
- GST_LOG_OBJECT (element, "device[%d] = %s", i, device);
- }
- g_value_array_free (arr);
- } else {
- GST_LOG_OBJECT (element, "no devices found");
- }
-
- gst_object_unref (element);
- }
-}
-
-GST_END_TEST;
-#endif
-
-GST_START_TEST (test_alsa_mixer_track)
-{
- GstStateChangeReturn state_ret;
- GstElement *mixer;
- GList *tracks, *l;
-
- mixer = gst_element_factory_make ("alsamixer", "alsamixer");
- fail_unless (mixer != NULL, "Failed to create 'alsamixer' element!");
-
- state_ret = gst_element_set_state (mixer, GST_STATE_READY);
- if (state_ret != GST_STATE_CHANGE_SUCCESS) {
- gst_object_unref (mixer);
- return;
- }
-
- GST_LOG ("opened alsamixer");
- fail_unless (GST_IS_MIXER (mixer), "is not a GstMixer?!");
-
- tracks = (GList *) gst_mixer_list_tracks (GST_MIXER (mixer));
- for (l = tracks; l != NULL; l = l->next) {
- GstMixerTrack *track;
- gchar *ulabel = NULL, *label = NULL;
-
- track = GST_MIXER_TRACK (l->data);
- g_object_get (track, "label", &label, "untranslated-label", &ulabel, NULL);
- fail_unless (label == NULL || g_utf8_validate (label, -1, NULL));
- if (ulabel != NULL) {
- gchar *p;
-
- for (p = ulabel; p != NULL && *p != '\0'; ++p) {
- fail_unless (g_ascii_isprint (*p),
- "untranslated label '%s' not printable ASCII", ulabel);
- }
- }
- GST_DEBUG ("%s: %s", GST_STR_NULL (ulabel), GST_STR_NULL (label));
- g_free (label);
- g_free (ulabel);
- }
-
- fail_unless_equals_int (gst_element_set_state (mixer, GST_STATE_NULL),
- GST_STATE_CHANGE_SUCCESS);
-
- gst_object_unref (mixer);
-}
-
-GST_END_TEST;
-
-static Suite *
-alsa_suite (void)
-{
- Suite *s = suite_create ("alsa");
- TCase *tc_chain = tcase_create ("general");
-
- suite_add_tcase (s, tc_chain);
- /* tcase_add_test (tc_chain, test_device_property_probe); */
- tcase_add_test (tc_chain, test_alsa_mixer_track);
-
- return s;
-}
-
-GST_CHECK_MAIN (alsa)
diff --git a/tests/check/elements/videorate.c b/tests/check/elements/videorate.c
index 421cad5..96fdcd2 100644
--- a/tests/check/elements/videorate.c
+++ b/tests/check/elements/videorate.c
@@ -58,8 +58,7 @@ static GstPad *mysrcpad, *mysinkpad;
"width = (int) 240, " \
"height = (int) 120, " \
"framerate = (fraction) 999/7 , " \
- "format = (string) I420, " \
- "color-matrix=(string)sdtv"
+ "format = (string) I420"
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
diff --git a/tests/check/elements/volume.c b/tests/check/elements/volume.c
index 870f16b..ff9184c 100644
--- a/tests/check/elements/volume.c
+++ b/tests/check/elements/volume.c
@@ -1694,7 +1694,7 @@ GST_START_TEST (test_passthrough)
GstElement *volume;
GstBuffer *inbuffer, *outbuffer;
GstCaps *caps;
- gint16 in[2] = { 16384, -256 };
+ gint16 *out, in[2] = { 16384, -256 };
GstMapInfo map;
volume = setup_volume ();
@@ -1718,8 +1718,8 @@ GST_START_TEST (test_passthrough)
fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
fail_unless (inbuffer == outbuffer);
gst_buffer_map (outbuffer, &map, GST_MAP_READ);
- GST_INFO ("expected %+5d %+5d real %+5d %+5d", in[0], in[1], map.data[0],
- map.data[1]);
+ out = (gint16 *) map.data;
+ GST_INFO ("expected %+5d %+5d real %+5d %+5d", in[0], in[1], out[0], out[1]);
fail_unless (memcmp (map.data, in, 4) == 0);
gst_buffer_unmap (outbuffer, &map);
@@ -1733,6 +1733,7 @@ GST_START_TEST (test_controller_usability)
{
GstControlSource *cs;
GstTimedValueControlSource *tvcs;
+ GstControlBinding *cb;
GstElement *volume;
volume = setup_volume ();
@@ -1740,8 +1741,8 @@ GST_START_TEST (test_controller_usability)
/* this shouldn't crash, whether this mode is implemented or not */
cs = gst_interpolation_control_source_new ();
g_object_set (cs, "mode", GST_INTERPOLATION_MODE_CUBIC, NULL);
- gst_object_add_control_binding (GST_OBJECT_CAST (volume),
- gst_direct_control_binding_new (GST_OBJECT_CAST (volume), "volume", cs));
+ cb = gst_direct_control_binding_new (GST_OBJECT_CAST (volume), "volume", cs);
+ gst_object_add_control_binding (GST_OBJECT_CAST (volume), cb);
tvcs = (GstTimedValueControlSource *) cs;
gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0);
@@ -1749,6 +1750,7 @@ GST_START_TEST (test_controller_usability)
gst_timed_value_control_source_set (tvcs, 10 * GST_SECOND, 0.0);
gst_object_unref (cs);
+ gst_object_remove_control_binding (GST_OBJECT_CAST (volume), cb);
cleanup_volume (volume);
}
@@ -1758,10 +1760,11 @@ GST_END_TEST;
GST_START_TEST (test_controller_processing)
{
GstControlSource *cs;
+ GstTimedValueControlSource *tvcs;
GstElement *volume;
GstBuffer *inbuffer, *outbuffer;
GstCaps *caps;
- gint16 in[2] = { 16384, -256 };
+ gint16 *out, in[2] = { 16384, -256 };
GstMapInfo map;
GstSegment seg;
@@ -1772,6 +1775,10 @@ GST_START_TEST (test_controller_processing)
gst_object_add_control_binding (GST_OBJECT_CAST (volume),
gst_direct_control_binding_new (GST_OBJECT_CAST (volume), "volume", cs));
+ /* the value range for volume is 0.0 ... 10.0 */
+ tvcs = (GstTimedValueControlSource *) cs;
+ gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.1);
+
fail_unless (gst_element_set_state (volume,
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
"could not set to playing");
@@ -1796,8 +1803,8 @@ GST_START_TEST (test_controller_processing)
fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
fail_unless (inbuffer == outbuffer);
gst_buffer_map (outbuffer, &map, GST_MAP_READ);
- GST_INFO ("expected %+5d %+5d real %+5d %+5d", in[0], in[1], map.data[0],
- map.data[1]);
+ out = (gint16 *) map.data;
+ GST_INFO ("expected %+5d %+5d real %+5d %+5d", in[0], in[1], out[0], out[1]);
fail_unless (memcmp (map.data, in, 4) == 0);
gst_buffer_unmap (outbuffer, &map);
diff --git a/tests/check/libs/audiocdsrc.c b/tests/check/libs/audiocdsrc.c
index 2bb2b3e..fd723b5 100644
--- a/tests/check/libs/audiocdsrc.c
+++ b/tests/check/libs/audiocdsrc.c
@@ -426,7 +426,7 @@ GST_START_TEST (test_uri_parsing)
/* wrong protocol */
foosrc = gst_element_factory_make ("cdfoosrc", "cdfoosrc");
fail_unless (gst_uri_handler_set_uri (GST_URI_HANDLER (foosrc),
- "x://", NULL) == FALSE);
+ "xyz://", NULL) == FALSE);
fail_unless (gst_uri_handler_set_uri (GST_URI_HANDLER (foosrc),
"cddaq://", NULL) == FALSE);
diff --git a/tests/check/libs/gstlibscpp.cc b/tests/check/libs/gstlibscpp.cc
index f49913c..1a98e22 100644
--- a/tests/check/libs/gstlibscpp.cc
+++ b/tests/check/libs/gstlibscpp.cc
@@ -24,7 +24,6 @@
#include <gst/gst.h>
#include <gst/check/gstcheck.h>
-#include <gst/app/gstapp-marshal.h>
#include <gst/app/gstappsink.h>
#include <gst/app/gstappsrc.h>
@@ -38,10 +37,6 @@
#include <gst/audio/gstaudiobasesink.h>
#include <gst/audio/gstaudiobasesrc.h>
#include <gst/audio/gstaudioringbuffer.h>
-#include <gst/audio/mixerutils.h>
-#include <gst/audio/mixer.h>
-#include <gst/audio/mixeroptions.h>
-#include <gst/audio/mixertrack.h>
#include <gst/audio/streamvolume.h>
#include <gst/fft/gstfftf32.h>
@@ -50,13 +45,6 @@
#include <gst/fft/gstffts16.h>
#include <gst/fft/gstffts32.h>
-#include <gst/interfaces/interfaces-enumtypes.h>
-#include <gst/interfaces/interfaces-marshal.h>
-#include <gst/interfaces/navigation.h>
-#include <gst/interfaces/tunerchannel.h>
-#include <gst/interfaces/tuner.h>
-#include <gst/interfaces/tunernorm.h>
-
#include <gst/pbutils/codec-utils.h>
#include <gst/pbutils/descriptions.h>
#include <gst/pbutils/encoding-profile.h>
@@ -67,7 +55,6 @@
#include <gst/pbutils/missing-plugins.h>
#include <gst/pbutils/pbutils-enumtypes.h>
#include <gst/pbutils/pbutils.h>
-#include <gst/pbutils/pbutils-marshal.h>
#include <gst/riff/riff-ids.h>
#include <gst/riff/riff-media.h>
@@ -85,7 +72,6 @@
#include <gst/rtsp/gstrtsp-enumtypes.h>
#include <gst/rtsp/gstrtspextension.h>
#include <gst/rtsp/gstrtsp.h>
-#include <gst/rtsp/gstrtsp-marshal.h>
#include <gst/rtsp/gstrtspmessage.h>
#include <gst/rtsp/gstrtsprange.h>
#include <gst/rtsp/gstrtsptransport.h>
@@ -100,12 +86,12 @@
#include <gst/video/gstvideofilter.h>
#include <gst/video/gstvideosink.h>
#include <gst/video/video-enumtypes.h>
-#include <gst/video/video-marshal.h>
#include <gst/video/video.h>
#include <gst/video/colorbalancechannel.h>
#include <gst/video/colorbalance.h>
#include <gst/video/videoorientation.h>
#include <gst/video/videooverlay.h>
+#include <gst/video/navigation.h>
/* we mostly just want to make sure that our library headers don't
* contain anything a C++ compiler might not like */
diff --git a/tests/check/libs/libsabi.c b/tests/check/libs/libsabi.c
index 96b294a..dfc720a 100644
--- a/tests/check/libs/libsabi.c
+++ b/tests/check/libs/libsabi.c
@@ -32,15 +32,12 @@
#include <gst/audio/gstaudiosrc.h>
#include <gst/audio/gstaudiosink.h>
#include <gst/audio/gstaudioringbuffer.h>
-#include <gst/audio/mixer.h>
#include <gst/audio/streamvolume.h>
#include <gst/fft/gstfft.h>
#include <gst/fft/gstffts16.h>
#include <gst/fft/gstffts32.h>
#include <gst/fft/gstfftf32.h>
#include <gst/fft/gstfftf64.h>
-#include <gst/interfaces/navigation.h>
-#include <gst/interfaces/tuner.h>
#include <gst/pbutils/pbutils.h>
#include <gst/riff/riff-media.h>
#include <gst/riff/riff-read.h>
@@ -67,6 +64,7 @@
#include <gst/video/colorbalance.h>
#include <gst/video/videoorientation.h>
#include <gst/video/videooverlay.h>
+#include <gst/video/navigation.h>
/* initial version of the file was generated using:
* grep -A1 "<STRUCT>" ../../docs/libs/gst-plugins-base-libs-decl.txt | \
diff --git a/tests/check/libs/mixer.c b/tests/check/libs/mixer.c
deleted file mode 100644
index 645d321..0000000
--- a/tests/check/libs/mixer.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/* GStreamer
- *
- * unit tests for audio support library
- *
- * Copyright (C) 2007 Jan Schmidt <thaytan@noraisin.net>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * 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 <gst/check/gstcheck.h>
-
-#include <gst/audio/mixer.h>
-
-#include <string.h>
-
-#define TEST_ELEMENT_TYPE (test_element_get_type())
-
-/* FIXME 0.11: possibly remove mixer interface entirely, or simplify, or
- * radically change */
-typedef struct TestElement TestElement;
-typedef struct TestElementClass TestElementClass;
-
-struct TestElement
-{
- GstElement parent;
-};
-
-struct TestElementClass
-{
- GstElementClass parent_class;
-};
-
-GType test_element_get_type (void);
-
-static void init_interface (GType type);
-
-G_DEFINE_TYPE_WITH_CODE (TestElement, test_element, GST_TYPE_ELEMENT,
- init_interface (g_define_type_id));
-
-static void
-test_element_mixer_interface_init (GstMixerInterface * iface)
-{
- /* Not actually implementing any interfaces for this test atm */
-}
-
-static void
-init_interface (GType type)
-{
- static const GInterfaceInfo mixer_iface_info = {
- (GInterfaceInitFunc) test_element_mixer_interface_init,
- NULL,
- NULL,
- };
-
- g_type_add_interface_static (type, GST_TYPE_MIXER, &mixer_iface_info);
-}
-
-static void
-test_element_class_init (TestElementClass * klass)
-{
-}
-
-static void
-test_element_init (TestElement * this)
-{
-}
-
-GST_START_TEST (test_messages)
-{
- /* Create an empty GstElement that has a GstMixer interface and then
- * send some notifications and validate them */
- GstElement *test_element =
- (GstElement *) g_object_new (TEST_ELEMENT_TYPE, NULL);
- GstBus *bus = gst_bus_new ();
- GstMixerTrack *mtrack = g_object_new (GST_TYPE_MIXER_TRACK, NULL);
- GstMixerOptions *mopts = g_object_new (GST_TYPE_MIXER_OPTIONS, NULL);
- GstMixerTrack *t;
- GstMixerOptions *o;
- gint vols_in[2] = { 50, 75 };
- gboolean mute, record;
- gint *vols_out;
- gint n_chans, i;
- const gchar *val;
- GstMessage *message;
-
- mtrack->num_channels = 2;
- mtrack->flags = GST_MIXER_TRACK_MUTE | GST_MIXER_TRACK_RECORD;
-
- gst_element_set_bus (test_element, bus);
-
- /* Test mute-toggled */
- gst_mixer_mute_toggled (GST_MIXER (test_element), mtrack, TRUE);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_MUTE_TOGGLED);
- /* Test that we can pass NULL args */
- gst_mixer_message_parse_mute_toggled (message, NULL, NULL);
- /* Test the parsing */
- gst_mixer_message_parse_mute_toggled (message, &t, &mute);
- fail_unless (t == mtrack);
- fail_unless (mute == TRUE);
- gst_message_unref (message);
-
- /* Test record-toggled */
- gst_mixer_record_toggled (GST_MIXER (test_element), mtrack, TRUE);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_RECORD_TOGGLED);
- gst_mixer_message_parse_record_toggled (message, NULL, NULL);
- gst_mixer_message_parse_record_toggled (message, &t, &record);
- fail_unless (t == mtrack);
- fail_unless (record == TRUE);
- gst_message_unref (message);
-
- /* Test volume-changed */
- gst_mixer_volume_changed (GST_MIXER (test_element), mtrack, vols_in);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_VOLUME_CHANGED);
- gst_mixer_message_parse_volume_changed (message, NULL, NULL, NULL);
- gst_mixer_message_parse_volume_changed (message, NULL, NULL, &n_chans);
- fail_unless (n_chans == 2);
- gst_mixer_message_parse_volume_changed (message, &t, &vols_out, &n_chans);
- fail_unless (mtrack == t);
- for (i = 0; i < n_chans; i++)
- fail_unless (vols_out[i] == vols_in[i]);
-
- gst_message_unref (message);
- g_free (vols_out);
-
- /* Test option-changed */
- gst_mixer_option_changed (GST_MIXER (test_element), mopts, "TESTING");
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_OPTION_CHANGED);
- gst_mixer_message_parse_option_changed (message, NULL, NULL);
- gst_mixer_message_parse_option_changed (message, &o, &val);
- fail_unless (o == mopts);
- fail_unless (g_str_equal (val, "TESTING"));
- gst_message_unref (message);
-
- /* Test options-list-changed */
- gst_mixer_options_list_changed (GST_MIXER (test_element), mopts);
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED);
- gst_mixer_message_parse_options_list_changed (message, &o);
- fail_unless (o == mopts);
- gst_message_unref (message);
-
- /* Test mixer-changed */
- gst_mixer_mixer_changed (GST_MIXER (test_element));
- message = gst_bus_poll (bus, GST_MESSAGE_ELEMENT, GST_CLOCK_TIME_NONE);
- fail_if (message == NULL);
- fail_unless (gst_mixer_message_get_type (message) ==
- GST_MIXER_MESSAGE_MIXER_CHANGED);
- gst_message_unref (message);
-
- gst_object_unref (mtrack);
- gst_object_unref (mopts);
- gst_object_unref (bus);
- gst_object_unref (test_element);
-}
-
-GST_END_TEST;
-
-static Suite *
-mixer_suite (void)
-{
- Suite *s = suite_create ("mixer interface");
- TCase *tc_chain = tcase_create ("notifications");
-
- suite_add_tcase (s, tc_chain);
- tcase_add_test (tc_chain, test_messages);
-
- return s;
-}
-
-int
-main (int argc, char **argv)
-{
- int nf;
-
- Suite *s = mixer_suite ();
- SRunner *sr = srunner_create (s);
-
- gst_check_init (&argc, &argv);
-
- srunner_run_all (sr, CK_NORMAL);
- nf = srunner_ntests_failed (sr);
- srunner_free (sr);
-
- return nf;
-}
diff --git a/tests/check/libs/navigation.c b/tests/check/libs/navigation.c
index a44933b..c8ac79f 100644
--- a/tests/check/libs/navigation.c
+++ b/tests/check/libs/navigation.c
@@ -26,7 +26,7 @@
#include <gst/check/gstcheck.h>
-#include <gst/interfaces/navigation.h>
+#include <gst/video/navigation.h>
#include <string.h>
diff --git a/tests/check/libs/struct_arm.h b/tests/check/libs/struct_arm.h
index 00523c2..d46b37b 100644
--- a/tests/check/libs/struct_arm.h
+++ b/tests/check/libs/struct_arm.h
@@ -36,11 +36,6 @@ GstCheckABIStruct list[] = {
{"GstFFTF64Complex", sizeof (GstFFTF64Complex), 16},
{"GstFFTS16Complex", sizeof (GstFFTS16Complex), 4},
{"GstFFTS32Complex", sizeof (GstFFTS32Complex), 8},
- {"GstMixerInterface", sizeof (GstMixerInterface), 72},
- {"GstMixerOptionsClass", sizeof (GstMixerOptionsClass), 100},
- {"GstMixerOptions", sizeof (GstMixerOptions), 52},
- {"GstMixerTrackClass", sizeof (GstMixerTrackClass), 84},
- {"GstMixerTrack", sizeof (GstMixerTrack), 32},
{"GstNavigationInterface", sizeof (GstNavigationInterface), 28},
{"gst_riff_acid", sizeof (gst_riff_acid), 24},
{"gst_riff_dmlh", sizeof (gst_riff_dmlh), 4},
@@ -74,11 +69,6 @@ GstCheckABIStruct list[] = {
{"GstStreamVolumeInterface", sizeof (GstStreamVolumeInterface), 24},
{"GstTagDemuxClass", sizeof (GstTagDemuxClass), 284},
{"GstTagDemux", sizeof (GstTagDemux), 160},
- {"GstTunerChannelClass", sizeof (GstTunerChannelClass), 92},
- {"GstTunerChannel", sizeof (GstTunerChannel), 40},
- {"GstTunerInterface", sizeof (GstTunerInterface), 76},
- {"GstTunerNormClass", sizeof (GstTunerNormClass), 84},
- {"GstTunerNorm", sizeof (GstTunerNorm), 40},
{"GstVideoFilterClass", sizeof (GstVideoFilterClass), 376},
{"GstVideoFilter", sizeof (GstVideoFilter), 376},
{"GstVideoOrientationInterface", sizeof (GstVideoOrientationInterface), 56},
diff --git a/tests/check/libs/struct_i386.h b/tests/check/libs/struct_i386.h
index dac3388..cdf120a 100644
--- a/tests/check/libs/struct_i386.h
+++ b/tests/check/libs/struct_i386.h
@@ -36,11 +36,6 @@ GstCheckABIStruct list[] = {
{"GstFFTF64Complex", sizeof (GstFFTF64Complex), 16},
{"GstFFTS16Complex", sizeof (GstFFTS16Complex), 4},
{"GstFFTS32Complex", sizeof (GstFFTS32Complex), 8},
- {"GstMixerInterface", sizeof (GstMixerInterface), 72},
- {"GstMixerOptionsClass", sizeof (GstMixerOptionsClass), 100},
- {"GstMixerOptions", sizeof (GstMixerOptions), 52},
- {"GstMixerTrackClass", sizeof (GstMixerTrackClass), 84},
- {"GstMixerTrack", sizeof (GstMixerTrack), 32},
{"GstNavigationInterface", sizeof (GstNavigationInterface), 28},
{"gst_riff_acid", sizeof (gst_riff_acid), 24},
{"gst_riff_dmlh", sizeof (gst_riff_dmlh), 4},
@@ -74,11 +69,6 @@ GstCheckABIStruct list[] = {
{"GstStreamVolumeInterface", sizeof (GstStreamVolumeInterface), 24},
{"GstTagDemuxClass", sizeof (GstTagDemuxClass), 284},
{"GstTagDemux", sizeof (GstTagDemux), 148},
- {"GstTunerChannelClass", sizeof (GstTunerChannelClass), 92},
- {"GstTunerChannel", sizeof (GstTunerChannel), 40},
- {"GstTunerInterface", sizeof (GstTunerInterface), 76},
- {"GstTunerNormClass", sizeof (GstTunerNormClass), 84},
- {"GstTunerNorm", sizeof (GstTunerNorm), 36},
{"GstVideoFilterClass", sizeof (GstVideoFilterClass), 376},
{"GstVideoFilter", sizeof (GstVideoFilter), 356},
{"GstVideoOrientationInterface", sizeof (GstVideoOrientationInterface), 56},
diff --git a/tests/check/libs/struct_i386_osx.h b/tests/check/libs/struct_i386_osx.h
index f6d6f10..e8cedf8 100644
--- a/tests/check/libs/struct_i386_osx.h
+++ b/tests/check/libs/struct_i386_osx.h
@@ -38,11 +38,6 @@ GstCheckABIStruct list[] = {
{"GstFFTF64Complex", sizeof (GstFFTF64Complex), 16},
{"GstFFTS16Complex", sizeof (GstFFTS16Complex), 4},
{"GstFFTS32Complex", sizeof (GstFFTS32Complex), 8},
- {"GstMixerInterface", sizeof (GstMixerInterface), 72},
- {"GstMixerOptionsClass", sizeof (GstMixerOptionsClass), 100},
- {"GstMixerOptions", sizeof (GstMixerOptions), 52},
- {"GstMixerTrackClass", sizeof (GstMixerTrackClass), 84},
- {"GstMixerTrack", sizeof (GstMixerTrack), 32},
{"GstNavigationInterface", sizeof (GstNavigationInterface), 28},
{"gst_riff_acid", sizeof (gst_riff_acid), 24},
{"gst_riff_dmlh", sizeof (gst_riff_dmlh), 4},
@@ -76,11 +71,6 @@ GstCheckABIStruct list[] = {
{"GstStreamVolumeInterface", sizeof (GstStreamVolumeInterface), 24},
{"GstTagDemuxClass", sizeof (GstTagDemuxClass), 284},
{"GstTagDemux", sizeof (GstTagDemux), 148},
- {"GstTunerChannelClass", sizeof (GstTunerChannelClass), 92},
- {"GstTunerChannel", sizeof (GstTunerChannel), 40},
- {"GstTunerInterface", sizeof (GstTunerInterface), 76},
- {"GstTunerNormClass", sizeof (GstTunerNormClass), 84},
- {"GstTunerNorm", sizeof (GstTunerNorm), 36},
{"GstVideoFilterClass", sizeof (GstVideoFilterClass), 376},
{"GstVideoFilter", sizeof (GstVideoFilter), 356},
{"GstVideoOrientationInterface", sizeof (GstVideoOrientationInterface), 56},
diff --git a/tests/check/libs/struct_x86_64.h b/tests/check/libs/struct_x86_64.h
index 76e36ca..5d0895d 100644
--- a/tests/check/libs/struct_x86_64.h
+++ b/tests/check/libs/struct_x86_64.h
@@ -36,11 +36,6 @@ GstCheckABIStruct list[] = {
{"GstFFTF64Complex", sizeof (GstFFTF64Complex), 16},
{"GstFFTS16Complex", sizeof (GstFFTS16Complex), 4},
{"GstFFTS32Complex", sizeof (GstFFTS32Complex), 8},
- {"GstMixerInterface", sizeof (GstMixerInterface), 88},
- {"GstMixerOptionsClass", sizeof (GstMixerOptionsClass), 208},
- {"GstMixerOptions", sizeof (GstMixerOptions), 120},
- {"GstMixerTrackClass", sizeof (GstMixerTrackClass), 168},
- {"GstMixerTrack", sizeof (GstMixerTrack), 80},
{"GstNavigationInterface", sizeof (GstNavigationInterface), 24},
{"gst_riff_acid", sizeof (gst_riff_acid), 24},
{"gst_riff_dmlh", sizeof (gst_riff_dmlh), 4},
@@ -74,11 +69,6 @@ GstCheckABIStruct list[] = {
{"GstStreamVolumeInterface", sizeof (GstStreamVolumeInterface), 16},
{"GstTagDemuxClass", sizeof (GstTagDemuxClass), 552},
{"GstTagDemux", sizeof (GstTagDemux), 304},
- {"GstTunerChannelClass", sizeof (GstTunerChannelClass), 184},
- {"GstTunerChannel", sizeof (GstTunerChannel), 96},
- {"GstTunerInterface", sizeof (GstTunerInterface), 120},
- {"GstTunerNormClass", sizeof (GstTunerNormClass), 168},
- {"GstTunerNorm", sizeof (GstTunerNorm), 88},
{"GstVideoFilterClass", sizeof (GstVideoFilterClass), 872},
{"GstVideoFilter", sizeof (GstVideoFilter), 864},
{"GstVideoOrientationInterface", sizeof (GstVideoOrientationInterface), 80},
diff --git a/tests/check/pipelines/streamheader.c b/tests/check/pipelines/streamheader.c
index 77e998c..e3c8d06 100644
--- a/tests/check/pipelines/streamheader.c
+++ b/tests/check/pipelines/streamheader.c
@@ -69,7 +69,7 @@ GST_START_TEST (test_multisocketsink_gdp_tag)
GstPad *pad;
GMainLoop *loop;
int pfd[2];
- GSocket *s[2];
+ GSocket *s[2] = { NULL, };
loop = g_main_loop_new (NULL, FALSE);
@@ -185,7 +185,7 @@ GST_START_TEST (test_multisocketsink_gdp_vorbisenc)
GstPad *pad;
GMainLoop *loop;
int pfd[2];
- GSocket *s[2];
+ GSocket *s[2] = { NULL, };
loop = g_main_loop_new (NULL, FALSE);
diff --git a/tests/check/pipelines/theoraenc.c b/tests/check/pipelines/theoraenc.c
index 067cde2..59da6c4 100644
--- a/tests/check/pipelines/theoraenc.c
+++ b/tests/check/pipelines/theoraenc.c
@@ -308,126 +308,6 @@ GST_START_TEST (test_continuity)
GST_END_TEST;
-static GstPadProbeReturn
-drop_second_data_buffer (GstPad * droppad, GstPadProbeInfo * info,
- gpointer unused)
-{
- GstBuffer *buffer = GST_PAD_PROBE_INFO_BUFFER (info);
-
- if (GST_BUFFER_OFFSET (buffer) == 1)
- return GST_PAD_PROBE_DROP;
- else
- return GST_PAD_PROBE_OK;
-}
-
-GST_START_TEST (test_discontinuity)
-{
- GstElement *bin;
- GstPad *pad, *droppad;
- gchar *pipe_str;
- GstBuffer *buffer;
- GError *error = NULL;
- guint drop_id;
-
- pipe_str = g_strdup_printf ("videotestsrc num-buffers=10"
- " ! video/x-raw,format=(string)I420,framerate=10/1"
- " ! theoraenc ! fakesink name=fs0");
-
- bin = gst_parse_launch (pipe_str, &error);
- fail_unless (bin != NULL, "Error parsing pipeline: %s",
- error ? error->message : "(invalid error)");
- g_free (pipe_str);
-
- /* the plan: same as test_continuity, but dropping a buffer and seeing if
- theoraenc correctly notes the discontinuity */
-
- /* get the pad to use to drop buffers */
- {
- GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "theoraenc0");
-
- fail_unless (sink != NULL, "Could not get theoraenc out of bin");
- droppad = gst_element_get_static_pad (sink, "sink");
- fail_unless (droppad != NULL, "Could not get pad out of theoraenc");
- gst_object_unref (sink);
- }
-
- /* get the pad */
- {
- GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "fs0");
-
- fail_unless (sink != NULL, "Could not get fakesink out of bin");
- pad = gst_element_get_static_pad (sink, "sink");
- fail_unless (pad != NULL, "Could not get pad out of fakesink");
- gst_object_unref (sink);
- }
-
- drop_id = gst_pad_add_probe (droppad, GST_PAD_PROBE_TYPE_BUFFER,
- drop_second_data_buffer, NULL, NULL);
- gst_buffer_straw_start_pipeline (bin, pad);
-
- /* header packets should have timestamp == NONE, granulepos 0 */
- buffer = gst_buffer_straw_get_buffer (bin, pad);
- check_buffer_timestamp (buffer, GST_CLOCK_TIME_NONE);
- check_buffer_duration (buffer, GST_CLOCK_TIME_NONE);
- check_buffer_granulepos (buffer, 0);
- check_buffer_is_header (buffer, TRUE);
- gst_buffer_unref (buffer);
-
- buffer = gst_buffer_straw_get_buffer (bin, pad);
- check_buffer_timestamp (buffer, GST_CLOCK_TIME_NONE);
- check_buffer_duration (buffer, GST_CLOCK_TIME_NONE);
- check_buffer_granulepos (buffer, 0);
- check_buffer_is_header (buffer, TRUE);
- gst_buffer_unref (buffer);
-
- buffer = gst_buffer_straw_get_buffer (bin, pad);
- check_buffer_timestamp (buffer, GST_CLOCK_TIME_NONE);
- check_buffer_duration (buffer, GST_CLOCK_TIME_NONE);
- check_buffer_granulepos (buffer, 0);
- check_buffer_is_header (buffer, TRUE);
- gst_buffer_unref (buffer);
-
- {
- buffer = gst_buffer_straw_get_buffer (bin, pad);
- check_buffer_timestamp (buffer, 0);
- /* plain division because I know the answer is exact */
- check_buffer_duration (buffer, GST_SECOND / 10);
- check_buffer_granulepos (buffer, 1 << GRANULEPOS_SHIFT);
- check_buffer_is_header (buffer, FALSE);
- fail_if (GST_BUFFER_IS_DISCONT (buffer), "expected continuous buffer yo");
- gst_buffer_unref (buffer);
-
- /* check discontinuity with the next buffer */
- buffer = gst_buffer_straw_get_buffer (bin, pad);
- check_buffer_duration (buffer, GST_SECOND / 10);
- /* After a discont, we'll always get a keyframe, so this one should be
- * 3<<GRANULEPOS_SHIFT */
- check_buffer_granulepos (buffer, 3 << GRANULEPOS_SHIFT);
- check_buffer_is_header (buffer, FALSE);
- fail_unless (GST_BUFFER_IS_DISCONT (buffer),
- "expected discontinuous buffer yo");
- gst_buffer_unref (buffer);
-
- /* Then the buffer after that should be continuous */
- buffer = gst_buffer_straw_get_buffer (bin, pad);
- fail_if (GST_BUFFER_IS_DISCONT (buffer), "expected continuous buffer yo");
- /* plain division because I know the answer is exact */
- check_buffer_duration (buffer, GST_SECOND / 10);
- check_buffer_granulepos (buffer, (3 << GRANULEPOS_SHIFT) | 1);
- check_buffer_is_header (buffer, FALSE);
- gst_buffer_unref (buffer);
- }
-
- gst_buffer_straw_stop_pipeline (bin, pad);
- gst_pad_remove_probe (droppad, drop_id);
-
- gst_object_unref (droppad);
- gst_object_unref (pad);
- gst_object_unref (bin);
-}
-
-GST_END_TEST;
-
#endif /* #ifndef GST_DISABLE_PARSE */
static Suite *
@@ -443,7 +323,6 @@ theoraenc_suite (void)
#ifndef GST_DISABLE_PARSE
tcase_add_test (tc_chain, test_granulepos_offset);
tcase_add_test (tc_chain, test_continuity);
- tcase_add_test (tc_chain, test_discontinuity);
#endif
return s;
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 607f78e..8d459c4 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/app/Makefile.in b/tests/examples/app/Makefile.in
index c295f18..af7e6b6 100644
--- a/tests/examples/app/Makefile.in
+++ b/tests/examples/app/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/audio/Makefile.in b/tests/examples/audio/Makefile.in
index f794d21..785b6a9 100644
--- a/tests/examples/audio/Makefile.in
+++ b/tests/examples/audio/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/dynamic/Makefile.in b/tests/examples/dynamic/Makefile.in
index 2773056..0a5c526 100644
--- a/tests/examples/dynamic/Makefile.in
+++ b/tests/examples/dynamic/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/encoding/Makefile.in b/tests/examples/encoding/Makefile.in
index 07aab58..99b1c82 100644
--- a/tests/examples/encoding/Makefile.in
+++ b/tests/examples/encoding/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/fft/Makefile.in b/tests/examples/fft/Makefile.in
index 921a05d..723e468 100644
--- a/tests/examples/fft/Makefile.in
+++ b/tests/examples/fft/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/gio/Makefile.in b/tests/examples/gio/Makefile.in
index 581e8d4..98628b1 100644
--- a/tests/examples/gio/Makefile.in
+++ b/tests/examples/gio/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/overlay/Makefile.in b/tests/examples/overlay/Makefile.in
index 9d5b7b4..c0019fb 100644
--- a/tests/examples/overlay/Makefile.in
+++ b/tests/examples/overlay/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/playback/Makefile.am b/tests/examples/playback/Makefile.am
index 894b562..3631606 100644
--- a/tests/examples/playback/Makefile.am
+++ b/tests/examples/playback/Makefile.am
@@ -1,7 +1,6 @@
noinst_PROGRAMS = playback-test
LDADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(GST_LIBS) $(GTK_LIBS) $(LIBM)
diff --git a/tests/examples/playback/Makefile.in b/tests/examples/playback/Makefile.in
index dec9533..7037b20 100644
--- a/tests/examples/playback/Makefile.in
+++ b/tests/examples/playback/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -103,8 +103,7 @@ playback_test_SOURCES = playback-test.c
playback_test_OBJECTS = playback-test.$(OBJEXT)
playback_test_LDADD = $(LDADD)
am__DEPENDENCIES_1 =
-playback_test_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
+playback_test_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -424,7 +423,6 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
LDADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
$(GST_LIBS) $(GTK_LIBS) $(LIBM)
diff --git a/tests/examples/playback/playback-test.c b/tests/examples/playback/playback-test.c
index 344a235..5f09acd 100644
--- a/tests/examples/playback/playback-test.c
+++ b/tests/examples/playback/playback-test.c
@@ -49,7 +49,7 @@
#include <gst/video/videooverlay.h>
#include <gst/video/colorbalance.h>
-#include <gst/interfaces/navigation.h>
+#include <gst/video/navigation.h>
GST_DEBUG_CATEGORY_STATIC (playback_debug);
#define GST_CAT_DEFAULT (playback_debug)
@@ -311,10 +311,10 @@ format_value (GtkScale * scale, gdouble value, PlaybackApp * app)
real = value * app->duration / N_GRAD;
seconds = (gint64) real / GST_SECOND;
- subseconds = (gint64) real / (GST_SECOND / N_GRAD);
+ subseconds = (gint64) real / (GST_MSECOND);
- return g_strdup_printf ("%02" G_GINT64_FORMAT ":%02" G_GINT64_FORMAT ":%02"
- G_GINT64_FORMAT, seconds / 60, seconds % 60, subseconds % 100);
+ return g_strdup_printf ("%02" G_GINT64_FORMAT ":%02" G_GINT64_FORMAT ":%03"
+ G_GINT64_FORMAT, seconds / 60, seconds % 60, subseconds % 1000);
}
static gchar *
diff --git a/tests/examples/playrec/Makefile.in b/tests/examples/playrec/Makefile.in
index 6cc43f3..529490a 100644
--- a/tests/examples/playrec/Makefile.in
+++ b/tests/examples/playrec/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/examples/seek/Makefile.am b/tests/examples/seek/Makefile.am
index c046f1c..bea6f8e 100644
--- a/tests/examples/seek/Makefile.am
+++ b/tests/examples/seek/Makefile.am
@@ -12,7 +12,6 @@ noinst_PROGRAMS = $(examples)
LDADD = \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_LIBS) $(GTK_LIBS) $(LIBM)
AM_CFLAGS = -I$(top_builddir)/gst-libs $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GTK_CFLAGS)
diff --git a/tests/examples/seek/Makefile.in b/tests/examples/seek/Makefile.in
index 7daa5df..78def1a 100644
--- a/tests/examples/seek/Makefile.in
+++ b/tests/examples/seek/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -108,7 +108,6 @@ jsseek_OBJECTS = jsseek.$(OBJEXT)
jsseek_LDADD = $(LDADD)
am__DEPENDENCIES_1 =
jsseek_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
@@ -118,21 +117,18 @@ scrubby_SOURCES = scrubby.c
scrubby_OBJECTS = scrubby.$(OBJEXT)
scrubby_LDADD = $(LDADD)
scrubby_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
stepping_SOURCES = stepping.c
stepping_OBJECTS = stepping.$(OBJEXT)
stepping_LDADD = $(LDADD)
stepping_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
stepping2_SOURCES = stepping2.c
stepping2_OBJECTS = stepping2.$(OBJEXT)
stepping2_LDADD = $(LDADD)
stepping2_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
@@ -453,7 +449,6 @@ top_srcdir = @top_srcdir@
examples = $(GTK_EXAMPLES) stepping stepping2
LDADD = \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_API_VERSION@.la \
$(GST_LIBS) $(GTK_LIBS) $(LIBM)
AM_CFLAGS = -I$(top_builddir)/gst-libs $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GTK_CFLAGS)
diff --git a/tests/examples/snapshot/Makefile.in b/tests/examples/snapshot/Makefile.in
index 1336bdf..a94ae6d 100644
--- a/tests/examples/snapshot/Makefile.in
+++ b/tests/examples/snapshot/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 4b782e6..52b134b 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tests/icles/Makefile.am b/tests/icles/Makefile.am
index 18f1fb7..ad619e0 100644
--- a/tests/icles/Makefile.am
+++ b/tests/icles/Makefile.am
@@ -18,7 +18,6 @@ test_colorkey_SOURCES = test-colorkey.c
test_colorkey_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
$(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS) $(GTK_CFLAGS)
test_colorkey_LDADD = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
$(GST_LIBS) $(X_LIBS) $(LIBM) $(GTK_LIBS)
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index ac61167..274b402 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -183,8 +183,7 @@ test_box_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
am__test_colorkey_SOURCES_DIST = test-colorkey.c
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@am_test_colorkey_OBJECTS = test_colorkey-test-colorkey.$(OBJEXT)
test_colorkey_OBJECTS = $(am_test_colorkey_OBJECTS)
-@HAVE_GTK_X11_TRUE@@USE_X_TRUE@test_colorkey_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
-@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
+@HAVE_GTK_X11_TRUE@@USE_X_TRUE@test_colorkey_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(am__DEPENDENCIES_1) \
@@ -601,7 +600,6 @@ DIST_SUBDIRS = playback
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(X_CFLAGS) $(GTK_CFLAGS)
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@test_colorkey_LDADD = \
-@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_API_VERSION).la \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(GST_LIBS) $(X_LIBS) $(LIBM) $(GTK_LIBS)
diff --git a/tests/icles/playback/Makefile.in b/tests/icles/playback/Makefile.in
index 036d31c..0a12061 100644
--- a/tests/icles/playback/Makefile.in
+++ b/tests/icles/playback/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tools/Makefile.in b/tools/Makefile.in
index d5cfee9..cd8cf59 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.4 from Makefile.am.
+# Makefile.in generated by automake 1.11.5 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/tools/gst-discoverer.c b/tools/gst-discoverer.c
index c28ee64..e1a4cd8 100644
--- a/tools/gst-discoverer.c
+++ b/tools/gst-discoverer.c
@@ -318,11 +318,17 @@ print_tag_each (GQuark field_id, const GValue * value, gpointer user_data)
if (G_VALUE_HOLDS_STRING (value))
ser = g_value_dup_string (value);
- else if (GST_VALUE_HOLDS_BUFFER (value)) {
- GstBuffer *buf = gst_value_get_buffer (value);
+ else if (GST_VALUE_HOLDS_SAMPLE (value)) {
+ GstSample *smpl = gst_value_get_sample (value);
+ GstBuffer *buf = gst_sample_get_buffer (smpl);
+ GstCaps *caps = gst_sample_get_caps (smpl);
+ gchar *caps_str;
+
+ caps_str = caps ? gst_caps_to_string (caps) : g_strdup ("unknown");
ser =
- g_strdup_printf ("<GstBuffer [%" G_GSIZE_FORMAT " bytes]>",
- gst_buffer_get_size (buf));
+ g_strdup_printf ("<GstSample [%" G_GSIZE_FORMAT " bytes, type %s]>",
+ gst_buffer_get_size (buf), caps_str);
+ g_free (caps_str);
} else
ser = gst_value_serialize (value);
diff --git a/win32/MANIFEST b/win32/MANIFEST
index 4a3e4bc..1bb4cff 100644
--- a/win32/MANIFEST
+++ b/win32/MANIFEST
@@ -3,11 +3,8 @@ win32/common/_stdint.h
win32/common/config.h
win32/common/gstrtsp-enumtypes.c
win32/common/gstrtsp-enumtypes.h
-win32/common/interfaces-enumtypes.c
-win32/common/interfaces-enumtypes.h
win32/common/libgstapp.def
win32/common/libgstaudio.def
-win32/common/libgstinterfaces.def
win32/common/libgstpbutils.def
win32/common/libgstriff.def
win32/common/libgstrtp.def
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index 78393e6..6e93ec8 100644
--- a/win32/common/_stdint.h
+++ b/win32/common/_stdint.h
@@ -1,7 +1,7 @@
#ifndef _GST_PLUGINS_BASE__STDINT_H
#define _GST_PLUGINS_BASE__STDINT_H 1
#ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 0.11.90"
+#define _GENERATED_STDINT_H "gst-plugins-base 0.11.91"
/* generated using gnu compiler Debian clang version 3.0-6 (tags/RELEASE_30/final) (based on LLVM 3.0) */
#define _STDINT_HAVE_STDINT_H 1
#include <stdint.h>
diff --git a/win32/common/config.h b/win32/common/config.h
index a068623..1845e6f 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -87,7 +87,7 @@
#define GST_PACKAGE_ORIGIN "Unknown package origin"
/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2012-04-12"
+#define GST_PACKAGE_RELEASE_DATETIME "2012-05-13"
/* Define to enable ALSA (used by alsa). */
#undef HAVE_ALSA
@@ -313,7 +313,7 @@
#define PACKAGE_NAME "GStreamer Base Plug-ins"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 0.11.90"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 0.11.91"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gst-plugins-base"
@@ -322,7 +322,7 @@
#undef PACKAGE_URL
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.11.90"
+#define PACKAGE_VERSION "0.11.91"
/* directory where plugins are located */
#ifdef _DEBUG
@@ -353,7 +353,7 @@
#undef USE_TREMOLO
/* Version number of package */
-#define VERSION "0.11.90"
+#define VERSION "0.11.91"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
@@ -370,6 +370,11 @@
/* Define to 1 if the X Window System is missing or not being used. */
#undef X_DISPLAY_MISSING
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
diff --git a/win32/common/interfaces-enumtypes.c b/win32/common/interfaces-enumtypes.c
deleted file mode 100644
index aa388e4..0000000
--- a/win32/common/interfaces-enumtypes.c
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-
-#include "interfaces-enumtypes.h"
-
-#include "navigation.h"
-#include "tuner.h"
-#include "tunernorm.h"
-#include "tunerchannel.h"
-
-/* enumerations from "navigation.h" */
-GType
-gst_navigation_command_get_type (void)
-{
- static volatile gsize g_define_type_id__volatile = 0;
- if (g_once_init_enter (&g_define_type_id__volatile)) {
- static const GEnumValue values[] = {
- {GST_NAVIGATION_COMMAND_INVALID, "GST_NAVIGATION_COMMAND_INVALID",
- "invalid"},
- {GST_NAVIGATION_COMMAND_MENU1, "GST_NAVIGATION_COMMAND_MENU1", "menu1"},
- {GST_NAVIGATION_COMMAND_MENU2, "GST_NAVIGATION_COMMAND_MENU2", "menu2"},
- {GST_NAVIGATION_COMMAND_MENU3, "GST_NAVIGATION_COMMAND_MENU3", "menu3"},
- {GST_NAVIGATION_COMMAND_MENU4, "GST_NAVIGATION_COMMAND_MENU4", "menu4"},
- {GST_NAVIGATION_COMMAND_MENU5, "GST_NAVIGATION_COMMAND_MENU5", "menu5"},
- {GST_NAVIGATION_COMMAND_MENU6, "GST_NAVIGATION_COMMAND_MENU6", "menu6"},
- {GST_NAVIGATION_COMMAND_MENU7, "GST_NAVIGATION_COMMAND_MENU7", "menu7"},
- {GST_NAVIGATION_COMMAND_LEFT, "GST_NAVIGATION_COMMAND_LEFT", "left"},
- {GST_NAVIGATION_COMMAND_RIGHT, "GST_NAVIGATION_COMMAND_RIGHT", "right"},
- {GST_NAVIGATION_COMMAND_UP, "GST_NAVIGATION_COMMAND_UP", "up"},
- {GST_NAVIGATION_COMMAND_DOWN, "GST_NAVIGATION_COMMAND_DOWN", "down"},
- {GST_NAVIGATION_COMMAND_ACTIVATE, "GST_NAVIGATION_COMMAND_ACTIVATE",
- "activate"},
- {GST_NAVIGATION_COMMAND_PREV_ANGLE, "GST_NAVIGATION_COMMAND_PREV_ANGLE",
- "prev-angle"},
- {GST_NAVIGATION_COMMAND_NEXT_ANGLE, "GST_NAVIGATION_COMMAND_NEXT_ANGLE",
- "next-angle"},
- {0, NULL, NULL}
- };
- GType g_define_type_id =
- g_enum_register_static ("GstNavigationCommand", values);
- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
- }
- return g_define_type_id__volatile;
-}
-
-GType
-gst_navigation_query_type_get_type (void)
-{
- static volatile gsize g_define_type_id__volatile = 0;
- if (g_once_init_enter (&g_define_type_id__volatile)) {
- static const GEnumValue values[] = {
- {GST_NAVIGATION_QUERY_INVALID, "GST_NAVIGATION_QUERY_INVALID", "invalid"},
- {GST_NAVIGATION_QUERY_COMMANDS, "GST_NAVIGATION_QUERY_COMMANDS",
- "commands"},
- {GST_NAVIGATION_QUERY_ANGLES, "GST_NAVIGATION_QUERY_ANGLES", "angles"},
- {0, NULL, NULL}
- };
- GType g_define_type_id =
- g_enum_register_static ("GstNavigationQueryType", values);
- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
- }
- return g_define_type_id__volatile;
-}
-
-GType
-gst_navigation_message_type_get_type (void)
-{
- static volatile gsize g_define_type_id__volatile = 0;
- if (g_once_init_enter (&g_define_type_id__volatile)) {
- static const GEnumValue values[] = {
- {GST_NAVIGATION_MESSAGE_INVALID, "GST_NAVIGATION_MESSAGE_INVALID",
- "invalid"},
- {GST_NAVIGATION_MESSAGE_MOUSE_OVER, "GST_NAVIGATION_MESSAGE_MOUSE_OVER",
- "mouse-over"},
- {GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED,
- "GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED", "commands-changed"},
- {GST_NAVIGATION_MESSAGE_ANGLES_CHANGED,
- "GST_NAVIGATION_MESSAGE_ANGLES_CHANGED", "angles-changed"},
- {0, NULL, NULL}
- };
- GType g_define_type_id =
- g_enum_register_static ("GstNavigationMessageType", values);
- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
- }
- return g_define_type_id__volatile;
-}
-
-GType
-gst_navigation_event_type_get_type (void)
-{
- static volatile gsize g_define_type_id__volatile = 0;
- if (g_once_init_enter (&g_define_type_id__volatile)) {
- static const GEnumValue values[] = {
- {GST_NAVIGATION_EVENT_INVALID, "GST_NAVIGATION_EVENT_INVALID", "invalid"},
- {GST_NAVIGATION_EVENT_KEY_PRESS, "GST_NAVIGATION_EVENT_KEY_PRESS",
- "key-press"},
- {GST_NAVIGATION_EVENT_KEY_RELEASE, "GST_NAVIGATION_EVENT_KEY_RELEASE",
- "key-release"},
- {GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS,
- "GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS", "mouse-button-press"},
- {GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE,
- "GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE",
- "mouse-button-release"},
- {GST_NAVIGATION_EVENT_MOUSE_MOVE, "GST_NAVIGATION_EVENT_MOUSE_MOVE",
- "mouse-move"},
- {GST_NAVIGATION_EVENT_COMMAND, "GST_NAVIGATION_EVENT_COMMAND", "command"},
- {0, NULL, NULL}
- };
- GType g_define_type_id =
- g_enum_register_static ("GstNavigationEventType", values);
- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
- }
- return g_define_type_id__volatile;
-}
-
-/* enumerations from "tunerchannel.h" */
-GType
-gst_tuner_channel_flags_get_type (void)
-{
- static volatile gsize g_define_type_id__volatile = 0;
- if (g_once_init_enter (&g_define_type_id__volatile)) {
- static const GFlagsValue values[] = {
- {GST_TUNER_CHANNEL_INPUT, "GST_TUNER_CHANNEL_INPUT", "input"},
- {GST_TUNER_CHANNEL_OUTPUT, "GST_TUNER_CHANNEL_OUTPUT", "output"},
- {GST_TUNER_CHANNEL_FREQUENCY, "GST_TUNER_CHANNEL_FREQUENCY", "frequency"},
- {GST_TUNER_CHANNEL_AUDIO, "GST_TUNER_CHANNEL_AUDIO", "audio"},
- {0, NULL, NULL}
- };
- GType g_define_type_id =
- g_flags_register_static ("GstTunerChannelFlags", values);
- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
- }
- return g_define_type_id__volatile;
-}
diff --git a/win32/common/interfaces-enumtypes.h b/win32/common/interfaces-enumtypes.h
deleted file mode 100644
index 703cdf0..0000000
--- a/win32/common/interfaces-enumtypes.h
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-#ifndef __GST_INTERFACES_ENUM_TYPES_H__
-#define __GST_INTERFACES_ENUM_TYPES_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-/* enumerations from "navigation.h" */
-GType gst_navigation_command_get_type (void);
-#define GST_TYPE_NAVIGATION_COMMAND (gst_navigation_command_get_type())
-GType gst_navigation_query_type_get_type (void);
-#define GST_TYPE_NAVIGATION_QUERY_TYPE (gst_navigation_query_type_get_type())
-GType gst_navigation_message_type_get_type (void);
-#define GST_TYPE_NAVIGATION_MESSAGE_TYPE (gst_navigation_message_type_get_type())
-GType gst_navigation_event_type_get_type (void);
-#define GST_TYPE_NAVIGATION_EVENT_TYPE (gst_navigation_event_type_get_type())
-
-/* enumerations from "tunerchannel.h" */
-GType gst_tuner_channel_flags_get_type (void);
-#define GST_TYPE_TUNER_CHANNEL_FLAGS (gst_tuner_channel_flags_get_type())
-G_END_DECLS
-
-#endif /* __GST_INTERFACES_ENUM_TYPES_H__ */
-
-
-
diff --git a/win32/common/libgstaudio.def b/win32/common/libgstaudio.def
index 5db3045..f3e1f50 100644
--- a/win32/common/libgstaudio.def
+++ b/win32/common/libgstaudio.def
@@ -61,7 +61,6 @@ EXPORTS
gst_audio_decoder_set_plc
gst_audio_decoder_set_plc_aware
gst_audio_decoder_set_tolerance
- gst_audio_default_registry_mixer_filter
gst_audio_downmix_meta_api_get_type
gst_audio_downmix_meta_get_info
gst_audio_encoder_finish_frame
@@ -155,31 +154,6 @@ EXPORTS
gst_audio_src_get_type
gst_buffer_add_audio_downmix_meta
gst_buffer_get_audio_downmix_meta_for_channels
- gst_mixer_get_mixer_flags
- gst_mixer_get_mixer_type
- gst_mixer_get_option
- gst_mixer_get_type
- gst_mixer_get_volume
- gst_mixer_list_tracks
- gst_mixer_message_get_type
- gst_mixer_message_parse_mute_toggled
- gst_mixer_message_parse_option_changed
- gst_mixer_message_parse_options_list_changed
- gst_mixer_message_parse_record_toggled
- gst_mixer_message_parse_volume_changed
- gst_mixer_mixer_changed
- gst_mixer_mute_toggled
- gst_mixer_option_changed
- gst_mixer_options_get_type
- gst_mixer_options_get_values
- gst_mixer_options_list_changed
- gst_mixer_record_toggled
- gst_mixer_set_mute
- gst_mixer_set_option
- gst_mixer_set_record
- gst_mixer_set_volume
- gst_mixer_track_get_type
- gst_mixer_volume_changed
gst_stream_volume_convert_volume
gst_stream_volume_get_mute
gst_stream_volume_get_type
diff --git a/win32/common/libgstinterfaces.def b/win32/common/libgstinterfaces.def
deleted file mode 100644
index 8869300..0000000
--- a/win32/common/libgstinterfaces.def
+++ /dev/null
@@ -1,51 +0,0 @@
-EXPORTS
- gst_interfaces_marshal_VOID__OBJECT_INT
- gst_interfaces_marshal_VOID__OBJECT_ULONG
- gst_navigation_command_get_type
- gst_navigation_event_get_type
- gst_navigation_event_parse_command
- gst_navigation_event_parse_key_event
- gst_navigation_event_parse_mouse_button_event
- gst_navigation_event_parse_mouse_move_event
- gst_navigation_event_type_get_type
- gst_navigation_get_type
- gst_navigation_message_get_type
- gst_navigation_message_new_angles_changed
- gst_navigation_message_new_commands_changed
- gst_navigation_message_new_mouse_over
- gst_navigation_message_parse_angles_changed
- gst_navigation_message_parse_mouse_over
- gst_navigation_message_type_get_type
- gst_navigation_query_get_type
- gst_navigation_query_new_angles
- gst_navigation_query_new_commands
- gst_navigation_query_parse_angles
- gst_navigation_query_parse_commands_length
- gst_navigation_query_parse_commands_nth
- gst_navigation_query_set_angles
- gst_navigation_query_set_commands
- gst_navigation_query_set_commandsv
- gst_navigation_query_type_get_type
- gst_navigation_send_command
- gst_navigation_send_event
- gst_navigation_send_key_event
- gst_navigation_send_mouse_event
- gst_tuner_channel_changed
- gst_tuner_channel_flags_get_type
- gst_tuner_channel_get_type
- gst_tuner_find_channel_by_name
- gst_tuner_find_norm_by_name
- gst_tuner_frequency_changed
- gst_tuner_get_channel
- gst_tuner_get_frequency
- gst_tuner_get_norm
- gst_tuner_get_type
- gst_tuner_list_channels
- gst_tuner_list_norms
- gst_tuner_norm_changed
- gst_tuner_norm_get_type
- gst_tuner_set_channel
- gst_tuner_set_frequency
- gst_tuner_set_norm
- gst_tuner_signal_changed
- gst_tuner_signal_strength
diff --git a/win32/common/libgstvideo.def b/win32/common/libgstvideo.def
index 9db4ae8..f479927 100644
--- a/win32/common/libgstvideo.def
+++ b/win32/common/libgstvideo.def
@@ -1,4 +1,5 @@
EXPORTS
+ _gst_video_decoder_error
gst_buffer_add_video_meta
gst_buffer_add_video_meta_full
gst_buffer_get_video_meta_id
@@ -13,12 +14,48 @@ EXPORTS
gst_color_balance_type_get_type
gst_color_balance_value_changed
gst_is_video_overlay_prepare_window_handle_message
+ gst_navigation_command_get_type
+ gst_navigation_event_get_type
+ gst_navigation_event_parse_command
+ gst_navigation_event_parse_key_event
+ gst_navigation_event_parse_mouse_button_event
+ gst_navigation_event_parse_mouse_move_event
+ gst_navigation_event_type_get_type
+ gst_navigation_get_type
+ gst_navigation_message_get_type
+ gst_navigation_message_new_angles_changed
+ gst_navigation_message_new_commands_changed
+ gst_navigation_message_new_mouse_over
+ gst_navigation_message_parse_angles_changed
+ gst_navigation_message_parse_mouse_over
+ gst_navigation_message_type_get_type
+ gst_navigation_query_get_type
+ gst_navigation_query_new_angles
+ gst_navigation_query_new_commands
+ gst_navigation_query_parse_angles
+ gst_navigation_query_parse_commands_length
+ gst_navigation_query_parse_commands_nth
+ gst_navigation_query_set_angles
+ gst_navigation_query_set_commands
+ gst_navigation_query_set_commandsv
+ gst_navigation_query_type_get_type
+ gst_navigation_send_command
+ gst_navigation_send_event
+ gst_navigation_send_key_event
+ gst_navigation_send_mouse_event
gst_video_alignment_reset
gst_video_buffer_flags_get_type
gst_video_buffer_pool_get_type
gst_video_buffer_pool_new
gst_video_calculate_display_ratio
gst_video_chroma_site_get_type
+ gst_video_codec_frame_get_type
+ gst_video_codec_frame_ref
+ gst_video_codec_frame_set_hook
+ gst_video_codec_frame_unref
+ gst_video_codec_state_get_type
+ gst_video_codec_state_ref
+ gst_video_codec_state_unref
gst_video_color_matrix_get_type
gst_video_color_primaries_get_type
gst_video_color_range_get_type
@@ -28,6 +65,36 @@ EXPORTS
gst_video_convert_sample_async
gst_video_crop_meta_api_get_type
gst_video_crop_meta_get_info
+ gst_video_decoder_add_to_frame
+ gst_video_decoder_alloc_output_buffer
+ gst_video_decoder_alloc_output_frame
+ gst_video_decoder_drop_frame
+ gst_video_decoder_finish_frame
+ gst_video_decoder_get_estimate_rate
+ gst_video_decoder_get_frame
+ gst_video_decoder_get_latency
+ gst_video_decoder_get_max_decode_time
+ gst_video_decoder_get_max_errors
+ gst_video_decoder_get_oldest_frame
+ gst_video_decoder_get_output_state
+ gst_video_decoder_get_packetized
+ gst_video_decoder_get_type
+ gst_video_decoder_have_frame
+ gst_video_decoder_set_estimate_rate
+ gst_video_decoder_set_latency
+ gst_video_decoder_set_max_errors
+ gst_video_decoder_set_output_state
+ gst_video_decoder_set_packetized
+ gst_video_encoder_finish_frame
+ gst_video_encoder_get_frame
+ gst_video_encoder_get_latency
+ gst_video_encoder_get_oldest_frame
+ gst_video_encoder_get_output_state
+ gst_video_encoder_get_type
+ gst_video_encoder_proxy_getcaps
+ gst_video_encoder_set_headers
+ gst_video_encoder_set_latency
+ gst_video_encoder_set_output_state
gst_video_event_is_force_key_unit
gst_video_event_new_downstream_force_key_unit
gst_video_event_new_still_frame
@@ -47,16 +114,17 @@ EXPORTS
gst_video_format_to_string
gst_video_frame_copy
gst_video_frame_copy_plane
+ gst_video_frame_flags_get_type
gst_video_frame_map
gst_video_frame_map_id
gst_video_frame_unmap
gst_video_info_convert
gst_video_info_from_caps
gst_video_info_init
+ gst_video_info_is_equal
gst_video_info_set_format
gst_video_info_to_caps
gst_video_interlace_mode_get_type
- gst_video_marshal_VOID__OBJECT_INT
gst_video_meta_api_get_type
gst_video_meta_get_info
gst_video_meta_map
diff --git a/win32/common/video-enumtypes.c b/win32/common/video-enumtypes.c
index 87f269f..f3eaef7 100644
--- a/win32/common/video-enumtypes.c
+++ b/win32/common/video-enumtypes.c
@@ -5,6 +5,7 @@
#include "video.h"
#include "colorbalance.h"
+#include "navigation.h"
/* enumerations from "video.h" */
GType
@@ -57,6 +58,7 @@ gst_video_format_get_type (void)
{GST_VIDEO_FORMAT_ARGB64, "GST_VIDEO_FORMAT_ARGB64", "argb64"},
{GST_VIDEO_FORMAT_AYUV64, "GST_VIDEO_FORMAT_AYUV64", "ayuv64"},
{GST_VIDEO_FORMAT_r210, "GST_VIDEO_FORMAT_r210", "r210"},
+ {GST_VIDEO_FORMAT_ENCODED, "GST_VIDEO_FORMAT_ENCODED", "encoded"},
{0, NULL, NULL}
};
GType g_define_type_id = g_enum_register_static ("GstVideoFormat", values);
@@ -119,10 +121,6 @@ gst_video_flags_get_type (void)
if (g_once_init_enter (&g_define_type_id__volatile)) {
static const GFlagsValue values[] = {
{GST_VIDEO_FLAG_NONE, "GST_VIDEO_FLAG_NONE", "none"},
- {GST_VIDEO_FLAG_INTERLACED, "GST_VIDEO_FLAG_INTERLACED", "interlaced"},
- {GST_VIDEO_FLAG_TFF, "GST_VIDEO_FLAG_TFF", "tff"},
- {GST_VIDEO_FLAG_RFF, "GST_VIDEO_FLAG_RFF", "rff"},
- {GST_VIDEO_FLAG_ONEFIELD, "GST_VIDEO_FLAG_ONEFIELD", "onefield"},
{GST_VIDEO_FLAG_VARIABLE_FPS, "GST_VIDEO_FLAG_VARIABLE_FPS",
"variable-fps"},
{0, NULL, NULL}
@@ -259,13 +257,31 @@ gst_video_color_primaries_get_type (void)
}
GType
+gst_video_frame_flags_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GFlagsValue values[] = {
+ {GST_VIDEO_FRAME_FLAG_NONE, "GST_VIDEO_FRAME_FLAG_NONE", "none"},
+ {GST_VIDEO_FRAME_FLAG_TFF, "GST_VIDEO_FRAME_FLAG_TFF", "tff"},
+ {GST_VIDEO_FRAME_FLAG_RFF, "GST_VIDEO_FRAME_FLAG_RFF", "rff"},
+ {GST_VIDEO_FRAME_FLAG_ONEFIELD, "GST_VIDEO_FRAME_FLAG_ONEFIELD",
+ "onefield"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_flags_register_static ("GstVideoFrameFlags", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
gst_video_buffer_flags_get_type (void)
{
static volatile gsize g_define_type_id__volatile = 0;
if (g_once_init_enter (&g_define_type_id__volatile)) {
static const GFlagsValue values[] = {
- {GST_VIDEO_BUFFER_FLAG_INTERLACED, "GST_VIDEO_BUFFER_FLAG_INTERLACED",
- "interlaced"},
{GST_VIDEO_BUFFER_FLAG_TFF, "GST_VIDEO_BUFFER_FLAG_TFF", "tff"},
{GST_VIDEO_BUFFER_FLAG_RFF, "GST_VIDEO_BUFFER_FLAG_RFF", "rff"},
{GST_VIDEO_BUFFER_FLAG_ONEFIELD, "GST_VIDEO_BUFFER_FLAG_ONEFIELD",
@@ -297,3 +313,108 @@ gst_color_balance_type_get_type (void)
}
return g_define_type_id__volatile;
}
+
+/* enumerations from "navigation.h" */
+GType
+gst_navigation_command_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_COMMAND_INVALID, "GST_NAVIGATION_COMMAND_INVALID",
+ "invalid"},
+ {GST_NAVIGATION_COMMAND_MENU1, "GST_NAVIGATION_COMMAND_MENU1", "menu1"},
+ {GST_NAVIGATION_COMMAND_MENU2, "GST_NAVIGATION_COMMAND_MENU2", "menu2"},
+ {GST_NAVIGATION_COMMAND_MENU3, "GST_NAVIGATION_COMMAND_MENU3", "menu3"},
+ {GST_NAVIGATION_COMMAND_MENU4, "GST_NAVIGATION_COMMAND_MENU4", "menu4"},
+ {GST_NAVIGATION_COMMAND_MENU5, "GST_NAVIGATION_COMMAND_MENU5", "menu5"},
+ {GST_NAVIGATION_COMMAND_MENU6, "GST_NAVIGATION_COMMAND_MENU6", "menu6"},
+ {GST_NAVIGATION_COMMAND_MENU7, "GST_NAVIGATION_COMMAND_MENU7", "menu7"},
+ {GST_NAVIGATION_COMMAND_LEFT, "GST_NAVIGATION_COMMAND_LEFT", "left"},
+ {GST_NAVIGATION_COMMAND_RIGHT, "GST_NAVIGATION_COMMAND_RIGHT", "right"},
+ {GST_NAVIGATION_COMMAND_UP, "GST_NAVIGATION_COMMAND_UP", "up"},
+ {GST_NAVIGATION_COMMAND_DOWN, "GST_NAVIGATION_COMMAND_DOWN", "down"},
+ {GST_NAVIGATION_COMMAND_ACTIVATE, "GST_NAVIGATION_COMMAND_ACTIVATE",
+ "activate"},
+ {GST_NAVIGATION_COMMAND_PREV_ANGLE, "GST_NAVIGATION_COMMAND_PREV_ANGLE",
+ "prev-angle"},
+ {GST_NAVIGATION_COMMAND_NEXT_ANGLE, "GST_NAVIGATION_COMMAND_NEXT_ANGLE",
+ "next-angle"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationCommand", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_navigation_query_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_QUERY_INVALID, "GST_NAVIGATION_QUERY_INVALID", "invalid"},
+ {GST_NAVIGATION_QUERY_COMMANDS, "GST_NAVIGATION_QUERY_COMMANDS",
+ "commands"},
+ {GST_NAVIGATION_QUERY_ANGLES, "GST_NAVIGATION_QUERY_ANGLES", "angles"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationQueryType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_navigation_message_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_MESSAGE_INVALID, "GST_NAVIGATION_MESSAGE_INVALID",
+ "invalid"},
+ {GST_NAVIGATION_MESSAGE_MOUSE_OVER, "GST_NAVIGATION_MESSAGE_MOUSE_OVER",
+ "mouse-over"},
+ {GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED,
+ "GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED", "commands-changed"},
+ {GST_NAVIGATION_MESSAGE_ANGLES_CHANGED,
+ "GST_NAVIGATION_MESSAGE_ANGLES_CHANGED", "angles-changed"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationMessageType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
+
+GType
+gst_navigation_event_type_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ {GST_NAVIGATION_EVENT_INVALID, "GST_NAVIGATION_EVENT_INVALID", "invalid"},
+ {GST_NAVIGATION_EVENT_KEY_PRESS, "GST_NAVIGATION_EVENT_KEY_PRESS",
+ "key-press"},
+ {GST_NAVIGATION_EVENT_KEY_RELEASE, "GST_NAVIGATION_EVENT_KEY_RELEASE",
+ "key-release"},
+ {GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS,
+ "GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS", "mouse-button-press"},
+ {GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE,
+ "GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE",
+ "mouse-button-release"},
+ {GST_NAVIGATION_EVENT_MOUSE_MOVE, "GST_NAVIGATION_EVENT_MOUSE_MOVE",
+ "mouse-move"},
+ {GST_NAVIGATION_EVENT_COMMAND, "GST_NAVIGATION_EVENT_COMMAND", "command"},
+ {0, NULL, NULL}
+ };
+ GType g_define_type_id =
+ g_enum_register_static ("GstNavigationEventType", values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+ return g_define_type_id__volatile;
+}
diff --git a/win32/common/video-enumtypes.h b/win32/common/video-enumtypes.h
index 4a9db78..dd22289 100644
--- a/win32/common/video-enumtypes.h
+++ b/win32/common/video-enumtypes.h
@@ -27,12 +27,24 @@ GType gst_video_transfer_function_get_type (void);
#define GST_TYPE_VIDEO_TRANSFER_FUNCTION (gst_video_transfer_function_get_type())
GType gst_video_color_primaries_get_type (void);
#define GST_TYPE_VIDEO_COLOR_PRIMARIES (gst_video_color_primaries_get_type())
+GType gst_video_frame_flags_get_type (void);
+#define GST_TYPE_VIDEO_FRAME_FLAGS (gst_video_frame_flags_get_type())
GType gst_video_buffer_flags_get_type (void);
#define GST_TYPE_VIDEO_BUFFER_FLAGS (gst_video_buffer_flags_get_type())
/* enumerations from "colorbalance.h" */
GType gst_color_balance_type_get_type (void);
#define GST_TYPE_COLOR_BALANCE_TYPE (gst_color_balance_type_get_type())
+
+/* enumerations from "navigation.h" */
+GType gst_navigation_command_get_type (void);
+#define GST_TYPE_NAVIGATION_COMMAND (gst_navigation_command_get_type())
+GType gst_navigation_query_type_get_type (void);
+#define GST_TYPE_NAVIGATION_QUERY_TYPE (gst_navigation_query_type_get_type())
+GType gst_navigation_message_type_get_type (void);
+#define GST_TYPE_NAVIGATION_MESSAGE_TYPE (gst_navigation_message_type_get_type())
+GType gst_navigation_event_type_get_type (void);
+#define GST_TYPE_NAVIGATION_EVENT_TYPE (gst_navigation_event_type_get_type())
G_END_DECLS
#endif /* __GST_VIDEO_ENUM_TYPES_H__ */