Codebase list gstreamer1.0 / f6697b2
Imported Upstream version 1.5.0.1+git20150513 Sebastian Dröge 9 years ago
267 changed file(s) with 4857 addition(s) and 5819 deletion(s). Raw diff Collapse all Expand all
0 Installation Instructions
1 *************************
2
3 Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
4 Inc.
5
6 Copying and distribution of this file, with or without modification,
7 are permitted in any medium without royalty provided the copyright
8 notice and this notice are preserved. This file is offered as-is,
9 without warranty of any kind.
10
011 Basic Installation
112 ==================
213
3 These are generic installation instructions.
14 Briefly, the shell command `./configure && make && make install'
15 should configure, build, and install this package. The following
16 more-detailed instructions are generic; see the `README' file for
17 instructions specific to this package. Some packages provide this
18 `INSTALL' file but do not implement all of the features documented
19 below. The lack of an optional feature in a given package is not
20 necessarily a bug. More recommendations for GNU packages can be found
21 in *note Makefile Conventions: (standards)Makefile Conventions.
422
523 The `configure' shell script attempts to guess correct values for
624 various system-dependent variables used during compilation. It uses
725 those values to create a `Makefile' in each directory of the package.
826 It may also create one or more `.h' files containing system-dependent
927 definitions. Finally, it creates a shell script `config.status' that
10 you can run in the future to recreate the current configuration, a file
11 `config.cache' that saves the results of its tests to speed up
12 reconfiguring, and a file `config.log' containing compiler output
13 (useful mainly for debugging `configure').
28 you can run in the future to recreate the current configuration, and a
29 file `config.log' containing compiler output (useful mainly for
30 debugging `configure').
31
32 It can also use an optional file (typically called `config.cache'
33 and enabled with `--cache-file=config.cache' or simply `-C') that saves
34 the results of its tests to speed up reconfiguring. Caching is
35 disabled by default to prevent problems with accidental use of stale
36 cache files.
1437
1538 If you need to do unusual things to compile the package, please try
1639 to figure out how `configure' could check whether to do them, and mail
1740 diffs or instructions to the address given in the `README' so they can
18 be considered for the next release. If at some point `config.cache'
19 contains results you don't want to keep, you may remove or edit it.
20
21 The file `configure.in' is used to create `configure' by a program
22 called `autoconf'. You only need `configure.in' if you want to change
23 it or regenerate `configure' using a newer version of `autoconf'.
24
25 The simplest way to compile this package is:
41 be considered for the next release. If you are using the cache, and at
42 some point `config.cache' contains results you don't want to keep, you
43 may remove or edit it.
44
45 The file `configure.ac' (or `configure.in') is used to create
46 `configure' by a program called `autoconf'. You need `configure.ac' if
47 you want to change it or regenerate `configure' using a newer version
48 of `autoconf'.
49
50 The simplest way to compile this package is:
2651
2752 1. `cd' to the directory containing the package's source code and type
28 `./configure' to configure the package for your system. If you're
29 using `csh' on an old version of System V, you might need to type
30 `sh ./configure' instead to prevent `csh' from trying to execute
31 `configure' itself.
32
33 Running `configure' takes awhile. While running, it prints some
34 messages telling which features it is checking for.
53 `./configure' to configure the package for your system.
54
55 Running `configure' might take a while. While running, it prints
56 some messages telling which features it is checking for.
3557
3658 2. Type `make' to compile the package.
3759
3860 3. Optionally, type `make check' to run any self-tests that come with
39 the package.
61 the package, generally using the just-built uninstalled binaries.
4062
4163 4. Type `make install' to install the programs and any data files and
42 documentation.
43
44 5. You can remove the program binaries and object files from the
64 documentation. When installing into a prefix owned by root, it is
65 recommended that the package be configured and built as a regular
66 user, and only the `make install' phase executed with root
67 privileges.
68
69 5. Optionally, type `make installcheck' to repeat any self-tests, but
70 this time using the binaries in their final installed location.
71 This target does not install anything. Running this target as a
72 regular user, particularly if the prior `make install' required
73 root privileges, verifies that the installation completed
74 correctly.
75
76 6. You can remove the program binaries and object files from the
4577 source code directory by typing `make clean'. To also remove the
4678 files that `configure' created (so you can compile the package for
4779 a different kind of computer), type `make distclean'. There is
5082 all sorts of other programs in order to regenerate files that came
5183 with the distribution.
5284
85 7. Often, you can also type `make uninstall' to remove the installed
86 files again. In practice, not all packages have tested that
87 uninstallation works correctly, even though it is required by the
88 GNU Coding Standards.
89
90 8. Some packages, particularly those that use Automake, provide `make
91 distcheck', which can by used by developers to test that all other
92 targets like `make install' and `make uninstall' work correctly.
93 This target is generally not run by end users.
94
5395 Compilers and Options
5496 =====================
5597
5698 Some systems require unusual options for compilation or linking that
57 the `configure' script does not know about. You can give `configure'
58 initial values for variables by setting them in the environment. Using
59 a Bourne-compatible shell, you can do that on the command line like
60 this:
61 CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
62
63 Or on systems that have the `env' program, you can do it like this:
64 env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
99 the `configure' script does not know about. Run `./configure --help'
100 for details on some of the pertinent environment variables.
101
102 You can give `configure' initial values for configuration parameters
103 by setting variables in the command line or in the environment. Here
104 is an example:
105
106 ./configure CC=c99 CFLAGS=-g LIBS=-lposix
107
108 *Note Defining Variables::, for more details.
65109
66110 Compiling For Multiple Architectures
67111 ====================================
68112
69113 You can compile the package for more than one kind of computer at the
70114 same time, by placing the object files for each architecture in their
71 own directory. To do this, you must use a version of `make' that
72 supports the `VPATH' variable, such as GNU `make'. `cd' to the
115 own directory. To do this, you can use GNU `make'. `cd' to the
73116 directory where you want the object files and executables to go and run
74117 the `configure' script. `configure' automatically checks for the
75 source code in the directory that `configure' is in and in `..'.
76
77 If you have to use a `make' that does not supports the `VPATH'
78 variable, you have to compile the package for one architecture at a time
79 in the source code directory. After you have installed the package for
80 one architecture, use `make distclean' before reconfiguring for another
81 architecture.
118 source code in the directory that `configure' is in and in `..'. This
119 is known as a "VPATH" build.
120
121 With a non-GNU `make', it is safer to compile the package for one
122 architecture at a time in the source code directory. After you have
123 installed the package for one architecture, use `make distclean' before
124 reconfiguring for another architecture.
125
126 On MacOS X 10.5 and later systems, you can create libraries and
127 executables that work on multiple system types--known as "fat" or
128 "universal" binaries--by specifying multiple `-arch' options to the
129 compiler but only a single `-arch' option to the preprocessor. Like
130 this:
131
132 ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
133 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
134 CPP="gcc -E" CXXCPP="g++ -E"
135
136 This is not guaranteed to produce working output in all cases, you
137 may have to build one architecture at a time and combine the results
138 using the `lipo' tool if you have problems.
82139
83140 Installation Names
84141 ==================
85142
86 By default, `make install' will install the package's files in
87 `/usr/local/bin', `/usr/local/man', etc. You can specify an
88 installation prefix other than `/usr/local' by giving `configure' the
89 option `--prefix=PATH'.
143 By default, `make install' installs the package's commands under
144 `/usr/local/bin', include files under `/usr/local/include', etc. You
145 can specify an installation prefix other than `/usr/local' by giving
146 `configure' the option `--prefix=PREFIX', where PREFIX must be an
147 absolute file name.
90148
91149 You can specify separate installation prefixes for
92150 architecture-specific files and architecture-independent files. If you
93 give `configure' the option `--exec-prefix=PATH', the package will use
94 PATH as the prefix for installing programs and libraries.
95 Documentation and other data files will still use the regular prefix.
151 pass the option `--exec-prefix=PREFIX' to `configure', the package uses
152 PREFIX as the prefix for installing programs and libraries.
153 Documentation and other data files still use the regular prefix.
96154
97155 In addition, if you use an unusual directory layout you can give
98 options like `--bindir=PATH' to specify different values for particular
156 options like `--bindir=DIR' to specify different values for particular
99157 kinds of files. Run `configure --help' for a list of the directories
100 you can set and what kinds of files go in them.
158 you can set and what kinds of files go in them. In general, the
159 default for these options is expressed in terms of `${prefix}', so that
160 specifying just `--prefix' will affect all of the other directory
161 specifications that were not explicitly provided.
162
163 The most portable way to affect installation locations is to pass the
164 correct locations to `configure'; however, many packages provide one or
165 both of the following shortcuts of passing variable assignments to the
166 `make install' command line to change installation locations without
167 having to reconfigure or recompile.
168
169 The first method involves providing an override variable for each
170 affected directory. For example, `make install
171 prefix=/alternate/directory' will choose an alternate location for all
172 directory configuration variables that were expressed in terms of
173 `${prefix}'. Any directories that were specified during `configure',
174 but not in terms of `${prefix}', must each be overridden at install
175 time for the entire installation to be relocated. The approach of
176 makefile variable overrides for each directory variable is required by
177 the GNU Coding Standards, and ideally causes no recompilation.
178 However, some platforms have known limitations with the semantics of
179 shared libraries that end up requiring recompilation when using this
180 method, particularly noticeable in packages that use GNU Libtool.
181
182 The second method involves providing the `DESTDIR' variable. For
183 example, `make install DESTDIR=/alternate/directory' will prepend
184 `/alternate/directory' before all installation names. The approach of
185 `DESTDIR' overrides is not required by the GNU Coding Standards, and
186 does not work on platforms that have drive letters. On the other hand,
187 it does better at avoiding recompilation issues, and works well even
188 when some directory options were not specified in terms of `${prefix}'
189 at `configure' time.
190
191 Optional Features
192 =================
101193
102194 If the package supports it, you can cause programs to be installed
103195 with an extra prefix or suffix on their names by giving `configure' the
104196 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
105
106 Optional Features
107 =================
108197
109198 Some packages pay attention to `--enable-FEATURE' options to
110199 `configure', where FEATURE indicates an optional part of the package.
118207 you can use the `configure' options `--x-includes=DIR' and
119208 `--x-libraries=DIR' to specify their locations.
120209
210 Some packages offer the ability to configure how verbose the
211 execution of `make' will be. For these packages, running `./configure
212 --enable-silent-rules' sets the default to minimal output, which can be
213 overridden with `make V=1'; while running `./configure
214 --disable-silent-rules' sets the default to verbose, which can be
215 overridden with `make V=0'.
216
217 Particular systems
218 ==================
219
220 On HP-UX, the default C compiler is not ANSI C compatible. If GNU
221 CC is not installed, it is recommended to use the following options in
222 order to use an ANSI C compiler:
223
224 ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
225
226 and if that doesn't work, install pre-built binaries of GCC for HP-UX.
227
228 HP-UX `make' updates targets which have the same time stamps as
229 their prerequisites, which makes it generally unusable when shipped
230 generated files such as `configure' are involved. Use GNU `make'
231 instead.
232
233 On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
234 parse its `<wchar.h>' header file. The option `-nodtk' can be used as
235 a workaround. If GNU CC is not installed, it is therefore recommended
236 to try
237
238 ./configure CC="cc"
239
240 and if that doesn't work, try
241
242 ./configure CC="cc -nodtk"
243
244 On Solaris, don't put `/usr/ucb' early in your `PATH'. This
245 directory contains several dysfunctional programs; working variants of
246 these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
247 in your `PATH', put it _after_ `/usr/bin'.
248
249 On Haiku, software installed for all users goes in `/boot/common',
250 not `/usr/local'. It is recommended to use the following options:
251
252 ./configure --prefix=/boot/common
253
121254 Specifying the System Type
122255 ==========================
123256
124 There may be some features `configure' can not figure out
125 automatically, but needs to determine by the type of host the package
126 will run on. Usually `configure' can figure that out, but if it prints
127 a message saying it can not guess the host type, give it the
128 `--host=TYPE' option. TYPE can either be a short name for the system
129 type, such as `sun4', or a canonical name with three fields:
257 There may be some features `configure' cannot figure out
258 automatically, but needs to determine by the type of machine the package
259 will run on. Usually, assuming the package is built to be run on the
260 _same_ architectures, `configure' can figure that out, but if it prints
261 a message saying it cannot guess the machine type, give it the
262 `--build=TYPE' option. TYPE can either be a short name for the system
263 type, such as `sun4', or a canonical name which has the form:
264
130265 CPU-COMPANY-SYSTEM
131266
132 See the file `config.sub' for the possible values of each field. If
267 where SYSTEM can have one of these forms:
268
269 OS
270 KERNEL-OS
271
272 See the file `config.sub' for the possible values of each field. If
133273 `config.sub' isn't included in this package, then this package doesn't
134 need to know the host type.
135
136 If you are building compiler tools for cross-compiling, you can also
137 use the `--target=TYPE' option to select the type of system they will
138 produce code for and the `--build=TYPE' option to select the type of
139 system on which you are compiling the package.
274 need to know the machine type.
275
276 If you are _building_ compiler tools for cross-compiling, you should
277 use the option `--target=TYPE' to select the type of system they will
278 produce code for.
279
280 If you want to _use_ a cross compiler, that generates code for a
281 platform different from the build platform, you should specify the
282 "host" platform (i.e., that on which the generated programs will
283 eventually be run) with `--host=TYPE'.
140284
141285 Sharing Defaults
142286 ================
149293 `CONFIG_SITE' environment variable to the location of the site script.
150294 A warning: not all `configure' scripts look for a site script.
151295
152 Operation Controls
296 Defining Variables
153297 ==================
298
299 Variables not defined in a site shell script can be set in the
300 environment passed to `configure'. However, some packages may run
301 configure again during the build, and the customized values of these
302 variables may be lost. In order to avoid this problem, you should set
303 them in the `configure' command line, using `VAR=value'. For example:
304
305 ./configure CC=/usr/local2/bin/gcc
306
307 causes the specified `gcc' to be used as the C compiler (unless it is
308 overridden in the site shell script).
309
310 Unfortunately, this technique does not work for `CONFIG_SHELL' due to
311 an Autoconf limitation. Until the limitation is lifted, you can use
312 this workaround:
313
314 CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
315
316 `configure' Invocation
317 ======================
154318
155319 `configure' recognizes the following options to control how it
156320 operates.
157321
322 `--help'
323 `-h'
324 Print a summary of all of the options to `configure', and exit.
325
326 `--help=short'
327 `--help=recursive'
328 Print a summary of the options unique to this package's
329 `configure', and exit. The `short' variant lists options used
330 only in the top level, while the `recursive' variant lists options
331 also present in any nested packages.
332
333 `--version'
334 `-V'
335 Print the version of Autoconf used to generate the `configure'
336 script, and exit.
337
158338 `--cache-file=FILE'
159 Use and save the results of the tests in FILE instead of
160 `./config.cache'. Set FILE to `/dev/null' to disable caching, for
161 debugging `configure'.
162
163 `--help'
164 Print a summary of the options to `configure', and exit.
339 Enable the cache: use and save the results of the tests in FILE,
340 traditionally `config.cache'. FILE defaults to `/dev/null' to
341 disable caching.
342
343 `--config-cache'
344 `-C'
345 Alias for `--cache-file=config.cache'.
165346
166347 `--quiet'
167348 `--silent'
174355 Look for the package's source code in directory DIR. Usually
175356 `configure' can determine that directory automatically.
176357
177 `--version'
178 Print the version of Autoconf used to generate the `configure'
179 script, and exit.
180
181 `configure' also accepts some other, not widely useful, options.
358 `--prefix=DIR'
359 Use DIR as the installation prefix. *note Installation Names::
360 for more details, including other options available for fine-tuning
361 the installation locations.
362
363 `--no-create'
364 `-n'
365 Run the configure checks, but stop before creating any output
366 files.
367
368 `configure' also accepts some other, not widely useful, options. Run
369 `configure --help' for more details.
0 DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-docbook --with-bash-completion-dir=no
0 DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-docbook
11
22 # note: keep in sync with configure.ac
33 ACLOCAL_AMFLAGS = -I m4 -I common/m4
204204
205205 CRUFT_DIRS = \
206206 $(top_builddir)/tests/examples/xml \
207 $(top_builddir)/tests/examples/launch \
208 $(top_builddir)/tests/examples/metadata \
209 $(top_builddir)/tests/examples/queue \
210 $(top_builddir)/tests/examples/typefind \
207211 $(top_builddir)/gst/tmp-introspect* \
208212 $(top_builddir)/libs/gst/*/tmp-introspect*
209213
556556 top_build_prefix = @top_build_prefix@
557557 top_builddir = @top_builddir@
558558 top_srcdir = @top_srcdir@
559 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-docbook --with-bash-completion-dir=no
559 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-docbook
560560 aclocaldir = $(datadir)/aclocal
561561 aclocal_DATA = gst-element-check-@GST_API_VERSION@.m4
562562 SUBDIRS = pkgconfig gst libs plugins tests docs po m4 common data \
641641
642642 CRUFT_DIRS = \
643643 $(top_builddir)/tests/examples/xml \
644 $(top_builddir)/tests/examples/launch \
645 $(top_builddir)/tests/examples/metadata \
646 $(top_builddir)/tests/examples/queue \
647 $(top_builddir)/tests/examples/typefind \
644648 $(top_builddir)/gst/tmp-introspect* \
645649 $(top_builddir)/libs/gst/*/tmp-introspect*
646650
5656
5757 printf "+ check for build tools"
5858 if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else echo; fi
59 version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 " \
59 version_check "autoreconf" "autoreconf " \
6060 "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 68 || DIE=1
61 version_check "automake" "$AUTOMAKE automake automake-1.11" \
62 "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1
63 version_check "autopoint" "autopoint" \
64 "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 17 || DIE=1
65 version_check "libtoolize" "$LIBTOOLIZE libtoolize glibtoolize" \
66 "ftp://ftp.gnu.org/pub/gnu/libtool/" 2 2 6 || DIE=1
6761 version_check "pkg-config" "" \
6862 "http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1
69
70 die_check $DIE
71
72 aclocal_check || DIE=1
73 autoheader_check || DIE=1
7463
7564 die_check $DIE
7665
8776
8877 # autopoint
8978 if test -d po ; then
90 tool_run "$autopoint" "--force"
79 tool_run "autopoint" "--force"
9180 fi
9281
9382 # aclocal
9483 if test -f acinclude.m4; then rm acinclude.m4; fi
9584
96 tool_run "$libtoolize" "--copy --force"
97 tool_run "$aclocal" "-I m4 -I common/m4 $ACLOCAL_FLAGS"
98 tool_run "$autoheader"
99
100 # touch the stamp-h.in build stamp so we don't re-run autoheader in maintainer mode
101 echo timestamp > stamp-h.in 2> /dev/null
102
103 tool_run "$autoconf"
104 debug "automake: $automake"
105 tool_run "$automake" "--add-missing --copy"
85 autoreconf --force --install || exit 1
10686
10787 test -n "$NOCONFIGURE" && {
10888 echo "+ skipping configure stage for package $package, as requested."
1515 # run any given test by running make test.check
1616 # if the test fails, run it again at at least debug level 2
1717 %.check: %
18 @$(TESTS_ENVIRONMENT) \
18 @$(AM_TESTS_ENVIRONMENT) \
1919 CK_DEFAULT_TIMEOUT=20 \
2020 $* || \
21 $(TESTS_ENVIRONMENT) \
21 $(AM_TESTS_ENVIRONMENT) \
2222 GST_DEBUG=$$GST_DEBUG,*:2 \
2323 CK_DEFAULT_TIMEOUT=20 \
2424 $*
2525
2626 # just like 'check', but don't run it again if it fails (useful for debugging)
2727 %.check-norepeat: %
28 @$(TESTS_ENVIRONMENT) \
28 @$(AM_TESTS_ENVIRONMENT) \
2929 CK_DEFAULT_TIMEOUT=20 \
3030 $*
3131
3232 # run any given test in a loop
3333 %.torture: %
3434 @for i in `seq 1 $(LOOPS)`; do \
35 $(TESTS_ENVIRONMENT) \
35 $(AM_TESTS_ENVIRONMENT) \
3636 CK_DEFAULT_TIMEOUT=20 \
3737 $*; done
3838
3939 # run any given test in an infinite loop
4040 %.forever: %
4141 @while true; do \
42 $(TESTS_ENVIRONMENT) \
42 $(AM_TESTS_ENVIRONMENT) \
4343 CK_DEFAULT_TIMEOUT=20 \
4444 $* || break; done
4545
4646 # valgrind any given test by running make test.valgrind
4747 %.valgrind: %
4848 @valgrind_log=$(subst /,-,$*-valgrind.log); \
49 $(TESTS_ENVIRONMENT) \
49 $(AM_TESTS_ENVIRONMENT) \
5050 CK_DEFAULT_TIMEOUT=360 \
5151 G_SLICE=always-malloc \
5252 $(LIBTOOL) --mode=execute \
6464
6565 # valgrind any given test and generate suppressions for it
6666 %.valgrind.gen-suppressions: %
67 @$(TESTS_ENVIRONMENT) \
67 @$(AM_TESTS_ENVIRONMENT) \
6868 CK_DEFAULT_TIMEOUT=360 \
6969 G_SLICE=always-malloc \
7070 $(LIBTOOL) --mode=execute \
9494
9595 # gdb any given test by running make test.gdb
9696 %.gdb: %
97 @$(TESTS_ENVIRONMENT) \
97 @$(AM_TESTS_ENVIRONMENT) \
9898 CK_FORK=no \
9999 $(LIBTOOL) --mode=execute \
100100 gdb $*
204204 GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
205205 inspect:
206206 @echo "Inspecting features ..."
207 @for e in `$(TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 \
207 @for e in `$(AM_TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 \
208208 | cut -d: -f2`; \
209209 do echo Inspecting $$e; \
210210 $(GST_INSPECT) $$e > /dev/null 2>&1; done
168168 return 1;
169169 }
170170
171 aclocal_check ()
172 {
173 # normally aclocal is part of automake
174 # so we expect it to be in the same place as automake
175 # so if a different automake is supplied, we need to adapt as well
176 # so how's about replacing automake with aclocal in the set var,
177 # and saving that in $aclocal ?
178 # note, this will fail if the actual automake isn't called automake*
179 # or if part of the path before it contains it
180 if [ -z "$automake" ]; then
181 echo "Error: no automake variable set !"
182 return 1
183 else
184 aclocal=`echo $automake | sed s/automake/aclocal/`
185 debug "aclocal: $aclocal"
186 if [ "$aclocal" != "aclocal" ];
187 then
188 CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal"
189 fi
190 if [ ! -x `which $aclocal` ]; then
191 echo "Error: cannot execute $aclocal !"
192 return 1
193 fi
194 fi
195 }
196
197 autoheader_check ()
198 {
199 # same here - autoheader is part of autoconf
200 # use the same voodoo
201 if [ -z "$autoconf" ]; then
202 echo "Error: no autoconf variable set !"
203 return 1
204 else
205 autoheader=`echo $autoconf | sed s/autoconf/autoheader/`
206 debug "autoheader: $autoheader"
207 if [ "$autoheader" != "autoheader" ];
208 then
209 CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader"
210 fi
211 if [ ! -x `which $autoheader` ]; then
212 echo "Error: cannot execute $autoheader !"
213 return 1
214 fi
215 fi
216
217 }
218
219171 die_check ()
220172 {
221173 # call with $DIE
39713971 timer_create(evp)
39723972 fun:timer_create@@GLIBC_2.3.3
39733973 }
3974
3975 {
3976 closures aren't valgrind friendly (bgo#739850)
3977 Memcheck:Leak
3978 match-leak-kinds: possible
3979 fun:calloc
3980 ...
3981 fun:g_cclosure_new
3982 }
3983
3984 {
3985 closures aren't valgrind friendly (bgo#739850)
3986 Memcheck:Leak
3987 match-leak-kinds: possible
3988 fun:malloc
3989 ...
3990 fun:g_closure_add_invalidate_notifier
3991 }
3992
3993 {
3994 closures aren't valgrind friendly (bgo#739850)
3995 Memcheck:Leak
3996 match-leak-kinds: possible
3997 fun:calloc
3998 ...
3999 fun:g_closure_new_simple
4000 }
4001
4002 {
4003 glib/giomodules2 (from libsoup.supp)
4004 Memcheck:Leak
4005 ...
4006 fun:_g_io_module_get_default
4007 }
1581215812 fi
1581315813
1581415814
15815 if test "x$with_bash_completion_dir" = "xyes"; then
15815 if test "x$with_bash_completion_dir" = "xyes"
15816 then
15817 extra_args=
15818
15819 if test "x$prefix" != "xNONE"
15820 then
15821 extra_args="--define-variable=prefix=\"$prefix\""
15822 fi
15823
1581615824
1581715825 pkg_failed=no
1581815826 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BASH_COMPLETION" >&5
1588215890 BASH_COMPLETION_LIBS=$pkg_cv_BASH_COMPLETION_LIBS
1588315891 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1588415892 $as_echo "yes" >&6; }
15885 BASH_COMPLETION_DIR="`pkg-config --variable=completionsdir bash-completion`"
15893 BASH_COMPLETION_DIR="`eval pkg-config $extra_args --variable=completionsdir bash-completion`"
1588615894 fi
1588715895
1588815896 pkg_failed=no
1595315961 BASH_COMPLETION_LIBS=$pkg_cv_BASH_COMPLETION_LIBS
1595415962 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1595515963 $as_echo "yes" >&6; }
15956 BASH_HELPERS_DIR="`pkg-config --variable=helpersdir bash-completion`"
15964 BASH_HELPERS_DIR="`eval pkg-config $extra_args --variable=helpersdir bash-completion`"
1595715965 fi
1595815966 else
1595915967 BASH_COMPLETION_DIR="$with_bash_completion_dir/completions"
2745327461
2745427462
2745527463
27456 ac_config_files="$ac_config_files Makefile data/Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile gst/printf/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/internal-check.h:libs/gst/check/libcheck/check.h.in libs/gst/controller/Makefile libs/gst/helpers/Makefile libs/gst/net/Makefile plugins/Makefile plugins/elements/Makefile po/Makefile.in tests/Makefile tests/benchmarks/Makefile tests/check/Makefile tests/misc/Makefile tests/examples/Makefile tests/examples/adapter/Makefile tests/examples/controller/Makefile tests/examples/stepping/Makefile tests/examples/helloworld/Makefile tests/examples/launch/Makefile tests/examples/manual/Makefile tests/examples/memory/Makefile tests/examples/metadata/Makefile tests/examples/netclock/Makefile tests/examples/queue/Makefile tests/examples/streamiddemux/Makefile tests/examples/streams/Makefile tests/examples/typefind/Makefile tools/Makefile common/Makefile common/m4/Makefile docs/Makefile docs/design/Makefile docs/faq/Makefile docs/gst/Makefile docs/gst/gstreamer.types docs/libs/Makefile docs/plugins/Makefile docs/manual/Makefile docs/pwg/Makefile docs/slides/Makefile docs/xsl/Makefile docs/version.entities m4/Makefile pkgconfig/Makefile stamp.h pkgconfig/gstreamer.pc pkgconfig/gstreamer-uninstalled.pc pkgconfig/gstreamer-base.pc pkgconfig/gstreamer-base-uninstalled.pc pkgconfig/gstreamer-check.pc pkgconfig/gstreamer-check-uninstalled.pc pkgconfig/gstreamer-controller.pc pkgconfig/gstreamer-controller-uninstalled.pc pkgconfig/gstreamer-net.pc pkgconfig/gstreamer-net-uninstalled.pc gstreamer.spec"
27464 ac_config_files="$ac_config_files Makefile data/Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile gst/printf/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/internal-check.h:libs/gst/check/libcheck/check.h.in libs/gst/controller/Makefile libs/gst/helpers/Makefile libs/gst/net/Makefile plugins/Makefile plugins/elements/Makefile po/Makefile.in tests/Makefile tests/benchmarks/Makefile tests/check/Makefile tests/misc/Makefile tests/examples/Makefile tests/examples/adapter/Makefile tests/examples/controller/Makefile tests/examples/stepping/Makefile tests/examples/helloworld/Makefile tests/examples/manual/Makefile tests/examples/memory/Makefile tests/examples/netclock/Makefile tests/examples/streamiddemux/Makefile tests/examples/streams/Makefile tools/Makefile common/Makefile common/m4/Makefile docs/Makefile docs/design/Makefile docs/faq/Makefile docs/gst/Makefile docs/gst/gstreamer.types docs/libs/Makefile docs/plugins/Makefile docs/manual/Makefile docs/pwg/Makefile docs/slides/Makefile docs/xsl/Makefile docs/version.entities m4/Makefile pkgconfig/Makefile stamp.h pkgconfig/gstreamer.pc pkgconfig/gstreamer-uninstalled.pc pkgconfig/gstreamer-base.pc pkgconfig/gstreamer-base-uninstalled.pc pkgconfig/gstreamer-check.pc pkgconfig/gstreamer-check-uninstalled.pc pkgconfig/gstreamer-controller.pc pkgconfig/gstreamer-controller-uninstalled.pc pkgconfig/gstreamer-net.pc pkgconfig/gstreamer-net-uninstalled.pc gstreamer.spec"
2745727465
2745827466
2745927467 sed \
2889228900 "tests/examples/controller/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/controller/Makefile" ;;
2889328901 "tests/examples/stepping/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/stepping/Makefile" ;;
2889428902 "tests/examples/helloworld/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/helloworld/Makefile" ;;
28895 "tests/examples/launch/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/launch/Makefile" ;;
2889628903 "tests/examples/manual/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/manual/Makefile" ;;
2889728904 "tests/examples/memory/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/memory/Makefile" ;;
28898 "tests/examples/metadata/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/metadata/Makefile" ;;
2889928905 "tests/examples/netclock/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/netclock/Makefile" ;;
28900 "tests/examples/queue/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/queue/Makefile" ;;
2890128906 "tests/examples/streamiddemux/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/streamiddemux/Makefile" ;;
2890228907 "tests/examples/streams/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/streams/Makefile" ;;
28903 "tests/examples/typefind/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/typefind/Makefile" ;;
2890428908 "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
2890528909 "common/Makefile") CONFIG_FILES="$CONFIG_FILES common/Makefile" ;;
2890628910 "common/m4/Makefile") CONFIG_FILES="$CONFIG_FILES common/m4/Makefile" ;;
0 AC_PREREQ([2.68])
0 AC_PREREQ([2.69])
11
22 dnl initialize autoconf
33 dnl when going to/from release please set the nano (fourth number) right !
77 AG_GST_INIT
88
99 dnl initialize automake (we require GNU make)
10 AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar subdir-objects])
10 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
1111
1212 dnl define PACKAGE_VERSION_* variables
1313 AS_VERSION
2727 dnl sets host_* variables
2828 AC_CANONICAL_HOST
2929
30 dnl use pretty build output with automake >= 1.11
31 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
32 [AM_DEFAULT_VERBOSITY=1
33 AC_SUBST(AM_DEFAULT_VERBOSITY)])
30 dnl use pretty build output by default
31 AM_SILENT_RULES([yes])
3432
3533 dnl GStreamer versioning, this is mostly informational
3634 GST_VERSION_MAJOR=$PACKAGE_VERSION_MAJOR
140138 [],
141139 [with_bash_completion_dir=yes])
142140
143 if test "x$with_bash_completion_dir" = "xyes"; then
141 if test "x$with_bash_completion_dir" = "xyes"
142 then
143 extra_args=
144
145 if test "x$prefix" != "xNONE"
146 then
147 extra_args="--define-variable=prefix=\"$prefix\""
148 fi
149
144150 PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
145 [BASH_COMPLETION_DIR="`pkg-config --variable=completionsdir bash-completion`"],
151 [BASH_COMPLETION_DIR="`eval pkg-config $extra_args --variable=completionsdir bash-completion`"],
146152 [BASH_COMPLETION_DIR="$datadir/bash-completion/completions"])
147153 PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
148 [BASH_HELPERS_DIR="`pkg-config --variable=helpersdir bash-completion`"],
154 [BASH_HELPERS_DIR="`eval pkg-config $extra_args --variable=helpersdir bash-completion`"],
149155 [BASH_HELPERS_DIR="$datadir/bash-completion/helpers"])
150156 else
151157 BASH_COMPLETION_DIR="$with_bash_completion_dir/completions"
832838 tests/examples/controller/Makefile
833839 tests/examples/stepping/Makefile
834840 tests/examples/helloworld/Makefile
835 tests/examples/launch/Makefile
836841 tests/examples/manual/Makefile
837842 tests/examples/memory/Makefile
838 tests/examples/metadata/Makefile
839843 tests/examples/netclock/Makefile
840 tests/examples/queue/Makefile
841844 tests/examples/streamiddemux/Makefile
842845 tests/examples/streams/Makefile
843 tests/examples/typefind/Makefile
844846 tools/Makefile
845847 common/Makefile
846848 common/m4/Makefile
1717 # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
1818 # Boston, MA 02110-1301, USA.
1919
20 HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
20 _GST_HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
2121
22 if [[ ! -d "$HELPERDIR" ]]; then
23 HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
22 if [[ ! -d "$_GST_HELPERDIR" ]]; then
23 _GST_HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
2424 else
25 HELPERDIR=`cd "$HELPERDIR"; pwd`
25 _GST_HELPERDIR=`cd "$_GST_HELPERDIR"; pwd`
2626 fi
2727
2828 # Common definitions
29 . "$HELPERDIR"/gst
29 . "$_GST_HELPERDIR"/gst
3030
31 HELPER="$HELPERDIR/gst-completion-helper-1.0"
31 _GST_HELPER="$_GST_HELPERDIR/gst-completion-helper-1.0"
3232
33 _inspect_all_arguments ()
33 _gst_inspect_all_arguments ()
3434 {
3535 COMPREPLY=( $(compgen -W "$(gst-inspect-1.0 --help-all | grep -oh '[[:graph:]]*--[[:graph:]]*' | cut -d'=' -f1)" -- $cur) )
3636 }
3737
38 _inspect_all_elements ()
38 _gst_inspect_all_elements ()
3939 {
40 COMPREPLY=( $(compgen -W "$($HELPER -l)" -- $cur) )
40 COMPREPLY=( $(compgen -W "$($_GST_HELPER -l)" -- $cur) )
4141 }
4242
43 _gstinspect___atleast_version () { _mandatory__argument; }
43 _gstinspect___atleast_version () { _gst_mandatory_argument; }
4444
4545 _gstinspect___exists ()
4646 {
47 _inspect_all_elements
47 _gst_inspect_all_elements
4848 }
4949
5050 __inspect_main ()
5959 then
6060 command="$var"
6161 fi
62 i=$[$i+1]
62 i=$(($i+1))
6363 done
6464
6565 if [[ "$command" == "--gst"* ]]; then
7373 function_exists=$?
7474
7575 if [[ "$cur" == "--"* ]]; then
76 _inspect_all_arguments
76 _gst_inspect_all_arguments
7777 elif [ $function_exists -eq 0 ]
7878 then
7979 $completion_func
8080 else
81 _inspect_all_elements
81 _gst_inspect_all_elements
8282 fi
8383 }
8484
85 __inspect_func_wrap ()
85 _gst_inspect_func_wrap ()
8686 {
8787 local cur prev
8888 cur="${COMP_WORDS[COMP_CWORD]}"
9393 # Setup completion for certain functions defined above by setting common
9494 # variables and workarounds.
9595 # This is NOT a public function; use at your own risk.
96 __inspect_complete ()
96 _gst_inspect_complete ()
9797 {
9898 local wrapper="__inspect_wrap${2}"
99 eval "$wrapper () { __inspect_func_wrap $2 ; }"
99 eval "$wrapper () { _gst_inspect_func_wrap $2 ; }"
100100 complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
101101 || complete -o default -o nospace -F $wrapper $1
102102 }
103103
104 __inspect_complete gst-inspect-1.0 __inspect_main
104 _gst_inspect_complete gst-inspect-1.0 __inspect_main
1717 # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
1818 # Boston, MA 02110-1301, USA.
1919
20 HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
20 _GST_HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
2121
22 if [[ ! -d "$HELPERDIR" ]]; then
23 HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
22 if [[ ! -d "$_GST_HELPERDIR" ]]; then
23 _GST_HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
2424 else
25 HELPERDIR=`cd "$HELPERDIR"; pwd`
25 _GST_HELPERDIR=`cd "$_GST_HELPERDIR"; pwd`
2626 fi
2727
2828 # Common definitions
29 . "$HELPERDIR"/gst
29 . "$_GST_HELPERDIR"/gst
3030
31 HELPER="$HELPERDIR/gst-completion-helper-1.0"
31 _GST_HELPER="$_GST_HELPERDIR/gst-completion-helper-1.0"
3232
33 _launch_all_arguments ()
33 _gst_launch_all_arguments ()
3434 {
3535 COMPREPLY=( $(compgen -W "$(gst-launch-1.0 --help-all | grep -oh '[[:graph:]]*--[[:graph:]]*' | cut -d'=' -f1)" -- $cur) )
3636 }
3737
38 _complete_compatible_elements ()
38 _gst_complete_compatible_elements ()
3939 {
40 COMPREPLY=( $(compgen -W "$($HELPER --compatible-with $previous_element)" -- $cur) )
40 COMPREPLY=( $(compgen -W "$($_GST_HELPER --compatible-with $previous_element)" -- $cur) )
4141 }
4242
43 _complete_all_elements ()
43 _gst_complete_all_elements ()
4444 {
45 COMPREPLY=( $(compgen -W "$($HELPER -l)" -- $cur) )
45 COMPREPLY=( $(compgen -W "$($_GST_HELPER -l)" -- $cur) )
4646 }
4747
48 _complete_element_properties ()
48 _gst_complete_element_properties ()
4949 {
50 COMPREPLY=( $(compgen -W "$($HELPER --element-properties $previous_element)" -- $cur) )
50 COMPREPLY=( $(compgen -W "$($_GST_HELPER --element-properties $previous_element)" -- $cur) )
5151 }
5252
53 _gstlaunch___exclude_ () { _mandatory__argument; }
53 _gstlaunch___exclude_ () { _gst_mandatory_argument; }
5454
55 __launch_main ()
55 _gst_launch_main ()
5656 {
5757 local i=1 command function_exists previous_element have_previous_element=0 completion_func
5858
6464 then
6565 command="$var"
6666 fi
67 i=$[$i+1]
67 i=$(($i+1))
6868 done
6969
7070 i=1
7575
7676 if [[ "$var" == "--"* ]]
7777 then
78 i=$[$i+1]
78 i=$(($i+1))
7979 continue
8080 fi
8181
8585 previous_element="$var"
8686 have_previous_element=1
8787 fi
88 i=$[$i+1]
88 i=$(($i+1))
8989 done
9090
9191 if [[ "$command" == "--gst"* ]]; then
105105 function_exists=$?
106106
107107 if [[ "$cur" == "--"* ]]; then
108 _launch_all_arguments
108 _gst_launch_all_arguments
109109 elif [ $function_exists -eq 0 ]
110110 then
111111 $completion_func
112112 elif [ $have_previous_element -ne 0 ] && [[ "$prev" == "!" ]]
113113 then
114 _complete_compatible_elements
114 _gst_complete_compatible_elements
115115 elif [ $have_previous_element -ne 0 ]
116116 then
117 _complete_element_properties
117 _gst_complete_element_properties
118118 else
119 _complete_all_elements
119 _gst_complete_all_elements
120120 fi
121121 }
122122
123 __launch_func_wrap ()
123 _gst_launch_func_wrap ()
124124 {
125125 local cur prev
126126 cur="${COMP_WORDS[COMP_CWORD]}"
131131 # Setup completion for certain functions defined above by setting common
132132 # variables and workarounds.
133133 # This is NOT a public function; use at your own risk.
134 __launch_complete ()
134 _gst_launch_complete ()
135135 {
136136 local wrapper="__launch_wrap${2}"
137 eval "$wrapper () { __launch_func_wrap $2 ; }"
137 eval "$wrapper () { _gst_launch_func_wrap $2 ; }"
138138 complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
139139 || complete -o default -o nospace -F $wrapper $1
140140 }
141141
142 __launch_complete gst-launch-1.0 __launch_main
142 _gst_launch_complete gst-launch-1.0 _gst_launch_main
7777 The GStreamer core provides a GstSystemClock based on the system time.
7878 Asynchronous callbacks are scheduled from an internal thread.
7979
80 Clock implementors are encouraged to subclass this systemclock as it
80 Clock implementers are encouraged to subclass this systemclock as it
8181 implements the async notification.
8282
8383 Subclasses can however override all of the important methods for sync and
1313
1414 Context types
1515 ~~~~~~~~~~~~~
16 Context type names should be unique and be put in appropiate namespaces,
16 Context type names should be unique and be put in appropriate namespaces,
1717 to prevent name conflicts, e.g. "gst.egl.EGLDisplay". Only one specific
1818 type is allowed per context type name.
1919
2424 do the following steps until one succeeds:
2525
2626 1) Check if the element already has a context of the specific type,
27 i.e. it was previoulsy set via gst_element_set_context().
27 i.e. it was previously set via gst_element_set_context().
2828
2929 2) Query downstream with GST_QUERY_CONTEXT for the context and check if
3030 downstream already has a context of the specific type
11 -------------------------
22
33 Due to the potential for exponential growth, several abbreviating conventions will be used throughout this
4 documentation. These conventions have grown primarily from extremely in-depth discussions of the architecure in IRC.
4 documentation. These conventions have grown primarily from extremely in-depth discussions of the architecture in IRC.
55 This has verified the safety of these conventions, if used properly. There are no known namespace conflicts as long as
66 context is rigorously observed.
77
3232 Drawing conventions
3333 ~~~~~~~~~~~~~~~~~~~
3434
35 When drawing pictures the folowing conventions apply:
35 When drawing pictures the following conventions apply:
3636
3737 objects
3838 ^^^^^^^
1616 - PAUSED: The element should be ready to accept and process data. Sink
1717 elements however only accept one buffer and then block.
1818 - PLAYING: The same as PAUSED except for live sources and sinks. Sinks accept
19 and rendering data. Live sources produce data.
19 and render data. Live sources produce data.
2020
2121 We call the sequence NULL->PLAYING an upwards state change and PLAYING->NULL
2222 a downwards state change.
2929
3030 NULL -> READY
3131 - The element must check if the resources it needs are available.
32 Device sinks and -sources typically try to probe the device to constrain
32 Device sinks and sources typically try to probe the device to constrain
3333 their caps.
3434 - The element opens the device, this is needed if the previous step requires
3535 the device to be opened.
161161 the pending state value. The function returns GST_STATE_NO_PREROLL.
162162
163163 - If the element returned FAILURE to the previous _set_state() call, this
164 funciton will return FAILURE with the state set to the current state of
164 function will return FAILURE with the state set to the current state of
165165 the element and the pending state set to the value used in the last call
166166 of _set_state().
167167
297297 Locking overview (element)
298298 ~~~~~~~~~~~~~~~~~~~~~~~~~~
299299
300 * Element commiting SUCCESS
300 * Element committing SUCCESS
301301
302302 - STATE_LOCK is taken in set_state
303303 - change state is called if SUCCESS, commit state is called
4040 2) SEGMENT, rate, start/stop, time
4141 - marks valid buffer timestamp range (start, stop)
4242 - marks stream_time of buffers (time). This is the stream time of buffers
43 with a timestamp of NS.start.
43 with a timestamp of S.start.
4444 - marks playback rate (rate). This is the required playback rate.
4545 - marks applied rate (applied_rate). This is the already applied playback
4646 rate. (See also part-trickmodes.txt)
4848 against the clock.
4949
5050 3) N buffers
51 - displayable buffers are between start/stop of the SEGMENT. Buffers
51 - displayable buffers are between start/stop of the SEGMENT (S). Buffers
5252 outside the segment range should be dropped or clipped.
5353
5454 - running_time:
5555
56 if (NS.rate > 0.0)
57 running_time = (B.timestamp - NS.start) / NS.abs_rate + NS.accum
56 if (S.rate > 0.0)
57 running_time = (B.timestamp - S.start) / ABS (S.rate) + S.base
5858 else
59 running_time = (NS.stop - B.timestamp) / NS.abs_rate + NS.accum
59 running_time = (S.stop - B.timestamp) / ABS (S.rate) + S.base
6060
6161 * a monotonically increasing value that can be used to synchronize
6262 against the clock (See also part-synchronisation.txt).
6363
6464 - stream_time:
6565
66 stream_time = (B.timestamp - NS.start) * NS.abs_applied_rate + NS.time
66 stream_time = (B.timestamp - S.start) * ABS (S.applied_rate) + S.time
6767
6868 * current position in stream between 0 and duration.
6969
113113 rate. Likewise, a rate between 0.0 and 1.0 will slow down playback.
114114
115115 For negative rates, timestamps are received stop S.stop to S.start so that the
116 first buffer received will be transformed into B.running_time of 0 (B.timestamp ==
117 S.stop and S.accum == 0).
116 first buffer received will be transformed into B.running_time of 0
117 (B.timestamp == S.stop and S.base == 0).
118118
119119 This makes it so that B.running_time is always monotonically increasing
120120 starting from 0 with both positive and negative rates.
218218 filling (B.timestamp - S.start) in the above formule for stream time
219219
220220 =>
221 stream_time = (S.offset + (absolute_time - base_time - S.base) * ABS (S.rate)) * S.abs_applied_rate + S.time
221 stream_time = (S.offset + (absolute_time - base_time - S.base) * ABS (S.rate)) * ABS (S.applied_rate) + S.time
222222
223223 This last formula is typically used in sinks to report the current position in
224224 an accurate and efficient way.
9494 <xi:include href="xml/gstpluginfeature.xml" />
9595 <xi:include href="xml/gstpoll.xml" />
9696 <xi:include href="xml/gstpreset.xml" />
97 <xi:include href="xml/gstprotection.xml" />
9798 <xi:include href="xml/gstquery.xml" />
9899 <xi:include href="xml/gstregistry.xml" />
99100 <xi:include href="xml/gstsegment.xml" />
21272127 gst_pipeline_get_bus
21282128
21292129 gst_pipeline_set_clock
2130 gst_pipeline_get_pipeline_clock
21302131 gst_pipeline_get_clock
21312132
21322133 gst_pipeline_use_clock
23042305 </SECTION>
23052306
23062307 <SECTION>
2308 <FILE>gstprotection</FILE>
2309 <INCLUDE>gst/gstprotection.h</INCLUDE>
2310 GstProtectionMeta
2311 gst_buffer_add_protection_meta
2312 gst_buffer_get_protection_meta
2313 gst_protection_select_system
2314 <SUBSECTION Standard>
2315 GST_PROTECTION_META_API_TYPE
2316 GST_PROTECTION_META_INFO
2317 gst_protection_meta_get_info
2318 </SECTION>
2319
2320 <SECTION>
23072321 <FILE>gstquery</FILE>
23082322 <TITLE>GstQuery</TITLE>
23092323 GstQuery
25092523 gst_segment_free
25102524 gst_segment_do_seek
25112525 gst_segment_to_running_time
2526 gst_segment_to_running_time_full
25122527 gst_segment_to_stream_time
25132528 gst_segment_to_position
25142529 gst_segment_set_running_time
25152530 gst_segment_copy_into
25162531 gst_segment_offset_running_time
2532 gst_segment_is_equal
25172533 <SUBSECTION Standard>
25182534 GST_TYPE_SEGMENT
25192535 GST_TYPE_SEGMENT_FLAGS
653653 in <em class="parameter"><code>group</code></em>
654654 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no buffer. The buffer remains valid as
655655 long as <em class="parameter"><code>list</code></em>
656 is valid. </p>
656 is valid and buffer is not removed from the list. </p>
657657 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
658658 </div>
659659 </div>
30883088 gst_element_get_clock (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
30893089 <p>Gets the currently configured clock of the element. This is the clock as was
30903090 last set with <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.</p>
3091 <div class="refsect3">
3092 <a name="id-1.3.21.10.66.5"></a><h4>Parameters</h4>
3091 <p>Elements in a pipeline will only have their clock set when the
3092 pipeline is in the PLAYING state.</p>
3093 <div class="refsect3">
3094 <a name="id-1.3.21.10.66.6"></a><h4>Parameters</h4>
30933095 <div class="informaltable"><table width="100%" border="0">
30943096 <colgroup>
30953097 <col width="150px" class="parameters_name">
31043106 </table></div>
31053107 </div>
31063108 <div class="refsect3">
3107 <a name="id-1.3.21.10.66.6"></a><h4>Returns</h4>
3109 <a name="id-1.3.21.10.66.7"></a><h4>Returns</h4>
31083110 <p> the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> of the element. unref after usage.</p>
31093111 <p>MT safe. </p>
31103112 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
42174219 /* virtual methods for subclasses */
42184220
42194221 /* request/release pads */
4222 /* FIXME 2.0 harmonize naming with gst_element_request_pad */
42204223 GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ,
42214224 const gchar* name, const GstCaps *caps);
4225
42224226 void (*release_pad) (GstElement *element, GstPad *pad);
42234227
42244228 /* state changes */
33063306 <td class="enum_member_annotations"> </td>
33073307 </tr>
33083308 <tr>
3309 <td class="enum_member_name"><p><a name="GST-EVENT-PROTECTION:CAPS"></a>GST_EVENT_PROTECTION</p></td>
3310 <td class="enum_member_description">
3311 <p>An event which indicates that new or updated
3312 encryption information has been found in the stream.</p>
3313 </td>
3314 <td class="enum_member_annotations"> </td>
3315 </tr>
3316 <tr>
33093317 <td class="enum_member_name"><p><a name="GST-EVENT-SEGMENT-DONE:CAPS"></a>GST_EVENT_SEGMENT_DONE</p></td>
33103318 <td class="enum_member_description">
33113319 <p>Marks the end of a segment playback.</p>
12101210 starting from <em class="parameter"><code>offset</code></em>
12111211 . This copy is
12121212 guaranteed to be writable. <em class="parameter"><code>size</code></em>
1213 can be set to -1 to return a copy all bytes
1213 can be set to -1 to return a copy
12141214 from <em class="parameter"><code>offset</code></em>
1215 .</p>
1215 to the end of the memory region.</p>
12161216 <div class="refsect3">
12171217 <a name="id-1.3.28.8.30.5"></a><h4>Parameters</h4>
12181218 <div class="informaltable"><table width="100%" border="0">
12291229 </tr>
12301230 <tr>
12311231 <td class="parameter_name"><p>offset</p></td>
1232 <td class="parameter_description"><p>an offset to copy</p></td>
1232 <td class="parameter_description"><p>offset to copy from</p></td>
12331233 <td class="parameter_annotations"> </td>
12341234 </tr>
12351235 <tr>
12361236 <td class="parameter_name"><p>size</p></td>
1237 <td class="parameter_description"><p>size to copy or -1 to copy all bytes from offset</p></td>
1237 <td class="parameter_description"><p>size to copy, or -1 to copy to the end of the memory region</p></td>
12381238 <td class="parameter_annotations"> </td>
12391239 </tr>
12401240 </tbody>
12581258 starting from <em class="parameter"><code>offset</code></em>
12591259 . No
12601260 memory copy is performed and the memory region is simply shared. The result
1261 is guaranteed to be not-writable. <em class="parameter"><code>size</code></em>
1262 can be set to -1 to return a share
1263 all bytes from <em class="parameter"><code>offset</code></em>
1264 .</p>
1261 is guaranteed to be non-writable. <em class="parameter"><code>size</code></em>
1262 can be set to -1 to return a shared
1263 copy from <em class="parameter"><code>offset</code></em>
1264 to the end of the memory region.</p>
12651265 <div class="refsect3">
12661266 <a name="id-1.3.28.8.31.5"></a><h4>Parameters</h4>
12671267 <div class="informaltable"><table width="100%" border="0">
12781278 </tr>
12791279 <tr>
12801280 <td class="parameter_name"><p>offset</p></td>
1281 <td class="parameter_description"><p>an offset to share</p></td>
1281 <td class="parameter_description"><p>offset to share from</p></td>
12821282 <td class="parameter_annotations"> </td>
12831283 </tr>
12841284 <tr>
12851285 <td class="parameter_name"><p>size</p></td>
1286 <td class="parameter_description"><p>size to share or -1 to share bytes from offset</p></td>
1286 <td class="parameter_description"><p>size to share, or -1 to share to the end of the memory region</p></td>
12871287 <td class="parameter_annotations"> </td>
12881288 </tr>
12891289 </tbody>
44704470 <p>The EOS event will pause the task associated with <em class="parameter"><code>pad</code></em>
44714471 before it is forwarded
44724472 to all internally linked pads,</p>
4473 <p>The the event is sent to all pads internally linked to <em class="parameter"><code>pad</code></em>
4473 <p>The event is sent to all pads internally linked to <em class="parameter"><code>pad</code></em>
44744474 . This function
44754475 takes ownership of <em class="parameter"><code>event</code></em>
44764476 .</p>
6464 </td>
6565 <td class="function_name">
6666 <a class="link" href="GstPipeline.html#gst-pipeline-set-clock" title="gst_pipeline_set_clock ()">gst_pipeline_set_clock</a> <span class="c_punctuation">()</span>
67 </td>
68 </tr>
69 <tr>
70 <td class="function_type">
71 <a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
72 </td>
73 <td class="function_name">
74 <a class="link" href="GstPipeline.html#gst-pipeline-get-pipeline-clock" title="gst_pipeline_get_pipeline_clock ()">gst_pipeline_get_pipeline_clock</a> <span class="c_punctuation">()</span>
6775 </td>
6876 </tr>
6977 <tr>
328336 </div>
329337 <hr>
330338 <div class="refsect2">
339 <a name="gst-pipeline-get-pipeline-clock"></a><h3>gst_pipeline_get_pipeline_clock ()</h3>
340 <pre class="programlisting"><a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
341 gst_pipeline_get_pipeline_clock (<em class="parameter"><code><a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> *pipeline</code></em>);</pre>
342 <p>Gets the current clock used by <em class="parameter"><code>pipeline</code></em>
343 .</p>
344 <p>Unlike <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a>, this function will always return a
345 clock, even if the pipeline is not in the PLAYING state.</p>
346 <div class="refsect3">
347 <a name="id-1.3.37.10.5.6"></a><h4>Parameters</h4>
348 <div class="informaltable"><table width="100%" border="0">
349 <colgroup>
350 <col width="150px" class="parameters_name">
351 <col class="parameters_description">
352 <col width="200px" class="parameters_annotations">
353 </colgroup>
354 <tbody><tr>
355 <td class="parameter_name"><p>pipeline</p></td>
356 <td class="parameter_description"><p>a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a></p></td>
357 <td class="parameter_annotations"> </td>
358 </tr></tbody>
359 </table></div>
360 </div>
361 <div class="refsect3">
362 <a name="id-1.3.37.10.5.7"></a><h4>Returns</h4>
363 <p> a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a>, unref after usage. </p>
364 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
365 </div>
366 <p class="since">Since 1.6</p>
367 </div>
368 <hr>
369 <div class="refsect2">
331370 <a name="gst-pipeline-get-clock"></a><h3>gst_pipeline_get_clock ()</h3>
332371 <pre class="programlisting"><a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
333372 gst_pipeline_get_clock (<em class="parameter"><code><a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> *pipeline</code></em>);</pre>
334373 <p>Gets the current clock used by <em class="parameter"><code>pipeline</code></em>
335 .</p>
336 <div class="refsect3">
337 <a name="id-1.3.37.10.5.5"></a><h4>Parameters</h4>
374 . Users of object
375 oriented languages should use <a class="link" href="GstPipeline.html#gst-pipeline-get-pipeline-clock" title="gst_pipeline_get_pipeline_clock ()"><code class="function">gst_pipeline_get_pipeline_clock()</code></a>
376 to avoid confusion with <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a> which has a different behavior.</p>
377 <p>Unlike <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a>, this function will always return a
378 clock, even if the pipeline is not in the PLAYING state.</p>
379 <div class="refsect3">
380 <a name="id-1.3.37.10.6.6"></a><h4>Parameters</h4>
338381 <div class="informaltable"><table width="100%" border="0">
339382 <colgroup>
340383 <col width="150px" class="parameters_name">
349392 </table></div>
350393 </div>
351394 <div class="refsect3">
352 <a name="id-1.3.37.10.5.6"></a><h4>Returns</h4>
395 <a name="id-1.3.37.10.6.7"></a><h4>Returns</h4>
353396 <p> a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a>, unref after usage. </p>
354397 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
355398 </div>
370413 the pipeline run as fast as possible.</p>
371414 <p>MT safe.</p>
372415 <div class="refsect3">
373 <a name="id-1.3.37.10.6.7"></a><h4>Parameters</h4>
416 <a name="id-1.3.37.10.7.7"></a><h4>Parameters</h4>
374417 <div class="informaltable"><table width="100%" border="0">
375418 <colgroup>
376419 <col width="150px" class="parameters_name">
405448 pipeline clock selection algorithm.</p>
406449 <p>MT safe.</p>
407450 <div class="refsect3">
408 <a name="id-1.3.37.10.7.7"></a><h4>Parameters</h4>
451 <a name="id-1.3.37.10.8.7"></a><h4>Parameters</h4>
409452 <div class="informaltable"><table width="100%" border="0">
410453 <colgroup>
411454 <col width="150px" class="parameters_name">
438481 automatic flushing is disabled else memory leaks will be introduced.</p>
439482 <p>MT safe.</p>
440483 <div class="refsect3">
441 <a name="id-1.3.37.10.8.8"></a><h4>Parameters</h4>
484 <a name="id-1.3.37.10.9.8"></a><h4>Parameters</h4>
442485 <div class="informaltable"><table width="100%" border="0">
443486 <colgroup>
444487 <col width="150px" class="parameters_name">
470513 will automatically flush messages when going to
471514 the NULL state.</p>
472515 <div class="refsect3">
473 <a name="id-1.3.37.10.9.5"></a><h4>Parameters</h4>
516 <a name="id-1.3.37.10.10.5"></a><h4>Parameters</h4>
474517 <div class="informaltable"><table width="100%" border="0">
475518 <colgroup>
476519 <col width="150px" class="parameters_name">
485528 </table></div>
486529 </div>
487530 <div class="refsect3">
488 <a name="id-1.3.37.10.9.6"></a><h4>Returns</h4>
531 <a name="id-1.3.37.10.10.6"></a><h4>Returns</h4>
489532 <p> whether the pipeline will automatically flush its bus when
490533 going from READY to NULL state or not.</p>
491534 <p>MT safe.</p>
509552 used.</p>
510553 <p>MT safe.</p>
511554 <div class="refsect3">
512 <a name="id-1.3.37.10.10.7"></a><h4>Parameters</h4>
555 <a name="id-1.3.37.10.11.7"></a><h4>Parameters</h4>
513556 <div class="informaltable"><table width="100%" border="0">
514557 <colgroup>
515558 <col width="150px" class="parameters_name">
538581 gst_pipeline_get_delay (<em class="parameter"><code><a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> *pipeline</code></em>);</pre>
539582 <p>Get the configured delay (see <a class="link" href="GstPipeline.html#gst-pipeline-set-delay" title="gst_pipeline_set_delay ()"><code class="function">gst_pipeline_set_delay()</code></a>).</p>
540583 <div class="refsect3">
541 <a name="id-1.3.37.10.11.5"></a><h4>Parameters</h4>
584 <a name="id-1.3.37.10.12.5"></a><h4>Parameters</h4>
542585 <div class="informaltable"><table width="100%" border="0">
543586 <colgroup>
544587 <col width="150px" class="parameters_name">
553596 </table></div>
554597 </div>
555598 <div class="refsect3">
556 <a name="id-1.3.37.10.11.6"></a><h4>Returns</h4>
599 <a name="id-1.3.37.10.12.6"></a><h4>Returns</h4>
557600 <p> The configured delay.</p>
558601 <p>MT safe.</p>
559602 <p></p>
66 <link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
77 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
88 <link rel="prev" href="gstreamer-GstPoll.html" title="GstPoll">
9 <link rel="next" href="GstQuery.html" title="GstQuery">
9 <link rel="next" href="gstreamer-gstprotection.html" title="gstprotection">
1010 <meta name="generator" content="GTK-Doc V1.21 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
2020 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
2121 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
2222 <td><a accesskey="p" href="gstreamer-GstPoll.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
23 <td><a accesskey="n" href="GstQuery.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
23 <td><a accesskey="n" href="gstreamer-gstprotection.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
2424 </tr></table>
2525 <div class="refentry">
2626 <a name="GstPreset"></a><div class="titlepage"></div>
55 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
66 <link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
77 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
8 <link rel="prev" href="GstPreset.html" title="GstPreset">
8 <link rel="prev" href="gstreamer-gstprotection.html" title="gstprotection">
99 <link rel="next" href="GstRegistry.html" title="GstRegistry">
1010 <meta name="generator" content="GTK-Doc V1.21 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1919 </td>
2020 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
2121 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
22 <td><a accesskey="p" href="GstPreset.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
22 <td><a accesskey="p" href="gstreamer-gstprotection.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
2323 <td><a accesskey="n" href="GstRegistry.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
2424 </tr></table>
2525 <div class="refentry">
891891 <p>when making custom query types, use this macro with the num and
892892 the given flags</p>
893893 <div class="refsect3">
894 <a name="id-1.3.42.8.2.5"></a><h4>Parameters</h4>
894 <a name="id-1.3.43.8.2.5"></a><h4>Parameters</h4>
895895 <div class="informaltable"><table width="100%" border="0">
896896 <colgroup>
897897 <col width="150px" class="parameters_name">
920920 </pre>
921921 <p>Get the <a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> of the query.</p>
922922 <div class="refsect3">
923 <a name="id-1.3.42.8.3.5"></a><h4>Parameters</h4>
923 <a name="id-1.3.43.8.3.5"></a><h4>Parameters</h4>
924924 <div class="informaltable"><table width="100%" border="0">
925925 <colgroup>
926926 <col width="150px" class="parameters_name">
942942 </pre>
943943 <p>Get a constant string representation of the <a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> of the query.</p>
944944 <div class="refsect3">
945 <a name="id-1.3.42.8.4.5"></a><h4>Parameters</h4>
945 <a name="id-1.3.43.8.4.5"></a><h4>Parameters</h4>
946946 <div class="informaltable"><table width="100%" border="0">
947947 <colgroup>
948948 <col width="150px" class="parameters_name">
964964 </pre>
965965 <p>Check if an query can travel upstream.</p>
966966 <div class="refsect3">
967 <a name="id-1.3.42.8.5.5"></a><h4>Parameters</h4>
967 <a name="id-1.3.43.8.5.5"></a><h4>Parameters</h4>
968968 <div class="informaltable"><table width="100%" border="0">
969969 <colgroup>
970970 <col width="150px" class="parameters_name">
986986 </pre>
987987 <p>Check if an query can travel downstream.</p>
988988 <div class="refsect3">
989 <a name="id-1.3.42.8.6.5"></a><h4>Parameters</h4>
989 <a name="id-1.3.43.8.6.5"></a><h4>Parameters</h4>
990990 <div class="informaltable"><table width="100%" border="0">
991991 <colgroup>
992992 <col width="150px" class="parameters_name">
10081008 </pre>
10091009 <p>Check if an query is serialized with the data stream.</p>
10101010 <div class="refsect3">
1011 <a name="id-1.3.42.8.7.5"></a><h4>Parameters</h4>
1011 <a name="id-1.3.43.8.7.5"></a><h4>Parameters</h4>
10121012 <div class="informaltable"><table width="100%" border="0">
10131013 <colgroup>
10141014 <col width="150px" class="parameters_name">
10311031 <p>Gets the <a class="link" href="GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="type">GstQueryTypeFlags</span></a> associated with <em class="parameter"><code>type</code></em>
10321032 .</p>
10331033 <div class="refsect3">
1034 <a name="id-1.3.42.8.8.5"></a><h4>Parameters</h4>
1034 <a name="id-1.3.43.8.8.5"></a><h4>Parameters</h4>
10351035 <div class="informaltable"><table width="100%" border="0">
10361036 <colgroup>
10371037 <col width="150px" class="parameters_name">
10461046 </table></div>
10471047 </div>
10481048 <div class="refsect3">
1049 <a name="id-1.3.42.8.8.6"></a><h4>Returns</h4>
1049 <a name="id-1.3.43.8.8.6"></a><h4>Returns</h4>
10501050 <p> a <a class="link" href="GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="type">GstQueryTypeFlags</span></a>.</p>
10511051 <p></p>
10521052 </div>
10581058 gst_query_type_get_name (<em class="parameter"><code><a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
10591059 <p>Get a printable name for the given query type. Do not modify or free.</p>
10601060 <div class="refsect3">
1061 <a name="id-1.3.42.8.9.5"></a><h4>Parameters</h4>
1061 <a name="id-1.3.43.8.9.5"></a><h4>Parameters</h4>
10621062 <div class="informaltable"><table width="100%" border="0">
10631063 <colgroup>
10641064 <col width="150px" class="parameters_name">
10731073 </table></div>
10741074 </div>
10751075 <div class="refsect3">
1076 <a name="id-1.3.42.8.9.6"></a><h4>Returns</h4>
1076 <a name="id-1.3.43.8.9.6"></a><h4>Returns</h4>
10771077 <p> a reference to the static name of the query.</p>
10781078 <p></p>
10791079 </div>
10851085 gst_query_type_to_quark (<em class="parameter"><code><a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
10861086 <p>Get the unique quark for the given query type.</p>
10871087 <div class="refsect3">
1088 <a name="id-1.3.42.8.10.5"></a><h4>Parameters</h4>
1088 <a name="id-1.3.43.8.10.5"></a><h4>Parameters</h4>
10891089 <div class="informaltable"><table width="100%" border="0">
10901090 <colgroup>
10911091 <col width="150px" class="parameters_name">
11001100 </table></div>
11011101 </div>
11021102 <div class="refsect3">
1103 <a name="id-1.3.42.8.10.6"></a><h4>Returns</h4>
1103 <a name="id-1.3.43.8.10.6"></a><h4>Returns</h4>
11041104 <p> the quark associated with the query type</p>
11051105 <p></p>
11061106 </div>
11121112 gst_query_ref (<em class="parameter"><code><a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> *q</code></em>);</pre>
11131113 <p>Increases the refcount of the given query by one.</p>
11141114 <div class="refsect3">
1115 <a name="id-1.3.42.8.11.5"></a><h4>Parameters</h4>
1115 <a name="id-1.3.43.8.11.5"></a><h4>Parameters</h4>
11161116 <div class="informaltable"><table width="100%" border="0">
11171117 <colgroup>
11181118 <col width="150px" class="parameters_name">
11271127 </table></div>
11281128 </div>
11291129 <div class="refsect3">
1130 <a name="id-1.3.42.8.11.6"></a><h4>Returns</h4>
1130 <a name="id-1.3.43.8.11.6"></a><h4>Returns</h4>
11311131 <p> <em class="parameter"><code>q</code></em>
11321132 </p>
11331133 <p></p>
11411141 <p>Decreases the refcount of the query. If the refcount reaches 0, the query
11421142 will be freed.</p>
11431143 <div class="refsect3">
1144 <a name="id-1.3.42.8.12.5"></a><h4>Parameters</h4>
1144 <a name="id-1.3.43.8.12.5"></a><h4>Parameters</h4>
11451145 <div class="informaltable"><table width="100%" border="0">
11461146 <colgroup>
11471147 <col width="150px" class="parameters_name">
11641164 <p>Copies the given query using the copy function of the parent <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>.</p>
11651165 <p>Free-function: gst_query_unref</p>
11661166 <div class="refsect3">
1167 <a name="id-1.3.42.8.13.6"></a><h4>Parameters</h4>
1167 <a name="id-1.3.43.8.13.6"></a><h4>Parameters</h4>
11681168 <div class="informaltable"><table width="100%" border="0">
11691169 <colgroup>
11701170 <col width="150px" class="parameters_name">
11791179 </table></div>
11801180 </div>
11811181 <div class="refsect3">
1182 <a name="id-1.3.42.8.13.7"></a><h4>Returns</h4>
1182 <a name="id-1.3.43.8.13.7"></a><h4>Returns</h4>
11831183 <p> a new copy of <em class="parameter"><code>q</code></em>
11841184 . </p>
11851185 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
11921192 </pre>
11931193 <p>Makes a writable query from the given query.</p>
11941194 <div class="refsect3">
1195 <a name="id-1.3.42.8.14.5"></a><h4>Parameters</h4>
1195 <a name="id-1.3.43.8.14.5"></a><h4>Parameters</h4>
11961196 <div class="informaltable"><table width="100%" border="0">
11971197 <colgroup>
11981198 <col width="150px" class="parameters_name">
12071207 </table></div>
12081208 </div>
12091209 <div class="refsect3">
1210 <a name="id-1.3.42.8.14.6"></a><h4>Returns</h4>
1210 <a name="id-1.3.43.8.14.6"></a><h4>Returns</h4>
12111211 <p> a new writable query (possibly same as <em class="parameter"><code>q</code></em>
12121212 ). </p>
12131213 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
12201220 </pre>
12211221 <p>Tests if you can safely write data into a query's structure.</p>
12221222 <div class="refsect3">
1223 <a name="id-1.3.42.8.15.5"></a><h4>Parameters</h4>
1223 <a name="id-1.3.43.8.15.5"></a><h4>Parameters</h4>
12241224 <div class="informaltable"><table width="100%" border="0">
12251225 <colgroup>
12261226 <col width="150px" class="parameters_name">
12491249 or the <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> pointed to by <em class="parameter"><code>old_query</code></em>
12501250 may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
12511251 <div class="refsect3">
1252 <a name="id-1.3.42.8.16.6"></a><h4>Parameters</h4>
1252 <a name="id-1.3.43.8.16.6"></a><h4>Parameters</h4>
12531253 <div class="informaltable"><table width="100%" border="0">
12541254 <colgroup>
12551255 <col width="150px" class="parameters_name">
12741274 </table></div>
12751275 </div>
12761276 <div class="refsect3">
1277 <a name="id-1.3.42.8.16.7"></a><h4>Returns</h4>
1277 <a name="id-1.3.43.8.16.7"></a><h4>Returns</h4>
12781278 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>new_query</code></em>
12791279 was different from <em class="parameter"><code>old_query</code></em>
12801280 </p>
12901290 <em class="parameter"><code>query</code></em>
12911291 so that the returned structure is guaranteed to be writable.</p>
12921292 <div class="refsect3">
1293 <a name="id-1.3.42.8.17.5"></a><h4>Parameters</h4>
1293 <a name="id-1.3.43.8.17.5"></a><h4>Parameters</h4>
12941294 <div class="informaltable"><table width="100%" border="0">
12951295 <colgroup>
12961296 <col width="150px" class="parameters_name">
13051305 </table></div>
13061306 </div>
13071307 <div class="refsect3">
1308 <a name="id-1.3.42.8.17.6"></a><h4>Returns</h4>
1308 <a name="id-1.3.43.8.17.6"></a><h4>Returns</h4>
13091309 <p> the <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> of the query. The structure is
13101310 still owned by the query and will therefore be freed when the query
13111311 is unreffed. </p>
13221322 when done with it.</p>
13231323 <p>Free-function: gst_query_unref</p>
13241324 <div class="refsect3">
1325 <a name="id-1.3.42.8.18.6"></a><h4>Parameters</h4>
1325 <a name="id-1.3.43.8.18.6"></a><h4>Parameters</h4>
13261326 <div class="informaltable"><table width="100%" border="0">
13271327 <colgroup>
13281328 <col width="150px" class="parameters_name">
13441344 </table></div>
13451345 </div>
13461346 <div class="refsect3">
1347 <a name="id-1.3.42.8.18.7"></a><h4>Returns</h4>
1347 <a name="id-1.3.43.8.18.7"></a><h4>Returns</h4>
13481348 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
13491349 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
13501350 </div>
13561356 gst_query_get_structure (<em class="parameter"><code><a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
13571357 <p>Get the structure of a query.</p>
13581358 <div class="refsect3">
1359 <a name="id-1.3.42.8.19.5"></a><h4>Parameters</h4>
1359 <a name="id-1.3.43.8.19.5"></a><h4>Parameters</h4>
13601360 <div class="informaltable"><table width="100%" border="0">
13611361 <colgroup>
13621362 <col width="150px" class="parameters_name">
13711371 </table></div>
13721372 </div>
13731373 <div class="refsect3">
1374 <a name="id-1.3.42.8.19.6"></a><h4>Returns</h4>
1374 <a name="id-1.3.43.8.19.6"></a><h4>Returns</h4>
13751375 <p> the <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> of the query. The structure is
13761376 still owned by the query and will therefore be freed when the query
13771377 is unreffed. </p>
13901390 one format and another.</p>
13911391 <p>Free-function: gst_query_unref</p>
13921392 <div class="refsect3">
1393 <a name="id-1.3.42.8.20.6"></a><h4>Parameters</h4>
1393 <a name="id-1.3.43.8.20.6"></a><h4>Parameters</h4>
13941394 <div class="informaltable"><table width="100%" border="0">
13951395 <colgroup>
13961396 <col width="150px" class="parameters_name">
14171417 </table></div>
14181418 </div>
14191419 <div class="refsect3">
1420 <a name="id-1.3.42.8.20.7"></a><h4>Returns</h4>
1420 <a name="id-1.3.43.8.20.7"></a><h4>Returns</h4>
14211421 <p> a <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
14221422 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
14231423 </div>
14331433 <em class="parameter"><code><span class="type">gint64</span> dest_value</code></em>);</pre>
14341434 <p>Answer a convert query by setting the requested values.</p>
14351435 <div class="refsect3">
1436 <a name="id-1.3.42.8.21.5"></a><h4>Parameters</h4>
1436 <a name="id-1.3.43.8.21.5"></a><h4>Parameters</h4>
14371437 <div class="informaltable"><table width="100%" border="0">
14381438 <colgroup>
14391439 <col width="150px" class="parameters_name">
14861486 and <em class="parameter"><code>dest_value</code></em>
14871487 may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, in which case that value is omitted.</p>
14881488 <div class="refsect3">
1489 <a name="id-1.3.42.8.22.5"></a><h4>Parameters</h4>
1489 <a name="id-1.3.43.8.22.5"></a><h4>Parameters</h4>
14901490 <div class="informaltable"><table width="100%" border="0">
14911491 <colgroup>
14921492 <col width="150px" class="parameters_name">
15361536 of playback in the streams, in some format.</p>
15371537 <p>Free-function: gst_query_unref</p>
15381538 <div class="refsect3">
1539 <a name="id-1.3.42.8.23.6"></a><h4>Parameters</h4>
1539 <a name="id-1.3.43.8.23.6"></a><h4>Parameters</h4>
15401540 <div class="informaltable"><table width="100%" border="0">
15411541 <colgroup>
15421542 <col width="150px" class="parameters_name">
15511551 </table></div>
15521552 </div>
15531553 <div class="refsect3">
1554 <a name="id-1.3.42.8.23.7"></a><h4>Returns</h4>
1554 <a name="id-1.3.43.8.23.7"></a><h4>Returns</h4>
15551555 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
15561556 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
15571557 </div>
15651565 <em class="parameter"><code><span class="type">gint64</span> cur</code></em>);</pre>
15661566 <p>Answer a position query by setting the requested value in the given format.</p>
15671567 <div class="refsect3">
1568 <a name="id-1.3.42.8.24.5"></a><h4>Parameters</h4>
1568 <a name="id-1.3.43.8.24.5"></a><h4>Parameters</h4>
15691569 <div class="informaltable"><table width="100%" border="0">
15701570 <colgroup>
15711571 <col width="150px" class="parameters_name">
16041604 into <em class="parameter"><code>cur</code></em>
16051605 , if the respective parameters are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
16061606 <div class="refsect3">
1607 <a name="id-1.3.42.8.25.5"></a><h4>Parameters</h4>
1607 <a name="id-1.3.43.8.25.5"></a><h4>Parameters</h4>
16081608 <div class="informaltable"><table width="100%" border="0">
16091609 <colgroup>
16101610 <col width="150px" class="parameters_name">
16421642 total length of the stream.</p>
16431643 <p>Free-function: gst_query_unref</p>
16441644 <div class="refsect3">
1645 <a name="id-1.3.42.8.26.6"></a><h4>Parameters</h4>
1645 <a name="id-1.3.43.8.26.6"></a><h4>Parameters</h4>
16461646 <div class="informaltable"><table width="100%" border="0">
16471647 <colgroup>
16481648 <col width="150px" class="parameters_name">
16571657 </table></div>
16581658 </div>
16591659 <div class="refsect3">
1660 <a name="id-1.3.42.8.26.7"></a><h4>Returns</h4>
1660 <a name="id-1.3.43.8.26.7"></a><h4>Returns</h4>
16611661 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
16621662 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
16631663 </div>
16711671 <em class="parameter"><code><span class="type">gint64</span> duration</code></em>);</pre>
16721672 <p>Answer a duration query by setting the requested value in the given format.</p>
16731673 <div class="refsect3">
1674 <a name="id-1.3.42.8.27.5"></a><h4>Parameters</h4>
1674 <a name="id-1.3.43.8.27.5"></a><h4>Parameters</h4>
16751675 <div class="informaltable"><table width="100%" border="0">
16761676 <colgroup>
16771677 <col width="150px" class="parameters_name">
17101710 and the value into <em class="parameter"><code>duration</code></em>
17111711 , if the respective variables are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
17121712 <div class="refsect3">
1713 <a name="id-1.3.42.8.28.5"></a><h4>Parameters</h4>
1713 <a name="id-1.3.43.8.28.5"></a><h4>Parameters</h4>
17141714 <div class="informaltable"><table width="100%" border="0">
17151715 <colgroup>
17161716 <col width="150px" class="parameters_name">
17491749 pipeline.</p>
17501750 <p>Free-function: gst_query_unref</p>
17511751 <div class="refsect3">
1752 <a name="id-1.3.42.8.29.6"></a><h4>Returns</h4>
1752 <a name="id-1.3.43.8.29.6"></a><h4>Returns</h4>
17531753 <p> a <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
17541754 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
17551755 </div>
17641764 <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
17651765 <p>Parse a latency query answer.</p>
17661766 <div class="refsect3">
1767 <a name="id-1.3.42.8.30.5"></a><h4>Parameters</h4>
1767 <a name="id-1.3.43.8.30.5"></a><h4>Parameters</h4>
17681768 <div class="informaltable"><table width="100%" border="0">
17691769 <colgroup>
17701770 <col width="150px" class="parameters_name">
18061806 <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
18071807 <p>Answer a latency query by setting the requested values in the given format.</p>
18081808 <div class="refsect3">
1809 <a name="id-1.3.42.8.31.5"></a><h4>Parameters</h4>
1809 <a name="id-1.3.43.8.31.5"></a><h4>Parameters</h4>
18101810 <div class="informaltable"><table width="100%" border="0">
18111811 <colgroup>
18121812 <col width="150px" class="parameters_name">
18471847 the stream.</p>
18481848 <p>Free-function: gst_query_unref</p>
18491849 <div class="refsect3">
1850 <a name="id-1.3.42.8.32.6"></a><h4>Parameters</h4>
1850 <a name="id-1.3.43.8.32.6"></a><h4>Parameters</h4>
18511851 <div class="informaltable"><table width="100%" border="0">
18521852 <colgroup>
18531853 <col width="150px" class="parameters_name">
18621862 </table></div>
18631863 </div>
18641864 <div class="refsect3">
1865 <a name="id-1.3.42.8.32.7"></a><h4>Returns</h4>
1865 <a name="id-1.3.43.8.32.7"></a><h4>Returns</h4>
18661866 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
18671867 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
18681868 </div>
18791879 <p>Set the seeking query result fields in <em class="parameter"><code>query</code></em>
18801880 .</p>
18811881 <div class="refsect3">
1882 <a name="id-1.3.42.8.33.5"></a><h4>Parameters</h4>
1882 <a name="id-1.3.43.8.33.5"></a><h4>Parameters</h4>
18831883 <div class="informaltable"><table width="100%" border="0">
18841884 <colgroup>
18851885 <col width="150px" class="parameters_name">
19321932 other results into the passed parameters, if the respective parameters
19331933 are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p>
19341934 <div class="refsect3">
1935 <a name="id-1.3.42.8.34.5"></a><h4>Parameters</h4>
1935 <a name="id-1.3.43.8.34.5"></a><h4>Parameters</h4>
19361936 <div class="informaltable"><table width="100%" border="0">
19371937 <colgroup>
19381938 <col width="150px" class="parameters_name">
19801980 the stream.</p>
19811981 <p>Free-function: gst_query_unref</p>
19821982 <div class="refsect3">
1983 <a name="id-1.3.42.8.35.6"></a><h4>Returns</h4>
1983 <a name="id-1.3.43.8.35.6"></a><h4>Returns</h4>
19841984 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
19851985 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
19861986 </div>
19971997 must be equal to <em class="parameter"><code>n_formats</code></em>
19981998 .</p>
19991999 <div class="refsect3">
2000 <a name="id-1.3.42.8.36.5"></a><h4>Parameters</h4>
2000 <a name="id-1.3.43.8.36.5"></a><h4>Parameters</h4>
20012001 <div class="informaltable"><table width="100%" border="0">
20022002 <colgroup>
20032003 <col width="150px" class="parameters_name">
20392039 array must be equal to <em class="parameter"><code>n_formats</code></em>
20402040 .</p>
20412041 <div class="refsect3">
2042 <a name="id-1.3.42.8.37.5"></a><h4>Parameters</h4>
2042 <a name="id-1.3.43.8.37.5"></a><h4>Parameters</h4>
20432043 <div class="informaltable"><table width="100%" border="0">
20442044 <colgroup>
20452045 <col width="150px" class="parameters_name">
20772077 <p>Parse the number of formats in the formats <em class="parameter"><code>query</code></em>
20782078 .</p>
20792079 <div class="refsect3">
2080 <a name="id-1.3.42.8.38.5"></a><h4>Parameters</h4>
2080 <a name="id-1.3.43.8.38.5"></a><h4>Parameters</h4>
20812081 <div class="informaltable"><table width="100%" border="0">
20822082 <colgroup>
20832083 <col width="150px" class="parameters_name">
21142114 will be
21152115 set to GST_FORMAT_UNDEFINED.</p>
21162116 <div class="refsect3">
2117 <a name="id-1.3.42.8.39.5"></a><h4>Parameters</h4>
2117 <a name="id-1.3.43.8.39.5"></a><h4>Parameters</h4>
21182118 <div class="informaltable"><table width="100%" border="0">
21192119 <colgroup>
21202120 <col width="150px" class="parameters_name">
21512151 currently configured segment for playback.</p>
21522152 <p>Free-function: gst_query_unref</p>
21532153 <div class="refsect3">
2154 <a name="id-1.3.42.8.40.6"></a><h4>Parameters</h4>
2154 <a name="id-1.3.43.8.40.6"></a><h4>Parameters</h4>
21552155 <div class="informaltable"><table width="100%" border="0">
21562156 <colgroup>
21572157 <col width="150px" class="parameters_name">
21662166 </table></div>
21672167 </div>
21682168 <div class="refsect3">
2169 <a name="id-1.3.42.8.40.7"></a><h4>Returns</h4>
2169 <a name="id-1.3.43.8.40.7"></a><h4>Returns</h4>
21702170 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
21712171 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
21722172 </div>
21992199 <em class="parameter"><code>start_value</code></em>
22002200 .</p>
22012201 <div class="refsect3">
2202 <a name="id-1.3.42.8.41.6"></a><h4>Parameters</h4>
2202 <a name="id-1.3.43.8.41.6"></a><h4>Parameters</h4>
22032203 <div class="informaltable"><table width="100%" border="0">
22042204 <colgroup>
22052205 <col width="150px" class="parameters_name">
22552255 may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, which will cause this value to be omitted.</p>
22562256 <p>See <a class="link" href="GstQuery.html#gst-query-set-segment" title="gst_query_set_segment ()"><code class="function">gst_query_set_segment()</code></a> for an explanation of the function arguments.</p>
22572257 <div class="refsect3">
2258 <a name="id-1.3.42.8.42.6"></a><h4>Parameters</h4>
2258 <a name="id-1.3.43.8.42.6"></a><h4>Parameters</h4>
22592259 <div class="informaltable"><table width="100%" border="0">
22602260 <colgroup>
22612261 <col width="150px" class="parameters_name">
23172317 greatly reduce the amount of processing an element needs to do.</p>
23182318 <p>Free-function: gst_query_unref</p>
23192319 <div class="refsect3">
2320 <a name="id-1.3.42.8.43.9"></a><h4>Parameters</h4>
2320 <a name="id-1.3.43.8.43.9"></a><h4>Parameters</h4>
23212321 <div class="informaltable"><table width="100%" border="0">
23222322 <colgroup>
23232323 <col width="150px" class="parameters_name">
23322332 </table></div>
23332333 </div>
23342334 <div class="refsect3">
2335 <a name="id-1.3.42.8.43.10"></a><h4>Returns</h4>
2335 <a name="id-1.3.43.8.43.10"></a><h4>Returns</h4>
23362336 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
23372337 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
23382338 </div>
23482348 <em class="parameter"><code>query</code></em>
23492349 remains valid.</p>
23502350 <div class="refsect3">
2351 <a name="id-1.3.42.8.44.5"></a><h4>Parameters</h4>
2351 <a name="id-1.3.43.8.44.5"></a><h4>Parameters</h4>
23522352 <div class="informaltable"><table width="100%" border="0">
23532353 <colgroup>
23542354 <col width="150px" class="parameters_name">
23802380 result in <em class="parameter"><code>query</code></em>
23812381 .</p>
23822382 <div class="refsect3">
2383 <a name="id-1.3.42.8.45.5"></a><h4>Parameters</h4>
2383 <a name="id-1.3.43.8.45.5"></a><h4>Parameters</h4>
23842384 <div class="informaltable"><table width="100%" border="0">
23852385 <colgroup>
23862386 <col width="150px" class="parameters_name">
24132413 <em class="parameter"><code>query</code></em>
24142414 remains valid.</p>
24152415 <div class="refsect3">
2416 <a name="id-1.3.42.8.46.5"></a><h4>Parameters</h4>
2416 <a name="id-1.3.43.8.46.5"></a><h4>Parameters</h4>
24172417 <div class="informaltable"><table width="100%" border="0">
24182418 <colgroup>
24192419 <col width="150px" class="parameters_name">
24442444 are accepted.</p>
24452445 <p>Free-function: gst_query_unref</p>
24462446 <div class="refsect3">
2447 <a name="id-1.3.42.8.47.6"></a><h4>Parameters</h4>
2447 <a name="id-1.3.43.8.47.6"></a><h4>Parameters</h4>
24482448 <div class="informaltable"><table width="100%" border="0">
24492449 <colgroup>
24502450 <col width="150px" class="parameters_name">
24592459 </table></div>
24602460 </div>
24612461 <div class="refsect3">
2462 <a name="id-1.3.42.8.47.7"></a><h4>Returns</h4>
2462 <a name="id-1.3.43.8.47.7"></a><h4>Returns</h4>
24632463 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
24642464 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
24652465 </div>
24752475 remains
24762476 valid.</p>
24772477 <div class="refsect3">
2478 <a name="id-1.3.42.8.48.5"></a><h4>Parameters</h4>
2478 <a name="id-1.3.43.8.48.5"></a><h4>Parameters</h4>
24792479 <div class="informaltable"><table width="100%" border="0">
24802480 <colgroup>
24812481 <col width="150px" class="parameters_name">
25072507 as the result for the <em class="parameter"><code>query</code></em>
25082508 .</p>
25092509 <div class="refsect3">
2510 <a name="id-1.3.42.8.49.5"></a><h4>Parameters</h4>
2510 <a name="id-1.3.43.8.49.5"></a><h4>Parameters</h4>
25112511 <div class="informaltable"><table width="100%" border="0">
25122512 <colgroup>
25132513 <col width="150px" class="parameters_name">
25392539 and store in <em class="parameter"><code>result</code></em>
25402540 .</p>
25412541 <div class="refsect3">
2542 <a name="id-1.3.42.8.50.5"></a><h4>Parameters</h4>
2542 <a name="id-1.3.43.8.50.5"></a><h4>Parameters</h4>
25432543 <div class="informaltable"><table width="100%" border="0">
25442544 <colgroup>
25452545 <col width="150px" class="parameters_name">
25702570 a stream.</p>
25712571 <p>Free-function: gst_query_unref</p>
25722572 <div class="refsect3">
2573 <a name="id-1.3.42.8.51.6"></a><h4>Parameters</h4>
2573 <a name="id-1.3.43.8.51.6"></a><h4>Parameters</h4>
25742574 <div class="informaltable"><table width="100%" border="0">
25752575 <colgroup>
25762576 <col width="150px" class="parameters_name">
25852585 </table></div>
25862586 </div>
25872587 <div class="refsect3">
2588 <a name="id-1.3.42.8.51.7"></a><h4>Returns</h4>
2588 <a name="id-1.3.43.8.51.7"></a><h4>Returns</h4>
25892589 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
25902590 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
25912591 </div>
26012601 The <em class="parameter"><code>busy</code></em>
26022602 indicator is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the buffering is in progress.</p>
26032603 <div class="refsect3">
2604 <a name="id-1.3.42.8.52.5"></a><h4>Parameters</h4>
2604 <a name="id-1.3.43.8.52.5"></a><h4>Parameters</h4>
26052605 <div class="informaltable"><table width="100%" border="0">
26062606 <colgroup>
26072607 <col width="150px" class="parameters_name">
26392639 The <em class="parameter"><code>busy</code></em>
26402640 indicator is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the buffering is in progress.</p>
26412641 <div class="refsect3">
2642 <a name="id-1.3.42.8.53.5"></a><h4>Parameters</h4>
2642 <a name="id-1.3.43.8.53.5"></a><h4>Parameters</h4>
26432643 <div class="informaltable"><table width="100%" border="0">
26442644 <colgroup>
26452645 <col width="150px" class="parameters_name">
26782678 <p>Configures the buffering stats values in <em class="parameter"><code>query</code></em>
26792679 .</p>
26802680 <div class="refsect3">
2681 <a name="id-1.3.42.8.54.5"></a><h4>Parameters</h4>
2681 <a name="id-1.3.43.8.54.5"></a><h4>Parameters</h4>
26822682 <div class="informaltable"><table width="100%" border="0">
26832683 <colgroup>
26842684 <col width="150px" class="parameters_name">
27272727 <p>Extracts the buffering stats values from <em class="parameter"><code>query</code></em>
27282728 .</p>
27292729 <div class="refsect3">
2730 <a name="id-1.3.42.8.55.5"></a><h4>Parameters</h4>
2730 <a name="id-1.3.43.8.55.5"></a><h4>Parameters</h4>
27312731 <div class="informaltable"><table width="100%" border="0">
27322732 <colgroup>
27332733 <col width="150px" class="parameters_name">
27772777 <p>Set the available query result fields in <em class="parameter"><code>query</code></em>
27782778 .</p>
27792779 <div class="refsect3">
2780 <a name="id-1.3.42.8.56.5"></a><h4>Parameters</h4>
2780 <a name="id-1.3.43.8.56.5"></a><h4>Parameters</h4>
27812781 <div class="informaltable"><table width="100%" border="0">
27822782 <colgroup>
27832783 <col width="150px" class="parameters_name">
28312831 other results into the passed parameters, if the respective parameters
28322832 are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p>
28332833 <div class="refsect3">
2834 <a name="id-1.3.42.8.57.5"></a><h4>Parameters</h4>
2834 <a name="id-1.3.43.8.57.5"></a><h4>Parameters</h4>
28352835 <div class="informaltable"><table width="100%" border="0">
28362836 <colgroup>
28372837 <col width="150px" class="parameters_name">
28832883 start position of the array should be inferior to <em class="parameter"><code>start</code></em>
28842884 .</p>
28852885 <div class="refsect3">
2886 <a name="id-1.3.42.8.58.5"></a><h4>Parameters</h4>
2886 <a name="id-1.3.43.8.58.5"></a><h4>Parameters</h4>
28872887 <div class="informaltable"><table width="100%" border="0">
28882888 <colgroup>
28892889 <col width="150px" class="parameters_name">
29102910 </table></div>
29112911 </div>
29122912 <div class="refsect3">
2913 <a name="id-1.3.42.8.58.6"></a><h4>Returns</h4>
2913 <a name="id-1.3.43.8.58.6"></a><h4>Returns</h4>
29142914 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the range was added or not.</p>
29152915 <p></p>
29162916 </div>
29232923 <p>Retrieve the number of values currently stored in the
29242924 buffered-ranges array of the query's structure.</p>
29252925 <div class="refsect3">
2926 <a name="id-1.3.42.8.59.5"></a><h4>Parameters</h4>
2926 <a name="id-1.3.43.8.59.5"></a><h4>Parameters</h4>
29272927 <div class="informaltable"><table width="100%" border="0">
29282928 <colgroup>
29292929 <col width="150px" class="parameters_name">
29382938 </table></div>
29392939 </div>
29402940 <div class="refsect3">
2941 <a name="id-1.3.42.8.59.6"></a><h4>Returns</h4>
2941 <a name="id-1.3.43.8.59.6"></a><h4>Returns</h4>
29422942 <p> the range array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
29432943 <p></p>
29442944 </div>
29552955 at the <em class="parameter"><code>index</code></em>
29562956 of the buffered ranges array.</p>
29572957 <div class="refsect3">
2958 <a name="id-1.3.42.8.60.5"></a><h4>Parameters</h4>
2958 <a name="id-1.3.43.8.60.5"></a><h4>Parameters</h4>
29592959 <div class="informaltable"><table width="100%" border="0">
29602960 <colgroup>
29612961 <col width="150px" class="parameters_name">
29872987 </table></div>
29882988 </div>
29892989 <div class="refsect3">
2990 <a name="id-1.3.42.8.60.6"></a><h4>Returns</h4>
2990 <a name="id-1.3.43.8.60.6"></a><h4>Returns</h4>
29912991 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the parsing succeeded.</p>
29922992 <p></p>
29932993 </div>
30023002 that is used by the source or sink.</p>
30033003 <p>Free-function: gst_query_unref</p>
30043004 <div class="refsect3">
3005 <a name="id-1.3.42.8.61.6"></a><h4>Returns</h4>
3005 <a name="id-1.3.43.8.61.6"></a><h4>Returns</h4>
30063006 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
30073007 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
30083008 </div>
30183018 allocated string, if the respective parameters are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
30193019 Free the string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
30203020 <div class="refsect3">
3021 <a name="id-1.3.42.8.62.5"></a><h4>Parameters</h4>
3021 <a name="id-1.3.43.8.62.5"></a><h4>Parameters</h4>
30223022 <div class="informaltable"><table width="100%" border="0">
30233023 <colgroup>
30243024 <col width="150px" class="parameters_name">
30493049 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
30503050 <p>Answer a URI query by setting the requested URI.</p>
30513051 <div class="refsect3">
3052 <a name="id-1.3.42.8.63.5"></a><h4>Parameters</h4>
3052 <a name="id-1.3.43.8.63.5"></a><h4>Parameters</h4>
30533053 <div class="informaltable"><table width="100%" border="0">
30543054 <colgroup>
30553055 <col width="150px" class="parameters_name">
30823082 allocated string, if the respective parameters are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
30833083 Free the string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
30843084 <div class="refsect3">
3085 <a name="id-1.3.42.8.64.5"></a><h4>Parameters</h4>
3085 <a name="id-1.3.43.8.64.5"></a><h4>Parameters</h4>
30863086 <div class="informaltable"><table width="100%" border="0">
30873087 <colgroup>
30883088 <col width="150px" class="parameters_name">
31143114 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
31153115 <p>Answer a URI query by setting the requested URI redirection.</p>
31163116 <div class="refsect3">
3117 <a name="id-1.3.42.8.65.5"></a><h4>Parameters</h4>
3117 <a name="id-1.3.43.8.65.5"></a><h4>Parameters</h4>
31183118 <div class="informaltable"><table width="100%" border="0">
31193119 <colgroup>
31203120 <col width="150px" class="parameters_name">
31503150 applications should update their internal storage of the URI, otherwise
31513151 they should make all future requests to the original URI.</p>
31523152 <div class="refsect3">
3153 <a name="id-1.3.42.8.66.5"></a><h4>Parameters</h4>
3153 <a name="id-1.3.43.8.66.5"></a><h4>Parameters</h4>
31543154 <div class="informaltable"><table width="100%" border="0">
31553155 <colgroup>
31563156 <col width="150px" class="parameters_name">
31843184 <p>Answer a URI query by setting the requested URI redirection
31853185 to permanent or not.</p>
31863186 <div class="refsect3">
3187 <a name="id-1.3.42.8.67.5"></a><h4>Parameters</h4>
3187 <a name="id-1.3.43.8.67.5"></a><h4>Parameters</h4>
31883188 <div class="informaltable"><table width="100%" border="0">
31893189 <colgroup>
31903190 <col width="150px" class="parameters_name">
32163216 <p>Constructs a new query object for querying the allocation properties.</p>
32173217 <p>Free-function: gst_query_unref</p>
32183218 <div class="refsect3">
3219 <a name="id-1.3.42.8.68.6"></a><h4>Parameters</h4>
3219 <a name="id-1.3.43.8.68.6"></a><h4>Parameters</h4>
32203220 <div class="informaltable"><table width="100%" border="0">
32213221 <colgroup>
32223222 <col width="150px" class="parameters_name">
32383238 </table></div>
32393239 </div>
32403240 <div class="refsect3">
3241 <a name="id-1.3.42.8.68.7"></a><h4>Returns</h4>
3241 <a name="id-1.3.43.8.68.7"></a><h4>Returns</h4>
32423242 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
32433243 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
32443244 </div>
32563256 , if the respective parameters
32573257 are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
32583258 <div class="refsect3">
3259 <a name="id-1.3.42.8.69.5"></a><h4>Parameters</h4>
3259 <a name="id-1.3.43.8.69.5"></a><h4>Parameters</h4>
32603260 <div class="informaltable"><table width="100%" border="0">
32613261 <colgroup>
32623262 <col width="150px" class="parameters_name">
32953295 <p>Set the pool parameters in <em class="parameter"><code>query</code></em>
32963296 .</p>
32973297 <div class="refsect3">
3298 <a name="id-1.3.42.8.70.5"></a><h4>Parameters</h4>
3298 <a name="id-1.3.43.8.70.5"></a><h4>Parameters</h4>
32993299 <div class="informaltable"><table width="100%" border="0">
33003300 <colgroup>
33013301 <col width="150px" class="parameters_name">
33403340 <p>Retrieve the number of values currently stored in the
33413341 pool array of the query's structure.</p>
33423342 <div class="refsect3">
3343 <a name="id-1.3.42.8.71.5"></a><h4>Parameters</h4>
3343 <a name="id-1.3.43.8.71.5"></a><h4>Parameters</h4>
33443344 <div class="informaltable"><table width="100%" border="0">
33453345 <colgroup>
33463346 <col width="150px" class="parameters_name">
33553355 </table></div>
33563356 </div>
33573357 <div class="refsect3">
3358 <a name="id-1.3.42.8.71.6"></a><h4>Returns</h4>
3358 <a name="id-1.3.43.8.71.6"></a><h4>Returns</h4>
33593359 <p> the pool array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
33603360 <p></p>
33613361 </div>
33753375 <p>Unref <em class="parameter"><code>pool</code></em>
33763376 with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> when it's not needed any more.</p>
33773377 <div class="refsect3">
3378 <a name="id-1.3.42.8.72.6"></a><h4>Parameters</h4>
3378 <a name="id-1.3.43.8.72.6"></a><h4>Parameters</h4>
33793379 <div class="informaltable"><table width="100%" border="0">
33803380 <colgroup>
33813381 <col width="150px" class="parameters_name">
34303430 <p>Set the pool parameters in <em class="parameter"><code>query</code></em>
34313431 .</p>
34323432 <div class="refsect3">
3433 <a name="id-1.3.42.8.73.5"></a><h4>Parameters</h4>
3433 <a name="id-1.3.43.8.73.5"></a><h4>Parameters</h4>
34343434 <div class="informaltable"><table width="100%" border="0">
34353435 <colgroup>
34363436 <col width="150px" class="parameters_name">
34813481 <p>Remove the allocation pool at <em class="parameter"><code>index</code></em>
34823482 of the allocation pool array.</p>
34833483 <div class="refsect3">
3484 <a name="id-1.3.42.8.74.5"></a><h4>Parameters</h4>
3484 <a name="id-1.3.43.8.74.5"></a><h4>Parameters</h4>
34853485 <div class="informaltable"><table width="100%" border="0">
34863486 <colgroup>
34873487 <col width="150px" class="parameters_name">
35153515 and its <em class="parameter"><code>params</code></em>
35163516 as a supported memory allocator.</p>
35173517 <div class="refsect3">
3518 <a name="id-1.3.42.8.75.5"></a><h4>Parameters</h4>
3518 <a name="id-1.3.43.8.75.5"></a><h4>Parameters</h4>
35193519 <div class="informaltable"><table width="100%" border="0">
35203520 <colgroup>
35213521 <col width="150px" class="parameters_name">
35543554 should be generic and allow mapping to system memory, all following
35553555 allocators should be ordered by preference with the preferred one first.</p>
35563556 <div class="refsect3">
3557 <a name="id-1.3.42.8.76.6"></a><h4>Parameters</h4>
3557 <a name="id-1.3.43.8.76.6"></a><h4>Parameters</h4>
35583558 <div class="informaltable"><table width="100%" border="0">
35593559 <colgroup>
35603560 <col width="150px" class="parameters_name">
35693569 </table></div>
35703570 </div>
35713571 <div class="refsect3">
3572 <a name="id-1.3.42.8.76.7"></a><h4>Returns</h4>
3572 <a name="id-1.3.43.8.76.7"></a><h4>Returns</h4>
35733573 <p> the allocator array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
35743574 <p></p>
35753575 </div>
35863586 at <em class="parameter"><code>index</code></em>
35873587 of the allocator array.</p>
35883588 <div class="refsect3">
3589 <a name="id-1.3.42.8.77.5"></a><h4>Parameters</h4>
3589 <a name="id-1.3.43.8.77.5"></a><h4>Parameters</h4>
35903590 <div class="informaltable"><table width="100%" border="0">
35913591 <colgroup>
35923592 <col width="150px" class="parameters_name">
36303630 at <em class="parameter"><code>index</code></em>
36313631 of the allocator array.</p>
36323632 <div class="refsect3">
3633 <a name="id-1.3.42.8.78.5"></a><h4>Parameters</h4>
3633 <a name="id-1.3.43.8.78.5"></a><h4>Parameters</h4>
36343634 <div class="informaltable"><table width="100%" border="0">
36353635 <colgroup>
36363636 <col width="150px" class="parameters_name">
36713671 <p>Remove the allocation param at <em class="parameter"><code>index</code></em>
36723672 of the allocation param array.</p>
36733673 <div class="refsect3">
3674 <a name="id-1.3.42.8.79.5"></a><h4>Parameters</h4>
3674 <a name="id-1.3.43.8.79.5"></a><h4>Parameters</h4>
36753675 <div class="informaltable"><table width="100%" border="0">
36763676 <colgroup>
36773677 <col width="150px" class="parameters_name">
37063706 as one of the supported metadata API to <em class="parameter"><code>query</code></em>
37073707 .</p>
37083708 <div class="refsect3">
3709 <a name="id-1.3.42.8.80.5"></a><h4>Parameters</h4>
3709 <a name="id-1.3.43.8.80.5"></a><h4>Parameters</h4>
37103710 <div class="informaltable"><table width="100%" border="0">
37113711 <colgroup>
37123712 <col width="150px" class="parameters_name">
37413741 <p>Retrieve the number of values currently stored in the
37423742 meta API array of the query's structure.</p>
37433743 <div class="refsect3">
3744 <a name="id-1.3.42.8.81.5"></a><h4>Parameters</h4>
3744 <a name="id-1.3.43.8.81.5"></a><h4>Parameters</h4>
37453745 <div class="informaltable"><table width="100%" border="0">
37463746 <colgroup>
37473747 <col width="150px" class="parameters_name">
37563756 </table></div>
37573757 </div>
37583758 <div class="refsect3">
3759 <a name="id-1.3.42.8.81.6"></a><h4>Returns</h4>
3759 <a name="id-1.3.43.8.81.6"></a><h4>Returns</h4>
37603760 <p> the metadata API array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
37613761 <p></p>
37623762 </div>
37723772 at <em class="parameter"><code>index</code></em>
37733773 of the metadata API array.</p>
37743774 <div class="refsect3">
3775 <a name="id-1.3.42.8.82.5"></a><h4>Parameters</h4>
3775 <a name="id-1.3.43.8.82.5"></a><h4>Parameters</h4>
37763776 <div class="informaltable"><table width="100%" border="0">
37773777 <colgroup>
37783778 <col width="150px" class="parameters_name">
37993799 </table></div>
38003800 </div>
38013801 <div class="refsect3">
3802 <a name="id-1.3.42.8.82.6"></a><h4>Returns</h4>
3802 <a name="id-1.3.43.8.82.6"></a><h4>Returns</h4>
38033803 <p> a <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of the metadata API at <em class="parameter"><code>index</code></em>
38043804 .</p>
38053805 <p></p>
38143814 <p>Remove the metadata API at <em class="parameter"><code>index</code></em>
38153815 of the metadata API array.</p>
38163816 <div class="refsect3">
3817 <a name="id-1.3.42.8.83.5"></a><h4>Parameters</h4>
3817 <a name="id-1.3.43.8.83.5"></a><h4>Parameters</h4>
38183818 <div class="informaltable"><table width="100%" border="0">
38193819 <colgroup>
38203820 <col width="150px" class="parameters_name">
38503850 will contain the index where the requested API and the flags can be
38513851 found.</p>
38523852 <div class="refsect3">
3853 <a name="id-1.3.42.8.84.5"></a><h4>Parameters</h4>
3853 <a name="id-1.3.43.8.84.5"></a><h4>Parameters</h4>
38543854 <div class="informaltable"><table width="100%" border="0">
38553855 <colgroup>
38563856 <col width="150px" class="parameters_name">
38773877 </table></div>
38783878 </div>
38793879 <div class="refsect3">
3880 <a name="id-1.3.42.8.84.6"></a><h4>Returns</h4>
3880 <a name="id-1.3.43.8.84.6"></a><h4>Returns</h4>
38813881 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>api</code></em>
38823882 is in the list of metadata.</p>
38833883 <p></p>
38913891 <p>Constructs a new query object for querying the scheduling properties.</p>
38923892 <p>Free-function: gst_query_unref</p>
38933893 <div class="refsect3">
3894 <a name="id-1.3.42.8.85.6"></a><h4>Returns</h4>
3894 <a name="id-1.3.43.8.85.6"></a><h4>Returns</h4>
38953895 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
38963896 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
38973897 </div>
39073907 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *align</code></em>);</pre>
39083908 <p>Set the scheduling properties.</p>
39093909 <div class="refsect3">
3910 <a name="id-1.3.42.8.86.5"></a><h4>Parameters</h4>
3910 <a name="id-1.3.43.8.86.5"></a><h4>Parameters</h4>
39113911 <div class="informaltable"><table width="100%" border="0">
39123912 <colgroup>
39133913 <col width="150px" class="parameters_name">
39553955 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> align</code></em>);</pre>
39563956 <p>Set the scheduling properties.</p>
39573957 <div class="refsect3">
3958 <a name="id-1.3.42.8.87.5"></a><h4>Parameters</h4>
3958 <a name="id-1.3.43.8.87.5"></a><h4>Parameters</h4>
39593959 <div class="informaltable"><table width="100%" border="0">
39603960 <colgroup>
39613961 <col width="150px" class="parameters_name">
40024002 as one of the supported scheduling modes to <em class="parameter"><code>query</code></em>
40034003 .</p>
40044004 <div class="refsect3">
4005 <a name="id-1.3.42.8.88.5"></a><h4>Parameters</h4>
4005 <a name="id-1.3.43.8.88.5"></a><h4>Parameters</h4>
40064006 <div class="informaltable"><table width="100%" border="0">
40074007 <colgroup>
40084008 <col width="150px" class="parameters_name">
40324032 <p>Retrieve the number of values currently stored in the
40334033 scheduling mode array of the query's structure.</p>
40344034 <div class="refsect3">
4035 <a name="id-1.3.42.8.89.5"></a><h4>Parameters</h4>
4035 <a name="id-1.3.43.8.89.5"></a><h4>Parameters</h4>
40364036 <div class="informaltable"><table width="100%" border="0">
40374037 <colgroup>
40384038 <col width="150px" class="parameters_name">
40474047 </table></div>
40484048 </div>
40494049 <div class="refsect3">
4050 <a name="id-1.3.42.8.89.6"></a><h4>Returns</h4>
4050 <a name="id-1.3.43.8.89.6"></a><h4>Returns</h4>
40514051 <p> the scheduling mode array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
40524052 <p></p>
40534053 </div>
40624062 at <em class="parameter"><code>index</code></em>
40634063 of the scheduling modes array.</p>
40644064 <div class="refsect3">
4065 <a name="id-1.3.42.8.90.5"></a><h4>Parameters</h4>
4065 <a name="id-1.3.43.8.90.5"></a><h4>Parameters</h4>
40664066 <div class="informaltable"><table width="100%" border="0">
40674067 <colgroup>
40684068 <col width="150px" class="parameters_name">
40844084 </table></div>
40854085 </div>
40864086 <div class="refsect3">
4087 <a name="id-1.3.42.8.90.6"></a><h4>Returns</h4>
4087 <a name="id-1.3.43.8.90.6"></a><h4>Returns</h4>
40884088 <p> a <a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> of the scheduling mode at <em class="parameter"><code>index</code></em>
40894089 .</p>
40904090 <p></p>
41064106 random access is supported, not only sequential pulls).
41074107 </p></div>
41084108 <div class="refsect3">
4109 <a name="id-1.3.42.8.91.6"></a><h4>Parameters</h4>
4109 <a name="id-1.3.43.8.91.6"></a><h4>Parameters</h4>
41104110 <div class="informaltable"><table width="100%" border="0">
41114111 <colgroup>
41124112 <col width="150px" class="parameters_name">
41284128 </table></div>
41294129 </div>
41304130 <div class="refsect3">
4131 <a name="id-1.3.42.8.91.7"></a><h4>Returns</h4>
4131 <a name="id-1.3.43.8.91.7"></a><h4>Returns</h4>
41324132 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>mode</code></em>
41334133 is in the list of scheduling modes.</p>
41344134 <p></p>
41474147 is set in
41484148 query scheduling flags.</p>
41494149 <div class="refsect3">
4150 <a name="id-1.3.42.8.92.5"></a><h4>Parameters</h4>
4150 <a name="id-1.3.43.8.92.5"></a><h4>Parameters</h4>
41514151 <div class="informaltable"><table width="100%" border="0">
41524152 <colgroup>
41534153 <col width="150px" class="parameters_name">
41744174 </table></div>
41754175 </div>
41764176 <div class="refsect3">
4177 <a name="id-1.3.42.8.92.6"></a><h4>Returns</h4>
4177 <a name="id-1.3.43.8.92.6"></a><h4>Returns</h4>
41784178 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>mode</code></em>
41794179 is in the list of scheduling modes
41804180 and <em class="parameter"><code>flags</code></em>
41904190 <p>Constructs a new query object for querying the drain state.</p>
41914191 <p>Free-function: gst_query_unref</p>
41924192 <div class="refsect3">
4193 <a name="id-1.3.42.8.93.6"></a><h4>Returns</h4>
4193 <a name="id-1.3.43.8.93.6"></a><h4>Returns</h4>
41944194 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
41954195 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
41964196 </div>
42034203 <p>Constructs a new query object for querying the pipeline-local context.</p>
42044204 <p>Free-function: gst_query_unref</p>
42054205 <div class="refsect3">
4206 <a name="id-1.3.42.8.94.6"></a><h4>Parameters</h4>
4206 <a name="id-1.3.43.8.94.6"></a><h4>Parameters</h4>
42074207 <div class="informaltable"><table width="100%" border="0">
42084208 <colgroup>
42094209 <col width="150px" class="parameters_name">
42184218 </table></div>
42194219 </div>
42204220 <div class="refsect3">
4221 <a name="id-1.3.42.8.94.7"></a><h4>Returns</h4>
4221 <a name="id-1.3.43.8.94.7"></a><h4>Returns</h4>
42224222 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
42234223 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
42244224 </div>
42324232 <em class="parameter"><code><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
42334233 <p>Answer a context query by setting the requested context.</p>
42344234 <div class="refsect3">
4235 <a name="id-1.3.42.8.95.5"></a><h4>Parameters</h4>
4235 <a name="id-1.3.43.8.95.5"></a><h4>Parameters</h4>
42364236 <div class="informaltable"><table width="100%" border="0">
42374237 <colgroup>
42384238 <col width="150px" class="parameters_name">
42664266 <em class="parameter"><code>query</code></em>
42674267 remains valid.</p>
42684268 <div class="refsect3">
4269 <a name="id-1.3.42.8.96.5"></a><h4>Parameters</h4>
4269 <a name="id-1.3.43.8.96.5"></a><h4>Parameters</h4>
42704270 <div class="informaltable"><table width="100%" border="0">
42714271 <colgroup>
42724272 <col width="150px" class="parameters_name">
42974297 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **context_type</code></em>);</pre>
42984298 <p>Parse a context type from an existing GST_QUERY_CONTEXT query.</p>
42994299 <div class="refsect3">
4300 <a name="id-1.3.42.8.97.5"></a><h4>Parameters</h4>
4300 <a name="id-1.3.43.8.97.5"></a><h4>Parameters</h4>
43014301 <div class="informaltable"><table width="100%" border="0">
43024302 <colgroup>
43034303 <col width="150px" class="parameters_name">
43194319 </table></div>
43204320 </div>
43214321 <div class="refsect3">
4322 <a name="id-1.3.42.8.97.6"></a><h4>Returns</h4>
4322 <a name="id-1.3.43.8.97.6"></a><h4>Returns</h4>
43234323 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the parsing succeeded.</p>
43244324 <p></p>
43254325 </div>
43384338 </pre>
43394339 <p>The <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> structure.</p>
43404340 <div class="refsect3">
4341 <a name="id-1.3.42.9.2.5"></a><h4>Members</h4>
4341 <a name="id-1.3.43.9.2.5"></a><h4>Members</h4>
43424342 <div class="informaltable"><table width="100%" border="0">
43434343 <colgroup>
43444344 <col width="300px" class="struct_members_name">
43674367 values. You can get the type flags of a <a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> with the
43684368 <a class="link" href="GstQuery.html#gst-query-type-get-flags" title="gst_query_type_get_flags ()"><code class="function">gst_query_type_get_flags()</code></a> function.</p>
43694369 <div class="refsect3">
4370 <a name="id-1.3.42.9.3.4"></a><h4>Members</h4>
4370 <a name="id-1.3.43.9.3.4"></a><h4>Members</h4>
43714371 <div class="informaltable"><table width="100%" border="0">
43724372 <colgroup>
43734373 <col width="300px" class="enum_members_name">
44124412 <a name="GstQueryType"></a><h3>enum GstQueryType</h3>
44134413 <p>Standard predefined Query types</p>
44144414 <div class="refsect3">
4415 <a name="id-1.3.42.9.5.4"></a><h4>Members</h4>
4415 <a name="id-1.3.43.9.5.4"></a><h4>Members</h4>
44164416 <div class="informaltable"><table width="100%" border="0">
44174417 <colgroup>
44184418 <col width="300px" class="enum_members_name">
45634563 <a name="GstBufferingMode"></a><h3>enum GstBufferingMode</h3>
45644564 <p>The different types of buffering methods.</p>
45654565 <div class="refsect3">
4566 <a name="id-1.3.42.9.6.4"></a><h4>Members</h4>
4566 <a name="id-1.3.43.9.6.4"></a><h4>Members</h4>
45674567 <div class="informaltable"><table width="100%" border="0">
45684568 <colgroup>
45694569 <col width="300px" class="enum_members_name">
46084608 <a name="GstSchedulingFlags"></a><h3>enum GstSchedulingFlags</h3>
46094609 <p>The different scheduling flags.</p>
46104610 <div class="refsect3">
4611 <a name="id-1.3.42.9.7.4"></a><h4>Members</h4>
4611 <a name="id-1.3.43.9.7.4"></a><h4>Members</h4>
46124612 <div class="informaltable"><table width="100%" border="0">
46134613 <colgroup>
46144614 <col width="300px" class="enum_members_name">
311311 reference on the registry, as it is alive as long as GStreamer is
312312 initialized.</p>
313313 <div class="refsect3">
314 <a name="id-1.3.43.9.2.5"></a><h4>Returns</h4>
314 <a name="id-1.3.44.9.2.5"></a><h4>Returns</h4>
315315 <p> the <a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a>. </p>
316316 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
317317 </div>
325325 <p>Retrieves a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> of <em class="parameter"><code>type</code></em>
326326 .</p>
327327 <div class="refsect3">
328 <a name="id-1.3.43.9.3.5"></a><h4>Parameters</h4>
328 <a name="id-1.3.44.9.3.5"></a><h4>Parameters</h4>
329329 <div class="informaltable"><table width="100%" border="0">
330330 <colgroup>
331331 <col width="150px" class="parameters_name">
347347 </table></div>
348348 </div>
349349 <div class="refsect3">
350 <a name="id-1.3.43.9.3.6"></a><h4>Returns</h4>
350 <a name="id-1.3.44.9.3.6"></a><h4>Returns</h4>
351351 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
352352 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> of <em class="parameter"><code>type</code></em>
353353 . Use <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after use</p>
363363 <p>Returns the registry's feature list cookie. This changes
364364 every time a feature is added or removed from the registry.</p>
365365 <div class="refsect3">
366 <a name="id-1.3.43.9.4.5"></a><h4>Parameters</h4>
366 <a name="id-1.3.44.9.4.5"></a><h4>Parameters</h4>
367367 <div class="informaltable"><table width="100%" border="0">
368368 <colgroup>
369369 <col width="150px" class="parameters_name">
378378 </table></div>
379379 </div>
380380 <div class="refsect3">
381 <a name="id-1.3.43.9.4.6"></a><h4>Returns</h4>
381 <a name="id-1.3.44.9.4.6"></a><h4>Returns</h4>
382382 <p> the feature list cookie.</p>
383383 <p></p>
384384 </div>
393393 <p>Retrieves a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of features of the plugin with name <em class="parameter"><code>name</code></em>
394394 .</p>
395395 <div class="refsect3">
396 <a name="id-1.3.43.9.5.5"></a><h4>Parameters</h4>
396 <a name="id-1.3.44.9.5.5"></a><h4>Parameters</h4>
397397 <div class="informaltable"><table width="100%" border="0">
398398 <colgroup>
399399 <col width="150px" class="parameters_name">
415415 </table></div>
416416 </div>
417417 <div class="refsect3">
418 <a name="id-1.3.43.9.5.6"></a><h4>Returns</h4>
418 <a name="id-1.3.44.9.5.6"></a><h4>Returns</h4>
419419 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
420420 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>. Use <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after usage. </p>
421421 <p><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> Gst.PluginFeature]</span></p>
429429 <p>Get a copy of all plugins registered in the given registry. The refcount
430430 of each element in the list in incremented.</p>
431431 <div class="refsect3">
432 <a name="id-1.3.43.9.6.5"></a><h4>Parameters</h4>
432 <a name="id-1.3.44.9.6.5"></a><h4>Parameters</h4>
433433 <div class="informaltable"><table width="100%" border="0">
434434 <colgroup>
435435 <col width="150px" class="parameters_name">
444444 </table></div>
445445 </div>
446446 <div class="refsect3">
447 <a name="id-1.3.43.9.6.6"></a><h4>Returns</h4>
447 <a name="id-1.3.44.9.6.6"></a><h4>Returns</h4>
448448 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>.
449449 Use <a class="link" href="GstPlugin.html#gst-plugin-list-free" title="gst_plugin_list_free ()"><code class="function">gst_plugin_list_free()</code></a> after usage.</p>
450450 <p>MT safe. </p>
461461 This function will sink <em class="parameter"><code>plugin</code></em>
462462 .</p>
463463 <div class="refsect3">
464 <a name="id-1.3.43.9.7.5"></a><h4>Parameters</h4>
464 <a name="id-1.3.44.9.7.5"></a><h4>Parameters</h4>
465465 <div class="informaltable"><table width="100%" border="0">
466466 <colgroup>
467467 <col width="150px" class="parameters_name">
483483 </table></div>
484484 </div>
485485 <div class="refsect3">
486 <a name="id-1.3.43.9.7.6"></a><h4>Returns</h4>
486 <a name="id-1.3.44.9.7.6"></a><h4>Returns</h4>
487487 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
488488 <p>MT safe.</p>
489489 <p></p>
498498 <p>Remove the plugin from the registry.</p>
499499 <p>MT safe.</p>
500500 <div class="refsect3">
501 <a name="id-1.3.43.9.8.6"></a><h4>Parameters</h4>
501 <a name="id-1.3.44.9.8.6"></a><h4>Parameters</h4>
502502 <div class="informaltable"><table width="100%" border="0">
503503 <colgroup>
504504 <col width="150px" class="parameters_name">
534534 Every plugin is reffed; use <a class="link" href="GstPlugin.html#gst-plugin-list-free" title="gst_plugin_list_free ()"><code class="function">gst_plugin_list_free()</code></a> after use, which
535535 will unref again.</p>
536536 <div class="refsect3">
537 <a name="id-1.3.43.9.9.5"></a><h4>Parameters</h4>
537 <a name="id-1.3.44.9.9.5"></a><h4>Parameters</h4>
538538 <div class="informaltable"><table width="100%" border="0">
539539 <colgroup>
540540 <col width="150px" class="parameters_name">
566566 </table></div>
567567 </div>
568568 <div class="refsect3">
569 <a name="id-1.3.43.9.9.6"></a><h4>Returns</h4>
569 <a name="id-1.3.44.9.9.6"></a><h4>Returns</h4>
570570 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>.
571571 Use <a class="link" href="GstPlugin.html#gst-plugin-list-free" title="gst_plugin_list_free ()"><code class="function">gst_plugin_list_free()</code></a> after usage.</p>
572572 <p>MT safe. </p>
586586 If the first flag is set, only the first match is
587587 returned (as a list with a single object).</p>
588588 <div class="refsect3">
589 <a name="id-1.3.43.9.10.5"></a><h4>Parameters</h4>
589 <a name="id-1.3.44.9.10.5"></a><h4>Parameters</h4>
590590 <div class="informaltable"><table width="100%" border="0">
591591 <colgroup>
592592 <col width="150px" class="parameters_name">
618618 </table></div>
619619 </div>
620620 <div class="refsect3">
621 <a name="id-1.3.43.9.10.6"></a><h4>Returns</h4>
621 <a name="id-1.3.44.9.10.6"></a><h4>Returns</h4>
622622 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
623623 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>. Use <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after usage.</p>
624624 <p>MT safe. </p>
634634 <p>Find the plugin with the given name in the registry.
635635 The plugin will be reffed; caller is responsible for unreffing.</p>
636636 <div class="refsect3">
637 <a name="id-1.3.43.9.11.5"></a><h4>Parameters</h4>
637 <a name="id-1.3.44.9.11.5"></a><h4>Parameters</h4>
638638 <div class="informaltable"><table width="100%" border="0">
639639 <colgroup>
640640 <col width="150px" class="parameters_name">
656656 </table></div>
657657 </div>
658658 <div class="refsect3">
659 <a name="id-1.3.43.9.11.6"></a><h4>Returns</h4>
659 <a name="id-1.3.44.9.11.6"></a><h4>Returns</h4>
660660 <p> the plugin with the given name
661661 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the plugin was not found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after
662662 usage.</p>
673673 <em class="parameter"><code><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
674674 <p>Find the pluginfeature with the given name and type in the registry.</p>
675675 <div class="refsect3">
676 <a name="id-1.3.43.9.12.5"></a><h4>Parameters</h4>
676 <a name="id-1.3.44.9.12.5"></a><h4>Parameters</h4>
677677 <div class="informaltable"><table width="100%" border="0">
678678 <colgroup>
679679 <col width="150px" class="parameters_name">
700700 </table></div>
701701 </div>
702702 <div class="refsect3">
703 <a name="id-1.3.43.9.12.6"></a><h4>Returns</h4>
703 <a name="id-1.3.44.9.12.6"></a><h4>Returns</h4>
704704 <p> the pluginfeature with the
705705 given name and type or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the plugin was not
706706 found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage.</p>
718718 in <em class="parameter"><code>registry</code></em>
719719 .</p>
720720 <div class="refsect3">
721 <a name="id-1.3.43.9.13.5"></a><h4>Parameters</h4>
721 <a name="id-1.3.44.9.13.5"></a><h4>Parameters</h4>
722722 <div class="informaltable"><table width="100%" border="0">
723723 <colgroup>
724724 <col width="150px" class="parameters_name">
740740 </table></div>
741741 </div>
742742 <div class="refsect3">
743 <a name="id-1.3.43.9.13.6"></a><h4>Returns</h4>
743 <a name="id-1.3.44.9.13.6"></a><h4>Returns</h4>
744744 <p> a <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> with its refcount incremented,
745745 use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage.</p>
746746 <p>MT safe. </p>
757757 path is specific to the registry. If the path has already been
758758 added, do nothing.</p>
759759 <div class="refsect3">
760 <a name="id-1.3.43.9.14.5"></a><h4>Parameters</h4>
760 <a name="id-1.3.44.9.14.5"></a><h4>Parameters</h4>
761761 <div class="informaltable"><table width="100%" border="0">
762762 <colgroup>
763763 <col width="150px" class="parameters_name">
786786 gst_registry_get_path_list (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>);</pre>
787787 <p>Get the list of paths for the given registry.</p>
788788 <div class="refsect3">
789 <a name="id-1.3.43.9.15.5"></a><h4>Parameters</h4>
789 <a name="id-1.3.44.9.15.5"></a><h4>Parameters</h4>
790790 <div class="informaltable"><table width="100%" border="0">
791791 <colgroup>
792792 <col width="150px" class="parameters_name">
801801 </table></div>
802802 </div>
803803 <div class="refsect3">
804 <a name="id-1.3.43.9.15.6"></a><h4>Returns</h4>
804 <a name="id-1.3.44.9.15.6"></a><h4>Returns</h4>
805805 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of paths as
806806 strings. g_list_free after use.</p>
807807 <p>MT safe. </p>
817817 <p>Scan the given path for plugins to add to the registry. The syntax of the
818818 path is specific to the registry.</p>
819819 <div class="refsect3">
820 <a name="id-1.3.43.9.16.5"></a><h4>Parameters</h4>
820 <a name="id-1.3.44.9.16.5"></a><h4>Parameters</h4>
821821 <div class="informaltable"><table width="100%" border="0">
822822 <colgroup>
823823 <col width="150px" class="parameters_name">
839839 </table></div>
840840 </div>
841841 <div class="refsect3">
842 <a name="id-1.3.43.9.16.6"></a><h4>Returns</h4>
842 <a name="id-1.3.44.9.16.6"></a><h4>Returns</h4>
843843 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if registry changed</p>
844844 <p></p>
845845 </div>
853853 <p>Look up a plugin in the given registry with the given filename.
854854 If found, plugin is reffed.</p>
855855 <div class="refsect3">
856 <a name="id-1.3.43.9.17.5"></a><h4>Parameters</h4>
856 <a name="id-1.3.44.9.17.5"></a><h4>Parameters</h4>
857857 <div class="informaltable"><table width="100%" border="0">
858858 <colgroup>
859859 <col width="150px" class="parameters_name">
875875 </table></div>
876876 </div>
877877 <div class="refsect3">
878 <a name="id-1.3.43.9.17.6"></a><h4>Returns</h4>
878 <a name="id-1.3.44.9.17.6"></a><h4>Returns</h4>
879879 <p> the <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> if found, or
880880 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. </p>
881881 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
890890 <p>Remove the feature from the registry.</p>
891891 <p>MT safe.</p>
892892 <div class="refsect3">
893 <a name="id-1.3.43.9.18.6"></a><h4>Parameters</h4>
893 <a name="id-1.3.44.9.18.6"></a><h4>Parameters</h4>
894894 <div class="informaltable"><table width="100%" border="0">
895895 <colgroup>
896896 <col width="150px" class="parameters_name">
922922 This function sinks <em class="parameter"><code>feature</code></em>
923923 .</p>
924924 <div class="refsect3">
925 <a name="id-1.3.43.9.19.5"></a><h4>Parameters</h4>
925 <a name="id-1.3.44.9.19.5"></a><h4>Parameters</h4>
926926 <div class="informaltable"><table width="100%" border="0">
927927 <colgroup>
928928 <col width="150px" class="parameters_name">
944944 </table></div>
945945 </div>
946946 <div class="refsect3">
947 <a name="id-1.3.43.9.19.6"></a><h4>Returns</h4>
947 <a name="id-1.3.44.9.19.6"></a><h4>Returns</h4>
948948 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
949949 <p>MT safe.</p>
950950 <p></p>
964964 and whether its version is at least the
965965 version required.</p>
966966 <div class="refsect3">
967 <a name="id-1.3.43.9.20.5"></a><h4>Parameters</h4>
967 <a name="id-1.3.44.9.20.5"></a><h4>Parameters</h4>
968968 <div class="informaltable"><table width="100%" border="0">
969969 <colgroup>
970970 <col width="150px" class="parameters_name">
10011001 </table></div>
10021002 </div>
10031003 <div class="refsect3">
1004 <a name="id-1.3.43.9.20.6"></a><h4>Returns</h4>
1004 <a name="id-1.3.44.9.20.6"></a><h4>Returns</h4>
10051005 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the feature could be found and the version is
10061006 the same as the required version or newer, and <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
10071007 <p></p>
10271027 <p>Signals that a feature has been added to the registry (possibly
10281028 replacing a previously-added one by the same name)</p>
10291029 <div class="refsect3">
1030 <a name="id-1.3.43.11.2.5"></a><h4>Parameters</h4>
1030 <a name="id-1.3.44.11.2.5"></a><h4>Parameters</h4>
10311031 <div class="informaltable"><table width="100%" border="0">
10321032 <colgroup>
10331033 <col width="150px" class="parameters_name">
10651065 <p>Signals that a plugin has been added to the registry (possibly
10661066 replacing a previously-added one by the same name)</p>
10671067 <div class="refsect3">
1068 <a name="id-1.3.43.11.3.5"></a><h4>Parameters</h4>
1068 <a name="id-1.3.44.11.3.5"></a><h4>Parameters</h4>
10691069 <div class="informaltable"><table width="100%" border="0">
10701070 <colgroup>
10711071 <col width="150px" class="parameters_name">
9898 </tr>
9999 <tr>
100100 <td class="function_type">
101 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
102 </td>
103 <td class="function_name">
104 <a class="link" href="GstSegment.html#gst-segment-to-running-time-full" title="gst_segment_to_running_time_full ()">gst_segment_to_running_time_full</a> <span class="c_punctuation">()</span>
105 </td>
106 </tr>
107 <tr>
108 <td class="function_type">
101109 <span class="returnvalue">guint64</span>
102110 </td>
103111 <td class="function_name">
134142 </td>
135143 <td class="function_name">
136144 <a class="link" href="GstSegment.html#gst-segment-offset-running-time" title="gst_segment_offset_running_time ()">gst_segment_offset_running_time</a> <span class="c_punctuation">()</span>
145 </td>
146 </tr>
147 <tr>
148 <td class="function_type">
149 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
150 </td>
151 <td class="function_name">
152 <a class="link" href="GstSegment.html#gst-segment-is-equal" title="gst_segment_is_equal ()">gst_segment_is_equal</a> <span class="c_punctuation">()</span>
137153 </td>
138154 </tr>
139155 </tbody>
250266 will be set to the end of the
251267 segment. Depending on the use case, this may or may not be what you want.</p>
252268 <div class="refsect3">
253 <a name="id-1.3.44.8.2.8"></a><h4>Parameters</h4>
269 <a name="id-1.3.45.8.2.8"></a><h4>Parameters</h4>
254270 <div class="informaltable"><table width="100%" border="0">
255271 <colgroup>
256272 <col width="150px" class="parameters_name">
292308 </table></div>
293309 </div>
294310 <div class="refsect3">
295 <a name="id-1.3.44.8.2.9"></a><h4>Returns</h4>
311 <a name="id-1.3.45.8.2.9"></a><h4>Returns</h4>
296312 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given <em class="parameter"><code>start</code></em>
297313 and <em class="parameter"><code>stop</code></em>
298314 times fall partially or
314330 <p>Initialize <em class="parameter"><code>segment</code></em>
315331 to its default values.</p>
316332 <div class="refsect3">
317 <a name="id-1.3.44.8.3.6"></a><h4>Parameters</h4>
333 <a name="id-1.3.45.8.3.6"></a><h4>Parameters</h4>
318334 <div class="informaltable"><table width="100%" border="0">
319335 <colgroup>
320336 <col width="150px" class="parameters_name">
345361 <a class="link" href="GstSegment.html#gst-segment-init" title="gst_segment_init ()"><code class="function">gst_segment_init()</code></a>.</p>
346362 <p>Free-function: gst_segment_free</p>
347363 <div class="refsect3">
348 <a name="id-1.3.44.8.4.6"></a><h4>Returns</h4>
364 <a name="id-1.3.45.8.4.6"></a><h4>Returns</h4>
349365 <p> a new <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a>, free with <a class="link" href="GstSegment.html#gst-segment-free" title="gst_segment_free ()"><code class="function">gst_segment_free()</code></a>. </p>
350366 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
351367 </div>
359375 .</p>
360376 <p>Free-function: gst_segment_free</p>
361377 <div class="refsect3">
362 <a name="id-1.3.44.8.5.6"></a><h4>Parameters</h4>
378 <a name="id-1.3.45.8.5.6"></a><h4>Parameters</h4>
363379 <div class="informaltable"><table width="100%" border="0">
364380 <colgroup>
365381 <col width="150px" class="parameters_name">
374390 </table></div>
375391 </div>
376392 <div class="refsect3">
377 <a name="id-1.3.44.8.5.7"></a><h4>Returns</h4>
393 <a name="id-1.3.45.8.5.7"></a><h4>Returns</h4>
378394 <p> a new <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a>, free with <a class="link" href="GstSegment.html#gst-segment-free" title="gst_segment_free ()"><code class="function">gst_segment_free()</code></a>. </p>
379395 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
380396 </div>
387403 <p>Free the allocated segment <em class="parameter"><code>segment</code></em>
388404 .</p>
389405 <div class="refsect3">
390 <a name="id-1.3.44.8.6.5"></a><h4>Parameters</h4>
406 <a name="id-1.3.45.8.6.5"></a><h4>Parameters</h4>
391407 <div class="informaltable"><table width="100%" border="0">
392408 <colgroup>
393409 <col width="150px" class="parameters_name">
456472
457473 has been changed but not the playback position.</p>
458474 <div class="refsect3">
459 <a name="id-1.3.44.8.7.10"></a><h4>Parameters</h4>
475 <a name="id-1.3.45.8.7.10"></a><h4>Parameters</h4>
460476 <div class="informaltable"><table width="100%" border="0">
461477 <colgroup>
462478 <col width="150px" class="parameters_name">
513529 </table></div>
514530 </div>
515531 <div class="refsect3">
516 <a name="id-1.3.44.8.7.11"></a><h4>Returns</h4>
532 <a name="id-1.3.45.8.7.11"></a><h4>Returns</h4>
517533 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the seek could be performed.</p>
518534 <p></p>
519535 </div>
536552 <p>This function returns -1 if the position is outside of <em class="parameter"><code>segment</code></em>
537553 start and stop.</p>
538554 <div class="refsect3">
539 <a name="id-1.3.44.8.8.7"></a><h4>Parameters</h4>
555 <a name="id-1.3.45.8.8.7"></a><h4>Parameters</h4>
540556 <div class="informaltable"><table width="100%" border="0">
541557 <colgroup>
542558 <col width="150px" class="parameters_name">
563579 </table></div>
564580 </div>
565581 <div class="refsect3">
566 <a name="id-1.3.44.8.8.8"></a><h4>Returns</h4>
582 <a name="id-1.3.45.8.8.8"></a><h4>Returns</h4>
567583 <p> the position as the total running time or -1 when an invalid position
568584 was given.</p>
569585 <p></p>
570586 </div>
587 </div>
588 <hr>
589 <div class="refsect2">
590 <a name="gst-segment-to-running-time-full"></a><h3>gst_segment_to_running_time_full ()</h3>
591 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
592 gst_segment_to_running_time_full (<em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
593 <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
594 <em class="parameter"><code><span class="type">guint64</span> position</code></em>,
595 <em class="parameter"><code><span class="type">guint64</span> *running_time</code></em>);</pre>
596 <p>Translate <em class="parameter"><code>position</code></em>
597 to the total running time using the currently configured
598 segment. Compared to <a class="link" href="GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()"><code class="function">gst_segment_to_running_time()</code></a> this function can return
599 negative running-time.</p>
600 <p>This function is typically used by elements that need to synchronize buffers
601 against the clock or eachother.</p>
602 <p><em class="parameter"><code>position</code></em>
603 can be any value and the result of this function for values outside
604 of the segment is extrapolated.</p>
605 <p>When 1 is returned, <em class="parameter"><code>position</code></em>
606 resulted in a positive running-time returned
607 in <em class="parameter"><code>running_time</code></em>
608 .</p>
609 <p>When this function returns -1, the returned <em class="parameter"><code>running_time</code></em>
610 should be negated
611 to get the real negative running time.</p>
612 <div class="refsect3">
613 <a name="id-1.3.45.8.9.9"></a><h4>Parameters</h4>
614 <div class="informaltable"><table width="100%" border="0">
615 <colgroup>
616 <col width="150px" class="parameters_name">
617 <col class="parameters_description">
618 <col width="200px" class="parameters_annotations">
619 </colgroup>
620 <tbody>
621 <tr>
622 <td class="parameter_name"><p>segment</p></td>
623 <td class="parameter_description"><p>a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> structure.</p></td>
624 <td class="parameter_annotations"> </td>
625 </tr>
626 <tr>
627 <td class="parameter_name"><p>format</p></td>
628 <td class="parameter_description"><p>the format of the segment.</p></td>
629 <td class="parameter_annotations"> </td>
630 </tr>
631 <tr>
632 <td class="parameter_name"><p>position</p></td>
633 <td class="parameter_description"><p>the position in the segment</p></td>
634 <td class="parameter_annotations"> </td>
635 </tr>
636 <tr>
637 <td class="parameter_name"><p>running_time</p></td>
638 <td class="parameter_description"><p>result running-time</p></td>
639 <td class="parameter_annotations"> </td>
640 </tr>
641 </tbody>
642 </table></div>
643 </div>
644 <div class="refsect3">
645 <a name="id-1.3.45.8.9.10"></a><h4>Returns</h4>
646 <p> a 1 or -1 on success, 0 on failure.</p>
647 <p></p>
648 </div>
649 <p class="since">Since 1.6</p>
571650 </div>
572651 <hr>
573652 <div class="refsect2">
590669 The stream time is always between 0 and the total duration of the
591670 media stream.</p>
592671 <div class="refsect3">
593 <a name="id-1.3.44.8.9.6"></a><h4>Parameters</h4>
672 <a name="id-1.3.45.8.10.6"></a><h4>Parameters</h4>
594673 <div class="informaltable"><table width="100%" border="0">
595674 <colgroup>
596675 <col width="150px" class="parameters_name">
617696 </table></div>
618697 </div>
619698 <div class="refsect3">
620 <a name="id-1.3.44.8.9.7"></a><h4>Returns</h4>
699 <a name="id-1.3.45.8.10.7"></a><h4>Returns</h4>
621700 <p> the position in stream_time or -1 when an invalid position
622701 was given.</p>
623702 <p></p>
635714 <a class="link" href="GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()"><code class="function">gst_segment_to_running_time()</code></a> with that position returns <em class="parameter"><code>running_time</code></em>
636715 .</p>
637716 <div class="refsect3">
638 <a name="id-1.3.44.8.10.5"></a><h4>Parameters</h4>
717 <a name="id-1.3.45.8.11.5"></a><h4>Parameters</h4>
639718 <div class="informaltable"><table width="100%" border="0">
640719 <colgroup>
641720 <col width="150px" class="parameters_name">
662741 </table></div>
663742 </div>
664743 <div class="refsect3">
665 <a name="id-1.3.44.8.10.6"></a><h4>Returns</h4>
744 <a name="id-1.3.45.8.11.6"></a><h4>Returns</h4>
666745 <p> the position in the segment for <em class="parameter"><code>running_time</code></em>
667746 . This function returns
668747 -1 when <em class="parameter"><code>running_time</code></em>
683762 buffer will be one with <em class="parameter"><code>running_time</code></em>
684763 .</p>
685764 <div class="refsect3">
686 <a name="id-1.3.44.8.11.5"></a><h4>Parameters</h4>
765 <a name="id-1.3.45.8.12.5"></a><h4>Parameters</h4>
687766 <div class="informaltable"><table width="100%" border="0">
688767 <colgroup>
689768 <col width="150px" class="parameters_name">
710789 </table></div>
711790 </div>
712791 <div class="refsect3">
713 <a name="id-1.3.44.8.11.6"></a><h4>Returns</h4>
792 <a name="id-1.3.45.8.12.6"></a><h4>Returns</h4>
714793 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the segment could be updated successfully. If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is
715794 returned, <em class="parameter"><code>running_time</code></em>
716795 is -1 or not in <em class="parameter"><code>segment</code></em>
728807 into <em class="parameter"><code>dest</code></em>
729808 .</p>
730809 <div class="refsect3">
731 <a name="id-1.3.44.8.12.5"></a><h4>Parameters</h4>
810 <a name="id-1.3.45.8.13.5"></a><h4>Parameters</h4>
732811 <div class="informaltable"><table width="100%" border="0">
733812 <colgroup>
734813 <col width="150px" class="parameters_name">
762841 is applied to all
763842 future running-time calculations.</p>
764843 <div class="refsect3">
765 <a name="id-1.3.44.8.13.5"></a><h4>Parameters</h4>
844 <a name="id-1.3.45.8.14.5"></a><h4>Parameters</h4>
766845 <div class="informaltable"><table width="100%" border="0">
767846 <colgroup>
768847 <col width="150px" class="parameters_name">
789868 </table></div>
790869 </div>
791870 <div class="refsect3">
792 <a name="id-1.3.44.8.13.6"></a><h4>Returns</h4>
871 <a name="id-1.3.45.8.14.6"></a><h4>Returns</h4>
793872 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the segment could be updated successfully. If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is
794873 returned, <em class="parameter"><code>offset</code></em>
795874 is not in <em class="parameter"><code>segment</code></em>
797876 <p></p>
798877 </div>
799878 <p class="since">Since 1.2.3</p>
879 </div>
880 <hr>
881 <div class="refsect2">
882 <a name="gst-segment-is-equal"></a><h3>gst_segment_is_equal ()</h3>
883 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
884 gst_segment_is_equal (<em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *s0</code></em>,
885 <em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *s1</code></em>);</pre>
886 <p>Checks for two segments being equal. Equality here is defined
887 as perfect equality, including floating point values.</p>
888 <div class="refsect3">
889 <a name="id-1.3.45.8.15.5"></a><h4>Parameters</h4>
890 <div class="informaltable"><table width="100%" border="0">
891 <colgroup>
892 <col width="150px" class="parameters_name">
893 <col class="parameters_description">
894 <col width="200px" class="parameters_annotations">
895 </colgroup>
896 <tbody>
897 <tr>
898 <td class="parameter_name"><p>s0</p></td>
899 <td class="parameter_description"><p>a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> structure.</p></td>
900 <td class="parameter_annotations"> </td>
901 </tr>
902 <tr>
903 <td class="parameter_name"><p>s1</p></td>
904 <td class="parameter_description"><p>a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> structure.</p></td>
905 <td class="parameter_annotations"> </td>
906 </tr>
907 </tbody>
908 </table></div>
909 </div>
910 <div class="refsect3">
911 <a name="id-1.3.45.8.15.6"></a><h4>Returns</h4>
912 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the segments are equal, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
913 <p></p>
914 </div>
915 <p class="since">Since 1.6</p>
800916 </div>
801917 </div>
802918 <div class="refsect1">
823939 <p>A helper structure that holds the configured region of
824940 interest in a media file.</p>
825941 <div class="refsect3">
826 <a name="id-1.3.44.9.2.5"></a><h4>Members</h4>
942 <a name="id-1.3.45.9.2.5"></a><h4>Members</h4>
827943 <div class="informaltable"><table width="100%" border="0">
828944 <colgroup>
829945 <col width="300px" class="struct_members_name">
880996 </tr>
881997 <tr>
882998 <td class="struct_member_name"><p><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment-struct.position"></a>position</code></em>;</p></td>
883 <td class="struct_member_description"><p>the position in the segment</p></td>
999 <td class="struct_member_description"><p>the position in the segment (used internally by elements
1000 such as sources, demuxers or parsers to track progress)</p></td>
8841001 <td class="struct_member_annotations"> </td>
8851002 </tr>
8861003 <tr>
8981015 <p>Flags for the GstSegment structure. Currently mapped to the corresponding
8991016 values of the seek flags.</p>
9001017 <div class="refsect3">
901 <a name="id-1.3.44.9.3.4"></a><h4>Members</h4>
1018 <a name="id-1.3.45.9.3.4"></a><h4>Members</h4>
9021019 <div class="informaltable"><table width="100%" border="0">
9031020 <colgroup>
9041021 <col width="300px" class="enum_members_name">
654654 not modify <em class="parameter"><code>value</code></em>
655655 .</p>
656656 <div class="refsect3">
657 <a name="id-1.3.45.8.2.5"></a><h4>Parameters</h4>
657 <a name="id-1.3.46.8.2.5"></a><h4>Parameters</h4>
658658 <div class="informaltable"><table width="100%" border="0">
659659 <colgroup>
660660 <col width="150px" class="parameters_name">
681681 </table></div>
682682 </div>
683683 <div class="refsect3">
684 <a name="id-1.3.45.8.2.6"></a><h4>Returns</h4>
684 <a name="id-1.3.46.8.2.6"></a><h4>Returns</h4>
685685 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the foreach operation should continue, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
686686 the foreach operation should stop with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
687687 <p></p>
698698 may modify <em class="parameter"><code>value</code></em>
699699 .</p>
700700 <div class="refsect3">
701 <a name="id-1.3.45.8.3.5"></a><h4>Parameters</h4>
701 <a name="id-1.3.46.8.3.5"></a><h4>Parameters</h4>
702702 <div class="informaltable"><table width="100%" border="0">
703703 <colgroup>
704704 <col width="150px" class="parameters_name">
725725 </table></div>
726726 </div>
727727 <div class="refsect3">
728 <a name="id-1.3.45.8.3.6"></a><h4>Returns</h4>
728 <a name="id-1.3.46.8.3.6"></a><h4>Returns</h4>
729729 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the map operation should continue, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
730730 the map operation should stop with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
731731 <p></p>
743743 , and the value will be removed from
744744 the structure if <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned.</p>
745745 <div class="refsect3">
746 <a name="id-1.3.45.8.4.5"></a><h4>Parameters</h4>
746 <a name="id-1.3.46.8.4.5"></a><h4>Parameters</h4>
747747 <div class="informaltable"><table width="100%" border="0">
748748 <colgroup>
749749 <col width="150px" class="parameters_name">
770770 </table></div>
771771 </div>
772772 <div class="refsect3">
773 <a name="id-1.3.45.8.4.6"></a><h4>Returns</h4>
773 <a name="id-1.3.46.8.4.6"></a><h4>Returns</h4>
774774 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the field should be preserved, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it
775775 should be removed.</p>
776776 <p></p>
787787 parameter.</p>
788788 <p>Free-function: gst_structure_free</p>
789789 <div class="refsect3">
790 <a name="id-1.3.45.8.5.7"></a><h4>Parameters</h4>
790 <a name="id-1.3.46.8.5.7"></a><h4>Parameters</h4>
791791 <div class="informaltable"><table width="100%" border="0">
792792 <colgroup>
793793 <col width="150px" class="parameters_name">
802802 </table></div>
803803 </div>
804804 <div class="refsect3">
805 <a name="id-1.3.45.8.5.8"></a><h4>Returns</h4>
805 <a name="id-1.3.46.8.5.8"></a><h4>Returns</h4>
806806 <p> a new, empty <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
807807 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
808808 </div>
815815 <p>Creates a new, empty <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> with the given name as a GQuark.</p>
816816 <p>Free-function: gst_structure_free</p>
817817 <div class="refsect3">
818 <a name="id-1.3.45.8.6.6"></a><h4>Parameters</h4>
818 <a name="id-1.3.46.8.6.6"></a><h4>Parameters</h4>
819819 <div class="informaltable"><table width="100%" border="0">
820820 <colgroup>
821821 <col width="150px" class="parameters_name">
830830 </table></div>
831831 </div>
832832 <div class="refsect3">
833 <a name="id-1.3.45.8.6.7"></a><h4>Returns</h4>
833 <a name="id-1.3.46.8.6.7"></a><h4>Returns</h4>
834834 <p> a new, empty <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
835835 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
836836 </div>
848848 and value. Last variable argument should be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
849849 <p>Free-function: gst_structure_free</p>
850850 <div class="refsect3">
851 <a name="id-1.3.45.8.7.6"></a><h4>Parameters</h4>
851 <a name="id-1.3.46.8.7.6"></a><h4>Parameters</h4>
852852 <div class="informaltable"><table width="100%" border="0">
853853 <colgroup>
854854 <col width="150px" class="parameters_name">
875875 </table></div>
876876 </div>
877877 <div class="refsect3">
878 <a name="id-1.3.45.8.7.7"></a><h4>Returns</h4>
878 <a name="id-1.3.46.8.7.7"></a><h4>Returns</h4>
879879 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
880880 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
881881 </div>
895895 parameter.</p>
896896 <p>Free-function: gst_structure_free</p>
897897 <div class="refsect3">
898 <a name="id-1.3.45.8.8.7"></a><h4>Parameters</h4>
898 <a name="id-1.3.46.8.8.7"></a><h4>Parameters</h4>
899899 <div class="informaltable"><table width="100%" border="0">
900900 <colgroup>
901901 <col width="150px" class="parameters_name">
922922 </table></div>
923923 </div>
924924 <div class="refsect3">
925 <a name="id-1.3.45.8.8.8"></a><h4>Returns</h4>
925 <a name="id-1.3.46.8.8.8"></a><h4>Returns</h4>
926926 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
927927 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
928928 </div>
941941 <p>The last variable argument must be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> (or 0).</p>
942942 <p>Free-function: gst_structure_free</p>
943943 <div class="refsect3">
944 <a name="id-1.3.45.8.9.7"></a><h4>Parameters</h4>
944 <a name="id-1.3.46.8.9.7"></a><h4>Parameters</h4>
945945 <div class="informaltable"><table width="100%" border="0">
946946 <colgroup>
947947 <col width="150px" class="parameters_name">
968968 </table></div>
969969 </div>
970970 <div class="refsect3">
971 <a name="id-1.3.45.8.9.8"></a><h4>Returns</h4>
971 <a name="id-1.3.46.8.9.8"></a><h4>Returns</h4>
972972 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
973973 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
974974 </div>
985985 when there are nested <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> / <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> deeper than one level.</p>
986986 <p>Free-function: gst_structure_free</p>
987987 <div class="refsect3">
988 <a name="id-1.3.45.8.10.7"></a><h4>Parameters</h4>
988 <a name="id-1.3.46.8.10.7"></a><h4>Parameters</h4>
989989 <div class="informaltable"><table width="100%" border="0">
990990 <colgroup>
991991 <col width="150px" class="parameters_name">
10001000 </table></div>
10011001 </div>
10021002 <div class="refsect3">
1003 <a name="id-1.3.45.8.10.8"></a><h4>Returns</h4>
1003 <a name="id-1.3.46.8.10.8"></a><h4>Returns</h4>
10041004 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
10051005 when the string could not be parsed. Free with
10061006 <a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
10161016 <p>Duplicates a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> and all its fields and values.</p>
10171017 <p>Free-function: gst_structure_free</p>
10181018 <div class="refsect3">
1019 <a name="id-1.3.45.8.11.6"></a><h4>Parameters</h4>
1019 <a name="id-1.3.46.8.11.6"></a><h4>Parameters</h4>
10201020 <div class="informaltable"><table width="100%" border="0">
10211021 <colgroup>
10221022 <col width="150px" class="parameters_name">
10311031 </table></div>
10321032 </div>
10331033 <div class="refsect3">
1034 <a name="id-1.3.45.8.11.7"></a><h4>Returns</h4>
1034 <a name="id-1.3.46.8.11.7"></a><h4>Returns</h4>
10351035 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
10361036 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
10371037 </div>
10441044 <p>Frees a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> and all its fields and values. The structure must not
10451045 have a parent when this function is called.</p>
10461046 <div class="refsect3">
1047 <a name="id-1.3.45.8.12.5"></a><h4>Parameters</h4>
1047 <a name="id-1.3.46.8.12.5"></a><h4>Parameters</h4>
10481048 <div class="informaltable"><table width="100%" border="0">
10491049 <colgroup>
10501050 <col width="150px" class="parameters_name">
10671067 <p>Get the name of <em class="parameter"><code>structure</code></em>
10681068 as a string.</p>
10691069 <div class="refsect3">
1070 <a name="id-1.3.45.8.13.5"></a><h4>Parameters</h4>
1070 <a name="id-1.3.46.8.13.5"></a><h4>Parameters</h4>
10711071 <div class="informaltable"><table width="100%" border="0">
10721072 <colgroup>
10731073 <col width="150px" class="parameters_name">
10821082 </table></div>
10831083 </div>
10841084 <div class="refsect3">
1085 <a name="id-1.3.45.8.13.6"></a><h4>Returns</h4>
1085 <a name="id-1.3.46.8.13.6"></a><h4>Returns</h4>
10861086 <p> the name of the structure.</p>
10871087 <p></p>
10881088 </div>
10951095 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
10961096 <p>Checks if the structure has the given name</p>
10971097 <div class="refsect3">
1098 <a name="id-1.3.45.8.14.5"></a><h4>Parameters</h4>
1098 <a name="id-1.3.46.8.14.5"></a><h4>Parameters</h4>
10991099 <div class="informaltable"><table width="100%" border="0">
11001100 <colgroup>
11011101 <col width="150px" class="parameters_name">
11171117 </table></div>
11181118 </div>
11191119 <div class="refsect3">
1120 <a name="id-1.3.45.8.14.6"></a><h4>Returns</h4>
1120 <a name="id-1.3.46.8.14.6"></a><h4>Returns</h4>
11211121 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>name</code></em>
11221122 matches the name of the structure.</p>
11231123 <p></p>
11341134 provided is copied before being used. It must not be empty, start with a
11351135 letter and can be followed by letters, numbers and any of "/-_.:".</p>
11361136 <div class="refsect3">
1137 <a name="id-1.3.45.8.15.5"></a><h4>Parameters</h4>
1137 <a name="id-1.3.46.8.15.5"></a><h4>Parameters</h4>
11381138 <div class="informaltable"><table width="100%" border="0">
11391139 <colgroup>
11401140 <col width="150px" class="parameters_name">
11641164 <p>Get the name of <em class="parameter"><code>structure</code></em>
11651165 as a GQuark.</p>
11661166 <div class="refsect3">
1167 <a name="id-1.3.45.8.16.5"></a><h4>Parameters</h4>
1167 <a name="id-1.3.46.8.16.5"></a><h4>Parameters</h4>
11681168 <div class="informaltable"><table width="100%" border="0">
11691169 <colgroup>
11701170 <col width="150px" class="parameters_name">
11791179 </table></div>
11801180 </div>
11811181 <div class="refsect3">
1182 <a name="id-1.3.45.8.16.6"></a><h4>Returns</h4>
1182 <a name="id-1.3.46.8.16.6"></a><h4>Returns</h4>
11831183 <p> the quark representing the name of the structure.</p>
11841184 <p></p>
11851185 </div>
12061206 strings and boxed types you will receive a copy which you will need to
12071207 release with either <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> or the suitable function for the boxed type.</p>
12081208 <div class="refsect3">
1209 <a name="id-1.3.45.8.17.7"></a><h4>Parameters</h4>
1209 <a name="id-1.3.46.8.17.7"></a><h4>Parameters</h4>
12101210 <div class="informaltable"><table width="100%" border="0">
12111211 <colgroup>
12121212 <col width="150px" class="parameters_name">
12331233 </table></div>
12341234 </div>
12351235 <div class="refsect3">
1236 <a name="id-1.3.45.8.17.8"></a><h4>Returns</h4>
1236 <a name="id-1.3.46.8.17.8"></a><h4>Returns</h4>
12371237 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields (e.g.
12381238 because the field requested did not exist, or was of a type other
12391239 than the type specified), otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
12521252 valist-variant of <a class="link" href="GstStructure.html#gst-structure-id-get" title="gst_structure_id_get ()"><code class="function">gst_structure_id_get()</code></a>. Look at the documentation of
12531253 <a class="link" href="GstStructure.html#gst-structure-id-get" title="gst_structure_id_get ()"><code class="function">gst_structure_id_get()</code></a> for more details.</p>
12541254 <div class="refsect3">
1255 <a name="id-1.3.45.8.18.5"></a><h4>Parameters</h4>
1255 <a name="id-1.3.46.8.18.5"></a><h4>Parameters</h4>
12561256 <div class="informaltable"><table width="100%" border="0">
12571257 <colgroup>
12581258 <col width="150px" class="parameters_name">
12791279 </table></div>
12801280 </div>
12811281 <div class="refsect3">
1282 <a name="id-1.3.45.8.18.6"></a><h4>Returns</h4>
1282 <a name="id-1.3.46.8.18.6"></a><h4>Returns</h4>
12831283 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields</p>
12841284 <p></p>
12851285 </div>
12931293 <p>Get the value of the field with GQuark <em class="parameter"><code>field</code></em>
12941294 .</p>
12951295 <div class="refsect3">
1296 <a name="id-1.3.45.8.19.5"></a><h4>Parameters</h4>
1296 <a name="id-1.3.46.8.19.5"></a><h4>Parameters</h4>
12971297 <div class="informaltable"><table width="100%" border="0">
12981298 <colgroup>
12991299 <col width="150px" class="parameters_name">
13151315 </table></div>
13161316 </div>
13171317 <div class="refsect3">
1318 <a name="id-1.3.45.8.19.6"></a><h4>Returns</h4>
1318 <a name="id-1.3.46.8.19.6"></a><h4>Returns</h4>
13191319 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> corresponding to the field with the given name
13201320 identifier.</p>
13211321 <p></p>
13341334 does not exist, it is created. If the field exists, the previous
13351335 value is replaced and freed.</p>
13361336 <div class="refsect3">
1337 <a name="id-1.3.45.8.20.5"></a><h4>Parameters</h4>
1337 <a name="id-1.3.46.8.20.5"></a><h4>Parameters</h4>
13381338 <div class="informaltable"><table width="100%" border="0">
13391339 <colgroup>
13401340 <col width="150px" class="parameters_name">
13741374 does not exist, it is created. If the field exists, the previous
13751375 value is replaced and freed.</p>
13761376 <div class="refsect3">
1377 <a name="id-1.3.45.8.21.5"></a><h4>Parameters</h4>
1377 <a name="id-1.3.46.8.21.5"></a><h4>Parameters</h4>
13781378 <div class="informaltable"><table width="100%" border="0">
13791379 <colgroup>
13801380 <col width="150px" class="parameters_name">
14181418 strings and boxed types you will receive a copy which you will need to
14191419 release with either <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> or the suitable function for the boxed type.</p>
14201420 <div class="refsect3">
1421 <a name="id-1.3.45.8.22.6"></a><h4>Parameters</h4>
1421 <a name="id-1.3.46.8.22.6"></a><h4>Parameters</h4>
14221422 <div class="informaltable"><table width="100%" border="0">
14231423 <colgroup>
14241424 <col width="150px" class="parameters_name">
14451445 </table></div>
14461446 </div>
14471447 <div class="refsect3">
1448 <a name="id-1.3.45.8.22.7"></a><h4>Returns</h4>
1448 <a name="id-1.3.46.8.22.7"></a><h4>Returns</h4>
14491449 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields (e.g.
14501450 because the field requested did not exist, or was of a type other
14511451 than the type specified), otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
14641464 valist-variant of <a class="link" href="GstStructure.html#gst-structure-get" title="gst_structure_get ()"><code class="function">gst_structure_get()</code></a>. Look at the documentation of
14651465 <a class="link" href="GstStructure.html#gst-structure-get" title="gst_structure_get ()"><code class="function">gst_structure_get()</code></a> for more details.</p>
14661466 <div class="refsect3">
1467 <a name="id-1.3.45.8.23.5"></a><h4>Parameters</h4>
1467 <a name="id-1.3.46.8.23.5"></a><h4>Parameters</h4>
14681468 <div class="informaltable"><table width="100%" border="0">
14691469 <colgroup>
14701470 <col width="150px" class="parameters_name">
14911491 </table></div>
14921492 </div>
14931493 <div class="refsect3">
1494 <a name="id-1.3.45.8.23.6"></a><h4>Returns</h4>
1494 <a name="id-1.3.46.8.23.6"></a><h4>Returns</h4>
14951495 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields</p>
14961496 <p></p>
14971497 </div>
15051505 <p>Get the value of the field with name <em class="parameter"><code>fieldname</code></em>
15061506 .</p>
15071507 <div class="refsect3">
1508 <a name="id-1.3.45.8.24.5"></a><h4>Parameters</h4>
1508 <a name="id-1.3.46.8.24.5"></a><h4>Parameters</h4>
15091509 <div class="informaltable"><table width="100%" border="0">
15101510 <colgroup>
15111511 <col width="150px" class="parameters_name">
15271527 </table></div>
15281528 </div>
15291529 <div class="refsect3">
1530 <a name="id-1.3.45.8.24.6"></a><h4>Returns</h4>
1530 <a name="id-1.3.46.8.24.6"></a><h4>Returns</h4>
15311531 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> corresponding to the field with the given name.</p>
15321532 <p></p>
15331533 </div>
15451545 does not exist, it is created. If the field exists, the previous
15461546 value is replaced and freed.</p>
15471547 <div class="refsect3">
1548 <a name="id-1.3.45.8.25.5"></a><h4>Parameters</h4>
1548 <a name="id-1.3.46.8.25.5"></a><h4>Parameters</h4>
15491549 <div class="informaltable"><table width="100%" border="0">
15501550 <colgroup>
15511551 <col width="150px" class="parameters_name">
15861586 value is replaced and freed. The function will take ownership of <em class="parameter"><code>value</code></em>
15871587 .</p>
15881588 <div class="refsect3">
1589 <a name="id-1.3.45.8.26.5"></a><h4>Parameters</h4>
1589 <a name="id-1.3.46.8.26.5"></a><h4>Parameters</h4>
15901590 <div class="informaltable"><table width="100%" border="0">
15911591 <colgroup>
15921592 <col width="150px" class="parameters_name">
16241624 Variable arguments should be in the form field name, field type
16251625 (as a GType), value(s). The last variable argument should be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
16261626 <div class="refsect3">
1627 <a name="id-1.3.45.8.27.5"></a><h4>Parameters</h4>
1627 <a name="id-1.3.46.8.27.5"></a><h4>Parameters</h4>
16281628 <div class="informaltable"><table width="100%" border="0">
16291629 <colgroup>
16301630 <col width="150px" class="parameters_name">
16601660 <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
16611661 <p>va_list form of <a class="link" href="GstStructure.html#gst-structure-set" title="gst_structure_set ()"><code class="function">gst_structure_set()</code></a>.</p>
16621662 <div class="refsect3">
1663 <a name="id-1.3.45.8.28.5"></a><h4>Parameters</h4>
1663 <a name="id-1.3.46.8.28.5"></a><h4>Parameters</h4>
16641664 <div class="informaltable"><table width="100%" border="0">
16651665 <colgroup>
16661666 <col width="150px" class="parameters_name">
17001700 quark values.
17011701 The last variable argument must be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
17021702 <div class="refsect3">
1703 <a name="id-1.3.45.8.29.5"></a><h4>Parameters</h4>
1703 <a name="id-1.3.46.8.29.5"></a><h4>Parameters</h4>
17041704 <div class="informaltable"><table width="100%" border="0">
17051705 <colgroup>
17061706 <col width="150px" class="parameters_name">
17361736 <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
17371737 <p>va_list form of <a class="link" href="GstStructure.html#gst-structure-id-set" title="gst_structure_id_set ()"><code class="function">gst_structure_id_set()</code></a>.</p>
17381738 <div class="refsect3">
1739 <a name="id-1.3.45.8.30.5"></a><h4>Parameters</h4>
1739 <a name="id-1.3.46.8.30.5"></a><h4>Parameters</h4>
17401740 <div class="informaltable"><table width="100%" border="0">
17411741 <colgroup>
17421742 <col width="150px" class="parameters_name">
17721772 <p>Removes the field with the given name. If the field with the given
17731773 name does not exist, the structure is unchanged.</p>
17741774 <div class="refsect3">
1775 <a name="id-1.3.45.8.31.5"></a><h4>Parameters</h4>
1775 <a name="id-1.3.46.8.31.5"></a><h4>Parameters</h4>
17761776 <div class="informaltable"><table width="100%" border="0">
17771777 <colgroup>
17781778 <col width="150px" class="parameters_name">
18041804 <p>Removes the fields with the given names. If a field does not exist, the
18051805 argument is ignored.</p>
18061806 <div class="refsect3">
1807 <a name="id-1.3.45.8.32.5"></a><h4>Parameters</h4>
1807 <a name="id-1.3.46.8.32.5"></a><h4>Parameters</h4>
18081808 <div class="informaltable"><table width="100%" border="0">
18091809 <colgroup>
18101810 <col width="150px" class="parameters_name">
18401840 <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
18411841 <p>va_list form of <a class="link" href="GstStructure.html#gst-structure-remove-fields" title="gst_structure_remove_fields ()"><code class="function">gst_structure_remove_fields()</code></a>.</p>
18421842 <div class="refsect3">
1843 <a name="id-1.3.45.8.33.5"></a><h4>Parameters</h4>
1843 <a name="id-1.3.46.8.33.5"></a><h4>Parameters</h4>
18441844 <div class="informaltable"><table width="100%" border="0">
18451845 <colgroup>
18461846 <col width="150px" class="parameters_name">
18741874 gst_structure_remove_all_fields (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
18751875 <p>Removes all fields in a GstStructure.</p>
18761876 <div class="refsect3">
1877 <a name="id-1.3.45.8.34.5"></a><h4>Parameters</h4>
1877 <a name="id-1.3.46.8.34.5"></a><h4>Parameters</h4>
18781878 <div class="informaltable"><table width="100%" border="0">
18791879 <colgroup>
18801880 <col width="150px" class="parameters_name">
18991899 value it contains. If the field is not found, G_TYPE_INVALID is
19001900 returned.</p>
19011901 <div class="refsect3">
1902 <a name="id-1.3.45.8.35.5"></a><h4>Parameters</h4>
1902 <a name="id-1.3.46.8.35.5"></a><h4>Parameters</h4>
19031903 <div class="informaltable"><table width="100%" border="0">
19041904 <colgroup>
19051905 <col width="150px" class="parameters_name">
19211921 </table></div>
19221922 </div>
19231923 <div class="refsect3">
1924 <a name="id-1.3.45.8.35.6"></a><h4>Returns</h4>
1924 <a name="id-1.3.46.8.35.6"></a><h4>Returns</h4>
19251925 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> of the field</p>
19261926 <p></p>
19271927 </div>
19331933 gst_structure_n_fields (<em class="parameter"><code>const <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
19341934 <p>Get the number of fields in the structure.</p>
19351935 <div class="refsect3">
1936 <a name="id-1.3.45.8.36.5"></a><h4>Parameters</h4>
1936 <a name="id-1.3.46.8.36.5"></a><h4>Parameters</h4>
19371937 <div class="informaltable"><table width="100%" border="0">
19381938 <colgroup>
19391939 <col width="150px" class="parameters_name">
19481948 </table></div>
19491949 </div>
19501950 <div class="refsect3">
1951 <a name="id-1.3.45.8.36.6"></a><h4>Returns</h4>
1951 <a name="id-1.3.46.8.36.6"></a><h4>Returns</h4>
19521952 <p> the number of fields in the structure</p>
19531953 <p></p>
19541954 </div>
19631963 contains a field named <em class="parameter"><code>fieldname</code></em>
19641964 .</p>
19651965 <div class="refsect3">
1966 <a name="id-1.3.45.8.37.5"></a><h4>Parameters</h4>
1966 <a name="id-1.3.46.8.37.5"></a><h4>Parameters</h4>
19671967 <div class="informaltable"><table width="100%" border="0">
19681968 <colgroup>
19691969 <col width="150px" class="parameters_name">
19851985 </table></div>
19861986 </div>
19871987 <div class="refsect3">
1988 <a name="id-1.3.45.8.37.6"></a><h4>Returns</h4>
1988 <a name="id-1.3.46.8.37.6"></a><h4>Returns</h4>
19891989 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name</p>
19901990 <p></p>
19911991 </div>
20022002 and with GType <em class="parameter"><code>type</code></em>
20032003 .</p>
20042004 <div class="refsect3">
2005 <a name="id-1.3.45.8.38.5"></a><h4>Parameters</h4>
2005 <a name="id-1.3.46.8.38.5"></a><h4>Parameters</h4>
20062006 <div class="informaltable"><table width="100%" border="0">
20072007 <colgroup>
20082008 <col width="150px" class="parameters_name">
20292029 </table></div>
20302030 </div>
20312031 <div class="refsect3">
2032 <a name="id-1.3.45.8.38.6"></a><h4>Returns</h4>
2032 <a name="id-1.3.46.8.38.6"></a><h4>Returns</h4>
20332033 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name and type</p>
20342034 <p></p>
20352035 </div>
20422042 <em class="parameter"><code>const <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure2</code></em>);</pre>
20432043 <p>Tests if the two <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> are equal.</p>
20442044 <div class="refsect3">
2045 <a name="id-1.3.45.8.39.5"></a><h4>Parameters</h4>
2045 <a name="id-1.3.46.8.39.5"></a><h4>Parameters</h4>
20462046 <div class="informaltable"><table width="100%" border="0">
20472047 <colgroup>
20482048 <col width="150px" class="parameters_name">
20642064 </table></div>
20652065 </div>
20662066 <div class="refsect3">
2067 <a name="id-1.3.45.8.39.6"></a><h4>Returns</h4>
2067 <a name="id-1.3.46.8.39.6"></a><h4>Returns</h4>
20682068 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the two structures have the same name and field.</p>
20692069 <p></p>
20702070 </div>
20842084 has a value that is a subset of the value in <em class="parameter"><code>superset</code></em>
20852085 .</p>
20862086 <div class="refsect3">
2087 <a name="id-1.3.45.8.40.5"></a><h4>Parameters</h4>
2087 <a name="id-1.3.46.8.40.5"></a><h4>Parameters</h4>
20882088 <div class="informaltable"><table width="100%" border="0">
20892089 <colgroup>
20902090 <col width="150px" class="parameters_name">
21062106 </table></div>
21072107 </div>
21082108 <div class="refsect3">
2109 <a name="id-1.3.45.8.40.6"></a><h4>Returns</h4>
2109 <a name="id-1.3.46.8.40.6"></a><h4>Returns</h4>
21102110 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>subset</code></em>
21112111 is a subset of <em class="parameter"><code>superset</code></em>
21122112 </p>
21242124 and reports whether the result
21252125 would not be empty.</p>
21262126 <div class="refsect3">
2127 <a name="id-1.3.45.8.41.5"></a><h4>Parameters</h4>
2127 <a name="id-1.3.46.8.41.5"></a><h4>Parameters</h4>
21282128 <div class="informaltable"><table width="100%" border="0">
21292129 <colgroup>
21302130 <col width="150px" class="parameters_name">
21462146 </table></div>
21472147 </div>
21482148 <div class="refsect3">
2149 <a name="id-1.3.45.8.41.6"></a><h4>Returns</h4>
2149 <a name="id-1.3.46.8.41.6"></a><h4>Returns</h4>
21502150 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if intersection would not be empty</p>
21512151 <p></p>
21522152 </div>
21612161 and <em class="parameter"><code>struct2</code></em>
21622162 and returns the intersection.</p>
21632163 <div class="refsect3">
2164 <a name="id-1.3.45.8.42.5"></a><h4>Parameters</h4>
2164 <a name="id-1.3.46.8.42.5"></a><h4>Parameters</h4>
21652165 <div class="informaltable"><table width="100%" border="0">
21662166 <colgroup>
21672167 <col width="150px" class="parameters_name">
21832183 </table></div>
21842184 </div>
21852185 <div class="refsect3">
2186 <a name="id-1.3.45.8.42.6"></a><h4>Returns</h4>
2186 <a name="id-1.3.46.8.42.6"></a><h4>Returns</h4>
21872187 <p> Intersection of <em class="parameter"><code>struct1</code></em>
21882188 and <em class="parameter"><code>struct2</code></em>
21892189 </p>
22002200 contains a field named <em class="parameter"><code>field</code></em>
22012201 .</p>
22022202 <div class="refsect3">
2203 <a name="id-1.3.45.8.43.5"></a><h4>Parameters</h4>
2203 <a name="id-1.3.46.8.43.5"></a><h4>Parameters</h4>
22042204 <div class="informaltable"><table width="100%" border="0">
22052205 <colgroup>
22062206 <col width="150px" class="parameters_name">
22222222 </table></div>
22232223 </div>
22242224 <div class="refsect3">
2225 <a name="id-1.3.45.8.43.6"></a><h4>Returns</h4>
2225 <a name="id-1.3.46.8.43.6"></a><h4>Returns</h4>
22262226 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name</p>
22272227 <p></p>
22282228 </div>
22392239 and with GType <em class="parameter"><code>type</code></em>
22402240 .</p>
22412241 <div class="refsect3">
2242 <a name="id-1.3.45.8.44.5"></a><h4>Parameters</h4>
2242 <a name="id-1.3.46.8.44.5"></a><h4>Parameters</h4>
22432243 <div class="informaltable"><table width="100%" border="0">
22442244 <colgroup>
22452245 <col width="150px" class="parameters_name">
22662266 </table></div>
22672267 </div>
22682268 <div class="refsect3">
2269 <a name="id-1.3.45.8.44.6"></a><h4>Returns</h4>
2269 <a name="id-1.3.46.8.44.6"></a><h4>Returns</h4>
22702270 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name and type</p>
22712271 <p></p>
22722272 </div>
22832283 given field. Caller is responsible for making sure the field exists
22842284 and has the correct type.</p>
22852285 <div class="refsect3">
2286 <a name="id-1.3.45.8.45.5"></a><h4>Parameters</h4>
2286 <a name="id-1.3.46.8.45.5"></a><h4>Parameters</h4>
22872287 <div class="informaltable"><table width="100%" border="0">
22882288 <colgroup>
22892289 <col width="150px" class="parameters_name">
23102310 </table></div>
23112311 </div>
23122312 <div class="refsect3">
2313 <a name="id-1.3.45.8.45.6"></a><h4>Returns</h4>
2313 <a name="id-1.3.46.8.45.6"></a><h4>Returns</h4>
23142314 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
23152315 with <em class="parameter"><code>fieldname</code></em>
23162316 or the existing field did not contain a boolean, this
23302330 given field. Caller is responsible for making sure the field exists
23312331 and has the correct type.</p>
23322332 <div class="refsect3">
2333 <a name="id-1.3.45.8.46.5"></a><h4>Parameters</h4>
2333 <a name="id-1.3.46.8.46.5"></a><h4>Parameters</h4>
23342334 <div class="informaltable"><table width="100%" border="0">
23352335 <colgroup>
23362336 <col width="150px" class="parameters_name">
23572357 </table></div>
23582358 </div>
23592359 <div class="refsect3">
2360 <a name="id-1.3.45.8.46.6"></a><h4>Returns</h4>
2360 <a name="id-1.3.46.8.46.6"></a><h4>Returns</h4>
23612361 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
23622362 with <em class="parameter"><code>fieldname</code></em>
23632363 or the existing field did not contain an int, this function
23772377 given field. Caller is responsible for making sure the field exists
23782378 and has the correct type.</p>
23792379 <div class="refsect3">
2380 <a name="id-1.3.45.8.47.5"></a><h4>Parameters</h4>
2380 <a name="id-1.3.46.8.47.5"></a><h4>Parameters</h4>
23812381 <div class="informaltable"><table width="100%" border="0">
23822382 <colgroup>
23832383 <col width="150px" class="parameters_name">
24042404 </table></div>
24052405 </div>
24062406 <div class="refsect3">
2407 <a name="id-1.3.45.8.47.6"></a><h4>Returns</h4>
2407 <a name="id-1.3.46.8.47.6"></a><h4>Returns</h4>
24082408 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
24092409 with <em class="parameter"><code>fieldname</code></em>
24102410 or the existing field did not contain a uint, this function
24242424 given field. Caller is responsible for making sure the field exists
24252425 and has the correct type.</p>
24262426 <div class="refsect3">
2427 <a name="id-1.3.45.8.48.5"></a><h4>Parameters</h4>
2427 <a name="id-1.3.46.8.48.5"></a><h4>Parameters</h4>
24282428 <div class="informaltable"><table width="100%" border="0">
24292429 <colgroup>
24302430 <col width="150px" class="parameters_name">
24512451 </table></div>
24522452 </div>
24532453 <div class="refsect3">
2454 <a name="id-1.3.45.8.48.6"></a><h4>Returns</h4>
2454 <a name="id-1.3.46.8.48.6"></a><h4>Returns</h4>
24552455 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
24562456 with <em class="parameter"><code>fieldname</code></em>
24572457 or the existing field did not contain a <span class="type">gint64</span>, this function
24722472 given field. Caller is responsible for making sure the field exists
24732473 and has the correct type.</p>
24742474 <div class="refsect3">
2475 <a name="id-1.3.45.8.49.5"></a><h4>Parameters</h4>
2475 <a name="id-1.3.46.8.49.5"></a><h4>Parameters</h4>
24762476 <div class="informaltable"><table width="100%" border="0">
24772477 <colgroup>
24782478 <col width="150px" class="parameters_name">
24992499 </table></div>
25002500 </div>
25012501 <div class="refsect3">
2502 <a name="id-1.3.45.8.49.6"></a><h4>Returns</h4>
2502 <a name="id-1.3.46.8.49.6"></a><h4>Returns</h4>
25032503 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
25042504 with <em class="parameter"><code>fieldname</code></em>
25052505 or the existing field did not contain a <span class="type">guint64</span>, this function
25202520 given field. Caller is responsible for making sure the field exists
25212521 and has the correct type.</p>
25222522 <div class="refsect3">
2523 <a name="id-1.3.45.8.50.5"></a><h4>Parameters</h4>
2523 <a name="id-1.3.46.8.50.5"></a><h4>Parameters</h4>
25242524 <div class="informaltable"><table width="100%" border="0">
25252525 <colgroup>
25262526 <col width="150px" class="parameters_name">
25472547 </table></div>
25482548 </div>
25492549 <div class="refsect3">
2550 <a name="id-1.3.45.8.50.6"></a><h4>Returns</h4>
2550 <a name="id-1.3.46.8.50.6"></a><h4>Returns</h4>
25512551 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
25522552 with <em class="parameter"><code>fieldname</code></em>
25532553 or the existing field did not contain a double, this
25682568 <p>The string should not be modified, and remains valid until the next
25692569 call to a gst_structure_*() function with the given structure.</p>
25702570 <div class="refsect3">
2571 <a name="id-1.3.45.8.51.6"></a><h4>Parameters</h4>
2571 <a name="id-1.3.46.8.51.6"></a><h4>Parameters</h4>
25722572 <div class="informaltable"><table width="100%" border="0">
25732573 <colgroup>
25742574 <col width="150px" class="parameters_name">
25902590 </table></div>
25912591 </div>
25922592 <div class="refsect3">
2593 <a name="id-1.3.45.8.51.7"></a><h4>Returns</h4>
2593 <a name="id-1.3.46.8.51.7"></a><h4>Returns</h4>
25942594 <p> a pointer to the string or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the
25952595 field did not exist or did not contain a string. </p>
25962596 <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
26132613 inconsistent with e.g. <a class="link" href="GstStructure.html#gst-structure-get-string" title="gst_structure_get_string ()"><code class="function">gst_structure_get_string()</code></a> which doesn't return a
26142614 copy of the string).</p>
26152615 <div class="refsect3">
2616 <a name="id-1.3.45.8.52.6"></a><h4>Parameters</h4>
2616 <a name="id-1.3.46.8.52.6"></a><h4>Parameters</h4>
26172617 <div class="informaltable"><table width="100%" border="0">
26182618 <colgroup>
26192619 <col width="150px" class="parameters_name">
26402640 </table></div>
26412641 </div>
26422642 <div class="refsect3">
2643 <a name="id-1.3.45.8.52.7"></a><h4>Returns</h4>
2643 <a name="id-1.3.46.8.52.7"></a><h4>Returns</h4>
26442644 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
26452645 with <em class="parameter"><code>fieldname</code></em>
26462646 or the existing field did not contain a data, this function
26652665 (note: this is inconsistent with e.g. <a class="link" href="GstStructure.html#gst-structure-get-string" title="gst_structure_get_string ()"><code class="function">gst_structure_get_string()</code></a>
26662666 which doesn't return a copy of the string).</p>
26672667 <div class="refsect3">
2668 <a name="id-1.3.45.8.53.6"></a><h4>Parameters</h4>
2668 <a name="id-1.3.46.8.53.6"></a><h4>Parameters</h4>
26692669 <div class="informaltable"><table width="100%" border="0">
26702670 <colgroup>
26712671 <col width="150px" class="parameters_name">
26922692 </table></div>
26932693 </div>
26942694 <div class="refsect3">
2695 <a name="id-1.3.45.8.53.7"></a><h4>Returns</h4>
2695 <a name="id-1.3.46.8.53.7"></a><h4>Returns</h4>
26962696 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
26972697 with <em class="parameter"><code>fieldname</code></em>
26982698 or the existing field did not contain a data, this function
27122712 of the given field. Caller is responsible for making sure the field exists
27132713 and has the correct type.</p>
27142714 <div class="refsect3">
2715 <a name="id-1.3.45.8.54.5"></a><h4>Parameters</h4>
2715 <a name="id-1.3.46.8.54.5"></a><h4>Parameters</h4>
27162716 <div class="informaltable"><table width="100%" border="0">
27172717 <colgroup>
27182718 <col width="150px" class="parameters_name">
27392739 </table></div>
27402740 </div>
27412741 <div class="refsect3">
2742 <a name="id-1.3.45.8.54.6"></a><h4>Returns</h4>
2742 <a name="id-1.3.46.8.54.6"></a><h4>Returns</h4>
27432743 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
27442744 with <em class="parameter"><code>fieldname</code></em>
27452745 or the existing field did not contain a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>, this
27602760 given field. Caller is responsible for making sure the field exists,
27612761 has the correct type and that the enumtype is correct.</p>
27622762 <div class="refsect3">
2763 <a name="id-1.3.45.8.55.5"></a><h4>Parameters</h4>
2763 <a name="id-1.3.46.8.55.5"></a><h4>Parameters</h4>
27642764 <div class="informaltable"><table width="100%" border="0">
27652765 <colgroup>
27662766 <col width="150px" class="parameters_name">
27922792 </table></div>
27932793 </div>
27942794 <div class="refsect3">
2795 <a name="id-1.3.45.8.55.6"></a><h4>Returns</h4>
2795 <a name="id-1.3.46.8.55.6"></a><h4>Returns</h4>
27962796 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
27972797 with <em class="parameter"><code>fieldname</code></em>
27982798 or the existing field did not contain an enum of the given
28142814 corresponding to the value of the given field. Caller is responsible
28152815 for making sure the field exists and has the correct type.</p>
28162816 <div class="refsect3">
2817 <a name="id-1.3.45.8.56.5"></a><h4>Parameters</h4>
2817 <a name="id-1.3.46.8.56.5"></a><h4>Parameters</h4>
28182818 <div class="informaltable"><table width="100%" border="0">
28192819 <colgroup>
28202820 <col width="150px" class="parameters_name">
28462846 </table></div>
28472847 </div>
28482848 <div class="refsect3">
2849 <a name="id-1.3.45.8.56.6"></a><h4>Returns</h4>
2849 <a name="id-1.3.46.8.56.6"></a><h4>Returns</h4>
28502850 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values could be set correctly. If there was no field
28512851 with <em class="parameter"><code>fieldname</code></em>
28522852 or the existing field did not contain a GstFraction, this
28652865 function must not modify the fields. Also see <a class="link" href="GstStructure.html#gst-structure-map-in-place" title="gst_structure_map_in_place ()"><code class="function">gst_structure_map_in_place()</code></a>
28662866 and <a class="link" href="GstStructure.html#gst-structure-filter-and-map-in-place" title="gst_structure_filter_and_map_in_place ()"><code class="function">gst_structure_filter_and_map_in_place()</code></a>.</p>
28672867 <div class="refsect3">
2868 <a name="id-1.3.45.8.57.5"></a><h4>Parameters</h4>
2868 <a name="id-1.3.46.8.57.5"></a><h4>Parameters</h4>
28692869 <div class="informaltable"><table width="100%" border="0">
28702870 <colgroup>
28712871 <col width="150px" class="parameters_name">
28922892 </table></div>
28932893 </div>
28942894 <div class="refsect3">
2895 <a name="id-1.3.45.8.57.6"></a><h4>Returns</h4>
2895 <a name="id-1.3.46.8.57.6"></a><h4>Returns</h4>
28962896 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the supplied function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> For each of the fields,
28972897 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
28982898 <p></p>
29092909 contrast to <a class="link" href="GstStructure.html#gst-structure-foreach" title="gst_structure_foreach ()"><code class="function">gst_structure_foreach()</code></a>, the function may modify but not delete the
29102910 fields. The structure must be mutable.</p>
29112911 <div class="refsect3">
2912 <a name="id-1.3.45.8.58.5"></a><h4>Parameters</h4>
2912 <a name="id-1.3.46.8.58.5"></a><h4>Parameters</h4>
29132913 <div class="informaltable"><table width="100%" border="0">
29142914 <colgroup>
29152915 <col width="150px" class="parameters_name">
29362936 </table></div>
29372937 </div>
29382938 <div class="refsect3">
2939 <a name="id-1.3.45.8.58.6"></a><h4>Returns</h4>
2939 <a name="id-1.3.46.8.58.6"></a><h4>Returns</h4>
29402940 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the supplied function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> For each of the fields,
29412941 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
29422942 <p></p>
29552955 the structure if <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned from the function.
29562956 The structure must be mutable.</p>
29572957 <div class="refsect3">
2958 <a name="id-1.3.45.8.59.5"></a><h4>Parameters</h4>
2958 <a name="id-1.3.46.8.59.5"></a><h4>Parameters</h4>
29592959 <div class="informaltable"><table width="100%" border="0">
29602960 <colgroup>
29612961 <col width="150px" class="parameters_name">
29912991 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
29922992 <p>Get the name of the given field number, counting from 0 onwards.</p>
29932993 <div class="refsect3">
2994 <a name="id-1.3.45.8.60.5"></a><h4>Parameters</h4>
2994 <a name="id-1.3.46.8.60.5"></a><h4>Parameters</h4>
29952995 <div class="informaltable"><table width="100%" border="0">
29962996 <colgroup>
29972997 <col width="150px" class="parameters_name">
30133013 </table></div>
30143014 </div>
30153015 <div class="refsect3">
3016 <a name="id-1.3.45.8.60.6"></a><h4>Returns</h4>
3016 <a name="id-1.3.46.8.60.6"></a><h4>Returns</h4>
30173017 <p> the name of the given field number</p>
30183018 <p></p>
30193019 </div>
30293029 called by code implementing parent objects of <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>, as described in
30303030 the MT Refcounting section of the design documents.</p>
30313031 <div class="refsect3">
3032 <a name="id-1.3.45.8.61.5"></a><h4>Parameters</h4>
3032 <a name="id-1.3.46.8.61.5"></a><h4>Parameters</h4>
30333033 <div class="informaltable"><table width="100%" border="0">
30343034 <colgroup>
30353035 <col width="150px" class="parameters_name">
30513051 </table></div>
30523052 </div>
30533053 <div class="refsect3">
3054 <a name="id-1.3.45.8.61.6"></a><h4>Returns</h4>
3054 <a name="id-1.3.46.8.61.6"></a><h4>Returns</h4>
30553055 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the parent refcount could be set.</p>
30563056 <p></p>
30573057 </div>
30813081 when there are nested <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> / <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> deeper than one level.</p>
30823082 <p>Free-function: g_free</p>
30833083 <div class="refsect3">
3084 <a name="id-1.3.45.8.62.10"></a><h4>Parameters</h4>
3084 <a name="id-1.3.46.8.62.10"></a><h4>Parameters</h4>
30853085 <div class="informaltable"><table width="100%" border="0">
30863086 <colgroup>
30873087 <col width="150px" class="parameters_name">
30963096 </table></div>
30973097 </div>
30983098 <div class="refsect3">
3099 <a name="id-1.3.45.8.62.11"></a><h4>Returns</h4>
3099 <a name="id-1.3.46.8.62.11"></a><h4>Returns</h4>
31003100 <p> a pointer to string allocated by <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-malloc"><code class="function">g_malloc()</code></a>.
31013101 <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage. </p>
31023102 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
31133113 where parsing ended will be returned.</p>
31143114 <p>Free-function: gst_structure_free</p>
31153115 <div class="refsect3">
3116 <a name="id-1.3.45.8.63.6"></a><h4>Parameters</h4>
3116 <a name="id-1.3.46.8.63.6"></a><h4>Parameters</h4>
31173117 <div class="informaltable"><table width="100%" border="0">
31183118 <colgroup>
31193119 <col width="150px" class="parameters_name">
31353135 </table></div>
31363136 </div>
31373137 <div class="refsect3">
3138 <a name="id-1.3.45.8.63.7"></a><h4>Returns</h4>
3138 <a name="id-1.3.46.8.63.7"></a><h4>Returns</h4>
31393139 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
31403140 when the string could not be parsed. Free with
31413141 <a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
31523152 <em class="parameter"><code>structure</code></em>
31533153 will be modified in-place and should be writable.</p>
31543154 <div class="refsect3">
3155 <a name="id-1.3.45.8.64.5"></a><h4>Parameters</h4>
3155 <a name="id-1.3.46.8.64.5"></a><h4>Parameters</h4>
31563156 <div class="informaltable"><table width="100%" border="0">
31573157 <colgroup>
31583158 <col width="150px" class="parameters_name">
31753175 <em class="parameter"><code>const <span class="type">char</span> *field_name</code></em>);</pre>
31763176 <p>Fixates a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> by changing the given field with its fixated value.</p>
31773177 <div class="refsect3">
3178 <a name="id-1.3.45.8.65.5"></a><h4>Parameters</h4>
3178 <a name="id-1.3.46.8.65.5"></a><h4>Parameters</h4>
31793179 <div class="informaltable"><table width="100%" border="0">
31803180 <colgroup>
31813181 <col width="150px" class="parameters_name">
31983198 </table></div>
31993199 </div>
32003200 <div class="refsect3">
3201 <a name="id-1.3.45.8.65.6"></a><h4>Returns</h4>
3201 <a name="id-1.3.46.8.65.6"></a><h4>Returns</h4>
32023202 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure field could be fixated</p>
32033203 <p></p>
32043204 </div>
32153215 integer to <em class="parameter"><code>target</code></em>
32163216 that is a subset of the existing field.</p>
32173217 <div class="refsect3">
3218 <a name="id-1.3.45.8.66.5"></a><h4>Parameters</h4>
3218 <a name="id-1.3.46.8.66.5"></a><h4>Parameters</h4>
32193219 <div class="informaltable"><table width="100%" border="0">
32203220 <colgroup>
32213221 <col width="150px" class="parameters_name">
32433243 </table></div>
32443244 </div>
32453245 <div class="refsect3">
3246 <a name="id-1.3.45.8.66.6"></a><h4>Returns</h4>
3246 <a name="id-1.3.46.8.66.6"></a><h4>Returns</h4>
32473247 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
32483248 <p></p>
32493249 </div>
32603260 double to <em class="parameter"><code>target</code></em>
32613261 that is a subset of the existing field.</p>
32623262 <div class="refsect3">
3263 <a name="id-1.3.45.8.67.5"></a><h4>Parameters</h4>
3263 <a name="id-1.3.46.8.67.5"></a><h4>Parameters</h4>
32643264 <div class="informaltable"><table width="100%" border="0">
32653265 <colgroup>
32663266 <col width="150px" class="parameters_name">
32883288 </table></div>
32893289 </div>
32903290 <div class="refsect3">
3291 <a name="id-1.3.45.8.67.6"></a><h4>Returns</h4>
3291 <a name="id-1.3.46.8.67.6"></a><h4>Returns</h4>
32923292 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
32933293 <p></p>
32943294 </div>
33083308 that is a subset
33093309 of the existing field.</p>
33103310 <div class="refsect3">
3311 <a name="id-1.3.45.8.68.5"></a><h4>Parameters</h4>
3311 <a name="id-1.3.46.8.68.5"></a><h4>Parameters</h4>
33123312 <div class="informaltable"><table width="100%" border="0">
33133313 <colgroup>
33143314 <col width="150px" class="parameters_name">
33413341 </table></div>
33423342 </div>
33433343 <div class="refsect3">
3344 <a name="id-1.3.45.8.68.6"></a><h4>Returns</h4>
3344 <a name="id-1.3.46.8.68.6"></a><h4>Returns</h4>
33453345 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
33463346 <p></p>
33473347 </div>
33583358 <em class="parameter"><code>target</code></em>
33593359 boolean if that field is not fixed yet.</p>
33603360 <div class="refsect3">
3361 <a name="id-1.3.45.8.69.5"></a><h4>Parameters</h4>
3361 <a name="id-1.3.46.8.69.5"></a><h4>Parameters</h4>
33623362 <div class="informaltable"><table width="100%" border="0">
33633363 <colgroup>
33643364 <col width="150px" class="parameters_name">
33863386 </table></div>
33873387 </div>
33883388 <div class="refsect3">
3389 <a name="id-1.3.45.8.69.6"></a><h4>Returns</h4>
3389 <a name="id-1.3.46.8.69.6"></a><h4>Returns</h4>
33903390 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
33913391 <p></p>
33923392 </div>
34033403 <em class="parameter"><code>target</code></em>
34043404 string if that field is not fixed yet.</p>
34053405 <div class="refsect3">
3406 <a name="id-1.3.45.8.70.5"></a><h4>Parameters</h4>
3406 <a name="id-1.3.46.8.70.5"></a><h4>Parameters</h4>
34073407 <div class="informaltable"><table width="100%" border="0">
34083408 <colgroup>
34093409 <col width="150px" class="parameters_name">
34313431 </table></div>
34323432 </div>
34333433 <div class="refsect3">
3434 <a name="id-1.3.45.8.70.6"></a><h4>Returns</h4>
3434 <a name="id-1.3.46.8.70.6"></a><h4>Returns</h4>
34353435 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
34363436 <p></p>
34373437 </div>
34473447 </pre>
34483448 <p>The GstStructure object. Most fields are private.</p>
34493449 <div class="refsect3">
3450 <a name="id-1.3.45.9.2.5"></a><h4>Members</h4>
3450 <a name="id-1.3.46.9.2.5"></a><h4>Members</h4>
34513451 <div class="informaltable"><table width="100%" border="0">
34523452 <colgroup>
34533453 <col width="300px" class="struct_members_name">
127127 clock will be increased so you need to unref the clock after
128128 usage.</p>
129129 <div class="refsect3">
130 <a name="id-1.3.46.9.2.5"></a><h4>Returns</h4>
130 <a name="id-1.3.47.9.2.5"></a><h4>Returns</h4>
131131 <p> the default clock.</p>
132132 <p>MT safe. </p>
133133 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
145145 clock.</p>
146146 <p>MT safe.</p>
147147 <div class="refsect3">
148 <a name="id-1.3.46.9.3.7"></a><h4>Parameters</h4>
148 <a name="id-1.3.47.9.3.7"></a><h4>Parameters</h4>
149149 <div class="informaltable"><table width="100%" border="0">
150150 <colgroup>
151151 <col width="150px" class="parameters_name">
168168 <a name="GstClockType"></a><h3>enum GstClockType</h3>
169169 <p>The different kind of clocks.</p>
170170 <div class="refsect3">
171 <a name="id-1.3.46.10.2.4"></a><h4>Members</h4>
171 <a name="id-1.3.47.10.2.4"></a><h4>Members</h4>
172172 <div class="informaltable"><table width="100%" border="0">
173173 <colgroup>
174174 <col width="300px" class="enum_members_name">
947947 <p>A function that will be called in <a class="link" href="GstTagList.html#gst-tag-list-foreach" title="gst_tag_list_foreach ()"><code class="function">gst_tag_list_foreach()</code></a>. The function may
948948 not modify the tag list.</p>
949949 <div class="refsect3">
950 <a name="id-1.3.47.8.2.5"></a><h4>Parameters</h4>
950 <a name="id-1.3.48.8.2.5"></a><h4>Parameters</h4>
951951 <div class="informaltable"><table width="100%" border="0">
952952 <colgroup>
953953 <col width="150px" class="parameters_name">
984984 <p>A function for merging multiple values of a tag used when registering
985985 tags.</p>
986986 <div class="refsect3">
987 <a name="id-1.3.47.8.3.5"></a><h4>Parameters</h4>
987 <a name="id-1.3.48.8.3.5"></a><h4>Parameters</h4>
988988 <div class="informaltable"><table width="100%" border="0">
989989 <colgroup>
990990 <col width="150px" class="parameters_name">
10351035 <p>Two default merge functions are provided: <a class="link" href="GstTagList.html#gst-tag-merge-use-first" title="gst_tag_merge_use_first ()"><code class="function">gst_tag_merge_use_first()</code></a> and
10361036 <a class="link" href="GstTagList.html#gst-tag-merge-strings-with-comma" title="gst_tag_merge_strings_with_comma ()"><code class="function">gst_tag_merge_strings_with_comma()</code></a>.</p>
10371037 <div class="refsect3">
1038 <a name="id-1.3.47.8.4.8"></a><h4>Parameters</h4>
1038 <a name="id-1.3.48.8.4.8"></a><h4>Parameters</h4>
10391039 <div class="informaltable"><table width="100%" border="0">
10401040 <colgroup>
10411041 <col width="150px" class="parameters_name">
10961096 plugins will be made resident once loaded, so this function can be used
10971097 even from dynamically loaded plugins.)</p>
10981098 <div class="refsect3">
1099 <a name="id-1.3.47.8.5.6"></a><h4>Parameters</h4>
1099 <a name="id-1.3.48.8.5.6"></a><h4>Parameters</h4>
11001100 <div class="informaltable"><table width="100%" border="0">
11011101 <colgroup>
11021102 <col width="150px" class="parameters_name">
11471147 <p>This is a convenience function for the func argument of <a class="link" href="GstTagList.html#gst-tag-register" title="gst_tag_register ()"><code class="function">gst_tag_register()</code></a>.
11481148 It creates a copy of the first value from the list.</p>
11491149 <div class="refsect3">
1150 <a name="id-1.3.47.8.6.5"></a><h4>Parameters</h4>
1150 <a name="id-1.3.48.8.6.5"></a><h4>Parameters</h4>
11511151 <div class="informaltable"><table width="100%" border="0">
11521152 <colgroup>
11531153 <col width="150px" class="parameters_name">
11791179 It concatenates all given strings using a comma. The tag must be registered
11801180 as a G_TYPE_STRING or this function will fail.</p>
11811181 <div class="refsect3">
1182 <a name="id-1.3.47.8.7.5"></a><h4>Parameters</h4>
1182 <a name="id-1.3.48.8.7.5"></a><h4>Parameters</h4>
11831183 <div class="informaltable"><table width="100%" border="0">
11841184 <colgroup>
11851185 <col width="150px" class="parameters_name">
12081208 gst_tag_exists (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
12091209 <p>Checks if the given type is already registered.</p>
12101210 <div class="refsect3">
1211 <a name="id-1.3.47.8.8.5"></a><h4>Parameters</h4>
1211 <a name="id-1.3.48.8.8.5"></a><h4>Parameters</h4>
12121212 <div class="informaltable"><table width="100%" border="0">
12131213 <colgroup>
12141214 <col width="150px" class="parameters_name">
12231223 </table></div>
12241224 </div>
12251225 <div class="refsect3">
1226 <a name="id-1.3.47.8.8.6"></a><h4>Returns</h4>
1226 <a name="id-1.3.48.8.8.6"></a><h4>Returns</h4>
12271227 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the type is already registered</p>
12281228 <p></p>
12291229 </div>
12351235 gst_tag_get_type (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
12361236 <p>Gets the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> used for this tag.</p>
12371237 <div class="refsect3">
1238 <a name="id-1.3.47.8.9.5"></a><h4>Parameters</h4>
1238 <a name="id-1.3.48.8.9.5"></a><h4>Parameters</h4>
12391239 <div class="informaltable"><table width="100%" border="0">
12401240 <colgroup>
12411241 <col width="150px" class="parameters_name">
12501250 </table></div>
12511251 </div>
12521252 <div class="refsect3">
1253 <a name="id-1.3.47.8.9.6"></a><h4>Returns</h4>
1253 <a name="id-1.3.48.8.9.6"></a><h4>Returns</h4>
12541254 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of this tag</p>
12551255 <p></p>
12561256 </div>
12631263 <p>Returns the human-readable name of this tag, You must not change or free
12641264 this string.</p>
12651265 <div class="refsect3">
1266 <a name="id-1.3.47.8.10.5"></a><h4>Parameters</h4>
1266 <a name="id-1.3.48.8.10.5"></a><h4>Parameters</h4>
12671267 <div class="informaltable"><table width="100%" border="0">
12681268 <colgroup>
12691269 <col width="150px" class="parameters_name">
12781278 </table></div>
12791279 </div>
12801280 <div class="refsect3">
1281 <a name="id-1.3.47.8.10.6"></a><h4>Returns</h4>
1281 <a name="id-1.3.48.8.10.6"></a><h4>Returns</h4>
12821282 <p> the human-readable name of this tag</p>
12831283 <p></p>
12841284 </div>
12911291 <p>Returns the human-readable description of this tag, You must not change or
12921292 free this string.</p>
12931293 <div class="refsect3">
1294 <a name="id-1.3.47.8.11.5"></a><h4>Parameters</h4>
1294 <a name="id-1.3.48.8.11.5"></a><h4>Parameters</h4>
12951295 <div class="informaltable"><table width="100%" border="0">
12961296 <colgroup>
12971297 <col width="150px" class="parameters_name">
13061306 </table></div>
13071307 </div>
13081308 <div class="refsect3">
1309 <a name="id-1.3.47.8.11.6"></a><h4>Returns</h4>
1309 <a name="id-1.3.48.8.11.6"></a><h4>Returns</h4>
13101310 <p> the human-readable description of this tag</p>
13111311 <p></p>
13121312 </div>
13191319 <p>Gets the flag of <em class="parameter"><code>tag</code></em>
13201320 .</p>
13211321 <div class="refsect3">
1322 <a name="id-1.3.47.8.12.5"></a><h4>Parameters</h4>
1322 <a name="id-1.3.48.8.12.5"></a><h4>Parameters</h4>
13231323 <div class="informaltable"><table width="100%" border="0">
13241324 <colgroup>
13251325 <col width="150px" class="parameters_name">
13341334 </table></div>
13351335 </div>
13361336 <div class="refsect3">
1337 <a name="id-1.3.47.8.12.6"></a><h4>Returns</h4>
1337 <a name="id-1.3.48.8.12.6"></a><h4>Returns</h4>
13381338 <p> the flag of this tag.</p>
13391339 <p></p>
13401340 </div>
13471347 <p>Checks if the given tag is fixed. A fixed tag can only contain one value.
13481348 Unfixed tags can contain lists of values.</p>
13491349 <div class="refsect3">
1350 <a name="id-1.3.47.8.13.5"></a><h4>Parameters</h4>
1350 <a name="id-1.3.48.8.13.5"></a><h4>Parameters</h4>
13511351 <div class="informaltable"><table width="100%" border="0">
13521352 <colgroup>
13531353 <col width="150px" class="parameters_name">
13621362 </table></div>
13631363 </div>
13641364 <div class="refsect3">
1365 <a name="id-1.3.47.8.13.6"></a><h4>Returns</h4>
1365 <a name="id-1.3.48.8.13.6"></a><h4>Returns</h4>
13661366 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if the given tag is fixed.</p>
13671367 <p></p>
13681368 </div>
13851385 default stream scope is assumes. See <a class="link" href="GstTagList.html#gst-tag-list-set-scope" title="gst_tag_list_set_scope ()"><code class="function">gst_tag_list_set_scope()</code></a>.</p>
13861386 <p>Free-function: gst_tag_list_unref</p>
13871387 <div class="refsect3">
1388 <a name="id-1.3.47.8.14.7"></a><h4>Parameters</h4>
1388 <a name="id-1.3.48.8.14.7"></a><h4>Parameters</h4>
13891389 <div class="informaltable"><table width="100%" border="0">
13901390 <colgroup>
13911391 <col width="150px" class="parameters_name">
14071407 </table></div>
14081408 </div>
14091409 <div class="refsect3">
1410 <a name="id-1.3.47.8.14.8"></a><h4>Returns</h4>
1410 <a name="id-1.3.48.8.14.8"></a><h4>Returns</h4>
14111411 <p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a>
14121412 when no longer needed. </p>
14131413 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
14211421 <p>Creates a new empty GstTagList.</p>
14221422 <p>Free-function: gst_tag_list_unref</p>
14231423 <div class="refsect3">
1424 <a name="id-1.3.47.8.15.6"></a><h4>Returns</h4>
1424 <a name="id-1.3.48.8.15.6"></a><h4>Returns</h4>
14251425 <p> An empty tag list. </p>
14261426 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
14271427 </div>
14351435 Useful mostly for language bindings.</p>
14361436 <p>Free-function: gst_tag_list_unref</p>
14371437 <div class="refsect3">
1438 <a name="id-1.3.47.8.16.6"></a><h4>Parameters</h4>
1438 <a name="id-1.3.48.8.16.6"></a><h4>Parameters</h4>
14391439 <div class="informaltable"><table width="100%" border="0">
14401440 <colgroup>
14411441 <col width="150px" class="parameters_name">
14501450 </table></div>
14511451 </div>
14521452 <div class="refsect3">
1453 <a name="id-1.3.47.8.16.7"></a><h4>Returns</h4>
1453 <a name="id-1.3.48.8.16.7"></a><h4>Returns</h4>
14541454 <p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a>
14551455 when no longer needed. </p>
14561456 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
14631463 gst_tag_list_new_from_string (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);</pre>
14641464 <p>Deserializes a tag list.</p>
14651465 <div class="refsect3">
1466 <a name="id-1.3.47.8.17.5"></a><h4>Parameters</h4>
1466 <a name="id-1.3.48.8.17.5"></a><h4>Parameters</h4>
14671467 <div class="informaltable"><table width="100%" border="0">
14681468 <colgroup>
14691469 <col width="150px" class="parameters_name">
14781478 </table></div>
14791479 </div>
14801480 <div class="refsect3">
1481 <a name="id-1.3.47.8.17.6"></a><h4>Returns</h4>
1481 <a name="id-1.3.48.8.17.6"></a><h4>Returns</h4>
14821482 <p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an
14831483 error. </p>
14841484 <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
14991499 <p>Gets the scope of <em class="parameter"><code>list</code></em>
15001500 .</p>
15011501 <div class="refsect3">
1502 <a name="id-1.3.47.8.19.5"></a><h4>Parameters</h4>
1502 <a name="id-1.3.48.8.19.5"></a><h4>Parameters</h4>
15031503 <div class="informaltable"><table width="100%" border="0">
15041504 <colgroup>
15051505 <col width="150px" class="parameters_name">
15141514 </table></div>
15151515 </div>
15161516 <div class="refsect3">
1517 <a name="id-1.3.47.8.19.6"></a><h4>Returns</h4>
1517 <a name="id-1.3.48.8.19.6"></a><h4>Returns</h4>
15181518 <p> The scope of <em class="parameter"><code>list</code></em>
15191519 </p>
15201520 <p></p>
15311531 . By default the scope
15321532 of a taglist is stream scope.</p>
15331533 <div class="refsect3">
1534 <a name="id-1.3.47.8.20.5"></a><h4>Parameters</h4>
1534 <a name="id-1.3.48.8.20.5"></a><h4>Parameters</h4>
15351535 <div class="informaltable"><table width="100%" border="0">
15361536 <colgroup>
15371537 <col width="150px" class="parameters_name">
15611561 gst_tag_list_to_string (<em class="parameter"><code>const <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
15621562 <p>Serializes a tag list to a string.</p>
15631563 <div class="refsect3">
1564 <a name="id-1.3.47.8.21.5"></a><h4>Parameters</h4>
1564 <a name="id-1.3.48.8.21.5"></a><h4>Parameters</h4>
15651565 <div class="informaltable"><table width="100%" border="0">
15661566 <colgroup>
15671567 <col width="150px" class="parameters_name">
15761576 </table></div>
15771577 </div>
15781578 <div class="refsect3">
1579 <a name="id-1.3.47.8.21.6"></a><h4>Returns</h4>
1579 <a name="id-1.3.48.8.21.6"></a><h4>Returns</h4>
15801580 <p> a newly-allocated string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of
15811581 an error. The string must be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer
15821582 needed. </p>
15901590 gst_tag_list_is_empty (<em class="parameter"><code>const <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
15911591 <p>Checks if the given taglist is empty.</p>
15921592 <div class="refsect3">
1593 <a name="id-1.3.47.8.22.5"></a><h4>Parameters</h4>
1593 <a name="id-1.3.48.8.22.5"></a><h4>Parameters</h4>
15941594 <div class="informaltable"><table width="100%" border="0">
15951595 <colgroup>
15961596 <col width="150px" class="parameters_name">
16051605 </table></div>
16061606 </div>
16071607 <div class="refsect3">
1608 <a name="id-1.3.47.8.22.6"></a><h4>Returns</h4>
1608 <a name="id-1.3.48.8.22.6"></a><h4>Returns</h4>
16091609 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the taglist is empty, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
16101610 <p></p>
16111611 </div>
16181618 <em class="parameter"><code>const <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);</pre>
16191619 <p>Checks if the two given taglists are equal.</p>
16201620 <div class="refsect3">
1621 <a name="id-1.3.47.8.23.5"></a><h4>Parameters</h4>
1621 <a name="id-1.3.48.8.23.5"></a><h4>Parameters</h4>
16221622 <div class="informaltable"><table width="100%" border="0">
16231623 <colgroup>
16241624 <col width="150px" class="parameters_name">
16401640 </table></div>
16411641 </div>
16421642 <div class="refsect3">
1643 <a name="id-1.3.47.8.23.6"></a><h4>Returns</h4>
1643 <a name="id-1.3.48.8.23.6"></a><h4>Returns</h4>
16441644 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the taglists are equal, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
16451645 <p></p>
16461646 </div>
16591659 reference to the data, you should use <a class="link" href="GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</code></a>.</p>
16601660 <p>When you are finished with the taglist, call <a class="link" href="GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a> on it.</p>
16611661 <div class="refsect3">
1662 <a name="id-1.3.47.8.24.7"></a><h4>Parameters</h4>
1662 <a name="id-1.3.48.8.24.7"></a><h4>Parameters</h4>
16631663 <div class="informaltable"><table width="100%" border="0">
16641664 <colgroup>
16651665 <col width="150px" class="parameters_name">
16741674 </table></div>
16751675 </div>
16761676 <div class="refsect3">
1677 <a name="id-1.3.47.8.24.8"></a><h4>Returns</h4>
1677 <a name="id-1.3.48.8.24.8"></a><h4>Returns</h4>
16781678 <p> the new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a></p>
16791679 <p></p>
16801680 </div>
16911691 it -- either the one made implicitly by e.g. <a class="link" href="GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()"><code class="function">gst_tag_list_new()</code></a>, or via
16921692 taking one explicitly with this function.</p>
16931693 <div class="refsect3">
1694 <a name="id-1.3.47.8.25.6"></a><h4>Parameters</h4>
1694 <a name="id-1.3.48.8.25.6"></a><h4>Parameters</h4>
16951695 <div class="informaltable"><table width="100%" border="0">
16961696 <colgroup>
16971697 <col width="150px" class="parameters_name">
17061706 </table></div>
17071707 </div>
17081708 <div class="refsect3">
1709 <a name="id-1.3.47.8.25.7"></a><h4>Returns</h4>
1709 <a name="id-1.3.48.8.25.7"></a><h4>Returns</h4>
17101710 <p> the same <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> mini object.</p>
17111711 <p></p>
17121712 </div>
17181718 gst_tag_list_unref (<em class="parameter"><code><a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
17191719 <p>Unref a <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>, and and free all its memory when the refcount reaches 0.</p>
17201720 <div class="refsect3">
1721 <a name="id-1.3.47.8.26.5"></a><h4>Parameters</h4>
1721 <a name="id-1.3.48.8.26.5"></a><h4>Parameters</h4>
17221722 <div class="informaltable"><table width="100%" border="0">
17231723 <colgroup>
17241724 <col width="150px" class="parameters_name">
17421742 . It is only safe to modify taglist
17431743 when there is only one owner of the taglist - ie, the refcount is 1.</p>
17441744 <div class="refsect3">
1745 <a name="id-1.3.47.8.27.5"></a><h4>Parameters</h4>
1745 <a name="id-1.3.48.8.27.5"></a><h4>Parameters</h4>
17461746 <div class="informaltable"><table width="100%" border="0">
17471747 <colgroup>
17481748 <col width="150px" class="parameters_name">
17771777 taglist that it returns. Don't access the argument after calling this
17781778 function. See also: <a class="link" href="GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</code></a>.</p>
17791779 <div class="refsect3">
1780 <a name="id-1.3.47.8.28.7"></a><h4>Parameters</h4>
1780 <a name="id-1.3.48.8.28.7"></a><h4>Parameters</h4>
17811781 <div class="informaltable"><table width="100%" border="0">
17821782 <colgroup>
17831783 <col width="150px" class="parameters_name">
17921792 </table></div>
17931793 </div>
17941794 <div class="refsect3">
1795 <a name="id-1.3.47.8.28.8"></a><h4>Returns</h4>
1795 <a name="id-1.3.48.8.28.8"></a><h4>Returns</h4>
17961796 <p> a writable taglist which may or may not be the
17971797 same as <em class="parameter"><code>taglist</code></em>
17981798 . </p>
18091809 <p>Inserts the tags of the <em class="parameter"><code>from</code></em>
18101810 list into the first list using the given mode.</p>
18111811 <div class="refsect3">
1812 <a name="id-1.3.47.8.29.5"></a><h4>Parameters</h4>
1812 <a name="id-1.3.48.8.29.5"></a><h4>Parameters</h4>
18131813 <div class="informaltable"><table width="100%" border="0">
18141814 <colgroup>
18151815 <col width="150px" class="parameters_name">
18471847 copy of the other is returned. If both lists are <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</p>
18481848 <p>Free-function: gst_tag_list_unref</p>
18491849 <div class="refsect3">
1850 <a name="id-1.3.47.8.30.6"></a><h4>Parameters</h4>
1850 <a name="id-1.3.48.8.30.6"></a><h4>Parameters</h4>
18511851 <div class="informaltable"><table width="100%" border="0">
18521852 <colgroup>
18531853 <col width="150px" class="parameters_name">
18741874 </table></div>
18751875 </div>
18761876 <div class="refsect3">
1877 <a name="id-1.3.47.8.30.7"></a><h4>Returns</h4>
1877 <a name="id-1.3.48.8.30.7"></a><h4>Returns</h4>
18781878 <p> the new list. </p>
18791879 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
18801880 </div>
18871887 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
18881888 <p>Checks how many value are stored in this tag list for the given tag.</p>
18891889 <div class="refsect3">
1890 <a name="id-1.3.47.8.31.5"></a><h4>Parameters</h4>
1890 <a name="id-1.3.48.8.31.5"></a><h4>Parameters</h4>
18911891 <div class="informaltable"><table width="100%" border="0">
18921892 <colgroup>
18931893 <col width="150px" class="parameters_name">
19091909 </table></div>
19101910 </div>
19111911 <div class="refsect3">
1912 <a name="id-1.3.47.8.31.6"></a><h4>Returns</h4>
1912 <a name="id-1.3.48.8.31.6"></a><h4>Returns</h4>
19131913 <p> The number of tags stored</p>
19141914 <p></p>
19151915 </div>
19221922 <p>Get the number of tags in <em class="parameter"><code>list</code></em>
19231923 .</p>
19241924 <div class="refsect3">
1925 <a name="id-1.3.47.8.32.5"></a><h4>Parameters</h4>
1925 <a name="id-1.3.48.8.32.5"></a><h4>Parameters</h4>
19261926 <div class="informaltable"><table width="100%" border="0">
19271927 <colgroup>
19281928 <col width="150px" class="parameters_name">
19371937 </table></div>
19381938 </div>
19391939 <div class="refsect3">
1940 <a name="id-1.3.47.8.32.6"></a><h4>Returns</h4>
1940 <a name="id-1.3.48.8.32.6"></a><h4>Returns</h4>
19411941 <p> The number of tags in <em class="parameter"><code>list</code></em>
19421942 .</p>
19431943 <p></p>
19531953 at <em class="parameter"><code>index</code></em>
19541954 .</p>
19551955 <div class="refsect3">
1956 <a name="id-1.3.47.8.33.5"></a><h4>Parameters</h4>
1956 <a name="id-1.3.48.8.33.5"></a><h4>Parameters</h4>
19571957 <div class="informaltable"><table width="100%" border="0">
19581958 <colgroup>
19591959 <col width="150px" class="parameters_name">
19751975 </table></div>
19761976 </div>
19771977 <div class="refsect3">
1978 <a name="id-1.3.47.8.33.6"></a><h4>Returns</h4>
1978 <a name="id-1.3.48.8.33.6"></a><h4>Returns</h4>
19791979 <p> The name of the tag at <em class="parameter"><code>index</code></em>
19801980 .</p>
19811981 <p></p>
19911991 <em class="parameter"><code>...</code></em>);</pre>
19921992 <p>Sets the values for the given tags using the specified mode.</p>
19931993 <div class="refsect3">
1994 <a name="id-1.3.47.8.34.5"></a><h4>Parameters</h4>
1994 <a name="id-1.3.48.8.34.5"></a><h4>Parameters</h4>
19951995 <div class="informaltable"><table width="100%" border="0">
19961996 <colgroup>
19971997 <col width="150px" class="parameters_name">
20332033 <em class="parameter"><code>const <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
20342034 <p>Sets the GValue for a given tag using the specified mode.</p>
20352035 <div class="refsect3">
2036 <a name="id-1.3.47.8.35.5"></a><h4>Parameters</h4>
2036 <a name="id-1.3.48.8.35.5"></a><h4>Parameters</h4>
20372037 <div class="informaltable"><table width="100%" border="0">
20382038 <colgroup>
20392039 <col width="150px" class="parameters_name">
20752075 <em class="parameter"><code>...</code></em>);</pre>
20762076 <p>Sets the GValues for the given tags using the specified mode.</p>
20772077 <div class="refsect3">
2078 <a name="id-1.3.47.8.36.5"></a><h4>Parameters</h4>
2078 <a name="id-1.3.48.8.36.5"></a><h4>Parameters</h4>
20792079 <div class="informaltable"><table width="100%" border="0">
20802080 <colgroup>
20812081 <col width="150px" class="parameters_name">
21172117 <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
21182118 <p>Sets the values for the given tags using the specified mode.</p>
21192119 <div class="refsect3">
2120 <a name="id-1.3.47.8.37.5"></a><h4>Parameters</h4>
2120 <a name="id-1.3.48.8.37.5"></a><h4>Parameters</h4>
21212121 <div class="informaltable"><table width="100%" border="0">
21222122 <colgroup>
21232123 <col width="150px" class="parameters_name">
21592159 <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
21602160 <p>Sets the GValues for the given tags using the specified mode.</p>
21612161 <div class="refsect3">
2162 <a name="id-1.3.47.8.38.5"></a><h4>Parameters</h4>
2162 <a name="id-1.3.48.8.38.5"></a><h4>Parameters</h4>
21632163 <div class="informaltable"><table width="100%" border="0">
21642164 <colgroup>
21652165 <col width="150px" class="parameters_name">
21992199 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
22002200 <p>Removes the given tag from the taglist.</p>
22012201 <div class="refsect3">
2202 <a name="id-1.3.47.8.39.5"></a><h4>Parameters</h4>
2202 <a name="id-1.3.48.8.39.5"></a><h4>Parameters</h4>
22032203 <div class="informaltable"><table width="100%" border="0">
22042204 <colgroup>
22052205 <col width="150px" class="parameters_name">
22312231 <p>Calls the given function for each tag inside the tag list. Note that if there
22322232 is no tag, the function won't be called at all.</p>
22332233 <div class="refsect3">
2234 <a name="id-1.3.47.8.40.5"></a><h4>Parameters</h4>
2234 <a name="id-1.3.48.8.40.5"></a><h4>Parameters</h4>
22352235 <div class="informaltable"><table width="100%" border="0">
22362236 <colgroup>
22372237 <col width="150px" class="parameters_name">
22682268 <p>Gets the value that is at the given index for the given tag in the given
22692269 list.</p>
22702270 <div class="refsect3">
2271 <a name="id-1.3.47.8.41.5"></a><h4>Parameters</h4>
2271 <a name="id-1.3.48.8.41.5"></a><h4>Parameters</h4>
22722272 <div class="informaltable"><table width="100%" border="0">
22732273 <colgroup>
22742274 <col width="150px" class="parameters_name">
22952295 </table></div>
22962296 </div>
22972297 <div class="refsect3">
2298 <a name="id-1.3.47.8.41.6"></a><h4>Returns</h4>
2298 <a name="id-1.3.48.8.41.6"></a><h4>Returns</h4>
22992299 <p> The GValue for the specified
23002300 entry or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the tag wasn't available or the tag
23012301 doesn't have as many entries. </p>
23142314 with the tag.
23152315 You must <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a> the value after use.</p>
23162316 <div class="refsect3">
2317 <a name="id-1.3.47.8.42.5"></a><h4>Parameters</h4>
2317 <a name="id-1.3.48.8.42.5"></a><h4>Parameters</h4>
23182318 <div class="informaltable"><table width="100%" border="0">
23192319 <colgroup>
23202320 <col width="150px" class="parameters_name">
23412341 </table></div>
23422342 </div>
23432343 <div class="refsect3">
2344 <a name="id-1.3.47.8.42.6"></a><h4>Returns</h4>
2344 <a name="id-1.3.48.8.42.6"></a><h4>Returns</h4>
23452345 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
23462346 given list.</p>
23472347 <p></p>
23572357 <p>Copies the contents for the given tag into the value, merging multiple values
23582358 into one if multiple values are associated with the tag.</p>
23592359 <div class="refsect3">
2360 <a name="id-1.3.47.8.43.5"></a><h4>Parameters</h4>
2360 <a name="id-1.3.48.8.43.5"></a><h4>Parameters</h4>
23612361 <div class="informaltable"><table width="100%" border="0">
23622362 <colgroup>
23632363 <col width="150px" class="parameters_name">
23842384 </table></div>
23852385 </div>
23862386 <div class="refsect3">
2387 <a name="id-1.3.47.8.43.6"></a><h4>Returns</h4>
2387 <a name="id-1.3.48.8.43.6"></a><h4>Returns</h4>
23882388 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
23892389 given list.</p>
23902390 <p></p>
24012401 <p>Gets the value that is at the given index for the given tag in the given
24022402 list.</p>
24032403 <div class="refsect3">
2404 <a name="id-1.3.47.8.44.5"></a><h4>Parameters</h4>
2404 <a name="id-1.3.48.8.44.5"></a><h4>Parameters</h4>
24052405 <div class="informaltable"><table width="100%" border="0">
24062406 <colgroup>
24072407 <col width="150px" class="parameters_name">
24332433 </table></div>
24342434 </div>
24352435 <div class="refsect3">
2436 <a name="id-1.3.47.8.44.6"></a><h4>Returns</h4>
2436 <a name="id-1.3.48.8.44.6"></a><h4>Returns</h4>
24372437 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
24382438 given list.</p>
24392439 <p></p>
24492449 <p>Copies the contents for the given tag into the value, merging multiple values
24502450 into one if multiple values are associated with the tag.</p>
24512451 <div class="refsect3">
2452 <a name="id-1.3.47.8.45.5"></a><h4>Parameters</h4>
2452 <a name="id-1.3.48.8.45.5"></a><h4>Parameters</h4>
24532453 <div class="informaltable"><table width="100%" border="0">
24542454 <colgroup>
24552455 <col width="150px" class="parameters_name">
24762476 </table></div>
24772477 </div>
24782478 <div class="refsect3">
2479 <a name="id-1.3.47.8.45.6"></a><h4>Returns</h4>
2479 <a name="id-1.3.48.8.45.6"></a><h4>Returns</h4>
24802480 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
24812481 given list.</p>
24822482 <p></p>
24932493 <p>Gets the value that is at the given index for the given tag in the given
24942494 list.</p>
24952495 <div class="refsect3">
2496 <a name="id-1.3.47.8.46.5"></a><h4>Parameters</h4>
2496 <a name="id-1.3.48.8.46.5"></a><h4>Parameters</h4>
24972497 <div class="informaltable"><table width="100%" border="0">
24982498 <colgroup>
24992499 <col width="150px" class="parameters_name">
25252525 </table></div>
25262526 </div>
25272527 <div class="refsect3">
2528 <a name="id-1.3.47.8.46.6"></a><h4>Returns</h4>
2528 <a name="id-1.3.48.8.46.6"></a><h4>Returns</h4>
25292529 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
25302530 given list.</p>
25312531 <p></p>
25412541 <p>Copies the contents for the given tag into the value, merging multiple values
25422542 into one if multiple values are associated with the tag.</p>
25432543 <div class="refsect3">
2544 <a name="id-1.3.47.8.47.5"></a><h4>Parameters</h4>
2544 <a name="id-1.3.48.8.47.5"></a><h4>Parameters</h4>
25452545 <div class="informaltable"><table width="100%" border="0">
25462546 <colgroup>
25472547 <col width="150px" class="parameters_name">
25682568 </table></div>
25692569 </div>
25702570 <div class="refsect3">
2571 <a name="id-1.3.47.8.47.6"></a><h4>Returns</h4>
2571 <a name="id-1.3.48.8.47.6"></a><h4>Returns</h4>
25722572 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
25732573 given list.</p>
25742574 <p></p>
25852585 <p>Gets the value that is at the given index for the given tag in the given
25862586 list.</p>
25872587 <div class="refsect3">
2588 <a name="id-1.3.47.8.48.5"></a><h4>Parameters</h4>
2588 <a name="id-1.3.48.8.48.5"></a><h4>Parameters</h4>
25892589 <div class="informaltable"><table width="100%" border="0">
25902590 <colgroup>
25912591 <col width="150px" class="parameters_name">
26172617 </table></div>
26182618 </div>
26192619 <div class="refsect3">
2620 <a name="id-1.3.47.8.48.6"></a><h4>Returns</h4>
2620 <a name="id-1.3.48.8.48.6"></a><h4>Returns</h4>
26212621 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
26222622 given list.</p>
26232623 <p></p>
26422642 <p>Gets the value that is at the given index for the given tag in the given
26432643 list.</p>
26442644 <div class="refsect3">
2645 <a name="id-1.3.47.8.50.5"></a><h4>Parameters</h4>
2645 <a name="id-1.3.48.8.50.5"></a><h4>Parameters</h4>
26462646 <div class="informaltable"><table width="100%" border="0">
26472647 <colgroup>
26482648 <col width="150px" class="parameters_name">
26742674 </table></div>
26752675 </div>
26762676 <div class="refsect3">
2677 <a name="id-1.3.47.8.50.6"></a><h4>Returns</h4>
2677 <a name="id-1.3.48.8.50.6"></a><h4>Returns</h4>
26782678 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
26792679 given list.</p>
26802680 <p></p>
26902690 <p>Copies the contents for the given tag into the value, merging multiple values
26912691 into one if multiple values are associated with the tag.</p>
26922692 <div class="refsect3">
2693 <a name="id-1.3.47.8.51.5"></a><h4>Parameters</h4>
2693 <a name="id-1.3.48.8.51.5"></a><h4>Parameters</h4>
26942694 <div class="informaltable"><table width="100%" border="0">
26952695 <colgroup>
26962696 <col width="150px" class="parameters_name">
27172717 </table></div>
27182718 </div>
27192719 <div class="refsect3">
2720 <a name="id-1.3.47.8.51.6"></a><h4>Returns</h4>
2720 <a name="id-1.3.48.8.51.6"></a><h4>Returns</h4>
27212721 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
27222722 given list.</p>
27232723 <p></p>
27342734 <p>Gets the value that is at the given index for the given tag in the given
27352735 list.</p>
27362736 <div class="refsect3">
2737 <a name="id-1.3.47.8.52.5"></a><h4>Parameters</h4>
2737 <a name="id-1.3.48.8.52.5"></a><h4>Parameters</h4>
27382738 <div class="informaltable"><table width="100%" border="0">
27392739 <colgroup>
27402740 <col width="150px" class="parameters_name">
27662766 </table></div>
27672767 </div>
27682768 <div class="refsect3">
2769 <a name="id-1.3.47.8.52.6"></a><h4>Returns</h4>
2769 <a name="id-1.3.48.8.52.6"></a><h4>Returns</h4>
27702770 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
27712771 given list.</p>
27722772 <p></p>
27822782 <p>Copies the contents for the given tag into the value, merging multiple values
27832783 into one if multiple values are associated with the tag.</p>
27842784 <div class="refsect3">
2785 <a name="id-1.3.47.8.53.5"></a><h4>Parameters</h4>
2785 <a name="id-1.3.48.8.53.5"></a><h4>Parameters</h4>
27862786 <div class="informaltable"><table width="100%" border="0">
27872787 <colgroup>
27882788 <col width="150px" class="parameters_name">
28092809 </table></div>
28102810 </div>
28112811 <div class="refsect3">
2812 <a name="id-1.3.47.8.53.6"></a><h4>Returns</h4>
2812 <a name="id-1.3.48.8.53.6"></a><h4>Returns</h4>
28132813 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
28142814 given list.</p>
28152815 <p></p>
28262826 <p>Gets the value that is at the given index for the given tag in the given
28272827 list.</p>
28282828 <div class="refsect3">
2829 <a name="id-1.3.47.8.54.5"></a><h4>Parameters</h4>
2829 <a name="id-1.3.48.8.54.5"></a><h4>Parameters</h4>
28302830 <div class="informaltable"><table width="100%" border="0">
28312831 <colgroup>
28322832 <col width="150px" class="parameters_name">
28582858 </table></div>
28592859 </div>
28602860 <div class="refsect3">
2861 <a name="id-1.3.47.8.54.6"></a><h4>Returns</h4>
2861 <a name="id-1.3.48.8.54.6"></a><h4>Returns</h4>
28622862 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
28632863 given list.</p>
28642864 <p></p>
28742874 <p>Copies the contents for the given tag into the value, merging multiple values
28752875 into one if multiple values are associated with the tag.</p>
28762876 <div class="refsect3">
2877 <a name="id-1.3.47.8.55.5"></a><h4>Parameters</h4>
2877 <a name="id-1.3.48.8.55.5"></a><h4>Parameters</h4>
28782878 <div class="informaltable"><table width="100%" border="0">
28792879 <colgroup>
28802880 <col width="150px" class="parameters_name">
29012901 </table></div>
29022902 </div>
29032903 <div class="refsect3">
2904 <a name="id-1.3.47.8.55.6"></a><h4>Returns</h4>
2904 <a name="id-1.3.48.8.55.6"></a><h4>Returns</h4>
29052905 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
29062906 given list.</p>
29072907 <p></p>
29182918 <p>Gets the value that is at the given index for the given tag in the given
29192919 list.</p>
29202920 <div class="refsect3">
2921 <a name="id-1.3.47.8.56.5"></a><h4>Parameters</h4>
2921 <a name="id-1.3.48.8.56.5"></a><h4>Parameters</h4>
29222922 <div class="informaltable"><table width="100%" border="0">
29232923 <colgroup>
29242924 <col width="150px" class="parameters_name">
29502950 </table></div>
29512951 </div>
29522952 <div class="refsect3">
2953 <a name="id-1.3.47.8.56.6"></a><h4>Returns</h4>
2953 <a name="id-1.3.48.8.56.6"></a><h4>Returns</h4>
29542954 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
29552955 given list.</p>
29562956 <p></p>
29732973 returned string is also guaranteed to be non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and non-empty.</p>
29742974 <p>Free-function: g_free</p>
29752975 <div class="refsect3">
2976 <a name="id-1.3.47.8.57.8"></a><h4>Parameters</h4>
2976 <a name="id-1.3.48.8.57.8"></a><h4>Parameters</h4>
29772977 <div class="informaltable"><table width="100%" border="0">
29782978 <colgroup>
29792979 <col width="150px" class="parameters_name">
30003000 </table></div>
30013001 </div>
30023002 <div class="refsect3">
3003 <a name="id-1.3.47.8.57.9"></a><h4>Returns</h4>
3003 <a name="id-1.3.48.8.57.9"></a><h4>Returns</h4>
30043004 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
30053005 given list.</p>
30063006 <p></p>
30223022 returned string is also guaranteed to be non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and non-empty.</p>
30233023 <p>Free-function: g_free</p>
30243024 <div class="refsect3">
3025 <a name="id-1.3.47.8.58.7"></a><h4>Parameters</h4>
3025 <a name="id-1.3.48.8.58.7"></a><h4>Parameters</h4>
30263026 <div class="informaltable"><table width="100%" border="0">
30273027 <colgroup>
30283028 <col width="150px" class="parameters_name">
30543054 </table></div>
30553055 </div>
30563056 <div class="refsect3">
3057 <a name="id-1.3.47.8.58.8"></a><h4>Returns</h4>
3057 <a name="id-1.3.48.8.58.8"></a><h4>Returns</h4>
30583058 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
30593059 given list.</p>
30603060 <p></p>
30753075 to be freed by the caller. The returned string is also guaranteed to
30763076 be non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and non-empty.</p>
30773077 <div class="refsect3">
3078 <a name="id-1.3.47.8.59.6"></a><h4>Parameters</h4>
3078 <a name="id-1.3.48.8.59.6"></a><h4>Parameters</h4>
30793079 <div class="informaltable"><table width="100%" border="0">
30803080 <colgroup>
30813081 <col width="150px" class="parameters_name">
31073107 </table></div>
31083108 </div>
31093109 <div class="refsect3">
3110 <a name="id-1.3.47.8.59.7"></a><h4>Returns</h4>
3110 <a name="id-1.3.48.8.59.7"></a><h4>Returns</h4>
31113111 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was set, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
31123112 given list.</p>
31133113 <p></p>
31233123 <p>Copies the contents for the given tag into the value, merging multiple values
31243124 into one if multiple values are associated with the tag.</p>
31253125 <div class="refsect3">
3126 <a name="id-1.3.47.8.60.5"></a><h4>Parameters</h4>
3126 <a name="id-1.3.48.8.60.5"></a><h4>Parameters</h4>
31273127 <div class="informaltable"><table width="100%" border="0">
31283128 <colgroup>
31293129 <col width="150px" class="parameters_name">
31503150 </table></div>
31513151 </div>
31523152 <div class="refsect3">
3153 <a name="id-1.3.47.8.60.6"></a><h4>Returns</h4>
3153 <a name="id-1.3.48.8.60.6"></a><h4>Returns</h4>
31543154 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
31553155 given list.</p>
31563156 <p></p>
31673167 <p>Gets the value that is at the given index for the given tag in the given
31683168 list.</p>
31693169 <div class="refsect3">
3170 <a name="id-1.3.47.8.61.5"></a><h4>Parameters</h4>
3170 <a name="id-1.3.48.8.61.5"></a><h4>Parameters</h4>
31713171 <div class="informaltable"><table width="100%" border="0">
31723172 <colgroup>
31733173 <col width="150px" class="parameters_name">
31993199 </table></div>
32003200 </div>
32013201 <div class="refsect3">
3202 <a name="id-1.3.47.8.61.6"></a><h4>Returns</h4>
3202 <a name="id-1.3.48.8.61.6"></a><h4>Returns</h4>
32033203 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
32043204 given list.</p>
32053205 <p></p>
32183218 needed.</p>
32193219 <p>Free-function: g_date_free</p>
32203220 <div class="refsect3">
3221 <a name="id-1.3.47.8.62.6"></a><h4>Parameters</h4>
3221 <a name="id-1.3.48.8.62.6"></a><h4>Parameters</h4>
32223222 <div class="informaltable"><table width="100%" border="0">
32233223 <colgroup>
32243224 <col width="150px" class="parameters_name">
32463246 </table></div>
32473247 </div>
32483248 <div class="refsect3">
3249 <a name="id-1.3.47.8.62.7"></a><h4>Returns</h4>
3249 <a name="id-1.3.48.8.62.7"></a><h4>Returns</h4>
32503250 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a date was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
32513251 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
32523252 <p></p>
32663266 with <a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#g-date-free"><code class="function">g_date_free()</code></a> when it is no longer needed.</p>
32673267 <p>Free-function: g_date_free</p>
32683268 <div class="refsect3">
3269 <a name="id-1.3.47.8.63.6"></a><h4>Parameters</h4>
3269 <a name="id-1.3.48.8.63.6"></a><h4>Parameters</h4>
32703270 <div class="informaltable"><table width="100%" border="0">
32713271 <colgroup>
32723272 <col width="150px" class="parameters_name">
32983298 </table></div>
32993299 </div>
33003300 <div class="refsect3">
3301 <a name="id-1.3.47.8.63.7"></a><h4>Returns</h4>
3301 <a name="id-1.3.48.8.63.7"></a><h4>Returns</h4>
33023302 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
33033303 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
33043304 <p></p>
33173317 it is no longer needed.</p>
33183318 <p>Free-function: gst_date_time_unref</p>
33193319 <div class="refsect3">
3320 <a name="id-1.3.47.8.64.6"></a><h4>Parameters</h4>
3320 <a name="id-1.3.48.8.64.6"></a><h4>Parameters</h4>
33213321 <div class="informaltable"><table width="100%" border="0">
33223322 <colgroup>
33233323 <col width="150px" class="parameters_name">
33453345 </table></div>
33463346 </div>
33473347 <div class="refsect3">
3348 <a name="id-1.3.47.8.64.7"></a><h4>Returns</h4>
3348 <a name="id-1.3.48.8.64.7"></a><h4>Returns</h4>
33493349 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a datetime was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in
33503350 the given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
33513351 <p></p>
33653365 with <a class="link" href="GstDateTime.html#gst-date-time-unref" title="gst_date_time_unref ()"><code class="function">gst_date_time_unref()</code></a> when it is no longer needed.</p>
33663366 <p>Free-function: gst_date_time_unref</p>
33673367 <div class="refsect3">
3368 <a name="id-1.3.47.8.65.6"></a><h4>Parameters</h4>
3368 <a name="id-1.3.48.8.65.6"></a><h4>Parameters</h4>
33693369 <div class="informaltable"><table width="100%" border="0">
33703370 <colgroup>
33713371 <col width="150px" class="parameters_name">
33973397 </table></div>
33983398 </div>
33993399 <div class="refsect3">
3400 <a name="id-1.3.47.8.65.7"></a><h4>Returns</h4>
3400 <a name="id-1.3.48.8.65.7"></a><h4>Returns</h4>
34013401 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
34023402 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
34033403 <p></p>
34183418 <a class="link" href="GstSample.html#gst-sample-get-caps" title="gst_sample_get_caps ()"><code class="function">gst_sample_get_caps()</code></a>.</p>
34193419 <p>Free-function: gst_sample_unref</p>
34203420 <div class="refsect3">
3421 <a name="id-1.3.47.8.66.6"></a><h4>Parameters</h4>
3421 <a name="id-1.3.48.8.66.6"></a><h4>Parameters</h4>
34223422 <div class="informaltable"><table width="100%" border="0">
34233423 <colgroup>
34243424 <col width="150px" class="parameters_name">
34463446 </table></div>
34473447 </div>
34483448 <div class="refsect3">
3449 <a name="id-1.3.47.8.66.7"></a><h4>Returns</h4>
3449 <a name="id-1.3.48.8.66.7"></a><h4>Returns</h4>
34503450 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a sample was returned, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in
34513451 the given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
34523452 <p></p>
34683468 caps (if any) with <a class="link" href="GstSample.html#gst-sample-get-caps" title="gst_sample_get_caps ()"><code class="function">gst_sample_get_caps()</code></a>.</p>
34693469 <p>Free-function: gst_sample_unref</p>
34703470 <div class="refsect3">
3471 <a name="id-1.3.47.8.67.6"></a><h4>Parameters</h4>
3471 <a name="id-1.3.48.8.67.6"></a><h4>Parameters</h4>
34723472 <div class="informaltable"><table width="100%" border="0">
34733473 <colgroup>
34743474 <col width="150px" class="parameters_name">
35013501 </table></div>
35023502 </div>
35033503 <div class="refsect3">
3504 <a name="id-1.3.47.8.67.7"></a><h4>Returns</h4>
3504 <a name="id-1.3.48.8.67.7"></a><h4>Returns</h4>
35053505 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a sample was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
35063506 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
35073507 <p></p>
35183518 </pre>
35193519 <p>Object describing tags / metadata.</p>
35203520 <div class="refsect3">
3521 <a name="id-1.3.47.9.2.5"></a><h4>Members</h4>
3521 <a name="id-1.3.48.9.2.5"></a><h4>Members</h4>
35223522 <div class="informaltable"><table width="100%" border="0">
35233523 <colgroup>
35243524 <col width="300px" class="struct_members_name">
35443544 In the table below this is shown for the cases that a tag exists in the list
35453545 (A) or does not exists (!A) and combinations thereof.</p>
35463546 <div class="table">
3547 <a name="id-1.3.47.9.3.4"></a><p class="title"><b>Table 1. merge mode</b></p>
3547 <a name="id-1.3.48.9.3.4"></a><p class="title"><b>Table 1. merge mode</b></p>
35483548 <div class="table-contents"><table summary="merge mode" border="1">
35493549 <colgroup>
35503550 <col>
36073607 </table></div>
36083608 </div>
36093609 <br class="table-break"><div class="refsect3">
3610 <a name="id-1.3.47.9.3.5"></a><h4>Members</h4>
3610 <a name="id-1.3.48.9.3.5"></a><h4>Members</h4>
36113611 <div class="informaltable"><table width="100%" border="0">
36123612 <colgroup>
36133613 <col width="300px" class="enum_members_name">
36803680 <a name="GstTagFlag"></a><h3>enum GstTagFlag</h3>
36813681 <p>Extra tag flags used when registering tags.</p>
36823682 <div class="refsect3">
3683 <a name="id-1.3.47.9.4.4"></a><h4>Members</h4>
3683 <a name="id-1.3.48.9.4.4"></a><h4>Members</h4>
36843684 <div class="informaltable"><table width="100%" border="0">
36853685 <colgroup>
36863686 <col width="300px" class="enum_members_name">
37333733 <p>GstTagScope specifies if a taglist applies to the complete
37343734 medium or only to one single stream.</p>
37353735 <div class="refsect3">
3736 <a name="id-1.3.47.9.5.4"></a><h4>Members</h4>
3736 <a name="id-1.3.48.9.5.4"></a><h4>Members</h4>
37373737 <div class="informaltable"><table width="100%" border="0">
37383738 <colgroup>
37393739 <col width="300px" class="enum_members_name">
234234 <p>Reset the internal taglist. Elements should call this from within the
235235 state-change handler.</p>
236236 <div class="refsect3">
237 <a name="id-1.3.48.9.2.5"></a><h4>Parameters</h4>
237 <a name="id-1.3.49.9.2.5"></a><h4>Parameters</h4>
238238 <div class="informaltable"><table width="100%" border="0">
239239 <colgroup>
240240 <col width="150px" class="parameters_name">
258258 <em class="parameter"><code><a class="link" href="GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
259259 <p>Merges the given list into the setter's list using the given mode.</p>
260260 <div class="refsect3">
261 <a name="id-1.3.48.9.3.5"></a><h4>Parameters</h4>
261 <a name="id-1.3.49.9.3.5"></a><h4>Parameters</h4>
262262 <div class="informaltable"><table width="100%" border="0">
263263 <colgroup>
264264 <col width="150px" class="parameters_name">
296296 <p>Adds the given tag / value pairs on the setter using the given merge mode.
297297 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
298298 <div class="refsect3">
299 <a name="id-1.3.48.9.4.5"></a><h4>Parameters</h4>
299 <a name="id-1.3.49.9.4.5"></a><h4>Parameters</h4>
300300 <div class="informaltable"><table width="100%" border="0">
301301 <colgroup>
302302 <col width="150px" class="parameters_name">
338338 <em class="parameter"><code>const <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
339339 <p>Adds the given tag / GValue pair on the setter using the given merge mode.</p>
340340 <div class="refsect3">
341 <a name="id-1.3.48.9.5.5"></a><h4>Parameters</h4>
341 <a name="id-1.3.49.9.5.5"></a><h4>Parameters</h4>
342342 <div class="informaltable"><table width="100%" border="0">
343343 <colgroup>
344344 <col width="150px" class="parameters_name">
381381 <p>Adds the given tag / GValue pairs on the setter using the given merge mode.
382382 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
383383 <div class="refsect3">
384 <a name="id-1.3.48.9.6.5"></a><h4>Parameters</h4>
384 <a name="id-1.3.49.9.6.5"></a><h4>Parameters</h4>
385385 <div class="informaltable"><table width="100%" border="0">
386386 <colgroup>
387387 <col width="150px" class="parameters_name">
424424 <p>Adds the given tag / value pairs on the setter using the given merge mode.
425425 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
426426 <div class="refsect3">
427 <a name="id-1.3.48.9.7.5"></a><h4>Parameters</h4>
427 <a name="id-1.3.49.9.7.5"></a><h4>Parameters</h4>
428428 <div class="informaltable"><table width="100%" border="0">
429429 <colgroup>
430430 <col width="150px" class="parameters_name">
467467 <p>Adds the given tag / GValue pairs on the setter using the given merge mode.
468468 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
469469 <div class="refsect3">
470 <a name="id-1.3.48.9.8.5"></a><h4>Parameters</h4>
470 <a name="id-1.3.49.9.8.5"></a><h4>Parameters</h4>
471471 <div class="informaltable"><table width="100%" border="0">
472472 <colgroup>
473473 <col width="150px" class="parameters_name">
508508 modified or freed.</p>
509509 <p>This function is not thread-safe.</p>
510510 <div class="refsect3">
511 <a name="id-1.3.48.9.9.6"></a><h4>Parameters</h4>
511 <a name="id-1.3.49.9.9.6"></a><h4>Parameters</h4>
512512 <div class="informaltable"><table width="100%" border="0">
513513 <colgroup>
514514 <col width="150px" class="parameters_name">
523523 </table></div>
524524 </div>
525525 <div class="refsect3">
526 <a name="id-1.3.48.9.9.7"></a><h4>Returns</h4>
526 <a name="id-1.3.49.9.9.7"></a><h4>Returns</h4>
527527 <p> a current snapshot of the
528528 taglist used in the setter or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is used. </p>
529529 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
539539 specified by this interface. The default is <a class="link" href="GstTagList.html#GST-TAG-MERGE-KEEP:CAPS"><span class="type">GST_TAG_MERGE_KEEP</span></a>, which keeps
540540 the tags set with this interface and discards tags from events.</p>
541541 <div class="refsect3">
542 <a name="id-1.3.48.9.10.5"></a><h4>Parameters</h4>
542 <a name="id-1.3.49.9.10.5"></a><h4>Parameters</h4>
543543 <div class="informaltable"><table width="100%" border="0">
544544 <colgroup>
545545 <col width="150px" class="parameters_name">
569569 <p>Queries the mode by which tags inside the setter are overwritten by tags
570570 from events</p>
571571 <div class="refsect3">
572 <a name="id-1.3.48.9.11.5"></a><h4>Parameters</h4>
572 <a name="id-1.3.49.9.11.5"></a><h4>Parameters</h4>
573573 <div class="informaltable"><table width="100%" border="0">
574574 <colgroup>
575575 <col width="150px" class="parameters_name">
584584 </table></div>
585585 </div>
586586 <div class="refsect3">
587 <a name="id-1.3.48.9.11.6"></a><h4>Returns</h4>
587 <a name="id-1.3.49.9.11.6"></a><h4>Returns</h4>
588588 <p> the merge mode used inside the element.</p>
589589 <p></p>
590590 </div>
610610 </pre>
611611 <p><a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface"><span class="type">GstTagSetterInterface</span></a> interface.</p>
612612 <div class="refsect3">
613 <a name="id-1.3.48.10.3.5"></a><h4>Members</h4>
613 <a name="id-1.3.49.10.3.5"></a><h4>Members</h4>
614614 <div class="informaltable"><table width="100%" border="0">
615615 <colgroup>
616616 <col width="300px" class="struct_members_name">
272272 <p>A function that will repeatedly be called in the thread created by
273273 a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.</p>
274274 <div class="refsect3">
275 <a name="id-1.3.49.8.2.5"></a><h4>Parameters</h4>
275 <a name="id-1.3.50.8.2.5"></a><h4>Parameters</h4>
276276 <div class="informaltable"><table width="100%" border="0">
277277 <colgroup>
278278 <col width="150px" class="parameters_name">
294294 </pre>
295295 <p>Send a broadcast signal to all waiting task conds</p>
296296 <div class="refsect3">
297 <a name="id-1.3.49.8.3.5"></a><h4>Parameters</h4>
297 <a name="id-1.3.50.8.3.5"></a><h4>Parameters</h4>
298298 <div class="informaltable"><table width="100%" border="0">
299299 <colgroup>
300300 <col width="150px" class="parameters_name">
316316 </pre>
317317 <p>Get access to the cond of the task.</p>
318318 <div class="refsect3">
319 <a name="id-1.3.49.8.4.5"></a><h4>Parameters</h4>
319 <a name="id-1.3.50.8.4.5"></a><h4>Parameters</h4>
320320 <div class="informaltable"><table width="100%" border="0">
321321 <colgroup>
322322 <col width="150px" class="parameters_name">
338338 </pre>
339339 <p>Get access to the task lock.</p>
340340 <div class="refsect3">
341 <a name="id-1.3.49.8.5.5"></a><h4>Parameters</h4>
341 <a name="id-1.3.50.8.5.5"></a><h4>Parameters</h4>
342342 <div class="informaltable"><table width="100%" border="0">
343343 <colgroup>
344344 <col width="150px" class="parameters_name">
360360 </pre>
361361 <p>Signal the task cond</p>
362362 <div class="refsect3">
363 <a name="id-1.3.49.8.6.5"></a><h4>Parameters</h4>
363 <a name="id-1.3.50.8.6.5"></a><h4>Parameters</h4>
364364 <div class="informaltable"><table width="100%" border="0">
365365 <colgroup>
366366 <col width="150px" class="parameters_name">
382382 </pre>
383383 <p>Get access to the state of the task.</p>
384384 <div class="refsect3">
385 <a name="id-1.3.49.8.7.5"></a><h4>Parameters</h4>
385 <a name="id-1.3.50.8.7.5"></a><h4>Parameters</h4>
386386 <div class="informaltable"><table width="100%" border="0">
387387 <colgroup>
388388 <col width="150px" class="parameters_name">
404404 </pre>
405405 <p>Wait for the task cond to be signalled</p>
406406 <div class="refsect3">
407 <a name="id-1.3.49.8.8.5"></a><h4>Parameters</h4>
407 <a name="id-1.3.50.8.8.5"></a><h4>Parameters</h4>
408408 <div class="informaltable"><table width="100%" border="0">
409409 <colgroup>
410410 <col width="150px" class="parameters_name">
440440 <em class="parameter"><code>func</code></em>
441441 is called.</p>
442442 <div class="refsect3">
443 <a name="id-1.3.49.8.9.8"></a><h4>Parameters</h4>
443 <a name="id-1.3.50.8.9.8"></a><h4>Parameters</h4>
444444 <div class="informaltable"><table width="100%" border="0">
445445 <colgroup>
446446 <col width="150px" class="parameters_name">
469469 </table></div>
470470 </div>
471471 <div class="refsect3">
472 <a name="id-1.3.49.8.9.9"></a><h4>Returns</h4>
472 <a name="id-1.3.50.8.9.9"></a><h4>Returns</h4>
473473 <p> A new <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.</p>
474474 <p>MT safe. </p>
475475 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
487487 <a class="link" href="GstTask.html#gst-task-start" title="gst_task_start ()"><code class="function">gst_task_start()</code></a>.</p>
488488 <p>MT safe.</p>
489489 <div class="refsect3">
490 <a name="id-1.3.49.8.10.7"></a><h4>Parameters</h4>
490 <a name="id-1.3.50.8.10.7"></a><h4>Parameters</h4>
491491 <div class="informaltable"><table width="100%" border="0">
492492 <colgroup>
493493 <col width="150px" class="parameters_name">
523523 .</p>
524524 <p>MT safe.</p>
525525 <div class="refsect3">
526 <a name="id-1.3.49.8.11.6"></a><h4>Parameters</h4>
526 <a name="id-1.3.50.8.11.6"></a><h4>Parameters</h4>
527527 <div class="informaltable"><table width="100%" border="0">
528528 <colgroup>
529529 <col width="150px" class="parameters_name">
554554 threads.</p>
555555 <p>MT safe.</p>
556556 <div class="refsect3">
557 <a name="id-1.3.49.8.12.6"></a><h4>Parameters</h4>
557 <a name="id-1.3.50.8.12.6"></a><h4>Parameters</h4>
558558 <div class="informaltable"><table width="100%" border="0">
559559 <colgroup>
560560 <col width="150px" class="parameters_name">
569569 </table></div>
570570 </div>
571571 <div class="refsect3">
572 <a name="id-1.3.49.8.12.7"></a><h4>Returns</h4>
572 <a name="id-1.3.50.8.12.7"></a><h4>Returns</h4>
573573 <p> the <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> used by <em class="parameter"><code>task</code></em>
574574 . <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>
575575 after usage. </p>
585585 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
586586 <p>Custom GstTask thread callback functions that can be installed.</p>
587587 <div class="refsect3">
588 <a name="id-1.3.49.8.13.5"></a><h4>Parameters</h4>
588 <a name="id-1.3.50.8.13.5"></a><h4>Parameters</h4>
589589 <div class="informaltable"><table width="100%" border="0">
590590 <colgroup>
591591 <col width="150px" class="parameters_name">
630630 is no
631631 longer referenced.</p>
632632 <div class="refsect3">
633 <a name="id-1.3.49.8.14.5"></a><h4>Parameters</h4>
633 <a name="id-1.3.50.8.14.5"></a><h4>Parameters</h4>
634634 <div class="informaltable"><table width="100%" border="0">
635635 <colgroup>
636636 <col width="150px" class="parameters_name">
682682 is no
683683 longer referenced.</p>
684684 <div class="refsect3">
685 <a name="id-1.3.49.8.15.5"></a><h4>Parameters</h4>
685 <a name="id-1.3.50.8.15.5"></a><h4>Parameters</h4>
686686 <div class="informaltable"><table width="100%" border="0">
687687 <colgroup>
688688 <col width="150px" class="parameters_name">
723723 gst_task_get_state (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
724724 <p>Get the current state of the task.</p>
725725 <div class="refsect3">
726 <a name="id-1.3.49.8.16.5"></a><h4>Parameters</h4>
726 <a name="id-1.3.50.8.16.5"></a><h4>Parameters</h4>
727727 <div class="informaltable"><table width="100%" border="0">
728728 <colgroup>
729729 <col width="150px" class="parameters_name">
738738 </table></div>
739739 </div>
740740 <div class="refsect3">
741 <a name="id-1.3.49.8.16.6"></a><h4>Returns</h4>
741 <a name="id-1.3.50.8.16.6"></a><h4>Returns</h4>
742742 <p> The <a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="type">GstTaskState</span></a> of the task</p>
743743 <p>MT safe.</p>
744744 <p></p>
759759 this function will return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
760760 <p>MT safe.</p>
761761 <div class="refsect3">
762 <a name="id-1.3.49.8.17.7"></a><h4>Parameters</h4>
762 <a name="id-1.3.50.8.17.7"></a><h4>Parameters</h4>
763763 <div class="informaltable"><table width="100%" border="0">
764764 <colgroup>
765765 <col width="150px" class="parameters_name">
781781 </table></div>
782782 </div>
783783 <div class="refsect3">
784 <a name="id-1.3.49.8.17.8"></a><h4>Returns</h4>
784 <a name="id-1.3.50.8.17.8"></a><h4>Returns</h4>
785785 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the state could be changed.</p>
786786 <p></p>
787787 </div>
797797 in the paused state. This function does not wait for the task to complete
798798 the paused state.</p>
799799 <div class="refsect3">
800 <a name="id-1.3.49.8.18.5"></a><h4>Parameters</h4>
800 <a name="id-1.3.50.8.18.5"></a><h4>Parameters</h4>
801801 <div class="informaltable"><table width="100%" border="0">
802802 <colgroup>
803803 <col width="150px" class="parameters_name">
812812 </table></div>
813813 </div>
814814 <div class="refsect3">
815 <a name="id-1.3.49.8.18.6"></a><h4>Returns</h4>
815 <a name="id-1.3.50.8.18.6"></a><h4>Returns</h4>
816816 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be paused.</p>
817817 <p>MT safe.</p>
818818 <p></p>
828828 must have a lock associated with it using
829829 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a> or this function will return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
830830 <div class="refsect3">
831 <a name="id-1.3.49.8.19.5"></a><h4>Parameters</h4>
831 <a name="id-1.3.50.8.19.5"></a><h4>Parameters</h4>
832832 <div class="informaltable"><table width="100%" border="0">
833833 <colgroup>
834834 <col width="150px" class="parameters_name">
843843 </table></div>
844844 </div>
845845 <div class="refsect3">
846 <a name="id-1.3.49.8.19.6"></a><h4>Returns</h4>
846 <a name="id-1.3.50.8.19.6"></a><h4>Returns</h4>
847847 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be started.</p>
848848 <p>MT safe.</p>
849849 <p></p>
859859 will not wait for the task to have completely stopped. Use
860860 <a class="link" href="GstTask.html#gst-task-join" title="gst_task_join ()"><code class="function">gst_task_join()</code></a> to stop and wait for completion.</p>
861861 <div class="refsect3">
862 <a name="id-1.3.49.8.20.5"></a><h4>Parameters</h4>
862 <a name="id-1.3.50.8.20.5"></a><h4>Parameters</h4>
863863 <div class="informaltable"><table width="100%" border="0">
864864 <colgroup>
865865 <col width="150px" class="parameters_name">
874874 </table></div>
875875 </div>
876876 <div class="refsect3">
877 <a name="id-1.3.49.8.20.6"></a><h4>Returns</h4>
877 <a name="id-1.3.50.8.20.6"></a><h4>Returns</h4>
878878 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be stopped.</p>
879879 <p>MT safe.</p>
880880 <p></p>
893893 would cause a deadlock. The function will detect this and print a
894894 g_warning.</p>
895895 <div class="refsect3">
896 <a name="id-1.3.49.8.21.7"></a><h4>Parameters</h4>
896 <a name="id-1.3.50.8.21.7"></a><h4>Parameters</h4>
897897 <div class="informaltable"><table width="100%" border="0">
898898 <colgroup>
899899 <col width="150px" class="parameters_name">
908908 </table></div>
909909 </div>
910910 <div class="refsect3">
911 <a name="id-1.3.49.8.21.8"></a><h4>Returns</h4>
911 <a name="id-1.3.50.8.21.8"></a><h4>Returns</h4>
912912 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be joined.</p>
913913 <p>MT safe.</p>
914914 <p></p>
943943 </pre>
944944 <p>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> object.</p>
945945 <div class="refsect3">
946 <a name="id-1.3.49.9.2.5"></a><h4>Members</h4>
946 <a name="id-1.3.50.9.2.5"></a><h4>Members</h4>
947947 <div class="informaltable"><table width="100%" border="0">
948948 <colgroup>
949949 <col width="300px" class="struct_members_name">
996996 <a name="GstTaskState"></a><h3>enum GstTaskState</h3>
997997 <p>The different states a task can be in</p>
998998 <div class="refsect3">
999 <a name="id-1.3.49.9.3.4"></a><h4>Members</h4>
999 <a name="id-1.3.50.9.3.4"></a><h4>Members</h4>
10001000 <div class="informaltable"><table width="100%" border="0">
10011001 <colgroup>
10021002 <col width="300px" class="enum_members_name">
136136 <span class="c_punctuation">(</span>*GstTaskPoolFunction<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
137137 <p>Task function, see <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a>.</p>
138138 <div class="refsect3">
139 <a name="id-1.3.50.8.2.5"></a><h4>Parameters</h4>
139 <a name="id-1.3.51.8.2.5"></a><h4>Parameters</h4>
140140 <div class="informaltable"><table width="100%" border="0">
141141 <colgroup>
142142 <col width="150px" class="parameters_name">
159159 <p>Create a new default task pool. The default task pool will use a regular
160160 GThreadPool for threads.</p>
161161 <div class="refsect3">
162 <a name="id-1.3.50.8.3.5"></a><h4>Returns</h4>
162 <a name="id-1.3.51.8.3.5"></a><h4>Returns</h4>
163163 <p> a new <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a>. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. </p>
164164 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
165165 </div>
173173 <p>Prepare the taskpool for accepting <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a> operations.</p>
174174 <p>MT safe.</p>
175175 <div class="refsect3">
176 <a name="id-1.3.50.8.4.6"></a><h4>Parameters</h4>
176 <a name="id-1.3.51.8.4.6"></a><h4>Parameters</h4>
177177 <div class="informaltable"><table width="100%" border="0">
178178 <colgroup>
179179 <col width="150px" class="parameters_name">
206206 <p>Start the execution of a new thread from <em class="parameter"><code>pool</code></em>
207207 .</p>
208208 <div class="refsect3">
209 <a name="id-1.3.50.8.5.5"></a><h4>Parameters</h4>
209 <a name="id-1.3.51.8.5.5"></a><h4>Parameters</h4>
210210 <div class="informaltable"><table width="100%" border="0">
211211 <colgroup>
212212 <col width="150px" class="parameters_name">
239239 </table></div>
240240 </div>
241241 <div class="refsect3">
242 <a name="id-1.3.50.8.5.6"></a><h4>Returns</h4>
242 <a name="id-1.3.51.8.5.6"></a><h4>Returns</h4>
243243 <p> a pointer that should be used
244244 for the gst_task_pool_join function. This pointer can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, you
245245 must check <em class="parameter"><code>error</code></em>
257257 is the id obtained from
258258 <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a>.</p>
259259 <div class="refsect3">
260 <a name="id-1.3.50.8.6.5"></a><h4>Parameters</h4>
260 <a name="id-1.3.51.8.6.5"></a><h4>Parameters</h4>
261261 <div class="informaltable"><table width="100%" border="0">
262262 <colgroup>
263263 <col width="150px" class="parameters_name">
288288 to ensure proper cleanup of internal data structures in test suites.</p>
289289 <p>MT safe.</p>
290290 <div class="refsect3">
291 <a name="id-1.3.50.8.7.6"></a><h4>Parameters</h4>
291 <a name="id-1.3.51.8.7.6"></a><h4>Parameters</h4>
292292 <div class="informaltable"><table width="100%" border="0">
293293 <colgroup>
294294 <col width="150px" class="parameters_name">
327327 </pre>
328328 <p>The <a class="link" href="GstTaskPool.html#GstTaskPoolClass" title="struct GstTaskPoolClass"><span class="type">GstTaskPoolClass</span></a> object.</p>
329329 <div class="refsect3">
330 <a name="id-1.3.50.9.3.5"></a><h4>Members</h4>
330 <a name="id-1.3.51.9.3.5"></a><h4>Members</h4>
331331 <div class="informaltable"><table width="100%" border="0">
332332 <colgroup>
333333 <col width="300px" class="struct_members_name">
405405 gst_toc_new (<em class="parameter"><code><a class="link" href="GstToc.html#GstTocScope" title="enum GstTocScope"><span class="type">GstTocScope</span></a> scope</code></em>);</pre>
406406 <p>Create a new <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> structure.</p>
407407 <div class="refsect3">
408 <a name="id-1.3.51.9.2.5"></a><h4>Parameters</h4>
408 <a name="id-1.3.52.9.2.5"></a><h4>Parameters</h4>
409409 <div class="informaltable"><table width="100%" border="0">
410410 <colgroup>
411411 <col width="150px" class="parameters_name">
420420 </table></div>
421421 </div>
422422 <div class="refsect3">
423 <a name="id-1.3.51.9.2.6"></a><h4>Returns</h4>
423 <a name="id-1.3.52.9.2.6"></a><h4>Returns</h4>
424424 <p> newly allocated <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> structure, free it
425425 with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>. </p>
426426 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
445445 </pre>
446446 <p>Copy <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> with all subentries (deep copy).</p>
447447 <div class="refsect3">
448 <a name="id-1.3.51.9.5.5"></a><h4>Parameters</h4>
448 <a name="id-1.3.52.9.5.5"></a><h4>Parameters</h4>
449449 <div class="informaltable"><table width="100%" border="0">
450450 <colgroup>
451451 <col width="150px" class="parameters_name">
460460 </table></div>
461461 </div>
462462 <div class="refsect3">
463 <a name="id-1.3.51.9.5.6"></a><h4>Returns</h4>
463 <a name="id-1.3.52.9.5.6"></a><h4>Returns</h4>
464464 <p> newly allocated <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> in case of success,
465465 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise; free it when done with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>. </p>
466466 <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
478478 <pre class="programlisting"><a class="link" href="GstToc.html#GstTocScope" title="enum GstTocScope"><span class="returnvalue">GstTocScope</span></a>
479479 gst_toc_get_scope (<em class="parameter"><code>const <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
480480 <div class="refsect3">
481 <a name="id-1.3.51.9.7.4"></a><h4>Parameters</h4>
481 <a name="id-1.3.52.9.7.4"></a><h4>Parameters</h4>
482482 <div class="informaltable"><table width="100%" border="0">
483483 <colgroup>
484484 <col width="150px" class="parameters_name">
493493 </table></div>
494494 </div>
495495 <div class="refsect3">
496 <a name="id-1.3.51.9.7.5"></a><h4>Returns</h4>
496 <a name="id-1.3.52.9.7.5"></a><h4>Returns</h4>
497497 <p> scope of <em class="parameter"><code>toc</code></em>
498498 </p>
499499 <p></p>
507507 <p>Gets the list of <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>toc</code></em>
508508 .</p>
509509 <div class="refsect3">
510 <a name="id-1.3.51.9.8.5"></a><h4>Parameters</h4>
510 <a name="id-1.3.52.9.8.5"></a><h4>Parameters</h4>
511511 <div class="informaltable"><table width="100%" border="0">
512512 <colgroup>
513513 <col width="150px" class="parameters_name">
522522 </table></div>
523523 </div>
524524 <div class="refsect3">
525 <a name="id-1.3.51.9.8.6"></a><h4>Returns</h4>
525 <a name="id-1.3.52.9.8.6"></a><h4>Returns</h4>
526526 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> for <em class="parameter"><code>entry</code></em>
527527 . </p>
528528 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.TocEntry]</span></p>
538538 to <em class="parameter"><code>toc</code></em>
539539 .</p>
540540 <div class="refsect3">
541 <a name="id-1.3.51.9.9.5"></a><h4>Parameters</h4>
541 <a name="id-1.3.52.9.9.5"></a><h4>Parameters</h4>
542542 <div class="informaltable"><table width="100%" border="0">
543543 <colgroup>
544544 <col width="150px" class="parameters_name">
568568 <p>Gets the tags for <em class="parameter"><code>toc</code></em>
569569 .</p>
570570 <div class="refsect3">
571 <a name="id-1.3.51.9.10.5"></a><h4>Parameters</h4>
571 <a name="id-1.3.52.9.10.5"></a><h4>Parameters</h4>
572572 <div class="informaltable"><table width="100%" border="0">
573573 <colgroup>
574574 <col width="150px" class="parameters_name">
583583 </table></div>
584584 </div>
585585 <div class="refsect3">
586 <a name="id-1.3.51.9.10.6"></a><h4>Returns</h4>
586 <a name="id-1.3.52.9.10.6"></a><h4>Returns</h4>
587587 <p> A <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> for <em class="parameter"><code>entry</code></em>
588588 . </p>
589589 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
601601 using <em class="parameter"><code>mode</code></em>
602602 .</p>
603603 <div class="refsect3">
604 <a name="id-1.3.51.9.11.5"></a><h4>Parameters</h4>
604 <a name="id-1.3.52.9.11.5"></a><h4>Parameters</h4>
605605 <div class="informaltable"><table width="100%" border="0">
606606 <colgroup>
607607 <col width="150px" class="parameters_name">
637637 <p>Set a <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>toc</code></em>
638638 .</p>
639639 <div class="refsect3">
640 <a name="id-1.3.51.9.12.5"></a><h4>Parameters</h4>
640 <a name="id-1.3.52.9.12.5"></a><h4>Parameters</h4>
641641 <div class="informaltable"><table width="100%" border="0">
642642 <colgroup>
643643 <col width="150px" class="parameters_name">
673673 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
674674 <p>Create new <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> structure.</p>
675675 <div class="refsect3">
676 <a name="id-1.3.51.9.14.5"></a><h4>Parameters</h4>
676 <a name="id-1.3.52.9.14.5"></a><h4>Parameters</h4>
677677 <div class="informaltable"><table width="100%" border="0">
678678 <colgroup>
679679 <col width="150px" class="parameters_name">
695695 </table></div>
696696 </div>
697697 <div class="refsect3">
698 <a name="id-1.3.51.9.14.6"></a><h4>Returns</h4>
698 <a name="id-1.3.52.9.14.6"></a><h4>Returns</h4>
699699 <p> newly allocated <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> structure, free it with <a class="link" href="GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>.</p>
700700 <p></p>
701701 </div>
719719 </pre>
720720 <p>Copy <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> with all subentries (deep copy).</p>
721721 <div class="refsect3">
722 <a name="id-1.3.51.9.17.5"></a><h4>Parameters</h4>
722 <a name="id-1.3.52.9.17.5"></a><h4>Parameters</h4>
723723 <div class="informaltable"><table width="100%" border="0">
724724 <colgroup>
725725 <col width="150px" class="parameters_name">
734734 </table></div>
735735 </div>
736736 <div class="refsect3">
737 <a name="id-1.3.51.9.17.6"></a><h4>Returns</h4>
737 <a name="id-1.3.52.9.17.6"></a><h4>Returns</h4>
738738 <p> newly allocated <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> in case of
739739 success, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise; free it when done with
740740 <a class="link" href="GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>. </p>
757757 in the <em class="parameter"><code>toc</code></em>
758758 .</p>
759759 <div class="refsect3">
760 <a name="id-1.3.51.9.19.5"></a><h4>Parameters</h4>
760 <a name="id-1.3.52.9.19.5"></a><h4>Parameters</h4>
761761 <div class="informaltable"><table width="100%" border="0">
762762 <colgroup>
763763 <col width="150px" class="parameters_name">
779779 </table></div>
780780 </div>
781781 <div class="refsect3">
782 <a name="id-1.3.51.9.19.6"></a><h4>Returns</h4>
782 <a name="id-1.3.52.9.19.6"></a><h4>Returns</h4>
783783 <p> <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> with specified
784784 <em class="parameter"><code>uid</code></em>
785785 from the <em class="parameter"><code>toc</code></em>
795795 <p>Gets the parent <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> of <em class="parameter"><code>entry</code></em>
796796 .</p>
797797 <div class="refsect3">
798 <a name="id-1.3.51.9.20.5"></a><h4>Parameters</h4>
798 <a name="id-1.3.52.9.20.5"></a><h4>Parameters</h4>
799799 <div class="informaltable"><table width="100%" border="0">
800800 <colgroup>
801801 <col width="150px" class="parameters_name">
810810 </table></div>
811811 </div>
812812 <div class="refsect3">
813 <a name="id-1.3.51.9.20.6"></a><h4>Returns</h4>
813 <a name="id-1.3.52.9.20.6"></a><h4>Returns</h4>
814814 <p> The parent <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> of <em class="parameter"><code>entry</code></em>
815815 . </p>
816816 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
824824 <p>Gets the UID of <em class="parameter"><code>entry</code></em>
825825 .</p>
826826 <div class="refsect3">
827 <a name="id-1.3.51.9.21.5"></a><h4>Parameters</h4>
827 <a name="id-1.3.52.9.21.5"></a><h4>Parameters</h4>
828828 <div class="informaltable"><table width="100%" border="0">
829829 <colgroup>
830830 <col width="150px" class="parameters_name">
839839 </table></div>
840840 </div>
841841 <div class="refsect3">
842 <a name="id-1.3.51.9.21.6"></a><h4>Returns</h4>
842 <a name="id-1.3.52.9.21.6"></a><h4>Returns</h4>
843843 <p> The UID of <em class="parameter"><code>entry</code></em>
844844 . </p>
845845 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
853853 <p>Gets the parent <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>
854854 .</p>
855855 <div class="refsect3">
856 <a name="id-1.3.51.9.22.5"></a><h4>Parameters</h4>
856 <a name="id-1.3.52.9.22.5"></a><h4>Parameters</h4>
857857 <div class="informaltable"><table width="100%" border="0">
858858 <colgroup>
859859 <col width="150px" class="parameters_name">
868868 </table></div>
869869 </div>
870870 <div class="refsect3">
871 <a name="id-1.3.51.9.22.6"></a><h4>Returns</h4>
871 <a name="id-1.3.52.9.22.6"></a><h4>Returns</h4>
872872 <p> The parent <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>
873873 . </p>
874874 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
882882 <p>Gets the sub-entries of <em class="parameter"><code>entry</code></em>
883883 .</p>
884884 <div class="refsect3">
885 <a name="id-1.3.51.9.23.5"></a><h4>Parameters</h4>
885 <a name="id-1.3.52.9.23.5"></a><h4>Parameters</h4>
886886 <div class="informaltable"><table width="100%" border="0">
887887 <colgroup>
888888 <col width="150px" class="parameters_name">
897897 </table></div>
898898 </div>
899899 <div class="refsect3">
900 <a name="id-1.3.51.9.23.6"></a><h4>Returns</h4>
900 <a name="id-1.3.52.9.23.6"></a><h4>Returns</h4>
901901 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>
902902 . </p>
903903 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.TocEntry]</span></p>
913913 to <em class="parameter"><code>entry</code></em>
914914 .</p>
915915 <div class="refsect3">
916 <a name="id-1.3.51.9.24.5"></a><h4>Parameters</h4>
916 <a name="id-1.3.52.9.24.5"></a><h4>Parameters</h4>
917917 <div class="informaltable"><table width="100%" border="0">
918918 <colgroup>
919919 <col width="150px" class="parameters_name">
950950 is not automatically applying the loop. The application can process this
951951 meta data and use it e.g. to send a seek-event to loop a section.</p>
952952 <div class="refsect3">
953 <a name="id-1.3.51.9.25.5"></a><h4>Parameters</h4>
953 <a name="id-1.3.52.9.25.5"></a><h4>Parameters</h4>
954954 <div class="informaltable"><table width="100%" border="0">
955955 <colgroup>
956956 <col width="150px" class="parameters_name">
979979 </table></div>
980980 </div>
981981 <div class="refsect3">
982 <a name="id-1.3.51.9.25.6"></a><h4>Returns</h4>
982 <a name="id-1.3.52.9.25.6"></a><h4>Returns</h4>
983983 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if all non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> storage pointers were filled with appropriate
984984 values, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
985985 <p></p>
998998 values for the <em class="parameter"><code>entry</code></em>
999999 .</p>
10001000 <div class="refsect3">
1001 <a name="id-1.3.51.9.26.5"></a><h4>Parameters</h4>
1001 <a name="id-1.3.52.9.26.5"></a><h4>Parameters</h4>
10021002 <div class="informaltable"><table width="100%" border="0">
10031003 <colgroup>
10041004 <col width="150px" class="parameters_name">
10391039 and write them into appropriate
10401040 storages.</p>
10411041 <div class="refsect3">
1042 <a name="id-1.3.51.9.27.5"></a><h4>Parameters</h4>
1042 <a name="id-1.3.52.9.27.5"></a><h4>Parameters</h4>
10431043 <div class="informaltable"><table width="100%" border="0">
10441044 <colgroup>
10451045 <col width="150px" class="parameters_name">
10681068 </table></div>
10691069 </div>
10701070 <div class="refsect3">
1071 <a name="id-1.3.51.9.27.6"></a><h4>Returns</h4>
1071 <a name="id-1.3.52.9.27.6"></a><h4>Returns</h4>
10721072 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if all non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> storage pointers were filled with appropriate
10731073 values, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
10741074 <p></p>
10861086 values for the <em class="parameter"><code>entry</code></em>
10871087 .</p>
10881088 <div class="refsect3">
1089 <a name="id-1.3.51.9.28.5"></a><h4>Parameters</h4>
1089 <a name="id-1.3.52.9.28.5"></a><h4>Parameters</h4>
10901090 <div class="informaltable"><table width="100%" border="0">
10911091 <colgroup>
10921092 <col width="150px" class="parameters_name">
11211121 <p>Gets the tags for <em class="parameter"><code>entry</code></em>
11221122 .</p>
11231123 <div class="refsect3">
1124 <a name="id-1.3.51.9.29.5"></a><h4>Parameters</h4>
1124 <a name="id-1.3.52.9.29.5"></a><h4>Parameters</h4>
11251125 <div class="informaltable"><table width="100%" border="0">
11261126 <colgroup>
11271127 <col width="150px" class="parameters_name">
11361136 </table></div>
11371137 </div>
11381138 <div class="refsect3">
1139 <a name="id-1.3.51.9.29.6"></a><h4>Returns</h4>
1139 <a name="id-1.3.52.9.29.6"></a><h4>Returns</h4>
11401140 <p> A <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> for <em class="parameter"><code>entry</code></em>
11411141 . </p>
11421142 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
11541154 using <em class="parameter"><code>mode</code></em>
11551155 .</p>
11561156 <div class="refsect3">
1157 <a name="id-1.3.51.9.30.5"></a><h4>Parameters</h4>
1157 <a name="id-1.3.52.9.30.5"></a><h4>Parameters</h4>
11581158 <div class="informaltable"><table width="100%" border="0">
11591159 <colgroup>
11601160 <col width="150px" class="parameters_name">
11901190 <p>Set a <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>entry</code></em>
11911191 .</p>
11921192 <div class="refsect3">
1193 <a name="id-1.3.51.9.31.5"></a><h4>Parameters</h4>
1193 <a name="id-1.3.52.9.31.5"></a><h4>Parameters</h4>
11941194 <div class="informaltable"><table width="100%" border="0">
11951195 <colgroup>
11961196 <col width="150px" class="parameters_name">
12201220 <p>Converts <em class="parameter"><code>type</code></em>
12211221 to a string representation.</p>
12221222 <div class="refsect3">
1223 <a name="id-1.3.51.9.32.5"></a><h4>Parameters</h4>
1223 <a name="id-1.3.52.9.32.5"></a><h4>Parameters</h4>
12241224 <div class="informaltable"><table width="100%" border="0">
12251225 <colgroup>
12261226 <col width="150px" class="parameters_name">
12351235 </table></div>
12361236 </div>
12371237 <div class="refsect3">
1238 <a name="id-1.3.51.9.32.6"></a><h4>Returns</h4>
1238 <a name="id-1.3.52.9.32.6"></a><h4>Returns</h4>
12391239 <p> Returns a human-readable string for <em class="parameter"><code>type</code></em>
12401240 . This string is
12411241 only for debugging purpose and should not be displayed in a user
12491249 <pre class="programlisting"><a class="link" href="GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="returnvalue">GstTocEntryType</span></a>
12501250 gst_toc_entry_get_entry_type (<em class="parameter"><code>const <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
12511251 <div class="refsect3">
1252 <a name="id-1.3.51.9.33.4"></a><h4>Parameters</h4>
1252 <a name="id-1.3.52.9.33.4"></a><h4>Parameters</h4>
12531253 <div class="informaltable"><table width="100%" border="0">
12541254 <colgroup>
12551255 <col width="150px" class="parameters_name">
12641264 </table></div>
12651265 </div>
12661266 <div class="refsect3">
1267 <a name="id-1.3.51.9.33.5"></a><h4>Returns</h4>
1267 <a name="id-1.3.52.9.33.5"></a><h4>Returns</h4>
12681268 <p> <em class="parameter"><code>entry</code></em>
12691269 's entry type</p>
12701270 <p></p>
12761276 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
12771277 gst_toc_entry_is_alternative (<em class="parameter"><code>const <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
12781278 <div class="refsect3">
1279 <a name="id-1.3.51.9.34.4"></a><h4>Parameters</h4>
1279 <a name="id-1.3.52.9.34.4"></a><h4>Parameters</h4>
12801280 <div class="informaltable"><table width="100%" border="0">
12811281 <colgroup>
12821282 <col width="150px" class="parameters_name">
12911291 </table></div>
12921292 </div>
12931293 <div class="refsect3">
1294 <a name="id-1.3.51.9.34.5"></a><h4>Returns</h4>
1294 <a name="id-1.3.52.9.34.5"></a><h4>Returns</h4>
12951295 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>
12961296 's type is an alternative type, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
12971297 <p></p>
13031303 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
13041304 gst_toc_entry_is_sequence (<em class="parameter"><code>const <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
13051305 <div class="refsect3">
1306 <a name="id-1.3.51.9.35.4"></a><h4>Parameters</h4>
1306 <a name="id-1.3.52.9.35.4"></a><h4>Parameters</h4>
13071307 <div class="informaltable"><table width="100%" border="0">
13081308 <colgroup>
13091309 <col width="150px" class="parameters_name">
13181318 </table></div>
13191319 </div>
13201320 <div class="refsect3">
1321 <a name="id-1.3.51.9.35.5"></a><h4>Returns</h4>
1321 <a name="id-1.3.52.9.35.5"></a><h4>Returns</h4>
13221322 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>
13231323 's type is a sequence type, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
13241324 <p></p>
13321332 <p>Checks if <em class="parameter"><code>entry_type</code></em>
13331333 indicates that its <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> is an alternative.</p>
13341334 <div class="refsect3">
1335 <a name="id-1.3.51.9.36.5"></a><h4>Parameters</h4>
1335 <a name="id-1.3.52.9.36.5"></a><h4>Parameters</h4>
13361336 <div class="informaltable"><table width="100%" border="0">
13371337 <colgroup>
13381338 <col width="150px" class="parameters_name">
13551355 <p>Checks if <em class="parameter"><code>entry_type</code></em>
13561356 indicates that its <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> is a sequence.</p>
13571357 <div class="refsect3">
1358 <a name="id-1.3.51.9.37.5"></a><h4>Parameters</h4>
1358 <a name="id-1.3.52.9.37.5"></a><h4>Parameters</h4>
13591359 <div class="informaltable"><table width="100%" border="0">
13601360 <colgroup>
13611361 <col width="150px" class="parameters_name">
13911391 <a name="GstTocScope"></a><h3>enum GstTocScope</h3>
13921392 <p>The scope of a TOC.</p>
13931393 <div class="refsect3">
1394 <a name="id-1.3.51.10.3.4"></a><h4>Members</h4>
1394 <a name="id-1.3.52.10.3.4"></a><h4>Members</h4>
13951395 <div class="informaltable"><table width="100%" border="0">
13961396 <colgroup>
13971397 <col width="300px" class="enum_members_name">
14341434 <p>The different types of TOC entries (see <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a>).</p>
14351435 <p>There are two types of TOC entries: alternatives or parts in a sequence.</p>
14361436 <div class="refsect3">
1437 <a name="id-1.3.51.10.5.5"></a><h4>Members</h4>
1437 <a name="id-1.3.52.10.5.5"></a><h4>Members</h4>
14381438 <div class="informaltable"><table width="100%" border="0">
14391439 <colgroup>
14401440 <col width="300px" class="enum_members_name">
15011501 <p>How a <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> should be repeated. By default, entries are played a
15021502 single time.</p>
15031503 <div class="refsect3">
1504 <a name="id-1.3.51.10.6.4"></a><h4>Members</h4>
1504 <a name="id-1.3.52.10.6.4"></a><h4>Members</h4>
15051505 <div class="informaltable"><table width="100%" border="0">
15061506 <colgroup>
15071507 <col width="300px" class="enum_members_name">
218218 factory name.</p>
219219 <p>Free-function: gst_plugin_feature_list_free</p>
220220 <div class="refsect3">
221 <a name="id-1.3.54.8.2.7"></a><h4>Returns</h4>
221 <a name="id-1.3.55.8.2.7"></a><h4>Returns</h4>
222222 <p> the list of all
223223 registered <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a>. </p>
224224 <p><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> Gst.TypeFindFactory]</span></p>
234234 copy it using <a href="https://developer.gnome.org/glib/unstable/glib-String-Utility-Functions.html#g-strdupv"><code class="function">g_strdupv()</code></a>. This function may return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to indicate
235235 a 0-length list.</p>
236236 <div class="refsect3">
237 <a name="id-1.3.54.8.3.5"></a><h4>Parameters</h4>
237 <a name="id-1.3.55.8.3.5"></a><h4>Parameters</h4>
238238 <div class="informaltable"><table width="100%" border="0">
239239 <colgroup>
240240 <col width="150px" class="parameters_name">
249249 </table></div>
250250 </div>
251251 <div class="refsect3">
252 <a name="id-1.3.54.8.3.6"></a><h4>Returns</h4>
252 <a name="id-1.3.55.8.3.6"></a><h4>Returns</h4>
253253 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of extensions associated with this factory. </p>
254254 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
255255 </div>
261261 gst_type_find_factory_get_caps (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>);</pre>
262262 <p>Gets the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> associated with a typefind factory.</p>
263263 <div class="refsect3">
264 <a name="id-1.3.54.8.4.5"></a><h4>Parameters</h4>
264 <a name="id-1.3.55.8.4.5"></a><h4>Parameters</h4>
265265 <div class="informaltable"><table width="100%" border="0">
266266 <colgroup>
267267 <col width="150px" class="parameters_name">
276276 </table></div>
277277 </div>
278278 <div class="refsect3">
279 <a name="id-1.3.54.8.4.6"></a><h4>Returns</h4>
279 <a name="id-1.3.55.8.4.6"></a><h4>Returns</h4>
280280 <p> the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> associated with this factory. </p>
281281 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
282282 </div>
290290 without typefind functions are a last-effort fallback mechanism to
291291 e.g. assume a certain media type based on the file extension.</p>
292292 <div class="refsect3">
293 <a name="id-1.3.54.8.5.5"></a><h4>Parameters</h4>
293 <a name="id-1.3.55.8.5.5"></a><h4>Parameters</h4>
294294 <div class="informaltable"><table width="100%" border="0">
295295 <colgroup>
296296 <col width="150px" class="parameters_name">
305305 </table></div>
306306 </div>
307307 <div class="refsect3">
308 <a name="id-1.3.54.8.5.6"></a><h4>Returns</h4>
308 <a name="id-1.3.55.8.5.6"></a><h4>Returns</h4>
309309 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the factory has a typefind functions set, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
310310 <p></p>
311311 </div>
318318 <em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);</pre>
319319 <p>Calls the <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> associated with this factory.</p>
320320 <div class="refsect3">
321 <a name="id-1.3.54.8.6.5"></a><h4>Parameters</h4>
321 <a name="id-1.3.55.8.6.5"></a><h4>Parameters</h4>
322322 <div class="informaltable"><table width="100%" border="0">
323323 <colgroup>
324324 <col width="150px" class="parameters_name">
310310 </dt>
311311 <dd></dd>
312312 <dt>
313 <a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()">gst_buffer_add_protection_meta</a>, function in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
314 </dt>
315 <dd></dd>
316 <dt>
313317 <a class="link" href="GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()">gst_buffer_append</a>, function in <a class="link" href="GstBuffer.html" title="GstBuffer">GstBuffer</a>
314318 </dt>
315319 <dd></dd>
414418 </dt>
415419 <dd></dd>
416420 <dt>
421 <a class="link" href="gstreamer-gstprotection.html#gst-buffer-get-protection-meta" title="gst_buffer_get_protection_meta()">gst_buffer_get_protection_meta</a>, macro in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
422 </dt>
423 <dd></dd>
424 <dt>
417425 <a class="link" href="GstBuffer.html#gst-buffer-get-size" title="gst_buffer_get_size ()">gst_buffer_get_size</a>, function in <a class="link" href="GstBuffer.html" title="GstBuffer">GstBuffer</a>
418426 </dt>
419427 <dd></dd>
32243232 </dt>
32253233 <dd></dd>
32263234 <dt>
3235 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator">GstIterator</a>, struct in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
3236 </dt>
3237 <dd></dd>
3238 <dt>
32273239 <a class="link" href="gstreamer-GstIterator.html#GST-ITERATOR:CAPS" title="GST_ITERATOR()">GST_ITERATOR</a>, macro in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
32283240 </dt>
32293241 <dd></dd>
32303242 <dt>
3231 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator">GstIterator</a>, struct in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
3232 </dt>
3233 <dd></dd>
3234 <dt>
32353243 <a class="link" href="gstreamer-GstIterator.html#GstIteratorCopyFunction" title="GstIteratorCopyFunction ()">GstIteratorCopyFunction</a>, user_function in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
32363244 </dt>
32373245 <dd></dd>
45974605 </dt>
45984606 <dd></dd>
45994607 <dt>
4608 <a class="link" href="GstPad.html#GST-PAD-IS-BLOCKING:CAPS" title="GST_PAD_IS_BLOCKING()">GST_PAD_IS_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
4609 </dt>
4610 <dd></dd>
4611 <dt>
46004612 <a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()">gst_pad_is_blocking</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
46014613 </dt>
46024614 <dd></dd>
46034615 <dt>
4604 <a class="link" href="GstPad.html#GST-PAD-IS-BLOCKING:CAPS" title="GST_PAD_IS_BLOCKING()">GST_PAD_IS_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
4605 </dt>
4606 <dd></dd>
4607 <dt>
46084616 <a class="link" href="GstPad.html#GST-PAD-IS-EOS:CAPS" title="GST_PAD_IS_EOS()">GST_PAD_IS_EOS</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
46094617 </dt>
46104618 <dd></dd>
46174625 </dt>
46184626 <dd></dd>
46194627 <dt>
4628 <a class="link" href="GstPad.html#GST-PAD-IS-LINKED:CAPS" title="GST_PAD_IS_LINKED()">GST_PAD_IS_LINKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
4629 </dt>
4630 <dd></dd>
4631 <dt>
46204632 <a class="link" href="GstPad.html#gst-pad-is-linked" title="gst_pad_is_linked ()">gst_pad_is_linked</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
46214633 </dt>
46224634 <dd></dd>
46234635 <dt>
4624 <a class="link" href="GstPad.html#GST-PAD-IS-LINKED:CAPS" title="GST_PAD_IS_LINKED()">GST_PAD_IS_LINKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
4625 </dt>
4626 <dd></dd>
4627 <dt>
46284636 <a class="link" href="GstPad.html#GST-PAD-IS-PROXY-ALLOCATION:CAPS" title="GST_PAD_IS_PROXY_ALLOCATION()">GST_PAD_IS_PROXY_ALLOCATION</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
46294637 </dt>
46304638 <dd></dd>
52055213 </dt>
52065214 <dd></dd>
52075215 <dt>
5216 <a class="link" href="GstPipeline.html#gst-pipeline-get-pipeline-clock" title="gst_pipeline_get_pipeline_clock ()">gst_pipeline_get_pipeline_clock</a>, function in <a class="link" href="GstPipeline.html" title="GstPipeline">GstPipeline</a>
5217 </dt>
5218 <dd></dd>
5219 <dt>
52085220 <a class="link" href="GstPipeline.html#gst-pipeline-new" title="gst_pipeline_new ()">gst_pipeline_new</a>, function in <a class="link" href="GstPipeline.html" title="GstPipeline">GstPipeline</a>
52095221 </dt>
52105222 <dd></dd>
55615573 </dt>
55625574 <dd></dd>
55635575 <dt>
5576 <a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta">GstProtectionMeta</a>, struct in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
5577 </dt>
5578 <dd></dd>
5579 <dt>
5580 <a class="link" href="gstreamer-gstprotection.html#gst-protection-select-system" title="gst_protection_select_system ()">gst_protection_select_system</a>, function in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
5581 </dt>
5582 <dd></dd>
5583 <dt>
55645584 <a class="link" href="GstGhostPad.html#GstProxyPad-struct" title="struct GstProxyPad">GstProxyPad</a>, struct in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
55655585 </dt>
55665586 <dd></dd>
63046324 </dt>
63056325 <dd></dd>
63066326 <dt>
6327 <a class="link" href="GstSegment.html#gst-segment-is-equal" title="gst_segment_is_equal ()">gst_segment_is_equal</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
6328 </dt>
6329 <dd></dd>
6330 <dt>
63076331 <a class="link" href="GstSegment.html#gst-segment-new" title="gst_segment_new ()">gst_segment_new</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
63086332 </dt>
63096333 <dd></dd>
63216345 <dd></dd>
63226346 <dt>
63236347 <a class="link" href="GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()">gst_segment_to_running_time</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
6348 </dt>
6349 <dd></dd>
6350 <dt>
6351 <a class="link" href="GstSegment.html#gst-segment-to-running-time-full" title="gst_segment_to_running_time_full ()">gst_segment_to_running_time_full</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
63246352 </dt>
63256353 <dd></dd>
63266354 <dt>
370370 </p>
371371 <p><a name="GST_TAG_ENCODING"></a><b><code class="envar">GST_TAG_ENCODING</code>. </b>
372372 Try this character encoding first for tag-related strings where the encoding
373 is not defined and which are not UTF-8 already. By defaul the current locale
373 is not defined and which are not UTF-8 already. By default the current locale
374374 will be tried (if not UTF-8).
375375 </p>
376376 <p><a name="GST_TAG_ID3_ENCODING"></a><b><code class="envar">GST_TAG_ID3_ENCODING</code>. </b>
377377 Try this character encoding first for ID3 tag-related strings where the
378 encoding is not defined and which are not UTF-8 already. By defaul the current
378 encoding is not defined and which are not UTF-8 already. By default the current
379379 locale will be tried (if not UTF-8).
380380 </p>
381381 <p><a name="GST_TAG_ID3V1_ENCODING"></a><b><code class="envar">GST_TAG_ID3V1_ENCODING</code>. </b>
4545 <sub name="GstPluginFeature" link="GstPluginFeature.html"/>
4646 <sub name="GstPoll" link="gstreamer-GstPoll.html"/>
4747 <sub name="GstPreset" link="GstPreset.html"/>
48 <sub name="gstprotection" link="gstreamer-gstprotection.html"/>
4849 <sub name="GstQuery" link="GstQuery.html"/>
4950 <sub name="GstRegistry" link="GstRegistry.html"/>
5051 <sub name="GstSegment" link="GstSegment.html"/>
12781279 <keyword type="function" name="gst_pipeline_new ()" link="GstPipeline.html#gst-pipeline-new"/>
12791280 <keyword type="function" name="gst_pipeline_get_bus ()" link="GstPipeline.html#gst-pipeline-get-bus"/>
12801281 <keyword type="function" name="gst_pipeline_set_clock ()" link="GstPipeline.html#gst-pipeline-set-clock"/>
1282 <keyword type="function" name="gst_pipeline_get_pipeline_clock ()" link="GstPipeline.html#gst-pipeline-get-pipeline-clock" since="1.6"/>
12811283 <keyword type="function" name="gst_pipeline_get_clock ()" link="GstPipeline.html#gst-pipeline-get-clock"/>
12821284 <keyword type="function" name="gst_pipeline_use_clock ()" link="GstPipeline.html#gst-pipeline-use-clock"/>
12831285 <keyword type="function" name="gst_pipeline_auto_clock ()" link="GstPipeline.html#gst-pipeline-auto-clock"/>
13741376 <keyword type="function" name="gst_preset_is_editable ()" link="GstPreset.html#gst-preset-is-editable" since="1.6"/>
13751377 <keyword type="struct" name="GstPreset" link="GstPreset.html#GstPreset-struct"/>
13761378 <keyword type="struct" name="struct GstPresetInterface" link="GstPreset.html#GstPresetInterface"/>
1379 <keyword type="function" name="gst_buffer_add_protection_meta ()" link="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" since="1.6"/>
1380 <keyword type="macro" name="gst_buffer_get_protection_meta()" link="gstreamer-gstprotection.html#gst-buffer-get-protection-meta"/>
1381 <keyword type="function" name="gst_protection_select_system ()" link="gstreamer-gstprotection.html#gst-protection-select-system" since="1.6"/>
1382 <keyword type="struct" name="struct GstProtectionMeta" link="gstreamer-gstprotection.html#GstProtectionMeta"/>
13771383 <keyword type="macro" name="GST_QUERY_MAKE_TYPE()" link="GstQuery.html#GST-QUERY-MAKE-TYPE:CAPS"/>
13781384 <keyword type="macro" name="GST_QUERY_TYPE()" link="GstQuery.html#GST-QUERY-TYPE:CAPS"/>
13791385 <keyword type="macro" name="GST_QUERY_TYPE_NAME()" link="GstQuery.html#GST-QUERY-TYPE-NAME:CAPS"/>
15051511 <keyword type="function" name="gst_segment_free ()" link="GstSegment.html#gst-segment-free"/>
15061512 <keyword type="function" name="gst_segment_do_seek ()" link="GstSegment.html#gst-segment-do-seek"/>
15071513 <keyword type="function" name="gst_segment_to_running_time ()" link="GstSegment.html#gst-segment-to-running-time"/>
1514 <keyword type="function" name="gst_segment_to_running_time_full ()" link="GstSegment.html#gst-segment-to-running-time-full" since="1.6"/>
15081515 <keyword type="function" name="gst_segment_to_stream_time ()" link="GstSegment.html#gst-segment-to-stream-time"/>
15091516 <keyword type="function" name="gst_segment_to_position ()" link="GstSegment.html#gst-segment-to-position"/>
15101517 <keyword type="function" name="gst_segment_set_running_time ()" link="GstSegment.html#gst-segment-set-running-time"/>
15111518 <keyword type="function" name="gst_segment_copy_into ()" link="GstSegment.html#gst-segment-copy-into"/>
15121519 <keyword type="function" name="gst_segment_offset_running_time ()" link="GstSegment.html#gst-segment-offset-running-time" since="1.2.3"/>
1520 <keyword type="function" name="gst_segment_is_equal ()" link="GstSegment.html#gst-segment-is-equal" since="1.6"/>
15131521 <keyword type="struct" name="struct GstSegment" link="GstSegment.html#GstSegment-struct"/>
15141522 <keyword type="enum" name="enum GstSegmentFlags" link="GstSegment.html#GstSegmentFlags"/>
15151523 <keyword type="function" name="GstStructureForeachFunc ()" link="GstStructure.html#GstStructureForeachFunc"/>
35623562 </div>
35633563 <div class="refsect1">
35643564 <a name="gstreamer-GstInfo.see-also"></a><h2>See Also</h2>
3565 <p><a class="link" href="gstreamer-gstconfig.html" title="gstconfig"><span class="type">gstreamer-gstconfig</span></a>, <a class="link" href="gstreamer-Gst.html" title="Gst"><span class="type">gstreamer-Gst</span></a> for command line parameters
3565 <p><a class="link" href="gst-running.html" title="Running GStreamer Applications"><span class="type">gst-running</span></a> for command line parameters
35663566 and environment variables that affect the debugging output.</p>
35673567 </div>
35683568 </div>
163163 <div class="refsect1">
164164 <a name="gstreamer-GstParse.description"></a><h2>Description</h2>
165165 <p>These function allow to create a pipeline based on the syntax used in the
166 gst-launch utility (see man-page for syntax documentation).</p>
166 gst-launch-1.0 utility (see man-page for syntax documentation).</p>
167167 <p>Please note that these functions take several measures to create
168168 somewhat dynamic pipelines. Due to that such pipelines are not always
169169 reusable (set the state to NULL and back to PLAYING).</p>
114114 <p>Set the given TOC on the setter. Previously set TOC will be
115115 unreffed before setting a new one.</p>
116116 <div class="refsect3">
117 <a name="id-1.3.52.7.2.5"></a><h4>Parameters</h4>
117 <a name="id-1.3.53.7.2.5"></a><h4>Parameters</h4>
118118 <div class="informaltable"><table width="100%" border="0">
119119 <colgroup>
120120 <col width="150px" class="parameters_name">
144144 <p>Return current TOC the setter uses. The TOC should not be
145145 modified without making it writable first.</p>
146146 <div class="refsect3">
147 <a name="id-1.3.52.7.3.5"></a><h4>Parameters</h4>
147 <a name="id-1.3.53.7.3.5"></a><h4>Parameters</h4>
148148 <div class="informaltable"><table width="100%" border="0">
149149 <colgroup>
150150 <col width="150px" class="parameters_name">
159159 </table></div>
160160 </div>
161161 <div class="refsect3">
162 <a name="id-1.3.52.7.3.6"></a><h4>Returns</h4>
162 <a name="id-1.3.53.7.3.6"></a><h4>Returns</h4>
163163 <p> TOC set, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref with
164164 <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a> when no longer needed. </p>
165165 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
173173 <p>Reset the internal TOC. Elements should call this from within the
174174 state-change handler.</p>
175175 <div class="refsect3">
176 <a name="id-1.3.52.7.4.5"></a><h4>Parameters</h4>
176 <a name="id-1.3.53.7.4.5"></a><h4>Parameters</h4>
177177 <div class="informaltable"><table width="100%" border="0">
178178 <colgroup>
179179 <col width="150px" class="parameters_name">
209209 </pre>
210210 <p><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterInterface" title="struct GstTocSetterInterface"><span class="type">GstTocSetterInterface</span></a> interface.</p>
211211 <div class="refsect3">
212 <a name="id-1.3.52.8.3.5"></a><h4>Members</h4>
212 <a name="id-1.3.53.8.3.5"></a><h4>Members</h4>
213213 <div class="informaltable"><table width="100%" border="0">
214214 <colgroup>
215215 <col width="300px" class="struct_members_name">
126126 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
127127 <p>A function that will be called by typefinding.</p>
128128 <div class="refsect3">
129 <a name="id-1.3.53.7.2.5"></a><h4>Parameters</h4>
129 <a name="id-1.3.54.7.2.5"></a><h4>Parameters</h4>
130130 <div class="informaltable"><table width="100%" border="0">
131131 <colgroup>
132132 <col width="150px" class="parameters_name">
162162 the stream. The returned memory is valid until the typefinding function
163163 returns and must not be freed.</p>
164164 <div class="refsect3">
165 <a name="id-1.3.53.7.3.5"></a><h4>Parameters</h4>
165 <a name="id-1.3.54.7.3.5"></a><h4>Parameters</h4>
166166 <div class="informaltable"><table width="100%" border="0">
167167 <colgroup>
168168 <col width="150px" class="parameters_name">
189189 </table></div>
190190 </div>
191191 <div class="refsect3">
192 <a name="id-1.3.53.7.3.6"></a><h4>Returns</h4>
192 <a name="id-1.3.54.7.3.6"></a><h4>Returns</h4>
193193 <p> the
194194 requested data, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if that data is not available. </p>
195195 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
207207 in one call.
208208 It is up to the caller of the <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> to interpret these values.</p>
209209 <div class="refsect3">
210 <a name="id-1.3.53.7.4.5"></a><h4>Parameters</h4>
210 <a name="id-1.3.54.7.4.5"></a><h4>Parameters</h4>
211211 <div class="informaltable"><table width="100%" border="0">
212212 <colgroup>
213213 <col width="150px" class="parameters_name">
255255 passed to the vararg function - this applies particularly to gdouble and
256256 guint64 arguments).</p>
257257 <div class="refsect3">
258 <a name="id-1.3.53.7.5.7"></a><h4>Parameters</h4>
258 <a name="id-1.3.54.7.5.7"></a><h4>Parameters</h4>
259259 <div class="informaltable"><table width="100%" border="0">
260260 <colgroup>
261261 <col width="150px" class="parameters_name">
301301 gst_type_find_get_length (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);</pre>
302302 <p>Get the length of the data stream.</p>
303303 <div class="refsect3">
304 <a name="id-1.3.53.7.6.5"></a><h4>Parameters</h4>
304 <a name="id-1.3.54.7.6.5"></a><h4>Parameters</h4>
305305 <div class="informaltable"><table width="100%" border="0">
306306 <colgroup>
307307 <col width="150px" class="parameters_name">
316316 </table></div>
317317 </div>
318318 <div class="refsect3">
319 <a name="id-1.3.53.7.6.6"></a><h4>Returns</h4>
319 <a name="id-1.3.54.7.6.6"></a><h4>Returns</h4>
320320 <p> The length of the data stream, or 0 if it is not available.</p>
321321 <p></p>
322322 </div>
337337 registering this function will be available for typefinding.
338338 This function is typically called during an element's plugin initialization.</p>
339339 <div class="refsect3">
340 <a name="id-1.3.53.7.7.5"></a><h4>Parameters</h4>
340 <a name="id-1.3.54.7.7.5"></a><h4>Parameters</h4>
341341 <div class="informaltable"><table width="100%" border="0">
342342 <colgroup>
343343 <col width="150px" class="parameters_name">
394394 </table></div>
395395 </div>
396396 <div class="refsect3">
397 <a name="id-1.3.53.7.7.6"></a><h4>Returns</h4>
397 <a name="id-1.3.54.7.7.6"></a><h4>Returns</h4>
398398 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
399399 <p></p>
400400 </div>
422422 </pre>
423423 <p>Object that stores typefind callbacks. To use with <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a>.</p>
424424 <div class="refsect3">
425 <a name="id-1.3.53.8.2.5"></a><h4>Members</h4>
425 <a name="id-1.3.54.8.2.5"></a><h4>Members</h4>
426426 <div class="informaltable"><table width="100%" border="0">
427427 <colgroup>
428428 <col width="300px" class="struct_members_name">
460460 <p>The probability of the typefind function. Higher values have more certainty
461461 in doing a reliable typefind.</p>
462462 <div class="refsect3">
463 <a name="id-1.3.53.8.3.4"></a><h4>Members</h4>
463 <a name="id-1.3.54.8.3.4"></a><h4>Members</h4>
464464 <div class="informaltable"><table width="100%" border="0">
465465 <colgroup>
466466 <col width="300px" class="enum_members_name">
436436 strings will be broken down into their elements. All strings should not be
437437 escaped except where indicated.</p>
438438 <div class="refsect3">
439 <a name="id-1.3.55.7.4.5"></a><h4>Parameters</h4>
439 <a name="id-1.3.56.7.4.5"></a><h4>Parameters</h4>
440440 <div class="informaltable"><table width="100%" border="0">
441441 <colgroup>
442442 <col width="150px" class="parameters_name">
486486 </table></div>
487487 </div>
488488 <div class="refsect3">
489 <a name="id-1.3.55.7.4.6"></a><h4>Returns</h4>
489 <a name="id-1.3.56.7.4.6"></a><h4>Returns</h4>
490490 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. </p>
491491 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
492492 </div>
506506 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fragment</code></em>);</pre>
507507 <p>Like <a class="link" href="gstreamer-GstUri.html#gst-uri-new" title="gst_uri_new ()"><code class="function">gst_uri_new()</code></a>, but joins the new URI onto a base URI.</p>
508508 <div class="refsect3">
509 <a name="id-1.3.55.7.5.5"></a><h4>Parameters</h4>
509 <a name="id-1.3.56.7.5.5"></a><h4>Parameters</h4>
510510 <div class="informaltable"><table width="100%" border="0">
511511 <colgroup>
512512 <col width="150px" class="parameters_name">
561561 </table></div>
562562 </div>
563563 <div class="refsect3">
564 <a name="id-1.3.55.7.5.6"></a><h4>Returns</h4>
564 <a name="id-1.3.56.7.5.6"></a><h4>Returns</h4>
565565 <p> The new URI joined onto <em class="parameter"><code>base</code></em>
566566 . </p>
567567 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
576576 <p>Parses a URI string into a new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. Will return NULL if the URI
577577 cannot be parsed.</p>
578578 <div class="refsect3">
579 <a name="id-1.3.55.7.6.5"></a><h4>Parameters</h4>
579 <a name="id-1.3.56.7.6.5"></a><h4>Parameters</h4>
580580 <div class="informaltable"><table width="100%" border="0">
581581 <colgroup>
582582 <col width="150px" class="parameters_name">
591591 </table></div>
592592 </div>
593593 <div class="refsect3">
594 <a name="id-1.3.55.7.6.6"></a><h4>Returns</h4>
594 <a name="id-1.3.56.7.6.6"></a><h4>Returns</h4>
595595 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object, or NULL. </p>
596596 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
597597 </div>
605605 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
606606 <p>Like <a class="link" href="gstreamer-GstUri.html#gst-uri-from-string" title="gst_uri_from_string ()"><code class="function">gst_uri_from_string()</code></a> but also joins with a base URI.</p>
607607 <div class="refsect3">
608 <a name="id-1.3.55.7.7.5"></a><h4>Parameters</h4>
608 <a name="id-1.3.56.7.7.5"></a><h4>Parameters</h4>
609609 <div class="informaltable"><table width="100%" border="0">
610610 <colgroup>
611611 <col width="150px" class="parameters_name">
627627 </table></div>
628628 </div>
629629 <div class="refsect3">
630 <a name="id-1.3.55.7.7.6"></a><h4>Returns</h4>
630 <a name="id-1.3.56.7.7.6"></a><h4>Returns</h4>
631631 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. </p>
632632 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
633633 </div>
642642 If <em class="parameter"><code>uri</code></em>
643643 is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
644644 <div class="refsect3">
645 <a name="id-1.3.55.7.8.5"></a><h4>Parameters</h4>
645 <a name="id-1.3.56.7.8.5"></a><h4>Parameters</h4>
646646 <div class="informaltable"><table width="100%" border="0">
647647 <colgroup>
648648 <col width="150px" class="parameters_name">
657657 </table></div>
658658 </div>
659659 <div class="refsect3">
660 <a name="id-1.3.55.7.8.6"></a><h4>Returns</h4>
660 <a name="id-1.3.56.7.8.6"></a><h4>Returns</h4>
661661 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object which is a copy of this
662662 <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
663663 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
672672 <p>Compares two <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> objects to see if they represent the same normalized
673673 URI.</p>
674674 <div class="refsect3">
675 <a name="id-1.3.55.7.9.5"></a><h4>Parameters</h4>
675 <a name="id-1.3.56.7.9.5"></a><h4>Parameters</h4>
676676 <div class="informaltable"><table width="100%" border="0">
677677 <colgroup>
678678 <col width="150px" class="parameters_name">
694694 </table></div>
695695 </div>
696696 <div class="refsect3">
697 <a name="id-1.3.55.7.9.6"></a><h4>Returns</h4>
697 <a name="id-1.3.56.7.9.6"></a><h4>Returns</h4>
698698 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the normalized versions of the two URI's would be equal.</p>
699699 <p></p>
700700 </div>
710710 If either URI is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then the other URI will be returned with the ref count
711711 increased.</p>
712712 <div class="refsect3">
713 <a name="id-1.3.55.7.10.5"></a><h4>Parameters</h4>
713 <a name="id-1.3.56.7.10.5"></a><h4>Parameters</h4>
714714 <div class="informaltable"><table width="100%" border="0">
715715 <colgroup>
716716 <col width="150px" class="parameters_name">
733733 </table></div>
734734 </div>
735735 <div class="refsect3">
736 <a name="id-1.3.55.7.10.6"></a><h4>Returns</h4>
736 <a name="id-1.3.56.7.10.6"></a><h4>Returns</h4>
737737 <p> A <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> which represents the base with the
738738 reference URI joined on. </p>
739739 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
749749 <p>This is a convenience function to join two URI strings and return the result.
750750 The returned string should be <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d after use.</p>
751751 <div class="refsect3">
752 <a name="id-1.3.55.7.11.5"></a><h4>Parameters</h4>
752 <a name="id-1.3.56.7.11.5"></a><h4>Parameters</h4>
753753 <div class="informaltable"><table width="100%" border="0">
754754 <colgroup>
755755 <col width="150px" class="parameters_name">
772772 </table></div>
773773 </div>
774774 <div class="refsect3">
775 <a name="id-1.3.55.7.11.6"></a><h4>Returns</h4>
775 <a name="id-1.3.56.7.11.6"></a><h4>Returns</h4>
776776 <p> A string representing the percent-encoded join of
777777 the two URIs. </p>
778778 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
791791 <p>Modification of a <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> should only be done after verifying that it is
792792 writable.</p>
793793 <div class="refsect3">
794 <a name="id-1.3.55.7.12.7"></a><h4>Parameters</h4>
794 <a name="id-1.3.56.7.12.7"></a><h4>Parameters</h4>
795795 <div class="informaltable"><table width="100%" border="0">
796796 <colgroup>
797797 <col width="150px" class="parameters_name">
806806 </table></div>
807807 </div>
808808 <div class="refsect3">
809 <a name="id-1.3.55.7.12.8"></a><h4>Returns</h4>
809 <a name="id-1.3.56.7.12.8"></a><h4>Returns</h4>
810810 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is safe to write to the object.</p>
811811 <p></p>
812812 </div>
826826 If <em class="parameter"><code>uri</code></em>
827827 is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</p>
828828 <div class="refsect3">
829 <a name="id-1.3.55.7.13.6"></a><h4>Parameters</h4>
829 <a name="id-1.3.56.7.13.6"></a><h4>Parameters</h4>
830830 <div class="informaltable"><table width="100%" border="0">
831831 <colgroup>
832832 <col width="150px" class="parameters_name">
841841 </table></div>
842842 </div>
843843 <div class="refsect3">
844 <a name="id-1.3.55.7.13.7"></a><h4>Returns</h4>
844 <a name="id-1.3.56.7.13.7"></a><h4>Returns</h4>
845845 <p> A writable version of <em class="parameter"><code>uri</code></em>
846846 . </p>
847847 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
858858 The caller should <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> the string once they are finished with it.
859859 The string is put together as described in RFC 3986.</p>
860860 <div class="refsect3">
861 <a name="id-1.3.55.7.14.6"></a><h4>Parameters</h4>
861 <a name="id-1.3.56.7.14.6"></a><h4>Parameters</h4>
862862 <div class="informaltable"><table width="100%" border="0">
863863 <colgroup>
864864 <col width="150px" class="parameters_name">
873873 </table></div>
874874 </div>
875875 <div class="refsect3">
876 <a name="id-1.3.55.7.14.7"></a><h4>Returns</h4>
876 <a name="id-1.3.56.7.14.7"></a><h4>Returns</h4>
877877 <p> The string version of the URI. </p>
878878 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
879879 </div>
887887 <p>Add a reference to this <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. See <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-ref" title="gst_mini_object_ref ()"><code class="function">gst_mini_object_ref()</code></a> for further
888888 info.</p>
889889 <div class="refsect3">
890 <a name="id-1.3.55.7.15.5"></a><h4>Parameters</h4>
890 <a name="id-1.3.56.7.15.5"></a><h4>Parameters</h4>
891891 <div class="informaltable"><table width="100%" border="0">
892892 <colgroup>
893893 <col width="150px" class="parameters_name">
902902 </table></div>
903903 </div>
904904 <div class="refsect3">
905 <a name="id-1.3.55.7.15.6"></a><h4>Returns</h4>
905 <a name="id-1.3.56.7.15.6"></a><h4>Returns</h4>
906906 <p> This object with the reference count incremented.</p>
907907 <p></p>
908908 </div>
916916 <p>If the reference count drops to 0 then finalize this object.</p>
917917 <p>See <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unref" title="gst_mini_object_unref ()"><code class="function">gst_mini_object_unref()</code></a> for further info.</p>
918918 <div class="refsect3">
919 <a name="id-1.3.55.7.16.7"></a><h4>Parameters</h4>
919 <a name="id-1.3.56.7.16.7"></a><h4>Parameters</h4>
920920 <div class="informaltable"><table width="100%" border="0">
921921 <colgroup>
922922 <col width="150px" class="parameters_name">
941941 is considered to be
942942 normalized.</p>
943943 <div class="refsect3">
944 <a name="id-1.3.55.7.17.5"></a><h4>Parameters</h4>
944 <a name="id-1.3.56.7.17.5"></a><h4>Parameters</h4>
945945 <div class="informaltable"><table width="100%" border="0">
946946 <colgroup>
947947 <col width="150px" class="parameters_name">
956956 </table></div>
957957 </div>
958958 <div class="refsect3">
959 <a name="id-1.3.55.7.17.6"></a><h4>Returns</h4>
959 <a name="id-1.3.56.7.17.6"></a><h4>Returns</h4>
960960 <p> TRUE if the URI is normalized or is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
961961 <p></p>
962962 </div>
973973 <p>The <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object must be writable. Check with <a class="link" href="gstreamer-GstUri.html#gst-uri-is-writable" title="gst_uri_is_writable ()"><code class="function">gst_uri_is_writable()</code></a> or use
974974 <a class="link" href="gstreamer-GstUri.html#gst-uri-make-writable" title="gst_uri_make_writable ()"><code class="function">gst_uri_make_writable()</code></a> first.</p>
975975 <div class="refsect3">
976 <a name="id-1.3.55.7.18.6"></a><h4>Parameters</h4>
976 <a name="id-1.3.56.7.18.6"></a><h4>Parameters</h4>
977977 <div class="informaltable"><table width="100%" border="0">
978978 <colgroup>
979979 <col width="150px" class="parameters_name">
988988 </table></div>
989989 </div>
990990 <div class="refsect3">
991 <a name="id-1.3.55.7.18.7"></a><h4>Returns</h4>
991 <a name="id-1.3.56.7.18.7"></a><h4>Returns</h4>
992992 <p> TRUE if the URI was modified.</p>
993993 <p></p>
994994 </div>
10031003 If <em class="parameter"><code>uri</code></em>
10041004 is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
10051005 <div class="refsect3">
1006 <a name="id-1.3.55.7.19.5"></a><h4>Parameters</h4>
1006 <a name="id-1.3.56.7.19.5"></a><h4>Parameters</h4>
10071007 <div class="informaltable"><table width="100%" border="0">
10081008 <colgroup>
10091009 <col width="150px" class="parameters_name">
10181018 </table></div>
10191019 </div>
10201020 <div class="refsect3">
1021 <a name="id-1.3.55.7.19.6"></a><h4>Returns</h4>
1021 <a name="id-1.3.56.7.19.6"></a><h4>Returns</h4>
10221022 <p> The scheme from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
10231023 <p></p>
10241024 </div>
10311031 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>);</pre>
10321032 <p>Set or unset the scheme for the URI.</p>
10331033 <div class="refsect3">
1034 <a name="id-1.3.55.7.20.5"></a><h4>Parameters</h4>
1034 <a name="id-1.3.56.7.20.5"></a><h4>Parameters</h4>
10351035 <div class="informaltable"><table width="100%" border="0">
10361036 <colgroup>
10371037 <col width="150px" class="parameters_name">
10531053 </table></div>
10541054 </div>
10551055 <div class="refsect3">
1056 <a name="id-1.3.55.7.20.6"></a><h4>Returns</h4>
1056 <a name="id-1.3.56.7.20.6"></a><h4>Returns</h4>
10571057 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the scheme was set/unset successfully.</p>
10581058 <p></p>
10591059 </div>
10681068 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it doesn't exist. If <em class="parameter"><code>uri</code></em>
10691069 is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
10701070 <div class="refsect3">
1071 <a name="id-1.3.55.7.21.5"></a><h4>Parameters</h4>
1071 <a name="id-1.3.56.7.21.5"></a><h4>Parameters</h4>
10721072 <div class="informaltable"><table width="100%" border="0">
10731073 <colgroup>
10741074 <col width="150px" class="parameters_name">
10831083 </table></div>
10841084 </div>
10851085 <div class="refsect3">
1086 <a name="id-1.3.55.7.21.6"></a><h4>Returns</h4>
1086 <a name="id-1.3.56.7.21.6"></a><h4>Returns</h4>
10871087 <p> The userinfo from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
10881088 <p></p>
10891089 </div>
10971097 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *userinfo</code></em>);</pre>
10981098 <p>Set or unset the user information for the URI.</p>
10991099 <div class="refsect3">
1100 <a name="id-1.3.55.7.22.5"></a><h4>Parameters</h4>
1100 <a name="id-1.3.56.7.22.5"></a><h4>Parameters</h4>
11011101 <div class="informaltable"><table width="100%" border="0">
11021102 <colgroup>
11031103 <col width="150px" class="parameters_name">
11191119 </table></div>
11201120 </div>
11211121 <div class="refsect3">
1122 <a name="id-1.3.55.7.22.6"></a><h4>Returns</h4>
1122 <a name="id-1.3.56.7.22.6"></a><h4>Returns</h4>
11231123 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the user information was set/unset successfully.</p>
11241124 <p></p>
11251125 </div>
11341134 If <em class="parameter"><code>uri</code></em>
11351135 is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
11361136 <div class="refsect3">
1137 <a name="id-1.3.55.7.23.5"></a><h4>Parameters</h4>
1137 <a name="id-1.3.56.7.23.5"></a><h4>Parameters</h4>
11381138 <div class="informaltable"><table width="100%" border="0">
11391139 <colgroup>
11401140 <col width="150px" class="parameters_name">
11491149 </table></div>
11501150 </div>
11511151 <div class="refsect3">
1152 <a name="id-1.3.55.7.23.6"></a><h4>Returns</h4>
1152 <a name="id-1.3.56.7.23.6"></a><h4>Returns</h4>
11531153 <p> The host name from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
11541154 <p></p>
11551155 </div>
11631163 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host</code></em>);</pre>
11641164 <p>Set or unset the host for the URI.</p>
11651165 <div class="refsect3">
1166 <a name="id-1.3.55.7.24.5"></a><h4>Parameters</h4>
1166 <a name="id-1.3.56.7.24.5"></a><h4>Parameters</h4>
11671167 <div class="informaltable"><table width="100%" border="0">
11681168 <colgroup>
11691169 <col width="150px" class="parameters_name">
11851185 </table></div>
11861186 </div>
11871187 <div class="refsect3">
1188 <a name="id-1.3.55.7.24.6"></a><h4>Returns</h4>
1188 <a name="id-1.3.56.7.24.6"></a><h4>Returns</h4>
11891189 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the host was set/unset successfully.</p>
11901190 <p></p>
11911191 </div>
12001200 If <em class="parameter"><code>uri</code></em>
12011201 is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-NO-PORT:CAPS" title="GST_URI_NO_PORT"><code class="literal">GST_URI_NO_PORT</code></a>.</p>
12021202 <div class="refsect3">
1203 <a name="id-1.3.55.7.25.5"></a><h4>Parameters</h4>
1203 <a name="id-1.3.56.7.25.5"></a><h4>Parameters</h4>
12041204 <div class="informaltable"><table width="100%" border="0">
12051205 <colgroup>
12061206 <col width="150px" class="parameters_name">
12151215 </table></div>
12161216 </div>
12171217 <div class="refsect3">
1218 <a name="id-1.3.55.7.25.6"></a><h4>Returns</h4>
1218 <a name="id-1.3.56.7.25.6"></a><h4>Returns</h4>
12191219 <p> The port number from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-NO-PORT:CAPS" title="GST_URI_NO_PORT"><code class="literal">GST_URI_NO_PORT</code></a>.</p>
12201220 <p></p>
12211221 </div>
12291229 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
12301230 <p>Set or unset the port number for the URI.</p>
12311231 <div class="refsect3">
1232 <a name="id-1.3.55.7.26.5"></a><h4>Parameters</h4>
1232 <a name="id-1.3.56.7.26.5"></a><h4>Parameters</h4>
12331233 <div class="informaltable"><table width="100%" border="0">
12341234 <colgroup>
12351235 <col width="150px" class="parameters_name">
12511251 </table></div>
12521252 </div>
12531253 <div class="refsect3">
1254 <a name="id-1.3.55.7.26.6"></a><h4>Returns</h4>
1254 <a name="id-1.3.56.7.26.6"></a><h4>Returns</h4>
12551255 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the port number was set/unset successfully.</p>
12561256 <p></p>
12571257 </div>
12641264 gst_uri_get_path (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
12651265 <p>Extract the path string from the URI object.</p>
12661266 <div class="refsect3">
1267 <a name="id-1.3.55.7.27.5"></a><h4>Parameters</h4>
1267 <a name="id-1.3.56.7.27.5"></a><h4>Parameters</h4>
12681268 <div class="informaltable"><table width="100%" border="0">
12691269 <colgroup>
12701270 <col width="150px" class="parameters_name">
12791279 </table></div>
12801280 </div>
12811281 <div class="refsect3">
1282 <a name="id-1.3.55.7.27.6"></a><h4>Returns</h4>
1282 <a name="id-1.3.56.7.27.6"></a><h4>Returns</h4>
12831283 <p> The path from the URI. Once finished with the
12841284 string should be <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d. </p>
12851285 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
12941294 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path</code></em>);</pre>
12951295 <p>Sets or unsets the path in the URI.</p>
12961296 <div class="refsect3">
1297 <a name="id-1.3.55.7.28.5"></a><h4>Parameters</h4>
1297 <a name="id-1.3.56.7.28.5"></a><h4>Parameters</h4>
12981298 <div class="informaltable"><table width="100%" border="0">
12991299 <colgroup>
13001300 <col width="150px" class="parameters_name">
13171317 </table></div>
13181318 </div>
13191319 <div class="refsect3">
1320 <a name="id-1.3.55.7.28.6"></a><h4>Returns</h4>
1320 <a name="id-1.3.56.7.28.6"></a><h4>Returns</h4>
13211321 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was set successfully.</p>
13221322 <p></p>
13231323 </div>
13301330 gst_uri_get_path_string (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
13311331 <p>Extract the path string from the URI object as a percent encoded URI path.</p>
13321332 <div class="refsect3">
1333 <a name="id-1.3.55.7.29.5"></a><h4>Parameters</h4>
1333 <a name="id-1.3.56.7.29.5"></a><h4>Parameters</h4>
13341334 <div class="informaltable"><table width="100%" border="0">
13351335 <colgroup>
13361336 <col width="150px" class="parameters_name">
13451345 </table></div>
13461346 </div>
13471347 <div class="refsect3">
1348 <a name="id-1.3.55.7.29.6"></a><h4>Returns</h4>
1348 <a name="id-1.3.56.7.29.6"></a><h4>Returns</h4>
13491349 <p> The path from the URI. Once finished with the
13501350 string should be <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d. </p>
13511351 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
13601360 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path</code></em>);</pre>
13611361 <p>Sets or unsets the path in the URI.</p>
13621362 <div class="refsect3">
1363 <a name="id-1.3.55.7.30.5"></a><h4>Parameters</h4>
1363 <a name="id-1.3.56.7.30.5"></a><h4>Parameters</h4>
13641364 <div class="informaltable"><table width="100%" border="0">
13651365 <colgroup>
13661366 <col width="150px" class="parameters_name">
13831383 </table></div>
13841384 </div>
13851385 <div class="refsect3">
1386 <a name="id-1.3.55.7.30.6"></a><h4>Returns</h4>
1386 <a name="id-1.3.56.7.30.6"></a><h4>Returns</h4>
13871387 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was set successfully.</p>
13881388 <p></p>
13891389 </div>
13961396 gst_uri_get_path_segments (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
13971397 <p>Get a list of path segments from the URI.</p>
13981398 <div class="refsect3">
1399 <a name="id-1.3.55.7.31.5"></a><h4>Parameters</h4>
1399 <a name="id-1.3.56.7.31.5"></a><h4>Parameters</h4>
14001400 <div class="informaltable"><table width="100%" border="0">
14011401 <colgroup>
14021402 <col width="150px" class="parameters_name">
14111411 </table></div>
14121412 </div>
14131413 <div class="refsect3">
1414 <a name="id-1.3.55.7.31.6"></a><h4>Returns</h4>
1414 <a name="id-1.3.56.7.31.6"></a><h4>Returns</h4>
14151415 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of path segment
14161416 strings or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no path segments are available. Free the list
14171417 when no longer needed with g_list_free_full(list, g_free). </p>
14271427 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *path_segments</code></em>);</pre>
14281428 <p>Replace the path segments list in the URI.</p>
14291429 <div class="refsect3">
1430 <a name="id-1.3.55.7.32.5"></a><h4>Parameters</h4>
1430 <a name="id-1.3.56.7.32.5"></a><h4>Parameters</h4>
14311431 <div class="informaltable"><table width="100%" border="0">
14321432 <colgroup>
14331433 <col width="150px" class="parameters_name">
14501450 </table></div>
14511451 </div>
14521452 <div class="refsect3">
1453 <a name="id-1.3.55.7.32.6"></a><h4>Returns</h4>
1453 <a name="id-1.3.56.7.32.6"></a><h4>Returns</h4>
14541454 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path segments were set successfully.</p>
14551455 <p></p>
14561456 </div>
14651465 <p>Append a path onto the end of the path in the URI. The path is not
14661466 normalized, call <a class="link" href="gstreamer-GstUri.html#gst-uri-normalize" title="gst_uri_normalize ()"><code class="function">gst_uri_normalize()</code></a> to normalize the path.</p>
14671467 <div class="refsect3">
1468 <a name="id-1.3.55.7.33.5"></a><h4>Parameters</h4>
1468 <a name="id-1.3.56.7.33.5"></a><h4>Parameters</h4>
14691469 <div class="informaltable"><table width="100%" border="0">
14701470 <colgroup>
14711471 <col width="150px" class="parameters_name">
14871487 </table></div>
14881488 </div>
14891489 <div class="refsect3">
1490 <a name="id-1.3.55.7.33.6"></a><h4>Returns</h4>
1490 <a name="id-1.3.56.7.33.6"></a><h4>Returns</h4>
14911491 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was appended successfully.</p>
14921492 <p></p>
14931493 </div>
15011501 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path_segment</code></em>);</pre>
15021502 <p>Append a single path segment onto the end of the URI path.</p>
15031503 <div class="refsect3">
1504 <a name="id-1.3.55.7.34.5"></a><h4>Parameters</h4>
1504 <a name="id-1.3.56.7.34.5"></a><h4>Parameters</h4>
15051505 <div class="informaltable"><table width="100%" border="0">
15061506 <colgroup>
15071507 <col width="150px" class="parameters_name">
15231523 </table></div>
15241524 </div>
15251525 <div class="refsect3">
1526 <a name="id-1.3.55.7.34.6"></a><h4>Returns</h4>
1526 <a name="id-1.3.56.7.34.6"></a><h4>Returns</h4>
15271527 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was appended successfully.</p>
15281528 <p></p>
15291529 </div>
15371537 <p>Get a percent encoded URI query string from the <em class="parameter"><code>uri</code></em>
15381538 .</p>
15391539 <div class="refsect3">
1540 <a name="id-1.3.55.7.35.5"></a><h4>Parameters</h4>
1540 <a name="id-1.3.56.7.35.5"></a><h4>Parameters</h4>
15411541 <div class="informaltable"><table width="100%" border="0">
15421542 <colgroup>
15431543 <col width="150px" class="parameters_name">
15521552 </table></div>
15531553 </div>
15541554 <div class="refsect3">
1555 <a name="id-1.3.55.7.35.6"></a><h4>Returns</h4>
1555 <a name="id-1.3.56.7.35.6"></a><h4>Returns</h4>
15561556 <p> A percent encoded query string. Use <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when
15571557 no longer needed. </p>
15581558 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
15671567 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *query</code></em>);</pre>
15681568 <p>Sets or unsets the query table in the URI.</p>
15691569 <div class="refsect3">
1570 <a name="id-1.3.55.7.36.5"></a><h4>Parameters</h4>
1570 <a name="id-1.3.56.7.36.5"></a><h4>Parameters</h4>
15711571 <div class="informaltable"><table width="100%" border="0">
15721572 <colgroup>
15731573 <col width="150px" class="parameters_name">
15901590 </table></div>
15911591 </div>
15921592 <div class="refsect3">
1593 <a name="id-1.3.55.7.36.6"></a><h4>Returns</h4>
1593 <a name="id-1.3.56.7.36.6"></a><h4>Returns</h4>
15941594 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query table was set successfully.</p>
15951595 <p></p>
15961596 </div>
16081608 no longer required. Modifying this hash table will modify the query in the
16091609 URI.</p>
16101610 <div class="refsect3">
1611 <a name="id-1.3.55.7.37.5"></a><h4>Parameters</h4>
1611 <a name="id-1.3.56.7.37.5"></a><h4>Parameters</h4>
16121612 <div class="informaltable"><table width="100%" border="0">
16131613 <colgroup>
16141614 <col width="150px" class="parameters_name">
16231623 </table></div>
16241624 </div>
16251625 <div class="refsect3">
1626 <a name="id-1.3.55.7.37.6"></a><h4>Returns</h4>
1626 <a name="id-1.3.56.7.37.6"></a><h4>Returns</h4>
16271627 <p> The query hash table
16281628 from the URI. </p>
16291629 <p><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> gchar* gchar*]</span></p>
16411641
16421642 will remove the query string from the URI.</p>
16431643 <div class="refsect3">
1644 <a name="id-1.3.55.7.38.5"></a><h4>Parameters</h4>
1644 <a name="id-1.3.56.7.38.5"></a><h4>Parameters</h4>
16451645 <div class="informaltable"><table width="100%" border="0">
16461646 <colgroup>
16471647 <col width="150px" class="parameters_name">
16641664 </table></div>
16651665 </div>
16661666 <div class="refsect3">
1667 <a name="id-1.3.55.7.38.6"></a><h4>Returns</h4>
1667 <a name="id-1.3.56.7.38.6"></a><h4>Returns</h4>
16681668 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the new table was sucessfully used for the query table.</p>
16691669 <p></p>
16701670 </div>
16831683 use <a class="link" href="gstreamer-GstUri.html#gst-uri-query-has-key" title="gst_uri_query_has_key ()"><code class="function">gst_uri_query_has_key()</code></a> to determine if a key is present in the URI
16841684 query.</p>
16851685 <div class="refsect3">
1686 <a name="id-1.3.55.7.39.5"></a><h4>Parameters</h4>
1686 <a name="id-1.3.56.7.39.5"></a><h4>Parameters</h4>
16871687 <div class="informaltable"><table width="100%" border="0">
16881688 <colgroup>
16891689 <col width="150px" class="parameters_name">
17051705 </table></div>
17061706 </div>
17071707 <div class="refsect3">
1708 <a name="id-1.3.55.7.39.6"></a><h4>Returns</h4>
1708 <a name="id-1.3.56.7.39.6"></a><h4>Returns</h4>
17091709 <p> The value for the given key, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found.</p>
17101710 <p></p>
17111711 </div>
17231723 indicates that the key has no associated value, but will still be present in
17241724 the query string.</p>
17251725 <div class="refsect3">
1726 <a name="id-1.3.55.7.40.5"></a><h4>Parameters</h4>
1726 <a name="id-1.3.56.7.40.5"></a><h4>Parameters</h4>
17271727 <div class="informaltable"><table width="100%" border="0">
17281728 <colgroup>
17291729 <col width="150px" class="parameters_name">
17501750 </table></div>
17511751 </div>
17521752 <div class="refsect3">
1753 <a name="id-1.3.55.7.40.6"></a><h4>Returns</h4>
1753 <a name="id-1.3.56.7.40.6"></a><h4>Returns</h4>
17541754 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query table was sucessfully updated.</p>
17551755 <p></p>
17561756 </div>
17641764 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *query_key</code></em>);</pre>
17651765 <p>Remove an entry from the query table by key.</p>
17661766 <div class="refsect3">
1767 <a name="id-1.3.55.7.41.5"></a><h4>Parameters</h4>
1767 <a name="id-1.3.56.7.41.5"></a><h4>Parameters</h4>
17681768 <div class="informaltable"><table width="100%" border="0">
17691769 <colgroup>
17701770 <col width="150px" class="parameters_name">
17861786 </table></div>
17871787 </div>
17881788 <div class="refsect3">
1789 <a name="id-1.3.55.7.41.6"></a><h4>Returns</h4>
1789 <a name="id-1.3.56.7.41.6"></a><h4>Returns</h4>
17901790 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the key existed in the table and was removed.</p>
17911791 <p></p>
17921792 </div>
18011801 <p>Check if there is a query table entry for the <em class="parameter"><code>query_key</code></em>
18021802 key.</p>
18031803 <div class="refsect3">
1804 <a name="id-1.3.55.7.42.5"></a><h4>Parameters</h4>
1804 <a name="id-1.3.56.7.42.5"></a><h4>Parameters</h4>
18051805 <div class="informaltable"><table width="100%" border="0">
18061806 <colgroup>
18071807 <col width="150px" class="parameters_name">
18231823 </table></div>
18241824 </div>
18251825 <div class="refsect3">
1826 <a name="id-1.3.55.7.42.6"></a><h4>Returns</h4>
1826 <a name="id-1.3.56.7.42.6"></a><h4>Returns</h4>
18271827 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>query_key</code></em>
18281828 exists in the URI query table.</p>
18291829 <p></p>
18371837 gst_uri_get_query_keys (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
18381838 <p>Get a list of the query keys from the URI.</p>
18391839 <div class="refsect3">
1840 <a name="id-1.3.55.7.43.5"></a><h4>Parameters</h4>
1840 <a name="id-1.3.56.7.43.5"></a><h4>Parameters</h4>
18411841 <div class="informaltable"><table width="100%" border="0">
18421842 <colgroup>
18431843 <col width="150px" class="parameters_name">
18521852 </table></div>
18531853 </div>
18541854 <div class="refsect3">
1855 <a name="id-1.3.55.7.43.6"></a><h4>Returns</h4>
1855 <a name="id-1.3.56.7.43.6"></a><h4>Returns</h4>
18561856 <p> A list of keys from
18571857 the URI query. Free the list with <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>. </p>
18581858 <p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> gchar*]</span></p>
18681868 If <em class="parameter"><code>uri</code></em>
18691869 is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
18701870 <div class="refsect3">
1871 <a name="id-1.3.55.7.44.5"></a><h4>Parameters</h4>
1871 <a name="id-1.3.56.7.44.5"></a><h4>Parameters</h4>
18721872 <div class="informaltable"><table width="100%" border="0">
18731873 <colgroup>
18741874 <col width="150px" class="parameters_name">
18831883 </table></div>
18841884 </div>
18851885 <div class="refsect3">
1886 <a name="id-1.3.55.7.44.6"></a><h4>Returns</h4>
1886 <a name="id-1.3.56.7.44.6"></a><h4>Returns</h4>
18871887 <p> The host name from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
18881888 <p></p>
18891889 </div>
18991899 to
19001900 unset the fragment string.</p>
19011901 <div class="refsect3">
1902 <a name="id-1.3.55.7.45.5"></a><h4>Parameters</h4>
1902 <a name="id-1.3.56.7.45.5"></a><h4>Parameters</h4>
19031903 <div class="informaltable"><table width="100%" border="0">
19041904 <colgroup>
19051905 <col width="150px" class="parameters_name">
19211921 </table></div>
19221922 </div>
19231923 <div class="refsect3">
1924 <a name="id-1.3.55.7.45.6"></a><h4>Returns</h4>
1924 <a name="id-1.3.56.7.45.6"></a><h4>Returns</h4>
19251925 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the fragment was set/unset successfully.</p>
19261926 <p></p>
19271927 </div>
224224 </pre>
225225 <p>Tests if the type direction is valid.</p>
226226 <div class="refsect3">
227 <a name="id-1.3.56.9.3.5"></a><h4>Parameters</h4>
227 <a name="id-1.3.57.9.3.5"></a><h4>Parameters</h4>
228228 <div class="informaltable"><table width="100%" border="0">
229229 <colgroup>
230230 <col width="150px" class="parameters_name">
248248 must consist of alphanumeric characters, '+', '-' and '.' and must
249249 start with a alphabetic character. See RFC 3986 Section 3.1.</p>
250250 <div class="refsect3">
251 <a name="id-1.3.56.9.4.5"></a><h4>Parameters</h4>
251 <a name="id-1.3.57.9.4.5"></a><h4>Parameters</h4>
252252 <div class="informaltable"><table width="100%" border="0">
253253 <colgroup>
254254 <col width="150px" class="parameters_name">
263263 </table></div>
264264 </div>
265265 <div class="refsect3">
266 <a name="id-1.3.56.9.4.6"></a><h4>Returns</h4>
266 <a name="id-1.3.57.9.4.6"></a><h4>Returns</h4>
267267 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the string is a valid protocol identifier, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
268268 <p></p>
269269 </div>
278278 that a positive return value does not imply that a subsequent call to
279279 <a class="link" href="gstreamer-GstUriHandler.html#gst-element-make-from-uri" title="gst_element_make_from_uri ()"><code class="function">gst_element_make_from_uri()</code></a> is guaranteed to work.</p>
280280 <div class="refsect3">
281 <a name="id-1.3.56.9.5.5"></a><h4>Parameters</h4>
281 <a name="id-1.3.57.9.5.5"></a><h4>Parameters</h4>
282282 <div class="informaltable"><table width="100%" border="0">
283283 <colgroup>
284284 <col width="150px" class="parameters_name">
300300 </table></div>
301301 </div>
302302 <div class="refsect3">
303 <a name="id-1.3.56.9.5.6"></a><h4>Returns</h4>
303 <a name="id-1.3.57.9.5.6"></a><h4>Returns</h4>
304304 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a></p>
305305 <p></p>
306306 </div>
313313 <p>Tests if the given string is a valid URI identifier. URIs start with a valid
314314 scheme followed by ":" and maybe a string identifying the location.</p>
315315 <div class="refsect3">
316 <a name="id-1.3.56.9.6.5"></a><h4>Parameters</h4>
316 <a name="id-1.3.57.9.6.5"></a><h4>Parameters</h4>
317317 <div class="informaltable"><table width="100%" border="0">
318318 <colgroup>
319319 <col width="150px" class="parameters_name">
328328 </table></div>
329329 </div>
330330 <div class="refsect3">
331 <a name="id-1.3.56.9.6.6"></a><h4>Returns</h4>
331 <a name="id-1.3.57.9.6.6"></a><h4>Returns</h4>
332332 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the string is a valid URI</p>
333333 <p></p>
334334 </div>
342342 <p>Checks if the protocol of a given valid URI matches <em class="parameter"><code>protocol</code></em>
343343 .</p>
344344 <div class="refsect3">
345 <a name="id-1.3.56.9.7.5"></a><h4>Parameters</h4>
345 <a name="id-1.3.57.9.7.5"></a><h4>Parameters</h4>
346346 <div class="informaltable"><table width="100%" border="0">
347347 <colgroup>
348348 <col width="150px" class="parameters_name">
364364 </table></div>
365365 </div>
366366 <div class="refsect3">
367 <a name="id-1.3.56.9.7.6"></a><h4>Returns</h4>
367 <a name="id-1.3.57.9.7.6"></a><h4>Returns</h4>
368368 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the protocol matches.</p>
369369 <p></p>
370370 </div>
377377 <p>Extracts the protocol out of a given valid URI. The returned string must be
378378 freed using <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
379379 <div class="refsect3">
380 <a name="id-1.3.56.9.8.5"></a><h4>Parameters</h4>
380 <a name="id-1.3.57.9.8.5"></a><h4>Parameters</h4>
381381 <div class="informaltable"><table width="100%" border="0">
382382 <colgroup>
383383 <col width="150px" class="parameters_name">
392392 </table></div>
393393 </div>
394394 <div class="refsect3">
395 <a name="id-1.3.56.9.8.6"></a><h4>Returns</h4>
395 <a name="id-1.3.57.9.8.6"></a><h4>Returns</h4>
396396 <p> The protocol for this URI.</p>
397397 <p></p>
398398 </div>
408408 <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
409409 <p>Free-function: g_free</p>
410410 <div class="refsect3">
411 <a name="id-1.3.56.9.9.6"></a><h4>Parameters</h4>
411 <a name="id-1.3.57.9.9.6"></a><h4>Parameters</h4>
412412 <div class="informaltable"><table width="100%" border="0">
413413 <colgroup>
414414 <col width="150px" class="parameters_name">
423423 </table></div>
424424 </div>
425425 <div class="refsect3">
426 <a name="id-1.3.56.9.9.7"></a><h4>Returns</h4>
426 <a name="id-1.3.57.9.9.7"></a><h4>Returns</h4>
427427 <p> the location for this URI. Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
428428 URI isn't valid. If the URI does not contain a location, an empty
429429 string is returned. </p>
439439 <p>Constructs a URI for a given valid protocol and location.</p>
440440 <p>Free-function: g_free</p>
441441 <div class="refsect3">
442 <a name="id-1.3.56.9.10.6"></a><h4>Parameters</h4>
442 <a name="id-1.3.57.9.10.6"></a><h4>Parameters</h4>
443443 <div class="informaltable"><table width="100%" border="0">
444444 <colgroup>
445445 <col width="150px" class="parameters_name">
461461 </table></div>
462462 </div>
463463 <div class="refsect3">
464 <a name="id-1.3.56.9.10.7"></a><h4>Returns</h4>
464 <a name="id-1.3.57.9.10.7"></a><h4>Returns</h4>
465465 <p> a new string for this URI. Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
466466 given URI protocol is not valid, or the given location is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
467467 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
480480 will be canonicalised so that it doesn't contain any './' or '../' segments.</p>
481481 <p>On Windows <span class="type">filename</span> should be in UTF-8 encoding.</p>
482482 <div class="refsect3">
483 <a name="id-1.3.56.9.11.6"></a><h4>Parameters</h4>
483 <a name="id-1.3.57.9.11.6"></a><h4>Parameters</h4>
484484 <div class="informaltable"><table width="100%" border="0">
485485 <colgroup>
486486 <col width="150px" class="parameters_name">
500500 </tr>
501501 </tbody>
502502 </table></div>
503 </div>
504 <div class="refsect3">
505 <a name="id-1.3.57.9.11.7"></a><h4>Returns</h4>
506 <p> newly-allocated URI string, or NULL on error. The caller must
507 free the URI string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed.</p>
508 <p></p>
503509 </div>
504510 </div>
505511 <hr>
512518 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
513519 <p>Creates an element for handling the given URI.</p>
514520 <div class="refsect3">
515 <a name="id-1.3.56.9.12.5"></a><h4>Parameters</h4>
521 <a name="id-1.3.57.9.12.5"></a><h4>Parameters</h4>
516522 <div class="informaltable"><table width="100%" border="0">
517523 <colgroup>
518524 <col width="150px" class="parameters_name">
544550 </table></div>
545551 </div>
546552 <div class="refsect3">
547 <a name="id-1.3.56.9.12.6"></a><h4>Returns</h4>
553 <a name="id-1.3.57.9.12.6"></a><h4>Returns</h4>
548554 <p> a new element or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none could be created. </p>
549555 <p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
550556 </div>
556562 gst_uri_handler_get_uri_type (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
557563 <p>Gets the type of the given URI handler</p>
558564 <div class="refsect3">
559 <a name="id-1.3.56.9.13.5"></a><h4>Parameters</h4>
565 <a name="id-1.3.57.9.13.5"></a><h4>Parameters</h4>
560566 <div class="informaltable"><table width="100%" border="0">
561567 <colgroup>
562568 <col width="150px" class="parameters_name">
571577 </table></div>
572578 </div>
573579 <div class="refsect3">
574 <a name="id-1.3.56.9.13.6"></a><h4>Returns</h4>
580 <a name="id-1.3.57.9.13.6"></a><h4>Returns</h4>
575581 <p> the <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="type">GstURIType</span></a> of the URI handler.
576582 Returns <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-UNKNOWN:CAPS"><span class="type">GST_URI_UNKNOWN</span></a> if the <em class="parameter"><code>handler</code></em>
577583 isn't implemented correctly.</p>
587593 . This list may not be
588594 modified.</p>
589595 <div class="refsect3">
590 <a name="id-1.3.56.9.14.5"></a><h4>Parameters</h4>
596 <a name="id-1.3.57.9.14.5"></a><h4>Parameters</h4>
591597 <div class="informaltable"><table width="100%" border="0">
592598 <colgroup>
593599 <col width="150px" class="parameters_name">
602608 </table></div>
603609 </div>
604610 <div class="refsect3">
605 <a name="id-1.3.56.9.14.6"></a><h4>Returns</h4>
611 <a name="id-1.3.57.9.14.6"></a><h4>Returns</h4>
606612 <p> the
607613 supported protocols. Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the <em class="parameter"><code>handler</code></em>
608614 isn't
619625 gst_uri_handler_get_uri (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
620626 <p>Gets the currently handled URI.</p>
621627 <div class="refsect3">
622 <a name="id-1.3.56.9.15.5"></a><h4>Parameters</h4>
628 <a name="id-1.3.57.9.15.5"></a><h4>Parameters</h4>
623629 <div class="informaltable"><table width="100%" border="0">
624630 <colgroup>
625631 <col width="150px" class="parameters_name">
634640 </table></div>
635641 </div>
636642 <div class="refsect3">
637 <a name="id-1.3.56.9.15.6"></a><h4>Returns</h4>
643 <a name="id-1.3.57.9.15.6"></a><h4>Returns</h4>
638644 <p> the URI currently handled by
639645 the <em class="parameter"><code>handler</code></em>
640646 . Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there are no URI currently
652658 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
653659 <p>Tries to set the URI of the given handler.</p>
654660 <div class="refsect3">
655 <a name="id-1.3.56.9.16.5"></a><h4>Parameters</h4>
661 <a name="id-1.3.57.9.16.5"></a><h4>Parameters</h4>
656662 <div class="informaltable"><table width="100%" border="0">
657663 <colgroup>
658664 <col width="150px" class="parameters_name">
680686 </table></div>
681687 </div>
682688 <div class="refsect3">
683 <a name="id-1.3.56.9.16.6"></a><h4>Returns</h4>
689 <a name="id-1.3.57.9.16.6"></a><h4>Returns</h4>
684690 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the URI was set successfully, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
685691 <p></p>
686692 </div>
713719 </pre>
714720 <p>Any <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> using this interface should implement these methods.</p>
715721 <div class="refsect3">
716 <a name="id-1.3.56.10.3.5"></a><h4>Members</h4>
722 <a name="id-1.3.57.10.3.5"></a><h4>Members</h4>
717723 <div class="informaltable"><table width="100%" border="0">
718724 <colgroup>
719725 <col width="300px" class="struct_members_name">
755761 <a name="GstURIType"></a><h3>enum GstURIType</h3>
756762 <p>The different types of URI direction.</p>
757763 <div class="refsect3">
758 <a name="id-1.3.56.10.4.4"></a><h4>Members</h4>
764 <a name="id-1.3.57.10.4.4"></a><h4>Members</h4>
759765 <div class="informaltable"><table width="100%" border="0">
760766 <colgroup>
761767 <col width="300px" class="enum_members_name">
793799 <a name="GstURIError"></a><h3>enum GstURIError</h3>
794800 <p>Different URI-related errors that can occur.</p>
795801 <div class="refsect3">
796 <a name="id-1.3.56.10.5.4"></a><h4>Members</h4>
802 <a name="id-1.3.57.10.5.4"></a><h4>Members</h4>
797803 <div class="informaltable"><table width="100%" border="0">
798804 <colgroup>
799805 <col width="300px" class="enum_members_name">
596596 this macro is not to be used with things that return something, use
597597 the _WITH_DEFAULT version for that</p>
598598 <div class="refsect3">
599 <a name="id-1.3.57.7.2.5"></a><h4>Parameters</h4>
599 <a name="id-1.3.58.7.2.5"></a><h4>Parameters</h4>
600600 <div class="informaltable"><table width="100%" border="0">
601601 <colgroup>
602602 <col width="150px" class="parameters_name">
631631 evaluates to <em class="parameter"><code>def_return</code></em>
632632 .</p>
633633 <div class="refsect3">
634 <a name="id-1.3.57.7.3.5"></a><h4>Parameters</h4>
634 <a name="id-1.3.58.7.3.5"></a><h4>Parameters</h4>
635635 <div class="informaltable"><table width="100%" border="0">
636636 <colgroup>
637637 <col width="150px" class="parameters_name">
670670 </pre>
671671 <p>Read an 8 bit unsigned integer value from the memory buffer.</p>
672672 <div class="refsect3">
673 <a name="id-1.3.57.7.4.5"></a><h4>Parameters</h4>
673 <a name="id-1.3.58.7.4.5"></a><h4>Parameters</h4>
674674 <div class="informaltable"><table width="100%" border="0">
675675 <colgroup>
676676 <col width="150px" class="parameters_name">
692692 </pre>
693693 <p>Read a 16 bit unsigned integer value in little endian format from the memory buffer.</p>
694694 <div class="refsect3">
695 <a name="id-1.3.57.7.5.5"></a><h4>Parameters</h4>
695 <a name="id-1.3.58.7.5.5"></a><h4>Parameters</h4>
696696 <div class="informaltable"><table width="100%" border="0">
697697 <colgroup>
698698 <col width="150px" class="parameters_name">
714714 </pre>
715715 <p>Read a 16 bit unsigned integer value in big endian format from the memory buffer.</p>
716716 <div class="refsect3">
717 <a name="id-1.3.57.7.6.5"></a><h4>Parameters</h4>
717 <a name="id-1.3.58.7.6.5"></a><h4>Parameters</h4>
718718 <div class="informaltable"><table width="100%" border="0">
719719 <colgroup>
720720 <col width="150px" class="parameters_name">
736736 </pre>
737737 <p>Read a 24 bit unsigned integer value in little endian format from the memory buffer.</p>
738738 <div class="refsect3">
739 <a name="id-1.3.57.7.7.5"></a><h4>Parameters</h4>
739 <a name="id-1.3.58.7.7.5"></a><h4>Parameters</h4>
740740 <div class="informaltable"><table width="100%" border="0">
741741 <colgroup>
742742 <col width="150px" class="parameters_name">
758758 </pre>
759759 <p>Read a 24 bit unsigned integer value in big endian format from the memory buffer.</p>
760760 <div class="refsect3">
761 <a name="id-1.3.57.7.8.5"></a><h4>Parameters</h4>
761 <a name="id-1.3.58.7.8.5"></a><h4>Parameters</h4>
762762 <div class="informaltable"><table width="100%" border="0">
763763 <colgroup>
764764 <col width="150px" class="parameters_name">
780780 </pre>
781781 <p>Read a 32 bit unsigned integer value in little endian format from the memory buffer.</p>
782782 <div class="refsect3">
783 <a name="id-1.3.57.7.9.5"></a><h4>Parameters</h4>
783 <a name="id-1.3.58.7.9.5"></a><h4>Parameters</h4>
784784 <div class="informaltable"><table width="100%" border="0">
785785 <colgroup>
786786 <col width="150px" class="parameters_name">
802802 </pre>
803803 <p>Read a 32 bit unsigned integer value in big endian format from the memory buffer.</p>
804804 <div class="refsect3">
805 <a name="id-1.3.57.7.10.5"></a><h4>Parameters</h4>
805 <a name="id-1.3.58.7.10.5"></a><h4>Parameters</h4>
806806 <div class="informaltable"><table width="100%" border="0">
807807 <colgroup>
808808 <col width="150px" class="parameters_name">
824824 </pre>
825825 <p>Read a 64 bit unsigned integer value in little endian format from the memory buffer.</p>
826826 <div class="refsect3">
827 <a name="id-1.3.57.7.11.5"></a><h4>Parameters</h4>
827 <a name="id-1.3.58.7.11.5"></a><h4>Parameters</h4>
828828 <div class="informaltable"><table width="100%" border="0">
829829 <colgroup>
830830 <col width="150px" class="parameters_name">
846846 </pre>
847847 <p>Read a 64 bit unsigned integer value in big endian format from the memory buffer.</p>
848848 <div class="refsect3">
849 <a name="id-1.3.57.7.12.5"></a><h4>Parameters</h4>
849 <a name="id-1.3.58.7.12.5"></a><h4>Parameters</h4>
850850 <div class="informaltable"><table width="100%" border="0">
851851 <colgroup>
852852 <col width="150px" class="parameters_name">
868868 GST_READ_FLOAT_LE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
869869 <p>Read a 32 bit float value in little endian format from the memory buffer.</p>
870870 <div class="refsect3">
871 <a name="id-1.3.57.7.13.5"></a><h4>Parameters</h4>
871 <a name="id-1.3.58.7.13.5"></a><h4>Parameters</h4>
872872 <div class="informaltable"><table width="100%" border="0">
873873 <colgroup>
874874 <col width="150px" class="parameters_name">
883883 </table></div>
884884 </div>
885885 <div class="refsect3">
886 <a name="id-1.3.57.7.13.6"></a><h4>Returns</h4>
886 <a name="id-1.3.58.7.13.6"></a><h4>Returns</h4>
887887 <p> The floating point value read from <em class="parameter"><code>data</code></em>
888888 </p>
889889 <p></p>
896896 GST_READ_FLOAT_BE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
897897 <p>Read a 32 bit float value in big endian format from the memory buffer.</p>
898898 <div class="refsect3">
899 <a name="id-1.3.57.7.14.5"></a><h4>Parameters</h4>
899 <a name="id-1.3.58.7.14.5"></a><h4>Parameters</h4>
900900 <div class="informaltable"><table width="100%" border="0">
901901 <colgroup>
902902 <col width="150px" class="parameters_name">
911911 </table></div>
912912 </div>
913913 <div class="refsect3">
914 <a name="id-1.3.57.7.14.6"></a><h4>Returns</h4>
914 <a name="id-1.3.58.7.14.6"></a><h4>Returns</h4>
915915 <p> The floating point value read from <em class="parameter"><code>data</code></em>
916916 </p>
917917 <p></p>
924924 GST_READ_DOUBLE_LE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
925925 <p>Read a 64 bit double value in little endian format from the memory buffer.</p>
926926 <div class="refsect3">
927 <a name="id-1.3.57.7.15.5"></a><h4>Parameters</h4>
927 <a name="id-1.3.58.7.15.5"></a><h4>Parameters</h4>
928928 <div class="informaltable"><table width="100%" border="0">
929929 <colgroup>
930930 <col width="150px" class="parameters_name">
939939 </table></div>
940940 </div>
941941 <div class="refsect3">
942 <a name="id-1.3.57.7.15.6"></a><h4>Returns</h4>
942 <a name="id-1.3.58.7.15.6"></a><h4>Returns</h4>
943943 <p> The double-precision floating point value read from <em class="parameter"><code>data</code></em>
944944 </p>
945945 <p></p>
952952 GST_READ_DOUBLE_BE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
953953 <p>Read a 64 bit double value in big endian format from the memory buffer.</p>
954954 <div class="refsect3">
955 <a name="id-1.3.57.7.16.5"></a><h4>Parameters</h4>
955 <a name="id-1.3.58.7.16.5"></a><h4>Parameters</h4>
956956 <div class="informaltable"><table width="100%" border="0">
957957 <colgroup>
958958 <col width="150px" class="parameters_name">
967967 </table></div>
968968 </div>
969969 <div class="refsect3">
970 <a name="id-1.3.57.7.16.6"></a><h4>Returns</h4>
970 <a name="id-1.3.58.7.16.6"></a><h4>Returns</h4>
971971 <p> The double-precision floating point value read from <em class="parameter"><code>data</code></em>
972972 </p>
973973 <p></p>
979979 <pre class="programlisting">#define GST_WRITE_UINT8(data, num)</pre>
980980 <p>Store an 8 bit unsigned integer value into the memory buffer.</p>
981981 <div class="refsect3">
982 <a name="id-1.3.57.7.17.5"></a><h4>Parameters</h4>
982 <a name="id-1.3.58.7.17.5"></a><h4>Parameters</h4>
983983 <div class="informaltable"><table width="100%" border="0">
984984 <colgroup>
985985 <col width="150px" class="parameters_name">
10071007 <pre class="programlisting">#define GST_WRITE_UINT16_LE(data, num)</pre>
10081008 <p>Store a 16 bit unsigned integer value in little endian format into the memory buffer.</p>
10091009 <div class="refsect3">
1010 <a name="id-1.3.57.7.18.5"></a><h4>Parameters</h4>
1010 <a name="id-1.3.58.7.18.5"></a><h4>Parameters</h4>
10111011 <div class="informaltable"><table width="100%" border="0">
10121012 <colgroup>
10131013 <col width="150px" class="parameters_name">
10351035 <pre class="programlisting">#define GST_WRITE_UINT16_BE(data, num)</pre>
10361036 <p>Store a 16 bit unsigned integer value in big endian format into the memory buffer.</p>
10371037 <div class="refsect3">
1038 <a name="id-1.3.57.7.19.5"></a><h4>Parameters</h4>
1038 <a name="id-1.3.58.7.19.5"></a><h4>Parameters</h4>
10391039 <div class="informaltable"><table width="100%" border="0">
10401040 <colgroup>
10411041 <col width="150px" class="parameters_name">
10631063 <pre class="programlisting">#define GST_WRITE_UINT24_LE(data, num)</pre>
10641064 <p>Store a 24 bit unsigned integer value in little endian format into the memory buffer.</p>
10651065 <div class="refsect3">
1066 <a name="id-1.3.57.7.20.5"></a><h4>Parameters</h4>
1066 <a name="id-1.3.58.7.20.5"></a><h4>Parameters</h4>
10671067 <div class="informaltable"><table width="100%" border="0">
10681068 <colgroup>
10691069 <col width="150px" class="parameters_name">
10911091 <pre class="programlisting">#define GST_WRITE_UINT24_BE(data, num)</pre>
10921092 <p>Store a 24 bit unsigned integer value in big endian format into the memory buffer.</p>
10931093 <div class="refsect3">
1094 <a name="id-1.3.57.7.21.5"></a><h4>Parameters</h4>
1094 <a name="id-1.3.58.7.21.5"></a><h4>Parameters</h4>
10951095 <div class="informaltable"><table width="100%" border="0">
10961096 <colgroup>
10971097 <col width="150px" class="parameters_name">
11191119 <pre class="programlisting">#define GST_WRITE_UINT32_LE(data, num)</pre>
11201120 <p>Store a 32 bit unsigned integer value in little endian format into the memory buffer.</p>
11211121 <div class="refsect3">
1122 <a name="id-1.3.57.7.22.5"></a><h4>Parameters</h4>
1122 <a name="id-1.3.58.7.22.5"></a><h4>Parameters</h4>
11231123 <div class="informaltable"><table width="100%" border="0">
11241124 <colgroup>
11251125 <col width="150px" class="parameters_name">
11471147 <pre class="programlisting">#define GST_WRITE_UINT32_BE(data, num)</pre>
11481148 <p>Store a 32 bit unsigned integer value in big endian format into the memory buffer.</p>
11491149 <div class="refsect3">
1150 <a name="id-1.3.57.7.23.5"></a><h4>Parameters</h4>
1150 <a name="id-1.3.58.7.23.5"></a><h4>Parameters</h4>
11511151 <div class="informaltable"><table width="100%" border="0">
11521152 <colgroup>
11531153 <col width="150px" class="parameters_name">
11751175 <pre class="programlisting">#define GST_WRITE_UINT64_LE(data, num)</pre>
11761176 <p>Store a 64 bit unsigned integer value in little endian format into the memory buffer.</p>
11771177 <div class="refsect3">
1178 <a name="id-1.3.57.7.24.5"></a><h4>Parameters</h4>
1178 <a name="id-1.3.58.7.24.5"></a><h4>Parameters</h4>
11791179 <div class="informaltable"><table width="100%" border="0">
11801180 <colgroup>
11811181 <col width="150px" class="parameters_name">
12031203 <pre class="programlisting">#define GST_WRITE_UINT64_BE(data, num)</pre>
12041204 <p>Store a 64 bit unsigned integer value in big endian format into the memory buffer.</p>
12051205 <div class="refsect3">
1206 <a name="id-1.3.57.7.25.5"></a><h4>Parameters</h4>
1206 <a name="id-1.3.58.7.25.5"></a><h4>Parameters</h4>
12071207 <div class="informaltable"><table width="100%" border="0">
12081208 <colgroup>
12091209 <col width="150px" class="parameters_name">
12331233 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
12341234 <p>Store a 32 bit float value in little endian format into the memory buffer.</p>
12351235 <div class="refsect3">
1236 <a name="id-1.3.57.7.26.5"></a><h4>Parameters</h4>
1236 <a name="id-1.3.58.7.26.5"></a><h4>Parameters</h4>
12371237 <div class="informaltable"><table width="100%" border="0">
12381238 <colgroup>
12391239 <col width="150px" class="parameters_name">
12631263 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
12641264 <p>Store a 32 bit float value in big endian format into the memory buffer.</p>
12651265 <div class="refsect3">
1266 <a name="id-1.3.57.7.27.5"></a><h4>Parameters</h4>
1266 <a name="id-1.3.58.7.27.5"></a><h4>Parameters</h4>
12671267 <div class="informaltable"><table width="100%" border="0">
12681268 <colgroup>
12691269 <col width="150px" class="parameters_name">
12931293 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
12941294 <p>Store a 64 bit double value in little endian format into the memory buffer.</p>
12951295 <div class="refsect3">
1296 <a name="id-1.3.57.7.28.5"></a><h4>Parameters</h4>
1296 <a name="id-1.3.58.7.28.5"></a><h4>Parameters</h4>
12971297 <div class="informaltable"><table width="100%" border="0">
12981298 <colgroup>
12991299 <col width="150px" class="parameters_name">
13231323 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
13241324 <p>Store a 64 bit double value in big endian format into the memory buffer.</p>
13251325 <div class="refsect3">
1326 <a name="id-1.3.57.7.29.5"></a><h4>Parameters</h4>
1326 <a name="id-1.3.58.7.29.5"></a><h4>Parameters</h4>
13271327 <div class="informaltable"><table width="100%" border="0">
13281328 <colgroup>
13291329 <col width="150px" class="parameters_name">
13521352 </pre>
13531353 <p>Rounds an integer value up to the next multiple of 2.</p>
13541354 <div class="refsect3">
1355 <a name="id-1.3.57.7.30.5"></a><h4>Parameters</h4>
1355 <a name="id-1.3.58.7.30.5"></a><h4>Parameters</h4>
13561356 <div class="informaltable"><table width="100%" border="0">
13571357 <colgroup>
13581358 <col width="150px" class="parameters_name">
13741374 </pre>
13751375 <p>Rounds an integer value up to the next multiple of 4.</p>
13761376 <div class="refsect3">
1377 <a name="id-1.3.57.7.31.5"></a><h4>Parameters</h4>
1377 <a name="id-1.3.58.7.31.5"></a><h4>Parameters</h4>
13781378 <div class="informaltable"><table width="100%" border="0">
13791379 <colgroup>
13801380 <col width="150px" class="parameters_name">
13961396 </pre>
13971397 <p>Rounds an integer value up to the next multiple of 8.</p>
13981398 <div class="refsect3">
1399 <a name="id-1.3.57.7.32.5"></a><h4>Parameters</h4>
1399 <a name="id-1.3.58.7.32.5"></a><h4>Parameters</h4>
14001400 <div class="informaltable"><table width="100%" border="0">
14011401 <colgroup>
14021402 <col width="150px" class="parameters_name">
14181418 </pre>
14191419 <p>Rounds an integer value up to the next multiple of 16.</p>
14201420 <div class="refsect3">
1421 <a name="id-1.3.57.7.33.5"></a><h4>Parameters</h4>
1421 <a name="id-1.3.58.7.33.5"></a><h4>Parameters</h4>
14221422 <div class="informaltable"><table width="100%" border="0">
14231423 <colgroup>
14241424 <col width="150px" class="parameters_name">
14401440 </pre>
14411441 <p>Rounds an integer value up to the next multiple of 32.</p>
14421442 <div class="refsect3">
1443 <a name="id-1.3.57.7.34.5"></a><h4>Parameters</h4>
1443 <a name="id-1.3.58.7.34.5"></a><h4>Parameters</h4>
14441444 <div class="informaltable"><table width="100%" border="0">
14451445 <colgroup>
14461446 <col width="150px" class="parameters_name">
14621462 </pre>
14631463 <p>Rounds an integer value up to the next multiple of 64.</p>
14641464 <div class="refsect3">
1465 <a name="id-1.3.57.7.35.5"></a><h4>Parameters</h4>
1465 <a name="id-1.3.58.7.35.5"></a><h4>Parameters</h4>
14661466 <div class="informaltable"><table width="100%" border="0">
14671467 <colgroup>
14681468 <col width="150px" class="parameters_name">
14841484 </pre>
14851485 <p>Rounds an integer value up to the next multiple of 128.</p>
14861486 <div class="refsect3">
1487 <a name="id-1.3.57.7.36.5"></a><h4>Parameters</h4>
1487 <a name="id-1.3.58.7.36.5"></a><h4>Parameters</h4>
14881488 <div class="informaltable"><table width="100%" border="0">
14891489 <colgroup>
14901490 <col width="150px" class="parameters_name">
15101510 MUST be a
15111511 power of two.</p>
15121512 <div class="refsect3">
1513 <a name="id-1.3.57.7.37.5"></a><h4>Parameters</h4>
1513 <a name="id-1.3.58.7.37.5"></a><h4>Parameters</h4>
15141514 <div class="informaltable"><table width="100%" border="0">
15151515 <colgroup>
15161516 <col width="150px" class="parameters_name">
15391539 </pre>
15401540 <p>Rounds an integer value down to the next multiple of 2.</p>
15411541 <div class="refsect3">
1542 <a name="id-1.3.57.7.38.5"></a><h4>Parameters</h4>
1542 <a name="id-1.3.58.7.38.5"></a><h4>Parameters</h4>
15431543 <div class="informaltable"><table width="100%" border="0">
15441544 <colgroup>
15451545 <col width="150px" class="parameters_name">
15611561 </pre>
15621562 <p>Rounds an integer value down to the next multiple of 4.</p>
15631563 <div class="refsect3">
1564 <a name="id-1.3.57.7.39.5"></a><h4>Parameters</h4>
1564 <a name="id-1.3.58.7.39.5"></a><h4>Parameters</h4>
15651565 <div class="informaltable"><table width="100%" border="0">
15661566 <colgroup>
15671567 <col width="150px" class="parameters_name">
15831583 </pre>
15841584 <p>Rounds an integer value down to the next multiple of 8.</p>
15851585 <div class="refsect3">
1586 <a name="id-1.3.57.7.40.5"></a><h4>Parameters</h4>
1586 <a name="id-1.3.58.7.40.5"></a><h4>Parameters</h4>
15871587 <div class="informaltable"><table width="100%" border="0">
15881588 <colgroup>
15891589 <col width="150px" class="parameters_name">
16051605 </pre>
16061606 <p>Rounds an integer value down to the next multiple of 16.</p>
16071607 <div class="refsect3">
1608 <a name="id-1.3.57.7.41.5"></a><h4>Parameters</h4>
1608 <a name="id-1.3.58.7.41.5"></a><h4>Parameters</h4>
16091609 <div class="informaltable"><table width="100%" border="0">
16101610 <colgroup>
16111611 <col width="150px" class="parameters_name">
16271627 </pre>
16281628 <p>Rounds an integer value down to the next multiple of 32.</p>
16291629 <div class="refsect3">
1630 <a name="id-1.3.57.7.42.5"></a><h4>Parameters</h4>
1630 <a name="id-1.3.58.7.42.5"></a><h4>Parameters</h4>
16311631 <div class="informaltable"><table width="100%" border="0">
16321632 <colgroup>
16331633 <col width="150px" class="parameters_name">
16491649 </pre>
16501650 <p>Rounds an integer value down to the next multiple of 64.</p>
16511651 <div class="refsect3">
1652 <a name="id-1.3.57.7.43.5"></a><h4>Parameters</h4>
1652 <a name="id-1.3.58.7.43.5"></a><h4>Parameters</h4>
16531653 <div class="informaltable"><table width="100%" border="0">
16541654 <colgroup>
16551655 <col width="150px" class="parameters_name">
16711671 </pre>
16721672 <p>Rounds an integer value down to the next multiple of 128.</p>
16731673 <div class="refsect3">
1674 <a name="id-1.3.57.7.44.5"></a><h4>Parameters</h4>
1674 <a name="id-1.3.58.7.44.5"></a><h4>Parameters</h4>
16751675 <div class="informaltable"><table width="100%" border="0">
16761676 <colgroup>
16771677 <col width="150px" class="parameters_name">
16971697 MUST be a
16981698 power of two.</p>
16991699 <div class="refsect3">
1700 <a name="id-1.3.57.7.45.5"></a><h4>Parameters</h4>
1700 <a name="id-1.3.58.7.45.5"></a><h4>Parameters</h4>
17011701 <div class="informaltable"><table width="100%" border="0">
17021702 <colgroup>
17031703 <col width="150px" class="parameters_name">
17271727 <p>Convert 64-bit floating point value (double) from big endian byte order
17281728 into native byte order.</p>
17291729 <div class="refsect3">
1730 <a name="id-1.3.57.7.46.5"></a><h4>Parameters</h4>
1730 <a name="id-1.3.58.7.46.5"></a><h4>Parameters</h4>
17311731 <div class="informaltable"><table width="100%" border="0">
17321732 <colgroup>
17331733 <col width="150px" class="parameters_name">
17501750 <p>Convert 64-bit floating point value (double) from little endian byte order
17511751 into native byte order.</p>
17521752 <div class="refsect3">
1753 <a name="id-1.3.57.7.47.5"></a><h4>Parameters</h4>
1753 <a name="id-1.3.58.7.47.5"></a><h4>Parameters</h4>
17541754 <div class="informaltable"><table width="100%" border="0">
17551755 <colgroup>
17561756 <col width="150px" class="parameters_name">
17721772 GDOUBLE_SWAP_LE_BE (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> in</code></em>);</pre>
17731773 <p>Swap byte order of a 64-bit floating point value (double).</p>
17741774 <div class="refsect3">
1775 <a name="id-1.3.57.7.48.5"></a><h4>Parameters</h4>
1775 <a name="id-1.3.58.7.48.5"></a><h4>Parameters</h4>
17761776 <div class="informaltable"><table width="100%" border="0">
17771777 <colgroup>
17781778 <col width="150px" class="parameters_name">
17871787 </table></div>
17881788 </div>
17891789 <div class="refsect3">
1790 <a name="id-1.3.57.7.48.6"></a><h4>Returns</h4>
1790 <a name="id-1.3.58.7.48.6"></a><h4>Returns</h4>
17911791 <p> <em class="parameter"><code>in</code></em>
17921792 byte-swapped.</p>
17931793 <p></p>
18011801 <p>Convert 64-bit floating point value (double) from native byte order into
18021802 big endian byte order.</p>
18031803 <div class="refsect3">
1804 <a name="id-1.3.57.7.49.5"></a><h4>Parameters</h4>
1804 <a name="id-1.3.58.7.49.5"></a><h4>Parameters</h4>
18051805 <div class="informaltable"><table width="100%" border="0">
18061806 <colgroup>
18071807 <col width="150px" class="parameters_name">
18241824 <p>Convert 64-bit floating point value (double) from native byte order into
18251825 little endian byte order.</p>
18261826 <div class="refsect3">
1827 <a name="id-1.3.57.7.50.5"></a><h4>Parameters</h4>
1827 <a name="id-1.3.58.7.50.5"></a><h4>Parameters</h4>
18281828 <div class="informaltable"><table width="100%" border="0">
18291829 <colgroup>
18301830 <col width="150px" class="parameters_name">
18471847 <p>Convert 32-bit floating point value (float) from big endian byte order
18481848 into native byte order.</p>
18491849 <div class="refsect3">
1850 <a name="id-1.3.57.7.51.5"></a><h4>Parameters</h4>
1850 <a name="id-1.3.58.7.51.5"></a><h4>Parameters</h4>
18511851 <div class="informaltable"><table width="100%" border="0">
18521852 <colgroup>
18531853 <col width="150px" class="parameters_name">
18701870 <p>Convert 32-bit floating point value (float) from little endian byte order
18711871 into native byte order.</p>
18721872 <div class="refsect3">
1873 <a name="id-1.3.57.7.52.5"></a><h4>Parameters</h4>
1873 <a name="id-1.3.58.7.52.5"></a><h4>Parameters</h4>
18741874 <div class="informaltable"><table width="100%" border="0">
18751875 <colgroup>
18761876 <col width="150px" class="parameters_name">
18921892 GFLOAT_SWAP_LE_BE (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> in</code></em>);</pre>
18931893 <p>Swap byte order of a 32-bit floating point value (float).</p>
18941894 <div class="refsect3">
1895 <a name="id-1.3.57.7.53.5"></a><h4>Parameters</h4>
1895 <a name="id-1.3.58.7.53.5"></a><h4>Parameters</h4>
18961896 <div class="informaltable"><table width="100%" border="0">
18971897 <colgroup>
18981898 <col width="150px" class="parameters_name">
19071907 </table></div>
19081908 </div>
19091909 <div class="refsect3">
1910 <a name="id-1.3.57.7.53.6"></a><h4>Returns</h4>
1910 <a name="id-1.3.58.7.53.6"></a><h4>Returns</h4>
19111911 <p> <em class="parameter"><code>in</code></em>
19121912 byte-swapped.</p>
19131913 <p></p>
19211921 <p>Convert 32-bit floating point value (float) from native byte order into
19221922 big endian byte order.</p>
19231923 <div class="refsect3">
1924 <a name="id-1.3.57.7.54.5"></a><h4>Parameters</h4>
1924 <a name="id-1.3.58.7.54.5"></a><h4>Parameters</h4>
19251925 <div class="informaltable"><table width="100%" border="0">
19261926 <colgroup>
19271927 <col width="150px" class="parameters_name">
19441944 <p>Convert 32-bit floating point value (float) from native byte order into
19451945 little endian byte order.</p>
19461946 <div class="refsect3">
1947 <a name="id-1.3.57.7.55.5"></a><h4>Parameters</h4>
1947 <a name="id-1.3.58.7.55.5"></a><h4>Parameters</h4>
19481948 <div class="informaltable"><table width="100%" border="0">
19491949 <colgroup>
19501950 <col width="150px" class="parameters_name">
19671967 <p>Convert <em class="parameter"><code>value</code></em>
19681968 to a gdouble.</p>
19691969 <div class="refsect3">
1970 <a name="id-1.3.57.7.56.5"></a><h4>Parameters</h4>
1970 <a name="id-1.3.58.7.56.5"></a><h4>Parameters</h4>
19711971 <div class="informaltable"><table width="100%" border="0">
19721972 <colgroup>
19731973 <col width="150px" class="parameters_name">
19821982 </table></div>
19831983 </div>
19841984 <div class="refsect3">
1985 <a name="id-1.3.57.7.56.6"></a><h4>Returns</h4>
1985 <a name="id-1.3.58.7.56.6"></a><h4>Returns</h4>
19861986 <p> <em class="parameter"><code>value</code></em>
19871987 converted to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.</p>
19881988 <p></p>
19961996 <p>Convert <em class="parameter"><code>value</code></em>
19971997 to a guint64.</p>
19981998 <div class="refsect3">
1999 <a name="id-1.3.57.7.57.5"></a><h4>Parameters</h4>
1999 <a name="id-1.3.58.7.57.5"></a><h4>Parameters</h4>
20002000 <div class="informaltable"><table width="100%" border="0">
20012001 <colgroup>
20022002 <col width="150px" class="parameters_name">
20112011 </table></div>
20122012 </div>
20132013 <div class="refsect3">
2014 <a name="id-1.3.57.7.57.6"></a><h4>Returns</h4>
2014 <a name="id-1.3.58.7.57.6"></a><h4>Returns</h4>
20152015 <p> <em class="parameter"><code>value</code></em>
20162016 converted to a <span class="type">guint64</span>.</p>
20172017 <p></p>
20252025 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
20262026 <p>Dumps the memory block into a hex representation. Useful for debugging.</p>
20272027 <div class="refsect3">
2028 <a name="id-1.3.57.7.58.5"></a><h4>Parameters</h4>
2028 <a name="id-1.3.58.7.58.5"></a><h4>Parameters</h4>
20292029 <div class="informaltable"><table width="100%" border="0">
20302030 <colgroup>
20312031 <col width="150px" class="parameters_name">
20622062 <p>This function can potentially be very slow if val and num are both
20632063 greater than G_MAXUINT32.</p>
20642064 <div class="refsect3">
2065 <a name="id-1.3.57.7.59.6"></a><h4>Parameters</h4>
2065 <a name="id-1.3.58.7.59.6"></a><h4>Parameters</h4>
20662066 <div class="informaltable"><table width="100%" border="0">
20672067 <colgroup>
20682068 <col width="150px" class="parameters_name">
20892089 </table></div>
20902090 </div>
20912091 <div class="refsect3">
2092 <a name="id-1.3.57.7.59.7"></a><h4>Returns</h4>
2092 <a name="id-1.3.58.7.59.7"></a><h4>Returns</h4>
20932093 <p> <em class="parameter"><code>val</code></em>
20942094 * <em class="parameter"><code>num</code></em>
20952095 / <em class="parameter"><code>denom</code></em>
21172117 <p>This function can potentially be very slow if val and num are both
21182118 greater than G_MAXUINT32.</p>
21192119 <div class="refsect3">
2120 <a name="id-1.3.57.7.60.6"></a><h4>Parameters</h4>
2120 <a name="id-1.3.58.7.60.6"></a><h4>Parameters</h4>
21212121 <div class="informaltable"><table width="100%" border="0">
21222122 <colgroup>
21232123 <col width="150px" class="parameters_name">
21442144 </table></div>
21452145 </div>
21462146 <div class="refsect3">
2147 <a name="id-1.3.57.7.60.7"></a><h4>Returns</h4>
2147 <a name="id-1.3.58.7.60.7"></a><h4>Returns</h4>
21482148 <p> <em class="parameter"><code>val</code></em>
21492149 * <em class="parameter"><code>num</code></em>
21502150 / <em class="parameter"><code>denom</code></em>
21722172 <p>This function can potentially be very slow if val and num are both
21732173 greater than G_MAXUINT32.</p>
21742174 <div class="refsect3">
2175 <a name="id-1.3.57.7.61.6"></a><h4>Parameters</h4>
2175 <a name="id-1.3.58.7.61.6"></a><h4>Parameters</h4>
21762176 <div class="informaltable"><table width="100%" border="0">
21772177 <colgroup>
21782178 <col width="150px" class="parameters_name">
21992199 </table></div>
22002200 </div>
22012201 <div class="refsect3">
2202 <a name="id-1.3.57.7.61.7"></a><h4>Returns</h4>
2202 <a name="id-1.3.58.7.61.7"></a><h4>Returns</h4>
22032203 <p> <em class="parameter"><code>val</code></em>
22042204 * <em class="parameter"><code>num</code></em>
22052205 / <em class="parameter"><code>denom</code></em>
22282228 <em class="parameter"><code>denom</code></em>
22292229 must be positive.</p>
22302230 <div class="refsect3">
2231 <a name="id-1.3.57.7.62.5"></a><h4>Parameters</h4>
2231 <a name="id-1.3.58.7.62.5"></a><h4>Parameters</h4>
22322232 <div class="informaltable"><table width="100%" border="0">
22332233 <colgroup>
22342234 <col width="150px" class="parameters_name">
22552255 </table></div>
22562256 </div>
22572257 <div class="refsect3">
2258 <a name="id-1.3.57.7.62.6"></a><h4>Returns</h4>
2258 <a name="id-1.3.58.7.62.6"></a><h4>Returns</h4>
22592259 <p> <em class="parameter"><code>val</code></em>
22602260 * <em class="parameter"><code>num</code></em>
22612261 / <em class="parameter"><code>denom</code></em>
22842284 <em class="parameter"><code>denom</code></em>
22852285 must be positive.</p>
22862286 <div class="refsect3">
2287 <a name="id-1.3.57.7.63.5"></a><h4>Parameters</h4>
2287 <a name="id-1.3.58.7.63.5"></a><h4>Parameters</h4>
22882288 <div class="informaltable"><table width="100%" border="0">
22892289 <colgroup>
22902290 <col width="150px" class="parameters_name">
23112311 </table></div>
23122312 </div>
23132313 <div class="refsect3">
2314 <a name="id-1.3.57.7.63.6"></a><h4>Returns</h4>
2314 <a name="id-1.3.58.7.63.6"></a><h4>Returns</h4>
23152315 <p> <em class="parameter"><code>val</code></em>
23162316 * <em class="parameter"><code>num</code></em>
23172317 / <em class="parameter"><code>denom</code></em>
23402340 <em class="parameter"><code>denom</code></em>
23412341 must be positive.</p>
23422342 <div class="refsect3">
2343 <a name="id-1.3.57.7.64.5"></a><h4>Parameters</h4>
2343 <a name="id-1.3.58.7.64.5"></a><h4>Parameters</h4>
23442344 <div class="informaltable"><table width="100%" border="0">
23452345 <colgroup>
23462346 <col width="150px" class="parameters_name">
23672367 </table></div>
23682368 </div>
23692369 <div class="refsect3">
2370 <a name="id-1.3.57.7.64.6"></a><h4>Returns</h4>
2370 <a name="id-1.3.58.7.64.6"></a><h4>Returns</h4>
23712371 <p> <em class="parameter"><code>val</code></em>
23722372 * <em class="parameter"><code>num</code></em>
23732373 / <em class="parameter"><code>denom</code></em>
23912391 and <em class="parameter"><code>b</code></em>
23922392 .</p>
23932393 <div class="refsect3">
2394 <a name="id-1.3.57.7.65.5"></a><h4>Parameters</h4>
2394 <a name="id-1.3.58.7.65.5"></a><h4>Parameters</h4>
23952395 <div class="informaltable"><table width="100%" border="0">
23962396 <colgroup>
23972397 <col width="150px" class="parameters_name">
24132413 </table></div>
24142414 </div>
24152415 <div class="refsect3">
2416 <a name="id-1.3.57.7.65.6"></a><h4>Returns</h4>
2416 <a name="id-1.3.58.7.65.6"></a><h4>Returns</h4>
24172417 <p> Greatest common divisor of <em class="parameter"><code>a</code></em>
24182418 and <em class="parameter"><code>b</code></em>
24192419 </p>
24322432 and <em class="parameter"><code>b</code></em>
24332433 .</p>
24342434 <div class="refsect3">
2435 <a name="id-1.3.57.7.66.5"></a><h4>Parameters</h4>
2435 <a name="id-1.3.58.7.66.5"></a><h4>Parameters</h4>
24362436 <div class="informaltable"><table width="100%" border="0">
24372437 <colgroup>
24382438 <col width="150px" class="parameters_name">
24542454 </table></div>
24552455 </div>
24562456 <div class="refsect3">
2457 <a name="id-1.3.57.7.66.6"></a><h4>Returns</h4>
2457 <a name="id-1.3.58.7.66.6"></a><h4>Returns</h4>
24582458 <p> Greatest common divisor of <em class="parameter"><code>a</code></em>
24592459 and <em class="parameter"><code>b</code></em>
24602460 </p>
24702470 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *dest</code></em>);</pre>
24712471 <p>Transforms a fraction to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.</p>
24722472 <div class="refsect3">
2473 <a name="id-1.3.57.7.67.5"></a><h4>Parameters</h4>
2473 <a name="id-1.3.58.7.67.5"></a><h4>Parameters</h4>
24742474 <div class="informaltable"><table width="100%" border="0">
24752475 <colgroup>
24762476 <col width="150px" class="parameters_name">
25072507 <p>Transforms a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> to a fraction and simplifies
25082508 the result.</p>
25092509 <div class="refsect3">
2510 <a name="id-1.3.57.7.68.5"></a><h4>Parameters</h4>
2510 <a name="id-1.3.58.7.68.5"></a><h4>Parameters</h4>
25112511 <div class="informaltable"><table width="100%" border="0">
25122512 <colgroup>
25132513 <col width="150px" class="parameters_name">
25532553 and <em class="parameter"><code>res_d</code></em>
25542554 .</p>
25552555 <div class="refsect3">
2556 <a name="id-1.3.57.7.69.5"></a><h4>Parameters</h4>
2556 <a name="id-1.3.58.7.69.5"></a><h4>Parameters</h4>
25572557 <div class="informaltable"><table width="100%" border="0">
25582558 <colgroup>
25592559 <col width="150px" class="parameters_name">
25952595 </table></div>
25962596 </div>
25972597 <div class="refsect3">
2598 <a name="id-1.3.57.7.69.6"></a><h4>Returns</h4>
2598 <a name="id-1.3.58.7.69.6"></a><h4>Returns</h4>
25992599 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on overflow, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
26002600 <p></p>
26012601 </div>
26192619 and <em class="parameter"><code>res_d</code></em>
26202620 .</p>
26212621 <div class="refsect3">
2622 <a name="id-1.3.57.7.70.5"></a><h4>Parameters</h4>
2622 <a name="id-1.3.58.7.70.5"></a><h4>Parameters</h4>
26232623 <div class="informaltable"><table width="100%" border="0">
26242624 <colgroup>
26252625 <col width="150px" class="parameters_name">
26612661 </table></div>
26622662 </div>
26632663 <div class="refsect3">
2664 <a name="id-1.3.57.7.70.6"></a><h4>Returns</h4>
2664 <a name="id-1.3.58.7.70.6"></a><h4>Returns</h4>
26652665 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on overflow, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
26662666 <p></p>
26672667 </div>
26812681 and returns
26822682 -1 if a &lt; b, 0 if a = b and 1 if a &gt; b.</p>
26832683 <div class="refsect3">
2684 <a name="id-1.3.57.7.71.5"></a><h4>Parameters</h4>
2684 <a name="id-1.3.58.7.71.5"></a><h4>Parameters</h4>
26852685 <div class="informaltable"><table width="100%" border="0">
26862686 <colgroup>
26872687 <col width="150px" class="parameters_name">
27132713 </table></div>
27142714 </div>
27152715 <div class="refsect3">
2716 <a name="id-1.3.57.7.71.6"></a><h4>Returns</h4>
2716 <a name="id-1.3.58.7.71.6"></a><h4>Returns</h4>
27172717 <p> -1 if a &lt; b; 0 if a = b; 1 if a &gt; b.</p>
27182718 <p></p>
27192719 </div>
27292729 on a segment-done message to be the same as that of the last seek event, to
27302730 indicate that event and the message correspond to the same segment.</p>
27312731 <div class="refsect3">
2732 <a name="id-1.3.57.7.72.6"></a><h4>Returns</h4>
2732 <a name="id-1.3.58.7.72.6"></a><h4>Returns</h4>
27332733 <p> A constantly incrementing 32-bit unsigned integer, which might
27342734 overflow back to 0 at some point. Use <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-compare" title="gst_util_seqnum_compare ()"><code class="function">gst_util_seqnum_compare()</code></a> to make sure
27352735 you handle wraparound correctly.</p>
27472747 - <em class="parameter"><code>s2</code></em>
27482748 ).</p>
27492749 <div class="refsect3">
2750 <a name="id-1.3.57.7.73.6"></a><h4>Parameters</h4>
2750 <a name="id-1.3.58.7.73.6"></a><h4>Parameters</h4>
27512751 <div class="informaltable"><table width="100%" border="0">
27522752 <colgroup>
27532753 <col width="150px" class="parameters_name">
27692769 </table></div>
27702770 </div>
27712771 <div class="refsect3">
2772 <a name="id-1.3.57.7.73.7"></a><h4>Returns</h4>
2772 <a name="id-1.3.58.7.73.7"></a><h4>Returns</h4>
27732773 <p> A negative number if <em class="parameter"><code>s1</code></em>
27742774 is before <em class="parameter"><code>s2</code></em>
27752775 , 0 if they are equal, or a
27882788 <p>This function is used to generate a new group-id for the
27892789 stream-start event.</p>
27902790 <div class="refsect3">
2791 <a name="id-1.3.57.7.74.6"></a><h4>Returns</h4>
2791 <a name="id-1.3.58.7.74.6"></a><h4>Returns</h4>
27922792 <p> A constantly incrementing unsigned integer, which might
27932793 overflow back to 0 at some point.</p>
27942794 <p></p>
28092809 or when <em class="parameter"><code>value</code></em>
28102810 cannot be converted to the type of the property.</p>
28112811 <div class="refsect3">
2812 <a name="id-1.3.57.7.75.6"></a><h4>Parameters</h4>
2812 <a name="id-1.3.58.7.75.6"></a><h4>Parameters</h4>
28132813 <div class="informaltable"><table width="100%" border="0">
28142814 <colgroup>
28152815 <col width="150px" class="parameters_name">
28472847 <p>Note that this function is dangerous as it does not return any indication
28482848 if the conversion worked or not.</p>
28492849 <div class="refsect3">
2850 <a name="id-1.3.57.7.76.6"></a><h4>Parameters</h4>
2850 <a name="id-1.3.58.7.76.6"></a><h4>Parameters</h4>
28512851 <div class="informaltable"><table width="100%" border="0">
28522852 <colgroup>
28532853 <col width="150px" class="parameters_name">
28772877 <p>Get a timestamp as GstClockTime to be used for interval measurements.
28782878 The timestamp should not be interpreted in any other way.</p>
28792879 <div class="refsect3">
2880 <a name="id-1.3.57.7.77.5"></a><h4>Returns</h4>
2880 <a name="id-1.3.58.7.77.5"></a><h4>Returns</h4>
28812881 <p> the timestamp</p>
28822882 <p></p>
28832883 </div>
29062906 has the same type as the array elements.</p>
29072907 <p>The complexity of this search function is O(log (num_elements)).</p>
29082908 <div class="refsect3">
2909 <a name="id-1.3.57.7.78.7"></a><h4>Parameters</h4>
2909 <a name="id-1.3.58.7.78.7"></a><h4>Parameters</h4>
29102910 <div class="informaltable"><table width="100%" border="0">
29112911 <colgroup>
29122912 <col width="150px" class="parameters_name">
29552955 </table></div>
29562956 </div>
29572957 <div class="refsect3">
2958 <a name="id-1.3.57.7.78.8"></a><h4>Returns</h4>
2958 <a name="id-1.3.58.7.78.8"></a><h4>Returns</h4>
29592959 <p> The address of the found
29602960 element or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if nothing was found. </p>
29612961 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
29682968 <a name="GstSearchMode"></a><h3>enum GstSearchMode</h3>
29692969 <p>The different search modes.</p>
29702970 <div class="refsect3">
2971 <a name="id-1.3.57.8.2.4"></a><h4>Members</h4>
2971 <a name="id-1.3.58.8.2.4"></a><h4>Members</h4>
29722972 <div class="informaltable"><table width="100%" border="0">
29732973 <colgroup>
29742974 <col width="300px" class="enum_members_name">
751751 </div>
752752
753753 <div class="refsect3">
754 <a name="id-1.3.58.7.2.6"></a><h4>Parameters</h4>
754 <a name="id-1.3.59.7.2.6"></a><h4>Parameters</h4>
755755 <div class="informaltable"><table width="100%" border="0">
756756 <colgroup>
757757 <col width="150px" class="parameters_name">
804804 </div>
805805
806806 <div class="refsect3">
807 <a name="id-1.3.58.7.3.6"></a><h4>Parameters</h4>
807 <a name="id-1.3.59.7.3.6"></a><h4>Parameters</h4>
808808 <div class="informaltable"><table width="100%" border="0">
809809 <colgroup>
810810 <col width="150px" class="parameters_name">
826826 <p>Can be used together with <a class="link" href="gstreamer-GstValue.html#GST-FOURCC-FORMAT:CAPS" title="GST_FOURCC_FORMAT"><span class="type">GST_FOURCC_FORMAT</span></a> to properly output a
827827 <span class="type">guint32</span> fourcc value in a <code class="function">printf()</code>-style text message.</p>
828828 <div class="refsect3">
829 <a name="id-1.3.58.7.4.5"></a><h4>Parameters</h4>
829 <a name="id-1.3.59.7.4.5"></a><h4>Parameters</h4>
830830 <div class="informaltable"><table width="100%" border="0">
831831 <colgroup>
832832 <col width="150px" class="parameters_name">
848848 </pre>
849849 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-INT-RANGE:CAPS" title="GST_TYPE_INT_RANGE"><span class="type">GST_TYPE_INT_RANGE</span></a> value.</p>
850850 <div class="refsect3">
851 <a name="id-1.3.58.7.5.5"></a><h4>Parameters</h4>
851 <a name="id-1.3.59.7.5.5"></a><h4>Parameters</h4>
852852 <div class="informaltable"><table width="100%" border="0">
853853 <colgroup>
854854 <col width="150px" class="parameters_name">
870870 </pre>
871871 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents an integer range</p>
872872 <div class="refsect3">
873 <a name="id-1.3.58.7.6.5"></a><h4>Returns</h4>
873 <a name="id-1.3.59.7.6.5"></a><h4>Returns</h4>
874874 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstIntRange</p>
875875 <p></p>
876876 </div>
887887 and <em class="parameter"><code>end</code></em>
888888 .</p>
889889 <div class="refsect3">
890 <a name="id-1.3.58.7.7.5"></a><h4>Parameters</h4>
890 <a name="id-1.3.59.7.7.5"></a><h4>Parameters</h4>
891891 <div class="informaltable"><table width="100%" border="0">
892892 <colgroup>
893893 <col width="150px" class="parameters_name">
922922 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
923923 .</p>
924924 <div class="refsect3">
925 <a name="id-1.3.58.7.8.5"></a><h4>Parameters</h4>
925 <a name="id-1.3.59.7.8.5"></a><h4>Parameters</h4>
926926 <div class="informaltable"><table width="100%" border="0">
927927 <colgroup>
928928 <col width="150px" class="parameters_name">
937937 </table></div>
938938 </div>
939939 <div class="refsect3">
940 <a name="id-1.3.58.7.8.6"></a><h4>Returns</h4>
940 <a name="id-1.3.59.7.8.6"></a><h4>Returns</h4>
941941 <p> the minimum of the range</p>
942942 <p></p>
943943 </div>
950950 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
951951 .</p>
952952 <div class="refsect3">
953 <a name="id-1.3.58.7.9.5"></a><h4>Parameters</h4>
953 <a name="id-1.3.59.7.9.5"></a><h4>Parameters</h4>
954954 <div class="informaltable"><table width="100%" border="0">
955955 <colgroup>
956956 <col width="150px" class="parameters_name">
965965 </table></div>
966966 </div>
967967 <div class="refsect3">
968 <a name="id-1.3.58.7.9.6"></a><h4>Returns</h4>
968 <a name="id-1.3.59.7.9.6"></a><h4>Returns</h4>
969969 <p> the maximum of the range</p>
970970 <p></p>
971971 </div>
984984 and <em class="parameter"><code>step</code></em>
985985 .</p>
986986 <div class="refsect3">
987 <a name="id-1.3.58.7.10.5"></a><h4>Parameters</h4>
987 <a name="id-1.3.59.7.10.5"></a><h4>Parameters</h4>
988988 <div class="informaltable"><table width="100%" border="0">
989989 <colgroup>
990990 <col width="150px" class="parameters_name">
10241024 <p>Gets the step of the range specified by <em class="parameter"><code>value</code></em>
10251025 .</p>
10261026 <div class="refsect3">
1027 <a name="id-1.3.58.7.11.5"></a><h4>Parameters</h4>
1027 <a name="id-1.3.59.7.11.5"></a><h4>Parameters</h4>
10281028 <div class="informaltable"><table width="100%" border="0">
10291029 <colgroup>
10301030 <col width="150px" class="parameters_name">
10391039 </table></div>
10401040 </div>
10411041 <div class="refsect3">
1042 <a name="id-1.3.58.7.11.6"></a><h4>Returns</h4>
1042 <a name="id-1.3.59.7.11.6"></a><h4>Returns</h4>
10431043 <p> the step of the range</p>
10441044 <p></p>
10451045 </div>
10511051 </pre>
10521052 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS" title="GST_TYPE_BITMASK"><span class="type">GST_TYPE_BITMASK</span></a> value.</p>
10531053 <div class="refsect3">
1054 <a name="id-1.3.58.7.12.5"></a><h4>Parameters</h4>
1054 <a name="id-1.3.59.7.12.5"></a><h4>Parameters</h4>
10551055 <div class="informaltable"><table width="100%" border="0">
10561056 <colgroup>
10571057 <col width="150px" class="parameters_name">
10731073 </pre>
10741074 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a 64-bit bitmask.</p>
10751075 <div class="refsect3">
1076 <a name="id-1.3.58.7.13.5"></a><h4>Returns</h4>
1076 <a name="id-1.3.59.7.13.5"></a><h4>Returns</h4>
10771077 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstBitmask (which is not explicitly typed)</p>
10781078 <p></p>
10791079 </div>
10881088 to the bitmask specified by <em class="parameter"><code>bitmask</code></em>
10891089 .</p>
10901090 <div class="refsect3">
1091 <a name="id-1.3.58.7.14.5"></a><h4>Parameters</h4>
1091 <a name="id-1.3.59.7.14.5"></a><h4>Parameters</h4>
10921092 <div class="informaltable"><table width="100%" border="0">
10931093 <colgroup>
10941094 <col width="150px" class="parameters_name">
11181118 <p>Gets the bitmask specified by <em class="parameter"><code>value</code></em>
11191119 .</p>
11201120 <div class="refsect3">
1121 <a name="id-1.3.58.7.15.5"></a><h4>Parameters</h4>
1121 <a name="id-1.3.59.7.15.5"></a><h4>Parameters</h4>
11221122 <div class="informaltable"><table width="100%" border="0">
11231123 <colgroup>
11241124 <col width="150px" class="parameters_name">
11331133 </table></div>
11341134 </div>
11351135 <div class="refsect3">
1136 <a name="id-1.3.58.7.15.6"></a><h4>Returns</h4>
1136 <a name="id-1.3.59.7.15.6"></a><h4>Returns</h4>
11371137 <p> the bitmask.</p>
11381138 <p></p>
11391139 </div>
11451145 </pre>
11461146 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS" title="GST_TYPE_INT64_RANGE"><span class="type">GST_TYPE_INT64_RANGE</span></a> value.</p>
11471147 <div class="refsect3">
1148 <a name="id-1.3.58.7.16.5"></a><h4>Parameters</h4>
1148 <a name="id-1.3.59.7.16.5"></a><h4>Parameters</h4>
11491149 <div class="informaltable"><table width="100%" border="0">
11501150 <colgroup>
11511151 <col width="150px" class="parameters_name">
11671167 </pre>
11681168 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents an <span class="type">gint64</span> range</p>
11691169 <div class="refsect3">
1170 <a name="id-1.3.58.7.17.5"></a><h4>Returns</h4>
1170 <a name="id-1.3.59.7.17.5"></a><h4>Returns</h4>
11711171 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstInt64Range</p>
11721172 <p></p>
11731173 </div>
11841184 and <em class="parameter"><code>end</code></em>
11851185 .</p>
11861186 <div class="refsect3">
1187 <a name="id-1.3.58.7.18.5"></a><h4>Parameters</h4>
1187 <a name="id-1.3.59.7.18.5"></a><h4>Parameters</h4>
11881188 <div class="informaltable"><table width="100%" border="0">
11891189 <colgroup>
11901190 <col width="150px" class="parameters_name">
12191219 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
12201220 .</p>
12211221 <div class="refsect3">
1222 <a name="id-1.3.58.7.19.5"></a><h4>Parameters</h4>
1222 <a name="id-1.3.59.7.19.5"></a><h4>Parameters</h4>
12231223 <div class="informaltable"><table width="100%" border="0">
12241224 <colgroup>
12251225 <col width="150px" class="parameters_name">
12341234 </table></div>
12351235 </div>
12361236 <div class="refsect3">
1237 <a name="id-1.3.58.7.19.6"></a><h4>Returns</h4>
1237 <a name="id-1.3.59.7.19.6"></a><h4>Returns</h4>
12381238 <p> the minimum of the range</p>
12391239 <p></p>
12401240 </div>
12471247 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
12481248 .</p>
12491249 <div class="refsect3">
1250 <a name="id-1.3.58.7.20.5"></a><h4>Parameters</h4>
1250 <a name="id-1.3.59.7.20.5"></a><h4>Parameters</h4>
12511251 <div class="informaltable"><table width="100%" border="0">
12521252 <colgroup>
12531253 <col width="150px" class="parameters_name">
12621262 </table></div>
12631263 </div>
12641264 <div class="refsect3">
1265 <a name="id-1.3.58.7.20.6"></a><h4>Returns</h4>
1265 <a name="id-1.3.59.7.20.6"></a><h4>Returns</h4>
12661266 <p> the maximum of the range</p>
12671267 <p></p>
12681268 </div>
12811281 and <em class="parameter"><code>step</code></em>
12821282 .</p>
12831283 <div class="refsect3">
1284 <a name="id-1.3.58.7.21.5"></a><h4>Parameters</h4>
1284 <a name="id-1.3.59.7.21.5"></a><h4>Parameters</h4>
12851285 <div class="informaltable"><table width="100%" border="0">
12861286 <colgroup>
12871287 <col width="150px" class="parameters_name">
13211321 <p>Gets the step of the range specified by <em class="parameter"><code>value</code></em>
13221322 .</p>
13231323 <div class="refsect3">
1324 <a name="id-1.3.58.7.22.5"></a><h4>Parameters</h4>
1324 <a name="id-1.3.59.7.22.5"></a><h4>Parameters</h4>
13251325 <div class="informaltable"><table width="100%" border="0">
13261326 <colgroup>
13271327 <col width="150px" class="parameters_name">
13361336 </table></div>
13371337 </div>
13381338 <div class="refsect3">
1339 <a name="id-1.3.58.7.22.6"></a><h4>Returns</h4>
1339 <a name="id-1.3.59.7.22.6"></a><h4>Returns</h4>
13401340 <p> the step of the range</p>
13411341 <p></p>
13421342 </div>
13481348 </pre>
13491349 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-DOUBLE-RANGE:CAPS" title="GST_TYPE_DOUBLE_RANGE"><span class="type">GST_TYPE_DOUBLE_RANGE</span></a> value.</p>
13501350 <div class="refsect3">
1351 <a name="id-1.3.58.7.23.5"></a><h4>Parameters</h4>
1351 <a name="id-1.3.59.7.23.5"></a><h4>Parameters</h4>
13521352 <div class="informaltable"><table width="100%" border="0">
13531353 <colgroup>
13541354 <col width="150px" class="parameters_name">
13701370 </pre>
13711371 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a floating point range with double precision</p>
13721372 <div class="refsect3">
1373 <a name="id-1.3.58.7.24.5"></a><h4>Returns</h4>
1373 <a name="id-1.3.59.7.24.5"></a><h4>Returns</h4>
13741374 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstIntRange</p>
13751375 <p></p>
13761376 </div>
13871387 and <em class="parameter"><code>end</code></em>
13881388 .</p>
13891389 <div class="refsect3">
1390 <a name="id-1.3.58.7.25.5"></a><h4>Parameters</h4>
1390 <a name="id-1.3.59.7.25.5"></a><h4>Parameters</h4>
13911391 <div class="informaltable"><table width="100%" border="0">
13921392 <colgroup>
13931393 <col width="150px" class="parameters_name">
14221422 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
14231423 .</p>
14241424 <div class="refsect3">
1425 <a name="id-1.3.58.7.26.5"></a><h4>Parameters</h4>
1425 <a name="id-1.3.59.7.26.5"></a><h4>Parameters</h4>
14261426 <div class="informaltable"><table width="100%" border="0">
14271427 <colgroup>
14281428 <col width="150px" class="parameters_name">
14371437 </table></div>
14381438 </div>
14391439 <div class="refsect3">
1440 <a name="id-1.3.58.7.26.6"></a><h4>Returns</h4>
1440 <a name="id-1.3.59.7.26.6"></a><h4>Returns</h4>
14411441 <p> the minimum of the range</p>
14421442 <p></p>
14431443 </div>
14501450 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
14511451 .</p>
14521452 <div class="refsect3">
1453 <a name="id-1.3.58.7.27.5"></a><h4>Parameters</h4>
1453 <a name="id-1.3.59.7.27.5"></a><h4>Parameters</h4>
14541454 <div class="informaltable"><table width="100%" border="0">
14551455 <colgroup>
14561456 <col width="150px" class="parameters_name">
14651465 </table></div>
14661466 </div>
14671467 <div class="refsect3">
1468 <a name="id-1.3.58.7.27.6"></a><h4>Returns</h4>
1468 <a name="id-1.3.59.7.27.6"></a><h4>Returns</h4>
14691469 <p> the maximum of the range</p>
14701470 <p></p>
14711471 </div>
14771477 </pre>
14781478 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST"><span class="type">GST_TYPE_LIST</span></a> value.</p>
14791479 <div class="refsect3">
1480 <a name="id-1.3.58.7.28.5"></a><h4>Parameters</h4>
1480 <a name="id-1.3.59.7.28.5"></a><h4>Parameters</h4>
14811481 <div class="informaltable"><table width="100%" border="0">
14821482 <colgroup>
14831483 <col width="150px" class="parameters_name">
15031503 will be chosen in the end. This means that all values in the list are
15041504 meaningful on their own.</p>
15051505 <div class="refsect3">
1506 <a name="id-1.3.58.7.29.5"></a><h4>Returns</h4>
1506 <a name="id-1.3.59.7.29.5"></a><h4>Returns</h4>
15071507 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstValueList (which is not explicitly typed)</p>
15081508 <p></p>
15091509 </div>
15151515 </pre>
15161516 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-ARRAY:CAPS" title="GST_TYPE_ARRAY"><span class="type">GST_TYPE_ARRAY</span></a> value.</p>
15171517 <div class="refsect3">
1518 <a name="id-1.3.58.7.30.5"></a><h4>Parameters</h4>
1518 <a name="id-1.3.59.7.30.5"></a><h4>Parameters</h4>
15191519 <div class="informaltable"><table width="100%" border="0">
15201520 <colgroup>
15211521 <col width="150px" class="parameters_name">
15421542 used for example to express channel layouts for multichannel audio where
15431543 each channel needs to be mapped to a position in the room.</p>
15441544 <div class="refsect3">
1545 <a name="id-1.3.58.7.31.5"></a><h4>Returns</h4>
1545 <a name="id-1.3.59.7.31.5"></a><h4>Returns</h4>
15461546 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstArrayList (which is not explicitly typed)</p>
15471547 <p></p>
15481548 </div>
15571557 to the GstValueList in <em class="parameter"><code>value</code></em>
15581558 .</p>
15591559 <div class="refsect3">
1560 <a name="id-1.3.58.7.32.5"></a><h4>Parameters</h4>
1560 <a name="id-1.3.59.7.32.5"></a><h4>Parameters</h4>
15611561 <div class="informaltable"><table width="100%" border="0">
15621562 <colgroup>
15631563 <col width="150px" class="parameters_name">
15891589 to the GstValueList in <em class="parameter"><code>value</code></em>
15901590 .</p>
15911591 <div class="refsect3">
1592 <a name="id-1.3.58.7.33.5"></a><h4>Parameters</h4>
1592 <a name="id-1.3.59.7.33.5"></a><h4>Parameters</h4>
15931593 <div class="informaltable"><table width="100%" border="0">
15941594 <colgroup>
15951595 <col width="150px" class="parameters_name">
16221622 to the GstValueList in <em class="parameter"><code>value</code></em>
16231623 .</p>
16241624 <div class="refsect3">
1625 <a name="id-1.3.58.7.34.5"></a><h4>Parameters</h4>
1625 <a name="id-1.3.59.7.34.5"></a><h4>Parameters</h4>
16261626 <div class="informaltable"><table width="100%" border="0">
16271627 <colgroup>
16281628 <col width="150px" class="parameters_name">
16581658 <em class="parameter"><code>dest</code></em>
16591659 will be initialized to the type <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST"><span class="type">GST_TYPE_LIST</span></a>.</p>
16601660 <div class="refsect3">
1661 <a name="id-1.3.58.7.35.5"></a><h4>Parameters</h4>
1661 <a name="id-1.3.59.7.35.5"></a><h4>Parameters</h4>
16621662 <div class="informaltable"><table width="100%" border="0">
16631663 <colgroup>
16641664 <col width="150px" class="parameters_name">
17031703
17041704 were equal).</p>
17051705 <div class="refsect3">
1706 <a name="id-1.3.58.7.36.6"></a><h4>Parameters</h4>
1706 <a name="id-1.3.59.7.36.6"></a><h4>Parameters</h4>
17071707 <div class="informaltable"><table width="100%" border="0">
17081708 <colgroup>
17091709 <col width="150px" class="parameters_name">
17381738 <p>Gets the number of values contained in <em class="parameter"><code>value</code></em>
17391739 .</p>
17401740 <div class="refsect3">
1741 <a name="id-1.3.58.7.37.5"></a><h4>Parameters</h4>
1741 <a name="id-1.3.59.7.37.5"></a><h4>Parameters</h4>
17421742 <div class="informaltable"><table width="100%" border="0">
17431743 <colgroup>
17441744 <col width="150px" class="parameters_name">
17531753 </table></div>
17541754 </div>
17551755 <div class="refsect3">
1756 <a name="id-1.3.58.7.37.6"></a><h4>Returns</h4>
1756 <a name="id-1.3.59.7.37.6"></a><h4>Returns</h4>
17571757 <p> the number of values</p>
17581758 <p></p>
17591759 </div>
17691769 has the index <em class="parameter"><code>index</code></em>
17701770 .</p>
17711771 <div class="refsect3">
1772 <a name="id-1.3.58.7.38.5"></a><h4>Parameters</h4>
1772 <a name="id-1.3.59.7.38.5"></a><h4>Parameters</h4>
17731773 <div class="informaltable"><table width="100%" border="0">
17741774 <colgroup>
17751775 <col width="150px" class="parameters_name">
17911791 </table></div>
17921792 </div>
17931793 <div class="refsect3">
1794 <a name="id-1.3.58.7.38.6"></a><h4>Returns</h4>
1794 <a name="id-1.3.59.7.38.6"></a><h4>Returns</h4>
17951795 <p> the value at the given index. </p>
17961796 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
17971797 </div>
18031803 </pre>
18041804 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS" title="GST_TYPE_FRACTION"><span class="type">GST_TYPE_FRACTION</span></a> value.</p>
18051805 <div class="refsect3">
1806 <a name="id-1.3.58.7.39.5"></a><h4>Parameters</h4>
1806 <a name="id-1.3.59.7.39.5"></a><h4>Parameters</h4>
18071807 <div class="informaltable"><table width="100%" border="0">
18081808 <colgroup>
18091809 <col width="150px" class="parameters_name">
18261826 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a fraction of an integer numerator over
18271827 an integer denominator</p>
18281828 <div class="refsect3">
1829 <a name="id-1.3.58.7.40.5"></a><h4>Returns</h4>
1829 <a name="id-1.3.59.7.40.5"></a><h4>Returns</h4>
18301830 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstFraction (which is not explicitly typed)</p>
18311831 <p></p>
18321832 </div>
18451845 The fraction gets reduced to the smallest numerator and denominator,
18461846 and if necessary the sign is moved to the numerator.</p>
18471847 <div class="refsect3">
1848 <a name="id-1.3.58.7.41.5"></a><h4>Parameters</h4>
1848 <a name="id-1.3.59.7.41.5"></a><h4>Parameters</h4>
18491849 <div class="informaltable"><table width="100%" border="0">
18501850 <colgroup>
18511851 <col width="150px" class="parameters_name">
18801880 <p>Gets the numerator of the fraction specified by <em class="parameter"><code>value</code></em>
18811881 .</p>
18821882 <div class="refsect3">
1883 <a name="id-1.3.58.7.42.5"></a><h4>Parameters</h4>
1883 <a name="id-1.3.59.7.42.5"></a><h4>Parameters</h4>
18841884 <div class="informaltable"><table width="100%" border="0">
18851885 <colgroup>
18861886 <col width="150px" class="parameters_name">
18951895 </table></div>
18961896 </div>
18971897 <div class="refsect3">
1898 <a name="id-1.3.58.7.42.6"></a><h4>Returns</h4>
1898 <a name="id-1.3.59.7.42.6"></a><h4>Returns</h4>
18991899 <p> the numerator of the fraction.</p>
19001900 <p></p>
19011901 </div>
19081908 <p>Gets the denominator of the fraction specified by <em class="parameter"><code>value</code></em>
19091909 .</p>
19101910 <div class="refsect3">
1911 <a name="id-1.3.58.7.43.5"></a><h4>Parameters</h4>
1911 <a name="id-1.3.59.7.43.5"></a><h4>Parameters</h4>
19121912 <div class="informaltable"><table width="100%" border="0">
19131913 <colgroup>
19141914 <col width="150px" class="parameters_name">
19231923 </table></div>
19241924 </div>
19251925 <div class="refsect3">
1926 <a name="id-1.3.58.7.43.6"></a><h4>Returns</h4>
1926 <a name="id-1.3.59.7.43.6"></a><h4>Returns</h4>
19271927 <p> the denominator of the fraction.</p>
19281928 <p></p>
19291929 </div>
19391939 <em class="parameter"><code>product</code></em>
19401940 to the product of the two fractions.</p>
19411941 <div class="refsect3">
1942 <a name="id-1.3.58.7.44.5"></a><h4>Parameters</h4>
1942 <a name="id-1.3.59.7.44.5"></a><h4>Parameters</h4>
19431943 <div class="informaltable"><table width="100%" border="0">
19441944 <colgroup>
19451945 <col width="150px" class="parameters_name">
19661966 </table></div>
19671967 </div>
19681968 <div class="refsect3">
1969 <a name="id-1.3.58.7.44.6"></a><h4>Returns</h4>
1969 <a name="id-1.3.59.7.44.6"></a><h4>Returns</h4>
19701970 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> in case of an error (like integer overflow), <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
19711971 <p></p>
19721972 </div>
19831983 and sets <em class="parameter"><code>dest</code></em>
19841984 to the result.</p>
19851985 <div class="refsect3">
1986 <a name="id-1.3.58.7.45.5"></a><h4>Parameters</h4>
1986 <a name="id-1.3.59.7.45.5"></a><h4>Parameters</h4>
19871987 <div class="informaltable"><table width="100%" border="0">
19881988 <colgroup>
19891989 <col width="150px" class="parameters_name">
20102010 </table></div>
20112011 </div>
20122012 <div class="refsect3">
2013 <a name="id-1.3.58.7.45.6"></a><h4>Returns</h4>
2013 <a name="id-1.3.59.7.45.6"></a><h4>Returns</h4>
20142014 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> in case of an error (like integer overflow), <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
20152015 <p></p>
20162016 </div>
20222022 </pre>
20232023 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION-RANGE:CAPS" title="GST_TYPE_FRACTION_RANGE"><span class="type">GST_TYPE_FRACTION_RANGE</span></a> value.</p>
20242024 <div class="refsect3">
2025 <a name="id-1.3.58.7.46.5"></a><h4>Parameters</h4>
2025 <a name="id-1.3.59.7.46.5"></a><h4>Parameters</h4>
20262026 <div class="informaltable"><table width="100%" border="0">
20272027 <colgroup>
20282028 <col width="150px" class="parameters_name">
20442044 </pre>
20452045 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a GstFraction range</p>
20462046 <div class="refsect3">
2047 <a name="id-1.3.58.7.47.5"></a><h4>Returns</h4>
2047 <a name="id-1.3.59.7.47.5"></a><h4>Returns</h4>
20482048 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstFractionRange</p>
20492049 <p></p>
20502050 </div>
20612061 and <em class="parameter"><code>end</code></em>
20622062 .</p>
20632063 <div class="refsect3">
2064 <a name="id-1.3.58.7.48.5"></a><h4>Parameters</h4>
2064 <a name="id-1.3.59.7.48.5"></a><h4>Parameters</h4>
20652065 <div class="informaltable"><table width="100%" border="0">
20662066 <colgroup>
20672067 <col width="150px" class="parameters_name">
20962096 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
20972097 .</p>
20982098 <div class="refsect3">
2099 <a name="id-1.3.58.7.49.5"></a><h4>Parameters</h4>
2099 <a name="id-1.3.59.7.49.5"></a><h4>Parameters</h4>
21002100 <div class="informaltable"><table width="100%" border="0">
21012101 <colgroup>
21022102 <col width="150px" class="parameters_name">
21112111 </table></div>
21122112 </div>
21132113 <div class="refsect3">
2114 <a name="id-1.3.58.7.49.6"></a><h4>Returns</h4>
2114 <a name="id-1.3.59.7.49.6"></a><h4>Returns</h4>
21152115 <p> the minimum of the range</p>
21162116 <p></p>
21172117 </div>
21242124 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
21252125 .</p>
21262126 <div class="refsect3">
2127 <a name="id-1.3.58.7.50.5"></a><h4>Parameters</h4>
2127 <a name="id-1.3.59.7.50.5"></a><h4>Parameters</h4>
21282128 <div class="informaltable"><table width="100%" border="0">
21292129 <colgroup>
21302130 <col width="150px" class="parameters_name">
21392139 </table></div>
21402140 </div>
21412141 <div class="refsect3">
2142 <a name="id-1.3.58.7.50.6"></a><h4>Returns</h4>
2142 <a name="id-1.3.59.7.50.6"></a><h4>Returns</h4>
21432143 <p> the maximum of the range</p>
21442144 <p></p>
21452145 </div>
21612161 /<em class="parameter"><code>denominator_end</code></em>
21622162 .</p>
21632163 <div class="refsect3">
2164 <a name="id-1.3.58.7.51.5"></a><h4>Parameters</h4>
2164 <a name="id-1.3.59.7.51.5"></a><h4>Parameters</h4>
21652165 <div class="informaltable"><table width="100%" border="0">
21662166 <colgroup>
21672167 <col width="150px" class="parameters_name">
22052205 </pre>
22062206 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="GstDateTime.html#GST-TYPE-DATE-TIME:CAPS" title="GST_TYPE_DATE_TIME"><span class="type">GST_TYPE_DATE_TIME</span></a> value.</p>
22072207 <div class="refsect3">
2208 <a name="id-1.3.58.7.52.5"></a><h4>Parameters</h4>
2208 <a name="id-1.3.59.7.52.5"></a><h4>Parameters</h4>
22092209 <div class="informaltable"><table width="100%" border="0">
22102210 <colgroup>
22112211 <col width="150px" class="parameters_name">
22272227 </pre>
22282228 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_CAPS</span> value.</p>
22292229 <div class="refsect3">
2230 <a name="id-1.3.58.7.53.5"></a><h4>Parameters</h4>
2230 <a name="id-1.3.59.7.53.5"></a><h4>Parameters</h4>
22312231 <div class="informaltable"><table width="100%" border="0">
22322232 <colgroup>
22332233 <col width="150px" class="parameters_name">
22552255 will be taken by the <em class="parameter"><code>value</code></em>
22562256 .</p>
22572257 <div class="refsect3">
2258 <a name="id-1.3.58.7.54.5"></a><h4>Parameters</h4>
2258 <a name="id-1.3.59.7.54.5"></a><h4>Parameters</h4>
22592259 <div class="informaltable"><table width="100%" border="0">
22602260 <colgroup>
22612261 <col width="150px" class="parameters_name">
22882288 before getting rid of the <em class="parameter"><code>value</code></em>
22892289 .</p>
22902290 <div class="refsect3">
2291 <a name="id-1.3.58.7.55.5"></a><h4>Parameters</h4>
2291 <a name="id-1.3.59.7.55.5"></a><h4>Parameters</h4>
22922292 <div class="informaltable"><table width="100%" border="0">
22932293 <colgroup>
22942294 <col width="150px" class="parameters_name">
23032303 </table></div>
23042304 </div>
23052305 <div class="refsect3">
2306 <a name="id-1.3.58.7.55.6"></a><h4>Returns</h4>
2306 <a name="id-1.3.59.7.55.6"></a><h4>Returns</h4>
23072307 <p> the contents of <em class="parameter"><code>value</code></em>
23082308 . </p>
23092309 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
23162316 </pre>
23172317 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_CAPS_FEATURES</span> value.</p>
23182318 <div class="refsect3">
2319 <a name="id-1.3.58.7.56.5"></a><h4>Parameters</h4>
2319 <a name="id-1.3.59.7.56.5"></a><h4>Parameters</h4>
23202320 <div class="informaltable"><table width="100%" border="0">
23212321 <colgroup>
23222322 <col width="150px" class="parameters_name">
23412341 to <em class="parameter"><code>features</code></em>
23422342 .</p>
23432343 <div class="refsect3">
2344 <a name="id-1.3.58.7.57.5"></a><h4>Parameters</h4>
2344 <a name="id-1.3.59.7.57.5"></a><h4>Parameters</h4>
23452345 <div class="informaltable"><table width="100%" border="0">
23462346 <colgroup>
23472347 <col width="150px" class="parameters_name">
23712371 <p>Gets the contents of <em class="parameter"><code>value</code></em>
23722372 .</p>
23732373 <div class="refsect3">
2374 <a name="id-1.3.58.7.58.5"></a><h4>Parameters</h4>
2374 <a name="id-1.3.59.7.58.5"></a><h4>Parameters</h4>
23752375 <div class="informaltable"><table width="100%" border="0">
23762376 <colgroup>
23772377 <col width="150px" class="parameters_name">
23862386 </table></div>
23872387 </div>
23882388 <div class="refsect3">
2389 <a name="id-1.3.58.7.58.6"></a><h4>Returns</h4>
2389 <a name="id-1.3.59.7.58.6"></a><h4>Returns</h4>
23902390 <p> the contents of <em class="parameter"><code>value</code></em>
23912391 . </p>
23922392 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
23992399 </pre>
24002400 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_STRUCTURE</span> value.</p>
24012401 <div class="refsect3">
2402 <a name="id-1.3.58.7.59.5"></a><h4>Parameters</h4>
2402 <a name="id-1.3.59.7.59.5"></a><h4>Parameters</h4>
24032403 <div class="informaltable"><table width="100%" border="0">
24042404 <colgroup>
24052405 <col width="150px" class="parameters_name">
24242424 to <em class="parameter"><code>structure</code></em>
24252425 . The actual</p>
24262426 <div class="refsect3">
2427 <a name="id-1.3.58.7.60.5"></a><h4>Parameters</h4>
2427 <a name="id-1.3.59.7.60.5"></a><h4>Parameters</h4>
24282428 <div class="informaltable"><table width="100%" border="0">
24292429 <colgroup>
24302430 <col width="150px" class="parameters_name">
24542454 <p>Gets the contents of <em class="parameter"><code>value</code></em>
24552455 .</p>
24562456 <div class="refsect3">
2457 <a name="id-1.3.58.7.61.5"></a><h4>Parameters</h4>
2457 <a name="id-1.3.59.7.61.5"></a><h4>Parameters</h4>
24582458 <div class="informaltable"><table width="100%" border="0">
24592459 <colgroup>
24602460 <col width="150px" class="parameters_name">
24692469 </table></div>
24702470 </div>
24712471 <div class="refsect3">
2472 <a name="id-1.3.58.7.61.6"></a><h4>Returns</h4>
2472 <a name="id-1.3.59.7.61.6"></a><h4>Returns</h4>
24732473 <p> the contents of <em class="parameter"><code>value</code></em>
24742474 . </p>
24752475 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
24822482 </pre>
24832483 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_BUFFER</span> value.</p>
24842484 <div class="refsect3">
2485 <a name="id-1.3.58.7.62.5"></a><h4>Parameters</h4>
2485 <a name="id-1.3.59.7.62.5"></a><h4>Parameters</h4>
24862486 <div class="informaltable"><table width="100%" border="0">
24872487 <colgroup>
24882488 <col width="150px" class="parameters_name">
25082508 a reference to <em class="parameter"><code>v</code></em>
25092509 .</p>
25102510 <div class="refsect3">
2511 <a name="id-1.3.58.7.63.5"></a><h4>Parameters</h4>
2511 <a name="id-1.3.59.7.63.5"></a><h4>Parameters</h4>
25122512 <div class="informaltable"><table width="100%" border="0">
25132513 <colgroup>
25142514 <col width="150px" class="parameters_name">
25232523 </table></div>
25242524 </div>
25252525 <div class="refsect3">
2526 <a name="id-1.3.58.7.63.6"></a><h4>Returns</h4>
2526 <a name="id-1.3.59.7.63.6"></a><h4>Returns</h4>
25272527 <p> buffer. </p>
25282528 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
25292529 </div>
25372537 as the value of <em class="parameter"><code>v</code></em>
25382538 . Caller retains reference to buffer.</p>
25392539 <div class="refsect3">
2540 <a name="id-1.3.58.7.64.5"></a><h4>Parameters</h4>
2540 <a name="id-1.3.59.7.64.5"></a><h4>Parameters</h4>
25412541 <div class="informaltable"><table width="100%" border="0">
25422542 <colgroup>
25432543 <col width="150px" class="parameters_name">
25682568 as the value of <em class="parameter"><code>v</code></em>
25692569 . Caller gives away reference to buffer.</p>
25702570 <div class="refsect3">
2571 <a name="id-1.3.58.7.65.5"></a><h4>Parameters</h4>
2571 <a name="id-1.3.59.7.65.5"></a><h4>Parameters</h4>
25722572 <div class="informaltable"><table width="100%" border="0">
25732573 <colgroup>
25742574 <col width="150px" class="parameters_name">
25972597 </pre>
25982598 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_SAMPLE</span> value.</p>
25992599 <div class="refsect3">
2600 <a name="id-1.3.58.7.66.5"></a><h4>Parameters</h4>
2600 <a name="id-1.3.59.7.66.5"></a><h4>Parameters</h4>
26012601 <div class="informaltable"><table width="100%" border="0">
26022602 <colgroup>
26032603 <col width="150px" class="parameters_name">
26232623 a reference to <em class="parameter"><code>v</code></em>
26242624 .</p>
26252625 <div class="refsect3">
2626 <a name="id-1.3.58.7.67.5"></a><h4>Parameters</h4>
2626 <a name="id-1.3.59.7.67.5"></a><h4>Parameters</h4>
26272627 <div class="informaltable"><table width="100%" border="0">
26282628 <colgroup>
26292629 <col width="150px" class="parameters_name">
26382638 </table></div>
26392639 </div>
26402640 <div class="refsect3">
2641 <a name="id-1.3.58.7.67.6"></a><h4>Returns</h4>
2641 <a name="id-1.3.59.7.67.6"></a><h4>Returns</h4>
26422642 <p> sample. </p>
26432643 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
26442644 </div>
26522652 as the value of <em class="parameter"><code>v</code></em>
26532653 . Caller retains reference to sample.</p>
26542654 <div class="refsect3">
2655 <a name="id-1.3.58.7.68.5"></a><h4>Parameters</h4>
2655 <a name="id-1.3.59.7.68.5"></a><h4>Parameters</h4>
26562656 <div class="informaltable"><table width="100%" border="0">
26572657 <colgroup>
26582658 <col width="150px" class="parameters_name">
26832683 as the value of <em class="parameter"><code>v</code></em>
26842684 . Caller gives away reference to sample.</p>
26852685 <div class="refsect3">
2686 <a name="id-1.3.58.7.69.5"></a><h4>Parameters</h4>
2686 <a name="id-1.3.59.7.69.5"></a><h4>Parameters</h4>
26872687 <div class="informaltable"><table width="100%" border="0">
26882688 <colgroup>
26892689 <col width="150px" class="parameters_name">
27212721 <em class="parameter"><code>const <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);</pre>
27222722 <p>Used together with <a class="link" href="gstreamer-GstValue.html#gst-value-compare" title="gst_value_compare ()"><code class="function">gst_value_compare()</code></a> to compare <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items.</p>
27232723 <div class="refsect3">
2724 <a name="id-1.3.58.7.71.5"></a><h4>Parameters</h4>
2724 <a name="id-1.3.59.7.71.5"></a><h4>Parameters</h4>
27252725 <div class="informaltable"><table width="100%" border="0">
27262726 <colgroup>
27272727 <col width="150px" class="parameters_name">
27432743 </table></div>
27442744 </div>
27452745 <div class="refsect3">
2746 <a name="id-1.3.58.7.71.6"></a><h4>Returns</h4>
2746 <a name="id-1.3.59.7.71.6"></a><h4>Returns</h4>
27472747 <p> one of GST_VALUE_LESS_THAN, GST_VALUE_EQUAL, GST_VALUE_GREATER_THAN
27482748 or GST_VALUE_UNORDERED</p>
27492749 <p></p>
27572757 <p>Used by <a class="link" href="gstreamer-GstValue.html#gst-value-serialize" title="gst_value_serialize ()"><code class="function">gst_value_serialize()</code></a> to obtain a non-binary form of the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.</p>
27582758 <p>Free-function: g_free</p>
27592759 <div class="refsect3">
2760 <a name="id-1.3.58.7.72.6"></a><h4>Parameters</h4>
2760 <a name="id-1.3.59.7.72.6"></a><h4>Parameters</h4>
27612761 <div class="informaltable"><table width="100%" border="0">
27622762 <colgroup>
27632763 <col width="150px" class="parameters_name">
27722772 </table></div>
27732773 </div>
27742774 <div class="refsect3">
2775 <a name="id-1.3.58.7.72.7"></a><h4>Returns</h4>
2775 <a name="id-1.3.59.7.72.7"></a><h4>Returns</h4>
27762776 <p> the string representation of the value. </p>
27772777 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
27782778 </div>
27852785 <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s</code></em>);</pre>
27862786 <p>Used by <a class="link" href="gstreamer-GstValue.html#gst-value-deserialize" title="gst_value_deserialize ()"><code class="function">gst_value_deserialize()</code></a> to parse a non-binary form into the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.</p>
27872787 <div class="refsect3">
2788 <a name="id-1.3.58.7.73.5"></a><h4>Parameters</h4>
2788 <a name="id-1.3.59.7.73.5"></a><h4>Parameters</h4>
27892789 <div class="informaltable"><table width="100%" border="0">
27902790 <colgroup>
27912791 <col width="150px" class="parameters_name">
28072807 </table></div>
28082808 </div>
28092809 <div class="refsect3">
2810 <a name="id-1.3.58.7.73.6"></a><h4>Returns</h4>
2810 <a name="id-1.3.59.7.73.6"></a><h4>Returns</h4>
28112811 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for success</p>
28122812 <p></p>
28132813 </div>
28222822 (which means: multiple possible values, such as data lists or data
28232823 ranges) value.</p>
28242824 <div class="refsect3">
2825 <a name="id-1.3.58.7.74.5"></a><h4>Parameters</h4>
2825 <a name="id-1.3.59.7.74.5"></a><h4>Parameters</h4>
28262826 <div class="informaltable"><table width="100%" border="0">
28272827 <colgroup>
28282828 <col width="150px" class="parameters_name">
28372837 </table></div>
28382838 </div>
28392839 <div class="refsect3">
2840 <a name="id-1.3.58.7.74.6"></a><h4>Returns</h4>
2840 <a name="id-1.3.59.7.74.6"></a><h4>Returns</h4>
28412841 <p> true if the value is "fixed".</p>
28422842 <p></p>
28432843 </div>
28502850 <p>Registers functions to perform calculations on <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items of a given
28512851 type. Each type can only be added once.</p>
28522852 <div class="refsect3">
2853 <a name="id-1.3.58.7.75.5"></a><h4>Parameters</h4>
2853 <a name="id-1.3.59.7.75.5"></a><h4>Parameters</h4>
28542854 <div class="informaltable"><table width="100%" border="0">
28552855 <colgroup>
28562856 <col width="150px" class="parameters_name">
28742874 <p>Initialises the target value to be of the same type as source and then copies
28752875 the contents from source to target.</p>
28762876 <div class="refsect3">
2877 <a name="id-1.3.58.7.76.5"></a><h4>Parameters</h4>
2877 <a name="id-1.3.59.7.76.5"></a><h4>Parameters</h4>
28782878 <div class="informaltable"><table width="100%" border="0">
28792879 <colgroup>
28802880 <col width="150px" class="parameters_name">
29062906 getting back this string later on using <a class="link" href="gstreamer-GstValue.html#gst-value-deserialize" title="gst_value_deserialize ()"><code class="function">gst_value_deserialize()</code></a>.</p>
29072907 <p>Free-function: g_free</p>
29082908 <div class="refsect3">
2909 <a name="id-1.3.58.7.77.6"></a><h4>Parameters</h4>
2909 <a name="id-1.3.59.7.77.6"></a><h4>Parameters</h4>
29102910 <div class="informaltable"><table width="100%" border="0">
29112911 <colgroup>
29122912 <col width="150px" class="parameters_name">
29212921 </table></div>
29222922 </div>
29232923 <div class="refsect3">
2924 <a name="id-1.3.58.7.77.7"></a><h4>Returns</h4>
2924 <a name="id-1.3.59.7.77.7"></a><h4>Returns</h4>
29252925 <p> the serialization for <em class="parameter"><code>value</code></em>
29262926 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none exists. </p>
29272927 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
29362936 <p>Tries to deserialize a string into the type specified by the given GValue.
29372937 If the operation succeeds, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is returned, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
29382938 <div class="refsect3">
2939 <a name="id-1.3.58.7.78.5"></a><h4>Parameters</h4>
2939 <a name="id-1.3.59.7.78.5"></a><h4>Parameters</h4>
29402940 <div class="informaltable"><table width="100%" border="0">
29412941 <colgroup>
29422942 <col width="150px" class="parameters_name">
29592959 </table></div>
29602960 </div>
29612961 <div class="refsect3">
2962 <a name="id-1.3.58.7.78.6"></a><h4>Returns</h4>
2962 <a name="id-1.3.59.7.78.6"></a><h4>Returns</h4>
29632963 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
29642964 <p></p>
29652965 </div>
29842984 , GST_VALUE_LESS_THAN is returned.
29852985 If the values are equal, GST_VALUE_EQUAL is returned.</p>
29862986 <div class="refsect3">
2987 <a name="id-1.3.58.7.79.5"></a><h4>Parameters</h4>
2987 <a name="id-1.3.59.7.79.5"></a><h4>Parameters</h4>
29882988 <div class="informaltable"><table width="100%" border="0">
29892989 <colgroup>
29902990 <col width="150px" class="parameters_name">
30063006 </table></div>
30073007 </div>
30083008 <div class="refsect3">
3009 <a name="id-1.3.58.7.79.6"></a><h4>Returns</h4>
3009 <a name="id-1.3.59.7.79.6"></a><h4>Returns</h4>
30103010 <p> comparison result</p>
30113011 <p></p>
30123012 </div>
30213021 and <em class="parameter"><code>value2</code></em>
30223022 can be compared.</p>
30233023 <div class="refsect3">
3024 <a name="id-1.3.58.7.80.5"></a><h4>Parameters</h4>
3024 <a name="id-1.3.59.7.80.5"></a><h4>Parameters</h4>
30253025 <div class="informaltable"><table width="100%" border="0">
30263026 <colgroup>
30273027 <col width="150px" class="parameters_name">
30433043 </table></div>
30443044 </div>
30453045 <div class="refsect3">
3046 <a name="id-1.3.58.7.80.6"></a><h4>Returns</h4>
3046 <a name="id-1.3.59.7.80.6"></a><h4>Returns</h4>
30473047 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values can be compared</p>
30483048 <p></p>
30493049 </div>
30593059 and <em class="parameter"><code>value2</code></em>
30603060 .</p>
30613061 <div class="refsect3">
3062 <a name="id-1.3.58.7.81.5"></a><h4>Parameters</h4>
3062 <a name="id-1.3.59.7.81.5"></a><h4>Parameters</h4>
30633063 <div class="informaltable"><table width="100%" border="0">
30643064 <colgroup>
30653065 <col width="150px" class="parameters_name">
30863086 </table></div>
30873087 </div>
30883088 <div class="refsect3">
3089 <a name="id-1.3.58.7.81.6"></a><h4>Returns</h4>
3089 <a name="id-1.3.59.7.81.6"></a><h4>Returns</h4>
30903090 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the union succeeded.</p>
30913091 <p></p>
30923092 </div>
31073107 integer range. If there is the possibility that two values can
31083108 be unioned, this function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
31093109 <div class="refsect3">
3110 <a name="id-1.3.58.7.82.5"></a><h4>Parameters</h4>
3110 <a name="id-1.3.59.7.82.5"></a><h4>Parameters</h4>
31113111 <div class="informaltable"><table width="100%" border="0">
31123112 <colgroup>
31133113 <col width="150px" class="parameters_name">
31293129 </table></div>
31303130 </div>
31313131 <div class="refsect3">
3132 <a name="id-1.3.58.7.82.6"></a><h4>Returns</h4>
3132 <a name="id-1.3.59.7.82.6"></a><h4>Returns</h4>
31333133 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there is a function allowing the two values to
31343134 be unioned.</p>
31353135 <p></p>
31483148 .
31493149 Note that this means subtraction as in sets, not as in mathematics.</p>
31503150 <div class="refsect3">
3151 <a name="id-1.3.58.7.83.5"></a><h4>Parameters</h4>
3151 <a name="id-1.3.59.7.83.5"></a><h4>Parameters</h4>
31523152 <div class="informaltable"><table width="100%" border="0">
31533153 <colgroup>
31543154 <col width="150px" class="parameters_name">
31783178 </table></div>
31793179 </div>
31803180 <div class="refsect3">
3181 <a name="id-1.3.58.7.83.6"></a><h4>Returns</h4>
3181 <a name="id-1.3.59.7.83.6"></a><h4>Returns</h4>
31823182 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the subtraction is not empty</p>
31833183 <p></p>
31843184 </div>
31933193 from <em class="parameter"><code>minuend</code></em>
31943194 .</p>
31953195 <div class="refsect3">
3196 <a name="id-1.3.58.7.84.5"></a><h4>Parameters</h4>
3196 <a name="id-1.3.59.7.84.5"></a><h4>Parameters</h4>
31973197 <div class="informaltable"><table width="100%" border="0">
31983198 <colgroup>
31993199 <col width="150px" class="parameters_name">
32153215 </table></div>
32163216 </div>
32173217 <div class="refsect3">
3218 <a name="id-1.3.58.7.84.6"></a><h4>Returns</h4>
3218 <a name="id-1.3.59.7.84.6"></a><h4>Returns</h4>
32193219 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a subtraction is possible</p>
32203220 <p></p>
32213221 </div>
32343234 <em class="parameter"><code>dest</code></em>
32353235 is not modified.</p>
32363236 <div class="refsect3">
3237 <a name="id-1.3.58.7.85.5"></a><h4>Parameters</h4>
3237 <a name="id-1.3.59.7.85.5"></a><h4>Parameters</h4>
32383238 <div class="informaltable"><table width="100%" border="0">
32393239 <colgroup>
32403240 <col width="150px" class="parameters_name">
32633263 </table></div>
32643264 </div>
32653265 <div class="refsect3">
3266 <a name="id-1.3.58.7.85.6"></a><h4>Returns</h4>
3266 <a name="id-1.3.59.7.85.6"></a><h4>Returns</h4>
32673267 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the intersection is non-empty</p>
32683268 <p></p>
32693269 </div>
32783278 Two values will produce a valid intersection if they have the same
32793279 type.</p>
32803280 <div class="refsect3">
3281 <a name="id-1.3.58.7.86.5"></a><h4>Parameters</h4>
3281 <a name="id-1.3.59.7.86.5"></a><h4>Parameters</h4>
32823282 <div class="informaltable"><table width="100%" border="0">
32833283 <colgroup>
32843284 <col width="150px" class="parameters_name">
33003300 </table></div>
33013301 </div>
33023302 <div class="refsect3">
3303 <a name="id-1.3.58.7.86.6"></a><h4>Returns</h4>
3303 <a name="id-1.3.59.7.86.6"></a><h4>Returns</h4>
33043304 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values can intersect</p>
33053305 <p></p>
33063306 </div>
33183318 is a subset of <em class="parameter"><code>value2</code></em>
33193319 </p>
33203320 <div class="refsect3">
3321 <a name="id-1.3.58.7.87.6"></a><h4>Parameters</h4>
3321 <a name="id-1.3.59.7.87.6"></a><h4>Parameters</h4>
33223322 <div class="informaltable"><table width="100%" border="0">
33233323 <colgroup>
33243324 <col width="150px" class="parameters_name">
33503350 to the GstValueArray in <em class="parameter"><code>value</code></em>
33513351 .</p>
33523352 <div class="refsect3">
3353 <a name="id-1.3.58.7.88.5"></a><h4>Parameters</h4>
3353 <a name="id-1.3.59.7.88.5"></a><h4>Parameters</h4>
33543354 <div class="informaltable"><table width="100%" border="0">
33553355 <colgroup>
33563356 <col width="150px" class="parameters_name">
33823382 to the GstValueArray in <em class="parameter"><code>value</code></em>
33833383 .</p>
33843384 <div class="refsect3">
3385 <a name="id-1.3.58.7.89.5"></a><h4>Parameters</h4>
3385 <a name="id-1.3.59.7.89.5"></a><h4>Parameters</h4>
33863386 <div class="informaltable"><table width="100%" border="0">
33873387 <colgroup>
33883388 <col width="150px" class="parameters_name">
34133413 <p>Gets the number of values contained in <em class="parameter"><code>value</code></em>
34143414 .</p>
34153415 <div class="refsect3">
3416 <a name="id-1.3.58.7.90.5"></a><h4>Parameters</h4>
3416 <a name="id-1.3.59.7.90.5"></a><h4>Parameters</h4>
34173417 <div class="informaltable"><table width="100%" border="0">
34183418 <colgroup>
34193419 <col width="150px" class="parameters_name">
34283428 </table></div>
34293429 </div>
34303430 <div class="refsect3">
3431 <a name="id-1.3.58.7.90.6"></a><h4>Returns</h4>
3431 <a name="id-1.3.59.7.90.6"></a><h4>Returns</h4>
34323432 <p> the number of values</p>
34333433 <p></p>
34343434 </div>
34443444 has the index <em class="parameter"><code>index</code></em>
34453445 .</p>
34463446 <div class="refsect3">
3447 <a name="id-1.3.58.7.91.5"></a><h4>Parameters</h4>
3447 <a name="id-1.3.59.7.91.5"></a><h4>Parameters</h4>
34483448 <div class="informaltable"><table width="100%" border="0">
34493449 <colgroup>
34503450 <col width="150px" class="parameters_name">
34663466 </table></div>
34673467 </div>
34683468 <div class="refsect3">
3469 <a name="id-1.3.58.7.91.6"></a><h4>Returns</h4>
3469 <a name="id-1.3.59.7.91.6"></a><h4>Returns</h4>
34703470 <p> the value at the given index. </p>
34713471 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
34723472 </div>
34813481 to the GstValueArray in <em class="parameter"><code>value</code></em>
34823482 .</p>
34833483 <div class="refsect3">
3484 <a name="id-1.3.58.7.92.5"></a><h4>Parameters</h4>
3484 <a name="id-1.3.59.7.92.5"></a><h4>Parameters</h4>
34853485 <div class="informaltable"><table width="100%" border="0">
34863486 <colgroup>
34873487 <col width="150px" class="parameters_name">
35173517 If <em class="parameter"><code>src</code></em>
35183518 is already fixed, this function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
35193519 <div class="refsect3">
3520 <a name="id-1.3.58.7.93.5"></a><h4>Parameters</h4>
3520 <a name="id-1.3.59.7.93.5"></a><h4>Parameters</h4>
35213521 <div class="informaltable"><table width="100%" border="0">
35223522 <colgroup>
35233523 <col width="150px" class="parameters_name">
35393539 </table></div>
35403540 </div>
35413541 <div class="refsect3">
3542 <a name="id-1.3.58.7.93.6"></a><h4>Returns</h4>
3542 <a name="id-1.3.59.7.93.6"></a><h4>Returns</h4>
35433543 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>dest</code></em>
35443544 contains a fixated version of <em class="parameter"><code>src</code></em>
35453545 .</p>
36043604 <p>VTable for the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="parameter"><code>type</code></em>
36053605 .</p>
36063606 <div class="refsect3">
3607 <a name="id-1.3.58.8.6.5"></a><h4>Members</h4>
3607 <a name="id-1.3.59.8.6.5"></a><h4>Members</h4>
36083608 <div class="informaltable"><table width="100%" border="0">
36093609 <colgroup>
36103610 <col width="300px" class="struct_members_name">
116116 <p>Check whether a GStreamer version equal to or greater than
117117 major.minor.micro is present.</p>
118118 <div class="refsect3">
119 <a name="id-1.3.59.6.6.5"></a><h4>Parameters</h4>
119 <a name="id-1.3.60.6.6.5"></a><h4>Parameters</h4>
120120 <div class="informaltable"><table width="100%" border="0">
121121 <colgroup>
122122 <col width="150px" class="parameters_name">
0 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>GStreamer 1.0 Core Reference Manual: gstprotection</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
6 <link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
7 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
8 <link rel="prev" href="GstPreset.html" title="GstPreset">
9 <link rel="next" href="GstQuery.html" title="GstQuery">
10 <meta name="generator" content="GTK-Doc V1.21 (XML mode)">
11 <link rel="stylesheet" href="style.css" type="text/css">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
15 <td width="100%" align="left" class="shortcuts">
16 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
17 <a href="#gstreamer-gstprotection.description" class="shortcut">Description</a></span>
18 </td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
20 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
21 <td><a accesskey="p" href="GstPreset.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
22 <td><a accesskey="n" href="GstQuery.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
23 </tr></table>
24 <div class="refentry">
25 <a name="gstreamer-gstprotection"></a><div class="titlepage"></div>
26 <div class="refnamediv"><table width="100%"><tr>
27 <td valign="top">
28 <h2><span class="refentrytitle"><a name="gstreamer-gstprotection.top_of_page"></a>gstprotection</span></h2>
29 <p>gstprotection — Functions and classes to support encrypted streams.</p>
30 </td>
31 <td class="gallery_image" valign="top" align="right"></td>
32 </tr></table></div>
33 <div class="refsect1">
34 <a name="gstreamer-gstprotection.functions"></a><h2>Functions</h2>
35 <div class="informaltable"><table width="100%" border="0">
36 <colgroup>
37 <col width="150px" class="functions_return">
38 <col class="functions_name">
39 </colgroup>
40 <tbody>
41 <tr>
42 <td class="function_type">
43 <a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="returnvalue">GstProtectionMeta</span></a> *
44 </td>
45 <td class="function_name">
46 <a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()">gst_buffer_add_protection_meta</a> <span class="c_punctuation">()</span>
47 </td>
48 </tr>
49 <tr>
50 <td class="define_keyword">#define</td>
51 <td class="function_name">
52 <a class="link" href="gstreamer-gstprotection.html#gst-buffer-get-protection-meta" title="gst_buffer_get_protection_meta()">gst_buffer_get_protection_meta</a><span class="c_punctuation">()</span>
53 </td>
54 </tr>
55 <tr>
56 <td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
57 </td>
58 <td class="function_name">
59 <a class="link" href="gstreamer-gstprotection.html#gst-protection-select-system" title="gst_protection_select_system ()">gst_protection_select_system</a> <span class="c_punctuation">()</span>
60 </td>
61 </tr>
62 </tbody>
63 </table></div>
64 </div>
65 <div class="refsect1">
66 <a name="gstreamer-gstprotection.other"></a><h2>Types and Values</h2>
67 <div class="informaltable"><table width="100%" border="0">
68 <colgroup>
69 <col width="150px" class="name">
70 <col class="description">
71 </colgroup>
72 <tbody><tr>
73 <td class="datatype_keyword">struct</td>
74 <td class="function_name"><a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta">GstProtectionMeta</a></td>
75 </tr></tbody>
76 </table></div>
77 </div>
78 <div class="refsect1">
79 <a name="gstreamer-gstprotection.includes"></a><h2>Includes</h2>
80 <pre class="synopsis">#include &lt;gst/gstprotection.h&gt;
81 </pre>
82 </div>
83 <div class="refsect1">
84 <a name="gstreamer-gstprotection.description"></a><h2>Description</h2>
85 <p>The GstProtectionMeta class enables the information needed to decrypt a
86 <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to be attached to that buffer.</p>
87 <p>Typically, a demuxer element would attach GstProtectionMeta objects
88 to the buffers that it pushes downstream. The demuxer would parse the
89 protection information for a video/audio frame from its input data and use
90 this information to populate the <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> <em class="parameter"><code>info</code></em>
91 field,
92 which is then encapsulated in a GstProtectionMeta object and attached to
93 the corresponding output buffer using the <a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()"><code class="function">gst_buffer_add_protection_meta()</code></a>
94 function. The information in this attached GstProtectionMeta would be
95 used by a downstream decrypter element to recover the original unencrypted
96 frame.</p>
97 </div>
98 <div class="refsect1">
99 <a name="gstreamer-gstprotection.functions_details"></a><h2>Functions</h2>
100 <div class="refsect2">
101 <a name="gst-buffer-add-protection-meta"></a><h3>gst_buffer_add_protection_meta ()</h3>
102 <pre class="programlisting"><a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="returnvalue">GstProtectionMeta</span></a> *
103 gst_buffer_add_protection_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
104 <em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *info</code></em>);</pre>
105 <p>Attaches protection metadata to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p>
106 <div class="refsect3">
107 <a name="id-1.3.42.7.2.5"></a><h4>Parameters</h4>
108 <div class="informaltable"><table width="100%" border="0">
109 <colgroup>
110 <col width="150px" class="parameters_name">
111 <col class="parameters_description">
112 <col width="200px" class="parameters_annotations">
113 </colgroup>
114 <tbody>
115 <tr>
116 <td class="parameter_name"><p>buffer</p></td>
117 <td class="parameter_description"><p><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> holding an encrypted sample, to which protection
118 metadata should be added.</p></td>
119 <td class="parameter_annotations"> </td>
120 </tr>
121 <tr>
122 <td class="parameter_name"><p>info</p></td>
123 <td class="parameter_description"><p> a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> holding cryptographic
124 information relating to the sample contained in <em class="parameter"><code>buffer</code></em>
125 . This
126 function takes ownership of <em class="parameter"><code>info</code></em>
127 . </p></td>
128 <td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
129 </tr>
130 </tbody>
131 </table></div>
132 </div>
133 <div class="refsect3">
134 <a name="id-1.3.42.7.2.6"></a><h4>Returns</h4>
135 <p> a pointer to the added <a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="type">GstProtectionMeta</span></a> if successful; <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
136 unsuccessful.</p>
137 <p></p>
138 </div>
139 <p class="since">Since 1.6</p>
140 </div>
141 <hr>
142 <div class="refsect2">
143 <a name="gst-buffer-get-protection-meta"></a><h3>gst_buffer_get_protection_meta()</h3>
144 <pre class="programlisting">#define gst_buffer_get_protection_meta(b)</pre>
145 </div>
146 <hr>
147 <div class="refsect2">
148 <a name="gst-protection-select-system"></a><h3>gst_protection_select_system ()</h3>
149 <pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
150 gst_protection_select_system (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **system_identifiers</code></em>);</pre>
151 <p>Iterates the supplied list of UUIDs and checks the GstRegistry for
152 an element that supports one of the supplied UUIDs. If more than one
153 element matches, the system ID of the highest ranked element is selected.</p>
154 <div class="refsect3">
155 <a name="id-1.3.42.7.4.5"></a><h4>Parameters</h4>
156 <div class="informaltable"><table width="100%" border="0">
157 <colgroup>
158 <col width="150px" class="parameters_name">
159 <col class="parameters_description">
160 <col width="200px" class="parameters_annotations">
161 </colgroup>
162 <tbody><tr>
163 <td class="parameter_name"><p>system_identifiers</p></td>
164 <td class="parameter_description"><p> A null terminated array of strings
165 that contains the UUID values of each protection system that is to be
166 checked. </p></td>
167 <td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
168 </tr></tbody>
169 </table></div>
170 </div>
171 <div class="refsect3">
172 <a name="id-1.3.42.7.4.6"></a><h4>Returns</h4>
173 <p> One of the strings from <em class="parameter"><code>system_identifiers</code></em>
174 that
175 indicates the highest ranked element that implements the protection system
176 indicated by that system ID, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no element has been found. </p>
177 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
178 </div>
179 <p class="since">Since 1.6</p>
180 </div>
181 </div>
182 <div class="refsect1">
183 <a name="gstreamer-gstprotection.other_details"></a><h2>Types and Values</h2>
184 <div class="refsect2">
185 <a name="GstProtectionMeta"></a><h3>struct GstProtectionMeta</h3>
186 <pre class="programlisting">struct GstProtectionMeta {
187 GstMeta meta;
188
189 GstStructure *info;
190 };
191 </pre>
192 <p>Metadata type that holds information about a sample from a protection-protected
193 track, including the information needed to decrypt it (if it is encrypted).</p>
194 <div class="refsect3">
195 <a name="id-1.3.42.8.2.5"></a><h4>Members</h4>
196 <div class="informaltable"><table width="100%" border="0">
197 <colgroup>
198 <col width="300px" class="struct_members_name">
199 <col class="struct_members_description">
200 <col width="200px" class="struct_members_annotations">
201 </colgroup>
202 <tbody>
203 <tr>
204 <td class="struct_member_name"><p><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstProtectionMeta.meta"></a>meta</code></em>;</p></td>
205 <td class="struct_member_description"><p>the parent <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</p></td>
206 <td class="struct_member_annotations"> </td>
207 </tr>
208 <tr>
209 <td class="struct_member_name"><p><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstProtectionMeta.info"></a>info</code></em>;</p></td>
210 <td class="struct_member_description"><p>the cryptographic information needed to decrypt the sample.</p></td>
211 <td class="struct_member_annotations"> </td>
212 </tr>
213 </tbody>
214 </table></div>
215 </div>
216 </div>
217 </div>
218 </div>
219 <div class="footer">
220 <hr>
221 Generated by GTK-Doc V1.21</div>
222 </body>
223 </html>
163163 <span class="refentrytitle"><a href="GstPreset.html">GstPreset</a></span><span class="refpurpose"> — helper interface for element presets</span>
164164 </dt>
165165 <dt>
166 <span class="refentrytitle"><a href="gstreamer-gstprotection.html">gstprotection</a></span><span class="refpurpose"> — Functions and classes to support encrypted streams.</span>
167 </dt>
168 <dt>
166169 <span class="refentrytitle"><a href="GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Provide functions to create queries, and to set and parse
167170 values in them.</span>
168171 </dt>
15231523 <ANCHOR id="gst-pipeline-new" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-new">
15241524 <ANCHOR id="gst-pipeline-get-bus" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-bus">
15251525 <ANCHOR id="gst-pipeline-set-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-set-clock">
1526 <ANCHOR id="gst-pipeline-get-pipeline-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-pipeline-clock">
15261527 <ANCHOR id="gst-pipeline-get-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-clock">
15271528 <ANCHOR id="gst-pipeline-use-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-use-clock">
15281529 <ANCHOR id="gst-pipeline-auto-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-auto-clock">
16551656 <ANCHOR id="GstPreset.other_details" href="gstreamer-1.0/GstPreset.html#GstPreset.other_details">
16561657 <ANCHOR id="GstPreset-struct" href="gstreamer-1.0/GstPreset.html#GstPreset-struct">
16571658 <ANCHOR id="GstPresetInterface" href="gstreamer-1.0/GstPreset.html#GstPresetInterface">
1659 <ANCHOR id="gstreamer-gstprotection" href="gstreamer-1.0/gstreamer-gstprotection.html">
1660 <ANCHOR id="gstreamer-gstprotection.functions" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.functions">
1661 <ANCHOR id="gstreamer-gstprotection.other" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.other">
1662 <ANCHOR id="gstreamer-gstprotection.includes" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.includes">
1663 <ANCHOR id="gstreamer-gstprotection.description" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.description">
1664 <ANCHOR id="gstreamer-gstprotection.functions_details" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.functions_details">
1665 <ANCHOR id="gst-buffer-add-protection-meta" href="gstreamer-1.0/gstreamer-gstprotection.html#gst-buffer-add-protection-meta">
1666 <ANCHOR id="gst-buffer-get-protection-meta" href="gstreamer-1.0/gstreamer-gstprotection.html#gst-buffer-get-protection-meta">
1667 <ANCHOR id="gst-protection-select-system" href="gstreamer-1.0/gstreamer-gstprotection.html#gst-protection-select-system">
1668 <ANCHOR id="gstreamer-gstprotection.other_details" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.other_details">
1669 <ANCHOR id="GstProtectionMeta" href="gstreamer-1.0/gstreamer-gstprotection.html#GstProtectionMeta">
16581670 <ANCHOR id="GstQuery" href="gstreamer-1.0/GstQuery.html">
16591671 <ANCHOR id="GstQuery.functions" href="gstreamer-1.0/GstQuery.html#GstQuery.functions">
16601672 <ANCHOR id="GstQuery.other" href="gstreamer-1.0/GstQuery.html#GstQuery.other">
18131825 <ANCHOR id="gst-segment-free" href="gstreamer-1.0/GstSegment.html#gst-segment-free">
18141826 <ANCHOR id="gst-segment-do-seek" href="gstreamer-1.0/GstSegment.html#gst-segment-do-seek">
18151827 <ANCHOR id="gst-segment-to-running-time" href="gstreamer-1.0/GstSegment.html#gst-segment-to-running-time">
1828 <ANCHOR id="gst-segment-to-running-time-full" href="gstreamer-1.0/GstSegment.html#gst-segment-to-running-time-full">
18161829 <ANCHOR id="gst-segment-to-stream-time" href="gstreamer-1.0/GstSegment.html#gst-segment-to-stream-time">
18171830 <ANCHOR id="gst-segment-to-position" href="gstreamer-1.0/GstSegment.html#gst-segment-to-position">
18181831 <ANCHOR id="gst-segment-set-running-time" href="gstreamer-1.0/GstSegment.html#gst-segment-set-running-time">
18191832 <ANCHOR id="gst-segment-copy-into" href="gstreamer-1.0/GstSegment.html#gst-segment-copy-into">
18201833 <ANCHOR id="gst-segment-offset-running-time" href="gstreamer-1.0/GstSegment.html#gst-segment-offset-running-time">
1834 <ANCHOR id="gst-segment-is-equal" href="gstreamer-1.0/GstSegment.html#gst-segment-is-equal">
18211835 <ANCHOR id="GstSegment.other_details" href="gstreamer-1.0/GstSegment.html#GstSegment.other_details">
18221836 <ANCHOR id="GstSegment-struct" href="gstreamer-1.0/GstSegment.html#GstSegment-struct">
18231837 <ANCHOR id="GstSegmentFlags" href="gstreamer-1.0/GstSegment.html#GstSegmentFlags">
148148 <span class="refentrytitle"><a href="GstPreset.html">GstPreset</a></span><span class="refpurpose"> — helper interface for element presets</span>
149149 </dt>
150150 <dt>
151 <span class="refentrytitle"><a href="gstreamer-gstprotection.html">gstprotection</a></span><span class="refpurpose"> — Functions and classes to support encrypted streams.</span>
152 </dt>
153 <dt>
151154 <span class="refentrytitle"><a href="GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Provide functions to create queries, and to set and parse
152155 values in them.</span>
153156 </dt>
492492 <title><envar>GST_TAG_ENCODING</envar></title>
493493 <para>
494494 Try this character encoding first for tag-related strings where the encoding
495 is not defined and which are not UTF-8 already. By defaul the current locale
495 is not defined and which are not UTF-8 already. By default the current locale
496496 will be tried (if not UTF-8).
497497 </para>
498498 </formalpara>
501501 <title><envar>GST_TAG_ID3_ENCODING</envar></title>
502502 <para>
503503 Try this character encoding first for ID3 tag-related strings where the
504 encoding is not defined and which are not UTF-8 already. By defaul the current
504 encoding is not defined and which are not UTF-8 already. By default the current
505505 locale will be tried (if not UTF-8).
506506 </para>
507507 </formalpara>
360360 gst_base_transform_get_buffer_pool
361361 gst_base_transform_reconfigure_sink
362362 gst_base_transform_reconfigure_src
363 gst_base_transform_update_src
363364
364365 GST_BASE_TRANSFORM_SINK_NAME
365366 GST_BASE_TRANSFORM_SRC_NAME
960960 used by the base class and its <em class="parameter"><code>params</code></em>
961961 .</p>
962962 <p>Unref the <em class="parameter"><code>allocator</code></em>
963 after use it.</p>
963 after usage.</p>
964964 <div class="refsect3">
965965 <a name="id-1.2.4.4.9.17.6"></a><h4>Parameters</h4>
966966 <div class="informaltable"><table width="100%" border="0">
10151015 <div class="refsect3">
10161016 <a name="id-1.2.4.4.9.18.5"></a><h4>Returns</h4>
10171017 <p> the instance of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="type">GstBufferPool</span></a> used
1018 by the src; free it after use it. </p>
1018 by the src; unref it after usage. </p>
10191019 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
10201020 </div>
10211021 </div>
11361136 </dt>
11371137 <dd></dd>
11381138 <dt>
1139 <a class="link" href="gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS" title="GST_BYTE_READER_INIT()">GST_BYTE_READER_INIT</a>, macro in <a class="link" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">GstByteReader</a>
1140 </dt>
1141 <dd></dd>
1142 <dt>
11391143 <a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-init" title="gst_byte_reader_init ()">gst_byte_reader_init</a>, function in <a class="link" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">GstByteReader</a>
1140 </dt>
1141 <dd></dd>
1142 <dt>
1143 <a class="link" href="gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS" title="GST_BYTE_READER_INIT()">GST_BYTE_READER_INIT</a>, macro in <a class="link" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">GstByteReader</a>
11441144 </dt>
11451145 <dd></dd>
11461146 <dt>
250250 </listitem>
251251 <listitem>
252252 <para>
253 The GstPropertyProbe interface was removed. the is no replacement yet,
254 but a more featureful replacement for device discovery and feature
255 querying is planned, see https://bugzilla.gnome.org/show_bug.cgi?id=678402
253 The GstPropertyProbe interface was removed. There is no replacement
254 for it in GStreamer 1.0.x and 1.2.x, but since version 1.4 there is
255 a more featureful replacement for device discovery and feature
256 querying provided by GstDeviceMonitor, GstDevice, and friends. See
257 the <ulink type="http"
258 url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-device-probing.html">
259 "GStreamer Device Discovery and Device Probing" documentation</ulink>.
256260 </para>
257261 </listitem>
258262 <listitem>
8686 <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#id-1.2.6.8.3.2.2"/>
8787 <keyword type="struct" name="struct GstFdSink" link="gstreamer-plugins-fdsink.html#GstFdSink-struct"/>
8888 <keyword type="property" name="The “fd” property" link="gstreamer-plugins-fdsink.html#GstFdSink--fd"/>
89 <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.8"/>
90 <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.9.1"/>
91 <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.9.2"/>
89 <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.7"/>
90 <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.8.1"/>
91 <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.8.2"/>
9292 <keyword type="struct" name="struct GstFdSrc" link="gstreamer-plugins-fdsrc.html#GstFdSrc-struct"/>
9393 <keyword type="property" name="The “fd” property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--fd"/>
9494 <keyword type="property" name="The “timeout” property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout"/>
8282 <tbody>
8383 <tr>
8484 <td class="listing_lines" align="right"><pre>1</pre></td>
85 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>GRAY8 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
85 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> capsfilter caps<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>GRAY8 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
8686 </tr>
8787 </tbody>
8888 </table>
8989 </div>
90 Limits acceptable video from videotestsrc to be grayscale.
90 Limits acceptable video from videotestsrc to be grayscale. Equivalent to
91 <div class="informalexample">
92 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
93 <tbody>
94 <tr>
95 <td class="listing_lines" align="right"><pre>1</pre></td>
96 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>GRAY8 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
97 </tr>
98 </tbody>
99 </table>
100 </div>
101 which is a short notation for the capsfilter element.
91102 </div>
92103 <div class="refsynopsisdiv">
93104 <h2>Synopsis</h2>
147147 <tbody>
148148 <tr>
149149 <td class="listing_lines" align="right"><pre>1</pre></td>
150 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> fakesink sync<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
150 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> fakesink sync<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
151151 </tr>
152152 </tbody>
153153 </table>
201201 <tbody>
202202 <tr>
203203 <td class="listing_lines" align="right"><pre>1</pre></td>
204 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v fakesrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> fakesink</pre></td>
204 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v fakesrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> fakesink</pre></td>
205205 </tr>
206206 </tbody>
207207 </table>
9191 <p>To generate data, enter some data on the console followed by enter.
9292 The above mentioned pipeline should dump data packets to the console.</p>
9393 <p>If the <a class="link" href="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout" title="The “timeout” property"><span class="type">“timeout”</span></a> property is set to a value bigger than 0, fdsrc will
94 generate an element message named</p>
95 <code class="classname">"GstFdSrcTimeout"</code><p>if no data was received in the given timeout.
96 The message's structure contains one field:</p>
94 generate an element message named <code class="classname">"GstFdSrcTimeout"</code>
95 if no data was received in the given timeout.</p>
96 <p>The message's structure contains one field:</p>
9797 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
9898 <span class="type">guint64</span>
9999 <code class="classname">"timeout"</code>: the timeout in microseconds that
100100 expired when waiting for data.
101101 </p></li></ul></div>
102102 <div class="refsect2">
103 <a name="id-1.2.7.8.8"></a><h3>Example launch line</h3>
103 <a name="id-1.2.7.8.7"></a><h3>Example launch line</h3>
104104 <div class="informalexample">
105105 <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
106106 <tbody>
107107 <tr>
108108 <td class="listing_lines" align="right"><pre>1</pre></td>
109 <td class="listing_code"><pre class="programlisting">echo <span class="string">&quot;Hello GStreamer&quot;</span> <span class="gtkdoc opt">|</span> gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v fdsrc <span class="gtkdoc opt">!</span> fakesink dump<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
109 <td class="listing_code"><pre class="programlisting">echo <span class="string">&quot;Hello GStreamer&quot;</span> <span class="gtkdoc opt">|</span> gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v fdsrc <span class="gtkdoc opt">!</span> fakesink dump<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
110110 </tr>
111111 </tbody>
112112 </table>
117117 <div class="refsynopsisdiv">
118118 <h2>Synopsis</h2>
119119 <div class="refsect2">
120 <a name="id-1.2.7.8.9.1"></a><h3>Element Information</h3>
120 <a name="id-1.2.7.8.8.1"></a><h3>Element Information</h3>
121121 <div class="variablelist"><table border="0" class="variablelist">
122122 <colgroup>
123123 <col align="left" valign="top">
143143 </div>
144144 <hr>
145145 <div class="refsect2">
146 <a name="id-1.2.7.8.9.2"></a><h3>Element Pads</h3>
146 <a name="id-1.2.7.8.8.2"></a><h3>Element Pads</h3>
147147 <div class="variablelist"><table border="0" class="variablelist">
148148 <colgroup>
149149 <col align="left" valign="top">
105105 <tbody>
106106 <tr>
107107 <td class="listing_lines" align="right"><pre>1</pre></td>
108 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>capture1<span class="gtkdoc opt">.</span>jpeg</pre></td>
108 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>capture1<span class="gtkdoc opt">.</span>jpeg</pre></td>
109109 </tr>
110110 </tbody>
111111 </table>
8888 <tbody>
8989 <tr>
9090 <td class="listing_lines" align="right"><pre>1</pre></td>
91 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
91 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
9292 </tr>
9393 </tbody>
9494 </table>
9595 </div>
96 Play a song.ogg from local dir.
96 Play song.ogg audio file which must be in the current working directory.
9797 </div>
9898 <div class="refsynopsisdiv">
9999 <h2>Synopsis</h2>
320320 <div class="refsect2">
321321 <a name="GstInputSelector-block"></a><h3>The <code class="literal">“block”</code> signal</h3>
322322 <pre class="programlisting"><span class="returnvalue">gint64</span>
323 user_function (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *inputselector,
323 user_function (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *gstinputselector,
324324 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
325 <p>Block all sink pads in preparation for a switch. Returns the stop time of
326 the current switch segment, as a running time, or 0 if there is no current
327 active pad or the current active pad never received data.</p>
325 <p>
326 </p>
328327 <div class="refsect3">
329328 <a name="id-1.2.12.12.2.5"></a><h4>Parameters</h4>
330329 <div class="informaltable"><table width="100%" border="0">
335334 </colgroup>
336335 <tbody>
337336 <tr>
338 <td class="parameter_name"><p>inputselector</p></td>
339 <td class="parameter_description"><p>the <a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a></p></td>
337 <td class="parameter_name"><p>gstinputselector</p></td>
338 <td class="parameter_description"><p>the object which received the signal.</p></td>
340339 <td class="parameter_annotations"> </td>
341340 </tr>
342341 <tr>
347346 </tbody>
348347 </table></div>
349348 </div>
349 <div class="refsect3">
350 <a name="id-1.2.12.12.2.6"></a><h4>Returns</h4>
351 <p></p>
352 </div>
350353 <p>Flags: Action</p>
351354 </div>
352355 </div>
120120 <tbody>
121121 <tr>
122122 <td class="listing_lines" align="right"><pre>1</pre></td>
123 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> autoaudiosink t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> goom <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
123 <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> goom <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
124124 </tr>
125125 </tbody>
126126 </table>
127127 </div>
128 Play a song.ogg from local dir and render visualisations using the goom
129 element.
128 Play song.ogg audio file which must be in the current working directory
129 and render visualisations using the goom element (this can be easier done
130 using the playbin element, this is just an example pipeline).
130131 </div>
131132 <div class="refsynopsisdiv">
132133 <h2>Synopsis</h2>
152152 GstObject * parent);
153153 static gboolean gst_my_filter_activate_mode (GstPad * pad,
154154 GstObject * parent,
155 GstPadMode mode
155 GstPadMode mode,
156156 gboolean active);
157157 static void gst_my_filter_loop (GstMyFilter * filter);
158158
127127 static gboolean
128128 plugin_init (GstPlugin *plugin)
129129 {
130 static gchar *exts[] = { "avi", NULL };
131130 if (!gst_type_find_register (plugin, "", GST_RANK_PRIMARY,
132 gst_my_typefind_function, exts,
131 gst_my_typefind_function, "avi",
133132 gst_caps_new_simple ("video/x-msvideo",
134133 NULL), NULL))
135134 return FALSE;
9898 gstpluginloader.c \
9999 gstpoll.c \
100100 gstpreset.c \
101 gstprotection.c \
101102 gstquark.c \
102103 gstquery.c \
103104 gstregistry.c \
203204 gstpluginfeature.h \
204205 gstpoll.h \
205206 gstpreset.h \
207 gstprotection.h \
206208 gstquery.h \
207209 gstsample.h \
208210 gstsegment.h \
265267
266268 gcov: $(libgstreamer_@GST_API_VERSION@_la_SOURCES:=.gcov)
267269
268 Android.mk: Makefile.am
269 androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_API_VERSION@ \
270 -:TAGS eng debug \
271 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
272 -:SOURCES $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
273 $(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
274 -:CFLAGS $(DEFS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) \
275 -:LDFLAGS $(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) \
276 $(libgstreamer_@GST_API_VERSION@_la_LIBADD) \
277 -ldl \
278 -:SUBDIR gst/parse \
279 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst \
280 -:HEADERS $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
281 -:LIBFILTER_STATIC gstparse \
282 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
283 > $@
284
285270 if HAVE_INTROSPECTION
286271 BUILT_GIRSOURCES = Gst-@GST_API_VERSION@.gir
287272
292277 gir_sources+=$(patsubst %,$(builddir)/%, $(built_source_make))
293278
294279 Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
295 $(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
280 $(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no GI_SCANNER_DISABLE_CACHE=yes\
296281 $(INTROSPECTION_SCANNER) -v --namespace Gst \
297282 --nsversion=@GST_API_VERSION@ \
298283 --warn-all \
183183 gstmessage.c gstmeta.c gstmemory.c gstminiobject.c gstpad.c \
184184 gstpadtemplate.c gstparamspecs.c gstpipeline.c gstplugin.c \
185185 gstpluginfeature.c gstpluginloader.c gstpoll.c gstpreset.c \
186 gstquark.c gstquery.c gstregistry.c gstregistrychunks.c \
187 gstsample.c gstsegment.c gststructure.c gstsystemclock.c \
188 gsttaglist.c gsttagsetter.c gsttask.c gsttaskpool.c gsttoc.c \
189 gsttocsetter.c gsttrace.c gsttypefind.c gsttypefindfactory.c \
190 gsturi.c gstutils.c gstvalue.c gstparse.c gstregistrybinary.c
186 gstprotection.c gstquark.c gstquery.c gstregistry.c \
187 gstregistrychunks.c gstsample.c gstsegment.c gststructure.c \
188 gstsystemclock.c gsttaglist.c gsttagsetter.c gsttask.c \
189 gsttaskpool.c gsttoc.c gsttocsetter.c gsttrace.c gsttypefind.c \
190 gsttypefindfactory.c gsturi.c gstutils.c gstvalue.c gstparse.c \
191 gstregistrybinary.c
191192 @GST_DISABLE_TRACE_FALSE@am__objects_1 = libgstreamer_@GST_API_VERSION@_la-gsttrace.lo
192193 @GST_DISABLE_REGISTRY_FALSE@am__objects_2 = libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo
193194 am_libgstreamer_@GST_API_VERSION@_la_OBJECTS = \
235236 libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo \
236237 libgstreamer_@GST_API_VERSION@_la-gstpoll.lo \
237238 libgstreamer_@GST_API_VERSION@_la-gstpreset.lo \
239 libgstreamer_@GST_API_VERSION@_la-gstprotection.lo \
238240 libgstreamer_@GST_API_VERSION@_la-gstquark.lo \
239241 libgstreamer_@GST_API_VERSION@_la-gstquery.lo \
240242 libgstreamer_@GST_API_VERSION@_la-gstregistry.lo \
736738 gstpluginloader.c \
737739 gstpoll.c \
738740 gstpreset.c \
741 gstprotection.c \
739742 gstquark.c \
740743 gstquery.c \
741744 gstregistry.c \
843846 gstpluginfeature.h \
844847 gstpoll.h \
845848 gstpreset.h \
849 gstprotection.h \
846850 gstquery.h \
847851 gstsample.h \
848852 gstsegment.h \
10281032 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginloader.Plo@am__quote@
10291033 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpoll.Plo@am__quote@
10301034 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpreset.Plo@am__quote@
1035 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Plo@am__quote@
10311036 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Plo@am__quote@
10321037 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquery.Plo@am__quote@
10331038 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistry.Plo@am__quote@
13811386 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpreset.c' object='libgstreamer_@GST_API_VERSION@_la-gstpreset.lo' libtool=yes @AMDEPBACKSLASH@
13821387 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
13831388 @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) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpreset.lo `test -f 'gstpreset.c' || echo '$(srcdir)/'`gstpreset.c
1389
1390 libgstreamer_@GST_API_VERSION@_la-gstprotection.lo: gstprotection.c
1391 @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) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstprotection.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstprotection.lo `test -f 'gstprotection.c' || echo '$(srcdir)/'`gstprotection.c
1392 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Plo
1393 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstprotection.c' object='libgstreamer_@GST_API_VERSION@_la-gstprotection.lo' libtool=yes @AMDEPBACKSLASH@
1394 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1395 @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) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstprotection.lo `test -f 'gstprotection.c' || echo '$(srcdir)/'`gstprotection.c
13841396
13851397 libgstreamer_@GST_API_VERSION@_la-gstquark.lo: gstquark.c
13861398 @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) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstquark.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
19801992
19811993 gcov: $(libgstreamer_@GST_API_VERSION@_la_SOURCES:=.gcov)
19821994
1983 Android.mk: Makefile.am
1984 androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_API_VERSION@ \
1985 -:TAGS eng debug \
1986 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
1987 -:SOURCES $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
1988 $(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
1989 -:CFLAGS $(DEFS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) \
1990 -:LDFLAGS $(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) \
1991 $(libgstreamer_@GST_API_VERSION@_la_LIBADD) \
1992 -ldl \
1993 -:SUBDIR gst/parse \
1994 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst \
1995 -:HEADERS $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
1996 -:LIBFILTER_STATIC gstparse \
1997 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
1998 > $@
1999
20001995 @HAVE_INTROSPECTION_TRUE@Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
2001 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
1996 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no GI_SCANNER_DISABLE_CACHE=yes\
20021997 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_SCANNER) -v --namespace Gst \
20031998 @HAVE_INTROSPECTION_TRUE@ --nsversion=@GST_API_VERSION@ \
20041999 @HAVE_INTROSPECTION_TRUE@ --warn-all \
6363 #include <gst/gstplugin.h>
6464 #include <gst/gstpoll.h>
6565 #include <gst/gstpreset.h>
66 #include <gst/gstprotection.h>
6667 #include <gst/gstquery.h>
6768 #include <gst/gstregistry.h>
6869 #include <gst/gstsample.h>
184184 _priv_gst_do_linear_regression (GstClockTime *times, guint n,
185185 GstClockTime * m_num, GstClockTime * m_denom, GstClockTime * b,
186186 GstClockTime * xbase, gdouble * r_squared);
187
188 /* For use in gstdebugutils */
189 G_GNUC_INTERNAL
190 GstCapsFeatures * __gst_caps_get_features_unchecked (const GstCaps * caps, guint idx);
187191
188192 #ifndef GST_DISABLE_REGISTRY
189193 /* Secret variable to initialise gst without registry cache */
248252 * libgstreamer should be done like this: */
249253 #define GST_CAT_POLL _priv_GST_CAT_POLL
250254 extern GstDebugCategory *_priv_GST_CAT_POLL;
255
256 #define GST_CAT_PROTECTION _priv_GST_CAT_PROTECTION
257 extern GstDebugCategory *_priv_GST_CAT_PROTECTION;
251258
252259 extern GstClockTime _priv_gst_info_start_time;
253260
288295 #define GST_CAT_META NULL
289296 #define GST_CAT_LOCKING NULL
290297 #define GST_CAT_CONTEXT NULL
298 #define GST_CAT_PROTECTION NULL
291299
292300 #endif
293301
25392539 return ret;
25402540 }
25412541
2542 static void
2543 reset_state (const GValue * data, gpointer user_data)
2544 {
2545 GstElement *e = g_value_get_object (data);
2546 GstState state = GPOINTER_TO_INT (user_data);
2547
2548 if (gst_element_set_state (e, state) == GST_STATE_CHANGE_FAILURE)
2549 GST_WARNING_OBJECT (e, "Failed to switch back down to %s",
2550 gst_element_state_get_name (state));
2551 }
2552
25422553 static GstStateChangeReturn
25432554 gst_bin_change_state_func (GstElement * element, GstStateChange transition)
25442555 {
26952706 if (parent == GST_OBJECT_CAST (element)) {
26962707 /* element is still in bin, really error now */
26972708 gst_object_unref (parent);
2698 goto done;
2709 goto undo;
26992710 }
27002711 /* child removed from bin, let the resync code redo the state
27012712 * change */
28082819 "failure (de)activating src pads");
28092820 return GST_STATE_CHANGE_FAILURE;
28102821 }
2822
2823 undo:
2824 {
2825 if (current < next) {
2826 GstIterator *it = gst_bin_iterate_sorted (GST_BIN (element));
2827 GstIteratorResult ret;
2828
2829 GST_DEBUG_OBJECT (element,
2830 "Bin failed to change state, switching children back to %s",
2831 gst_element_state_get_name (current));
2832 do {
2833 ret =
2834 gst_iterator_foreach (it, &reset_state, GINT_TO_POINTER (current));
2835 } while (ret == GST_ITERATOR_RESYNC);
2836 gst_iterator_free (it);
2837 }
2838 goto done;
2839 }
28112840 }
28122841
28132842 /*
497497 copy_data.offset = offset;
498498 copy_data.size = size;
499499
500 info->transform_func (dest, meta, src,
501 _gst_meta_transform_copy, &copy_data);
500 if (!info->transform_func (dest, meta, src,
501 _gst_meta_transform_copy, &copy_data)) {
502 GST_CAT_ERROR (GST_CAT_BUFFER,
503 "failed to copy meta %p of API type %s", meta,
504 g_type_name (info->api));
505 }
502506 }
503507 }
504508 }
273273 *
274274 * Returns: (transfer none) (nullable): the buffer at @idx in @group
275275 * or %NULL when there is no buffer. The buffer remains valid as
276 * long as @list is valid.
276 * long as @list is valid and buffer is not removed from the list.
277277 */
278278 GstBuffer *
279279 gst_buffer_list_get (GstBufferList * list, guint idx)
309309
310310 g_return_if_fail (GST_IS_BUFFER_LIST (list));
311311 g_return_if_fail (buffer != NULL);
312 g_return_if_fail (gst_buffer_list_is_writable (list));
312313
313314 if (idx == -1 && list->n_buffers < list->n_allocated) {
314315 list->buffers[list->n_buffers++] = buffer;
358359 g_return_if_fail (GST_IS_BUFFER_LIST (list));
359360 g_return_if_fail (idx < list->n_buffers);
360361 g_return_if_fail (idx + length <= list->n_buffers);
362 g_return_if_fail (gst_buffer_list_is_writable (list));
361363
362364 gst_buffer_list_remove_range_internal (list, idx, length, TRUE);
363365 }
447447 GstMessage *message;
448448 GList *message_list = NULL;
449449
450 g_return_if_fail (GST_IS_BUS (bus));
451
450452 GST_OBJECT_LOCK (bus);
451453
452454 if (flushing) {
11211123 GstMessage *ret;
11221124 gulong id;
11231125
1126 g_return_val_if_fail (GST_IS_BUS (bus), NULL);
1127
11241128 poll_data = g_slice_new (GstBusPollData);
11251129 poll_data->source_running = TRUE;
11261130 poll_data->loop = g_main_loop_new (NULL, FALSE);
142142
143143 g_value_register_transform_func (_gst_caps_type,
144144 G_TYPE_STRING, gst_caps_transform_to_string);
145 }
146
147 GstCapsFeatures *
148 __gst_caps_get_features_unchecked (const GstCaps * caps, guint idx)
149 {
150 return gst_caps_get_features_unchecked (caps, idx);
145151 }
146152
147153 static GstCaps *
356356
357357 str = g_string_sized_new (slen);
358358 for (i = 0; i < gst_caps_get_size (caps); i++) {
359 GstCapsFeatures *features = __gst_caps_get_features_unchecked (caps, i);
359360 GstStructure *structure = gst_caps_get_structure (caps, i);
360361
361362 g_string_append (str, gst_structure_get_name (structure));
363
364 if (features && (gst_caps_features_is_any (features)
365 || !gst_caps_features_is_equal (features,
366 GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))) {
367 g_string_append_c (str, '(');
368 priv_gst_caps_features_append_to_gstring (features, str);
369 g_string_append_c (str, ')');
370 }
362371 g_string_append (str, "\\l");
363372
364373 gst_structure_foreach (structure, string_append_field, (gpointer) str);
416416 * Gets the currently configured clock of the element. This is the clock as was
417417 * last set with gst_element_set_clock().
418418 *
419 * Elements in a pipeline will only have their clock set when the
420 * pipeline is in the PLAYING state.
421 *
419422 * Returns: (transfer full): the #GstClock of the element. unref after usage.
420423 *
421424 * MT safe.
10681071 }
10691072
10701073 /**
1071 * gst_element_request_pad:
1074 * gst_element_request_pad: (virtual request_new_pad)
10721075 * @element: a #GstElement to find a request pad of.
10731076 * @templ: a #GstPadTemplate of which we want a pad of.
10741077 * @name: (transfer none) (allow-none): the name of the request #GstPad
623623 /* virtual methods for subclasses */
624624
625625 /* request/release pads */
626 /* FIXME 2.0 harmonize naming with gst_element_request_pad */
626627 GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ,
627628 const gchar* name, const GstCaps *caps);
629
628630 void (*release_pad) (GstElement *element, GstPad *pad);
629631
630632 /* state changes */
727727
728728 if (!res && (type & GST_ELEMENT_FACTORY_TYPE_FORMATTER))
729729 res = (strstr (klass, "Formatter") != NULL);
730
731 if (!res && (type & GST_ELEMENT_FACTORY_TYPE_DECRYPTOR))
732 res = (strstr (klass, "Decryptor") != NULL);
733
734 if (!res && (type & GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR))
735 res = (strstr (klass, "Encryptor") != NULL);
730736
731737 /* Filter by media type now, we only test if it
732738 * matched any of the types above or only checking the media
8787 * @GST_ELEMENT_FACTORY_TYPE_PARSER: Parser elements
8888 * @GST_ELEMENT_FACTORY_TYPE_PAYLOADER: Payloader elements
8989 * @GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER: Depayloader elements
90 * @GST_ELEMENT_FACTORY_TYPE_DECRYPTOR: Elements handling decryption (Since: 1.6)
91 * @GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR: Elements handling encryption (Since: 1.6)
9092 * @GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS: Private, do not use
9193 * @GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO: Elements handling video media types
9294 * @GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO: Elements handling audio media types
114116 #define GST_ELEMENT_FACTORY_TYPE_PAYLOADER (G_GUINT64_CONSTANT (1) << 7)
115117 #define GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER (G_GUINT64_CONSTANT (1) << 8)
116118 #define GST_ELEMENT_FACTORY_TYPE_FORMATTER (G_GUINT64_CONSTANT (1) << 9)
119 #define GST_ELEMENT_FACTORY_TYPE_DECRYPTOR (G_GUINT64_CONSTANT (1) << 10)
120 #define GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR (G_GUINT64_CONSTANT (1) << 11)
117121
118122 #define GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS (G_GUINT64_CONSTANT (1) << 48)
119123
186190 * Type: GstElementFactoryListType
187191 */
188192 #define GST_ELEMENT_FACTORY_TYPE_DECODABLE \
189 (GST_ELEMENT_FACTORY_TYPE_DECODER | GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER | GST_ELEMENT_FACTORY_TYPE_PARSER)
193 (GST_ELEMENT_FACTORY_TYPE_DECODER | GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER | GST_ELEMENT_FACTORY_TYPE_PARSER | GST_ELEMENT_FACTORY_TYPE_DECRYPTOR)
190194
191195 /* Element klass defines */
192196 #define GST_ELEMENT_FACTORY_KLASS_DECODER "Decoder"
199203 #define GST_ELEMENT_FACTORY_KLASS_PAYLOADER "Payloader"
200204 #define GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER "Depayloader"
201205 #define GST_ELEMENT_FACTORY_KLASS_FORMATTER "Formatter"
206 #define GST_ELEMENT_FACTORY_KLASS_DECRYPTOR "Decryptor"
207 #define GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR "Encryptor"
202208
203209 #define GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO "Video"
204210 #define GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO "Audio"
108108 {GST_EVENT_SEGMENT, "segment", 0},
109109 {GST_EVENT_TAG, "tag", 0},
110110 {GST_EVENT_TOC, "toc", 0},
111 {GST_EVENT_PROTECTION, "protection", 0},
111112 {GST_EVENT_BUFFERSIZE, "buffersize", 0},
112113 {GST_EVENT_SINK_MESSAGE, "sink-message", 0},
113114 {GST_EVENT_EOS, "eos", 0},
16901691 }
16911692
16921693 /**
1694 * SECTION:gstprotectionevent
1695 * @short_description: Functions to support the passing of
1696 * protection system specific information via events.
1697 *
1698 * In order for a decryption element to decrypt media
1699 * protected using a specific system, it first needs all the
1700 * protection system specific information necessary to acquire the decryption
1701 * key(s) for that stream. The functions defined here enable this information
1702 * to be passed in events from elements that extract it
1703 * (e.g., ISOBMFF demuxers, MPEG DASH demuxers) to protection decrypter
1704 * elements that use it.
1705 *
1706 * Events containing protection system specific information are created using
1707 * #gst_event_new_protection, and they can be parsed by downstream elements
1708 * using #gst_event_parse_protection.
1709 *
1710 * In Common Encryption, protection system specific information may be located
1711 * within ISOBMFF files, both in movie (moov) boxes and movie fragment (moof)
1712 * boxes; it may also be contained in ContentProtection elements within MPEG
1713 * DASH MPDs. The events created by #gst_event_new_protection contain data
1714 * identifying from which of these locations the encapsulated protection system
1715 * specific information originated. This origin information is required as
1716 * some protection systems use different encodings depending upon where the
1717 * information originates.
1718 *
1719 * The events returned by #gst_event_new_protection are implemented
1720 * in such a way as to ensure that the most recently-pushed protection info
1721 * event of a particular @origin and @system_id will
1722 * be stuck to the output pad of the sending element.
1723 *
1724 * Since: 1.6
1725 */
1726
1727 /**
1728 * gst_event_new_protection:
1729 * @system_id: (transfer none): a string holding a UUID that uniquely
1730 * identifies a protection system.
1731 * @data: (transfer none): a #GstBuffer holding protection system specific
1732 * information. The reference count of the buffer will be incremented by one.
1733 * @origin: a string indicating where the protection
1734 * information carried in the event was extracted from. The allowed values
1735 * of this string will depend upon the protection scheme.
1736 *
1737 * Creates a new event containing information specific to a particular
1738 * protection system (uniquely identified by @system_id), by which that
1739 * protection system can acquire key(s) to decrypt a protected stream.
1740 *
1741 * Returns: a #GST_EVENT_PROTECTION event, if successful; %NULL
1742 * if unsuccessful.
1743 *
1744 * Since: 1.6
1745 */
1746 GstEvent *
1747 gst_event_new_protection (const gchar * system_id,
1748 GstBuffer * data, const gchar * origin)
1749 {
1750 gchar *event_name;
1751 GstEvent *event;
1752 GstStructure *s;
1753
1754 g_return_val_if_fail (system_id != NULL, NULL);
1755 g_return_val_if_fail (data != NULL, NULL);
1756
1757 event_name =
1758 g_strconcat ("GstProtectionEvent", origin ? "-" : "",
1759 origin ? origin : "", "-", system_id, NULL);
1760
1761 GST_CAT_INFO (GST_CAT_EVENT, "creating protection event %s", event_name);
1762
1763 s = gst_structure_new (event_name, "data", GST_TYPE_BUFFER, data,
1764 "system_id", G_TYPE_STRING, system_id, NULL);
1765 if (origin)
1766 gst_structure_set (s, "origin", G_TYPE_STRING, origin, NULL);
1767 event = gst_event_new_custom (GST_EVENT_PROTECTION, s);
1768
1769 g_free (event_name);
1770 return event;
1771 }
1772
1773 /**
1774 * gst_event_parse_protection:
1775 * @event: a #GST_EVENT_PROTECTION event.
1776 * @system_id: (out) (allow-none) (transfer none): pointer to store the UUID
1777 * string uniquely identifying a content protection system.
1778 * @data: (out) (allow-none) (transfer none): pointer to store a #GstBuffer
1779 * holding protection system specific information.
1780 * @origin: (allow-none) (transfer none): pointer to store a value that
1781 * indicates where the protection information carried by @event was extracted
1782 * from.
1783 *
1784 * Parses an event containing protection system specific information and stores
1785 * the results in @system_id, @data and @origin. The data stored in @system_id,
1786 * @origin and @data are valid until @event is released.
1787 *
1788 * Since: 1.6
1789 */
1790 void
1791 gst_event_parse_protection (GstEvent * event, const gchar ** system_id,
1792 GstBuffer ** data, const gchar ** origin)
1793 {
1794 const GstStructure *s;
1795
1796 g_return_if_fail (event != NULL);
1797 g_return_if_fail (GST_IS_EVENT (event));
1798 g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_PROTECTION);
1799
1800 s = gst_event_get_structure (event);
1801
1802 if (origin)
1803 *origin = gst_structure_get_string (s, "origin");
1804
1805 if (system_id)
1806 *system_id = gst_structure_get_string (s, "system_id");
1807
1808 if (data) {
1809 const GValue *value = gst_structure_get_value (s, "data");
1810 *data = gst_value_get_buffer (value);
1811 }
1812 }
1813
1814 /**
16931815 * gst_event_new_segment_done:
16941816 * @format: The format of the position being done
16951817 * @position: The position of the segment being done
9898 * @GST_EVENT_GAP: Marks a gap in the datastream.
9999 * @GST_EVENT_TOC: An event which indicates that a new table of contents (TOC)
100100 * was found or updated.
101 * @GST_EVENT_PROTECTION: An event which indicates that new or updated
102 * encryption information has been found in the stream.
101103 * @GST_EVENT_QOS: A quality message. Used to indicate to upstream elements
102104 * that the downstream elements should adjust their processing
103105 * rate.
146148 GST_EVENT_SINK_MESSAGE = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
147149 GST_EVENT_EOS = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
148150 GST_EVENT_TOC = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
151 GST_EVENT_PROTECTION = GST_EVENT_MAKE_TYPE (130, FLAG (DOWNSTREAM) | FLAG (SERIALIZED) | FLAG (STICKY) | FLAG (STICKY_MULTI)),
149152
150153 /* non-sticky downstream serialized */
151154 GST_EVENT_SEGMENT_DONE = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
176179 #include <gst/gstclock.h>
177180 #include <gst/gststructure.h>
178181 #include <gst/gsttaglist.h>
179 #include <gst/gstsegment.h>
180182 #include <gst/gstsegment.h>
181183 #include <gst/gstmessage.h>
182184 #include <gst/gstcontext.h>
529531 GstEvent* gst_event_new_toc (GstToc *toc, gboolean updated);
530532 void gst_event_parse_toc (GstEvent *event, GstToc **toc, gboolean *updated);
531533
534 /* Protection event */
535 GstEvent * gst_event_new_protection (const gchar * system_id, GstBuffer * data, const gchar * origin);
536
537 void gst_event_parse_protection (GstEvent * event, const gchar ** system_id,
538 GstBuffer ** data, const gchar ** origin);
532539
533540 /* buffer */
534541 GstEvent * gst_event_new_buffer_size (GstFormat format, gint64 minsize, gint64 maxsize,
2424 /**
2525 * SECTION:gstinfo
2626 * @short_description: Debugging and logging facilities
27 * @see_also: #gstreamer-gstconfig, #gstreamer-Gst for command line parameters
27 * @see_also: #gst-running for command line parameters
2828 * and environment variables that affect the debugging output.
2929 *
3030 * GStreamer's debugging subsystem is an easy way to get information about what
175175 GstDebugCategory *GST_CAT_META = NULL;
176176 GstDebugCategory *GST_CAT_LOCKING = NULL;
177177 GstDebugCategory *GST_CAT_CONTEXT = NULL;
178 GstDebugCategory *_priv_GST_CAT_PROTECTION = NULL;
178179
179180
180181 #endif /* !defined(GST_DISABLE_GST_DEBUG) || !defined(GST_REMOVE_DISABLED) */
389390 GST_CAT_META = _gst_debug_category_new ("GST_META", 0, "meta");
390391 GST_CAT_LOCKING = _gst_debug_category_new ("GST_LOCKING", 0, "locking");
391392 GST_CAT_CONTEXT = _gst_debug_category_new ("GST_CONTEXT", 0, NULL);
393 _priv_GST_CAT_PROTECTION =
394 _gst_debug_category_new ("GST_PROTECTION", 0, "protection");
392395
393396 /* print out the valgrind message if we're in valgrind */
394397 _priv_gst_in_valgrind ();
15221525 g_slice_free (LevelNameEntry, entry);
15231526 g_slist_free_1 (walk);
15241527 walk = __level_name;
1528 } else {
1529 walk = g_slist_next (walk);
15251530 }
15261531 }
15271532 g_mutex_unlock (&__level_name_mutex);
196196 gst_memory_resize (GstMemory * mem, gssize offset, gsize size)
197197 {
198198 g_return_if_fail (mem != NULL);
199 g_return_if_fail (gst_memory_is_writable (mem));
199200 g_return_if_fail (offset >= 0 || mem->offset >= -offset);
200201 g_return_if_fail (size + mem->offset + offset <= mem->maxsize);
201202
342343 /**
343344 * gst_memory_copy:
344345 * @mem: a #GstMemory
345 * @offset: an offset to copy
346 * @size: size to copy or -1 to copy all bytes from offset
346 * @offset: offset to copy from
347 * @size: size to copy, or -1 to copy to the end of the memory region
347348 *
348349 * Return a copy of @size bytes from @mem starting from @offset. This copy is
349 * guaranteed to be writable. @size can be set to -1 to return a copy all bytes
350 * from @offset.
350 * guaranteed to be writable. @size can be set to -1 to return a copy
351 * from @offset to the end of the memory region.
351352 *
352353 * Returns: a new #GstMemory.
353354 */
366367 /**
367368 * gst_memory_share:
368369 * @mem: a #GstMemory
369 * @offset: an offset to share
370 * @size: size to share or -1 to share bytes from offset
370 * @offset: offset to share from
371 * @size: size to share, or -1 to share to the end of the memory region
371372 *
372373 * Return a shared copy of @size bytes from @mem starting from @offset. No
373374 * memory copy is performed and the memory region is simply shared. The result
374 * is guaranteed to be not-writable. @size can be set to -1 to return a share
375 * all bytes from @offset.
375 * is guaranteed to be non-writable. @size can be set to -1 to return a shared
376 * copy from @offset to the end of the memory region.
376377 *
377378 * Returns: a new #GstMemory.
378379 */
139139 gint using;
140140 guint probe_list_cookie;
141141 guint probe_cookie;
142
143 /* counter of how many idle probes are running directly from the add_probe
144 * call. Used to block any data flowing in the pad while the idle callback
145 * Doesn't finish its work */
146 gint idle_running;
142147 };
143148
144149 typedef struct
148153 } GstProbe;
149154
150155 #define PROBE_COOKIE(h) (((GstProbe *)(h))->cookie)
156 #define GST_PAD_IS_RUNNING_IDLE_PROBE(p) \
157 (((GstPad *)(p))->priv->idle_running > 0)
151158
152159 typedef struct
153160 {
13861393
13871394 /* Keep another ref, the callback could destroy the pad */
13881395 gst_object_ref (pad);
1396 pad->priv->idle_running++;
13891397
13901398 /* the pad is idle now, we can signal the idle callback now */
13911399 GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
14151423 GST_DEBUG_OBJECT (pad, "probe returned %d", ret);
14161424 break;
14171425 }
1426 pad->priv->idle_running--;
1427 if (pad->priv->idle_running == 0) {
1428 GST_PAD_BLOCK_BROADCAST (pad);
1429 }
14181430 GST_OBJECT_UNLOCK (pad);
14191431
14201432 gst_object_unref (pad);
23542366 /* prepare will also lock the two pads */
23552367 result = gst_pad_link_prepare (srcpad, sinkpad, flags);
23562368
2357 if (G_UNLIKELY (result != GST_PAD_LINK_OK))
2369 if (G_UNLIKELY (result != GST_PAD_LINK_OK)) {
2370 GST_CAT_INFO (GST_CAT_PADS, "link between %s:%s and %s:%s failed: %s",
2371 GST_DEBUG_PAD_NAME (srcpad), GST_DEBUG_PAD_NAME (sinkpad),
2372 gst_pad_link_get_name (result));
23582373 goto done;
2374 }
23592375
23602376 /* must set peers before calling the link function */
23612377 GST_PAD_PEER (srcpad) = sinkpad;
28832899 * The EOS event will pause the task associated with @pad before it is forwarded
28842900 * to all internally linked pads,
28852901 *
2886 * The the event is sent to all pads internally linked to @pad. This function
2902 * The event is sent to all pads internally linked to @pad. This function
28872903 * takes ownership of @event.
28882904 *
28892905 * Returns: %TRUE if the event was sent successfully.
32693285 GstPadProbeType type, flags;
32703286 GstPadProbeCallback callback;
32713287 GstPadProbeReturn ret;
3288 gpointer original_data;
32723289
32733290 /* if we have called this callback, do nothing */
32743291 if (PROBE_COOKIE (hook) == data->cookie) {
32823299
32833300 flags = hook->flags >> G_HOOK_FLAG_USER_SHIFT;
32843301 type = info->type;
3302 original_data = info->data;
32853303
32863304 /* one of the data types for non-idle probes */
32873305 if ((type & GST_PAD_PROBE_TYPE_IDLE) == 0
33193337 ret = callback (pad, info, hook->data);
33203338
33213339 GST_OBJECT_LOCK (pad);
3340
3341 if (original_data != NULL && info->data == NULL) {
3342 GST_DEBUG_OBJECT (pad, "data item in pad probe info was dropped");
3343 info->type = GST_PAD_PROBE_TYPE_INVALID;
3344 data->dropped = TRUE;
3345 }
33223346
33233347 switch (ret) {
33243348 case GST_PAD_PROBE_REMOVE:
33893413 PROBE_FULL(pad, mask, data, offs, size, label);
33903414
33913415 static GstFlowReturn
3416 do_pad_idle_probe_wait (GstPad * pad)
3417 {
3418 while (GST_PAD_IS_RUNNING_IDLE_PROBE (pad)) {
3419 GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
3420 "waiting idle probe to be removed");
3421 GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_BLOCKING);
3422 GST_PAD_BLOCK_WAIT (pad);
3423 GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_BLOCKING);
3424 GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "We got unblocked");
3425
3426 if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
3427 return GST_FLOW_FLUSHING;
3428 }
3429 return GST_FLOW_OK;
3430 }
3431
3432 #define PROBE_TYPE_IS_SERIALIZED(i) \
3433 ( \
3434 ( \
3435 (((i)->type & (GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | \
3436 GST_PAD_PROBE_TYPE_EVENT_FLUSH)) && \
3437 GST_EVENT_IS_SERIALIZED ((i)->data)) \
3438 ) || ( \
3439 (((i)->type & GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM) && \
3440 GST_QUERY_IS_SERIALIZED ((i)->data)) \
3441 ) || ( \
3442 ((i)->type & (GST_PAD_PROBE_TYPE_BUFFER | \
3443 GST_PAD_PROBE_TYPE_BUFFER_LIST)) \
3444 ) \
3445 )
3446
3447 static GstFlowReturn
33923448 do_probe_callbacks (GstPad * pad, GstPadProbeInfo * info,
33933449 GstFlowReturn defaultval)
33943450 {
34053461
34063462 is_block =
34073463 (info->type & GST_PAD_PROBE_TYPE_BLOCK) == GST_PAD_PROBE_TYPE_BLOCK;
3464
3465 if (is_block && PROBE_TYPE_IS_SERIALIZED (info)) {
3466 if (do_pad_idle_probe_wait (pad) == GST_FLOW_FLUSHING)
3467 goto flushing;
3468 }
34083469
34093470 again:
34103471 GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
40984159 GstBuffer *buffer;
40994160 GstFlowReturn ret;
41004161
4101 GST_INFO_OBJECT (pad, "chaining each group in list as a merged buffer");
4162 GST_INFO_OBJECT (pad, "chaining each buffer in list individually");
41024163
41034164 len = gst_buffer_list_length (list);
41044165
42644325 GST_OBJECT_UNLOCK (pad);
42654326 pad->ABI.abi.last_flowret =
42664327 ret == GST_FLOW_CUSTOM_SUCCESS ? GST_FLOW_OK : ret;
4267 gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
4328 if (data != NULL)
4329 gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
42684330
42694331 switch (ret) {
42704332 case GST_FLOW_CUSTOM_SUCCESS:
2626 * @short_description: Get a pipeline from a text pipeline description
2727 *
2828 * These function allow to create a pipeline based on the syntax used in the
29 * gst-launch utility (see man-page for syntax documentation).
29 * gst-launch-1.0 utility (see man-page for syntax documentation).
3030 *
3131 * Please note that these functions take several measures to create
3232 * somewhat dynamic pipelines. Due to that such pipelines are not always
627627 }
628628
629629 /**
630 * gst_pipeline_get_clock:
631 * @pipeline: a #GstPipeline
632 *
633 * Gets the current clock used by @pipeline.
630 * gst_pipeline_get_clock: (skip)
631 * @pipeline: a #GstPipeline
632 *
633 * Gets the current clock used by @pipeline. Users of object
634 * oriented languages should use gst_pipeline_get_pipeline_clock()
635 * to avoid confusion with gst_element_get_clock() which has a different behavior.
636 *
637 * Unlike gst_element_get_clock(), this function will always return a
638 * clock, even if the pipeline is not in the PLAYING state.
634639 *
635640 * Returns: (transfer full): a #GstClock, unref after usage.
636641 */
637642 GstClock *
638643 gst_pipeline_get_clock (GstPipeline * pipeline)
644 {
645 return gst_pipeline_get_pipeline_clock (pipeline);
646 }
647
648 /**
649 * gst_pipeline_get_pipeline_clock:
650 * @pipeline: a #GstPipeline
651 *
652 * Gets the current clock used by @pipeline.
653 *
654 * Unlike gst_element_get_clock(), this function will always return a
655 * clock, even if the pipeline is not in the PLAYING state.
656 *
657 * Returns: (transfer full): a #GstClock, unref after usage.
658 *
659 * Since: 1.6
660 */
661 GstClock *
662 gst_pipeline_get_pipeline_clock (GstPipeline * pipeline)
639663 {
640664 g_return_val_if_fail (GST_IS_PIPELINE (pipeline), NULL);
641665
676700 }
677701
678702 /**
679 * gst_pipeline_set_clock:
703 * gst_pipeline_set_clock: (skip)
680704 * @pipeline: a #GstPipeline
681705 * @clock: (transfer none): the clock to set
682706 *
9595 void gst_pipeline_use_clock (GstPipeline *pipeline, GstClock *clock);
9696 gboolean gst_pipeline_set_clock (GstPipeline *pipeline, GstClock *clock);
9797 GstClock* gst_pipeline_get_clock (GstPipeline *pipeline);
98 GstClock* gst_pipeline_get_pipeline_clock (GstPipeline *pipeline);
9899 void gst_pipeline_auto_clock (GstPipeline *pipeline);
99100
100101 void gst_pipeline_set_delay (GstPipeline *pipeline, GstClockTime delay);
479479 {
480480 gchar *basedir;
481481
482 basedir = g_win32_get_package_installation_directory_of_module (_priv_gst_dll_handle);
483 helper_bin = g_build_filename (basedir,
484 "lib",
485 "gstreamer-" GST_API_VERSION,
486 "gst-plugin-scanner.exe",
487 NULL);
482 basedir =
483 g_win32_get_package_installation_directory_of_module
484 (_priv_gst_dll_handle);
485 helper_bin =
486 g_build_filename (basedir, "lib", "gstreamer-" GST_API_VERSION,
487 "gst-plugin-scanner.exe", NULL);
488488 g_free (basedir);
489489 }
490490 #else
543543
544544 dup_fd = dup (0); /* STDIN */
545545 if (dup_fd == -1) {
546 GST_ERROR ("Failed to start. Could no dup STDIN, errno %d", errno);
546 GST_ERROR ("Failed to start. Could not dup STDIN, errno %d", errno);
547547 res = FALSE;
548548 goto beach;
549549 }
552552
553553 dup_fd = dup (1); /* STDOUT */
554554 if (dup_fd == -1) {
555 GST_ERROR ("Failed to start. Could no dup STDOUT, errno %d", errno);
555 GST_ERROR ("Failed to start. Could not dup STDOUT, errno %d", errno);
556556 res = FALSE;
557557 goto beach;
558558 }
0 /* GStreamer
1 * Copyright (C) <2013> YouView TV Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Library General Public
5 * License as published by the Free Software Foundation; either
6 * version 2 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Library General Public License for more details.
12 *
13 * You should have received a copy of the GNU Library General Public
14 * License along with this library; if not, write to the
15 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
16 * Boston, MA 02110-1301, USA.
17 */
18
19 /**
20 * SECTION:gstprotection
21 * @short_description: Functions and classes to support encrypted streams.
22 *
23 * The GstProtectionMeta class enables the information needed to decrypt a
24 * #GstBuffer to be attached to that buffer.
25 *
26 * Typically, a demuxer element would attach GstProtectionMeta objects
27 * to the buffers that it pushes downstream. The demuxer would parse the
28 * protection information for a video/audio frame from its input data and use
29 * this information to populate the #GstStructure @info field,
30 * which is then encapsulated in a GstProtectionMeta object and attached to
31 * the corresponding output buffer using the gst_buffer_add_protection_meta()
32 * function. The information in this attached GstProtectionMeta would be
33 * used by a downstream decrypter element to recover the original unencrypted
34 * frame.
35 *
36 * Since: 1.6
37 */
38
39 #include "gst_private.h"
40 #include "glib-compat-private.h"
41
42 #include "gstprotection.h"
43
44 #define GST_CAT_DEFAULT GST_CAT_PROTECTION
45
46 static gboolean gst_protection_meta_init (GstMeta * meta, gpointer params,
47 GstBuffer * buffer);
48
49 static void gst_protection_meta_free (GstMeta * meta, GstBuffer * buffer);
50
51 static const gchar *gst_protection_factory_check (GstElementFactory * fact,
52 const gchar ** system_identifiers);
53
54 GType
55 gst_protection_meta_api_get_type (void)
56 {
57 static volatile GType type;
58 static const gchar *tags[] = { NULL };
59
60 if (g_once_init_enter (&type)) {
61 GType _type = gst_meta_api_type_register ("GstProtectionMetaAPI", tags);
62 g_once_init_leave (&type, _type);
63 }
64 return type;
65 }
66
67 static gboolean
68 gst_protection_meta_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
69 {
70 GstProtectionMeta *protection_meta = (GstProtectionMeta *) meta;
71
72 protection_meta->info = NULL;
73
74 return TRUE;
75 }
76
77 static void
78 gst_protection_meta_free (GstMeta * meta, GstBuffer * buffer)
79 {
80 GstProtectionMeta *protection_meta = (GstProtectionMeta *) meta;
81
82 if (protection_meta->info)
83 gst_structure_free (protection_meta->info);
84 }
85
86 const GstMetaInfo *
87 gst_protection_meta_get_info (void)
88 {
89 static const GstMetaInfo *protection_meta_info = NULL;
90
91 if (g_once_init_enter (&protection_meta_info)) {
92 const GstMetaInfo *meta =
93 gst_meta_register (GST_PROTECTION_META_API_TYPE, "GstProtectionMeta",
94 sizeof (GstProtectionMeta), gst_protection_meta_init,
95 gst_protection_meta_free,
96 (GstMetaTransformFunction) NULL);
97
98 g_once_init_leave (&protection_meta_info, meta);
99 }
100 return protection_meta_info;
101 }
102
103 /**
104 * gst_buffer_add_protection_meta:
105 * @buffer: #GstBuffer holding an encrypted sample, to which protection
106 * metadata should be added.
107 * @info: (transfer full): a #GstStructure holding cryptographic
108 * information relating to the sample contained in @buffer. This
109 * function takes ownership of @info.
110 *
111 * Attaches protection metadata to a #GstBuffer.
112 *
113 * Returns: a pointer to the added #GstProtectionMeta if successful; %NULL if
114 * unsuccessful.
115 *
116 * Since: 1.6
117 */
118 GstProtectionMeta *
119 gst_buffer_add_protection_meta (GstBuffer * buffer, GstStructure * info)
120 {
121 GstProtectionMeta *meta;
122
123 g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
124 g_return_val_if_fail (info != NULL, NULL);
125
126 meta =
127 (GstProtectionMeta *) gst_buffer_add_meta (buffer,
128 GST_PROTECTION_META_INFO, NULL);
129
130 meta->info = info;
131
132 return meta;
133 }
134
135 /**
136 * gst_protection_select_system:
137 * @system_identifiers: (transfer none): A null terminated array of strings
138 * that contains the UUID values of each protection system that is to be
139 * checked.
140 *
141 * Iterates the supplied list of UUIDs and checks the GstRegistry for
142 * an element that supports one of the supplied UUIDs. If more than one
143 * element matches, the system ID of the highest ranked element is selected.
144 *
145 * Returns: (transfer none): One of the strings from @system_identifiers that
146 * indicates the highest ranked element that implements the protection system
147 * indicated by that system ID, or %NULL if no element has been found.
148 *
149 * Since: 1.6
150 */
151 const gchar *
152 gst_protection_select_system (const gchar ** system_identifiers)
153 {
154 GList *decryptors, *walk;
155 const gchar *retval = NULL;
156
157 decryptors =
158 gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_DECRYPTOR,
159 GST_RANK_MARGINAL);
160
161 for (walk = decryptors; !retval && walk; walk = g_list_next (walk)) {
162 GstElementFactory *fact = (GstElementFactory *) walk->data;
163
164 retval = gst_protection_factory_check (fact, system_identifiers);
165 }
166
167 gst_plugin_feature_list_free (decryptors);
168
169 return retval;
170 }
171
172 static const gchar *
173 gst_protection_factory_check (GstElementFactory * fact,
174 const gchar ** system_identifiers)
175 {
176 const GList *template, *walk;
177 const gchar *retval = NULL;
178
179 template = gst_element_factory_get_static_pad_templates (fact);
180 for (walk = template; walk && !retval; walk = g_list_next (walk)) {
181 GstStaticPadTemplate *templ = walk->data;
182 GstCaps *caps = gst_static_pad_template_get_caps (templ);
183 guint leng = gst_caps_get_size (caps);
184
185 for (guint i = 0; !retval && i < leng; ++i) {
186 GstStructure *st;
187
188 st = gst_caps_get_structure (caps, i);
189 if (gst_structure_has_field_typed (st, PROTECTION_SYSTEM_ID_CAPS_FIELD,
190 G_TYPE_STRING)) {
191 const gchar *sys_id =
192 gst_structure_get_string (st, PROTECTION_SYSTEM_ID_CAPS_FIELD);
193 GST_DEBUG ("Found decryptor that supports protection system %s",
194 sys_id);
195 for (guint j = 0; !retval && system_identifiers[j]; ++j) {
196 GST_TRACE (" compare with %s", system_identifiers[j]);
197 if (g_ascii_strcasecmp (system_identifiers[j], sys_id) == 0) {
198 GST_DEBUG (" Selecting %s", system_identifiers[j]);
199 retval = system_identifiers[j];
200 }
201 }
202 }
203 }
204 gst_caps_unref (caps);
205 }
206
207 return retval;
208 }
0 /* GStreamer
1 * Copyright (C) <2015> YouView TV Ltd.
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Library General Public
5 * License as published by the Free Software Foundation; either
6 * version 2 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Library General Public License for more details.
12 *
13 * You should have received a copy of the GNU Library General Public
14 * License along with this library; if not, write to the
15 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
16 * Boston, MA 02110-1301, USA.
17 */
18
19 #ifndef __GST_PROTECTION_H__
20 #define __GST_PROTECTION_H__
21
22 #include <gst/gst.h>
23
24 G_BEGIN_DECLS
25
26 /* @PROTECTION_SYSTEM_ID_CAPS_FIELD: The field name in a GstCaps that is
27 * used to signal the UUID of the protection system
28 */
29 #define PROTECTION_SYSTEM_ID_CAPS_FIELD "protection-system"
30
31 typedef struct _GstProtectionMeta GstProtectionMeta;
32 /**
33 * GstProtectionMeta:
34 * @meta: the parent #GstMeta.
35 * @info: the cryptographic information needed to decrypt the sample.
36 *
37 * Metadata type that holds information about a sample from a protection-protected
38 * track, including the information needed to decrypt it (if it is encrypted).
39 */
40 struct _GstProtectionMeta
41 {
42 GstMeta meta;
43
44 GstStructure *info;
45 };
46
47 GType gst_protection_meta_api_get_type (void);
48 #define GST_PROTECTION_META_API_TYPE (gst_protection_meta_api_get_type())
49
50 #define gst_buffer_get_protection_meta(b) \
51 ((GstProtectionMeta*)gst_buffer_get_meta ((b), GST_PROTECTION_META_API_TYPE))
52
53 #define GST_PROTECTION_META_INFO (gst_protection_meta_get_info())
54
55 const GstMetaInfo *gst_protection_meta_get_info (void);
56
57 GstProtectionMeta *gst_buffer_add_protection_meta (GstBuffer * buffer,
58 GstStructure * info);
59
60 const gchar *gst_protection_select_system (const gchar ** system_identifiers);
61
62 G_END_DECLS
63 #endif /* __GST_PROTECTION_META_H__ */
452452 }
453453
454454 /**
455 * gst_segment_to_running_time_full:
456 * @segment: a #GstSegment structure.
457 * @format: the format of the segment.
458 * @position: the position in the segment
459 * @running_time: result running-time
460 *
461 * Translate @position to the total running time using the currently configured
462 * segment. Compared to gst_segment_to_running_time() this function can return
463 * negative running-time.
464 *
465 * This function is typically used by elements that need to synchronize buffers
466 * against the clock or eachother.
467 *
468 * @position can be any value and the result of this function for values outside
469 * of the segment is extrapolated.
470 *
471 * When 1 is returned, @position resulted in a positive running-time returned
472 * in @running_time.
473 *
474 * When this function returns -1, the returned @running_time should be negated
475 * to get the real negative running time.
476 *
477 * Returns: a 1 or -1 on success, 0 on failure.
478 *
479 * Since: 1.6
480 */
481 gint
482 gst_segment_to_running_time_full (const GstSegment * segment, GstFormat format,
483 guint64 position, guint64 * running_time)
484 {
485 gint res = 0;
486 guint64 result;
487 guint64 start, stop, offset;
488 gdouble abs_rate;
489
490 if (G_UNLIKELY (position == -1)) {
491 GST_DEBUG ("invalid position (-1)");
492 goto done;
493 }
494
495 g_return_val_if_fail (segment != NULL, 0);
496 g_return_val_if_fail (segment->format == format, 0);
497
498 offset = segment->offset;
499
500 if (G_LIKELY (segment->rate > 0.0)) {
501 start = segment->start + offset;
502
503 /* bring to uncorrected position in segment */
504 if (position < start) {
505 /* negative value */
506 result = start - position;
507 res = -1;
508 } else {
509 result = position - start;
510 res = 1;
511 }
512 } else {
513 stop = segment->stop;
514
515 /* cannot continue if no stop position set or invalid offset */
516 g_return_val_if_fail (stop != -1, 0);
517 g_return_val_if_fail (stop >= offset, 0);
518
519 stop -= offset;
520
521 /* bring to uncorrected position in segment */
522 if (position > stop) {
523 /* negative value */
524 result = position - stop;
525 res = -1;
526 } else {
527 result = stop - position;
528 res = 1;
529 }
530 }
531
532 if (running_time) {
533 /* scale based on the rate, avoid division by and conversion to
534 * float when not needed */
535 abs_rate = ABS (segment->rate);
536 if (G_UNLIKELY (abs_rate != 1.0))
537 result /= abs_rate;
538
539 /* correct for base of the segment */
540 if (res == 1)
541 /* positive, add base */
542 *running_time = result + segment->base;
543 else if (segment->base >= result) {
544 /* negative and base is bigger, subtract from base and we have a
545 * positive value again */
546 *running_time = segment->base - result;
547 res = 1;
548 } else {
549 /* negative and base is smaller, subtract base and remainder is
550 * negative */
551 *running_time = result - segment->base;
552 }
553 }
554 return res;
555
556 done:
557 {
558 if (running_time)
559 *running_time = -1;
560 return 0;
561 }
562 }
563
564 /**
455565 * gst_segment_to_running_time:
456566 * @segment: a #GstSegment structure.
457567 * @format: the format of the segment.
475585 guint64 position)
476586 {
477587 guint64 result;
478 guint64 start, stop;
479 gdouble abs_rate;
480
481 if (G_UNLIKELY (position == -1)) {
482 GST_DEBUG ("invalid position (-1)");
483 return -1;
484 }
485588
486589 g_return_val_if_fail (segment != NULL, -1);
487590 g_return_val_if_fail (segment->format == format, -1);
488591
489 start = segment->start;
490
491 if (segment->rate > 0.0)
492 start += segment->offset;
493
494592 /* before the segment boundary */
495 if (G_UNLIKELY (position < start)) {
593 if (G_UNLIKELY (position < segment->start)) {
496594 GST_DEBUG ("position(%" G_GUINT64_FORMAT ") < start(%" G_GUINT64_FORMAT
497 ")", position, start);
595 ")", position, segment->start);
498596 return -1;
499597 }
500
501 stop = segment->stop;
502
503 if (G_LIKELY (segment->rate > 0.0)) {
504 /* after of the segment boundary */
505 if (G_UNLIKELY (stop != -1 && position > stop)) {
506 GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
507 ")", position, stop);
508 return -1;
509 }
510
511 /* bring to uncorrected position in segment */
512 result = position - start;
513 } else {
514 /* cannot continue if no stop position set or outside of
515 * the segment. */
516 if (G_UNLIKELY (stop == -1)) {
517 GST_DEBUG ("invalid stop (-1)");
518 return -1;
519 }
520
521 stop -= segment->offset;
522 if (G_UNLIKELY (position > stop)) {
523 GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
524 ")", position, stop);
525 return -1;
526 }
527
528 /* bring to uncorrected position in segment */
529 result = stop - position;
530 }
531
532 /* scale based on the rate, avoid division by and conversion to
533 * float when not needed */
534 abs_rate = ABS (segment->rate);
535 if (G_UNLIKELY (abs_rate != 1.0))
536 result /= abs_rate;
537
538 /* correct for base of the segment */
539 result += segment->base;
540
541 return result;
598 /* after the segment boundary */
599 if (G_UNLIKELY (segment->stop != -1 && position > segment->stop)) {
600 GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
601 ")", position, segment->stop);
602 return -1;
603 }
604
605 if (gst_segment_to_running_time_full (segment, format, position,
606 &result) == 1)
607 return result;
608
609 return -1;
542610 }
543611
544612 /**
756824 if (position == -1)
757825 return FALSE;
758826
759 segment->offset = position;
827 segment->offset = position - segment->start;
760828 }
761829 }
762830 return TRUE;
763831 }
832
833 /**
834 * gst_segment_is_equal:
835 * @s0: a #GstSegment structure.
836 * @s1: a #GstSegment structure.
837 *
838 * Checks for two segments being equal. Equality here is defined
839 * as perfect equality, including floating point values.
840 *
841 * Since: 1.6
842 *
843 * Returns: %TRUE if the segments are equal, %FALSE otherwise.
844 */
845 gboolean
846 gst_segment_is_equal (const GstSegment * s0, const GstSegment * s1)
847 {
848 if (s0->flags != s1->flags)
849 return FALSE;
850 if (s0->rate != s1->rate)
851 return FALSE;
852 if (s0->applied_rate != s1->applied_rate)
853 return FALSE;
854 if (s0->format != s1->format)
855 return FALSE;
856 if (s0->base != s1->base)
857 return FALSE;
858 if (s0->offset != s1->offset)
859 return FALSE;
860 if (s0->start != s1->start)
861 return FALSE;
862 if (s0->stop != s1->stop)
863 return FALSE;
864 if (s0->time != s1->time)
865 return FALSE;
866 if (s0->position != s1->position)
867 return FALSE;
868 if (s0->duration != s1->duration)
869 return FALSE;
870 return TRUE;
871 }
178178 * @start: the start of the segment
179179 * @stop: the stop of the segment
180180 * @time: the stream time of the segment
181 * @position: the position in the segment
181 * @position: the position in the segment (used internally by elements
182 * such as sources, demuxers or parsers to track progress)
182183 * @duration: the duration of the segment
183184 *
184185 * A helper structure that holds the configured region of
216217
217218 guint64 gst_segment_to_stream_time (const GstSegment *segment, GstFormat format, guint64 position);
218219 guint64 gst_segment_to_running_time (const GstSegment *segment, GstFormat format, guint64 position);
220
221 gint gst_segment_to_running_time_full (const GstSegment *segment, GstFormat format, guint64 position,
222 guint64 * running_time);
219223 guint64 gst_segment_to_position (const GstSegment *segment, GstFormat format, guint64 running_time);
220224
221225 gboolean gst_segment_set_running_time (GstSegment *segment, GstFormat format, guint64 running_time);
230234 GstFormat format, GstSeekFlags flags,
231235 GstSeekType start_type, guint64 start,
232236 GstSeekType stop_type, guint64 stop, gboolean * update);
237 gboolean gst_segment_is_equal (const GstSegment * s0, const GstSegment * s1);
233238
234239 G_END_DECLS
235240
672672
673673 /* takes ownership of the structure */
674674 static GstTagList *
675 gst_tag_list_new_internal (GstStructure * s)
675 gst_tag_list_new_internal (GstStructure * s, GstTagScope scope)
676676 {
677677 GstTagList *tag_list;
678678
685685 (GstMiniObjectFreeFunction) __gst_tag_list_free);
686686
687687 GST_TAG_LIST_STRUCTURE (tag_list) = s;
688 GST_TAG_LIST_SCOPE (tag_list) = GST_TAG_SCOPE_STREAM;
688 GST_TAG_LIST_SCOPE (tag_list) = scope;
689689
690690 #ifdef DEBUG_REFCOUNT
691691 GST_CAT_TRACE (GST_CAT_TAGS, "created taglist %p", tag_list);
716716 g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
717717
718718 s = GST_TAG_LIST_STRUCTURE (list);
719 return gst_tag_list_new_internal (gst_structure_copy (s));
719 return gst_tag_list_new_internal (gst_structure_copy (s),
720 GST_TAG_LIST_SCOPE (list));
720721 }
721722
722723 /**
735736 GstTagList *tag_list;
736737
737738 s = gst_structure_new_id_empty (GST_QUARK (TAGLIST));
738 tag_list = gst_tag_list_new_internal (s);
739 tag_list = gst_tag_list_new_internal (s, GST_TAG_SCOPE_STREAM);
739740 return tag_list;
740741 }
741742
877878 if (s == NULL)
878879 return NULL;
879880
880 tag_list = gst_tag_list_new_internal (s);
881 tag_list = gst_tag_list_new_internal (s, GST_TAG_SCOPE_STREAM);
881882
882883 return tag_list;
883884 }
926926 * will be canonicalised so that it doesn't contain any './' or '../' segments.
927927 *
928928 * On Windows #filename should be in UTF-8 encoding.
929 *
930 * Returns: newly-allocated URI string, or NULL on error. The caller must
931 * free the URI string with g_free() when no longer needed.
929932 */
930933 gchar *
931934 gst_filename_to_uri (const gchar * filename, GError ** error)
12961299
12971300 if (str) {
12981301 guint pct_sep_len = 0;
1299 gchar *pct_sep;
1302 gchar *pct_sep = NULL;
13001303 gchar **split_str;
13011304
13021305 if (convert && !unescape) {
30113011 if (G_UNLIKELY (strcmp (s, "NULL") == 0)) {
30123012 g_value_set_string (dest, NULL);
30133013 return TRUE;
3014 } else if (G_LIKELY (*s != '"')) {
3014 } else if (G_LIKELY (*s != '"' || s[strlen (s) - 1] != '"')) {
30153015 if (!g_utf8_validate (s, -1, NULL))
30163016 return FALSE;
30173017 g_value_set_string (dest, s);
30183018 return TRUE;
30193019 } else {
3020 /* strings delimited with double quotes should be unwrapped */
30203021 gchar *str = gst_string_unwrap (s);
30213022 if (G_UNLIKELY (!str))
30223023 return FALSE;
58375838 if (G_UNLIKELY (dest == NULL || !GST_VALUE_HOLDS_BITMASK (dest)))
58385839 return FALSE;
58395840
5841 errno = 0;
58405842 val = g_ascii_strtoull (s, &endptr, 16);
58415843 if (val == G_MAXUINT64 && (errno == ERANGE || errno == EINVAL))
58425844 return FALSE;
1717 libgstparse_la_LIBADD = $(GST_ALL_LIBS)
1818
1919 noinst_HEADERS = types.h
20
21 Android.mk: Makefile.am
22 androgenizer -:PROJECT gstreamer -:STATIC libgstparse -:TAGS eng debug \
23 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
24 -:SOURCES $(libgstparse_la_SOURCES) $(nodist_libgstparse_la_SOURCES) \
25 -:CFLAGS $(DEFS) $(libgstparse_la_CFLAGS) \
26 -:LDFLAGS $(libgstparse_la_LIBADD) \
27 > $@
2820
2921 grammar.tab.c grammar.tab.h: grammar.y
3022 $(AM_V_GEN)$(BISON_PATH) -d -v -ppriv_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
809809 tags tags-am uninstall uninstall-am
810810
811811
812 Android.mk: Makefile.am
813 androgenizer -:PROJECT gstreamer -:STATIC libgstparse -:TAGS eng debug \
814 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
815 -:SOURCES $(libgstparse_la_SOURCES) $(nodist_libgstparse_la_SOURCES) \
816 -:CFLAGS $(DEFS) $(libgstparse_la_CFLAGS) \
817 -:LDFLAGS $(libgstparse_la_LIBADD) \
818 > $@
819
820812 grammar.tab.c grammar.tab.h: grammar.y
821813 $(AM_V_GEN)$(BISON_PATH) -d -v -ppriv_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
822814 mv grammar.tab.c grammar.tab_tmp.c && \
389389 }
390390 pos++;
391391 while (g_ascii_isspace (*pos)) pos++;
392 if (*pos == '"') {
392 /* truncate a string if it is delimited with double quotes */
393 if (*pos == '"' && pos[strlen (pos) - 1] == '"') {
393394 pos++;
394395 pos[strlen (pos) - 1] = '\0';
395396 }
238238 argument *a;
239239
240240 dp = &directives->dir[i];
241
242 /* %% has no arguments, for example */
243 if (dp->arg_index < 0)
244 continue;
245
241246 a = &arguments->arg[dp->arg_index];
242247
243248 if (a->type == TYPE_POINTER_EXT) {
44
55 Name: %{gstreamer}
66 Version: 1.5.0.1
7 Release: 0.20150316.185135
7 Release: 0.20150513.125409
88 Summary: GStreamer streaming media framework runtime
99
1010 Group: Applications/Multimedia
00 SUBDIRS = gst
1
2 Android.mk: Makefile.am
3 androgenizer -:PROJECT gstreamer \
4 -:SUBDIR libs/gst \
5 > $@
796796 ps ps-am tags tags-am uninstall uninstall-am
797797
798798
799 Android.mk: Makefile.am
800 androgenizer -:PROJECT gstreamer \
801 -:SUBDIR libs/gst \
802 > $@
803
804799 # Tell versions [3.59,3.63) of GNU make to not export all variables.
805800 # Otherwise a system limit (for SysV at least) may be exceeded.
806801 .NOEXPORT:
1313
1414 SUBDIRS = $(SUBDIRS_ALWAYS) $(SUBDIRS_CHECK) $(SUBDIRS_HELPERS)
1515 DIST_SUBDIRS = $(SUBDIRS_ALWAYS) check helpers
16
17 Android.mk: Makefile.am
18 echo $(PWD)
19 androgenizer -:PROJECT gstreamer \
20 -:SUBDIR $(patsubst %, libs/gst/%, $(SUBDIRS)) \
21 > $@
801801 ps ps-am tags tags-am uninstall uninstall-am
802802
803803
804 Android.mk: Makefile.am
805 echo $(PWD)
806 androgenizer -:PROJECT gstreamer \
807 -:SUBDIR $(patsubst %, libs/gst/%, $(SUBDIRS)) \
808 > $@
809
810804 # Tell versions [3.59,3.63) of GNU make to not export all variables.
811805 # Otherwise a system limit (for SysV at least) may be exceeded.
812806 .NOEXPORT:
5656
5757 gcov: $(libgstbase_@GST_API_VERSION@_la_SOURCES:=.gcov)
5858
59 Android.mk: Makefile.am
60 androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_API_VERSION@ -:TAGS eng debug \
61 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
62 -:SOURCES $(libgstbase_@GST_API_VERSION@_la_SOURCES) \
63 -:CFLAGS $(DEFS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) \
64 -:LDFLAGS $(libgstbase_@GST_API_VERSION@_la_LDFLAGS) \
65 $(libgstbase_@GST_API_VERSION@_la_LIBADD) \
66 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/base \
67 -:HEADERS $(libgstbase_@GST_API_VERSION@include_HEADERS) \
68 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
69 > $@
70
7159 if HAVE_INTROSPECTION
7260 BUILT_GIRSOURCES = GstBase-@GST_API_VERSION@.gir
7361
7563 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstbase_@GST_API_VERSION@_la_SOURCES))
7664
7765 GstBase-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_API_VERSION@.la
78 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
66 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
7967 GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
8068 $(INTROSPECTION_SCANNER) -v --namespace GstBase \
8169 --nsversion=@GST_API_VERSION@ \
10991099
11001100 gcov: $(libgstbase_@GST_API_VERSION@_la_SOURCES:=.gcov)
11011101
1102 Android.mk: Makefile.am
1103 androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_API_VERSION@ -:TAGS eng debug \
1104 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
1105 -:SOURCES $(libgstbase_@GST_API_VERSION@_la_SOURCES) \
1106 -:CFLAGS $(DEFS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) \
1107 -:LDFLAGS $(libgstbase_@GST_API_VERSION@_la_LDFLAGS) \
1108 $(libgstbase_@GST_API_VERSION@_la_LIBADD) \
1109 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/base \
1110 -:HEADERS $(libgstbase_@GST_API_VERSION@include_HEADERS) \
1111 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
1112 > $@
1113
11141102 @HAVE_INTROSPECTION_TRUE@GstBase-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_API_VERSION@.la
1115 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
1103 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
11161104 @HAVE_INTROSPECTION_TRUE@ GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
11171105 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_SCANNER) -v --namespace GstBase \
11181106 @HAVE_INTROSPECTION_TRUE@ --nsversion=@GST_API_VERSION@ \
529529
530530 g_object_unref (parse->priv->adapter);
531531
532 if (parse->priv->cache) {
533 gst_buffer_unref (parse->priv->cache);
534 parse->priv->cache = NULL;
535 }
536
537 g_list_foreach (parse->priv->pending_events, (GFunc) gst_mini_object_unref,
538 NULL);
539 g_list_free (parse->priv->pending_events);
540 parse->priv->pending_events = NULL;
541
542532 if (parse->priv->index) {
543533 gst_object_unref (parse->priv->index);
544534 parse->priv->index = NULL;
769759 }
770760
771761 static inline void
772 gst_base_parse_frame_update (GstBaseParse * parse, GstBaseParseFrame * frame,
773 GstBuffer * buf)
774 {
775 gst_buffer_replace (&frame->buffer, buf);
776
762 gst_base_parse_update_flags (GstBaseParse * parse)
763 {
777764 parse->flags = 0;
778765
779766 /* set flags one by one for clarity */
783770 /* losing sync is pretty much a discont (and vice versa), no ? */
784771 if (G_UNLIKELY (parse->priv->discont))
785772 parse->flags |= GST_BASE_PARSE_FLAG_LOST_SYNC;
773 }
774
775 static inline void
776 gst_base_parse_update_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
777 {
778 if (G_UNLIKELY (parse->priv->discont)) {
779 GST_DEBUG_OBJECT (parse, "marking DISCONT");
780 GST_BUFFER_FLAG_SET (frame->buffer, GST_BUFFER_FLAG_DISCONT);
781 }
782
783 if (parse->priv->prev_offset != parse->priv->offset || parse->priv->new_frame) {
784 GST_LOG_OBJECT (parse, "marking as new frame");
785 frame->flags |= GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME;
786 }
787
788 frame->offset = parse->priv->prev_offset = parse->priv->offset;
786789 }
787790
788791 static void
11461149 gst_base_parse_drain (parse);
11471150 else
11481151 gst_base_parse_finish_fragment (parse, FALSE);
1152 /* Also forward event immediately, there might be no new data
1153 * coming afterwards that would allow us to forward it later */
1154 forward_immediate = TRUE;
11491155 break;
11501156
11511157 case GST_EVENT_FLUSH_START:
11741180 gst_base_parse_finish_fragment (parse, TRUE);
11751181
11761182 /* If we STILL have zero frames processed, fire an error */
1177 if (parse->priv->framecount == 0 && !parse->priv->saw_gaps) {
1183 if (parse->priv->framecount == 0 && !parse->priv->saw_gaps &&
1184 !parse->priv->first_buffer) {
11781185 GST_ELEMENT_ERROR (parse, STREAM, WRONG_TYPE,
11791186 ("No valid frames found before end of stream"), (NULL));
11801187 }
19251932 GST_BUFFER_OFFSET (buffer), GST_BUFFER_OFFSET (buffer),
19261933 gst_buffer_get_size (buffer));
19271934
1928 if (parse->priv->discont) {
1929 GST_DEBUG_OBJECT (parse, "marking DISCONT");
1930 GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
1931 parse->priv->discont = FALSE;
1932 }
1933
19341935 GST_BUFFER_OFFSET (buffer) = parse->priv->offset;
19351936
1937 gst_base_parse_update_flags (parse);
1938
19361939 frame = gst_base_parse_frame_new (buffer, 0, 0);
1937
1938 /* also ensure to update state flags */
1939 gst_base_parse_frame_update (parse, frame, buffer);
19401940 gst_buffer_unref (buffer);
1941
1942 if (parse->priv->prev_offset != parse->priv->offset || parse->priv->new_frame) {
1943 GST_LOG_OBJECT (parse, "marking as new frame");
1944 parse->priv->new_frame = FALSE;
1945 frame->flags |= GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME;
1946 }
1947
1948 frame->offset = parse->priv->prev_offset = parse->priv->offset;
1941 gst_base_parse_update_frame (parse, frame);
1942
1943 /* clear flags for next frame */
1944 parse->priv->discont = FALSE;
1945 parse->priv->new_frame = FALSE;
19491946
19501947 /* use default handler to provide initial (upstream) metadata */
19511948 gst_base_parse_parse_frame (parse, frame);
29532950 gst_base_parse_frame_free (&frame);
29542951 return ret;
29552952 }
2956 /* upstream feeding us in reverse playback;
2957 * finish previous fragment and start new upon DISCONT */
2958 if (parse->segment.rate < 0.0) {
2959 if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
2953 if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
2954 /* upstream feeding us in reverse playback;
2955 * finish previous fragment and start new upon DISCONT */
2956 if (parse->segment.rate < 0.0) {
29602957 GST_DEBUG_OBJECT (parse, "buffer starts new reverse playback fragment");
29612958 ret = gst_base_parse_finish_fragment (parse, TRUE);
29622959 gst_base_parse_start_fragment (parse);
2960 } else {
2961 /* discont in the stream, drain and mark discont for next output */
2962 gst_base_parse_drain (parse);
2963 parse->priv->discont = TRUE;
29632964 }
29642965 }
29652966 gst_adapter_push (parse->priv->adapter, buffer);
17041704
17051705 gst_element_post_message (GST_ELEMENT (src), message);
17061706 }
1707
1708 /* for deriving a stop position for the playback segment from the seek
1709 * segment, we must take the duration when the stop is not set */
1710 /* FIXME: This is never used below */
1711 if ((stop = seeksegment.stop) == -1)
1712 stop = seeksegment.duration;
17131707
17141708 src->priv->segment_pending = TRUE;
17151709 src->priv->segment_seqnum = seqnum;
17991793 GST_OBJECT_LOCK (src->srcpad);
18001794 start = (GST_PAD_MODE (src->srcpad) == GST_PAD_MODE_PUSH);
18011795 GST_OBJECT_UNLOCK (src->srcpad);
1796
1797 if (src->is_live) {
1798 if (!src->live_running)
1799 start = FALSE;
1800 }
1801
18021802 if (start)
18031803 gst_pad_start_task (src->srcpad, (GstTaskFunction) gst_base_src_loop,
18041804 src->srcpad, NULL);
22372237 if (!GST_CLOCK_TIME_IS_VALID (dts)) {
22382238 if (do_timestamp) {
22392239 dts = running_time;
2240 } else {
2240 } else if (!GST_CLOCK_TIME_IS_VALID (pts)) {
22412241 if (GST_CLOCK_TIME_IS_VALID (basesrc->segment.start)) {
22422242 dts = basesrc->segment.start;
22432243 } else {
31083108 GST_ELEMENT_ERROR (basesrc, RESOURCE, SETTINGS,
31093109 ("Failed to configure the buffer pool"),
31103110 ("Configuration is most likely invalid, please report this issue."));
3111 gst_object_unref (pool);
31113112 return FALSE;
31123113 }
31133114
38583859 * @src: a #GstBaseSrc
38593860 *
38603861 * Returns: (transfer full): the instance of the #GstBufferPool used
3861 * by the src; free it after use it
3862 * by the src; unref it after usage.
38623863 */
38633864 GstBufferPool *
38643865 gst_base_src_get_buffer_pool (GstBaseSrc * src)
38823883 * Lets #GstBaseSrc sub-classes to know the memory @allocator
38833884 * used by the base class and its @params.
38843885 *
3885 * Unref the @allocator after use it.
3886 * Unref the @allocator after usage.
38863887 */
38873888 void
38883889 gst_base_src_get_allocator (GstBaseSrc * src,
27852785 if (params)
27862786 *params = trans->priv->params;
27872787 }
2788
2789 /**
2790 * gst_base_transform_update_src_caps:
2791 * @trans: a #GstBaseTransform
2792 * @updated_caps: An updated version of the srcpad caps to be pushed
2793 * downstream
2794 *
2795 * Updates the srcpad caps and send the caps downstream. This function
2796 * can be used by subclasses when they have already negotiated their caps
2797 * but found a change in them (or computed new informations). This way,
2798 * they can notify downstream about that change without loosing any
2799 * buffer.
2800 *
2801 * Returns: %TRUE if the caps could be send downstream %FALSE otherwise
2802 *
2803 * Since: 1.6
2804 */
2805 gboolean
2806 gst_base_transform_update_src_caps (GstBaseTransform * trans,
2807 GstCaps * updated_caps)
2808 {
2809 g_return_val_if_fail (GST_IS_BASE_TRANSFORM (trans), FALSE);
2810
2811 if (gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (trans),
2812 gst_event_new_caps (updated_caps))) {
2813 gst_pad_mark_reconfigure (trans->srcpad);
2814
2815 return TRUE;
2816 }
2817
2818 return FALSE;
2819 }
292292
293293 void gst_base_transform_reconfigure_sink (GstBaseTransform *trans);
294294 void gst_base_transform_reconfigure_src (GstBaseTransform *trans);
295 gboolean gst_base_transform_update_src_caps (GstBaseTransform *trans,
296 GstCaps *updated_caps);
295297 G_END_DECLS
296298
297299 #endif /* __GST_BASE_TRANSFORM_H__ */
138138 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_API_VERSION@_la_SOURCES))
139139
140140 GstCheck-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_API_VERSION@.la
141 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
141 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
142142 GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
143143 $(INTROSPECTION_SCANNER) -v --namespace GstCheck \
144144 --nsversion=@GST_API_VERSION@ \
12331233 done
12341234
12351235 @HAVE_INTROSPECTION_TRUE@GstCheck-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_API_VERSION@.la
1236 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
1236 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
12371237 @HAVE_INTROSPECTION_TRUE@ GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
12381238 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_SCANNER) -v --namespace GstCheck \
12391239 @HAVE_INTROSPECTION_TRUE@ --nsversion=@GST_API_VERSION@ \
115115 GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code)
116116 #define assert_message_error(m, d, c) fail_unless_message_error(m, d, c)
117117
118 #ifdef GST_CHECK_TEST_ENVIRONMENT_BEACON
119 #define GST_DO_CHECK_TEST_ENVIRONMENT \
120 G_STMT_START { \
121 if (g_getenv (GST_CHECK_TEST_ENVIRONMENT_BEACON) == NULL) \
122 fail ("Test environment not set up correctly! Expected environment " \
123 "variable '%s' to be set.", GST_CHECK_TEST_ENVIRONMENT_BEACON); \
124 } G_STMT_END
125
126 #else
127 #define GST_DO_CHECK_TEST_ENVIRONMENT /* nothing to check */
128 #endif
129
118130 /**
119131 * GST_START_TEST:
120132 * @__testname: test function name
130142 static void __testname (int __i__)\
131143 {\
132144 GST_DEBUG ("test start"); \
145 GST_DO_CHECK_TEST_ENVIRONMENT; \
133146 tcase_fn_start (""# __testname, __FILE__, __LINE__);
134147
135148 #define GST_END_TEST GST_LOG ("cleaning up tasks"); \
9393 static int alarm_received;
9494 static pid_t group_pid;
9595
96 #if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
97 static struct sigaction old_action[3];
98 static struct sigaction new_action[3];
99 #endif /* HAVE_SIGACTION && HAVE_FORK */
100
96101 static void CK_ATTRIBUTE_UNUSED
97102 sig_handler (int sig_nr)
98103 {
101106 alarm_received = 1;
102107 killpg (group_pid, SIGKILL);
103108 break;
109 case SIGTERM:
110 case SIGINT:{
111 pid_t own_group_pid;
112 int idx;
113 int child_sig;
114
115 if (sig_nr == SIGINT) {
116 idx = 1;
117 child_sig = SIGKILL;
118 } else { /* if (sig_nr == SIGTERM) */
119
120 idx = 2;
121 child_sig = SIGTERM;
122 }
123
124 killpg (group_pid, child_sig);
125
126 /* Restore old signal handler... */
127 sigaction (sig_nr, &old_action[idx], NULL);
128
129 /* ... and call it. POSIX says that calling killpg(0)
130 * does not necessarily mean to call it on the callers
131 * group pid! */
132 own_group_pid = getpgrp ();
133 killpg (own_group_pid, sig_nr);
134 break;
135 }
104136 default:
105137 eprintf ("Unhandled signal: %d", __FILE__, __LINE__, sig_nr);
106138 break;
647679 srunner_run (SRunner * sr, const char *sname, const char *tcname,
648680 enum print_output print_mode)
649681 {
650 #if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
651 struct sigaction old_action;
652 struct sigaction new_action;
653 #endif /* HAVE_SIGACTION && HAVE_FORK */
654
655 /* Get the selected test suite and test case from the
682 /* Get the selected test suite and test case from the
656683 environment. */
657684 if (!tcname)
658685 tcname = getenv ("CK_RUN_CASE");
667694 }
668695 #if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
669696 memset (&new_action, 0, sizeof new_action);
670 new_action.sa_handler = sig_handler;
671 sigaction (SIGALRM, &new_action, &old_action);
697 new_action[0].sa_handler = sig_handler;
698 sigaction (SIGALRM, &new_action[0], &old_action[0]);
699 new_action[1].sa_handler = sig_handler;
700 sigaction (SIGINT, &new_action[1], &old_action[1]);
701 new_action[2].sa_handler = sig_handler;
702 sigaction (SIGTERM, &new_action[2], &old_action[2]);
672703 #endif /* HAVE_SIGACTION && HAVE_FORK */
673704 srunner_run_init (sr, print_mode);
674705 srunner_iterate_suites (sr, sname, tcname, print_mode);
675706 srunner_run_end (sr, print_mode);
676707 #if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
677 sigaction (SIGALRM, &old_action, NULL);
708 sigaction (SIGALRM, &old_action[0], NULL);
709 sigaction (SIGINT, &old_action[1], NULL);
710 sigaction (SIGTERM, &old_action[2], NULL);
678711 #endif /* HAVE_SIGACTION && HAVE_FORK */
679712 }
680713
2828
2929 gcov: $(libgstcontroller_@GST_API_VERSION@_la_SOURCES:=.gcov)
3030
31 Android.mk: Makefile.am
32 androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_API_VERSION@ -:TAGS eng debug \
33 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
34 -:SOURCES $(libgstcontroller_@GST_API_VERSION@_la_SOURCES) \
35 -:CFLAGS $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
36 -:LDFLAGS $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
37 $(libgstcontroller_@GST_API_VERSION@_la_LIBADD) \
38 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/controller \
39 -:HEADERS $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
40 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
41 > $@
42
4331 if HAVE_INTROSPECTION
4432 BUILT_GIRSOURCES = GstController-@GST_API_VERSION@.gir
4533
4735 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_API_VERSION@_la_SOURCES))
4836
4937 GstController-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_API_VERSION@.la
50 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
38 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
5139 GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
5240 $(INTROSPECTION_SCANNER) -v --namespace GstController \
5341 --nsversion=@GST_API_VERSION@ \
934934
935935 gcov: $(libgstcontroller_@GST_API_VERSION@_la_SOURCES:=.gcov)
936936
937 Android.mk: Makefile.am
938 androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_API_VERSION@ -:TAGS eng debug \
939 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
940 -:SOURCES $(libgstcontroller_@GST_API_VERSION@_la_SOURCES) \
941 -:CFLAGS $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
942 -:LDFLAGS $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
943 $(libgstcontroller_@GST_API_VERSION@_la_LIBADD) \
944 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/controller \
945 -:HEADERS $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
946 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
947 > $@
948
949937 @HAVE_INTROSPECTION_TRUE@GstController-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_API_VERSION@.la
950 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
938 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
951939 @HAVE_INTROSPECTION_TRUE@ GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
952940 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_SCANNER) -v --namespace GstController \
953941 @HAVE_INTROSPECTION_TRUE@ --nsversion=@GST_API_VERSION@ \
77 bashhelpersdir = $(BASH_HELPERS_DIR)
88 dist_bashhelpers_DATA = gst
99
10 install-data-hook:
10 install-exec-hook:
11 $(MKDIR_P) $(DESTDIR)$(BASH_HELPERS_DIR) && \
1112 cd $(DESTDIR)$(bindir) && \
12 mv `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
13 $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
14 chmod 755 $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
13 $(INSTALL) `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
14 $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT) && \
15 rm `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT)
16
17 uninstall-hook:
18 rm -f $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
1519 endif
1620
1721 helpers_PROGRAMS = gst-plugin-scanner
2125 gst_plugin_scanner_CFLAGS = $(GST_OBJ_CFLAGS)
2226 gst_plugin_scanner_LDADD = $(GST_OBJ_LIBS)
2327
24 Android.mk: Makefile.am
25 androgenizer -:PROJECT gstreamer -:EXECUTABLE gst-plugin-scanner -:TAGS eng debug \
26 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
27 -:SOURCES $(gst_plugin_scanner_SOURCES) \
28 -:CFLAGS $(gst_plugin_scanner_CFLAGS) \
29 -:LDFLAGS $(gst_plugin_scanner_LDADD) \
30 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
31 > $@
32
3328 # clean out the old one to make sure everything is udpated correctly
3429 # remove again after release
3530 CLEANFILES = plugin-scanner
31
32 if ENABLE_BASH_COMPLETION
33 CLEANFILES += gst-completion-helper-@GST_API_VERSION@
34 endif
8181 target_triplet = @target@
8282 @ENABLE_BASH_COMPLETION_TRUE@bin_PROGRAMS = gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
8383 helpers_PROGRAMS = gst-plugin-scanner$(EXEEXT)
84 @ENABLE_BASH_COMPLETION_TRUE@am__append_1 = gst-completion-helper-@GST_API_VERSION@
8485 subdir = libs/gst/helpers
8586 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
8687 $(top_srcdir)/depcomp $(am__dist_bashhelpers_DATA_DIST)
540541
541542 # clean out the old one to make sure everything is udpated correctly
542543 # remove again after release
543 CLEANFILES = plugin-scanner
544 CLEANFILES = plugin-scanner $(am__append_1)
544545 all: all-am
545546
546547 .SUFFIXES:
890891 maintainer-clean-generic:
891892 @echo "This command is intended for maintainers to use"
892893 @echo "it deletes files that may require special tools to rebuild."
893 @ENABLE_BASH_COMPLETION_FALSE@install-data-hook:
894 @ENABLE_BASH_COMPLETION_FALSE@install-exec-hook:
895 @ENABLE_BASH_COMPLETION_FALSE@uninstall-hook:
894896 clean: clean-am
895897
896898 clean-am: clean-binPROGRAMS clean-generic clean-helpersPROGRAMS \
915917 info-am:
916918
917919 install-data-am: install-dist_bashhelpersDATA install-helpersPROGRAMS
920
921 install-dvi: install-dvi-am
922
923 install-dvi-am:
924
925 install-exec-am: install-binPROGRAMS
918926 @$(NORMAL_INSTALL)
919 $(MAKE) $(AM_MAKEFLAGS) install-data-hook
920 install-dvi: install-dvi-am
921
922 install-dvi-am:
923
924 install-exec-am: install-binPROGRAMS
925
927 $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
926928 install-html: install-html-am
927929
928930 install-html-am:
963965
964966 uninstall-am: uninstall-binPROGRAMS uninstall-dist_bashhelpersDATA \
965967 uninstall-helpersPROGRAMS
966
967 .MAKE: install-am install-data-am install-strip
968 @$(NORMAL_INSTALL)
969 $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
970 .MAKE: install-am install-exec-am install-strip uninstall-am
968971
969972 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
970973 clean-binPROGRAMS clean-generic clean-helpersPROGRAMS \
972975 distclean-compile distclean-generic distclean-libtool \
973976 distclean-tags distdir dvi dvi-am html html-am info info-am \
974977 install install-am install-binPROGRAMS install-data \
975 install-data-am install-data-hook install-dist_bashhelpersDATA \
976 install-dvi install-dvi-am install-exec install-exec-am \
978 install-data-am install-dist_bashhelpersDATA install-dvi \
979 install-dvi-am install-exec install-exec-am install-exec-hook \
977980 install-helpersPROGRAMS install-html install-html-am \
978981 install-info install-info-am install-man install-pdf \
979982 install-pdf-am install-ps install-ps-am install-strip \
981984 maintainer-clean-generic mostlyclean mostlyclean-compile \
982985 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
983986 tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
984 uninstall-dist_bashhelpersDATA uninstall-helpersPROGRAMS
985
986
987 @ENABLE_BASH_COMPLETION_TRUE@install-data-hook:
987 uninstall-dist_bashhelpersDATA uninstall-helpersPROGRAMS \
988 uninstall-hook
989
990
991 @ENABLE_BASH_COMPLETION_TRUE@install-exec-hook:
992 @ENABLE_BASH_COMPLETION_TRUE@ $(MKDIR_P) $(DESTDIR)$(BASH_HELPERS_DIR) && \
988993 @ENABLE_BASH_COMPLETION_TRUE@ cd $(DESTDIR)$(bindir) && \
989 @ENABLE_BASH_COMPLETION_TRUE@ mv `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
990 @ENABLE_BASH_COMPLETION_TRUE@ $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
991 @ENABLE_BASH_COMPLETION_TRUE@ chmod 755 $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
992
993 Android.mk: Makefile.am
994 androgenizer -:PROJECT gstreamer -:EXECUTABLE gst-plugin-scanner -:TAGS eng debug \
995 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
996 -:SOURCES $(gst_plugin_scanner_SOURCES) \
997 -:CFLAGS $(gst_plugin_scanner_CFLAGS) \
998 -:LDFLAGS $(gst_plugin_scanner_LDADD) \
999 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
1000 > $@
994 @ENABLE_BASH_COMPLETION_TRUE@ $(INSTALL) `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
995 @ENABLE_BASH_COMPLETION_TRUE@ $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT) && \
996 @ENABLE_BASH_COMPLETION_TRUE@ rm `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT)
997
998 @ENABLE_BASH_COMPLETION_TRUE@uninstall-hook:
999 @ENABLE_BASH_COMPLETION_TRUE@ rm -f $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
10011000
10021001 # Tell versions [3.59,3.63) of GNU make to not export all variables.
10031002 # Otherwise a system limit (for SysV at least) may be exceeded.
1717 # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
1818 # Boston, MA 02110-1301, USA.
1919
20 ___gst_debug_level () { _mandatory__argument; }
21 ___gst_debug () { _mandatory__argument; }
22 ___gst_debug_color_mode () { _mandatory__argument; }
23 ___gst_plugin_path () { _mandatory__argument; }
24 ___gst_plugin_load () { _mandatory__argument; }
20 ___gst_debug_level () { _gst_mandatory_argument; }
21 ___gst_debug () { _gst_mandatory_argument; }
22 ___gst_debug_color_mode () { _gst_mandatory_argument; }
23 ___gst_plugin_path () { _gst_mandatory_argument; }
24 ___gst_plugin_load () { _gst_mandatory_argument; }
2525
26 _mandatory__argument ()
26 _gst_mandatory_argument ()
2727 {
2828 if [[ "$prev" != "$command" ]]
2929 then
2727
2828 gcov: $(libgstnet_@GST_API_VERSION@_la_SOURCES:=.gcov)
2929
30 Android.mk: Makefile.am
31 androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_API_VERSION@ -:TAGS eng debug \
32 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
33 -:SOURCES $(libgstnet_@GST_API_VERSION@_la_SOURCES) \
34 -:CFLAGS $(libgstnet_@GST_API_VERSION@_la_CFLAGS) \
35 -:LDFLAGS $(libgstnet_@GST_API_VERSION@_la_LDFLAGS) \
36 $(libgstnet_@GST_API_VERSION@_la_LIBADD) \
37 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/net \
38 -:HEADERS $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
39 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
40 > $@
41
4230
4331 if HAVE_INTROSPECTION
4432 BUILT_GIRSOURCES = GstNet-@GST_API_VERSION@.gir
4836 gir_cincludes=--c-include="gst/net/net.h"
4937
5038 GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la
51 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
39 $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
5240 GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
5341 $(INTROSPECTION_SCANNER) -v --namespace GstNet \
5442 --strip-prefix=Gst \
925925
926926 gcov: $(libgstnet_@GST_API_VERSION@_la_SOURCES:=.gcov)
927927
928 Android.mk: Makefile.am
929 androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_API_VERSION@ -:TAGS eng debug \
930 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
931 -:SOURCES $(libgstnet_@GST_API_VERSION@_la_SOURCES) \
932 -:CFLAGS $(libgstnet_@GST_API_VERSION@_la_CFLAGS) \
933 -:LDFLAGS $(libgstnet_@GST_API_VERSION@_la_LDFLAGS) \
934 $(libgstnet_@GST_API_VERSION@_la_LIBADD) \
935 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/net \
936 -:HEADERS $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
937 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
938 > $@
939
940928 @HAVE_INTROSPECTION_TRUE@GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la
941 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
929 @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
942930 @HAVE_INTROSPECTION_TRUE@ GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
943931 @HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_SCANNER) -v --namespace GstNet \
944932 @HAVE_INTROSPECTION_TRUE@ --strip-prefix=Gst \
00 SUBDIRS = elements
11
22 DIST_SUBDIRS = elements
3
4 Android.mk: Makefile.am
5 androgenizer -:PROJECT gstreamer \
6 -:SUBDIR $(patsubst %,plugins/%, $(SUBDIRS)) \
7 > $@
796796 ps ps-am tags tags-am uninstall uninstall-am
797797
798798
799 Android.mk: Makefile.am
800 androgenizer -:PROJECT gstreamer \
801 -:SUBDIR $(patsubst %,plugins/%, $(SUBDIRS)) \
802 > $@
803
804799 # Tell versions [3.59,3.63) of GNU make to not export all variables.
805800 # Otherwise a system limit (for SysV at least) may be exceeded.
806801 .NOEXPORT:
6767 $(GCOV) -b -f -o $^ > $@.out
6868
6969 gcov: $(libgstcoreelements_la_SOURCES:=.gcov)
70
71 Android.mk: Makefile.am
72 androgenizer -:PROJECT gstreamer -:SHARED libgstcoreelements -:TAGS eng debug \
73 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
74 -:SOURCES $(libgstcoreelements_la_SOURCES) \
75 -:CFLAGS $(DEFS) $(libgstcoreelements_la_CFLAGS) \
76 -:LDFLAGS $(libgstcoreelements_la_LDFLAGS) \
77 $(libgstcoreelements_la_LIBADD) \
78 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
79 LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_API_VERSION@ \
80 > $@
11011101
11021102 gcov: $(libgstcoreelements_la_SOURCES:=.gcov)
11031103
1104 Android.mk: Makefile.am
1105 androgenizer -:PROJECT gstreamer -:SHARED libgstcoreelements -:TAGS eng debug \
1106 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
1107 -:SOURCES $(libgstcoreelements_la_SOURCES) \
1108 -:CFLAGS $(DEFS) $(libgstcoreelements_la_CFLAGS) \
1109 -:LDFLAGS $(libgstcoreelements_la_LDFLAGS) \
1110 $(libgstcoreelements_la_LIBADD) \
1111 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
1112 LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_API_VERSION@ \
1113 > $@
1114
11151104 # Tell versions [3.59,3.63) of GNU make to not export all variables.
11161105 # Otherwise a system limit (for SysV at least) may be exceeded.
11171106 .NOEXPORT:
2727 * <refsect2>
2828 * <title>Example launch line</title>
2929 * |[
30 * gst-launch videotestsrc ! video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
31 * ]| Limits acceptable video from videotestsrc to be grayscale.
30 * gst-launch-1.0 videotestsrc ! capsfilter caps=video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
31 * ]| Limits acceptable video from videotestsrc to be grayscale. Equivalent to
32 * |[
33 * gst-launch-1.0 videotestsrc ! video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
34 * ]| which is a short notation for the capsfilter element.
3235 * </refsect2>
3336 */
3437
2727 * <refsect2>
2828 * <title>Example launch line</title>
2929 * |[
30 * gst-launch audiotestsrc num-buffers=1000 ! fakesink sync=false
30 * gst-launch-1.0 audiotestsrc num-buffers=1000 ! fakesink sync=false
3131 * ]| Render 1000 audio buffers (of default size) as fast as possible.
3232 * </refsect2>
3333 */
3131 * <refsect2>
3232 * <title>Example launch line</title>
3333 * |[
34 * gst-launch -v fakesrc num-buffers=5 ! fakesink
34 * gst-launch-1.0 -v fakesrc num-buffers=5 ! fakesink
3535 * ]| This pipeline will push 5 empty buffers to the fakesink element and then
3636 * sends an EOS.
3737 * </refsect2>
2929 * The above mentioned pipeline should dump data packets to the console.
3030 *
3131 * If the #GstFdSrc:timeout property is set to a value bigger than 0, fdsrc will
32 * generate an element message named
33 * <classname>&quot;GstFdSrcTimeout&quot;</classname>
32 * generate an element message named <classname>&quot;GstFdSrcTimeout&quot;</classname>
3433 * if no data was received in the given timeout.
34 *
3535 * The message's structure contains one field:
3636 * <itemizedlist>
3737 * <listitem>
4646 * <refsect2>
4747 * <title>Example launch line</title>
4848 * |[
49 * echo "Hello GStreamer" | gst-launch -v fdsrc ! fakesink dump=true
49 * echo "Hello GStreamer" | gst-launch-1.0 -v fdsrc ! fakesink dump=true
5050 * ]| A simple pipeline to read from the standard input and dump the data
5151 * with a fakesink as hex ascii block.
5252 * </refsect2>
2828 * <refsect2>
2929 * <title>Example launch line</title>
3030 * |[
31 * gst-launch v4l2src num-buffers=1 ! jpegenc ! filesink location=capture1.jpeg
31 * gst-launch-1.0 v4l2src num-buffers=1 ! jpegenc ! filesink location=capture1.jpeg
3232 * ]| Capture one frame from a v4l2 camera and save as jpeg image.
3333 * </refsect2>
3434 */
2727 * <refsect2>
2828 * <title>Example launch line</title>
2929 * |[
30 * gst-launch filesrc location=song.ogg ! decodebin ! autoaudiosink
31 * ]| Play a song.ogg from local dir.
30 * gst-launch-1.0 filesrc location=song.ogg ! decodebin ! audioconvert ! audioresample ! autoaudiosink
31 * ]| Play song.ogg audio file which must be in the current working directory.
3232 * </refsect2>
3333 */
3434
111111
112112 static GstFlowReturn gst_funnel_sink_chain (GstPad * pad, GstObject * parent,
113113 GstBuffer * buffer);
114 static GstFlowReturn gst_funnel_sink_chain_list (GstPad * pad,
115 GstObject * parent, GstBufferList * list);
114116 static gboolean gst_funnel_sink_event (GstPad * pad, GstObject * parent,
115117 GstEvent * event);
116118
182184
183185 gst_pad_set_chain_function (sinkpad,
184186 GST_DEBUG_FUNCPTR (gst_funnel_sink_chain));
187 gst_pad_set_chain_list_function (sinkpad,
188 GST_DEBUG_FUNCPTR (gst_funnel_sink_chain_list));
185189 gst_pad_set_event_function (sinkpad,
186190 GST_DEBUG_FUNCPTR (gst_funnel_sink_event));
187191
260264 }
261265
262266 static GstFlowReturn
263 gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
267 gst_funnel_sink_chain_object (GstPad * pad, GstFunnel * funnel,
268 gboolean is_list, GstMiniObject * obj)
264269 {
265270 GstFlowReturn res;
266 GstFunnel *funnel = GST_FUNNEL (parent);
267
268 GST_DEBUG_OBJECT (funnel, "received buffer %p", buffer);
271
272 GST_DEBUG_OBJECT (funnel, "received buffer%s %p", (is_list ? "list" : ""),
273 obj);
269274
270275 GST_PAD_STREAM_LOCK (funnel->srcpad);
271276
276281 gst_pad_sticky_events_foreach (pad, forward_events, funnel->srcpad);
277282 }
278283
279 res = gst_pad_push (funnel->srcpad, buffer);
284 if (is_list)
285 res = gst_pad_push_list (funnel->srcpad, GST_BUFFER_LIST_CAST (obj));
286 else
287 res = gst_pad_push (funnel->srcpad, GST_BUFFER_CAST (obj));
280288
281289 GST_PAD_STREAM_UNLOCK (funnel->srcpad);
282290
283 GST_LOG_OBJECT (funnel, "handled buffer %s", gst_flow_get_name (res));
291 GST_LOG_OBJECT (funnel, "handled buffer%s %s", (is_list ? "list" : ""),
292 gst_flow_get_name (res));
284293
285294 return res;
295 }
296
297 static GstFlowReturn
298 gst_funnel_sink_chain_list (GstPad * pad, GstObject * parent,
299 GstBufferList * list)
300 {
301 GstFunnel *funnel = GST_FUNNEL (parent);
302
303 return gst_funnel_sink_chain_object (pad, funnel, TRUE,
304 GST_MINI_OBJECT_CAST (list));
305 }
306
307 static GstFlowReturn
308 gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
309 {
310 GstFunnel *funnel = GST_FUNNEL (parent);
311
312 return gst_funnel_sink_chain_object (pad, funnel, FALSE,
313 GST_MINI_OBJECT_CAST (buffer));
286314 }
287315
288316 static gboolean
111111 GstStateChange transition);
112112 static gboolean gst_identity_accept_caps (GstBaseTransform * base,
113113 GstPadDirection direction, GstCaps * caps);
114 static gboolean gst_identity_query (GstBaseTransform * base,
115 GstPadDirection direction, GstQuery * query);
114116
115117 static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
116118
124126 identity = GST_IDENTITY (object);
125127
126128 g_free (identity->last_message);
129 g_cond_clear (&identity->blocked_cond);
127130
128131 G_OBJECT_CLASS (parent_class)->finalize (object);
129132 }
238241 gstbasetrans_class->stop = GST_DEBUG_FUNCPTR (gst_identity_stop);
239242 gstbasetrans_class->accept_caps =
240243 GST_DEBUG_FUNCPTR (gst_identity_accept_caps);
244 gstbasetrans_class->query = gst_identity_query;
241245 }
242246
243247 static void
255259 identity->dump = DEFAULT_DUMP;
256260 identity->last_message = NULL;
257261 identity->signal_handoffs = DEFAULT_SIGNAL_HANDOFFS;
262 g_cond_init (&identity->blocked_cond);
258263
259264 gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM_CAST (identity), TRUE);
260265 }
263268 gst_identity_notify_last_message (GstIdentity * identity)
264269 {
265270 g_object_notify_by_pspec ((GObject *) identity, pspec_last_message);
271 }
272
273 static GstFlowReturn
274 gst_identity_do_sync (GstIdentity * identity, GstClockTime running_time)
275 {
276 GstFlowReturn ret = GST_FLOW_OK;
277
278 if (identity->sync &&
279 GST_BASE_TRANSFORM_CAST (identity)->segment.format == GST_FORMAT_TIME) {
280 GstClock *clock;
281
282 GST_OBJECT_LOCK (identity);
283
284 while (identity->blocked)
285 g_cond_wait (&identity->blocked_cond, GST_OBJECT_GET_LOCK (identity));
286
287
288 if ((clock = GST_ELEMENT (identity)->clock)) {
289 GstClockReturn cret;
290 GstClockTime timestamp;
291
292 timestamp = running_time + GST_ELEMENT (identity)->base_time +
293 identity->upstream_latency;
294
295 /* save id if we need to unlock */
296 identity->clock_id = gst_clock_new_single_shot_id (clock, timestamp);
297 GST_OBJECT_UNLOCK (identity);
298
299 cret = gst_clock_id_wait (identity->clock_id, NULL);
300
301 GST_OBJECT_LOCK (identity);
302 if (identity->clock_id) {
303 gst_clock_id_unref (identity->clock_id);
304 identity->clock_id = NULL;
305 }
306 if (cret == GST_CLOCK_UNSCHEDULED)
307 ret = GST_FLOW_EOS;
308 }
309 GST_OBJECT_UNLOCK (identity);
310 }
311
312 return ret;
266313 }
267314
268315 static gboolean
317364 }
318365 }
319366
320 /* also transform GAP timestamp similar to buffer timestamps */
321 if (identity->single_segment && (GST_EVENT_TYPE (event) == GST_EVENT_GAP) &&
367 if (GST_EVENT_TYPE (event) == GST_EVENT_GAP &&
322368 trans->have_segment && trans->segment.format == GST_FORMAT_TIME) {
323369 GstClockTime start, dur;
324370
326372 if (GST_CLOCK_TIME_IS_VALID (start)) {
327373 start = gst_segment_to_running_time (&trans->segment,
328374 GST_FORMAT_TIME, start);
329 gst_event_unref (event);
330 event = gst_event_new_gap (start, dur);
375
376 gst_identity_do_sync (identity, start);
377
378 /* also transform GAP timestamp similar to buffer timestamps */
379 if (identity->single_segment) {
380 gst_event_unref (event);
381 event = gst_event_new_gap (start, dur);
382 }
331383 }
332384 }
333385
501553 {
502554 GstFlowReturn ret = GST_FLOW_OK;
503555 GstIdentity *identity = GST_IDENTITY (trans);
504 GstClockTime runtimestamp = G_GINT64_CONSTANT (0);
505 GstClockTime ts, duration;
556 GstClockTime rundts = GST_CLOCK_TIME_NONE;
557 GstClockTime runpts = GST_CLOCK_TIME_NONE;
558 GstClockTime ts, duration, runtimestamp;
506559 gsize size;
507560
508561 size = gst_buffer_get_size (buf);
552605 if (identity->signal_handoffs)
553606 g_signal_emit (identity, gst_identity_signals[SIGNAL_HANDOFF], 0, buf);
554607
555 if (trans->segment.format == GST_FORMAT_TIME)
556 runtimestamp = gst_segment_to_running_time (&trans->segment,
557 GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (buf));
558
559 if ((identity->sync) && (trans->segment.format == GST_FORMAT_TIME)) {
560 GstClock *clock;
561
562 GST_OBJECT_LOCK (identity);
563 if ((clock = GST_ELEMENT (identity)->clock)) {
564 GstClockReturn cret;
565 GstClockTime timestamp;
566
567 timestamp = runtimestamp + GST_ELEMENT (identity)->base_time;
568
569 /* save id if we need to unlock */
570 identity->clock_id = gst_clock_new_single_shot_id (clock, timestamp);
571 GST_OBJECT_UNLOCK (identity);
572
573 cret = gst_clock_id_wait (identity->clock_id, NULL);
574
575 GST_OBJECT_LOCK (identity);
576 if (identity->clock_id) {
577 gst_clock_id_unref (identity->clock_id);
578 identity->clock_id = NULL;
579 }
580 if (cret == GST_CLOCK_UNSCHEDULED)
581 ret = GST_FLOW_EOS;
582 }
583 GST_OBJECT_UNLOCK (identity);
584 }
608 if (trans->segment.format == GST_FORMAT_TIME) {
609 rundts = gst_segment_to_running_time (&trans->segment,
610 GST_FORMAT_TIME, GST_BUFFER_DTS (buf));
611 runpts = gst_segment_to_running_time (&trans->segment,
612 GST_FORMAT_TIME, GST_BUFFER_PTS (buf));
613 }
614
615 if (GST_CLOCK_TIME_IS_VALID (rundts))
616 runtimestamp = rundts;
617 else if (GST_CLOCK_TIME_IS_VALID (runpts))
618 runtimestamp = runpts;
619 else
620 runtimestamp = 0;
621 ret = gst_identity_do_sync (identity, runtimestamp);
585622
586623 identity->offset += size;
587624
590627
591628 if (identity->single_segment && (trans->segment.format == GST_FORMAT_TIME)
592629 && (ret == GST_FLOW_OK)) {
593 GST_BUFFER_PTS (buf) = GST_BUFFER_DTS (buf) = runtimestamp;
630 GST_BUFFER_DTS (buf) = rundts;
631 GST_BUFFER_PTS (buf) = runpts;
594632 GST_BUFFER_OFFSET (buf) = GST_CLOCK_TIME_NONE;
595633 GST_BUFFER_OFFSET_END (buf) = GST_CLOCK_TIME_NONE;
596634 }
778816 return ret;
779817 }
780818
819 static gboolean
820 gst_identity_query (GstBaseTransform * base, GstPadDirection direction,
821 GstQuery * query)
822 {
823 GstIdentity *identity;
824 gboolean ret;
825
826 identity = GST_IDENTITY (base);
827
828 ret = GST_BASE_TRANSFORM_CLASS (parent_class)->query (base, direction, query);
829
830 if (GST_QUERY_TYPE (query) == GST_QUERY_LATENCY) {
831 gboolean live = FALSE;
832 GstClockTime min = 0, max = 0;
833
834 if (ret) {
835 gst_query_parse_latency (query, &live, &min, &max);
836
837 if (identity->sync && max < min) {
838 GST_ELEMENT_WARNING (base, CORE, CLOCK, (NULL),
839 ("Impossible to configure latency before identity sync=true:"
840 " max %" GST_TIME_FORMAT " < min %"
841 GST_TIME_FORMAT ". Add queues or other buffering elements.",
842 GST_TIME_ARGS (max), GST_TIME_ARGS (min)));
843 }
844 }
845
846 /* Ignore the upstream latency if it is not live */
847 GST_OBJECT_LOCK (identity);
848 if (live)
849 identity->upstream_latency = min;
850 else
851 identity->upstream_latency = 0;
852 GST_OBJECT_UNLOCK (identity);
853
854 gst_query_set_latency (query, live || identity->sync, min, max);
855 ret = TRUE;
856 }
857 return ret;
858 }
859
781860 static GstStateChangeReturn
782861 gst_identity_change_state (GstElement * element, GstStateChange transition)
783862 {
784863 GstStateChangeReturn ret;
785864 GstIdentity *identity = GST_IDENTITY (element);
865 gboolean no_preroll = FALSE;
786866
787867 switch (transition) {
788868 case GST_STATE_CHANGE_NULL_TO_READY:
789869 break;
790870 case GST_STATE_CHANGE_READY_TO_PAUSED:
871 GST_OBJECT_LOCK (identity);
872 identity->blocked = TRUE;
873 GST_OBJECT_UNLOCK (identity);
874 if (identity->sync)
875 no_preroll = TRUE;
791876 break;
792877 case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
878 GST_OBJECT_LOCK (identity);
879 identity->blocked = FALSE;
880 g_cond_broadcast (&identity->blocked_cond);
881 GST_OBJECT_UNLOCK (identity);
793882 break;
794883 case GST_STATE_CHANGE_PAUSED_TO_READY:
795884 GST_OBJECT_LOCK (identity);
799888 gst_clock_id_unref (identity->clock_id);
800889 identity->clock_id = NULL;
801890 }
891 identity->blocked = FALSE;
892 g_cond_broadcast (&identity->blocked_cond);
802893 GST_OBJECT_UNLOCK (identity);
803894 break;
804895 default:
809900
810901 switch (transition) {
811902 case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
903 GST_OBJECT_LOCK (identity);
904 identity->upstream_latency = 0;
905 identity->blocked = TRUE;
906 GST_OBJECT_UNLOCK (identity);
907 if (identity->sync)
908 no_preroll = TRUE;
812909 break;
813910 case GST_STATE_CHANGE_PAUSED_TO_READY:
814911 break;
818915 break;
819916 }
820917
918 if (no_preroll && ret == GST_STATE_CHANGE_SUCCESS)
919 ret = GST_STATE_CHANGE_NO_PREROLL;
920
821921 return ret;
822922 }
7171 gchar *last_message;
7272 guint64 offset;
7373 gboolean signal_handoffs;
74 GstClockTime upstream_latency;
75 GCond blocked_cond;
76 gboolean blocked;
7477 };
7578
7679 struct _GstIdentityClass {
124124 PROP_PAD_ALWAYS_OK
125125 };
126126
127 enum
128 {
129 /* methods */
130 SIGNAL_BLOCK,
131 SIGNAL_SWITCH,
132 LAST_SIGNAL
133 };
134 static guint gst_input_selector_signals[LAST_SIGNAL] = { 0 };
135
136127 static void gst_input_selector_active_pad_changed (GstInputSelector * sel,
137128 GParamSpec * pspec, gpointer user_data);
138129 static inline gboolean gst_input_selector_is_active_sinkpad (GstInputSelector *
139130 sel, GstPad * pad);
140 static GstPad *gst_input_selector_activate_sinkpad (GstInputSelector * sel,
141 GstPad * pad);
131 static GstPad *gst_input_selector_get_active_sinkpad (GstInputSelector * sel);
142132 static GstPad *gst_input_selector_get_linked_pad (GstInputSelector * sel,
143133 GstPad * pad, gboolean strict);
144134
163153 {
164154 GstPad parent;
165155
166 gboolean active; /* when buffer have passed the pad */
167156 gboolean pushed; /* when buffer was pushed downstream since activation */
168157 gboolean eos; /* when EOS has been received */
169158 gboolean eos_sent; /* when EOS was sent downstream */
331320 gint64 ret = 0;
332321
333322 GST_OBJECT_LOCK (pad);
334 if (pad->active) {
323 if (pad->segment.format == GST_FORMAT_TIME) {
335324 ret =
336325 gst_segment_to_running_time (&pad->segment, pad->segment.format,
337326 pad->segment.position);
349338 gst_selector_pad_reset (GstSelectorPad * pad)
350339 {
351340 GST_OBJECT_LOCK (pad);
352 pad->active = FALSE;
353341 pad->pushed = FALSE;
354342 pad->eos = FALSE;
355343 pad->eos_sent = FALSE;
375363 static void
376364 gst_selector_pad_free_cached_buffer (GstSelectorPadCachedBuffer * cached_buffer)
377365 {
378 gst_buffer_unref (cached_buffer->buffer);
366 if (cached_buffer->buffer)
367 gst_buffer_unref (cached_buffer->buffer);
379368 g_slice_free (GstSelectorPadCachedBuffer, cached_buffer);
380369 }
381370
433422 return it;
434423 }
435424
436 /* must be called with the SELECTOR_LOCK, will block while the pad is blocked
437 * or return TRUE when flushing */
438 static gboolean
439 gst_input_selector_wait (GstInputSelector * self, GstSelectorPad * pad)
440 {
441 while (!self->eos && self->blocked && !self->flushing && !pad->flushing) {
442 /* we can be unlocked here when we are shutting down (flushing) or when we
443 * get unblocked */
444 GST_INPUT_SELECTOR_WAIT (self);
445 }
446 return self->flushing;
447 }
448
449425 static gboolean
450426 gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
451427 {
464440 GST_INPUT_SELECTOR_LOCK (sel);
465441 prev_active_sinkpad =
466442 sel->active_sinkpad ? gst_object_ref (sel->active_sinkpad) : NULL;
467 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
443 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
468444 gst_object_ref (active_sinkpad);
469445 GST_INPUT_SELECTOR_UNLOCK (sel);
470446
479455 gst_object_unref (active_sinkpad);
480456
481457 GST_INPUT_SELECTOR_LOCK (sel);
482 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
458 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
483459
484460 /* only forward if we are dealing with the active sinkpad */
485461 forward = (pad == active_sinkpad);
534510 selpad->eos = TRUE;
535511
536512 if (!forward) {
537 /* blocked until active the sind pad or flush */
538 gst_input_selector_wait (sel, selpad);
539513 forward = TRUE;
514 /* Wait until we're the active sink pad or we're flushing */
515 while (!sel->eos && !sel->flushing && !selpad->flushing)
516 GST_INPUT_SELECTOR_WAIT (sel);
540517 } else {
541518 /* Notify all waiting pads about going EOS now */
542519 sel->eos = TRUE;
543520 GST_INPUT_SELECTOR_BROADCAST (sel);
544521 }
545522
523 if (sel->eos_sent) {
524 gst_event_unref (event);
525 event = NULL;
526 } else {
527 /* prevent any further EOS event being pushed */
528 sel->eos_sent = TRUE;
529 }
530
546531 selpad->eos_sent = TRUE;
532
547533 GST_DEBUG_OBJECT (pad, "received EOS");
548534 break;
549535 case GST_EVENT_GAP:{
572558 GST_INPUT_SELECTOR_UNLOCK (sel);
573559 if (new_tags)
574560 g_object_notify (G_OBJECT (selpad), "tags");
575 if (forward) {
576 GST_DEBUG_OBJECT (pad, "forwarding event");
577 res = gst_pad_push_event (sel->srcpad, event);
578 } else {
579 /* If we aren't forwarding the event because the pad is not the
580 * active_sinkpad, then set the flag on the pad
581 * that says a segment needs sending if/when that pad is activated.
582 * For all other cases, we send the event immediately, which makes
583 * sparse streams and other segment updates work correctly downstream.
584 */
585 if (GST_EVENT_IS_STICKY (event))
586 selpad->events_pending = TRUE;
587 gst_event_unref (event);
561 if (event) {
562 if (forward) {
563 GST_DEBUG_OBJECT (pad, "forwarding event");
564 res = gst_pad_push_event (sel->srcpad, event);
565 } else {
566 /* If we aren't forwarding the event because the pad is not the
567 * active_sinkpad, then set the flag on the pad
568 * that says a segment needs sending if/when that pad is activated.
569 * For all other cases, we send the event immediately, which makes
570 * sparse streams and other segment updates work correctly downstream.
571 */
572 if (GST_EVENT_IS_STICKY (event))
573 selpad->events_pending = TRUE;
574 gst_event_unref (event);
575 }
588576 }
589577
590578 return res;
611599 */
612600 if (GST_PAD_DIRECTION (pad) == GST_PAD_SINK) {
613601 GST_INPUT_SELECTOR_LOCK (sel);
614 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
602 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
615603 GST_INPUT_SELECTOR_UNLOCK (sel);
616604
617605 if (pad != active_sinkpad) {
671659 /* Wait until
672660 * a) this is the active pad
673661 * b) the pad or the selector is flushing
674 * c) the selector is not blocked
675 * d) the buffer running time is before the current running time
662 * c) the buffer running time is before the current running time
676663 * (either active-seg or clock, depending on sync-mode)
677664 */
678665
684671 gint64 cur_running_time;
685672 GstClockTime running_time;
686673
687 active_sinkpad =
688 gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (selpad));
674 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
689675 active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
690676
691677 if (seg->format != GST_FORMAT_TIME) {
741727 }
742728
743729 if (selpad != active_selpad && !sel->eos && !sel->flushing
744 && !selpad->flushing && (sel->blocked
745 || cur_running_time == GST_CLOCK_TIME_NONE
730 && !selpad->flushing && (cur_running_time == GST_CLOCK_TIME_NONE
746731 || running_time >= cur_running_time)) {
747 if (!sel->blocked) {
748 GST_DEBUG_OBJECT (selpad,
749 "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
750 GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
751 GST_TIME_ARGS (cur_running_time));
752 } else
753 GST_DEBUG_OBJECT (selpad, "Waiting for selector to unblock");
754
732 GST_DEBUG_OBJECT (selpad,
733 "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
734 GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
735 GST_TIME_ARGS (cur_running_time));
755736 GST_INPUT_SELECTOR_WAIT (sel);
756737 } else {
757738 GST_INPUT_SELECTOR_UNLOCK (sel);
856837 GstSelectorPad *active_selpad;
857838 GstSegment *active_seg;
858839
859 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
840 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
860841 active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
861842 active_seg = &active_selpad->segment;
862843
958939 GST_TIME_ARGS (GST_BUFFER_PTS (buf)));
959940
960941 GST_INPUT_SELECTOR_LOCK (sel);
942
961943 if (sel->eos) {
962944 GST_INPUT_SELECTOR_UNLOCK (sel);
963945 goto eos;
964946 }
965947
966 /* wait or check for flushing */
967 if (gst_input_selector_wait (sel, selpad)) {
948 if (sel->flushing) {
968949 GST_INPUT_SELECTOR_UNLOCK (sel);
969950 goto flushing;
970951 }
973954
974955 prev_active_sinkpad =
975956 sel->active_sinkpad ? gst_object_ref (sel->active_sinkpad) : NULL;
976 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
957 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
977958
978959 /* In sync mode wait until the active pad has advanced
979960 * after the running time of the current buffer */
1001982 gst_selector_pad_chain (pad, parent, cached_buffer->buffer);
1002983 GST_INPUT_SELECTOR_LOCK (sel);
1003984
985 /* We just passed the ownership of the buffer to the chain function */
986 cached_buffer->buffer = NULL;
987 gst_selector_pad_free_cached_buffer (cached_buffer);
988
1004989 /* we may have cleaned up the queue in the meantime because of
1005990 * old buffers */
1006991 if (!selpad->cached_buffers) {
1014999 selpad->events_pending = TRUE;
10151000
10161001 /* Might have changed while calling chain for cached buffers */
1017 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
1002 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
10181003 }
10191004 }
10201005
10261011 }
10271012
10281013 /* Might have changed while waiting */
1029 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
1014 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
10301015 }
10311016
10321017 if (sel->eos) {
11011086
11021087 if (sel->sync_streams && sel->cache_buffers) {
11031088 /* Might have changed while pushing */
1104 active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
1089 active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
11051090 /* only set pad to pushed if we are still the active pad */
11061091 if (active_sinkpad == pad)
11071092 selpad->pushed = TRUE;
11761161
11771162 static gboolean gst_input_selector_event (GstPad * pad, GstObject * parent,
11781163 GstEvent * event);
1179 static gint64 gst_input_selector_block (GstInputSelector * self);
11801164
11811165 #define _do_init \
11821166 GST_DEBUG_CATEGORY_INIT (input_selector_debug, \
12621246 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
12631247 GST_PARAM_MUTABLE_READY));
12641248
1265 /**
1266 * GstInputSelector::block:
1267 * @inputselector: the #GstInputSelector
1268 *
1269 * Block all sink pads in preparation for a switch. Returns the stop time of
1270 * the current switch segment, as a running time, or 0 if there is no current
1271 * active pad or the current active pad never received data.
1272 */
1273 gst_input_selector_signals[SIGNAL_BLOCK] =
1274 g_signal_new ("block", G_TYPE_FROM_CLASS (klass),
1275 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
1276 G_STRUCT_OFFSET (GstInputSelectorClass, block), NULL, NULL,
1277 g_cclosure_marshal_generic, G_TYPE_INT64, 0);
1278
12791249 gst_element_class_set_static_metadata (gstelement_class, "Input selector",
12801250 "Generic", "N-to-1 input stream selector",
12811251 "Julien Moutte <julien@moutte.net>, "
12891259 gstelement_class->request_new_pad = gst_input_selector_request_new_pad;
12901260 gstelement_class->release_pad = gst_input_selector_release_pad;
12911261 gstelement_class->change_state = gst_input_selector_change_state;
1292
1293 klass->block = GST_DEBUG_FUNCPTR (gst_input_selector_block);
12941262 }
12951263
12961264 static void
13111279
13121280 g_mutex_init (&sel->lock);
13131281 g_cond_init (&sel->cond);
1314 sel->blocked = FALSE;
13151282 sel->eos = FALSE;
13161283
13171284 /* lets give a change for downstream to do something on
15771544
15781545 /* Get or create the active sinkpad, must be called with SELECTOR_LOCK */
15791546 static GstPad *
1580 gst_input_selector_activate_sinkpad (GstInputSelector * sel, GstPad * pad)
1547 gst_input_selector_get_active_sinkpad (GstInputSelector * sel)
15811548 {
15821549 GstPad *active_sinkpad;
1583 GstSelectorPad *selpad;
1584
1585 selpad = GST_SELECTOR_PAD_CAST (pad);
1586
1587 selpad->active = TRUE;
1550
15881551 active_sinkpad = sel->active_sinkpad;
15891552 if (active_sinkpad == NULL) {
15901553 GValue item = G_VALUE_INIT;
16821645 gst_object_unref (sel->active_sinkpad);
16831646 sel->active_sinkpad = NULL;
16841647 }
1648 sel->eos_sent = FALSE;
1649
16851650 /* reset each of our sinkpads state */
16861651 for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
16871652 GstSelectorPad *selpad = GST_SELECTOR_PAD_CAST (walk->data);
17081673 case GST_STATE_CHANGE_READY_TO_PAUSED:
17091674 GST_INPUT_SELECTOR_LOCK (self);
17101675 self->eos = FALSE;
1711 self->blocked = FALSE;
17121676 self->flushing = FALSE;
17131677 GST_INPUT_SELECTOR_UNLOCK (self);
17141678 break;
17171681 * tries to acquire the stream lock when going to ready. */
17181682 GST_INPUT_SELECTOR_LOCK (self);
17191683 self->eos = TRUE;
1720 self->blocked = FALSE;
17211684 self->flushing = TRUE;
17221685 GST_INPUT_SELECTOR_BROADCAST (self);
17231686 GST_INPUT_SELECTOR_UNLOCK (self);
17381701
17391702 return result;
17401703 }
1741
1742 static gint64
1743 gst_input_selector_block (GstInputSelector * self)
1744 {
1745 gint64 ret = 0;
1746 GstSelectorPad *spad;
1747
1748 GST_INPUT_SELECTOR_LOCK (self);
1749
1750 if (self->blocked)
1751 GST_WARNING_OBJECT (self, "switch already blocked");
1752
1753 self->blocked = TRUE;
1754 spad = GST_SELECTOR_PAD_CAST (self->active_sinkpad);
1755
1756 if (spad)
1757 ret = gst_selector_pad_get_running_time (spad);
1758 else
1759 GST_DEBUG_OBJECT (self, "no active pad while blocking");
1760
1761 GST_INPUT_SELECTOR_UNLOCK (self);
1762
1763 return ret;
1764 }
7575
7676 GMutex lock;
7777 GCond cond;
78 gboolean blocked;
7978 gboolean eos;
79 gboolean eos_sent;
8080 gboolean flushing;
8181 };
8282
8383 struct _GstInputSelectorClass {
8484 GstElementClass parent_class;
85
86 gint64 (*block) (GstInputSelector *self);
8785 };
8886
8987 G_GNUC_INTERNAL GType gst_input_selector_get_type (void);
584584
585585 GST_MULTI_QUEUE_MUTEX_LOCK (mq);
586586
587 mq->buffering = TRUE;
588587 tmp = mq->queues;
589588 while (tmp) {
590589 GstSingleQueue *q = (GstSingleQueue *) tmp->data;
594594 }
595595 break;
596596 }
597 case GST_QUERY_DRAIN:
598 if (sel->latest_buffer) {
599 gst_buffer_unref (sel->latest_buffer);
600 sel->latest_buffer = NULL;
601 }
602 /* fall through */
597603 default:
598604 res = gst_pad_query_default (pad, parent, query);
599605 break;
600606 }
607
601608 return res;
602609 }
30913091 gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
30923092 break;
30933093 }
3094 case GST_QUERY_SEEKING:
3095 {
3096 gint64 segment_start, segment_end;
3097 GstFormat format;
3098 gboolean seekable, peer_success;
3099
3100 peer_success = gst_pad_peer_query (queue->sinkpad, query);
3101
3102 gst_query_parse_seeking (query, &format, &seekable, &segment_start,
3103 &segment_end);
3104
3105 if (peer_success && seekable) {
3106 GST_DEBUG_OBJECT (queue, "peer seekable (%s) from %" G_GINT64_FORMAT
3107 " to %" G_GINT64_FORMAT, gst_format_get_name (format),
3108 segment_start, segment_end);
3109 break;
3110 }
3111
3112 if (format != GST_FORMAT_BYTES) {
3113 GST_DEBUG_OBJECT (queue, "query in %s (not BYTES) format, cannot seek",
3114 gst_format_get_name (format));
3115 return FALSE;
3116 }
3117
3118 GST_QUEUE2_MUTEX_LOCK (queue);
3119 if (queue->current) {
3120 if (QUEUE_IS_USING_RING_BUFFER (queue)) {
3121 segment_start = queue->current->rb_offset;
3122 segment_end = queue->current->rb_writing_pos;
3123 } else if (QUEUE_IS_USING_TEMP_FILE (queue)) {
3124 segment_start = queue->current->offset;
3125 segment_end = queue->current->writing_pos;
3126 } else {
3127 segment_start = -1;
3128 segment_end = -1;
3129 }
3130 }
3131 GST_QUEUE2_MUTEX_UNLOCK (queue);
3132
3133 seekable = ! !(segment_start < segment_end);
3134
3135 GST_DEBUG_OBJECT (queue, "segment from %" G_GINT64_FORMAT " to %"
3136 G_GINT64_FORMAT " %sseekable", segment_start, segment_end,
3137 seekable ? "" : "not ");
3138
3139 gst_query_set_seeking (query, format, seekable, segment_start,
3140 segment_end);
3141 break;
3142 }
30943143 default:
30953144 /* peer handled other queries */
30963145 if (!gst_pad_query_default (pad, parent, query))
3636 * <refsect2>
3737 * <title>Example launch line</title>
3838 * |[
39 * gst-launch filesrc location=song.ogg ! decodebin ! tee name=t ! queue ! autoaudiosink t. ! queue ! audioconvert ! goom ! videoconvert ! autovideosink
40 * ]| Play a song.ogg from local dir and render visualisations using the goom
41 * element.
39 * gst-launch-1.0 filesrc location=song.ogg ! decodebin ! tee name=t ! queue ! audioconvert ! audioresample ! autoaudiosink t. ! queue ! audioconvert ! goom ! videoconvert ! autovideosink
40 * ]| Play song.ogg audio file which must be in the current working directory
41 * and render visualisations using the goom element (this can be easier done
42 * using the playbin element, this is just an example pipeline).
4243 * </refsect2>
4344 */
4445
8384 #define DEFAULT_PROP_SILENT TRUE
8485 #define DEFAULT_PROP_LAST_MESSAGE NULL
8586 #define DEFAULT_PULL_MODE GST_TEE_PULL_MODE_NEVER
87 #define DEFAULT_PROP_ALLOW_NOT_LINKED FALSE
8688
8789 enum
8890 {
9395 PROP_LAST_MESSAGE,
9496 PROP_PULL_MODE,
9597 PROP_ALLOC_PAD,
98 PROP_ALLOW_NOT_LINKED,
9699 };
97100
98101 static GstStaticPadTemplate tee_src_template =
264267 g_object_class_install_property (gobject_class, PROP_ALLOC_PAD,
265268 pspec_alloc_pad);
266269
270 /**
271 * GstTee:allow-not-linked
272 *
273 * This property makes sink pad return GST_FLOW_OK even if there are no
274 * source pads or any of them is linked.
275 *
276 * This is useful to avoid errors when you have a dynamic pipeline and during
277 * a reconnection you can have all the pads unlinked or removed.
278 *
279 * Since: 1.6
280 */
281 g_object_class_install_property (gobject_class, PROP_ALLOW_NOT_LINKED,
282 g_param_spec_boolean ("allow-not-linked", "Allow not linked",
283 "Return GTS_FLOW_OK even if there are not source pads or all are "
284 "unlinked", DEFAULT_PROP_ALLOW_NOT_LINKED,
285 G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
286
267287 gst_element_class_set_static_metadata (gstelement_class,
268288 "Tee pipe fitting",
269289 "Generic",
486506 GST_OBJECT_UNLOCK (pad);
487507 break;
488508 }
509 case PROP_ALLOW_NOT_LINKED:
510 tee->allow_not_linked = g_value_get_boolean (value);
511 break;
489512 default:
490513 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
491514 break;
518541 break;
519542 case PROP_ALLOC_PAD:
520543 g_value_set_object (value, tee->allocpad);
544 break;
545 case PROP_ALLOW_NOT_LINKED:
546 g_value_set_boolean (value, tee->allow_not_linked);
521547 break;
522548 default:
523549 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
635661
636662 gst_object_unref (pad);
637663
664 if (ret == GST_FLOW_NOT_LINKED && tee->allow_not_linked) {
665 ret = GST_FLOW_OK;
666 }
667
638668 return ret;
639669 }
640670
642672 g_list_foreach (pads, (GFunc) clear_pads, tee);
643673
644674 restart:
645 cret = GST_FLOW_NOT_LINKED;
675 if (tee->allow_not_linked) {
676 cret = GST_FLOW_OK;
677 } else {
678 cret = GST_FLOW_NOT_LINKED;
679 }
646680 pads = GST_ELEMENT_CAST (tee)->srcpads;
647681 cookie = GST_ELEMENT_CAST (tee)->pads_cookie;
648682
669703 GST_TEE_PAD_CAST (pad)->pushed = TRUE;
670704 GST_TEE_PAD_CAST (pad)->result = ret;
671705 gst_object_unref (pad);
706 pad = NULL;
672707 } else {
673708 /* already pushed, use previous return value */
674709 ret = GST_TEE_PAD_CAST (pad)->result;
680715 * the same. It could be possible that the pad we just pushed was removed
681716 * and the return value it not valid anymore */
682717 if (G_UNLIKELY (GST_ELEMENT_CAST (tee)->pads_cookie != cookie)) {
683 GST_LOG_OBJECT (pad, "pad list changed");
718 GST_LOG_OBJECT (tee, "pad list changed");
684719 /* the list of pads changed, restart iteration. Pads that we already
685720 * pushed on and are still in the new list, will not be pushed on
686721 * again. */
693728
694729 /* keep all other return values, overwriting the previous one. */
695730 if (G_LIKELY (ret != GST_FLOW_NOT_LINKED)) {
696 GST_LOG_OBJECT (pad, "Replacing ret val %d with %d", cret, ret);
731 GST_LOG_OBJECT (tee, "Replacing ret val %d with %d", cret, ret);
697732 cret = ret;
698733 }
699734 pads = g_list_next (pads);
708743 /* ERRORS */
709744 no_pads:
710745 {
711 GST_DEBUG_OBJECT (tee, "there are no pads, return not-linked");
712 ret = GST_FLOW_NOT_LINKED;
713 goto error;
746 if (tee->allow_not_linked) {
747 GST_DEBUG_OBJECT (tee, "there are no pads, dropping %s",
748 is_list ? "buffer-list" : "buffer");
749 ret = GST_FLOW_OK;
750 } else {
751 GST_DEBUG_OBJECT (tee, "there are no pads, return not-linked");
752 ret = GST_FLOW_NOT_LINKED;
753 }
754 goto end;
714755 }
715756 error:
716757 {
717758 GST_DEBUG_OBJECT (tee, "received error %s", gst_flow_get_name (ret));
759 goto end;
760 }
761 end:
762 {
718763 GST_OBJECT_UNLOCK (tee);
719764 gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
720765 return ret;
7878 GstPadMode sink_mode;
7979 GstTeePullMode pull_mode;
8080 GstPad *pull_pad;
81
82 gboolean allow_not_linked;
8183 };
8284
8385 struct _GstTeeClass {
218218 * been found.
219219 */
220220 gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have-type",
221 G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_FIRST,
221 G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_LAST,
222222 G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
223223 g_cclosure_marshal_generic, G_TYPE_NONE, 2,
224224 G_TYPE_UINT, GST_TYPE_CAPS | G_SIGNAL_TYPE_STATIC_SCOPE);
499499 GstEvent * event)
500500 {
501501 GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (parent);
502 gboolean result;
502503
503504 if (typefind->mode != MODE_NORMAL) {
504505 /* need to do more? */
505 gst_mini_object_unref (GST_MINI_OBJECT_CAST (event));
506 gst_event_unref (event);
506507 return FALSE;
507508 }
508509
509510 /* Only handle seeks here if driving the pipeline */
510511 if (typefind->segment.format != GST_FORMAT_UNDEFINED &&
511512 GST_EVENT_TYPE (event) == GST_EVENT_SEEK) {
512 return gst_type_find_element_seek (typefind, event);
513 result = gst_type_find_element_seek (typefind, event);
514 gst_event_unref (event);
515 return result;
513516 } else {
514517 return gst_pad_push_event (typefind->sink, event);
515518 }
252252 {
253253 GstValve *valve = GST_VALVE (parent);
254254
255 if (g_atomic_int_get (&valve->drop))
255 if (GST_QUERY_IS_SERIALIZED (query) && g_atomic_int_get (&valve->drop))
256256 return FALSE;
257257
258258 return gst_pad_query_default (pad, parent, query);
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer 0.9.7\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2005-12-05 11:45+0200\n"
1111 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
1212 "Language-Team: Afrikaans <i18n@af.org.za>\n"
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer-0.8.0\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2004-03-19 18:40+0200\n"
1111 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
1212 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 0.9.7\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2006-01-18 22:26+0200\n"
1010 "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
1111 "Language-Team: Belarusian <i18n@mova.org>\n"
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: gstreamer 0.10.32.2\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
10 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
10 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1111 "PO-Revision-Date: 2011-04-26 22:40+0300\n"
1212 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
1313 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer 0.10.30.3\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2010-11-04 19:41+0100\n"
1111 "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
1212 "Language-Team: Catalan <ca@dodds.net>\n"
Binary diff not shown
88 msgstr ""
99 "Project-Id-Version: gstreamer 1.2.1\n"
1010 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
11 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
11 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1212 "PO-Revision-Date: 2014-03-09 11:07+0100\n"
1313 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
1414 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: gstreamer 1.3.90\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
10 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
10 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1111 "PO-Revision-Date: 2014-07-16 13:26+0200\n"
1212 "Last-Translator: Mogens Jaeger <mogensjaeger@gmail.com>\n"
1313 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
Binary diff not shown
88 msgstr ""
99 "Project-Id-Version: gstreamer 1.3.2\n"
1010 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
11 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
11 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1212 "PO-Revision-Date: 2014-05-22 20:48+0100\n"
1313 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
1414 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer-0.10.30.3\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2010-11-29 11:14+0200\n"
1010 "Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
1111 "Language-Team: Greek <team@lists.gnome.gr>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 0.8.1\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2004-04-26 10:36-0400\n"
1010 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
1111 "Language-Team: English (British) <en_gb@li.org>\n"
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer 0.10.32.2\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2011-06-04 21:11+0100\n"
1111 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
1212 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer 0.10.32.2\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2011-10-02 15:45+0200\n"
1111 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
1212 "Language-Team: Spanish <es@li.org>\n"
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: gstreamer-0.10.26.2\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
10 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
10 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1111 "PO-Revision-Date: 2010-03-25 13:10+0100\n"
1212 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
1313 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
Binary diff not shown
1111 msgstr ""
1212 "Project-Id-Version: gstreamer 0.10.30.3\n"
1313 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
14 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
14 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1515 "PO-Revision-Date: 2010-11-17 23:10+0200\n"
1616 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
1717 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
Binary diff not shown
88 msgstr ""
99 "Project-Id-Version: gstreamer 1.0.3\n"
1010 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
11 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
11 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1212 "PO-Revision-Date: 2012-12-05 19:31+0100\n"
1313 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
1414 "Language-Team: French <traduc@traduc.org>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 1.0.3\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2012-12-15 03:29+0200\n"
1010 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
1111 "Language-Team: Galician <proxecto@trasno.net>\n"
77 msgstr ""
88 "Project-Id-Version: gstreamer 1.5.0.1\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
10 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
10 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1111 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1212 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313 "Language-Team: LANGUAGE <LL@li.org>\n"
10391039 msgid "link has no sink [source=%s@%p]"
10401040 msgstr ""
10411041
1042 #: gst/parse/grammar.y:411
1042 #: gst/parse/grammar.y:412
10431043 #, c-format
10441044 msgid "no property \"%s\" in element \"%s\""
10451045 msgstr ""
10461046
1047 #: gst/parse/grammar.y:452
1047 #: gst/parse/grammar.y:453
10481048 #, c-format
10491049 msgid "could not set property \"%s\" in element \"%s\" to \"%s\""
10501050 msgstr ""
10511051
1052 #: gst/parse/grammar.y:615
1052 #: gst/parse/grammar.y:616
10531053 #, c-format
10541054 msgid "could not link %s to %s"
10551055 msgstr ""
10561056
1057 #: gst/parse/grammar.y:690
1057 #: gst/parse/grammar.y:691
10581058 #, c-format
10591059 msgid "no element \"%s\""
10601060 msgstr ""
10611061
1062 #: gst/parse/grammar.y:751
1062 #: gst/parse/grammar.y:752
10631063 #, c-format
10641064 msgid "unexpected reference \"%s\" - ignoring"
10651065 msgstr ""
10661066
1067 #: gst/parse/grammar.y:757
1067 #: gst/parse/grammar.y:758
10681068 #, c-format
10691069 msgid "unexpected pad-reference \"%s\" - ignoring"
10701070 msgstr ""
10711071
1072 #: gst/parse/grammar.y:796
1072 #: gst/parse/grammar.y:797
10731073 #, c-format
10741074 msgid "could not parse caps \"%s\""
10751075 msgstr ""
10761076
1077 #: gst/parse/grammar.y:824
1077 #: gst/parse/grammar.y:825
10781078 #, c-format
10791079 msgid "no sink element for URI \"%s\""
10801080 msgstr ""
10811081
1082 #: gst/parse/grammar.y:843
1082 #: gst/parse/grammar.y:844
10831083 #, c-format
10841084 msgid "no source element for URI \"%s\""
10851085 msgstr ""
10861086
1087 #: gst/parse/grammar.y:933
1087 #: gst/parse/grammar.y:934
10881088 msgid "syntax error"
10891089 msgstr ""
10901090
1091 #: gst/parse/grammar.y:947
1091 #: gst/parse/grammar.y:948
10921092 msgid "bin"
10931093 msgstr ""
10941094
1095 #: gst/parse/grammar.y:956
1095 #: gst/parse/grammar.y:957
10961096 #, c-format
10971097 msgid "specified empty bin \"%s\", not allowed"
10981098 msgstr ""
10991099
1100 #: gst/parse/grammar.y:966
1100 #: gst/parse/grammar.y:967
11011101 #, c-format
11021102 msgid "no bin \"%s\", unpacking elements"
11031103 msgstr ""
11041104
1105 #: gst/parse/grammar.y:997
1105 #: gst/parse/grammar.y:998
11061106 msgid "empty pipeline not allowed"
11071107 msgstr ""
11081108
11331133 msgid "Failed to map buffer."
11341134 msgstr ""
11351135
1136 #: plugins/elements/gstcapsfilter.c:125
1136 #: plugins/elements/gstcapsfilter.c:128
11371137 msgid "Filter caps"
11381138 msgstr ""
11391139
1140 #: plugins/elements/gstcapsfilter.c:126
1140 #: plugins/elements/gstcapsfilter.c:129
11411141 msgid ""
11421142 "Restrict the possible allowed capabilities (NULL means ANY). Setting this "
11431143 "property takes a reference to the supplied GstCaps object."
11441144 msgstr ""
11451145
1146 #: plugins/elements/gstcapsfilter.c:133
1146 #: plugins/elements/gstcapsfilter.c:136
11471147 msgid "Caps Change Mode"
11481148 msgstr ""
11491149
1150 #: plugins/elements/gstcapsfilter.c:134
1150 #: plugins/elements/gstcapsfilter.c:137
11511151 msgid "Filter caps change behaviour"
11521152 msgstr ""
11531153
12131213 msgid "File \"%s\" is a socket."
12141214 msgstr ""
12151215
1216 #: plugins/elements/gstidentity.c:605
1216 #: plugins/elements/gstidentity.c:643
12171217 msgid "Failed after iterations as requested."
12181218 msgstr ""
12191219
12371237 msgid "force caps without doing a typefind"
12381238 msgstr ""
12391239
1240 #: plugins/elements/gsttypefindelement.c:1055
1240 #: plugins/elements/gsttypefindelement.c:1058
12411241 msgid "Stream contains no data."
12421242 msgstr ""
12431243
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 0.10.32.2\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2012-05-25 16:47+0200\n"
1010 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
1111 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: gstreamer 1.3.2\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
10 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
10 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1111 "PO-Revision-Date: 2014-05-23 21:08+0200\n"
1212 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
1313 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer 1.3.2\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2014-05-31 22:06+0700\n"
1111 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
1212 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
Binary diff not shown
105105 msgstr ""
106106 "Project-Id-Version: gstreamer 0.10.30.3\n"
107107 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
108 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
108 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
109109 "PO-Revision-Date: 2010-10-25 10:03+0200\n"
110110 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
111111 "Language-Team: Italian <tp@lists.linux.it>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 1.0.3\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2013-08-20 14:56+0900\n"
1010 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
1111 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer 0.10.29.2\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2010-07-16 00:50+0300\n"
1111 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
1212 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 0.10.30.3\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2010-10-24 21:36+0200\n"
1010 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
1111 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
Binary diff not shown
99 msgstr ""
1010 "Project-Id-Version: gstreamer 1.3.2\n"
1111 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
12 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
12 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1313 "PO-Revision-Date: 2014-05-22 00:46+0200\n"
1414 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
1515 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 1.3.2\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2014-05-22 18:22+0200\n"
1010 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
1111 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
Binary diff not shown
1616 msgstr ""
1717 "Project-Id-Version: gstreamer-1.2.1\n"
1818 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
19 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
19 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
2020 "PO-Revision-Date: 2013-12-29 18:20-0200\n"
2121 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
2222 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
Binary diff not shown
44 msgstr ""
55 "Project-Id-Version: gstreamer 0.10.29.2\n"
66 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
7 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
7 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
88 "PO-Revision-Date: 2010-08-16 01:10+0300\n"
99 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
1010 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
Binary diff not shown
88 msgstr ""
99 "Project-Id-Version: gstreamer 1.3.2\n"
1010 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
11 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
11 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1212 "PO-Revision-Date: 2014-05-22 20:12+0400\n"
1313 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
1414 "Language-Team: Russian <gnu@mx.ru>\n"
Binary diff not shown
1414 msgstr ""
1515 "Project-Id-Version: gstreamer 0.8.8\n"
1616 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
17 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
17 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1818 "PO-Revision-Date: 2005-04-04 10:55-0700\n"
1919 "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
2020 "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: gstreamer 1.2.1\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
10 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
10 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1111 "PO-Revision-Date: 2014-01-30 10:24+0100\n"
1212 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
1313 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
Binary diff not shown
99 msgstr ""
1010 "Project-Id-Version: gstreamer-1.2.1\n"
1111 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
12 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
12 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1313 "PO-Revision-Date: 2014-04-09 22:38+0100\n"
1414 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
1515 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 0.8.4\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2004-08-07 23:46+0200\n"
1010 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
1111 "Language-Team: Albanian <begraj@hotmail.com>\n"
Binary diff not shown
66 msgstr ""
77 "Project-Id-Version: gstreamer-1.3.2\n"
88 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
9 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
9 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1010 "PO-Revision-Date: 2014-06-18 20:12+0200\n"
1111 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
1212 "Language-Team: Serbian <(nothing)>\n"
Binary diff not shown
88 msgstr ""
99 "Project-Id-Version: gstreamer 1.3.90\n"
1010 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
11 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
11 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1212 "PO-Revision-Date: 2014-07-11 02:52+0200\n"
1313 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
1414 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 0.8.0\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2004-04-03 03:14+0300\n"
1010 "Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
1111 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
Binary diff not shown
77 msgstr ""
88 "Project-Id-Version: gstreamer 1.3.2\n"
99 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
10 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
10 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1111 "PO-Revision-Date: 2014-05-22 07:45+0300\n"
1212 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
1313 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
Binary diff not shown
88 msgstr ""
99 "Project-Id-Version: gstreamer 1.3.90\n"
1010 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
11 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
11 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
1212 "PO-Revision-Date: 2014-06-30 09:40+0700\n"
1313 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
1414 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
Binary diff not shown
55 msgstr ""
66 "Project-Id-Version: gstreamer 0.10.25.2\n"
77 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
8 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
8 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
99 "PO-Revision-Date: 2010-02-02 18:58+0800\n"
1010 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
1111 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
Binary diff not shown
2626 msgstr ""
2727 "Project-Id-Version: gstreamer 1.3.2\n"
2828 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
29 "POT-Creation-Date: 2015-03-16 19:04+0100\n"
29 "POT-Creation-Date: 2015-05-13 13:03+0300\n"
3030 "PO-Revision-Date: 2014-06-08 00:22+0800\n"
3131 "Last-Translator: Wen Liao <wen.cf83@gmail.com>\n"
3232 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
206206 # gst-devtools/validate
207207 export PATH=$GST/gst-devtools/validate/tools:$PATH
208208 export PKG_CONFIG_PATH=$GST/gst-devtools/validate/pkgconfig:$PKG_CONFIG_PATH
209 export GST_VALIDATE_SCENARIOS_PATH=$GST/gst-devtools/validate/data:$GST_VALIDATE_SCENARIOS_PATH
209 export GST_VALIDATE_SCENARIOS_PATH=$GST/gst-devtools/validate/data/scenarios:$GST_VALIDATE_SCENARIOS_PATH
210210 export GST_VALIDATE_APPS_DIR=$GST_VALIDATE_APPS_DIR:$GST/gst-editing-services/tests/validate/
211211 export GST_VALIDATE_PLUGIN_PATH=$GST_VALIDATE_PLUGIN_PATH:$GST/gst-devtools/validate/gst/plugins/
212212
66 REGISTRY_ENVIRONMENT = \
77 GST_REGISTRY=$(CHECK_REGISTRY)
88
9 TESTS_ENVIRONMENT = \
9 AM_TESTS_ENVIRONMENT = \
1010 GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)" \
1111 $(REGISTRY_ENVIRONMENT) \
1212 GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
7474 gst/gstghostpad \
7575 gst/gstplugin \
7676 gst/gstpreset \
77 gst/gstprotection \
7778 gst/gstquery \
7879 gst/gstregistry \
7980 gst/gsturi \
130131 gst/gstparamspecs \
131132 gst/gstpipeline \
132133 gst/gstpoll \
134 gst/gstprotection \
133135 $(PRINTF_CHECKS) \
134136 gst/gstsegment \
135137 gst/gstsystemclock \
189191 EXTRA_DIST = \
190192 libs/test_transform.c
191193
192 AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
193 AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
194 AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
195 -DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
196 AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
197 -DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
194198 LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
195199 $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
196200 $(GST_OBJ_LIBS)
9292 gst/gstiterator$(EXEEXT) gst/gstmessage$(EXEEXT) \
9393 gst/gstminiobject$(EXEEXT) gst/gstobject$(EXEEXT) \
9494 gst/gstpad$(EXEEXT) gst/gstparamspecs$(EXEEXT) \
95 gst/gstpipeline$(EXEEXT) gst/gstpoll$(EXEEXT) $(am__EXEEXT_3) \
95 gst/gstpipeline$(EXEEXT) gst/gstpoll$(EXEEXT) \
96 gst/gstprotection$(EXEEXT) $(am__EXEEXT_3) \
9697 gst/gstsegment$(EXEEXT) gst/gstsystemclock$(EXEEXT) \
9798 gst/gstclock$(EXEEXT) gst/gststructure$(EXEEXT) \
9899 gst/gsttag$(EXEEXT) gst/gsttagsetter$(EXEEXT) \
173174 @GST_DISABLE_REGISTRY_FALSE@ gst/gstghostpad$(EXEEXT) \
174175 @GST_DISABLE_REGISTRY_FALSE@ gst/gstplugin$(EXEEXT) \
175176 @GST_DISABLE_REGISTRY_FALSE@ gst/gstpreset$(EXEEXT) \
177 @GST_DISABLE_REGISTRY_FALSE@ gst/gstprotection$(EXEEXT) \
176178 @GST_DISABLE_REGISTRY_FALSE@ gst/gstquery$(EXEEXT) \
177179 @GST_DISABLE_REGISTRY_FALSE@ gst/gstregistry$(EXEEXT) \
178180 @GST_DISABLE_REGISTRY_FALSE@ gst/gsturi$(EXEEXT) \
541543 gst_gstprintf_DEPENDENCIES = \
542544 $(top_builddir)/gst/printf/libgstprintf.la \
543545 $(am__DEPENDENCIES_2)
546 gst_gstprotection_SOURCES = gst/gstprotection.c
547 gst_gstprotection_OBJECTS = gst/gstprotection.$(OBJEXT)
548 gst_gstprotection_LDADD = $(LDADD)
549 gst_gstprotection_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
550 $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
551 $(am__DEPENDENCIES_1)
544552 gst_gstquery_SOURCES = gst/gstquery.c
545553 gst_gstquery_OBJECTS = gst/gstquery.$(OBJEXT)
546554 gst_gstquery_LDADD = $(LDADD)
863871 gst/gstmemory.c gst/gstmessage.c gst/gstmeta.c \
864872 gst/gstminiobject.c gst/gstobject.c gst/gstpad.c \
865873 gst/gstparamspecs.c gst/gstpipeline.c gst/gstplugin.c \
866 gst/gstpoll.c gst/gstpreset.c gst/gstprintf.c gst/gstquery.c \
867 gst/gstregistry.c gst/gstsegment.c gst/gststructure.c \
868 gst/gstsystemclock.c gst/gsttag.c gst/gsttagsetter.c \
869 gst/gsttask.c gst/gsttoc.c gst/gsttocsetter.c gst/gsturi.c \
870 gst/gstutils.c gst/gstvalue.c libs/adapter.c libs/baseparse.c \
871 libs/basesink.c libs/basesrc.c libs/bitreader.c \
872 libs/bitreader-noinline.c libs/bytereader.c \
874 gst/gstpoll.c gst/gstpreset.c gst/gstprintf.c \
875 gst/gstprotection.c gst/gstquery.c gst/gstregistry.c \
876 gst/gstsegment.c gst/gststructure.c gst/gstsystemclock.c \
877 gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
878 gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
879 libs/adapter.c libs/baseparse.c libs/basesink.c libs/basesrc.c \
880 libs/bitreader.c libs/bitreader-noinline.c libs/bytereader.c \
873881 libs/bytereader-noinline.c libs/bytewriter.c \
874882 libs/bytewriter-noinline.c libs/collectpads.c \
875883 libs/controller.c libs/flowcombiner.c \
898906 gst/gstmessage.c gst/gstmeta.c gst/gstminiobject.c \
899907 gst/gstobject.c gst/gstpad.c gst/gstparamspecs.c \
900908 gst/gstpipeline.c gst/gstplugin.c gst/gstpoll.c \
901 gst/gstpreset.c gst/gstprintf.c gst/gstquery.c \
902 gst/gstregistry.c gst/gstsegment.c gst/gststructure.c \
903 gst/gstsystemclock.c gst/gsttag.c gst/gsttagsetter.c \
904 gst/gsttask.c gst/gsttoc.c gst/gsttocsetter.c gst/gsturi.c \
905 gst/gstutils.c gst/gstvalue.c libs/adapter.c libs/baseparse.c \
906 libs/basesink.c libs/basesrc.c libs/bitreader.c \
907 libs/bitreader-noinline.c libs/bytereader.c \
909 gst/gstpreset.c gst/gstprintf.c gst/gstprotection.c \
910 gst/gstquery.c gst/gstregistry.c gst/gstsegment.c \
911 gst/gststructure.c gst/gstsystemclock.c gst/gsttag.c \
912 gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
913 gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
914 libs/adapter.c libs/baseparse.c libs/basesink.c libs/basesrc.c \
915 libs/bitreader.c libs/bitreader-noinline.c libs/bytereader.c \
908916 libs/bytereader-noinline.c libs/bytewriter.c \
909917 libs/bytewriter-noinline.c libs/collectpads.c \
910918 libs/controller.c libs/flowcombiner.c \
14351443 REGISTRY_ENVIRONMENT = \
14361444 GST_REGISTRY=$(CHECK_REGISTRY)
14371445
1438 TESTS_ENVIRONMENT = \
1446 AM_TESTS_ENVIRONMENT = \
14391447 GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)" \
14401448 $(REGISTRY_ENVIRONMENT) \
14411449 GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
14731481 @GST_DISABLE_REGISTRY_FALSE@ gst/gstghostpad \
14741482 @GST_DISABLE_REGISTRY_FALSE@ gst/gstplugin \
14751483 @GST_DISABLE_REGISTRY_FALSE@ gst/gstpreset \
1484 @GST_DISABLE_REGISTRY_FALSE@ gst/gstprotection \
14761485 @GST_DISABLE_REGISTRY_FALSE@ gst/gstquery \
14771486 @GST_DISABLE_REGISTRY_FALSE@ gst/gstregistry \
14781487 @GST_DISABLE_REGISTRY_FALSE@ gst/gsturi \
15331542 EXTRA_DIST = \
15341543 libs/test_transform.c
15351544
1536 AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
1537 AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
1545 AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
1546 -DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
1547
1548 AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
1549 -DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
1550
15381551 LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
15391552 $(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
15401553 $(GST_OBJ_LIBS)
19882001 gst/gstprintf$(EXEEXT): $(gst_gstprintf_OBJECTS) $(gst_gstprintf_DEPENDENCIES) $(EXTRA_gst_gstprintf_DEPENDENCIES) gst/$(am__dirstamp)
19892002 @rm -f gst/gstprintf$(EXEEXT)
19902003 $(AM_V_CCLD)$(LINK) $(gst_gstprintf_OBJECTS) $(gst_gstprintf_LDADD) $(LIBS)
2004 gst/gstprotection.$(OBJEXT): gst/$(am__dirstamp) \
2005 gst/$(DEPDIR)/$(am__dirstamp)
2006
2007 gst/gstprotection$(EXEEXT): $(gst_gstprotection_OBJECTS) $(gst_gstprotection_DEPENDENCIES) $(EXTRA_gst_gstprotection_DEPENDENCIES) gst/$(am__dirstamp)
2008 @rm -f gst/gstprotection$(EXEEXT)
2009 $(AM_V_CCLD)$(LINK) $(gst_gstprotection_OBJECTS) $(gst_gstprotection_LDADD) $(LIBS)
19912010 gst/gstquery.$(OBJEXT): gst/$(am__dirstamp) \
19922011 gst/$(DEPDIR)/$(am__dirstamp)
19932012
23302349 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstpoll.Po@am__quote@
23312350 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstpreset.Po@am__quote@
23322351 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstprintf.Po@am__quote@
2352 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstprotection.Po@am__quote@
23332353 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstquery.Po@am__quote@
23342354 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstregistry.Po@am__quote@
23352355 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstsegment.Po@am__quote@
28162836 --log-file $$b.log --trs-file $$b.trs \
28172837 $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
28182838 "$$tst" $(AM_TESTS_FD_REDIRECT)
2839 gst/gstprotection.log: gst/gstprotection$(EXEEXT)
2840 @p='gst/gstprotection$(EXEEXT)'; \
2841 b='gst/gstprotection'; \
2842 $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
2843 --log-file $$b.log --trs-file $$b.trs \
2844 $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
2845 "$$tst" $(AM_TESTS_FD_REDIRECT)
28192846 gst/gstprintf.log: gst/gstprintf$(EXEEXT)
28202847 @p='gst/gstprintf$(EXEEXT)'; \
28212848 b='gst/gstprintf'; \
35283555 # run any given test by running make test.check
35293556 # if the test fails, run it again at at least debug level 2
35303557 %.check: %
3531 @$(TESTS_ENVIRONMENT) \
3558 @$(AM_TESTS_ENVIRONMENT) \
35323559 CK_DEFAULT_TIMEOUT=20 \
35333560 $* || \
3534 $(TESTS_ENVIRONMENT) \
3561 $(AM_TESTS_ENVIRONMENT) \
35353562 GST_DEBUG=$$GST_DEBUG,*:2 \
35363563 CK_DEFAULT_TIMEOUT=20 \
35373564 $*
35383565
35393566 # just like 'check', but don't run it again if it fails (useful for debugging)
35403567 %.check-norepeat: %
3541 @$(TESTS_ENVIRONMENT) \
3568 @$(AM_TESTS_ENVIRONMENT) \
35423569 CK_DEFAULT_TIMEOUT=20 \
35433570 $*
35443571
35453572 # run any given test in a loop
35463573 %.torture: %
35473574 @for i in `seq 1 $(LOOPS)`; do \
3548 $(TESTS_ENVIRONMENT) \
3575 $(AM_TESTS_ENVIRONMENT) \
35493576 CK_DEFAULT_TIMEOUT=20 \
35503577 $*; done
35513578
35523579 # run any given test in an infinite loop
35533580 %.forever: %
35543581 @while true; do \
3555 $(TESTS_ENVIRONMENT) \
3582 $(AM_TESTS_ENVIRONMENT) \
35563583 CK_DEFAULT_TIMEOUT=20 \
35573584 $* || break; done
35583585
35593586 # valgrind any given test by running make test.valgrind
35603587 %.valgrind: %
35613588 @valgrind_log=$(subst /,-,$*-valgrind.log); \
3562 $(TESTS_ENVIRONMENT) \
3589 $(AM_TESTS_ENVIRONMENT) \
35633590 CK_DEFAULT_TIMEOUT=360 \
35643591 G_SLICE=always-malloc \
35653592 $(LIBTOOL) --mode=execute \
35773604
35783605 # valgrind any given test and generate suppressions for it
35793606 %.valgrind.gen-suppressions: %
3580 @$(TESTS_ENVIRONMENT) \
3607 @$(AM_TESTS_ENVIRONMENT) \
35813608 CK_DEFAULT_TIMEOUT=360 \
35823609 G_SLICE=always-malloc \
35833610 $(LIBTOOL) --mode=execute \
36073634
36083635 # gdb any given test by running make test.gdb
36093636 %.gdb: %
3610 @$(TESTS_ENVIRONMENT) \
3637 @$(AM_TESTS_ENVIRONMENT) \
36113638 CK_FORK=no \
36123639 $(LIBTOOL) --mode=execute \
36133640 gdb $*
37113738 fi
37123739 inspect:
37133740 @echo "Inspecting features ..."
3714 @for e in `$(TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 \
3741 @for e in `$(AM_TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 \
37153742 | cut -d: -f2`; \
37163743 do echo Inspecting $$e; \
37173744 $(GST_INSPECT) $$e > /dev/null 2>&1; done
9494 g_rand_free (rand); \
9595 } G_STMT_END
9696
97 /* Push Buffer with num_mem_blocks memory block each of size num_bytes*/
98 #define PUSH_BUFFER_WITH_MULTIPLE_MEM_BLOCKS(num_mem_blocks, num_bytes) \
99 G_STMT_START { \
100 GstBuffer *buf = gst_buffer_new(); \
101 guint i; \
102 for (i = 0; i < num_mem_blocks; ++i){ \
103 GstMapInfo info; \
104 GstMemory* mem_block = gst_allocator_alloc(NULL,num_bytes,NULL); \
105 GRand *rand = g_rand_new_with_seed (num_bytes); \
106 guint j; \
107 fail_unless (gst_memory_map (mem_block, &info, GST_MAP_WRITE)); \
108 for (j = 0; j < num_bytes; ++j) \
109 ((guint8 *)info.data)[j] = (g_rand_int (rand) >> 24) & 0xff; \
110 gst_memory_unmap (mem_block, &info); \
111 gst_buffer_append_memory(buf,mem_block); \
112 g_rand_free (rand); \
113 } \
114 fail_unless_equals_int (gst_pad_push (mysrcpad, buf), GST_FLOW_OK); \
115 } G_STMT_END
116
117 /* Push Buffer List with num_buffers buffers each containing num_mem_blocks
118 * memory blocks of size num_bytes */
119 #define PUSH_BUFFER_LIST_WITH_MULTI_MEM_BLOCKS_BUFFERS(num_buffers, num_mem_blocks, num_bytes) \
120 G_STMT_START { \
121 guint i; \
122 GstBufferList* buf_list = gst_buffer_list_new(); \
123 for(i = 0; i < num_buffers; ++i){ \
124 GstBuffer *buf = gst_buffer_new(); \
125 guint j; \
126 for (j = 0; j < num_mem_blocks; ++j){ \
127 GstMapInfo info; \
128 GstMemory* mem_block = gst_allocator_alloc(NULL,num_bytes,NULL); \
129 GRand *rand = g_rand_new_with_seed (num_bytes); \
130 guint k; \
131 fail_unless (gst_memory_map (mem_block, &info, GST_MAP_WRITE)); \
132 for (k = 0; k < num_bytes; ++k) \
133 ((guint8 *)info.data)[k] = (g_rand_int (rand) >> 24) & 0xff; \
134 gst_memory_unmap (mem_block, &info); \
135 gst_buffer_append_memory(buf,mem_block); \
136 g_rand_free (rand); \
137 } \
138 gst_buffer_list_add(buf_list,buf); \
139 } \
140 fail_unless_equals_int (gst_pad_push_list (mysrcpad, buf_list), GST_FLOW_OK); \
141 } G_STMT_END
142
143 /* Push buffer_list containing num_buffers number of buffers with size
144 * num_bytes bytes
145 * Example: PUSH_BUFFER_LIST(2,10) will push the buffer list containing
146 * 2 buffers with size 10 bytes each */
147 #define PUSH_BUFFER_LIST(num_buffers, num_bytes) \
148 G_STMT_START { \
149 guint i; \
150 GstBufferList* buf_list = gst_buffer_list_new(); \
151 for(i = 0; i < num_buffers; ++i){ \
152 GstBuffer *buf = gst_buffer_new_and_alloc(num_bytes); \
153 GRand *rand = g_rand_new_with_seed (num_bytes); \
154 GstMapInfo info; \
155 guint j; \
156 fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE)); \
157 for (j = 0; j < num_bytes; ++j) \
158 ((guint8 *)info.data)[j] = (g_rand_int (rand) >> 24) & 0xff; \
159 gst_buffer_unmap (buf, &info); \
160 gst_buffer_list_add(buf_list,buf); \
161 g_rand_free (rand); \
162 } \
163 fail_unless_equals_int (gst_pad_push_list (mysrcpad, buf_list), GST_FLOW_OK); \
164 } G_STMT_END
165
97166 #define CHECK_WRITTEN_BYTES(offset,written,file_size) \
98167 G_STMT_START { \
99168 gchar *data = NULL; \
195264 PUSH_BYTES (8800);
196265 CHECK_QUERY_POSITION (filesink, GST_FORMAT_BYTES, 8900);
197266
267 /* Push buffer list with 2 buffers each of size 50 bytes */
268 PUSH_BUFFER_LIST (2, 50);
269 CHECK_QUERY_POSITION (filesink, GST_FORMAT_BYTES, 9000);
270 /* Push buffer list with 3 buffers each of size 10 bytes */
271 PUSH_BUFFER_LIST (3, 10);
272 CHECK_QUERY_POSITION (filesink, GST_FORMAT_BYTES, 9030);
273 /* Check bytes written using push buffer list */
274 CHECK_WRITTEN_BYTES (8900, 50, 9030);
275 CHECK_WRITTEN_BYTES (8950, 50, 9030);
276 CHECK_WRITTEN_BYTES (9000, 10, 9030);
277 CHECK_WRITTEN_BYTES (9010, 10, 9030);
278 CHECK_WRITTEN_BYTES (9020, 10, 9030);
279
280 /* Push buffer with 2 memory blocks each of size 20 bytes */
281 PUSH_BUFFER_WITH_MULTIPLE_MEM_BLOCKS (2, 20);
282 CHECK_WRITTEN_BYTES (9030, 20, 9070);
283 CHECK_WRITTEN_BYTES (9050, 20, 9070);
284
285 /* Push buffer list with 2 buffers each containing 2 memory blocks each of size 20 bytes */
286 PUSH_BUFFER_LIST_WITH_MULTI_MEM_BLOCKS_BUFFERS (2, 2, 20);
287 CHECK_WRITTEN_BYTES (9070, 20, 9150);
288 CHECK_WRITTEN_BYTES (9090, 20, 9150);
289 CHECK_WRITTEN_BYTES (9110, 20, 9150);
290 CHECK_WRITTEN_BYTES (9130, 20, 9150);
291
198292 segment.start = 8800;
199293 if (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))) {
200294 GST_LOG ("seek ok");
361455 fail_unless_equals_string (location, "file:///foo/b%3Fr");
362456 g_free (location);
363457
458 g_object_set (G_OBJECT (filesink), "location", "\".donotexist", NULL);
459 g_object_get (G_OBJECT (filesink), "location", &location, NULL);
460 fail_unless_equals_string (location, "\".donotexist");
461 g_free (location);
462
364463 /* should fail with other hostnames */
365464 fail_if (gst_uri_handler_set_uri (GST_URI_HANDLER (filesink),
366465 "file://hostname/foo/foo", NULL));
322322
323323 GMutex *mutex;
324324 GCond *cond;
325
326 /* used by initial_events_nodelay */
327 gint event_count;
325328 };
326329
327330 static GstFlowReturn
948951
949952 GST_END_TEST;
950953
954 static gboolean
955 event_func_signal (GstPad * sinkpad, GstObject * parent, GstEvent * event)
956 {
957 struct PadData *pad_data;
958
959 GST_LOG_OBJECT (sinkpad, "%s event", GST_EVENT_TYPE_NAME (event));
960
961 pad_data = gst_pad_get_element_private (sinkpad);
962
963 g_mutex_lock (pad_data->mutex);
964 ++pad_data->event_count;
965 g_cond_broadcast (pad_data->cond);
966 g_mutex_unlock (pad_data->mutex);
967
968 gst_event_unref (event);
969 return TRUE;
970 }
971
972 GST_START_TEST (test_initial_events_nodelay)
973 {
974 struct PadData pad_data = { 0, };
975 GstElement *pipe;
976 GstElement *mq;
977 GstPad *inputpad;
978 GstPad *sinkpad;
979 GstSegment segment;
980 GstCaps *caps;
981 GMutex mutex;
982 GCond cond;
983
984 g_mutex_init (&mutex);
985 g_cond_init (&cond);
986
987 pipe = gst_pipeline_new ("testbin");
988
989 mq = gst_element_factory_make ("multiqueue", NULL);
990 fail_unless (mq != NULL);
991 gst_bin_add (GST_BIN (pipe), mq);
992
993 {
994 GstPad *mq_srcpad, *mq_sinkpad;
995
996 inputpad = gst_pad_new ("dummysrc", GST_PAD_SRC);
997
998 mq_sinkpad = gst_element_get_request_pad (mq, "sink_%u");
999 fail_unless (mq_sinkpad != NULL);
1000 fail_unless (gst_pad_link (inputpad, mq_sinkpad) == GST_PAD_LINK_OK);
1001
1002 gst_pad_set_active (inputpad, TRUE);
1003
1004 mq_srcpad = mq_sinkpad_to_srcpad (mq, mq_sinkpad);
1005
1006 sinkpad = gst_pad_new ("dummysink", GST_PAD_SINK);
1007 gst_pad_set_event_function (sinkpad, event_func_signal);
1008
1009 pad_data.event_count = 0;
1010 pad_data.cond = &cond;
1011 pad_data.mutex = &mutex;
1012 gst_pad_set_element_private (sinkpad, &pad_data);
1013
1014 fail_unless (gst_pad_link (mq_srcpad, sinkpad) == GST_PAD_LINK_OK);
1015 gst_pad_set_active (sinkpad, TRUE);
1016
1017 gst_object_unref (mq_sinkpad);
1018 gst_object_unref (mq_srcpad);
1019 }
1020
1021 /* Run the test: push events through multiqueue */
1022 gst_element_set_state (pipe, GST_STATE_PLAYING);
1023
1024 gst_pad_push_event (inputpad, gst_event_new_stream_start ("test"));
1025
1026 caps = gst_caps_new_empty_simple ("foo/x-bar");
1027 gst_pad_push_event (inputpad, gst_event_new_caps (caps));
1028 gst_caps_unref (caps);
1029
1030 gst_segment_init (&segment, GST_FORMAT_TIME);
1031 gst_pad_push_event (inputpad, gst_event_new_segment (&segment));
1032
1033 g_mutex_lock (&mutex);
1034 while (pad_data.event_count < 3) {
1035 GST_LOG ("%d events so far, waiting for more", pad_data.event_count);
1036 g_cond_wait (&cond, &mutex);
1037 }
1038 g_mutex_unlock (&mutex);
1039
1040 /* Clean up */
1041 {
1042 GstPad *mq_input = gst_pad_get_peer (inputpad);
1043
1044 gst_pad_unlink (inputpad, mq_input);
1045 gst_element_release_request_pad (mq, mq_input);
1046 gst_object_unref (mq_input);
1047 gst_object_unref (inputpad);
1048
1049 gst_object_unref (sinkpad);
1050 }
1051
1052 gst_element_set_state (pipe, GST_STATE_NULL);
1053 gst_object_unref (pipe);
1054
1055 g_cond_clear (&cond);
1056 g_mutex_clear (&mutex);
1057 }
1058
1059 GST_END_TEST;
1060
9511061 static Suite *
9521062 multiqueue_suite (void)
9531063 {
9701080 tcase_add_test (tc_chain, test_limit_changes);
9711081
9721082 tcase_add_test (tc_chain, test_buffering_with_none_pts);
1083 tcase_add_test (tc_chain, test_initial_events_nodelay);
9731084
9741085 return s;
9751086 }
4444 static GCond underrun_cond;
4545 static gint underrun_count;
4646
47 static GMutex events_lock;
48 static GCond events_cond;
49 static gint events_count;
4750 static GList *events;
4851
4952 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
7578 static gboolean
7679 event_func (GstPad * pad, GstObject * parent, GstEvent * event)
7780 {
78 GST_DEBUG ("%s event", gst_event_type_get_name (GST_EVENT_TYPE (event)));
81 GST_DEBUG ("%s event", GST_EVENT_TYPE_NAME (event));
82
83 g_mutex_lock (&events_lock);
84
7985 events = g_list_append (events, event);
86 ++events_count;
87
88 g_cond_broadcast (&events_cond);
89 g_mutex_unlock (&events_lock);
8090
8191 return TRUE;
8292 }
8393
8494 static void
85 drop_events (void)
86 {
95 block_src (void)
96 {
97 qsrcpad = gst_element_get_static_pad (queue, "src");
98 probe_id = gst_pad_add_probe (qsrcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
99 NULL, NULL, NULL);
100 }
101
102 static void
103 unblock_src (void)
104 {
105 gst_pad_remove_probe (qsrcpad, probe_id);
106 gst_object_unref (qsrcpad);
107 }
108
109 static void
110 setup (void)
111 {
112 GST_DEBUG ("setup_queue");
113
114 queue = gst_check_setup_element ("queue");
115 g_signal_connect (queue, "underrun", G_CALLBACK (queue_underrun), NULL);
116
117 mysrcpad = gst_check_setup_src_pad (queue, &srctemplate);
118 gst_pad_set_active (mysrcpad, TRUE);
119
120 mysinkpad = NULL;
121
122 overrun_count = 0;
123
124 underrun_count = 0;
125
126
127 g_mutex_init (&events_lock);
128 g_cond_init (&events_cond);
129 events_count = 0;
130 events = NULL;
131 }
132
133 static void
134 cleanup (void)
135 {
136 GST_DEBUG ("cleanup_queue");
137
138 gst_check_drop_buffers ();
139
87140 while (events != NULL) {
88141 gst_event_unref (GST_EVENT (events->data));
89142 events = g_list_delete_link (events, events);
90143 }
91 }
92
93 static void
94 block_src (void)
95 {
96 qsrcpad = gst_element_get_static_pad (queue, "src");
97 probe_id = gst_pad_add_probe (qsrcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
98 NULL, NULL, NULL);
99 }
100
101 static void
102 unblock_src (void)
103 {
104 gst_pad_remove_probe (qsrcpad, probe_id);
105 gst_object_unref (qsrcpad);
106 }
107
108 static void
109 setup (void)
110 {
111 GST_DEBUG ("setup_queue");
112
113 queue = gst_check_setup_element ("queue");
114 g_signal_connect (queue, "underrun", G_CALLBACK (queue_underrun), NULL);
115
116 mysrcpad = gst_check_setup_src_pad (queue, &srctemplate);
117 gst_pad_set_active (mysrcpad, TRUE);
118
119 mysinkpad = NULL;
120
121 overrun_count = 0;
122
123 underrun_count = 0;
124
125 events = NULL;
126 }
127
128 static void
129 cleanup (void)
130 {
131 GST_DEBUG ("cleanup_queue");
132
133 gst_check_drop_buffers ();
134
135 drop_events ();
144 events_count = 0;
145 g_mutex_clear (&events_lock);
146 g_cond_clear (&events_cond);
136147
137148 if (mysinkpad != NULL) {
138149 gst_pad_set_active (mysinkpad, FALSE);
10831094 GST_DEBUG ("stopping");
10841095 fail_unless (gst_element_set_state (queue,
10851096 GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
1097 }
1098
1099 GST_END_TEST;
1100
1101 GST_START_TEST (test_initial_events_nodelay)
1102 {
1103 GstSegment segment;
1104 GstEvent *event;
1105 GstCaps *caps;
1106 gboolean ret;
1107
1108 mysinkpad = gst_check_setup_sink_pad (queue, &sinktemplate);
1109 gst_pad_set_event_function (mysinkpad, event_func);
1110 gst_pad_set_active (mysinkpad, TRUE);
1111
1112 GST_DEBUG ("starting");
1113
1114 fail_unless (gst_element_set_state (queue,
1115 GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
1116 "could not set to playing");
1117
1118 gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
1119
1120 caps = gst_caps_new_empty_simple ("foo/x-bar");
1121 ret = gst_pad_push_event (mysrcpad, gst_event_new_caps (caps));
1122 gst_caps_unref (caps);
1123 fail_unless (ret == TRUE);
1124
1125 gst_segment_init (&segment, GST_FORMAT_TIME);
1126 ret = gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
1127 fail_unless (ret == TRUE);
1128
1129 g_mutex_lock (&events_lock);
1130 while (events_count < 3) {
1131 g_cond_wait (&events_cond, &events_lock);
1132 }
1133 g_mutex_unlock (&events_lock);
1134
1135 fail_unless_equals_int (g_list_length (events), 3);
1136 event = g_list_nth_data (events, 0);
1137 fail_unless_equals_int (GST_EVENT_TYPE (event), GST_EVENT_STREAM_START);
1138 event = g_list_nth_data (events, 1);
1139 fail_unless_equals_int (GST_EVENT_TYPE (event), GST_EVENT_CAPS);
1140 event = g_list_nth_data (events, 2);
1141 fail_unless_equals_int (GST_EVENT_TYPE (event), GST_EVENT_SEGMENT);
1142
1143 gst_element_set_state (queue, GST_STATE_NULL);
10861144 }
10871145
10881146 GST_END_TEST;
11081166 #endif
11091167 tcase_add_test (tc_chain, test_sticky_not_linked);
11101168 tcase_add_test (tc_chain, test_time_level_buffer_list);
1169 tcase_add_test (tc_chain, test_initial_events_nodelay);
11111170
11121171 return s;
11131172 }
367367
368368 /* Push buffers to input pad and check the
369369 amount of buffers arrived to output pads */
370 GST_START_TEST (test_output_selector_buffer_count);
370 GST_START_TEST (test_output_selector_buffer_count)
371371 {
372372 gint i, j;
373373
382382
383383 /* Push buffers to input pads and check the
384384 amount of buffers arrived to output pad */
385 GST_START_TEST (test_input_selector_buffer_count);
385 GST_START_TEST (test_input_selector_buffer_count)
386386 {
387387 gint i, j;
388388
395395
396396 GST_END_TEST;
397397
398
399 GST_START_TEST (test_output_selector_no_srcpad_negotiation);
398 static GstElement *selector;
399 static GstPad *output_pad;
400 static GstPad *stream1_pad;
401 static GstPad *stream2_pad;
402
403 static gboolean eos_received;
404 static gulong eos_probe;
405 static GMutex eos_probe_lock;
406 static GCond eos_probe_cond;
407
408 enum InputSelectorResult
409 {
410 INPUT_SELECTOR_FORWARD,
411 INPUT_SELECTOR_DROP
412 };
413
414 static GstPadProbeReturn
415 eos_pushed_probe (GstPad * pad, GstPadProbeInfo * info, gpointer udata)
416 {
417 g_mutex_lock (&eos_probe_lock);
418 if (GST_EVENT_TYPE (info->data) == GST_EVENT_EOS) {
419 eos_received = TRUE;
420 g_cond_broadcast (&eos_probe_cond);
421 }
422 g_mutex_unlock (&eos_probe_lock);
423
424 return GST_PAD_PROBE_OK;
425 }
426
427 static void
428 setup_input_selector_with_2_streams (gint active_stream)
429 {
430 eos_received = FALSE;
431 g_mutex_init (&eos_probe_lock);
432 g_cond_init (&eos_probe_cond);
433
434 selector = gst_check_setup_element ("input-selector");
435 output_pad = gst_check_setup_sink_pad (selector, &sinktemplate);
436
437 gst_pad_set_active (output_pad, TRUE);
438 stream1_pad = setup_input_pad (selector);
439 stream2_pad = setup_input_pad (selector);
440
441 if (active_stream == 1) {
442 g_object_set (selector, "active-pad", GST_PAD_PEER (stream1_pad), NULL);
443 } else {
444 g_object_set (selector, "active-pad", GST_PAD_PEER (stream2_pad), NULL);
445 }
446
447 eos_probe =
448 gst_pad_add_probe (output_pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
449 eos_pushed_probe, NULL, NULL);
450
451 fail_unless (gst_element_set_state (selector,
452 GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
453 "could not set to playing");
454
455 gst_check_setup_events_with_stream_id (stream1_pad, selector, NULL,
456 GST_FORMAT_TIME, "stream-1-id");
457 gst_check_setup_events_with_stream_id (stream2_pad, selector, NULL,
458 GST_FORMAT_TIME, "stream-2-id");
459 }
460
461 static void
462 teardown_input_selector_with_2_streams (void)
463 {
464 fail_unless (gst_element_set_state (selector,
465 GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
466
467 gst_pad_remove_probe (output_pad, eos_probe);
468
469 gst_pad_set_active (output_pad, FALSE);
470 gst_check_teardown_sink_pad (selector);
471 gst_check_teardown_element (selector);
472
473 g_mutex_clear (&eos_probe_lock);
474 g_cond_clear (&eos_probe_cond);
475 }
476
477 static void
478 input_selector_push_buffer (gint stream, enum InputSelectorResult res)
479 {
480 GstBuffer *buf;
481 GstPad *pad = stream == 1 ? stream1_pad : stream2_pad;
482
483 buf = gst_buffer_new ();
484 fail_unless (buffers == NULL);
485 fail_unless (gst_pad_push (pad, buf) == GST_FLOW_OK);
486
487 if (res == INPUT_SELECTOR_DROP) {
488 fail_unless (buffers == NULL);
489 } else {
490 fail_unless (buffers != NULL);
491 fail_unless (buffers->data == buf);
492 g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
493 buffers = NULL;
494 }
495 }
496
497 static gpointer
498 input_selector_do_push_eos (GstPad * pad)
499 {
500 gst_pad_push_event (pad, gst_event_new_eos ());
501 return NULL;
502 }
503
504 static void
505 input_selector_check_eos (gint present)
506 {
507 GstEvent *eos;
508
509 eos = gst_pad_get_sticky_event (output_pad, GST_EVENT_EOS, 0);
510 if (present) {
511 fail_unless (eos != NULL);
512 gst_event_unref (eos);
513 } else {
514 fail_unless (eos == NULL);
515 }
516 }
517
518 static void
519 input_selector_push_eos (gint stream, gboolean active)
520 {
521 GstPad *pad = stream == 1 ? stream1_pad : stream2_pad;
522
523 if (active) {
524 fail_unless (gst_pad_push_event (pad, gst_event_new_eos ()));
525 } else {
526 /* The non-active pads will block when receving eos, so we need to do it
527 * from a separate thread. This makes this test racy, but it should only
528 * cause false positives, not false negatives */
529 GThread *t = g_thread_new ("selector-test-push-eos",
530 (GThreadFunc) input_selector_do_push_eos, pad);
531
532 /* Sleep half a second to allow the other thread to execute, this is not
533 * a definitive solution but there is no way to know when the
534 * EOS has reached input-selector and blocked there, so this is just
535 * to reduce the possibility of this test being racy (false positives)
536 */
537 g_usleep (0.5 * G_USEC_PER_SEC);
538 g_thread_unref (t);
539 }
540
541 input_selector_check_eos (active);
542 }
543
544 GST_START_TEST (test_input_selector_empty_stream)
545 {
546 setup_input_selector_with_2_streams (2);
547
548 /* stream1 is the empty stream, stream2 has data */
549
550 /* empty stream is just an EOS and it should not be forwarded */
551 input_selector_push_eos (1, FALSE);
552
553 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
554 input_selector_push_eos (2, TRUE);
555
556 teardown_input_selector_with_2_streams ();
557 }
558
559 GST_END_TEST;
560
561
562 GST_START_TEST (test_input_selector_shorter_stream)
563 {
564 setup_input_selector_with_2_streams (2);
565
566 /* stream1 is shorter than stream2 */
567
568 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
569 input_selector_push_buffer (1, INPUT_SELECTOR_DROP);
570 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
571 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
572
573 /* EOS from inactive stream should not go through */
574 input_selector_push_eos (1, FALSE);
575
576 /* buffers from active stream can still flow */
577 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
578
579 /* EOS from active stream should go through */
580 input_selector_push_eos (2, TRUE);
581
582 teardown_input_selector_with_2_streams ();
583 }
584
585 GST_END_TEST;
586
587
588 GST_START_TEST (test_input_selector_switch_to_eos_stream)
589 {
590 setup_input_selector_with_2_streams (2);
591
592 /* stream1 receives eos before stream2 and then we switch to it */
593
594 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
595 input_selector_push_buffer (1, INPUT_SELECTOR_DROP);
596 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
597 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
598 input_selector_push_buffer (1, INPUT_SELECTOR_DROP);
599
600 /* EOS from inactive stream should not go through */
601 input_selector_push_eos (1, FALSE);
602
603 /* buffers from active stream can still flow */
604 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
605 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
606 input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
607
608 /* now switch to stream1 */
609 g_object_set (selector, "active-pad", GST_PAD_PEER (stream1_pad), NULL);
610
611 /* wait for eos (it runs from a separate thread) */
612 g_mutex_lock (&eos_probe_lock);
613 while (!eos_received) {
614 g_cond_wait (&eos_probe_cond, &eos_probe_lock);
615 }
616 g_mutex_unlock (&eos_probe_lock);
617
618 teardown_input_selector_with_2_streams ();
619 }
620
621 GST_END_TEST;
622
623
624 GST_START_TEST (test_output_selector_no_srcpad_negotiation)
400625 {
401626 GstElement *sel;
402627 GstCaps *caps;
477702 output_pads = NULL;
478703 }
479704
480 GST_START_TEST (test_output_selector_getcaps_none);
705 GST_START_TEST (test_output_selector_getcaps_none)
481706 {
482707 GList *walker;
483708
512737 GST_END_TEST;
513738
514739
515 GST_START_TEST (test_output_selector_getcaps_all);
740 GST_START_TEST (test_output_selector_getcaps_all)
516741 {
517742 GList *walker;
518743 GstCaps *expected;
552777 GST_END_TEST;
553778
554779
555 GST_START_TEST (test_output_selector_getcaps_active);
780 GST_START_TEST (test_output_selector_getcaps_active)
556781 {
557782 GList *walker;
558783 GstCaps *expected;
604829 suite_add_tcase (s, tc_chain);
605830 tcase_add_test (tc_chain, test_output_selector_buffer_count);
606831 tcase_add_test (tc_chain, test_input_selector_buffer_count);
832 tcase_add_test (tc_chain, test_input_selector_empty_stream);
833 tcase_add_test (tc_chain, test_input_selector_shorter_stream);
834 tcase_add_test (tc_chain, test_input_selector_switch_to_eos_stream);
607835 tcase_add_test (tc_chain, test_output_selector_no_srcpad_negotiation);
608836
609837 tc_chain = tcase_create ("output-selector-negotiation");
624624
625625 GST_END_TEST;
626626
627 GST_START_TEST (test_allow_not_linked)
628 {
629 GstElement *tee;
630 GstPad *src1, *src2;
631 GstBuffer *buffer;
632 GstPad *srcpad;
633 GstCaps *caps;
634 GstSegment segment;
635
636 static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
637 GST_PAD_SRC,
638 GST_PAD_ALWAYS,
639 GST_STATIC_CAPS_ANY);
640
641 caps = gst_caps_new_empty_simple ("test/test");
642
643 tee = gst_check_setup_element ("tee");
644 fail_unless (tee);
645 g_object_set (tee, "allow-not-linked", TRUE, NULL);
646
647 srcpad = gst_check_setup_src_pad (tee, &srctemplate);
648 gst_pad_set_active (srcpad, TRUE);
649
650 gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
651 gst_segment_init (&segment, GST_FORMAT_BYTES);
652 gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
653 gst_pad_set_caps (srcpad, caps);
654 gst_caps_unref (caps);
655 gst_pad_push_event (srcpad, gst_event_new_segment (&segment));
656
657 fail_unless (gst_element_set_state (tee,
658 GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
659
660 buffer = gst_buffer_new ();
661 fail_unless (buffer);
662
663 fail_unless (gst_pad_push (srcpad, gst_buffer_ref (buffer)) == GST_FLOW_OK);
664
665 src1 = gst_element_get_request_pad (tee, "src_%u");
666
667 fail_unless (gst_pad_push (srcpad, gst_buffer_ref (buffer)) == GST_FLOW_OK);
668
669 src2 = gst_element_get_request_pad (tee, "src_%u");
670
671 fail_unless (gst_pad_push (srcpad, gst_buffer_ref (buffer)) == GST_FLOW_OK);
672
673 g_object_set (tee, "allow-not-linked", FALSE, NULL);
674
675 fail_unless (gst_pad_push (srcpad,
676 gst_buffer_ref (buffer)) == GST_FLOW_NOT_LINKED);
677
678 gst_element_release_request_pad (tee, src1);
679
680 fail_unless (gst_pad_push (srcpad,
681 gst_buffer_ref (buffer)) == GST_FLOW_NOT_LINKED);
682
683 gst_element_release_request_pad (tee, src2);
684 g_object_unref (src1);
685 g_object_unref (src2);
686
687 fail_unless (gst_pad_push (srcpad,
688 gst_buffer_ref (buffer)) == GST_FLOW_NOT_LINKED);
689
690 gst_pad_set_active (srcpad, FALSE);
691 gst_check_teardown_src_pad (tee);
692 gst_check_teardown_element (tee);
693
694 fail_if (buffer->mini_object.refcount != 1);
695 gst_buffer_unref (buffer);
696 }
697
698 GST_END_TEST;
699
627700 static Suite *
628701 tee_suite (void)
629702 {
641714 tcase_add_test (tc_chain, test_internal_links);
642715 tcase_add_test (tc_chain, test_flow_aggregation);
643716 tcase_add_test (tc_chain, test_request_pads);
717 tcase_add_test (tc_chain, test_allow_not_linked);
644718
645719 return s;
646720 }
3939
4040 GST_DEBUG ("getting elements for package %s", PACKAGE);
4141 STATE_IGNORE_ELEMENTS = g_getenv ("GST_STATE_IGNORE_ELEMENTS");
42 if (!g_getenv ("GST_NO_STATE_IGNORE_ELEMENTS") && STATE_IGNORE_ELEMENTS) {
42 fail_unless (STATE_IGNORE_ELEMENTS != NULL, "Test environment not set up!");
43 if (!g_getenv ("GST_NO_STATE_IGNORE_ELEMENTS")) {
4344 GST_DEBUG ("Will ignore element factories: '%s'", STATE_IGNORE_ELEMENTS);
4445 ignorelist = g_strsplit (STATE_IGNORE_ELEMENTS, " ", 0);
4546 }
204205
205206 GST_END_TEST;
206207
208 static gboolean
209 element_state_is (GstElement * e, GstState s)
210 {
211 GstStateChangeReturn ret;
212 GstState state;
213
214 ret = gst_element_get_state (e, &state, NULL, GST_CLOCK_TIME_NONE);
215 return (ret == GST_STATE_CHANGE_SUCCESS && state == s);
216 }
217
218 GST_START_TEST (test_state_changes_up_failure)
219 {
220 GstElement *bin;
221 GstElement *mid[3];
222 int n;
223
224 /* we want at least one before and one after */
225 g_assert (G_N_ELEMENTS (mid) >= 3);
226
227 /* make a bin */
228 bin = gst_element_factory_make ("bin", NULL);
229
230 /* add children */
231 for (n = 0; n < G_N_ELEMENTS (mid); ++n) {
232 const char *element = n != 1 ? "identity" : "fakesink";
233 mid[n] = gst_element_factory_make (element, NULL);
234 gst_bin_add (GST_BIN (bin), mid[n]);
235 if (n == 1)
236 g_object_set (mid[n], "async", FALSE, NULL);
237 }
238
239 /* This one should work */
240 for (n = 0; n < G_N_ELEMENTS (mid); ++n)
241 fail_unless (element_state_is (mid[n], GST_STATE_NULL));
242 gst_element_set_state (bin, GST_STATE_READY);
243 for (n = 0; n < G_N_ELEMENTS (mid); ++n)
244 fail_unless (element_state_is (mid[n], GST_STATE_READY));
245 gst_element_set_state (bin, GST_STATE_NULL);
246 for (n = 0; n < G_N_ELEMENTS (mid); ++n)
247 fail_unless (element_state_is (mid[n], GST_STATE_NULL));
248
249 /* make the middle element fail to switch up */
250 g_object_set (mid[1], "state-error", 1 /* null-to-ready */ , NULL);
251
252 /* This one should not */
253 for (n = 0; n < G_N_ELEMENTS (mid); ++n)
254 fail_unless (element_state_is (mid[n], GST_STATE_NULL));
255 gst_element_set_state (bin, GST_STATE_READY);
256 for (n = 0; n < G_N_ELEMENTS (mid); ++n)
257 fail_unless (element_state_is (mid[n], GST_STATE_NULL));
258 gst_element_set_state (bin, GST_STATE_NULL);
259 for (n = 0; n < G_N_ELEMENTS (mid); ++n)
260 fail_unless (element_state_is (mid[n], GST_STATE_NULL));
261
262 /* cleanup */
263 gst_object_unref (bin);
264 }
265
266 GST_END_TEST;
267
207268
208269 static Suite *
209270 states_suite (void)
216277 tcase_add_test (tc_chain, test_state_changes_up_and_down_seq);
217278 tcase_add_test (tc_chain, test_state_changes_up_seq);
218279 tcase_add_test (tc_chain, test_state_changes_down_seq);
280 tcase_add_test (tc_chain, test_state_changes_up_failure);
219281
220282 return s;
221283 }
7777
7878 /* create master and slave */
7979 master = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
80 slave = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
80 slave = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockSlave", NULL);
8181 GST_OBJECT_FLAG_SET (slave, GST_CLOCK_FLAG_CAN_SET_MASTER);
8282
8383 fail_unless_equals_int (GST_OBJECT_REFCOUNT (master), 1);
232232
233233 fail_unless (gst_event_get_structure (event) == structure);
234234 gst_event_unref (event);
235 }
236
237 /* Protection */
238 {
239 GstBuffer *data;
240 GstMemory *mem;
241 const gchar *parsed_origin;
242 const gchar *parsed_id;
243 GstBuffer *parsed_data;
244 const gchar clearkey_sys_id[] = "78f32170-d883-11e0-9572-0800200c9a66";
245
246 data = gst_buffer_new ();
247 mem = gst_allocator_alloc (NULL, 40, NULL);
248 gst_buffer_insert_memory (data, -1, mem);
249 for (gsize offset = 0; offset < 40; offset += 4) {
250 gst_buffer_fill (data, offset, "pssi", 4);
251 }
252 ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 1);
253 event = gst_event_new_protection (clearkey_sys_id, data, "test");
254 fail_if (event == NULL);
255 ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 2);
256 fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_PROTECTION);
257 fail_unless (GST_EVENT_IS_DOWNSTREAM (event));
258 fail_unless (GST_EVENT_IS_SERIALIZED (event));
259 gst_event_parse_protection (event, &parsed_id, &parsed_data,
260 &parsed_origin);
261 fail_if (parsed_id == NULL);
262 fail_unless (g_strcmp0 (clearkey_sys_id, parsed_id) == 0);
263 fail_if (parsed_data == NULL);
264 fail_if (parsed_data != data);
265 ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 2);
266 fail_if (parsed_origin == NULL);
267 fail_unless (g_strcmp0 ("test", parsed_origin) == 0);
268 gst_event_unref (event);
269 ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 1);
270 gst_buffer_unref (data);
235271 }
236272
237273 /* Custom event types */
3838 dbg_msg = gst_debug_message_get (message);
3939 fail_unless (dbg_msg != NULL);
4040
41 if (save_messages)
41 if (save_messages && g_str_equal (category->name, "check"))
4242 messages = g_list_append (messages, g_strdup (dbg_msg));
4343
4444 /* g_print ("%s\n", dbg_msg); */
326326 fail_unless_equals_string (gst_debug_category_get_name (cat1), "dupli-cat");
327327 fail_unless_equals_string (gst_debug_category_get_description (cat1),
328328 "Going once");
329 }
330
331 GST_END_TEST;
332
333 GST_START_TEST (info_set_and_unset_single)
334 {
335 GstDebugLevel orig = gst_debug_get_default_threshold ();
336 GstDebugLevel cat1, cat2;
337 GstDebugCategory *states;
338
339 GST_DEBUG_CATEGORY_GET (states, "GST_STATES");
340 fail_unless (states != NULL);
341
342 gst_debug_set_default_threshold (GST_LEVEL_WARNING);
343
344 gst_debug_set_threshold_for_name ("GST_STATES", GST_LEVEL_DEBUG);
345 cat1 = gst_debug_category_get_threshold (states);
346 gst_debug_unset_threshold_for_name ("GST_STATES");
347 cat2 = gst_debug_category_get_threshold (states);
348
349 gst_debug_set_default_threshold (orig);
350 fail_unless (cat1 = GST_LEVEL_DEBUG);
351 fail_unless (cat2 = GST_LEVEL_WARNING);
352 }
353
354 GST_END_TEST;
355
356 GST_START_TEST (info_set_and_unset_multiple)
357 {
358 GstDebugLevel orig = gst_debug_get_default_threshold ();
359 GstDebugLevel cat1, cat2, cat3;
360 GstDebugCategory *states;
361 GstDebugCategory *caps;
362
363 GST_DEBUG_CATEGORY_GET (states, "GST_STATES");
364 GST_DEBUG_CATEGORY_GET (caps, "GST_CAPS");
365 fail_unless (states != NULL);
366 fail_unless (caps != NULL);
367
368 gst_debug_set_default_threshold (GST_LEVEL_WARNING);
369
370 gst_debug_set_threshold_for_name ("GST_STATES", GST_LEVEL_DEBUG);
371 gst_debug_set_threshold_for_name ("GST_CAPS", GST_LEVEL_DEBUG);
372 cat1 = gst_debug_category_get_threshold (states);
373 gst_debug_unset_threshold_for_name ("GST_STATES");
374 gst_debug_unset_threshold_for_name ("GST_CAPS");
375 cat2 = gst_debug_category_get_threshold (states);
376 cat3 = gst_debug_category_get_threshold (caps);
377
378 gst_debug_set_default_threshold (orig);
379
380 fail_unless (cat1 = GST_LEVEL_DEBUG);
381 fail_unless (cat2 = GST_LEVEL_WARNING);
382 fail_unless (cat3 = GST_LEVEL_WARNING);
329383 }
330384
331385 GST_END_TEST;
366420 tcase_add_test (tc_chain, info_fixme);
367421 tcase_add_test (tc_chain, info_old_printf_extensions);
368422 tcase_add_test (tc_chain, info_register_same_debug_category_twice);
423 tcase_add_test (tc_chain, info_set_and_unset_single);
424 tcase_add_test (tc_chain, info_set_and_unset_multiple);
369425 #endif
370426
371427 return s;
507507
508508 GST_END_TEST;
509509
510 GST_START_TEST (test_alloc_params)
511 {
512 GstMemory *mem;
513 GstMapInfo info;
514 gsize size, offset, maxalloc;
515 GstAllocationParams params;
516 guint8 arr[10];
517
518 memset (arr, 0, 10);
519
520 gst_allocation_params_init (&params);
521 params.padding = 10;
522 params.prefix = 10;
523 params.flags = GST_MEMORY_FLAG_ZERO_PREFIXED | GST_MEMORY_FLAG_ZERO_PADDED;
524 mem = gst_allocator_alloc (NULL, 100, &params);
525
526 /*Checking size and offset */
527 size = gst_memory_get_sizes (mem, &offset, &maxalloc);
528 fail_unless (size == 100);
529 fail_unless (offset == 10);
530 fail_unless (maxalloc >= 120);
531
532 fail_unless (GST_MEMORY_FLAG_IS_SET (mem, GST_MEMORY_FLAG_ZERO_PREFIXED));
533 fail_unless (GST_MEMORY_FLAG_IS_SET (mem, GST_MEMORY_FLAG_ZERO_PADDED));
534
535 fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
536 fail_unless (info.data != NULL);
537 fail_unless (info.size == 100);
538
539 /*Checking prefix */
540 fail_unless (memcmp (info.data - 10, arr, 10) == 0);
541
542 /*Checking padding */
543 fail_unless (memcmp (info.data + 100, arr, 10) == 0);
544
545
546 gst_memory_unmap (mem, &info);
547 gst_memory_unref (mem);
548 }
549
550 GST_END_TEST;
551
510552
511553 static Suite *
512554 gst_memory_suite (void)
525567 tcase_add_test (tc_chain, test_map);
526568 tcase_add_test (tc_chain, test_map_nested);
527569 tcase_add_test (tc_chain, test_map_resize);
570 tcase_add_test (tc_chain, test_alloc_params);
528571
529572 return s;
530573 }
790790
791791 fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
792792 res = memcmp (info.data, str, size) == 0;
793 GST_DEBUG ("%s <-> %s: %d", (gchar *) info.data, str, res);
793 GST_MEMDUMP ("buffer data", info.data, size);
794 GST_MEMDUMP ("compare data", (guint8 *) str, size);
795 GST_DEBUG ("buffers match: %s", res ? "yes" : "no");
794796 gst_buffer_unmap (buf, &info);
795797
796798 return res;
11431145
11441146 GST_END_TEST;
11451147
1148 static gboolean idle_probe_running;
1149
1150 static GstFlowReturn
1151 idletest_sink_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
1152 {
1153 if (idle_probe_running)
1154 fail ("Should not be reached");
1155 gst_buffer_unref (buf);
1156 return GST_FLOW_OK;
1157 }
1158
1159 static GstPadProbeReturn
1160 idle_probe_wait (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
1161 {
1162 /* it is ok to have a probe called multiple times but it is not
1163 * acceptable in our scenario */
1164 fail_if (idle_probe_running);
1165
1166 idle_probe_running = TRUE;
1167 while (idle_probe_running) {
1168 g_usleep (10000);
1169 }
1170
1171 return GST_PAD_PROBE_REMOVE;
1172 }
1173
1174 static gpointer
1175 add_idle_probe_async (GstPad * pad)
1176 {
1177 gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_IDLE, idle_probe_wait, NULL, NULL);
1178
1179 return NULL;
1180 }
1181
1182 GST_START_TEST (test_pad_blocking_with_probe_type_idle)
1183 {
1184 GstPad *srcpad, *sinkpad;
1185 GThread *idle_thread, *thread;
1186
1187 srcpad = gst_pad_new ("src", GST_PAD_SRC);
1188 fail_unless (srcpad != NULL);
1189 sinkpad = gst_pad_new ("sink", GST_PAD_SINK);
1190 fail_unless (sinkpad != NULL);
1191
1192 gst_pad_set_chain_function (sinkpad, idletest_sink_pad_chain);
1193
1194 fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK);
1195
1196 gst_pad_set_active (sinkpad, TRUE);
1197 gst_pad_set_active (srcpad, TRUE);
1198
1199 fail_unless (gst_pad_push_event (srcpad,
1200 gst_event_new_stream_start ("test")) == TRUE);
1201 fail_unless (gst_pad_push_event (srcpad,
1202 gst_event_new_segment (&dummy_segment)) == TRUE);
1203
1204 idle_probe_running = FALSE;
1205 idle_thread =
1206 g_thread_try_new ("gst-check", (GThreadFunc) add_idle_probe_async, srcpad,
1207 NULL);
1208
1209 /* wait for the idle function to signal it is being called */
1210 while (!idle_probe_running) {
1211 g_usleep (10000);
1212 }
1213
1214 thread = g_thread_try_new ("gst-check", (GThreadFunc) push_buffer_async,
1215 srcpad, NULL);
1216
1217 while (!gst_pad_is_blocking (srcpad)) {
1218 g_usleep (10000);
1219 }
1220
1221 idle_probe_running = FALSE;
1222
1223 g_thread_join (idle_thread);
1224 g_thread_join (thread);
1225 gst_object_unref (srcpad);
1226 gst_object_unref (sinkpad);
1227 }
1228
1229 GST_END_TEST;
1230
11461231 static gboolean pad_probe_remove_notifiy_called = FALSE;
11471232
11481233 static GstPadProbeReturn
11861271 fail_unless (pad->num_blocked == 0);
11871272
11881273 gst_object_unref (pad);
1274 }
1275
1276 GST_END_TEST;
1277
1278 typedef struct
1279 {
1280 gulong probe_id;
1281 GstPad *probe_pad;
1282 GThread *thread;
1283 } BlockReplaceProbeHelper;
1284
1285 static gpointer
1286 unblock_probe_thread (gpointer user_data)
1287 {
1288 BlockReplaceProbeHelper *helper = user_data;
1289
1290 GST_INFO_OBJECT (helper->probe_pad, "removing probe to unblock pad");
1291 gst_pad_remove_probe (helper->probe_pad, helper->probe_id);
1292 return NULL;
1293 }
1294
1295 static GstPadProbeReturn
1296 block_and_replace_buffer_probe_cb (GstPad * pad, GstPadProbeInfo * info,
1297 gpointer user_data)
1298 {
1299 BlockReplaceProbeHelper *helper = user_data;
1300
1301 GST_INFO_OBJECT (pad, "about to block pad, replacing buffer");
1302
1303 /* we want to block, but also drop this buffer */
1304 gst_buffer_unref (GST_BUFFER (info->data));
1305 info->data = NULL;
1306
1307 helper->thread =
1308 g_thread_new ("gst-pad-test-thread", unblock_probe_thread, helper);
1309
1310 return GST_PAD_PROBE_OK;
1311 }
1312
1313 GST_START_TEST (test_pad_probe_block_and_drop_buffer)
1314 {
1315 BlockReplaceProbeHelper helper;
1316 GstFlowReturn flow;
1317 GstPad *src, *sink;
1318
1319 src = gst_pad_new ("src", GST_PAD_SRC);
1320 gst_pad_set_active (src, TRUE);
1321 sink = gst_pad_new ("sink", GST_PAD_SINK);
1322 gst_pad_set_chain_function (sink, gst_check_chain_func);
1323 gst_pad_set_active (sink, TRUE);
1324
1325 fail_unless (gst_pad_push_event (src,
1326 gst_event_new_stream_start ("test")) == TRUE);
1327 fail_unless (gst_pad_push_event (src,
1328 gst_event_new_segment (&dummy_segment)) == TRUE);
1329
1330 fail_unless_equals_int (gst_pad_link (src, sink), GST_PAD_LINK_OK);
1331
1332 helper.probe_id = gst_pad_add_probe (src,
1333 GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER,
1334 block_and_replace_buffer_probe_cb, &helper, NULL);
1335 helper.probe_pad = src;
1336
1337 /* push a buffer so the events are propagated downstream */
1338 flow = gst_pad_push (src, gst_buffer_new ());
1339
1340 g_thread_join (helper.thread);
1341
1342 fail_unless_equals_int (flow, GST_FLOW_OK);
1343
1344 /* no buffer should have made it through to the sink pad, and especially
1345 * not a NULL pointer buffer */
1346 fail_if (buffers && buffers->data == NULL);
1347 fail_unless (buffers == NULL);
1348
1349 gst_object_unref (src);
1350 gst_object_unref (sink);
11891351 }
11901352
11911353 GST_END_TEST;
20822244 tcase_add_test (tc_chain, test_block_async);
20832245 tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_block);
20842246 tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_blocking);
2247 tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_idle);
20852248 tcase_add_test (tc_chain, test_pad_probe_remove);
20862249 tcase_add_test (tc_chain, test_pad_probe_block_add_remove);
2250 tcase_add_test (tc_chain, test_pad_probe_block_and_drop_buffer);
20872251 tcase_add_test (tc_chain, test_pad_probe_flush_events);
20882252 tcase_add_test (tc_chain, test_queue_src_caps_notify_linked);
20892253 tcase_add_test (tc_chain, test_queue_src_caps_notify_not_linked);
117117
118118 GST_END_TEST;
119119
120 GST_START_TEST (printf_percent)
121 {
122 gchar *str;
123
124 /* standard int/uint */
125 str = test_printf ("%u%%", 99);
126 fail_unless_equals_string (str, "99%");
127 g_free (str);
128 }
129
130 GST_END_TEST;
131
120132 static Suite *
121133 gst_printf_suite (void)
122134 {
127139
128140 suite_add_tcase (s, tc_chain);
129141 tcase_add_test (tc_chain, printf_I32_I64);
142 tcase_add_test (tc_chain, printf_percent);
130143
131144 return s;
132145 }
0 /* GStreamer
1 *
2 * Unit tests for protection library.
3 *
4 * Copyright (C) <2015> YouView TV Ltd.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20 */
21
22 #include <gst/check/gstcheck.h>
23 #include <gst/gstprotection.h>
24
25 #ifndef GST_PACKAGE_NAME
26 #define GST_PACKAGE_NAME "gstreamer"
27 #endif
28
29 #ifndef GST_PACKAGE_ORIGIN
30 #define GST_PACKAGE_ORIGIN "https://developer.gnome.org/gstreamer/"
31 #endif
32
33 static GType gst_protection_test_get_type (void);
34
35 #define GST_TYPE_PROTECTION_TEST (gst_protection_test_get_type ())
36 #define GST_PROTECTION_TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PROTECTION_TEST, GstProtectionTest))
37 #define GST_PROTECTION_TEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PROTECTION_TEST, GstProtectionTestClass))
38 #define GST_IS_PROTECTION_TEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PROTECTION_TEST))
39 #define GST_IS_PROTECTION_TEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PROTECTION_TEST))
40 #define GST_PROTECTION_TEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PROTECTION_TEST, GstProtectionTestClass))
41 #define GST_PROTECTION_TEST_NAME "protection-test"
42
43 #define CLEARKEY_SYSTEM_ID "78f32170-d883-11e0-9572-0800200c9a66"
44
45 typedef struct _GstProtectionTest
46 {
47 GstElement parent;
48
49 gint test;
50 } GstProtectionTest;
51
52 typedef struct _GstProtectionTestClass
53 {
54 GstElementClass parent_class;
55 } GstProtectionTestClass;
56
57 typedef struct _PluginInitContext
58 {
59 const gchar *name;
60 guint rank;
61 GType type;
62 } PluginInitContext;
63
64 static GstStaticPadTemplate gst_decrypt_sink_template =
65 GST_STATIC_PAD_TEMPLATE ("sink",
66 GST_PAD_SINK,
67 GST_PAD_ALWAYS,
68 GST_STATIC_CAPS
69 ("application/x-cenc, original-media-type=(string)video/x-h264, "
70 PROTECTION_SYSTEM_ID_CAPS_FIELD "=(string)" CLEARKEY_SYSTEM_ID)
71 );
72
73 static void
74 gst_protection_test_class_init (GObjectClass * klass)
75 {
76 }
77
78 static void
79 gst_protection_test_base_init (GstProtectionTestClass * klass)
80 {
81 GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
82
83 gst_element_class_add_pad_template (element_class,
84 gst_static_pad_template_get (&gst_decrypt_sink_template));
85
86 gst_element_class_set_metadata (element_class,
87 "Decryptor element for unit tests",
88 GST_ELEMENT_FACTORY_KLASS_DECRYPTOR,
89 "Use in unit tests", "Alex Ashley <alex.ashley@youview.com>");
90 }
91
92 static GType
93 gst_protection_test_get_type (void)
94 {
95 static volatile gsize protection_test_type = 0;
96
97 if (g_once_init_enter (&protection_test_type)) {
98 GType type;
99 const GTypeInfo info = {
100 sizeof (GstProtectionTestClass),
101 (GBaseInitFunc) gst_protection_test_base_init, /* base_init */
102 NULL, /* base_finalize */
103 (GClassInitFunc) gst_protection_test_class_init, /* class_init */
104 NULL, /* class_finalize */
105 NULL, /* class_data */
106 sizeof (GstProtectionTest),
107 0, /* n_preallocs */
108 NULL, /* instance_init */
109 NULL /* value_table */
110 };
111 type =
112 g_type_register_static (GST_TYPE_ELEMENT, "GstProtectionTest", &info,
113 0);
114 g_once_init_leave (&protection_test_type, type);
115 }
116 return protection_test_type;
117 }
118
119 static gboolean
120 protection_plugin_init_func (GstPlugin * plugin, gpointer user_data)
121 {
122 PluginInitContext *context = (PluginInitContext *) user_data;
123 gboolean ret;
124
125 ret =
126 gst_element_register (plugin, context->name, context->rank,
127 context->type);
128 return ret;
129 }
130
131 static gboolean
132 protection_create_plugin (GstRegistry * registry, const gchar * name,
133 GType type)
134 {
135 gboolean ret;
136 PluginInitContext context;
137
138 context.name = name;
139 context.rank = GST_RANK_MARGINAL;
140 context.type = type;
141 ret = gst_plugin_register_static_full (GST_VERSION_MAJOR, /* version */
142 GST_VERSION_MINOR, /* version */
143 name, /* name */
144 "Protection unit test", /* description */
145 protection_plugin_init_func, /* init function */
146 "0.0.0", /* version string */
147 GST_LICENSE_UNKNOWN, /* license */
148 __FILE__, /* source */
149 GST_PACKAGE_NAME, /* package */
150 GST_PACKAGE_ORIGIN, /* origin */
151 &context /* user_data */
152 );
153 return ret;
154 }
155
156 static void
157 test_setup (void)
158 {
159 GstRegistry *registry;
160
161 registry = gst_registry_get ();
162 protection_create_plugin (registry, GST_PROTECTION_TEST_NAME,
163 GST_TYPE_PROTECTION_TEST);
164 }
165
166 static void
167 test_teardown (void)
168 {
169 }
170
171
172 GST_START_TEST (test_decryptor_element_class)
173 {
174 GstElement *elem;
175 const gchar *selected_id;
176 const gchar *sys_ids[] = {
177 CLEARKEY_SYSTEM_ID,
178 "69f908af-4816-46ea-910c-cd5dcccb0a3a",
179 "5e629af5-38da-4063-8977-97ffbd9902d4",
180 NULL
181 };
182
183 #ifdef DEBUG_PLUGINS
184 GList *list, *walk;
185
186 list = gst_registry_get_plugin_list (gst_registry_get ());
187 for (walk = list; walk; walk = g_list_next (walk)) {
188 GstPlugin *plugin = (GstPlugin *) walk->data;
189 g_print ("Element %s\n", gst_plugin_get_name (plugin));
190 }
191 #endif
192
193 elem = gst_element_factory_make (GST_PROTECTION_TEST_NAME, NULL);
194 fail_unless (GST_IS_ELEMENT (elem));
195
196 selected_id = gst_protection_select_system (sys_ids);
197 fail_if (selected_id == NULL);
198
199 selected_id = gst_protection_select_system (&sys_ids[1]);
200 fail_unless (selected_id == NULL);
201
202 selected_id = gst_protection_select_system (&sys_ids[3]);
203 fail_unless (selected_id == NULL);
204
205 gst_object_unref (elem);
206 }
207
208 GST_END_TEST;
209
210 GST_START_TEST (test_protection_metadata)
211 {
212 GstBuffer *buf = NULL;
213 GstBuffer *iv, *kid;
214 GstBuffer *fetched_iv = NULL, *fetched_key_id = NULL;
215 GstStructure *meta_info;
216 GstProtectionMeta *meta = NULL;
217 const GstMetaInfo *info = NULL;
218 const GValue *value;
219
220 /* Check correct type info is returned */
221 info = gst_protection_meta_get_info ();
222 fail_unless (info != NULL);
223 fail_unless (info->api == GST_PROTECTION_META_API_TYPE);
224
225 iv = gst_buffer_new_allocate (NULL, 16, NULL);
226 gst_buffer_memset (iv, 0, 'i', 16);
227 ASSERT_MINI_OBJECT_REFCOUNT (iv, "iv", 1);
228 kid = gst_buffer_new_allocate (NULL, 16, NULL);
229 gst_buffer_memset (kid, 0, 'k', 16);
230 ASSERT_MINI_OBJECT_REFCOUNT (kid, "kid", 1);
231 meta_info = gst_structure_new ("application/x-cenc",
232 "encrypted", G_TYPE_BOOLEAN, TRUE,
233 "iv", GST_TYPE_BUFFER, iv,
234 "iv_size", G_TYPE_UINT, 16, "kid", GST_TYPE_BUFFER, kid, NULL);
235 ASSERT_MINI_OBJECT_REFCOUNT (kid, "kid", 2);
236 ASSERT_MINI_OBJECT_REFCOUNT (iv, "iv", 2);
237
238 buf = gst_buffer_new_allocate (NULL, 1024, NULL);
239 /* Test attaching protection metadata to buffer */
240 meta = gst_buffer_add_protection_meta (buf, meta_info);
241 fail_unless (meta != NULL);
242 /* gst_buffer_new_allocate takes ownership of info GstStructure */
243 ASSERT_MINI_OBJECT_REFCOUNT (buf, "Buffer", 1);
244
245 /* Test detaching protection metadata from buffer, and check that
246 * contained data is correct */
247 meta = NULL;
248 meta = gst_buffer_get_protection_meta (buf);
249 fail_unless (meta != NULL);
250 ASSERT_MINI_OBJECT_REFCOUNT (buf, "Buffer", 1);
251 value = gst_structure_get_value (meta->info, "iv");
252 fail_unless (value != NULL);
253 fetched_iv = gst_value_get_buffer (value);
254 fail_unless (fetched_iv != NULL);
255 fail_unless (gst_buffer_get_size (fetched_iv) == 16);
256 value = gst_structure_get_value (meta->info, "kid");
257 fail_unless (value != NULL);
258 fetched_key_id = gst_value_get_buffer (value);
259 fail_unless (fetched_key_id != NULL);
260 fail_unless (gst_buffer_get_size (fetched_key_id) == 16);
261
262 gst_buffer_remove_meta (buf, (GstMeta *) meta);
263
264 /* Check that refcounts are decremented after metadata is freed */
265 ASSERT_MINI_OBJECT_REFCOUNT (buf, "Buffer", 1);
266 ASSERT_MINI_OBJECT_REFCOUNT (iv, "IV", 1);
267 ASSERT_MINI_OBJECT_REFCOUNT (kid, "KID", 1);
268
269 gst_buffer_unref (buf);
270 gst_buffer_unref (iv);
271 gst_buffer_unref (kid);
272 }
273
274 GST_END_TEST;
275
276 static Suite *
277 protection_suite (void)
278 {
279 Suite *s = suite_create ("protection library");
280 TCase *tc_chain = tcase_create ("general");
281
282 suite_add_tcase (s, tc_chain);
283 tcase_add_test (tc_chain, test_decryptor_element_class);
284 tcase_add_test (tc_chain, test_protection_metadata);
285 tcase_add_unchecked_fixture (tc_chain, test_setup, test_teardown);
286
287 return s;
288 }
289
290 int
291 main (int argc, char **argv)
292 {
293 int nf;
294
295 Suite *s = protection_suite ();
296 SRunner *sr = srunner_create (s);
297
298 gst_check_init (&argc, &argv);
299
300 srunner_run_all (sr, CK_NORMAL);
301 nf = srunner_ntests_failed (sr);
302 srunner_free (sr);
303
304 return nf;
305 }
2929
3030 st = gst_segment_to_stream_time (segment, segment->format, position);
3131 rt = gst_segment_to_running_time (segment, segment->format, position);
32 GST_DEBUG ("position %" G_GUINT64_FORMAT ", st %" G_GUINT64_FORMAT ", rt %"
33 G_GUINT64_FORMAT, position, stream_time, running_time);
3234
3335 fail_unless_equals_int64 (st, stream_time);
3436 fail_unless_equals_int64 (rt, running_time);
688690 fail_unless (segment.base == 0);
689691 fail_unless (segment.offset == 200);
690692 check_times (&segment, 200, 200, 0);
693
694 gst_segment_init (&segment, GST_FORMAT_TIME);
695
696 segment.start = 20;
697 segment.position = 50;
698 segment.stop = 220;
699 segment.time = 0;
700
701 check_times (&segment, 40, 20, 20);
702 check_times (&segment, 240, -1, -1);
703
704 fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
705 0) == TRUE);
706 fail_unless (segment.start == 20);
707 fail_unless (segment.stop == 220);
708 fail_unless (segment.time == 0);
709 fail_unless (segment.position == 50);
710 fail_unless (segment.base == 0);
711 fail_unless (segment.offset == 0);
712 check_times (&segment, 40, 20, 20);
713
714 fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
715 100) == TRUE);
716 fail_unless (segment.start == 20);
717 fail_unless (segment.stop == 220);
718 fail_unless (segment.time == 0);
719 fail_unless (segment.position == 50);
720 fail_unless (segment.base == 100);
721 fail_unless (segment.offset == 0);
722 check_times (&segment, 40, 20, 120);
723
724 fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
725 -50) == TRUE);
726 fail_unless (segment.start == 20);
727 fail_unless (segment.stop == 220);
728 fail_unless (segment.time == 0);
729 fail_unless (segment.position == 50);
730 fail_unless (segment.base == 50);
731 fail_unless (segment.offset == 0);
732 check_times (&segment, 40, 20, 70);
733
734 fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
735 -100) == TRUE);
736 fail_unless (segment.start == 20);
737 fail_unless (segment.stop == 220);
738 fail_unless (segment.time == 0);
739 fail_unless (segment.position == 50);
740 fail_unless (segment.base == 0);
741 fail_unless (segment.offset == 50);
742 check_times (&segment, 40, 20, -1);
743 check_times (&segment, 220, 200, 150);
691744 }
692745
693746 GST_END_TEST;
694747
748 GST_START_TEST (segment_full)
749 {
750 GstSegment segment;
751 guint64 rt;
752
753 gst_segment_init (&segment, GST_FORMAT_TIME);
754
755 segment.start = 50;
756 segment.position = 150;
757 segment.stop = 200;
758 segment.time = 0;
759
760 check_times (&segment, 100, 50, 50);
761 check_times (&segment, 220, -1, -1);
762
763 fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME,
764 50, &rt) == 1);
765 fail_unless (rt == 0);
766 fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME,
767 200, &rt) == 1);
768 fail_unless (rt == 150);
769 fail_unless (!gst_segment_clip (&segment, GST_FORMAT_TIME, 40, 40, NULL,
770 NULL));
771 fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME, 40,
772 &rt) == -1);
773 fail_unless (!gst_segment_clip (&segment, GST_FORMAT_TIME, 49, 49, NULL,
774 NULL));
775 fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME, 49,
776 &rt) == -1);
777 fail_unless (!gst_segment_clip (&segment, GST_FORMAT_TIME, 201, 201, NULL,
778 NULL));
779 fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME, 201,
780 &rt) == 1);
781
782 fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
783 -50) == TRUE);
784 fail_unless (segment.offset == 50);
785
786 fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME,
787 50, &rt) == -1);
788 GST_DEBUG ("%" G_GUINT64_FORMAT, rt);
789 fail_unless (rt == 50);
790 }
791
792 GST_END_TEST;
695793
696794 static Suite *
697795 gst_segment_suite (void)
709807 tcase_add_test (tc_chain, segment_copy);
710808 tcase_add_test (tc_chain, segment_seek_noupdate);
711809 tcase_add_test (tc_chain, segment_offset);
810 tcase_add_test (tc_chain, segment_full);
712811
713812 return s;
714813 }
541541 "\"foo\\%\"", "foo%"}, {
542542 "\"0123456789_-+/:.\"", "0123456789_-+/:."}, {
543543 "\"Hello\\ World\"", "Hello World"}, {
544 "\"Hello\\ World", "\"Hello\\ World"}, {
545 "\"\\", "\"\\"}, {
546 "\"\\0", "\"\\0"}, {
544547 "", ""}, /* empty strings */
545548 {
546549 "\"\"", ""}, /* quoted empty string -> empty string */
547550 /* Expected FAILURES: */
548551 {
549 "\"", NULL}, /* missing second quote */
552 "\"\\0\"", NULL}, /* unfinished escaped character */
550553 {
551 "\"Hello\\ World", NULL}, /* missing second quote */
552 {
553 "\"\\", NULL}, /* quote at end, missing second quote */
554 {
555 "\"\\0", NULL}, /* missing second quote */
556 {
557 "\"\\0\"", NULL}, /* unfinished escaped character */
554 "\"", NULL}, /* solitary quote */
558555 {
559556 "\" \"", NULL}, /* spaces must be escaped */
560557 #if 0
2727
2828 static GstPad *mysrcpad, *mysinkpad;
2929 static GstElement *parsetest;
30 static GstBus *bus;
3031
3132 #define TEST_VIDEO_WIDTH 640
3233 #define TEST_VIDEO_HEIGHT 480
133134 parsetest = g_object_new (GST_PARSER_TESTER_TYPE, NULL);
134135 mysrcpad = gst_check_setup_src_pad (parsetest, &srctemplate);
135136 mysinkpad = gst_check_setup_sink_pad (parsetest, &sinktemplate);
137 bus = gst_bus_new ();
138 gst_element_set_bus (parsetest, bus);
136139 }
137140
138141 static void
139142 cleanup_parsertest (void)
140143 {
144 /* release the bus first to get rid of all refcounts */
145 gst_element_set_bus (parsetest, NULL);
146 gst_object_unref (bus);
147
141148 gst_pad_set_active (mysrcpad, FALSE);
142149 gst_pad_set_active (mysinkpad, FALSE);
143150 gst_check_teardown_src_pad (parsetest);
183190 }
184191
185192 static void
193 check_no_error_received (void)
194 {
195 GstMessage *msg;
196
197 msg = gst_bus_pop_filtered (bus, GST_MESSAGE_ERROR);
198 fail_unless (msg == NULL);
199 if (msg)
200 gst_message_unref (msg);
201 }
202
203 static void
186204 run_parser_playback_test (GList * input, gint expected_output, gdouble rate)
187205 {
188206 GstBuffer *buffer;
237255 g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
238256 buffers = NULL;
239257
258 check_no_error_received ();
259
240260 cleanup_parsertest ();
241261 }
242262
286306
287307 GST_END_TEST;
288308
309 GST_START_TEST (parser_empty_stream)
310 {
311 setup_parsertester ();
312
313 run_parser_playback_test (NULL, 0, 1.0);
314 }
315
316 GST_END_TEST;
317
289318
290319 static Suite *
291320 gst_baseparse_suite (void)
295324
296325 suite_add_tcase (s, tc);
297326 tcase_add_test (tc, parser_playback);
327 tcase_add_test (tc, parser_empty_stream);
298328 tcase_add_test (tc, parser_reverse_playback_on_passthrough);
299329
300330 return s;
0 if GST_DISABLE_PARSE
1 GST_PARSE_DIRS =
2 else
3 GST_PARSE_DIRS = launch
4 endif
5
60 # adapter test needs sys/times.h and unistd.h
71 if HAVE_SYS_TIMES_H_AND_UNISTD_H
82 ADAPTER_TEST_DIR = adapter
159 helloworld \
1610 manual \
1711 memory \
18 metadata \
1912 netclock \
20 queue \
2113 stepping \
2214 streamiddemux \
23 streams \
24 typefind
25
26 #appreader
27 #cutter
28 #events
29 #helloworld2
30 #launch
31 #manual
32 #mixer
33 #pingpong
34 #plugins
35 #pwg
36 #queue2
37 #queue3
38 #queue4
39 #retag
40 #thread
15 streams
4116
4217 SUBDIRS = \
4318 $(always_dirs) \
44 $(ADAPTER_TEST_DIR) \
45 $(GST_PARSE_DIRS)
19 $(ADAPTER_TEST_DIR)
4620
47 DIST_SUBDIRS = $(always_dirs) adapter launch
21 DIST_SUBDIRS = $(always_dirs) adapter
4822
4923 include $(top_srcdir)/common/parallel-subdirs.mak
489489 top_build_prefix = @top_build_prefix@
490490 top_builddir = @top_builddir@
491491 top_srcdir = @top_srcdir@
492 @GST_DISABLE_PARSE_FALSE@GST_PARSE_DIRS = launch
493 @GST_DISABLE_PARSE_TRUE@GST_PARSE_DIRS =
494492 @HAVE_SYS_TIMES_H_AND_UNISTD_H_FALSE@ADAPTER_TEST_DIR =
495493
496494 # adapter test needs sys/times.h and unistd.h
500498 helloworld \
501499 manual \
502500 memory \
503 metadata \
504501 netclock \
505 queue \
506502 stepping \
507503 streamiddemux \
508 streams \
509 typefind
510
511
512 #appreader
513 #cutter
514 #events
515 #helloworld2
516 #launch
517 #manual
518 #mixer
519 #pingpong
520 #plugins
521 #pwg
522 #queue2
523 #queue3
524 #queue4
525 #retag
526 #thread
504 streams
505
527506 SUBDIRS = \
528507 $(always_dirs) \
529 $(ADAPTER_TEST_DIR) \
530 $(GST_PARSE_DIRS)
531
532 DIST_SUBDIRS = $(always_dirs) adapter launch
508 $(ADAPTER_TEST_DIR)
509
510 DIST_SUBDIRS = $(always_dirs) adapter
533511 all: all-recursive
534512
535513 .SUFFIXES:
44 LDADD = \
55 $(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
66 $(GST_OBJ_LIBS)
7
8 Android.mk: Makefile.am audio-example.c
9 androgenizer \
10 -:PROJECT audio-example -:EXECUTABLE audio-example \
11 -:TAGS eng debug \
12 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
13 -:SOURCES audio-example.c \
14 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(AM_CFLAGS) \
15 -:LDFLAGS -lgstcontroller-@GST_API_VERSION@ \
16 $(GST_OBJ_LIBS) -ldl \
17 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
18 > $@
794794 tags tags-am uninstall uninstall-am
795795
796796
797 Android.mk: Makefile.am audio-example.c
798 androgenizer \
799 -:PROJECT audio-example -:EXECUTABLE audio-example \
800 -:TAGS eng debug \
801 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
802 -:SOURCES audio-example.c \
803 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(AM_CFLAGS) \
804 -:LDFLAGS -lgstcontroller-@GST_API_VERSION@ \
805 $(GST_OBJ_LIBS) -ldl \
806 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
807 > $@
808
809797 # Tell versions [3.59,3.63) of GNU make to not export all variables.
810798 # Otherwise a system limit (for SysV at least) may be exceeded.
811799 .NOEXPORT:
+0
-7
tests/examples/launch/Makefile.am less more
0 noinst_PROGRAMS = mp3parselaunch
1
2 mp3parselaunch_LDADD = $(GST_OBJ_LIBS)
3 mp3parselaunch_CFLAGS = $(GST_OBJ_CFLAGS)
4
5 #noinst_SCRIPTS = mp3play
6 #EXTRA_DIST = mp3play
+0
-795
tests/examples/launch/Makefile.in less more
0 # Makefile.in generated by automake 1.14.1 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
18 am__make_running_with_option = \
19 case $${target_option-} in \
20 ?) ;; \
21 *) echo "am__make_running_with_option: internal error: invalid" \
22 "target option '$${target_option-}' specified" >&2; \
23 exit 1;; \
24 esac; \
25 has_opt=no; \
26 sane_makeflags=$$MAKEFLAGS; \
27 if $(am__is_gnu_make); then \
28 sane_makeflags=$$MFLAGS; \
29 else \
30 case $$MAKEFLAGS in \
31 *\\[\ \ ]*) \
32 bs=\\; \
33 sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
34 | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
35 esac; \
36 fi; \
37 skip_next=no; \
38 strip_trailopt () \
39 { \
40 flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
41 }; \
42 for flg in $$sane_makeflags; do \
43 test $$skip_next = yes && { skip_next=no; continue; }; \
44 case $$flg in \
45 *=*|--*) continue;; \
46 -*I) strip_trailopt 'I'; skip_next=yes;; \
47 -*I?*) strip_trailopt 'I';; \
48 -*O) strip_trailopt 'O'; skip_next=yes;; \
49 -*O?*) strip_trailopt 'O';; \
50 -*l) strip_trailopt 'l'; skip_next=yes;; \
51 -*l?*) strip_trailopt 'l';; \
52 -[dEDm]) skip_next=yes;; \
53 -[JT]) skip_next=yes;; \
54 esac; \
55 case $$flg in \
56 *$$target_option*) has_opt=yes; break;; \
57 esac; \
58 done; \
59 test $$has_opt = yes
60 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
61 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
62 pkgdatadir = $(datadir)/@PACKAGE@
63 pkgincludedir = $(includedir)/@PACKAGE@
64 pkglibdir = $(libdir)/@PACKAGE@
65 pkglibexecdir = $(libexecdir)/@PACKAGE@
66 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
67 install_sh_DATA = $(install_sh) -c -m 644
68 install_sh_PROGRAM = $(install_sh) -c
69 install_sh_SCRIPT = $(install_sh) -c
70 INSTALL_HEADER = $(INSTALL_DATA)
71 transform = $(program_transform_name)
72 NORMAL_INSTALL = :
73 PRE_INSTALL = :
74 POST_INSTALL = :
75 NORMAL_UNINSTALL = :
76 PRE_UNINSTALL = :
77 POST_UNINSTALL = :
78 build_triplet = @build@
79 host_triplet = @host@
80 target_triplet = @target@
81 noinst_PROGRAMS = mp3parselaunch$(EXEEXT)
82 subdir = tests/examples/launch
83 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
84 $(top_srcdir)/depcomp
85 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
86 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
87 $(top_srcdir)/common/m4/as-auto-alt.m4 \
88 $(top_srcdir)/common/m4/as-compiler-flag.m4 \
89 $(top_srcdir)/common/m4/as-docbook.m4 \
90 $(top_srcdir)/common/m4/as-libtool.m4 \
91 $(top_srcdir)/common/m4/as-version.m4 \
92 $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
93 $(top_srcdir)/common/m4/ax_pthread.m4 \
94 $(top_srcdir)/common/m4/gst-arch.m4 \
95 $(top_srcdir)/common/m4/gst-args.m4 \
96 $(top_srcdir)/common/m4/gst-check.m4 \
97 $(top_srcdir)/common/m4/gst-doc.m4 \
98 $(top_srcdir)/common/m4/gst-error.m4 \
99 $(top_srcdir)/common/m4/gst-feature.m4 \
100 $(top_srcdir)/common/m4/gst-function.m4 \
101 $(top_srcdir)/common/m4/gst-gettext.m4 \
102 $(top_srcdir)/common/m4/gst-glib2.m4 \
103 $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
104 $(top_srcdir)/common/m4/gst-parser.m4 \
105 $(top_srcdir)/common/m4/gst-platform.m4 \
106 $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
107 $(top_srcdir)/common/m4/gst-plugindir.m4 \
108 $(top_srcdir)/common/m4/gst.m4 \
109 $(top_srcdir)/common/m4/gtk-doc.m4 \
110 $(top_srcdir)/common/m4/introspection.m4 \
111 $(top_srcdir)/common/m4/pkg.m4 \
112 $(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
113 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
114 $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lib-ld.m4 \
115 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
116 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/longlong.m4 \
117 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
118 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
119 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
120 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
121 $(top_srcdir)/configure.ac
122 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
123 $(ACLOCAL_M4)
124 mkinstalldirs = $(install_sh) -d
125 CONFIG_HEADER = $(top_builddir)/config.h
126 CONFIG_CLEAN_FILES =
127 CONFIG_CLEAN_VPATH_FILES =
128 PROGRAMS = $(noinst_PROGRAMS)
129 mp3parselaunch_SOURCES = mp3parselaunch.c
130 mp3parselaunch_OBJECTS = mp3parselaunch-mp3parselaunch.$(OBJEXT)
131 am__DEPENDENCIES_1 =
132 mp3parselaunch_DEPENDENCIES = $(am__DEPENDENCIES_1)
133 AM_V_lt = $(am__v_lt_@AM_V@)
134 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
135 am__v_lt_0 = --silent
136 am__v_lt_1 =
137 mp3parselaunch_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
138 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
139 $(mp3parselaunch_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
140 $@
141 AM_V_P = $(am__v_P_@AM_V@)
142 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
143 am__v_P_0 = false
144 am__v_P_1 = :
145 AM_V_GEN = $(am__v_GEN_@AM_V@)
146 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
147 am__v_GEN_0 = @echo " GEN " $@;
148 am__v_GEN_1 =
149 AM_V_at = $(am__v_at_@AM_V@)
150 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
151 am__v_at_0 = @
152 am__v_at_1 =
153 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
154 depcomp = $(SHELL) $(top_srcdir)/depcomp
155 am__depfiles_maybe = depfiles
156 am__mv = mv -f
157 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
158 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
159 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
160 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
161 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
162 $(AM_CFLAGS) $(CFLAGS)
163 AM_V_CC = $(am__v_CC_@AM_V@)
164 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
165 am__v_CC_0 = @echo " CC " $@;
166 am__v_CC_1 =
167 CCLD = $(CC)
168 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
169 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
170 $(AM_LDFLAGS) $(LDFLAGS) -o $@
171 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
172 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
173 am__v_CCLD_0 = @echo " CCLD " $@;
174 am__v_CCLD_1 =
175 SOURCES = mp3parselaunch.c
176 DIST_SOURCES = mp3parselaunch.c
177 am__can_run_installinfo = \
178 case $$AM_UPDATE_INFO_DIR in \
179 n|no|NO) false;; \
180 *) (install-info --version) >/dev/null 2>&1;; \
181 esac
182 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
183 # Read a list of newline-separated strings from the standard input,
184 # and print each of them once, without duplicates. Input order is
185 # *not* preserved.
186 am__uniquify_input = $(AWK) '\
187 BEGIN { nonempty = 0; } \
188 { items[$$0] = 1; nonempty = 1; } \
189 END { if (nonempty) { for (i in items) print i; }; } \
190 '
191 # Make sure the list of sources is unique. This is necessary because,
192 # e.g., the same source file might be shared among _SOURCES variables
193 # for different programs/libraries.
194 am__define_uniq_tagged_files = \
195 list='$(am__tagged_files)'; \
196 unique=`for i in $$list; do \
197 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
198 done | $(am__uniquify_input)`
199 ETAGS = etags
200 CTAGS = ctags
201 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
202 ACLOCAL = @ACLOCAL@
203 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
204 AMTAR = @AMTAR@
205 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
206 AR = @AR@
207 AS = @AS@
208 AUTOCONF = @AUTOCONF@
209 AUTOHEADER = @AUTOHEADER@
210 AUTOMAKE = @AUTOMAKE@
211 AWK = @AWK@
212 BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
213 BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
214 BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
215 BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
216 BISON_PATH = @BISON_PATH@
217 CAT_ENTRY_END = @CAT_ENTRY_END@
218 CAT_ENTRY_START = @CAT_ENTRY_START@
219 CC = @CC@
220 CCAS = @CCAS@
221 CCASDEPMODE = @CCASDEPMODE@
222 CCASFLAGS = @CCASFLAGS@
223 CCDEPMODE = @CCDEPMODE@
224 CFLAGS = @CFLAGS@
225 CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
226 CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
227 CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
228 CHECK_VERSION = @CHECK_VERSION@
229 CPP = @CPP@
230 CPPFLAGS = @CPPFLAGS@
231 CXX = @CXX@
232 CXXCPP = @CXXCPP@
233 CXXDEPMODE = @CXXDEPMODE@
234 CXXFLAGS = @CXXFLAGS@
235 CYGPATH_W = @CYGPATH_W@
236 DATADIR = @DATADIR@
237 DEFS = @DEFS@
238 DEPDIR = @DEPDIR@
239 DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
240 DLLTOOL = @DLLTOOL@
241 DOCBOOK_ROOT = @DOCBOOK_ROOT@
242 DSYMUTIL = @DSYMUTIL@
243 DUMPBIN = @DUMPBIN@
244 ECHO_C = @ECHO_C@
245 ECHO_N = @ECHO_N@
246 ECHO_T = @ECHO_T@
247 EGREP = @EGREP@
248 ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
249 ERROR_CFLAGS = @ERROR_CFLAGS@
250 EXEEXT = @EXEEXT@
251 FFLAGS = @FFLAGS@
252 FGREP = @FGREP@
253 FLEX_PATH = @FLEX_PATH@
254 GCOV = @GCOV@
255 GCOV_CFLAGS = @GCOV_CFLAGS@
256 GCOV_LIBS = @GCOV_LIBS@
257 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
258 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
259 GIO_CFLAGS = @GIO_CFLAGS@
260 GIO_LDFLAGS = @GIO_LDFLAGS@
261 GIO_LIBS = @GIO_LIBS@
262 GLIB_CFLAGS = @GLIB_CFLAGS@
263 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
264 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
265 GLIB_LIBS = @GLIB_LIBS@
266 GLIB_MKENUMS = @GLIB_MKENUMS@
267 GLIB_PREFIX = @GLIB_PREFIX@
268 GLIB_REQ = @GLIB_REQ@
269 GMP_LIBS = @GMP_LIBS@
270 GMSGFMT = @GMSGFMT@
271 GMSGFMT_015 = @GMSGFMT_015@
272 GREP = @GREP@
273 GSL_LIBS = @GSL_LIBS@
274 GST_AGE = @GST_AGE@
275 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
276 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
277 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
278 GST_ALL_LIBS = @GST_ALL_LIBS@
279 GST_API_VERSION = @GST_API_VERSION@
280 GST_CURRENT = @GST_CURRENT@
281 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
282 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
283 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
284 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
285 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
286 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
287 GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
288 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
289 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
290 GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
291 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
292 GST_LIBVERSION = @GST_LIBVERSION@
293 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
294 GST_LICENSE = @GST_LICENSE@
295 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
296 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
297 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
298 GST_OBJ_LIBS = @GST_OBJ_LIBS@
299 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
300 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
301 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
302 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
303 GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
304 GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
305 GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
306 GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
307 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
308 GST_REVISION = @GST_REVISION@
309 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
310 GST_VERSION_MICRO = @GST_VERSION_MICRO@
311 GST_VERSION_MINOR = @GST_VERSION_MINOR@
312 GST_VERSION_NANO = @GST_VERSION_NANO@
313 GTKDOC_CHECK = @GTKDOC_CHECK@
314 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
315 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
316 GTKDOC_MKPDF = @GTKDOC_MKPDF@
317 GTKDOC_REBASE = @GTKDOC_REBASE@
318 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
319 HAVE_DVIPS = @HAVE_DVIPS@
320 HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
321 HAVE_FORK = @HAVE_FORK@
322 HAVE_GMP = @HAVE_GMP@
323 HAVE_GSL = @HAVE_GSL@
324 HAVE_JADETEX = @HAVE_JADETEX@
325 HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
326 HAVE_PNMTOPS = @HAVE_PNMTOPS@
327 HAVE_PS2PDF = @HAVE_PS2PDF@
328 HAVE_XMLLINT = @HAVE_XMLLINT@
329 HAVE_XSLTPROC = @HAVE_XSLTPROC@
330 HOST_CPU = @HOST_CPU@
331 HTML_DIR = @HTML_DIR@
332 INSTALL = @INSTALL@
333 INSTALL_DATA = @INSTALL_DATA@
334 INSTALL_PROGRAM = @INSTALL_PROGRAM@
335 INSTALL_SCRIPT = @INSTALL_SCRIPT@
336 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
337 INTLLIBS = @INTLLIBS@
338 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
339 INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
340 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
341 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
342 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
343 INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
344 INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
345 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
346 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
347 LD = @LD@
348 LDFLAGS = @LDFLAGS@
349 LIBDIR = @LIBDIR@
350 LIBICONV = @LIBICONV@
351 LIBINTL = @LIBINTL@
352 LIBM = @LIBM@
353 LIBOBJS = @LIBOBJS@
354 LIBS = @LIBS@
355 LIBTOOL = @LIBTOOL@
356 LIPO = @LIPO@
357 LN_S = @LN_S@
358 LOCALEDIR = @LOCALEDIR@
359 LTLIBICONV = @LTLIBICONV@
360 LTLIBINTL = @LTLIBINTL@
361 LTLIBOBJS = @LTLIBOBJS@
362 MAINT = @MAINT@
363 MAKEINFO = @MAKEINFO@
364 MANIFEST_TOOL = @MANIFEST_TOOL@
365 MKDIR_P = @MKDIR_P@
366 MSGFMT = @MSGFMT@
367 MSGFMT_015 = @MSGFMT_015@
368 MSGMERGE = @MSGMERGE@
369 NM = @NM@
370 NMEDIT = @NMEDIT@
371 OBJDUMP = @OBJDUMP@
372 OBJEXT = @OBJEXT@
373 OTOOL = @OTOOL@
374 OTOOL64 = @OTOOL64@
375 PACKAGE = @PACKAGE@
376 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
377 PACKAGE_NAME = @PACKAGE_NAME@
378 PACKAGE_STRING = @PACKAGE_STRING@
379 PACKAGE_TARNAME = @PACKAGE_TARNAME@
380 PACKAGE_URL = @PACKAGE_URL@
381 PACKAGE_VERSION = @PACKAGE_VERSION@
382 PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
383 PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
384 PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
385 PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
386 PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
387 PATH_SEPARATOR = @PATH_SEPARATOR@
388 PERL_PATH = @PERL_PATH@
389 PKG_CONFIG = @PKG_CONFIG@
390 PLUGINDIR = @PLUGINDIR@
391 POSUB = @POSUB@
392 PRINTF_CFLAGS = @PRINTF_CFLAGS@
393 PROFILE_CFLAGS = @PROFILE_CFLAGS@
394 PTHREAD_CC = @PTHREAD_CC@
395 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
396 PTHREAD_LIBS = @PTHREAD_LIBS@
397 PYTHON = @PYTHON@
398 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
399 PYTHON_PLATFORM = @PYTHON_PLATFORM@
400 PYTHON_PREFIX = @PYTHON_PREFIX@
401 PYTHON_VERSION = @PYTHON_VERSION@
402 RANLIB = @RANLIB@
403 SED = @SED@
404 SET_MAKE = @SET_MAKE@
405 SHELL = @SHELL@
406 STRIP = @STRIP@
407 USE_NLS = @USE_NLS@
408 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
409 VALGRIND_LIBS = @VALGRIND_LIBS@
410 VALGRIND_PATH = @VALGRIND_PATH@
411 VERSION = @VERSION@
412 WARNING_CFLAGS = @WARNING_CFLAGS@
413 WIN32_LIBS = @WIN32_LIBS@
414 XGETTEXT = @XGETTEXT@
415 XGETTEXT_015 = @XGETTEXT_015@
416 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
417 XML_CATALOG = @XML_CATALOG@
418 XSLTPROC = @XSLTPROC@
419 XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
420 abs_builddir = @abs_builddir@
421 abs_srcdir = @abs_srcdir@
422 abs_top_builddir = @abs_top_builddir@
423 abs_top_srcdir = @abs_top_srcdir@
424 ac_ct_AR = @ac_ct_AR@
425 ac_ct_CC = @ac_ct_CC@
426 ac_ct_CXX = @ac_ct_CXX@
427 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
428 am__include = @am__include@
429 am__leading_dot = @am__leading_dot@
430 am__quote = @am__quote@
431 am__tar = @am__tar@
432 am__untar = @am__untar@
433 ax_pthread_config = @ax_pthread_config@
434 bindir = @bindir@
435 build = @build@
436 build_alias = @build_alias@
437 build_cpu = @build_cpu@
438 build_os = @build_os@
439 build_vendor = @build_vendor@
440 builddir = @builddir@
441 datadir = @datadir@
442 datarootdir = @datarootdir@
443 docdir = @docdir@
444 dvidir = @dvidir@
445 exec_prefix = @exec_prefix@
446 host = @host@
447 host_alias = @host_alias@
448 host_cpu = @host_cpu@
449 host_os = @host_os@
450 host_vendor = @host_vendor@
451 htmldir = @htmldir@
452 includedir = @includedir@
453 infodir = @infodir@
454 install_sh = @install_sh@
455 libdir = @libdir@
456 libexecdir = @libexecdir@
457 localedir = @localedir@
458 localstatedir = @localstatedir@
459 mandir = @mandir@
460 mkdir_p = @mkdir_p@
461 oldincludedir = @oldincludedir@
462 pdfdir = @pdfdir@
463 pkgpyexecdir = @pkgpyexecdir@
464 pkgpythondir = @pkgpythondir@
465 plugindir = @plugindir@
466 prefix = @prefix@
467 program_transform_name = @program_transform_name@
468 psdir = @psdir@
469 pyexecdir = @pyexecdir@
470 pythondir = @pythondir@
471 sbindir = @sbindir@
472 sharedstatedir = @sharedstatedir@
473 srcdir = @srcdir@
474 sysconfdir = @sysconfdir@
475 target = @target@
476 target_alias = @target_alias@
477 target_cpu = @target_cpu@
478 target_os = @target_os@
479 target_vendor = @target_vendor@
480 top_build_prefix = @top_build_prefix@
481 top_builddir = @top_builddir@
482 top_srcdir = @top_srcdir@
483 mp3parselaunch_LDADD = $(GST_OBJ_LIBS)
484 mp3parselaunch_CFLAGS = $(GST_OBJ_CFLAGS)
485 all: all-am
486
487 .SUFFIXES:
488 .SUFFIXES: .c .lo .o .obj
489 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
490 @for dep in $?; do \
491 case '$(am__configure_deps)' in \
492 *$$dep*) \
493 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
494 && { if test -f $@; then exit 0; else break; fi; }; \
495 exit 1;; \
496 esac; \
497 done; \
498 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/launch/Makefile'; \
499 $(am__cd) $(top_srcdir) && \
500 $(AUTOMAKE) --gnu tests/examples/launch/Makefile
501 .PRECIOUS: Makefile
502 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
503 @case '$?' in \
504 *config.status*) \
505 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
506 *) \
507 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
508 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
509 esac;
510
511 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
512 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
513
514 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
515 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
516 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
517 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
518 $(am__aclocal_m4_deps):
519
520 clean-noinstPROGRAMS:
521 @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
522 echo " rm -f" $$list; \
523 rm -f $$list || exit $$?; \
524 test -n "$(EXEEXT)" || exit 0; \
525 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
526 echo " rm -f" $$list; \
527 rm -f $$list
528
529 mp3parselaunch$(EXEEXT): $(mp3parselaunch_OBJECTS) $(mp3parselaunch_DEPENDENCIES) $(EXTRA_mp3parselaunch_DEPENDENCIES)
530 @rm -f mp3parselaunch$(EXEEXT)
531 $(AM_V_CCLD)$(mp3parselaunch_LINK) $(mp3parselaunch_OBJECTS) $(mp3parselaunch_LDADD) $(LIBS)
532
533 mostlyclean-compile:
534 -rm -f *.$(OBJEXT)
535
536 distclean-compile:
537 -rm -f *.tab.c
538
539 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mp3parselaunch-mp3parselaunch.Po@am__quote@
540
541 .c.o:
542 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
543 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
544 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
545 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
546 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
547 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
548
549 .c.obj:
550 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
551 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
552 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
553 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
554 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
555 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
556
557 .c.lo:
558 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
559 @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
560 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
561 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
562 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
563 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
564
565 mp3parselaunch-mp3parselaunch.o: mp3parselaunch.c
566 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -MT mp3parselaunch-mp3parselaunch.o -MD -MP -MF $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo -c -o mp3parselaunch-mp3parselaunch.o `test -f 'mp3parselaunch.c' || echo '$(srcdir)/'`mp3parselaunch.c
567 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo $(DEPDIR)/mp3parselaunch-mp3parselaunch.Po
568 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.o' libtool=no @AMDEPBACKSLASH@
569 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
570 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.o `test -f 'mp3parselaunch.c' || echo '$(srcdir)/'`mp3parselaunch.c
571
572 mp3parselaunch-mp3parselaunch.obj: mp3parselaunch.c
573 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -MT mp3parselaunch-mp3parselaunch.obj -MD -MP -MF $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo -c -o mp3parselaunch-mp3parselaunch.obj `if test -f 'mp3parselaunch.c'; then $(CYGPATH_W) 'mp3parselaunch.c'; else $(CYGPATH_W) '$(srcdir)/mp3parselaunch.c'; fi`
574 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo $(DEPDIR)/mp3parselaunch-mp3parselaunch.Po
575 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.obj' libtool=no @AMDEPBACKSLASH@
576 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
577 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.obj `if test -f 'mp3parselaunch.c'; then $(CYGPATH_W) 'mp3parselaunch.c'; else $(CYGPATH_W) '$(srcdir)/mp3parselaunch.c'; fi`
578
579 mostlyclean-libtool:
580 -rm -f *.lo
581
582 clean-libtool:
583 -rm -rf .libs _libs
584
585 ID: $(am__tagged_files)
586 $(am__define_uniq_tagged_files); mkid -fID $$unique
587 tags: tags-am
588 TAGS: tags
589
590 tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
591 set x; \
592 here=`pwd`; \
593 $(am__define_uniq_tagged_files); \
594 shift; \
595 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
596 test -n "$$unique" || unique=$$empty_fix; \
597 if test $$# -gt 0; then \
598 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
599 "$$@" $$unique; \
600 else \
601 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
602 $$unique; \
603 fi; \
604 fi
605 ctags: ctags-am
606
607 CTAGS: ctags
608 ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
609 $(am__define_uniq_tagged_files); \
610 test -z "$(CTAGS_ARGS)$$unique" \
611 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
612 $$unique
613
614 GTAGS:
615 here=`$(am__cd) $(top_builddir) && pwd` \
616 && $(am__cd) $(top_srcdir) \
617 && gtags -i $(GTAGS_ARGS) "$$here"
618 cscopelist: cscopelist-am
619
620 cscopelist-am: $(am__tagged_files)
621 list='$(am__tagged_files)'; \
622 case "$(srcdir)" in \
623 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
624 *) sdir=$(subdir)/$(srcdir) ;; \
625 esac; \
626 for i in $$list; do \
627 if test -f "$$i"; then \
628 echo "$(subdir)/$$i"; \
629 else \
630 echo "$$sdir/$$i"; \
631 fi; \
632 done >> $(top_builddir)/cscope.files
633
634 distclean-tags:
635 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
636
637 distdir: $(DISTFILES)
638 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
639 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
640 list='$(DISTFILES)'; \
641 dist_files=`for file in $$list; do echo $$file; done | \
642 sed -e "s|^$$srcdirstrip/||;t" \
643 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
644 case $$dist_files in \
645 */*) $(MKDIR_P) `echo "$$dist_files" | \
646 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
647 sort -u` ;; \
648 esac; \
649 for file in $$dist_files; do \
650 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
651 if test -d $$d/$$file; then \
652 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
653 if test -d "$(distdir)/$$file"; then \
654 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
655 fi; \
656 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
657 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
658 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
659 fi; \
660 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
661 else \
662 test -f "$(distdir)/$$file" \
663 || cp -p $$d/$$file "$(distdir)/$$file" \
664 || exit 1; \
665 fi; \
666 done
667 check-am: all-am
668 check: check-am
669 all-am: Makefile $(PROGRAMS)
670 installdirs:
671 install: install-am
672 install-exec: install-exec-am
673 install-data: install-data-am
674 uninstall: uninstall-am
675
676 install-am: all-am
677 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
678
679 installcheck: installcheck-am
680 install-strip:
681 if test -z '$(STRIP)'; then \
682 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
683 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
684 install; \
685 else \
686 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
687 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
688 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
689 fi
690 mostlyclean-generic:
691
692 clean-generic:
693
694 distclean-generic:
695 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
696 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
697
698 maintainer-clean-generic:
699 @echo "This command is intended for maintainers to use"
700 @echo "it deletes files that may require special tools to rebuild."
701 clean: clean-am
702
703 clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
704 mostlyclean-am
705
706 distclean: distclean-am
707 -rm -rf ./$(DEPDIR)
708 -rm -f Makefile
709 distclean-am: clean-am distclean-compile distclean-generic \
710 distclean-tags
711
712 dvi: dvi-am
713
714 dvi-am:
715
716 html: html-am
717
718 html-am:
719
720 info: info-am
721
722 info-am:
723
724 install-data-am:
725
726 install-dvi: install-dvi-am
727
728 install-dvi-am:
729
730 install-exec-am:
731
732 install-html: install-html-am
733
734 install-html-am:
735
736 install-info: install-info-am
737
738 install-info-am:
739
740 install-man:
741
742 install-pdf: install-pdf-am
743
744 install-pdf-am:
745
746 install-ps: install-ps-am
747
748 install-ps-am:
749
750 installcheck-am:
751
752 maintainer-clean: maintainer-clean-am
753 -rm -rf ./$(DEPDIR)
754 -rm -f Makefile
755 maintainer-clean-am: distclean-am maintainer-clean-generic
756
757 mostlyclean: mostlyclean-am
758
759 mostlyclean-am: mostlyclean-compile mostlyclean-generic \
760 mostlyclean-libtool
761
762 pdf: pdf-am
763
764 pdf-am:
765
766 ps: ps-am
767
768 ps-am:
769
770 uninstall-am:
771
772 .MAKE: install-am install-strip
773
774 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
775 clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
776 ctags-am distclean distclean-compile distclean-generic \
777 distclean-libtool distclean-tags distdir dvi dvi-am html \
778 html-am info info-am install install-am install-data \
779 install-data-am install-dvi install-dvi-am install-exec \
780 install-exec-am install-html install-html-am install-info \
781 install-info-am install-man install-pdf install-pdf-am \
782 install-ps install-ps-am install-strip installcheck \
783 installcheck-am installdirs maintainer-clean \
784 maintainer-clean-generic mostlyclean mostlyclean-compile \
785 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
786 tags tags-am uninstall uninstall-am
787
788
789 #noinst_SCRIPTS = mp3play
790 #EXTRA_DIST = mp3play
791
792 # Tell versions [3.59,3.63) of GNU make to not export all variables.
793 # Otherwise a system limit (for SysV at least) may be exceeded.
794 .NOEXPORT:
+0
-87
tests/examples/launch/mp3parselaunch.c less more
0 #include <stdio.h>
1 #include <stdlib.h>
2 #include <gst/gst.h>
3
4 static void
5 event_loop (GstElement * pipe)
6 {
7 GstBus *bus;
8 GstMessage *message = NULL;
9 gboolean running = TRUE;
10
11 bus = gst_element_get_bus (GST_ELEMENT (pipe));
12
13 while (running) {
14 message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
15
16 g_assert (message != NULL);
17
18 switch (message->type) {
19 case GST_MESSAGE_EOS:
20 running = FALSE;
21 break;
22 case GST_MESSAGE_WARNING:{
23 GError *gerror;
24 gchar *debug;
25
26 gst_message_parse_warning (message, &gerror, &debug);
27 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
28 g_error_free (gerror);
29 g_free (debug);
30 break;
31 }
32 case GST_MESSAGE_ERROR:{
33 GError *gerror;
34 gchar *debug;
35
36 gst_message_parse_error (message, &gerror, &debug);
37 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
38 g_error_free (gerror);
39 g_free (debug);
40 running = FALSE;
41 break;
42 }
43 default:
44 break;
45 }
46 gst_message_unref (message);
47 }
48 gst_object_unref (bus);
49 }
50
51 int
52 main (int argc, char *argv[])
53 {
54 GstElement *bin;
55 GstElement *filesrc;
56 GError *error = NULL;
57
58 gst_init (&argc, &argv);
59
60 if (argc != 2) {
61 g_print ("usage: %s <mp3 file>\n", argv[0]);
62 exit (-1);
63 }
64
65 bin = (GstElement *)
66 gst_parse_launch ("filesrc name=my_filesrc ! mad ! osssink", &error);
67 if (!bin) {
68 fprintf (stderr, "Parse error: %s", error->message);
69 exit (-1);
70 }
71
72 filesrc = gst_bin_get_by_name (GST_BIN (bin), "my_filesrc");
73 g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
74 gst_object_unref (filesrc);
75
76 /* start playing */
77 gst_element_set_state (bin, GST_STATE_PLAYING);
78
79 /* Run event loop listening for bus messages until EOS or ERROR */
80 event_loop (bin);
81
82 /* stop the bin */
83 gst_element_set_state (bin, GST_STATE_NULL);
84
85 exit (0);
86 }
1111 REGISTRY_ENVIRONMENT = \
1212 GST_REGISTRY=$(CHECK_REGISTRY)
1313
14 TESTS_ENVIRONMENT = \
14 AM_TESTS_ENVIRONMENT = \
1515 $(REGISTRY_ENVIRONMENT) \
1616 GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
1717 GST_PLUGIN_SYSTEM_PATH= \
852852 REGISTRY_ENVIRONMENT = \
853853 GST_REGISTRY=$(CHECK_REGISTRY)
854854
855 TESTS_ENVIRONMENT = \
855 AM_TESTS_ENVIRONMENT = \
856856 $(REGISTRY_ENVIRONMENT) \
857857 GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
858858 GST_PLUGIN_SYSTEM_PATH= \
+0
-4
tests/examples/metadata/Makefile.am less more
0 noinst_PROGRAMS = read-metadata
1
2 read_metadata_LDADD = $(GST_OBJ_LIBS)
3 read_metadata_CFLAGS = $(GST_OBJ_CFLAGS)
+0
-791
tests/examples/metadata/Makefile.in less more
0 # Makefile.in generated by automake 1.14.1 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
18 am__make_running_with_option = \
19 case $${target_option-} in \
20 ?) ;; \
21 *) echo "am__make_running_with_option: internal error: invalid" \
22 "target option '$${target_option-}' specified" >&2; \
23 exit 1;; \
24 esac; \
25 has_opt=no; \
26 sane_makeflags=$$MAKEFLAGS; \
27 if $(am__is_gnu_make); then \
28 sane_makeflags=$$MFLAGS; \
29 else \
30 case $$MAKEFLAGS in \
31 *\\[\ \ ]*) \
32 bs=\\; \
33 sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
34 | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
35 esac; \
36 fi; \
37 skip_next=no; \
38 strip_trailopt () \
39 { \
40 flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
41 }; \
42 for flg in $$sane_makeflags; do \
43 test $$skip_next = yes && { skip_next=no; continue; }; \
44 case $$flg in \
45 *=*|--*) continue;; \
46 -*I) strip_trailopt 'I'; skip_next=yes;; \
47 -*I?*) strip_trailopt 'I';; \
48 -*O) strip_trailopt 'O'; skip_next=yes;; \
49 -*O?*) strip_trailopt 'O';; \
50 -*l) strip_trailopt 'l'; skip_next=yes;; \
51 -*l?*) strip_trailopt 'l';; \
52 -[dEDm]) skip_next=yes;; \
53 -[JT]) skip_next=yes;; \
54 esac; \
55 case $$flg in \
56 *$$target_option*) has_opt=yes; break;; \
57 esac; \
58 done; \
59 test $$has_opt = yes
60 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
61 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
62 pkgdatadir = $(datadir)/@PACKAGE@
63 pkgincludedir = $(includedir)/@PACKAGE@
64 pkglibdir = $(libdir)/@PACKAGE@
65 pkglibexecdir = $(libexecdir)/@PACKAGE@
66 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
67 install_sh_DATA = $(install_sh) -c -m 644
68 install_sh_PROGRAM = $(install_sh) -c
69 install_sh_SCRIPT = $(install_sh) -c
70 INSTALL_HEADER = $(INSTALL_DATA)
71 transform = $(program_transform_name)
72 NORMAL_INSTALL = :
73 PRE_INSTALL = :
74 POST_INSTALL = :
75 NORMAL_UNINSTALL = :
76 PRE_UNINSTALL = :
77 POST_UNINSTALL = :
78 build_triplet = @build@
79 host_triplet = @host@
80 target_triplet = @target@
81 noinst_PROGRAMS = read-metadata$(EXEEXT)
82 subdir = tests/examples/metadata
83 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
84 $(top_srcdir)/depcomp
85 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
86 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
87 $(top_srcdir)/common/m4/as-auto-alt.m4 \
88 $(top_srcdir)/common/m4/as-compiler-flag.m4 \
89 $(top_srcdir)/common/m4/as-docbook.m4 \
90 $(top_srcdir)/common/m4/as-libtool.m4 \
91 $(top_srcdir)/common/m4/as-version.m4 \
92 $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
93 $(top_srcdir)/common/m4/ax_pthread.m4 \
94 $(top_srcdir)/common/m4/gst-arch.m4 \
95 $(top_srcdir)/common/m4/gst-args.m4 \
96 $(top_srcdir)/common/m4/gst-check.m4 \
97 $(top_srcdir)/common/m4/gst-doc.m4 \
98 $(top_srcdir)/common/m4/gst-error.m4 \
99 $(top_srcdir)/common/m4/gst-feature.m4 \
100 $(top_srcdir)/common/m4/gst-function.m4 \
101 $(top_srcdir)/common/m4/gst-gettext.m4 \
102 $(top_srcdir)/common/m4/gst-glib2.m4 \
103 $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
104 $(top_srcdir)/common/m4/gst-parser.m4 \
105 $(top_srcdir)/common/m4/gst-platform.m4 \
106 $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
107 $(top_srcdir)/common/m4/gst-plugindir.m4 \
108 $(top_srcdir)/common/m4/gst.m4 \
109 $(top_srcdir)/common/m4/gtk-doc.m4 \
110 $(top_srcdir)/common/m4/introspection.m4 \
111 $(top_srcdir)/common/m4/pkg.m4 \
112 $(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
113 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
114 $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lib-ld.m4 \
115 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
116 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/longlong.m4 \
117 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
118 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
119 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
120 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
121 $(top_srcdir)/configure.ac
122 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
123 $(ACLOCAL_M4)
124 mkinstalldirs = $(install_sh) -d
125 CONFIG_HEADER = $(top_builddir)/config.h
126 CONFIG_CLEAN_FILES =
127 CONFIG_CLEAN_VPATH_FILES =
128 PROGRAMS = $(noinst_PROGRAMS)
129 read_metadata_SOURCES = read-metadata.c
130 read_metadata_OBJECTS = read_metadata-read-metadata.$(OBJEXT)
131 am__DEPENDENCIES_1 =
132 read_metadata_DEPENDENCIES = $(am__DEPENDENCIES_1)
133 AM_V_lt = $(am__v_lt_@AM_V@)
134 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
135 am__v_lt_0 = --silent
136 am__v_lt_1 =
137 read_metadata_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
138 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(read_metadata_CFLAGS) \
139 $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
140 AM_V_P = $(am__v_P_@AM_V@)
141 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
142 am__v_P_0 = false
143 am__v_P_1 = :
144 AM_V_GEN = $(am__v_GEN_@AM_V@)
145 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
146 am__v_GEN_0 = @echo " GEN " $@;
147 am__v_GEN_1 =
148 AM_V_at = $(am__v_at_@AM_V@)
149 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
150 am__v_at_0 = @
151 am__v_at_1 =
152 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
153 depcomp = $(SHELL) $(top_srcdir)/depcomp
154 am__depfiles_maybe = depfiles
155 am__mv = mv -f
156 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
157 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
158 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
159 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
160 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
161 $(AM_CFLAGS) $(CFLAGS)
162 AM_V_CC = $(am__v_CC_@AM_V@)
163 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
164 am__v_CC_0 = @echo " CC " $@;
165 am__v_CC_1 =
166 CCLD = $(CC)
167 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
168 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
169 $(AM_LDFLAGS) $(LDFLAGS) -o $@
170 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
171 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
172 am__v_CCLD_0 = @echo " CCLD " $@;
173 am__v_CCLD_1 =
174 SOURCES = read-metadata.c
175 DIST_SOURCES = read-metadata.c
176 am__can_run_installinfo = \
177 case $$AM_UPDATE_INFO_DIR in \
178 n|no|NO) false;; \
179 *) (install-info --version) >/dev/null 2>&1;; \
180 esac
181 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
182 # Read a list of newline-separated strings from the standard input,
183 # and print each of them once, without duplicates. Input order is
184 # *not* preserved.
185 am__uniquify_input = $(AWK) '\
186 BEGIN { nonempty = 0; } \
187 { items[$$0] = 1; nonempty = 1; } \
188 END { if (nonempty) { for (i in items) print i; }; } \
189 '
190 # Make sure the list of sources is unique. This is necessary because,
191 # e.g., the same source file might be shared among _SOURCES variables
192 # for different programs/libraries.
193 am__define_uniq_tagged_files = \
194 list='$(am__tagged_files)'; \
195 unique=`for i in $$list; do \
196 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
197 done | $(am__uniquify_input)`
198 ETAGS = etags
199 CTAGS = ctags
200 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
201 ACLOCAL = @ACLOCAL@
202 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
203 AMTAR = @AMTAR@
204 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
205 AR = @AR@
206 AS = @AS@
207 AUTOCONF = @AUTOCONF@
208 AUTOHEADER = @AUTOHEADER@
209 AUTOMAKE = @AUTOMAKE@
210 AWK = @AWK@
211 BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
212 BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
213 BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
214 BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
215 BISON_PATH = @BISON_PATH@
216 CAT_ENTRY_END = @CAT_ENTRY_END@
217 CAT_ENTRY_START = @CAT_ENTRY_START@
218 CC = @CC@
219 CCAS = @CCAS@
220 CCASDEPMODE = @CCASDEPMODE@
221 CCASFLAGS = @CCASFLAGS@
222 CCDEPMODE = @CCDEPMODE@
223 CFLAGS = @CFLAGS@
224 CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
225 CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
226 CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
227 CHECK_VERSION = @CHECK_VERSION@
228 CPP = @CPP@
229 CPPFLAGS = @CPPFLAGS@
230 CXX = @CXX@
231 CXXCPP = @CXXCPP@
232 CXXDEPMODE = @CXXDEPMODE@
233 CXXFLAGS = @CXXFLAGS@
234 CYGPATH_W = @CYGPATH_W@
235 DATADIR = @DATADIR@
236 DEFS = @DEFS@
237 DEPDIR = @DEPDIR@
238 DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
239 DLLTOOL = @DLLTOOL@
240 DOCBOOK_ROOT = @DOCBOOK_ROOT@
241 DSYMUTIL = @DSYMUTIL@
242 DUMPBIN = @DUMPBIN@
243 ECHO_C = @ECHO_C@
244 ECHO_N = @ECHO_N@
245 ECHO_T = @ECHO_T@
246 EGREP = @EGREP@
247 ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
248 ERROR_CFLAGS = @ERROR_CFLAGS@
249 EXEEXT = @EXEEXT@
250 FFLAGS = @FFLAGS@
251 FGREP = @FGREP@
252 FLEX_PATH = @FLEX_PATH@
253 GCOV = @GCOV@
254 GCOV_CFLAGS = @GCOV_CFLAGS@
255 GCOV_LIBS = @GCOV_LIBS@
256 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
257 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
258 GIO_CFLAGS = @GIO_CFLAGS@
259 GIO_LDFLAGS = @GIO_LDFLAGS@
260 GIO_LIBS = @GIO_LIBS@
261 GLIB_CFLAGS = @GLIB_CFLAGS@
262 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
263 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
264 GLIB_LIBS = @GLIB_LIBS@
265 GLIB_MKENUMS = @GLIB_MKENUMS@
266 GLIB_PREFIX = @GLIB_PREFIX@
267 GLIB_REQ = @GLIB_REQ@
268 GMP_LIBS = @GMP_LIBS@
269 GMSGFMT = @GMSGFMT@
270 GMSGFMT_015 = @GMSGFMT_015@
271 GREP = @GREP@
272 GSL_LIBS = @GSL_LIBS@
273 GST_AGE = @GST_AGE@
274 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
275 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
276 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
277 GST_ALL_LIBS = @GST_ALL_LIBS@
278 GST_API_VERSION = @GST_API_VERSION@
279 GST_CURRENT = @GST_CURRENT@
280 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
281 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
282 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
283 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
284 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
285 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
286 GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
287 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
288 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
289 GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
290 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
291 GST_LIBVERSION = @GST_LIBVERSION@
292 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
293 GST_LICENSE = @GST_LICENSE@
294 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
295 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
296 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
297 GST_OBJ_LIBS = @GST_OBJ_LIBS@
298 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
299 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
300 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
301 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
302 GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
303 GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
304 GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
305 GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
306 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
307 GST_REVISION = @GST_REVISION@
308 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
309 GST_VERSION_MICRO = @GST_VERSION_MICRO@
310 GST_VERSION_MINOR = @GST_VERSION_MINOR@
311 GST_VERSION_NANO = @GST_VERSION_NANO@
312 GTKDOC_CHECK = @GTKDOC_CHECK@
313 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
314 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
315 GTKDOC_MKPDF = @GTKDOC_MKPDF@
316 GTKDOC_REBASE = @GTKDOC_REBASE@
317 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
318 HAVE_DVIPS = @HAVE_DVIPS@
319 HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
320 HAVE_FORK = @HAVE_FORK@
321 HAVE_GMP = @HAVE_GMP@
322 HAVE_GSL = @HAVE_GSL@
323 HAVE_JADETEX = @HAVE_JADETEX@
324 HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
325 HAVE_PNMTOPS = @HAVE_PNMTOPS@
326 HAVE_PS2PDF = @HAVE_PS2PDF@
327 HAVE_XMLLINT = @HAVE_XMLLINT@
328 HAVE_XSLTPROC = @HAVE_XSLTPROC@
329 HOST_CPU = @HOST_CPU@
330 HTML_DIR = @HTML_DIR@
331 INSTALL = @INSTALL@
332 INSTALL_DATA = @INSTALL_DATA@
333 INSTALL_PROGRAM = @INSTALL_PROGRAM@
334 INSTALL_SCRIPT = @INSTALL_SCRIPT@
335 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
336 INTLLIBS = @INTLLIBS@
337 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
338 INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
339 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
340 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
341 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
342 INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
343 INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
344 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
345 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
346 LD = @LD@
347 LDFLAGS = @LDFLAGS@
348 LIBDIR = @LIBDIR@
349 LIBICONV = @LIBICONV@
350 LIBINTL = @LIBINTL@
351 LIBM = @LIBM@
352 LIBOBJS = @LIBOBJS@
353 LIBS = @LIBS@
354 LIBTOOL = @LIBTOOL@
355 LIPO = @LIPO@
356 LN_S = @LN_S@
357 LOCALEDIR = @LOCALEDIR@
358 LTLIBICONV = @LTLIBICONV@
359 LTLIBINTL = @LTLIBINTL@
360 LTLIBOBJS = @LTLIBOBJS@
361 MAINT = @MAINT@
362 MAKEINFO = @MAKEINFO@
363 MANIFEST_TOOL = @MANIFEST_TOOL@
364 MKDIR_P = @MKDIR_P@
365 MSGFMT = @MSGFMT@
366 MSGFMT_015 = @MSGFMT_015@
367 MSGMERGE = @MSGMERGE@
368 NM = @NM@
369 NMEDIT = @NMEDIT@
370 OBJDUMP = @OBJDUMP@
371 OBJEXT = @OBJEXT@
372 OTOOL = @OTOOL@
373 OTOOL64 = @OTOOL64@
374 PACKAGE = @PACKAGE@
375 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
376 PACKAGE_NAME = @PACKAGE_NAME@
377 PACKAGE_STRING = @PACKAGE_STRING@
378 PACKAGE_TARNAME = @PACKAGE_TARNAME@
379 PACKAGE_URL = @PACKAGE_URL@
380 PACKAGE_VERSION = @PACKAGE_VERSION@
381 PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
382 PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
383 PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
384 PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
385 PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
386 PATH_SEPARATOR = @PATH_SEPARATOR@
387 PERL_PATH = @PERL_PATH@
388 PKG_CONFIG = @PKG_CONFIG@
389 PLUGINDIR = @PLUGINDIR@
390 POSUB = @POSUB@
391 PRINTF_CFLAGS = @PRINTF_CFLAGS@
392 PROFILE_CFLAGS = @PROFILE_CFLAGS@
393 PTHREAD_CC = @PTHREAD_CC@
394 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
395 PTHREAD_LIBS = @PTHREAD_LIBS@
396 PYTHON = @PYTHON@
397 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
398 PYTHON_PLATFORM = @PYTHON_PLATFORM@
399 PYTHON_PREFIX = @PYTHON_PREFIX@
400 PYTHON_VERSION = @PYTHON_VERSION@
401 RANLIB = @RANLIB@
402 SED = @SED@
403 SET_MAKE = @SET_MAKE@
404 SHELL = @SHELL@
405 STRIP = @STRIP@
406 USE_NLS = @USE_NLS@
407 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
408 VALGRIND_LIBS = @VALGRIND_LIBS@
409 VALGRIND_PATH = @VALGRIND_PATH@
410 VERSION = @VERSION@
411 WARNING_CFLAGS = @WARNING_CFLAGS@
412 WIN32_LIBS = @WIN32_LIBS@
413 XGETTEXT = @XGETTEXT@
414 XGETTEXT_015 = @XGETTEXT_015@
415 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
416 XML_CATALOG = @XML_CATALOG@
417 XSLTPROC = @XSLTPROC@
418 XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
419 abs_builddir = @abs_builddir@
420 abs_srcdir = @abs_srcdir@
421 abs_top_builddir = @abs_top_builddir@
422 abs_top_srcdir = @abs_top_srcdir@
423 ac_ct_AR = @ac_ct_AR@
424 ac_ct_CC = @ac_ct_CC@
425 ac_ct_CXX = @ac_ct_CXX@
426 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
427 am__include = @am__include@
428 am__leading_dot = @am__leading_dot@
429 am__quote = @am__quote@
430 am__tar = @am__tar@
431 am__untar = @am__untar@
432 ax_pthread_config = @ax_pthread_config@
433 bindir = @bindir@
434 build = @build@
435 build_alias = @build_alias@
436 build_cpu = @build_cpu@
437 build_os = @build_os@
438 build_vendor = @build_vendor@
439 builddir = @builddir@
440 datadir = @datadir@
441 datarootdir = @datarootdir@
442 docdir = @docdir@
443 dvidir = @dvidir@
444 exec_prefix = @exec_prefix@
445 host = @host@
446 host_alias = @host_alias@
447 host_cpu = @host_cpu@
448 host_os = @host_os@
449 host_vendor = @host_vendor@
450 htmldir = @htmldir@
451 includedir = @includedir@
452 infodir = @infodir@
453 install_sh = @install_sh@
454 libdir = @libdir@
455 libexecdir = @libexecdir@
456 localedir = @localedir@
457 localstatedir = @localstatedir@
458 mandir = @mandir@
459 mkdir_p = @mkdir_p@
460 oldincludedir = @oldincludedir@
461 pdfdir = @pdfdir@
462 pkgpyexecdir = @pkgpyexecdir@
463 pkgpythondir = @pkgpythondir@
464 plugindir = @plugindir@
465 prefix = @prefix@
466 program_transform_name = @program_transform_name@
467 psdir = @psdir@
468 pyexecdir = @pyexecdir@
469 pythondir = @pythondir@
470 sbindir = @sbindir@
471 sharedstatedir = @sharedstatedir@
472 srcdir = @srcdir@
473 sysconfdir = @sysconfdir@
474 target = @target@
475 target_alias = @target_alias@
476 target_cpu = @target_cpu@
477 target_os = @target_os@
478 target_vendor = @target_vendor@
479 top_build_prefix = @top_build_prefix@
480 top_builddir = @top_builddir@
481 top_srcdir = @top_srcdir@
482 read_metadata_LDADD = $(GST_OBJ_LIBS)
483 read_metadata_CFLAGS = $(GST_OBJ_CFLAGS)
484 all: all-am
485
486 .SUFFIXES:
487 .SUFFIXES: .c .lo .o .obj
488 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
489 @for dep in $?; do \
490 case '$(am__configure_deps)' in \
491 *$$dep*) \
492 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
493 && { if test -f $@; then exit 0; else break; fi; }; \
494 exit 1;; \
495 esac; \
496 done; \
497 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/metadata/Makefile'; \
498 $(am__cd) $(top_srcdir) && \
499 $(AUTOMAKE) --gnu tests/examples/metadata/Makefile
500 .PRECIOUS: Makefile
501 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
502 @case '$?' in \
503 *config.status*) \
504 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
505 *) \
506 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
507 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
508 esac;
509
510 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
511 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
512
513 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
514 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
515 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
516 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
517 $(am__aclocal_m4_deps):
518
519 clean-noinstPROGRAMS:
520 @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
521 echo " rm -f" $$list; \
522 rm -f $$list || exit $$?; \
523 test -n "$(EXEEXT)" || exit 0; \
524 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
525 echo " rm -f" $$list; \
526 rm -f $$list
527
528 read-metadata$(EXEEXT): $(read_metadata_OBJECTS) $(read_metadata_DEPENDENCIES) $(EXTRA_read_metadata_DEPENDENCIES)
529 @rm -f read-metadata$(EXEEXT)
530 $(AM_V_CCLD)$(read_metadata_LINK) $(read_metadata_OBJECTS) $(read_metadata_LDADD) $(LIBS)
531
532 mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535 distclean-compile:
536 -rm -f *.tab.c
537
538 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read_metadata-read-metadata.Po@am__quote@
539
540 .c.o:
541 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
542 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
543 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
544 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
545 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
546 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
547
548 .c.obj:
549 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
550 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
551 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
552 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
553 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
554 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
555
556 .c.lo:
557 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
558 @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
559 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
560 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
561 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
562 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
563
564 read_metadata-read-metadata.o: read-metadata.c
565 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -MT read_metadata-read-metadata.o -MD -MP -MF $(DEPDIR)/read_metadata-read-metadata.Tpo -c -o read_metadata-read-metadata.o `test -f 'read-metadata.c' || echo '$(srcdir)/'`read-metadata.c
566 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/read_metadata-read-metadata.Tpo $(DEPDIR)/read_metadata-read-metadata.Po
567 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='read-metadata.c' object='read_metadata-read-metadata.o' libtool=no @AMDEPBACKSLASH@
568 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
569 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.o `test -f 'read-metadata.c' || echo '$(srcdir)/'`read-metadata.c
570
571 read_metadata-read-metadata.obj: read-metadata.c
572 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -MT read_metadata-read-metadata.obj -MD -MP -MF $(DEPDIR)/read_metadata-read-metadata.Tpo -c -o read_metadata-read-metadata.obj `if test -f 'read-metadata.c'; then $(CYGPATH_W) 'read-metadata.c'; else $(CYGPATH_W) '$(srcdir)/read-metadata.c'; fi`
573 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/read_metadata-read-metadata.Tpo $(DEPDIR)/read_metadata-read-metadata.Po
574 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='read-metadata.c' object='read_metadata-read-metadata.obj' libtool=no @AMDEPBACKSLASH@
575 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
576 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.obj `if test -f 'read-metadata.c'; then $(CYGPATH_W) 'read-metadata.c'; else $(CYGPATH_W) '$(srcdir)/read-metadata.c'; fi`
577
578 mostlyclean-libtool:
579 -rm -f *.lo
580
581 clean-libtool:
582 -rm -rf .libs _libs
583
584 ID: $(am__tagged_files)
585 $(am__define_uniq_tagged_files); mkid -fID $$unique
586 tags: tags-am
587 TAGS: tags
588
589 tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
590 set x; \
591 here=`pwd`; \
592 $(am__define_uniq_tagged_files); \
593 shift; \
594 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
595 test -n "$$unique" || unique=$$empty_fix; \
596 if test $$# -gt 0; then \
597 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
598 "$$@" $$unique; \
599 else \
600 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
601 $$unique; \
602 fi; \
603 fi
604 ctags: ctags-am
605
606 CTAGS: ctags
607 ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
608 $(am__define_uniq_tagged_files); \
609 test -z "$(CTAGS_ARGS)$$unique" \
610 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
611 $$unique
612
613 GTAGS:
614 here=`$(am__cd) $(top_builddir) && pwd` \
615 && $(am__cd) $(top_srcdir) \
616 && gtags -i $(GTAGS_ARGS) "$$here"
617 cscopelist: cscopelist-am
618
619 cscopelist-am: $(am__tagged_files)
620 list='$(am__tagged_files)'; \
621 case "$(srcdir)" in \
622 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
623 *) sdir=$(subdir)/$(srcdir) ;; \
624 esac; \
625 for i in $$list; do \
626 if test -f "$$i"; then \
627 echo "$(subdir)/$$i"; \
628 else \
629 echo "$$sdir/$$i"; \
630 fi; \
631 done >> $(top_builddir)/cscope.files
632
633 distclean-tags:
634 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
635
636 distdir: $(DISTFILES)
637 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
638 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
639 list='$(DISTFILES)'; \
640 dist_files=`for file in $$list; do echo $$file; done | \
641 sed -e "s|^$$srcdirstrip/||;t" \
642 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
643 case $$dist_files in \
644 */*) $(MKDIR_P) `echo "$$dist_files" | \
645 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
646 sort -u` ;; \
647 esac; \
648 for file in $$dist_files; do \
649 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
650 if test -d $$d/$$file; then \
651 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
652 if test -d "$(distdir)/$$file"; then \
653 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
654 fi; \
655 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
656 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
657 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
658 fi; \
659 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
660 else \
661 test -f "$(distdir)/$$file" \
662 || cp -p $$d/$$file "$(distdir)/$$file" \
663 || exit 1; \
664 fi; \
665 done
666 check-am: all-am
667 check: check-am
668 all-am: Makefile $(PROGRAMS)
669 installdirs:
670 install: install-am
671 install-exec: install-exec-am
672 install-data: install-data-am
673 uninstall: uninstall-am
674
675 install-am: all-am
676 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
677
678 installcheck: installcheck-am
679 install-strip:
680 if test -z '$(STRIP)'; then \
681 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
682 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
683 install; \
684 else \
685 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
686 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
687 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
688 fi
689 mostlyclean-generic:
690
691 clean-generic:
692
693 distclean-generic:
694 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
695 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
696
697 maintainer-clean-generic:
698 @echo "This command is intended for maintainers to use"
699 @echo "it deletes files that may require special tools to rebuild."
700 clean: clean-am
701
702 clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
703 mostlyclean-am
704
705 distclean: distclean-am
706 -rm -rf ./$(DEPDIR)
707 -rm -f Makefile
708 distclean-am: clean-am distclean-compile distclean-generic \
709 distclean-tags
710
711 dvi: dvi-am
712
713 dvi-am:
714
715 html: html-am
716
717 html-am:
718
719 info: info-am
720
721 info-am:
722
723 install-data-am:
724
725 install-dvi: install-dvi-am
726
727 install-dvi-am:
728
729 install-exec-am:
730
731 install-html: install-html-am
732
733 install-html-am:
734
735 install-info: install-info-am
736
737 install-info-am:
738
739 install-man:
740
741 install-pdf: install-pdf-am
742
743 install-pdf-am:
744
745 install-ps: install-ps-am
746
747 install-ps-am:
748
749 installcheck-am:
750
751 maintainer-clean: maintainer-clean-am
752 -rm -rf ./$(DEPDIR)
753 -rm -f Makefile
754 maintainer-clean-am: distclean-am maintainer-clean-generic
755
756 mostlyclean: mostlyclean-am
757
758 mostlyclean-am: mostlyclean-compile mostlyclean-generic \
759 mostlyclean-libtool
760
761 pdf: pdf-am
762
763 pdf-am:
764
765 ps: ps-am
766
767 ps-am:
768
769 uninstall-am:
770
771 .MAKE: install-am install-strip
772
773 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
774 clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
775 ctags-am distclean distclean-compile distclean-generic \
776 distclean-libtool distclean-tags distdir dvi dvi-am html \
777 html-am info info-am install install-am install-data \
778 install-data-am install-dvi install-dvi-am install-exec \
779 install-exec-am install-html install-html-am install-info \
780 install-info-am install-man install-pdf install-pdf-am \
781 install-ps install-ps-am install-strip installcheck \
782 installcheck-am installdirs maintainer-clean \
783 maintainer-clean-generic mostlyclean mostlyclean-compile \
784 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
785 tags tags-am uninstall uninstall-am
786
787
788 # Tell versions [3.59,3.63) of GNU make to not export all variables.
789 # Otherwise a system limit (for SysV at least) may be exceeded.
790 .NOEXPORT:
+0
-217
tests/examples/metadata/read-metadata.c less more
0 /* GStreamer
1 * Copyright (C) 2003 Thomas Vander Stichele <thomas@apestaart.org>
2 * 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
3 * 2005 Andy Wingo <wingo@pobox.com>
4 * 2005 Jan Schmidt <thaytan@mad.scientist.com>
5 *
6 * gst-metadata.c: Use GStreamer to display metadata within files.
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library; if not, write to the
20 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22 */
23
24
25 #ifdef HAVE_CONFIG_H
26 # include "config.h"
27 #endif
28
29 #include <string.h>
30 #include <stdlib.h>
31 #include <locale.h>
32 #include <gst/gst.h>
33
34 static char *filename = NULL;
35 static GstElement *pipeline = NULL;
36 static GstElement *source = NULL;
37
38 #define NEW_PIPE_PER_FILE
39
40 static gboolean
41 message_loop (GstElement * element, GstTagList ** tags)
42 {
43 GstBus *bus;
44 gboolean done = FALSE;
45
46 bus = gst_element_get_bus (element);
47 g_return_val_if_fail (bus != NULL, FALSE);
48 g_return_val_if_fail (tags != NULL, FALSE);
49
50 while (!done) {
51 GstMessage *message;
52
53 message = gst_bus_pop (bus);
54 if (message == NULL)
55 /* All messages read, we're done */
56 break;
57
58 switch (GST_MESSAGE_TYPE (message)) {
59 case GST_MESSAGE_ERROR:
60 case GST_MESSAGE_EOS:
61 gst_message_unref (message);
62 return TRUE;
63 case GST_MESSAGE_TAG:
64 {
65 GstTagList *new_tags, *old_tags;
66
67 gst_message_parse_tag (message, &new_tags);
68 if (*tags) {
69 old_tags = *tags;
70 *tags = gst_tag_list_merge (old_tags, new_tags, GST_TAG_MERGE_KEEP);
71 gst_tag_list_unref (old_tags);
72 } else
73 *tags = new_tags;
74 break;
75 }
76 default:
77 break;
78 }
79 gst_message_unref (message);
80 }
81 gst_object_unref (bus);
82 return TRUE;
83 }
84
85 static void
86 make_pipeline (void)
87 {
88 GstElement *decodebin;
89
90 if (pipeline != NULL)
91 gst_object_unref (pipeline);
92
93 pipeline = gst_pipeline_new (NULL);
94
95 source = gst_element_factory_make ("filesrc", "source");
96 g_assert (GST_IS_ELEMENT (source));
97 decodebin = gst_element_factory_make ("decodebin", "decodebin");
98 g_assert (GST_IS_ELEMENT (decodebin));
99
100 gst_bin_add_many (GST_BIN (pipeline), source, decodebin, NULL);
101 gst_element_link (source, decodebin);
102 }
103
104 static void
105 print_tag (const GstTagList * list, const gchar * tag, gpointer unused)
106 {
107 gint i, count;
108
109 count = gst_tag_list_get_tag_size (list, tag);
110
111 for (i = 0; i < count; i++) {
112 gchar *str;
113
114 if (gst_tag_get_type (tag) == G_TYPE_STRING) {
115 if (!gst_tag_list_get_string_index (list, tag, i, &str))
116 g_assert_not_reached ();
117 } else {
118 str =
119 g_strdup_value_contents (gst_tag_list_get_value_index (list, tag, i));
120 }
121
122 if (i == 0) {
123 g_print (" %15s: %s\n", gst_tag_get_nick (tag), str);
124 } else {
125 g_print (" : %s\n", str);
126 }
127
128 g_free (str);
129 }
130 }
131
132 int
133 main (int argc, char *argv[])
134 {
135 guint i = 1;
136
137 setlocale (LC_ALL, "");
138
139 gst_init (&argc, &argv);
140
141 if (argc < 2) {
142 g_print ("Please give filenames to read metadata from\n\n");
143 return 1;
144 }
145
146 make_pipeline ();
147 while (i < argc) {
148 GstStateChangeReturn sret;
149 GstState state;
150 GstTagList *tags = NULL;
151
152 filename = argv[i];
153 g_object_set (source, "location", filename, NULL);
154
155 GST_DEBUG ("Starting reading for %s", filename);
156
157 /* Decodebin will only commit to PAUSED if it actually finds a type;
158 * otherwise the state change fails */
159 sret = gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PAUSED);
160
161 if (GST_STATE_CHANGE_ASYNC == sret) {
162 if (GST_STATE_CHANGE_SUCCESS !=
163 gst_element_get_state (GST_ELEMENT (pipeline), &state, NULL,
164 5 * GST_SECOND)) {
165 g_print ("State change failed for %s. Aborting\n", filename);
166 break;
167 }
168 } else if (sret != GST_STATE_CHANGE_SUCCESS) {
169 g_print ("%s - Could not read file\n", filename);
170 goto next_file;
171 }
172
173 if (!message_loop (GST_ELEMENT (pipeline), &tags)) {
174 g_print ("Failed in message reading for %s\n", argv[i]);
175 }
176
177 if (tags) {
178 g_print ("Metadata for %s:\n", argv[i]);
179 gst_tag_list_foreach (tags, print_tag, NULL);
180 gst_tag_list_unref (tags);
181 tags = NULL;
182 } else
183 g_print ("No metadata found for %s\n", argv[i]);
184
185 sret = gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
186 #ifdef NEW_PIPE_PER_FILE
187 if (sret != GST_STATE_CHANGE_SUCCESS) {
188 g_print ("State change failed. Aborting\n");
189 break;
190 }
191 #else
192 if (GST_STATE_CHANGE_ASYNC == sret) {
193 if (GST_STATE_CHANGE_FAILURE ==
194 gst_element_get_state (GST_ELEMENT (pipeline), &state, NULL,
195 GST_CLOCK_TIME_NONE)) {
196 g_print ("State change failed. Aborting");
197 break;
198 }
199 } else if (sret != GST_STATE_CHANGE_SUCCESS) {
200 g_print ("State change failed. Aborting\n");
201 break;
202 }
203 #endif
204
205 next_file:
206 i++;
207
208 #ifdef NEW_PIPE_PER_FILE
209 make_pipeline ();
210 #endif
211 }
212
213 if (pipeline)
214 gst_object_unref (pipeline);
215 return 0;
216 }
+0
-5
tests/examples/queue/Makefile.am less more
0 noinst_PROGRAMS = queue
1
2 queue_LDADD = $(GST_OBJ_LIBS)
3 queue_CFLAGS = $(GST_OBJ_CFLAGS)
4
+0
-791
tests/examples/queue/Makefile.in less more
0 # Makefile.in generated by automake 1.14.1 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
18 am__make_running_with_option = \
19 case $${target_option-} in \
20 ?) ;; \
21 *) echo "am__make_running_with_option: internal error: invalid" \
22 "target option '$${target_option-}' specified" >&2; \
23 exit 1;; \
24 esac; \
25 has_opt=no; \
26 sane_makeflags=$$MAKEFLAGS; \
27 if $(am__is_gnu_make); then \
28 sane_makeflags=$$MFLAGS; \
29 else \
30 case $$MAKEFLAGS in \
31 *\\[\ \ ]*) \
32 bs=\\; \
33 sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
34 | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
35 esac; \
36 fi; \
37 skip_next=no; \
38 strip_trailopt () \
39 { \
40 flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
41 }; \
42 for flg in $$sane_makeflags; do \
43 test $$skip_next = yes && { skip_next=no; continue; }; \
44 case $$flg in \
45 *=*|--*) continue;; \
46 -*I) strip_trailopt 'I'; skip_next=yes;; \
47 -*I?*) strip_trailopt 'I';; \
48 -*O) strip_trailopt 'O'; skip_next=yes;; \
49 -*O?*) strip_trailopt 'O';; \
50 -*l) strip_trailopt 'l'; skip_next=yes;; \
51 -*l?*) strip_trailopt 'l';; \
52 -[dEDm]) skip_next=yes;; \
53 -[JT]) skip_next=yes;; \
54 esac; \
55 case $$flg in \
56 *$$target_option*) has_opt=yes; break;; \
57 esac; \
58 done; \
59 test $$has_opt = yes
60 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
61 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
62 pkgdatadir = $(datadir)/@PACKAGE@
63 pkgincludedir = $(includedir)/@PACKAGE@
64 pkglibdir = $(libdir)/@PACKAGE@
65 pkglibexecdir = $(libexecdir)/@PACKAGE@
66 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
67 install_sh_DATA = $(install_sh) -c -m 644
68 install_sh_PROGRAM = $(install_sh) -c
69 install_sh_SCRIPT = $(install_sh) -c
70 INSTALL_HEADER = $(INSTALL_DATA)
71 transform = $(program_transform_name)
72 NORMAL_INSTALL = :
73 PRE_INSTALL = :
74 POST_INSTALL = :
75 NORMAL_UNINSTALL = :
76 PRE_UNINSTALL = :
77 POST_UNINSTALL = :
78 build_triplet = @build@
79 host_triplet = @host@
80 target_triplet = @target@
81 noinst_PROGRAMS = queue$(EXEEXT)
82 subdir = tests/examples/queue
83 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
84 $(top_srcdir)/depcomp
85 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
86 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
87 $(top_srcdir)/common/m4/as-auto-alt.m4 \
88 $(top_srcdir)/common/m4/as-compiler-flag.m4 \
89 $(top_srcdir)/common/m4/as-docbook.m4 \
90 $(top_srcdir)/common/m4/as-libtool.m4 \
91 $(top_srcdir)/common/m4/as-version.m4 \
92 $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
93 $(top_srcdir)/common/m4/ax_pthread.m4 \
94 $(top_srcdir)/common/m4/gst-arch.m4 \
95 $(top_srcdir)/common/m4/gst-args.m4 \
96 $(top_srcdir)/common/m4/gst-check.m4 \
97 $(top_srcdir)/common/m4/gst-doc.m4 \
98 $(top_srcdir)/common/m4/gst-error.m4 \
99 $(top_srcdir)/common/m4/gst-feature.m4 \
100 $(top_srcdir)/common/m4/gst-function.m4 \
101 $(top_srcdir)/common/m4/gst-gettext.m4 \
102 $(top_srcdir)/common/m4/gst-glib2.m4 \
103 $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
104 $(top_srcdir)/common/m4/gst-parser.m4 \
105 $(top_srcdir)/common/m4/gst-platform.m4 \
106 $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
107 $(top_srcdir)/common/m4/gst-plugindir.m4 \
108 $(top_srcdir)/common/m4/gst.m4 \
109 $(top_srcdir)/common/m4/gtk-doc.m4 \
110 $(top_srcdir)/common/m4/introspection.m4 \
111 $(top_srcdir)/common/m4/pkg.m4 \
112 $(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
113 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
114 $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lib-ld.m4 \
115 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
116 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/longlong.m4 \
117 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
118 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
119 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
120 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
121 $(top_srcdir)/configure.ac
122 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
123 $(ACLOCAL_M4)
124 mkinstalldirs = $(install_sh) -d
125 CONFIG_HEADER = $(top_builddir)/config.h
126 CONFIG_CLEAN_FILES =
127 CONFIG_CLEAN_VPATH_FILES =
128 PROGRAMS = $(noinst_PROGRAMS)
129 queue_SOURCES = queue.c
130 queue_OBJECTS = queue-queue.$(OBJEXT)
131 am__DEPENDENCIES_1 =
132 queue_DEPENDENCIES = $(am__DEPENDENCIES_1)
133 AM_V_lt = $(am__v_lt_@AM_V@)
134 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
135 am__v_lt_0 = --silent
136 am__v_lt_1 =
137 queue_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
138 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(queue_CFLAGS) $(CFLAGS) \
139 $(AM_LDFLAGS) $(LDFLAGS) -o $@
140 AM_V_P = $(am__v_P_@AM_V@)
141 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
142 am__v_P_0 = false
143 am__v_P_1 = :
144 AM_V_GEN = $(am__v_GEN_@AM_V@)
145 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
146 am__v_GEN_0 = @echo " GEN " $@;
147 am__v_GEN_1 =
148 AM_V_at = $(am__v_at_@AM_V@)
149 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
150 am__v_at_0 = @
151 am__v_at_1 =
152 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
153 depcomp = $(SHELL) $(top_srcdir)/depcomp
154 am__depfiles_maybe = depfiles
155 am__mv = mv -f
156 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
157 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
158 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
159 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
160 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
161 $(AM_CFLAGS) $(CFLAGS)
162 AM_V_CC = $(am__v_CC_@AM_V@)
163 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
164 am__v_CC_0 = @echo " CC " $@;
165 am__v_CC_1 =
166 CCLD = $(CC)
167 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
168 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
169 $(AM_LDFLAGS) $(LDFLAGS) -o $@
170 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
171 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
172 am__v_CCLD_0 = @echo " CCLD " $@;
173 am__v_CCLD_1 =
174 SOURCES = queue.c
175 DIST_SOURCES = queue.c
176 am__can_run_installinfo = \
177 case $$AM_UPDATE_INFO_DIR in \
178 n|no|NO) false;; \
179 *) (install-info --version) >/dev/null 2>&1;; \
180 esac
181 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
182 # Read a list of newline-separated strings from the standard input,
183 # and print each of them once, without duplicates. Input order is
184 # *not* preserved.
185 am__uniquify_input = $(AWK) '\
186 BEGIN { nonempty = 0; } \
187 { items[$$0] = 1; nonempty = 1; } \
188 END { if (nonempty) { for (i in items) print i; }; } \
189 '
190 # Make sure the list of sources is unique. This is necessary because,
191 # e.g., the same source file might be shared among _SOURCES variables
192 # for different programs/libraries.
193 am__define_uniq_tagged_files = \
194 list='$(am__tagged_files)'; \
195 unique=`for i in $$list; do \
196 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
197 done | $(am__uniquify_input)`
198 ETAGS = etags
199 CTAGS = ctags
200 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
201 ACLOCAL = @ACLOCAL@
202 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
203 AMTAR = @AMTAR@
204 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
205 AR = @AR@
206 AS = @AS@
207 AUTOCONF = @AUTOCONF@
208 AUTOHEADER = @AUTOHEADER@
209 AUTOMAKE = @AUTOMAKE@
210 AWK = @AWK@
211 BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
212 BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
213 BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
214 BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
215 BISON_PATH = @BISON_PATH@
216 CAT_ENTRY_END = @CAT_ENTRY_END@
217 CAT_ENTRY_START = @CAT_ENTRY_START@
218 CC = @CC@
219 CCAS = @CCAS@
220 CCASDEPMODE = @CCASDEPMODE@
221 CCASFLAGS = @CCASFLAGS@
222 CCDEPMODE = @CCDEPMODE@
223 CFLAGS = @CFLAGS@
224 CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
225 CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
226 CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
227 CHECK_VERSION = @CHECK_VERSION@
228 CPP = @CPP@
229 CPPFLAGS = @CPPFLAGS@
230 CXX = @CXX@
231 CXXCPP = @CXXCPP@
232 CXXDEPMODE = @CXXDEPMODE@
233 CXXFLAGS = @CXXFLAGS@
234 CYGPATH_W = @CYGPATH_W@
235 DATADIR = @DATADIR@
236 DEFS = @DEFS@
237 DEPDIR = @DEPDIR@
238 DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
239 DLLTOOL = @DLLTOOL@
240 DOCBOOK_ROOT = @DOCBOOK_ROOT@
241 DSYMUTIL = @DSYMUTIL@
242 DUMPBIN = @DUMPBIN@
243 ECHO_C = @ECHO_C@
244 ECHO_N = @ECHO_N@
245 ECHO_T = @ECHO_T@
246 EGREP = @EGREP@
247 ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
248 ERROR_CFLAGS = @ERROR_CFLAGS@
249 EXEEXT = @EXEEXT@
250 FFLAGS = @FFLAGS@
251 FGREP = @FGREP@
252 FLEX_PATH = @FLEX_PATH@
253 GCOV = @GCOV@
254 GCOV_CFLAGS = @GCOV_CFLAGS@
255 GCOV_LIBS = @GCOV_LIBS@
256 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
257 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
258 GIO_CFLAGS = @GIO_CFLAGS@
259 GIO_LDFLAGS = @GIO_LDFLAGS@
260 GIO_LIBS = @GIO_LIBS@
261 GLIB_CFLAGS = @GLIB_CFLAGS@
262 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
263 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
264 GLIB_LIBS = @GLIB_LIBS@
265 GLIB_MKENUMS = @GLIB_MKENUMS@
266 GLIB_PREFIX = @GLIB_PREFIX@
267 GLIB_REQ = @GLIB_REQ@
268 GMP_LIBS = @GMP_LIBS@
269 GMSGFMT = @GMSGFMT@
270 GMSGFMT_015 = @GMSGFMT_015@
271 GREP = @GREP@
272 GSL_LIBS = @GSL_LIBS@
273 GST_AGE = @GST_AGE@
274 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
275 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
276 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
277 GST_ALL_LIBS = @GST_ALL_LIBS@
278 GST_API_VERSION = @GST_API_VERSION@
279 GST_CURRENT = @GST_CURRENT@
280 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
281 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
282 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
283 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
284 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
285 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
286 GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
287 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
288 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
289 GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
290 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
291 GST_LIBVERSION = @GST_LIBVERSION@
292 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
293 GST_LICENSE = @GST_LICENSE@
294 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
295 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
296 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
297 GST_OBJ_LIBS = @GST_OBJ_LIBS@
298 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
299 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
300 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
301 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
302 GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
303 GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
304 GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
305 GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
306 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
307 GST_REVISION = @GST_REVISION@
308 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
309 GST_VERSION_MICRO = @GST_VERSION_MICRO@
310 GST_VERSION_MINOR = @GST_VERSION_MINOR@
311 GST_VERSION_NANO = @GST_VERSION_NANO@
312 GTKDOC_CHECK = @GTKDOC_CHECK@
313 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
314 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
315 GTKDOC_MKPDF = @GTKDOC_MKPDF@
316 GTKDOC_REBASE = @GTKDOC_REBASE@
317 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
318 HAVE_DVIPS = @HAVE_DVIPS@
319 HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
320 HAVE_FORK = @HAVE_FORK@
321 HAVE_GMP = @HAVE_GMP@
322 HAVE_GSL = @HAVE_GSL@
323 HAVE_JADETEX = @HAVE_JADETEX@
324 HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
325 HAVE_PNMTOPS = @HAVE_PNMTOPS@
326 HAVE_PS2PDF = @HAVE_PS2PDF@
327 HAVE_XMLLINT = @HAVE_XMLLINT@
328 HAVE_XSLTPROC = @HAVE_XSLTPROC@
329 HOST_CPU = @HOST_CPU@
330 HTML_DIR = @HTML_DIR@
331 INSTALL = @INSTALL@
332 INSTALL_DATA = @INSTALL_DATA@
333 INSTALL_PROGRAM = @INSTALL_PROGRAM@
334 INSTALL_SCRIPT = @INSTALL_SCRIPT@
335 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
336 INTLLIBS = @INTLLIBS@
337 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
338 INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
339 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
340 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
341 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
342 INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
343 INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
344 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
345 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
346 LD = @LD@
347 LDFLAGS = @LDFLAGS@
348 LIBDIR = @LIBDIR@
349 LIBICONV = @LIBICONV@
350 LIBINTL = @LIBINTL@
351 LIBM = @LIBM@
352 LIBOBJS = @LIBOBJS@
353 LIBS = @LIBS@
354 LIBTOOL = @LIBTOOL@
355 LIPO = @LIPO@
356 LN_S = @LN_S@
357 LOCALEDIR = @LOCALEDIR@
358 LTLIBICONV = @LTLIBICONV@
359 LTLIBINTL = @LTLIBINTL@
360 LTLIBOBJS = @LTLIBOBJS@
361 MAINT = @MAINT@
362 MAKEINFO = @MAKEINFO@
363 MANIFEST_TOOL = @MANIFEST_TOOL@
364 MKDIR_P = @MKDIR_P@
365 MSGFMT = @MSGFMT@
366 MSGFMT_015 = @MSGFMT_015@
367 MSGMERGE = @MSGMERGE@
368 NM = @NM@
369 NMEDIT = @NMEDIT@
370 OBJDUMP = @OBJDUMP@
371 OBJEXT = @OBJEXT@
372 OTOOL = @OTOOL@
373 OTOOL64 = @OTOOL64@
374 PACKAGE = @PACKAGE@
375 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
376 PACKAGE_NAME = @PACKAGE_NAME@
377 PACKAGE_STRING = @PACKAGE_STRING@
378 PACKAGE_TARNAME = @PACKAGE_TARNAME@
379 PACKAGE_URL = @PACKAGE_URL@
380 PACKAGE_VERSION = @PACKAGE_VERSION@
381 PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
382 PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
383 PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
384 PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
385 PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
386 PATH_SEPARATOR = @PATH_SEPARATOR@
387 PERL_PATH = @PERL_PATH@
388 PKG_CONFIG = @PKG_CONFIG@
389 PLUGINDIR = @PLUGINDIR@
390 POSUB = @POSUB@
391 PRINTF_CFLAGS = @PRINTF_CFLAGS@
392 PROFILE_CFLAGS = @PROFILE_CFLAGS@
393 PTHREAD_CC = @PTHREAD_CC@
394 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
395 PTHREAD_LIBS = @PTHREAD_LIBS@
396 PYTHON = @PYTHON@
397 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
398 PYTHON_PLATFORM = @PYTHON_PLATFORM@
399 PYTHON_PREFIX = @PYTHON_PREFIX@
400 PYTHON_VERSION = @PYTHON_VERSION@
401 RANLIB = @RANLIB@
402 SED = @SED@
403 SET_MAKE = @SET_MAKE@
404 SHELL = @SHELL@
405 STRIP = @STRIP@
406 USE_NLS = @USE_NLS@
407 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
408 VALGRIND_LIBS = @VALGRIND_LIBS@
409 VALGRIND_PATH = @VALGRIND_PATH@
410 VERSION = @VERSION@
411 WARNING_CFLAGS = @WARNING_CFLAGS@
412 WIN32_LIBS = @WIN32_LIBS@
413 XGETTEXT = @XGETTEXT@
414 XGETTEXT_015 = @XGETTEXT_015@
415 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
416 XML_CATALOG = @XML_CATALOG@
417 XSLTPROC = @XSLTPROC@
418 XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
419 abs_builddir = @abs_builddir@
420 abs_srcdir = @abs_srcdir@
421 abs_top_builddir = @abs_top_builddir@
422 abs_top_srcdir = @abs_top_srcdir@
423 ac_ct_AR = @ac_ct_AR@
424 ac_ct_CC = @ac_ct_CC@
425 ac_ct_CXX = @ac_ct_CXX@
426 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
427 am__include = @am__include@
428 am__leading_dot = @am__leading_dot@
429 am__quote = @am__quote@
430 am__tar = @am__tar@
431 am__untar = @am__untar@
432 ax_pthread_config = @ax_pthread_config@
433 bindir = @bindir@
434 build = @build@
435 build_alias = @build_alias@
436 build_cpu = @build_cpu@
437 build_os = @build_os@
438 build_vendor = @build_vendor@
439 builddir = @builddir@
440 datadir = @datadir@
441 datarootdir = @datarootdir@
442 docdir = @docdir@
443 dvidir = @dvidir@
444 exec_prefix = @exec_prefix@
445 host = @host@
446 host_alias = @host_alias@
447 host_cpu = @host_cpu@
448 host_os = @host_os@
449 host_vendor = @host_vendor@
450 htmldir = @htmldir@
451 includedir = @includedir@
452 infodir = @infodir@
453 install_sh = @install_sh@
454 libdir = @libdir@
455 libexecdir = @libexecdir@
456 localedir = @localedir@
457 localstatedir = @localstatedir@
458 mandir = @mandir@
459 mkdir_p = @mkdir_p@
460 oldincludedir = @oldincludedir@
461 pdfdir = @pdfdir@
462 pkgpyexecdir = @pkgpyexecdir@
463 pkgpythondir = @pkgpythondir@
464 plugindir = @plugindir@
465 prefix = @prefix@
466 program_transform_name = @program_transform_name@
467 psdir = @psdir@
468 pyexecdir = @pyexecdir@
469 pythondir = @pythondir@
470 sbindir = @sbindir@
471 sharedstatedir = @sharedstatedir@
472 srcdir = @srcdir@
473 sysconfdir = @sysconfdir@
474 target = @target@
475 target_alias = @target_alias@
476 target_cpu = @target_cpu@
477 target_os = @target_os@
478 target_vendor = @target_vendor@
479 top_build_prefix = @top_build_prefix@
480 top_builddir = @top_builddir@
481 top_srcdir = @top_srcdir@
482 queue_LDADD = $(GST_OBJ_LIBS)
483 queue_CFLAGS = $(GST_OBJ_CFLAGS)
484 all: all-am
485
486 .SUFFIXES:
487 .SUFFIXES: .c .lo .o .obj
488 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
489 @for dep in $?; do \
490 case '$(am__configure_deps)' in \
491 *$$dep*) \
492 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
493 && { if test -f $@; then exit 0; else break; fi; }; \
494 exit 1;; \
495 esac; \
496 done; \
497 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/queue/Makefile'; \
498 $(am__cd) $(top_srcdir) && \
499 $(AUTOMAKE) --gnu tests/examples/queue/Makefile
500 .PRECIOUS: Makefile
501 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
502 @case '$?' in \
503 *config.status*) \
504 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
505 *) \
506 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
507 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
508 esac;
509
510 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
511 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
512
513 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
514 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
515 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
516 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
517 $(am__aclocal_m4_deps):
518
519 clean-noinstPROGRAMS:
520 @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
521 echo " rm -f" $$list; \
522 rm -f $$list || exit $$?; \
523 test -n "$(EXEEXT)" || exit 0; \
524 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
525 echo " rm -f" $$list; \
526 rm -f $$list
527
528 queue$(EXEEXT): $(queue_OBJECTS) $(queue_DEPENDENCIES) $(EXTRA_queue_DEPENDENCIES)
529 @rm -f queue$(EXEEXT)
530 $(AM_V_CCLD)$(queue_LINK) $(queue_OBJECTS) $(queue_LDADD) $(LIBS)
531
532 mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535 distclean-compile:
536 -rm -f *.tab.c
537
538 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue-queue.Po@am__quote@
539
540 .c.o:
541 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
542 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
543 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
544 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
545 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
546 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
547
548 .c.obj:
549 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
550 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
551 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
552 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
553 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
554 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
555
556 .c.lo:
557 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
558 @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
559 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
560 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
561 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
562 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
563
564 queue-queue.o: queue.c
565 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -MT queue-queue.o -MD -MP -MF $(DEPDIR)/queue-queue.Tpo -c -o queue-queue.o `test -f 'queue.c' || echo '$(srcdir)/'`queue.c
566 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/queue-queue.Tpo $(DEPDIR)/queue-queue.Po
567 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='queue.c' object='queue-queue.o' libtool=no @AMDEPBACKSLASH@
568 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
569 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.o `test -f 'queue.c' || echo '$(srcdir)/'`queue.c
570
571 queue-queue.obj: queue.c
572 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -MT queue-queue.obj -MD -MP -MF $(DEPDIR)/queue-queue.Tpo -c -o queue-queue.obj `if test -f 'queue.c'; then $(CYGPATH_W) 'queue.c'; else $(CYGPATH_W) '$(srcdir)/queue.c'; fi`
573 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/queue-queue.Tpo $(DEPDIR)/queue-queue.Po
574 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='queue.c' object='queue-queue.obj' libtool=no @AMDEPBACKSLASH@
575 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
576 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.obj `if test -f 'queue.c'; then $(CYGPATH_W) 'queue.c'; else $(CYGPATH_W) '$(srcdir)/queue.c'; fi`
577
578 mostlyclean-libtool:
579 -rm -f *.lo
580
581 clean-libtool:
582 -rm -rf .libs _libs
583
584 ID: $(am__tagged_files)
585 $(am__define_uniq_tagged_files); mkid -fID $$unique
586 tags: tags-am
587 TAGS: tags
588
589 tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
590 set x; \
591 here=`pwd`; \
592 $(am__define_uniq_tagged_files); \
593 shift; \
594 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
595 test -n "$$unique" || unique=$$empty_fix; \
596 if test $$# -gt 0; then \
597 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
598 "$$@" $$unique; \
599 else \
600 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
601 $$unique; \
602 fi; \
603 fi
604 ctags: ctags-am
605
606 CTAGS: ctags
607 ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
608 $(am__define_uniq_tagged_files); \
609 test -z "$(CTAGS_ARGS)$$unique" \
610 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
611 $$unique
612
613 GTAGS:
614 here=`$(am__cd) $(top_builddir) && pwd` \
615 && $(am__cd) $(top_srcdir) \
616 && gtags -i $(GTAGS_ARGS) "$$here"
617 cscopelist: cscopelist-am
618
619 cscopelist-am: $(am__tagged_files)
620 list='$(am__tagged_files)'; \
621 case "$(srcdir)" in \
622 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
623 *) sdir=$(subdir)/$(srcdir) ;; \
624 esac; \
625 for i in $$list; do \
626 if test -f "$$i"; then \
627 echo "$(subdir)/$$i"; \
628 else \
629 echo "$$sdir/$$i"; \
630 fi; \
631 done >> $(top_builddir)/cscope.files
632
633 distclean-tags:
634 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
635
636 distdir: $(DISTFILES)
637 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
638 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
639 list='$(DISTFILES)'; \
640 dist_files=`for file in $$list; do echo $$file; done | \
641 sed -e "s|^$$srcdirstrip/||;t" \
642 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
643 case $$dist_files in \
644 */*) $(MKDIR_P) `echo "$$dist_files" | \
645 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
646 sort -u` ;; \
647 esac; \
648 for file in $$dist_files; do \
649 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
650 if test -d $$d/$$file; then \
651 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
652 if test -d "$(distdir)/$$file"; then \
653 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
654 fi; \
655 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
656 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
657 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
658 fi; \
659 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
660 else \
661 test -f "$(distdir)/$$file" \
662 || cp -p $$d/$$file "$(distdir)/$$file" \
663 || exit 1; \
664 fi; \
665 done
666 check-am: all-am
667 check: check-am
668 all-am: Makefile $(PROGRAMS)
669 installdirs:
670 install: install-am
671 install-exec: install-exec-am
672 install-data: install-data-am
673 uninstall: uninstall-am
674
675 install-am: all-am
676 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
677
678 installcheck: installcheck-am
679 install-strip:
680 if test -z '$(STRIP)'; then \
681 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
682 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
683 install; \
684 else \
685 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
686 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
687 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
688 fi
689 mostlyclean-generic:
690
691 clean-generic:
692
693 distclean-generic:
694 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
695 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
696
697 maintainer-clean-generic:
698 @echo "This command is intended for maintainers to use"
699 @echo "it deletes files that may require special tools to rebuild."
700 clean: clean-am
701
702 clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
703 mostlyclean-am
704
705 distclean: distclean-am
706 -rm -rf ./$(DEPDIR)
707 -rm -f Makefile
708 distclean-am: clean-am distclean-compile distclean-generic \
709 distclean-tags
710
711 dvi: dvi-am
712
713 dvi-am:
714
715 html: html-am
716
717 html-am:
718
719 info: info-am
720
721 info-am:
722
723 install-data-am:
724
725 install-dvi: install-dvi-am
726
727 install-dvi-am:
728
729 install-exec-am:
730
731 install-html: install-html-am
732
733 install-html-am:
734
735 install-info: install-info-am
736
737 install-info-am:
738
739 install-man:
740
741 install-pdf: install-pdf-am
742
743 install-pdf-am:
744
745 install-ps: install-ps-am
746
747 install-ps-am:
748
749 installcheck-am:
750
751 maintainer-clean: maintainer-clean-am
752 -rm -rf ./$(DEPDIR)
753 -rm -f Makefile
754 maintainer-clean-am: distclean-am maintainer-clean-generic
755
756 mostlyclean: mostlyclean-am
757
758 mostlyclean-am: mostlyclean-compile mostlyclean-generic \
759 mostlyclean-libtool
760
761 pdf: pdf-am
762
763 pdf-am:
764
765 ps: ps-am
766
767 ps-am:
768
769 uninstall-am:
770
771 .MAKE: install-am install-strip
772
773 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
774 clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
775 ctags-am distclean distclean-compile distclean-generic \
776 distclean-libtool distclean-tags distdir dvi dvi-am html \
777 html-am info info-am install install-am install-data \
778 install-data-am install-dvi install-dvi-am install-exec \
779 install-exec-am install-html install-html-am install-info \
780 install-info-am install-man install-pdf install-pdf-am \
781 install-ps install-ps-am install-strip installcheck \
782 installcheck-am installdirs maintainer-clean \
783 maintainer-clean-generic mostlyclean mostlyclean-compile \
784 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
785 tags tags-am uninstall uninstall-am
786
787
788 # Tell versions [3.59,3.63) of GNU make to not export all variables.
789 # Otherwise a system limit (for SysV at least) may be exceeded.
790 .NOEXPORT:
+0
-106
tests/examples/queue/queue.c less more
0 #include <stdlib.h>
1 #include <gst/gst.h>
2
3 /* This example uses the queue element to create a buffer between 2 elements.
4 * The scheduler automatically uses 2 threads, 1 to feed and another to consume
5 * data from the queue buffer
6 */
7
8 /* Event loop to listen to events posted on the GstBus from the pipeline. Exits
9 * on EOS or ERROR events
10 */
11 static void
12 event_loop (GstElement * pipe)
13 {
14 GstBus *bus;
15 GstMessage *message = NULL;
16 gboolean running = TRUE;
17
18 bus = gst_element_get_bus (GST_ELEMENT (pipe));
19
20 while (running) {
21 message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
22
23 g_assert (message != NULL);
24
25 switch (message->type) {
26 case GST_MESSAGE_EOS:
27 running = FALSE;
28 break;
29 case GST_MESSAGE_WARNING:{
30 GError *gerror;
31 gchar *debug;
32
33 gst_message_parse_warning (message, &gerror, &debug);
34 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
35 g_error_free (gerror);
36 g_free (debug);
37 break;
38 }
39 case GST_MESSAGE_ERROR:{
40 GError *gerror;
41 gchar *debug;
42
43 gst_message_parse_error (message, &gerror, &debug);
44 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
45 g_error_free (gerror);
46 g_free (debug);
47 running = FALSE;
48 break;
49 }
50 default:
51 break;
52 }
53 gst_message_unref (message);
54 }
55 gst_object_unref (bus);
56 }
57
58 int
59 main (int argc, char *argv[])
60 {
61 GstElement *filesrc, *audiosink, *decode, *queue;
62 GstElement *pipeline;
63
64 gst_init (&argc, &argv);
65
66 if (argc != 2) {
67 g_print ("usage: %s <filename>\n", argv[0]);
68 exit (-1);
69 }
70
71 /* create a new pipeline to hold the elements */
72 pipeline = gst_pipeline_new ("pipeline");
73 g_assert (pipeline != NULL);
74
75 /* create a disk reader */
76 filesrc = gst_element_factory_make ("filesrc", "disk_source");
77 g_assert (filesrc != NULL);
78 g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
79
80 decode = gst_element_factory_make ("mad", "decode");
81 g_assert (decode != NULL);
82
83 queue = gst_element_factory_make ("queue", "queue");
84 g_assert (queue != NULL);
85
86 /* and an audio sink */
87 audiosink = gst_element_factory_make ("alsasink", "play_audio");
88 g_assert (audiosink != NULL);
89
90 /* add objects to the main pipeline */
91 gst_bin_add_many (GST_BIN (pipeline), filesrc, decode, queue, audiosink,
92 NULL);
93
94 gst_element_link_many (filesrc, decode, queue, audiosink, NULL);
95
96 /* start playing */
97 gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
98
99 /* Listen for EOS */
100 event_loop (pipeline);
101
102 gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
103
104 exit (0);
105 }
+0
-5
tests/examples/typefind/Makefile.am less more
0 noinst_PROGRAMS = typefind
1
2 typefind_LDADD = $(GST_OBJ_LIBS)
3 typefind_CFLAGS = $(GST_OBJ_CFLAGS)
4
+0
-791
tests/examples/typefind/Makefile.in less more
0 # Makefile.in generated by automake 1.14.1 from Makefile.am.
1 # @configure_input@
2
3 # Copyright (C) 1994-2013 Free Software Foundation, Inc.
4
5 # This Makefile.in is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12 # PARTICULAR PURPOSE.
13
14 @SET_MAKE@
15
16 VPATH = @srcdir@
17 am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
18 am__make_running_with_option = \
19 case $${target_option-} in \
20 ?) ;; \
21 *) echo "am__make_running_with_option: internal error: invalid" \
22 "target option '$${target_option-}' specified" >&2; \
23 exit 1;; \
24 esac; \
25 has_opt=no; \
26 sane_makeflags=$$MAKEFLAGS; \
27 if $(am__is_gnu_make); then \
28 sane_makeflags=$$MFLAGS; \
29 else \
30 case $$MAKEFLAGS in \
31 *\\[\ \ ]*) \
32 bs=\\; \
33 sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
34 | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
35 esac; \
36 fi; \
37 skip_next=no; \
38 strip_trailopt () \
39 { \
40 flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
41 }; \
42 for flg in $$sane_makeflags; do \
43 test $$skip_next = yes && { skip_next=no; continue; }; \
44 case $$flg in \
45 *=*|--*) continue;; \
46 -*I) strip_trailopt 'I'; skip_next=yes;; \
47 -*I?*) strip_trailopt 'I';; \
48 -*O) strip_trailopt 'O'; skip_next=yes;; \
49 -*O?*) strip_trailopt 'O';; \
50 -*l) strip_trailopt 'l'; skip_next=yes;; \
51 -*l?*) strip_trailopt 'l';; \
52 -[dEDm]) skip_next=yes;; \
53 -[JT]) skip_next=yes;; \
54 esac; \
55 case $$flg in \
56 *$$target_option*) has_opt=yes; break;; \
57 esac; \
58 done; \
59 test $$has_opt = yes
60 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
61 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
62 pkgdatadir = $(datadir)/@PACKAGE@
63 pkgincludedir = $(includedir)/@PACKAGE@
64 pkglibdir = $(libdir)/@PACKAGE@
65 pkglibexecdir = $(libexecdir)/@PACKAGE@
66 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
67 install_sh_DATA = $(install_sh) -c -m 644
68 install_sh_PROGRAM = $(install_sh) -c
69 install_sh_SCRIPT = $(install_sh) -c
70 INSTALL_HEADER = $(INSTALL_DATA)
71 transform = $(program_transform_name)
72 NORMAL_INSTALL = :
73 PRE_INSTALL = :
74 POST_INSTALL = :
75 NORMAL_UNINSTALL = :
76 PRE_UNINSTALL = :
77 POST_UNINSTALL = :
78 build_triplet = @build@
79 host_triplet = @host@
80 target_triplet = @target@
81 noinst_PROGRAMS = typefind$(EXEEXT)
82 subdir = tests/examples/typefind
83 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
84 $(top_srcdir)/depcomp
85 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
86 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
87 $(top_srcdir)/common/m4/as-auto-alt.m4 \
88 $(top_srcdir)/common/m4/as-compiler-flag.m4 \
89 $(top_srcdir)/common/m4/as-docbook.m4 \
90 $(top_srcdir)/common/m4/as-libtool.m4 \
91 $(top_srcdir)/common/m4/as-version.m4 \
92 $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
93 $(top_srcdir)/common/m4/ax_pthread.m4 \
94 $(top_srcdir)/common/m4/gst-arch.m4 \
95 $(top_srcdir)/common/m4/gst-args.m4 \
96 $(top_srcdir)/common/m4/gst-check.m4 \
97 $(top_srcdir)/common/m4/gst-doc.m4 \
98 $(top_srcdir)/common/m4/gst-error.m4 \
99 $(top_srcdir)/common/m4/gst-feature.m4 \
100 $(top_srcdir)/common/m4/gst-function.m4 \
101 $(top_srcdir)/common/m4/gst-gettext.m4 \
102 $(top_srcdir)/common/m4/gst-glib2.m4 \
103 $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
104 $(top_srcdir)/common/m4/gst-parser.m4 \
105 $(top_srcdir)/common/m4/gst-platform.m4 \
106 $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
107 $(top_srcdir)/common/m4/gst-plugindir.m4 \
108 $(top_srcdir)/common/m4/gst.m4 \
109 $(top_srcdir)/common/m4/gtk-doc.m4 \
110 $(top_srcdir)/common/m4/introspection.m4 \
111 $(top_srcdir)/common/m4/pkg.m4 \
112 $(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
113 $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
114 $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lib-ld.m4 \
115 $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
116 $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/longlong.m4 \
117 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
118 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
119 $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
120 $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/stdint_h.m4 \
121 $(top_srcdir)/configure.ac
122 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
123 $(ACLOCAL_M4)
124 mkinstalldirs = $(install_sh) -d
125 CONFIG_HEADER = $(top_builddir)/config.h
126 CONFIG_CLEAN_FILES =
127 CONFIG_CLEAN_VPATH_FILES =
128 PROGRAMS = $(noinst_PROGRAMS)
129 typefind_SOURCES = typefind.c
130 typefind_OBJECTS = typefind-typefind.$(OBJEXT)
131 am__DEPENDENCIES_1 =
132 typefind_DEPENDENCIES = $(am__DEPENDENCIES_1)
133 AM_V_lt = $(am__v_lt_@AM_V@)
134 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
135 am__v_lt_0 = --silent
136 am__v_lt_1 =
137 typefind_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
138 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(typefind_CFLAGS) \
139 $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
140 AM_V_P = $(am__v_P_@AM_V@)
141 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
142 am__v_P_0 = false
143 am__v_P_1 = :
144 AM_V_GEN = $(am__v_GEN_@AM_V@)
145 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
146 am__v_GEN_0 = @echo " GEN " $@;
147 am__v_GEN_1 =
148 AM_V_at = $(am__v_at_@AM_V@)
149 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
150 am__v_at_0 = @
151 am__v_at_1 =
152 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
153 depcomp = $(SHELL) $(top_srcdir)/depcomp
154 am__depfiles_maybe = depfiles
155 am__mv = mv -f
156 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
157 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
158 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
159 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
160 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
161 $(AM_CFLAGS) $(CFLAGS)
162 AM_V_CC = $(am__v_CC_@AM_V@)
163 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
164 am__v_CC_0 = @echo " CC " $@;
165 am__v_CC_1 =
166 CCLD = $(CC)
167 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
168 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
169 $(AM_LDFLAGS) $(LDFLAGS) -o $@
170 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
171 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
172 am__v_CCLD_0 = @echo " CCLD " $@;
173 am__v_CCLD_1 =
174 SOURCES = typefind.c
175 DIST_SOURCES = typefind.c
176 am__can_run_installinfo = \
177 case $$AM_UPDATE_INFO_DIR in \
178 n|no|NO) false;; \
179 *) (install-info --version) >/dev/null 2>&1;; \
180 esac
181 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
182 # Read a list of newline-separated strings from the standard input,
183 # and print each of them once, without duplicates. Input order is
184 # *not* preserved.
185 am__uniquify_input = $(AWK) '\
186 BEGIN { nonempty = 0; } \
187 { items[$$0] = 1; nonempty = 1; } \
188 END { if (nonempty) { for (i in items) print i; }; } \
189 '
190 # Make sure the list of sources is unique. This is necessary because,
191 # e.g., the same source file might be shared among _SOURCES variables
192 # for different programs/libraries.
193 am__define_uniq_tagged_files = \
194 list='$(am__tagged_files)'; \
195 unique=`for i in $$list; do \
196 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
197 done | $(am__uniquify_input)`
198 ETAGS = etags
199 CTAGS = ctags
200 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
201 ACLOCAL = @ACLOCAL@
202 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
203 AMTAR = @AMTAR@
204 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
205 AR = @AR@
206 AS = @AS@
207 AUTOCONF = @AUTOCONF@
208 AUTOHEADER = @AUTOHEADER@
209 AUTOMAKE = @AUTOMAKE@
210 AWK = @AWK@
211 BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
212 BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
213 BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
214 BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
215 BISON_PATH = @BISON_PATH@
216 CAT_ENTRY_END = @CAT_ENTRY_END@
217 CAT_ENTRY_START = @CAT_ENTRY_START@
218 CC = @CC@
219 CCAS = @CCAS@
220 CCASDEPMODE = @CCASDEPMODE@
221 CCASFLAGS = @CCASFLAGS@
222 CCDEPMODE = @CCDEPMODE@
223 CFLAGS = @CFLAGS@
224 CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
225 CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
226 CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
227 CHECK_VERSION = @CHECK_VERSION@
228 CPP = @CPP@
229 CPPFLAGS = @CPPFLAGS@
230 CXX = @CXX@
231 CXXCPP = @CXXCPP@
232 CXXDEPMODE = @CXXDEPMODE@
233 CXXFLAGS = @CXXFLAGS@
234 CYGPATH_W = @CYGPATH_W@
235 DATADIR = @DATADIR@
236 DEFS = @DEFS@
237 DEPDIR = @DEPDIR@
238 DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
239 DLLTOOL = @DLLTOOL@
240 DOCBOOK_ROOT = @DOCBOOK_ROOT@
241 DSYMUTIL = @DSYMUTIL@
242 DUMPBIN = @DUMPBIN@
243 ECHO_C = @ECHO_C@
244 ECHO_N = @ECHO_N@
245 ECHO_T = @ECHO_T@
246 EGREP = @EGREP@
247 ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
248 ERROR_CFLAGS = @ERROR_CFLAGS@
249 EXEEXT = @EXEEXT@
250 FFLAGS = @FFLAGS@
251 FGREP = @FGREP@
252 FLEX_PATH = @FLEX_PATH@
253 GCOV = @GCOV@
254 GCOV_CFLAGS = @GCOV_CFLAGS@
255 GCOV_LIBS = @GCOV_LIBS@
256 GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
257 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
258 GIO_CFLAGS = @GIO_CFLAGS@
259 GIO_LDFLAGS = @GIO_LDFLAGS@
260 GIO_LIBS = @GIO_LIBS@
261 GLIB_CFLAGS = @GLIB_CFLAGS@
262 GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
263 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
264 GLIB_LIBS = @GLIB_LIBS@
265 GLIB_MKENUMS = @GLIB_MKENUMS@
266 GLIB_PREFIX = @GLIB_PREFIX@
267 GLIB_REQ = @GLIB_REQ@
268 GMP_LIBS = @GMP_LIBS@
269 GMSGFMT = @GMSGFMT@
270 GMSGFMT_015 = @GMSGFMT_015@
271 GREP = @GREP@
272 GSL_LIBS = @GSL_LIBS@
273 GST_AGE = @GST_AGE@
274 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
275 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
276 GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
277 GST_ALL_LIBS = @GST_ALL_LIBS@
278 GST_API_VERSION = @GST_API_VERSION@
279 GST_CURRENT = @GST_CURRENT@
280 GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
281 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
282 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
283 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
284 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
285 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
286 GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
287 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
288 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
289 GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
290 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
291 GST_LIBVERSION = @GST_LIBVERSION@
292 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
293 GST_LICENSE = @GST_LICENSE@
294 GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
295 GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
296 GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
297 GST_OBJ_LIBS = @GST_OBJ_LIBS@
298 GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
299 GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
300 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
301 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
302 GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
303 GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
304 GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
305 GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
306 GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
307 GST_REVISION = @GST_REVISION@
308 GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
309 GST_VERSION_MICRO = @GST_VERSION_MICRO@
310 GST_VERSION_MINOR = @GST_VERSION_MINOR@
311 GST_VERSION_NANO = @GST_VERSION_NANO@
312 GTKDOC_CHECK = @GTKDOC_CHECK@
313 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
314 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
315 GTKDOC_MKPDF = @GTKDOC_MKPDF@
316 GTKDOC_REBASE = @GTKDOC_REBASE@
317 HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
318 HAVE_DVIPS = @HAVE_DVIPS@
319 HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
320 HAVE_FORK = @HAVE_FORK@
321 HAVE_GMP = @HAVE_GMP@
322 HAVE_GSL = @HAVE_GSL@
323 HAVE_JADETEX = @HAVE_JADETEX@
324 HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
325 HAVE_PNMTOPS = @HAVE_PNMTOPS@
326 HAVE_PS2PDF = @HAVE_PS2PDF@
327 HAVE_XMLLINT = @HAVE_XMLLINT@
328 HAVE_XSLTPROC = @HAVE_XSLTPROC@
329 HOST_CPU = @HOST_CPU@
330 HTML_DIR = @HTML_DIR@
331 INSTALL = @INSTALL@
332 INSTALL_DATA = @INSTALL_DATA@
333 INSTALL_PROGRAM = @INSTALL_PROGRAM@
334 INSTALL_SCRIPT = @INSTALL_SCRIPT@
335 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
336 INTLLIBS = @INTLLIBS@
337 INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
338 INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
339 INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
340 INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
341 INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
342 INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
343 INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
344 INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
345 INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
346 LD = @LD@
347 LDFLAGS = @LDFLAGS@
348 LIBDIR = @LIBDIR@
349 LIBICONV = @LIBICONV@
350 LIBINTL = @LIBINTL@
351 LIBM = @LIBM@
352 LIBOBJS = @LIBOBJS@
353 LIBS = @LIBS@
354 LIBTOOL = @LIBTOOL@
355 LIPO = @LIPO@
356 LN_S = @LN_S@
357 LOCALEDIR = @LOCALEDIR@
358 LTLIBICONV = @LTLIBICONV@
359 LTLIBINTL = @LTLIBINTL@
360 LTLIBOBJS = @LTLIBOBJS@
361 MAINT = @MAINT@
362 MAKEINFO = @MAKEINFO@
363 MANIFEST_TOOL = @MANIFEST_TOOL@
364 MKDIR_P = @MKDIR_P@
365 MSGFMT = @MSGFMT@
366 MSGFMT_015 = @MSGFMT_015@
367 MSGMERGE = @MSGMERGE@
368 NM = @NM@
369 NMEDIT = @NMEDIT@
370 OBJDUMP = @OBJDUMP@
371 OBJEXT = @OBJEXT@
372 OTOOL = @OTOOL@
373 OTOOL64 = @OTOOL64@
374 PACKAGE = @PACKAGE@
375 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
376 PACKAGE_NAME = @PACKAGE_NAME@
377 PACKAGE_STRING = @PACKAGE_STRING@
378 PACKAGE_TARNAME = @PACKAGE_TARNAME@
379 PACKAGE_URL = @PACKAGE_URL@
380 PACKAGE_VERSION = @PACKAGE_VERSION@
381 PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
382 PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
383 PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
384 PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
385 PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
386 PATH_SEPARATOR = @PATH_SEPARATOR@
387 PERL_PATH = @PERL_PATH@
388 PKG_CONFIG = @PKG_CONFIG@
389 PLUGINDIR = @PLUGINDIR@
390 POSUB = @POSUB@
391 PRINTF_CFLAGS = @PRINTF_CFLAGS@
392 PROFILE_CFLAGS = @PROFILE_CFLAGS@
393 PTHREAD_CC = @PTHREAD_CC@
394 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
395 PTHREAD_LIBS = @PTHREAD_LIBS@
396 PYTHON = @PYTHON@
397 PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
398 PYTHON_PLATFORM = @PYTHON_PLATFORM@
399 PYTHON_PREFIX = @PYTHON_PREFIX@
400 PYTHON_VERSION = @PYTHON_VERSION@
401 RANLIB = @RANLIB@
402 SED = @SED@
403 SET_MAKE = @SET_MAKE@
404 SHELL = @SHELL@
405 STRIP = @STRIP@
406 USE_NLS = @USE_NLS@
407 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
408 VALGRIND_LIBS = @VALGRIND_LIBS@
409 VALGRIND_PATH = @VALGRIND_PATH@
410 VERSION = @VERSION@
411 WARNING_CFLAGS = @WARNING_CFLAGS@
412 WIN32_LIBS = @WIN32_LIBS@
413 XGETTEXT = @XGETTEXT@
414 XGETTEXT_015 = @XGETTEXT_015@
415 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
416 XML_CATALOG = @XML_CATALOG@
417 XSLTPROC = @XSLTPROC@
418 XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
419 abs_builddir = @abs_builddir@
420 abs_srcdir = @abs_srcdir@
421 abs_top_builddir = @abs_top_builddir@
422 abs_top_srcdir = @abs_top_srcdir@
423 ac_ct_AR = @ac_ct_AR@
424 ac_ct_CC = @ac_ct_CC@
425 ac_ct_CXX = @ac_ct_CXX@
426 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
427 am__include = @am__include@
428 am__leading_dot = @am__leading_dot@
429 am__quote = @am__quote@
430 am__tar = @am__tar@
431 am__untar = @am__untar@
432 ax_pthread_config = @ax_pthread_config@
433 bindir = @bindir@
434 build = @build@
435 build_alias = @build_alias@
436 build_cpu = @build_cpu@
437 build_os = @build_os@
438 build_vendor = @build_vendor@
439 builddir = @builddir@
440 datadir = @datadir@
441 datarootdir = @datarootdir@
442 docdir = @docdir@
443 dvidir = @dvidir@
444 exec_prefix = @exec_prefix@
445 host = @host@
446 host_alias = @host_alias@
447 host_cpu = @host_cpu@
448 host_os = @host_os@
449 host_vendor = @host_vendor@
450 htmldir = @htmldir@
451 includedir = @includedir@
452 infodir = @infodir@
453 install_sh = @install_sh@
454 libdir = @libdir@
455 libexecdir = @libexecdir@
456 localedir = @localedir@
457 localstatedir = @localstatedir@
458 mandir = @mandir@
459 mkdir_p = @mkdir_p@
460 oldincludedir = @oldincludedir@
461 pdfdir = @pdfdir@
462 pkgpyexecdir = @pkgpyexecdir@
463 pkgpythondir = @pkgpythondir@
464 plugindir = @plugindir@
465 prefix = @prefix@
466 program_transform_name = @program_transform_name@
467 psdir = @psdir@
468 pyexecdir = @pyexecdir@
469 pythondir = @pythondir@
470 sbindir = @sbindir@
471 sharedstatedir = @sharedstatedir@
472 srcdir = @srcdir@
473 sysconfdir = @sysconfdir@
474 target = @target@
475 target_alias = @target_alias@
476 target_cpu = @target_cpu@
477 target_os = @target_os@
478 target_vendor = @target_vendor@
479 top_build_prefix = @top_build_prefix@
480 top_builddir = @top_builddir@
481 top_srcdir = @top_srcdir@
482 typefind_LDADD = $(GST_OBJ_LIBS)
483 typefind_CFLAGS = $(GST_OBJ_CFLAGS)
484 all: all-am
485
486 .SUFFIXES:
487 .SUFFIXES: .c .lo .o .obj
488 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
489 @for dep in $?; do \
490 case '$(am__configure_deps)' in \
491 *$$dep*) \
492 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
493 && { if test -f $@; then exit 0; else break; fi; }; \
494 exit 1;; \
495 esac; \
496 done; \
497 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/typefind/Makefile'; \
498 $(am__cd) $(top_srcdir) && \
499 $(AUTOMAKE) --gnu tests/examples/typefind/Makefile
500 .PRECIOUS: Makefile
501 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
502 @case '$?' in \
503 *config.status*) \
504 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
505 *) \
506 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
507 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
508 esac;
509
510 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
511 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
512
513 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
514 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
515 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
516 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
517 $(am__aclocal_m4_deps):
518
519 clean-noinstPROGRAMS:
520 @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
521 echo " rm -f" $$list; \
522 rm -f $$list || exit $$?; \
523 test -n "$(EXEEXT)" || exit 0; \
524 list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
525 echo " rm -f" $$list; \
526 rm -f $$list
527
528 typefind$(EXEEXT): $(typefind_OBJECTS) $(typefind_DEPENDENCIES) $(EXTRA_typefind_DEPENDENCIES)
529 @rm -f typefind$(EXEEXT)
530 $(AM_V_CCLD)$(typefind_LINK) $(typefind_OBJECTS) $(typefind_LDADD) $(LIBS)
531
532 mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535 distclean-compile:
536 -rm -f *.tab.c
537
538 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/typefind-typefind.Po@am__quote@
539
540 .c.o:
541 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
542 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
543 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
544 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
545 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
546 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
547
548 .c.obj:
549 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
550 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
551 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
552 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
553 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
554 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
555
556 .c.lo:
557 @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
558 @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
559 @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
560 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
561 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
562 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
563
564 typefind-typefind.o: typefind.c
565 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -MT typefind-typefind.o -MD -MP -MF $(DEPDIR)/typefind-typefind.Tpo -c -o typefind-typefind.o `test -f 'typefind.c' || echo '$(srcdir)/'`typefind.c
566 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/typefind-typefind.Tpo $(DEPDIR)/typefind-typefind.Po
567 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='typefind.c' object='typefind-typefind.o' libtool=no @AMDEPBACKSLASH@
568 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
569 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.o `test -f 'typefind.c' || echo '$(srcdir)/'`typefind.c
570
571 typefind-typefind.obj: typefind.c
572 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -MT typefind-typefind.obj -MD -MP -MF $(DEPDIR)/typefind-typefind.Tpo -c -o typefind-typefind.obj `if test -f 'typefind.c'; then $(CYGPATH_W) 'typefind.c'; else $(CYGPATH_W) '$(srcdir)/typefind.c'; fi`
573 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/typefind-typefind.Tpo $(DEPDIR)/typefind-typefind.Po
574 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='typefind.c' object='typefind-typefind.obj' libtool=no @AMDEPBACKSLASH@
575 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
576 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.obj `if test -f 'typefind.c'; then $(CYGPATH_W) 'typefind.c'; else $(CYGPATH_W) '$(srcdir)/typefind.c'; fi`
577
578 mostlyclean-libtool:
579 -rm -f *.lo
580
581 clean-libtool:
582 -rm -rf .libs _libs
583
584 ID: $(am__tagged_files)
585 $(am__define_uniq_tagged_files); mkid -fID $$unique
586 tags: tags-am
587 TAGS: tags
588
589 tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
590 set x; \
591 here=`pwd`; \
592 $(am__define_uniq_tagged_files); \
593 shift; \
594 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
595 test -n "$$unique" || unique=$$empty_fix; \
596 if test $$# -gt 0; then \
597 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
598 "$$@" $$unique; \
599 else \
600 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
601 $$unique; \
602 fi; \
603 fi
604 ctags: ctags-am
605
606 CTAGS: ctags
607 ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
608 $(am__define_uniq_tagged_files); \
609 test -z "$(CTAGS_ARGS)$$unique" \
610 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
611 $$unique
612
613 GTAGS:
614 here=`$(am__cd) $(top_builddir) && pwd` \
615 && $(am__cd) $(top_srcdir) \
616 && gtags -i $(GTAGS_ARGS) "$$here"
617 cscopelist: cscopelist-am
618
619 cscopelist-am: $(am__tagged_files)
620 list='$(am__tagged_files)'; \
621 case "$(srcdir)" in \
622 [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
623 *) sdir=$(subdir)/$(srcdir) ;; \
624 esac; \
625 for i in $$list; do \
626 if test -f "$$i"; then \
627 echo "$(subdir)/$$i"; \
628 else \
629 echo "$$sdir/$$i"; \
630 fi; \
631 done >> $(top_builddir)/cscope.files
632
633 distclean-tags:
634 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
635
636 distdir: $(DISTFILES)
637 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
638 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
639 list='$(DISTFILES)'; \
640 dist_files=`for file in $$list; do echo $$file; done | \
641 sed -e "s|^$$srcdirstrip/||;t" \
642 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
643 case $$dist_files in \
644 */*) $(MKDIR_P) `echo "$$dist_files" | \
645 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
646 sort -u` ;; \
647 esac; \
648 for file in $$dist_files; do \
649 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
650 if test -d $$d/$$file; then \
651 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
652 if test -d "$(distdir)/$$file"; then \
653 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
654 fi; \
655 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
656 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
657 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
658 fi; \
659 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
660 else \
661 test -f "$(distdir)/$$file" \
662 || cp -p $$d/$$file "$(distdir)/$$file" \
663 || exit 1; \
664 fi; \
665 done
666 check-am: all-am
667 check: check-am
668 all-am: Makefile $(PROGRAMS)
669 installdirs:
670 install: install-am
671 install-exec: install-exec-am
672 install-data: install-data-am
673 uninstall: uninstall-am
674
675 install-am: all-am
676 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
677
678 installcheck: installcheck-am
679 install-strip:
680 if test -z '$(STRIP)'; then \
681 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
682 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
683 install; \
684 else \
685 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
686 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
687 "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
688 fi
689 mostlyclean-generic:
690
691 clean-generic:
692
693 distclean-generic:
694 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
695 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
696
697 maintainer-clean-generic:
698 @echo "This command is intended for maintainers to use"
699 @echo "it deletes files that may require special tools to rebuild."
700 clean: clean-am
701
702 clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
703 mostlyclean-am
704
705 distclean: distclean-am
706 -rm -rf ./$(DEPDIR)
707 -rm -f Makefile
708 distclean-am: clean-am distclean-compile distclean-generic \
709 distclean-tags
710
711 dvi: dvi-am
712
713 dvi-am:
714
715 html: html-am
716
717 html-am:
718
719 info: info-am
720
721 info-am:
722
723 install-data-am:
724
725 install-dvi: install-dvi-am
726
727 install-dvi-am:
728
729 install-exec-am:
730
731 install-html: install-html-am
732
733 install-html-am:
734
735 install-info: install-info-am
736
737 install-info-am:
738
739 install-man:
740
741 install-pdf: install-pdf-am
742
743 install-pdf-am:
744
745 install-ps: install-ps-am
746
747 install-ps-am:
748
749 installcheck-am:
750
751 maintainer-clean: maintainer-clean-am
752 -rm -rf ./$(DEPDIR)
753 -rm -f Makefile
754 maintainer-clean-am: distclean-am maintainer-clean-generic
755
756 mostlyclean: mostlyclean-am
757
758 mostlyclean-am: mostlyclean-compile mostlyclean-generic \
759 mostlyclean-libtool
760
761 pdf: pdf-am
762
763 pdf-am:
764
765 ps: ps-am
766
767 ps-am:
768
769 uninstall-am:
770
771 .MAKE: install-am install-strip
772
773 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
774 clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
775 ctags-am distclean distclean-compile distclean-generic \
776 distclean-libtool distclean-tags distdir dvi dvi-am html \
777 html-am info info-am install install-am install-data \
778 install-data-am install-dvi install-dvi-am install-exec \
779 install-exec-am install-html install-html-am install-info \
780 install-info-am install-man install-pdf install-pdf-am \
781 install-ps install-ps-am install-strip installcheck \
782 installcheck-am installdirs maintainer-clean \
783 maintainer-clean-generic mostlyclean mostlyclean-compile \
784 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
785 tags tags-am uninstall uninstall-am
786
787
788 # Tell versions [3.59,3.63) of GNU make to not export all variables.
789 # Otherwise a system limit (for SysV at least) may be exceeded.
790 .NOEXPORT:
+0
-135
tests/examples/typefind/typefind.c less more
0 /* GStreamer typefind element example
1 * Copyright (C) <2005> Stefan Kost
2 * Copyright (C) <2006> Tim-Philipp Müller
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 */
19
20 #include <gst/gst.h>
21
22 #include <stdlib.h>
23
24 static void
25 type_found (GstElement * typefind, guint probability, const GstCaps * caps,
26 gpointer user_data)
27 {
28 gchar *xml, *caps_str;
29
30 caps_str = gst_caps_to_string (caps);
31 xml = g_markup_printf_escaped ("<?xml version=\"1.0\"?>\n<Capabilities>\n"
32 " <Caps1>%s</Caps1>\n</Capabilities>", caps_str);
33 g_free (caps_str);
34
35 g_print ("%s\n", xml);
36 g_free (xml);
37 }
38
39 static void
40 event_loop (GstElement * pipe)
41 {
42 GstBus *bus;
43 GstMessage *message = NULL;
44 gboolean running = TRUE;
45
46 bus = gst_element_get_bus (GST_ELEMENT (pipe));
47
48 while (running) {
49 message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
50
51 g_assert (message != NULL);
52
53 switch (message->type) {
54 case GST_MESSAGE_EOS:
55 running = FALSE;
56 break;
57 case GST_MESSAGE_WARNING:{
58 GError *gerror;
59 gchar *debug;
60
61 gst_message_parse_warning (message, &gerror, &debug);
62 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
63 g_error_free (gerror);
64 g_free (debug);
65 break;
66 }
67 case GST_MESSAGE_ERROR:{
68 GError *gerror;
69 gchar *debug;
70
71 gst_message_parse_error (message, &gerror, &debug);
72 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
73 g_error_free (gerror);
74 g_free (debug);
75 running = FALSE;
76 break;
77 }
78 default:
79 break;
80 }
81 gst_message_unref (message);
82 }
83 gst_object_unref (bus);
84 }
85
86 int
87 main (int argc, char *argv[])
88 {
89 GstElement *pipeline, *filesrc, *typefind, *sink;
90
91 gst_init (&argc, &argv);
92
93 if (argc != 2) {
94 g_print ("usage: %s <filename>\n", argv[0]);
95 exit (-1);
96 }
97
98 /* create a new pipeline to hold the elements */
99 pipeline = gst_pipeline_new ("pipeline");
100 g_assert (pipeline != NULL);
101
102 /* create a file reader */
103 filesrc = gst_element_factory_make ("filesrc", "file_source");
104 g_assert (filesrc != NULL);
105 g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
106
107 typefind = gst_element_factory_make ("typefind", "typefind");
108 g_assert (typefind != NULL);
109
110 sink = gst_element_factory_make ("fakesink", "sink");
111 g_assert (sink != NULL);
112
113 /* add objects to the main pipeline */
114 gst_bin_add (GST_BIN (pipeline), filesrc);
115 gst_bin_add (GST_BIN (pipeline), typefind);
116 gst_bin_add (GST_BIN (pipeline), sink);
117
118 g_signal_connect (G_OBJECT (typefind), "have-type",
119 G_CALLBACK (type_found), NULL);
120
121 gst_element_link_many (filesrc, typefind, sink, NULL);
122
123 /* start playing */
124 gst_element_set_state (pipeline, GST_STATE_PLAYING);
125
126 /* Run event loop listening for bus messages until EOS or ERROR */
127 event_loop (pipeline);
128
129 /* stop the bin */
130 gst_element_set_state (pipeline, GST_STATE_NULL);
131 gst_object_unref (pipeline);
132
133 exit (0);
134 }
1717 gst_launch_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
1818 gst_launch_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
1919 endif
20
21 Android.mk: Makefile.am
22 androgenizer -:PROJECT gstreamer \
23 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
24 -:EXECUTABLE gst-inspect-@GST_API_VERSION@ -:TAGS eng debug \
25 -:SOURCES $(gst_inspect_@GST_API_VERSION@_SOURCES) \
26 -:CFLAGS $(DEFS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) \
27 -:LDFLAGS $(gst_inspect_@GST_API_VERSION@_LDADD) \
28 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
29 -:EXECUTABLE gst-launch-@GST_API_VERSION@ -:TAGS eng debug \
30 -:SOURCES $(gst_launch_@GST_API_VERSION@_SOURCES) \
31 -:CFLAGS $(DEFS) $(gst_launch_@GST_API_VERSION@_CFLAGS) \
32 -:LDFLAGS $(gst_launch_@GST_API_VERSION@_LDADD) \
33 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
34 > $@
3520
3621 manpages = \
3722 gst-inspect-@GST_API_VERSION@.1 \
998998 uninstall-binPROGRAMS uninstall-man uninstall-man1
999999
10001000
1001 Android.mk: Makefile.am
1002 androgenizer -:PROJECT gstreamer \
1003 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
1004 -:EXECUTABLE gst-inspect-@GST_API_VERSION@ -:TAGS eng debug \
1005 -:SOURCES $(gst_inspect_@GST_API_VERSION@_SOURCES) \
1006 -:CFLAGS $(DEFS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) \
1007 -:LDFLAGS $(gst_inspect_@GST_API_VERSION@_LDADD) \
1008 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
1009 -:EXECUTABLE gst-launch-@GST_API_VERSION@ -:TAGS eng debug \
1010 -:SOURCES $(gst_launch_@GST_API_VERSION@_SOURCES) \
1011 -:CFLAGS $(DEFS) $(gst_launch_@GST_API_VERSION@_CFLAGS) \
1012 -:LDFLAGS $(gst_launch_@GST_API_VERSION@_LDADD) \
1013 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
1014 > $@
1015
10161001 %-@GST_API_VERSION@.1: %.1.in
10171002 $(AM_V_GEN)sed \
10181003 -e s,gst-inspect,gst-inspect-@GST_API_VERSION@,g \
102102 gst_base_transform_set_prefer_passthrough
103103 gst_base_transform_set_qos_enabled
104104 gst_base_transform_update_qos
105 gst_base_transform_update_src_caps
105106 gst_bit_reader_free
106107 gst_bit_reader_get_bits_uint16
107108 gst_bit_reader_get_bits_uint32
111111 gst_bin_sync_children_states
112112 gst_bitmask_get_type
113113 gst_buffer_add_meta
114 gst_buffer_add_protection_meta
114115 gst_buffer_append
115116 gst_buffer_append_memory
116117 gst_buffer_append_region
558559 gst_event_new_gap
559560 gst_event_new_latency
560561 gst_event_new_navigation
562 gst_event_new_protection
561563 gst_event_new_qos
562564 gst_event_new_reconfigure
563565 gst_event_new_seek
575577 gst_event_parse_gap
576578 gst_event_parse_group_id
577579 gst_event_parse_latency
580 gst_event_parse_protection
578581 gst_event_parse_qos
579582 gst_event_parse_seek
580583 gst_event_parse_segment
911914 gst_pipeline_get_bus
912915 gst_pipeline_get_clock
913916 gst_pipeline_get_delay
917 gst_pipeline_get_pipeline_clock
914918 gst_pipeline_get_type
915919 gst_pipeline_new
916920 gst_pipeline_set_auto_flush_bus
986990 gst_preset_set_app_dir
987991 gst_preset_set_meta
988992 gst_progress_type_get_type
993 gst_protection_meta_api_get_type
994 gst_protection_meta_get_info
995 gst_protection_select_system
989996 gst_proxy_pad_chain_default
990997 gst_proxy_pad_chain_list_default
991998 gst_proxy_pad_get_internal
11211128 gst_segment_free
11221129 gst_segment_get_type
11231130 gst_segment_init
1131 gst_segment_is_equal
11241132 gst_segment_new
11251133 gst_segment_offset_running_time
11261134 gst_segment_set_running_time
11271135 gst_segment_to_position
11281136 gst_segment_to_running_time
1137 gst_segment_to_running_time_full
11291138 gst_segment_to_stream_time
11301139 gst_segtrap_is_enabled
11311140 gst_segtrap_set_enabled