platform/upstream/gstreamer.git
11 years agopad: Make sure pending, older sticky events are sent downstream in dynamic linking...
Sebastian Dröge [Thu, 9 May 2013 15:21:13 +0000 (17:21 +0200)]
pad: Make sure pending, older sticky events are sent downstream in dynamic linking scenarios

If a pad block was triggered from sending a sticky event downstream, it
could happen that the pad block is relinking pads, which then requires
to resend previous sticky events.

11 years agotests: Fix event order warnings and dataflow before stream-start/segment event
Sebastian Dröge [Thu, 9 May 2013 11:32:07 +0000 (13:32 +0200)]
tests: Fix event order warnings and dataflow before stream-start/segment event

11 years agobasetransform: Properly port unit test to actually use caps and check results
Sebastian Dröge [Thu, 9 May 2013 11:31:38 +0000 (13:31 +0200)]
basetransform: Properly port unit test to actually use caps and check results

11 years agoqueue: Store sticky events on the srcpad if we're dropping them because of leaking
Sebastian Dröge [Thu, 9 May 2013 10:50:20 +0000 (12:50 +0200)]
queue: Store sticky events on the srcpad if we're dropping them because of leaking

11 years agooutputselector: Always forward sticky events to all pads
Sebastian Dröge [Thu, 9 May 2013 10:27:12 +0000 (12:27 +0200)]
outputselector: Always forward sticky events to all pads

11 years agoinputselector: Forward all sticky events, including stream-start
Sebastian Dröge [Thu, 9 May 2013 10:15:48 +0000 (12:15 +0200)]
inputselector: Forward all sticky events, including stream-start

11 years agopad: Warn if data flow happens before stream-start or segment event
Sebastian Dröge [Thu, 9 May 2013 09:05:50 +0000 (11:05 +0200)]
pad: Warn if data flow happens before stream-start or segment event

11 years agopad: Only let gst_pad_sticky_events_foreach() iterate over existing events
Sebastian Dröge [Thu, 9 May 2013 08:59:41 +0000 (10:59 +0200)]
pad: Only let gst_pad_sticky_events_foreach() iterate over existing events

11 years agopad: If we push sticky events because of another sticky event, only push those that...
Sebastian Dröge [Thu, 9 May 2013 08:29:11 +0000 (10:29 +0200)]
pad: If we push sticky events because of another sticky event, only push those that come before the new event

https://bugzilla.gnome.org/show_bug.cgi?id=699937

11 years agocapsfilter: Add more debug output and forward caps events immediately too
Sebastian Dröge [Thu, 9 May 2013 07:50:41 +0000 (09:50 +0200)]
capsfilter: Add more debug output and forward caps events immediately too

11 years agopad: No sticky events must arrive after EOS
Sebastian Dröge [Thu, 9 May 2013 07:42:33 +0000 (09:42 +0200)]
pad: No sticky events must arrive after EOS

11 years agocapsfilter: Fix typo in last commit
Sebastian Dröge [Thu, 9 May 2013 07:38:35 +0000 (09:38 +0200)]
capsfilter: Fix typo in last commit

11 years agopad: Improve warning message naming events type name
Nicolas Dufresne [Wed, 8 May 2013 23:44:09 +0000 (19:44 -0400)]
pad: Improve warning message naming events type name

With this patch, message should look like ¨Sticky event misordering, got
'caps' before 'stream-start'¨ making it faster to debug.

https://bugzilla.gnome.org/show_bug.cgi?id=688188

11 years agopad: Only inforce STREAM_START, CAPS and SEGMENT ordering
Nicolas Dufresne [Wed, 8 May 2013 22:19:48 +0000 (18:19 -0400)]
pad: Only inforce STREAM_START, CAPS and SEGMENT ordering

Previous patch was inforcing a complete ordering of the sticky events, while
in fact, only STREAM_START, CAPS and SEGMENT events need proper ordering.

See: https://bugzilla.gnome.org/show_bug.cgi?id=688188

11 years agocapsfilter: Send all events that should happen after CAPS after the CAPS event
Sebastian Dröge [Thu, 9 May 2013 07:32:49 +0000 (09:32 +0200)]
capsfilter: Send all events that should happen after CAPS after the CAPS event

11 years agocapsfilter: Send caps before segment
Nicolas Dufresne [Thu, 9 May 2013 01:45:08 +0000 (21:45 -0400)]
capsfilter: Send caps before segment

In the case the source has no caps, caps must be sent before segment. This
fixes few unit tests that where failing due to the new misordering warning.

https://bugzilla.gnome.org/show_bug.cgi?id=699968

11 years agopad: Detect, fix and warn when sticky events are in wrong order
Nicolas Dufresne [Wed, 8 May 2013 01:53:37 +0000 (21:53 -0400)]
pad: Detect, fix and warn when sticky events are in wrong order

We can prevent buggy element from causing other elements to fail or crash
by sorting sticky event at insertion. In this case, we also warn as this
is not supposed to happen.

See: https://bugzilla.gnome.org/show_bug.cgi?id=688188

11 years agotests: add some basic checks for gst_buffer_fill()
Tim-Philipp Müller [Wed, 8 May 2013 09:26:15 +0000 (10:26 +0100)]
tests: add some basic checks for gst_buffer_fill()

11 years agobuffer: allow calling _fill() with a NULL data pointer if size is 0 bytes
Tim-Philipp Müller [Wed, 8 May 2013 09:25:36 +0000 (10:25 +0100)]
buffer: allow calling _fill() with a NULL data pointer if size is 0 bytes

11 years agobasesrc: Add FIXME comment for unused assignment results
Sebastian Dröge [Tue, 7 May 2013 14:46:32 +0000 (16:46 +0200)]
basesrc: Add FIXME comment for unused assignment results

11 years agodocs: fix typo in metadata section in app dev manual
Tim-Philipp Müller [Tue, 7 May 2013 14:18:06 +0000 (15:18 +0100)]
docs: fix typo in metadata section in app dev manual

There's no g_tag_list_get_xyz().

11 years agocontroller: Fix the function signature and a minor typo fix
Sreerenj Balachandran [Tue, 7 May 2013 11:47:09 +0000 (14:47 +0300)]
controller: Fix the function signature and a minor typo fix

https://bugzilla.gnome.org/show_bug.cgi?id=699827

11 years agotypefind: Send stream-start before anything else
Nicolas Dufresne [Mon, 6 May 2013 22:47:44 +0000 (18:47 -0400)]
typefind: Send stream-start before anything else

To do so, send stream-start when the streaming thread goes up for the first
time.

https://bugzilla.gnome.org/show_bug.cgi?id=699767

11 years agotools/gstreamer-completion: Allow 1.0 and 0.10 scripts installed simultaneously
David Rothlisberger [Wed, 26 Dec 2012 11:54:51 +0000 (11:54 +0000)]
tools/gstreamer-completion: Allow 1.0 and 0.10 scripts installed simultaneously

As long as the scripts' filenames are different, and the _gst_inspect
and _gst_launch functions are named differently, the completion scripts
for GStreamer 1.0 and 0.10 can be installed side-by-side in
/etc/bash_completion.d.

On my 0.10 branch† the completion script is renamed to
"gstreamer-completion-0.10" and the functions are renamed to
"_gst_inspect_0_10" and "_gst_launch_0_10". The remaining helper
functions should remain identical (the command-line interface to
gst-inspect hasn't changed, nor has the format of the gst-launch
pipeline), so it doesn't matter if the 1.0 script overrides the 0.10
script's definitions.

Note that I don't expect there to be another GStreamer 0.10 release, so
the 0.10 completion script will probably never be officially released;
but it is still worthwhile allowing both scripts to be installed
alongside each other, for those who install the 0.10 completion script
manually.

Fixes: #690515

† https://github.com/drothlis/gstreamer/blob/bash-completion-0.10/tools/gstreamer-completion-0.10

11 years agotools/gstreamer-completion: Complete option & property values on bash 3.2
David Rothlisberger [Fri, 21 Dec 2012 18:13:53 +0000 (18:13 +0000)]
tools/gstreamer-completion: Complete option & property values on bash 3.2

Bash 3's completion doesn't split words by characters in
COMP_WORDBREAKS. In particular it doesn't split at "=" signs. Now
_gst_launch_parse handles both bash 3 and 4 format of COMP_WORDS.

Note that "${cur%%=*}" means cur's value with the longest possible match
of "=*" deleted from the end; "${cur#*=}" means cur's value with the
shortest possible match of "*=" deleted from the beginning. See
http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html

Regardless of the version of bash running the unit tests, I can test for
both behaviours because the unit test populates COMP_WORDS manually. So
this tests the bash 3 behaviour:

    test_gst_inspect_completion --gst-debug-level=4

and this tests the bash 4 behaviour:

    test_gst_inspect_completion --gst-debug-level = 4

11 years agotools/gstreamer-completion: Bash 3.2 compatibility fixes
David Rothlisberger [Fri, 21 Dec 2012 08:56:26 +0000 (08:56 +0000)]
tools/gstreamer-completion: Bash 3.2 compatibility fixes

Compatible with bash 3.2; doesn't require the bash-completion package at
all (though the easiest way to install this script is still to install
bash-completion, and then drop this script into /etc/bash_completion.d).

Note that bash 3 doesn't break COMP_WORDS according to characters in
COMP_WORDBREAKS, so "property=val" looks like a single word, so this
won't complete property values (on bash 3). Similarly,
"--gst-debug-level=<TAB>" won't complete properly (on bash 3), but
"--gst-debug-level <TAB>" will.

For that reason, I now offer "--gst-debug-level" etc as completions
instead of "--gst-debug-level=".

Functions "_init_completion" and "_parse_help" were provided by the
bash-completion package >= 2.0; now I roll my own equivalent of
"_parse_help", and instead of "_init_completion" I use
"_get_comp_words_by_ref" which is available from bash-completion 1.2
onwards. If the bash-completion package isn't available at all I use
bash's raw facilities, at the expense of not completing properly when
the cursor is in the middle of a word.

The builtin "compopt" doesn't exist in bash 3; those users will just
have to live with the inconvenience of "property=" completing to
"property= " with a trailing space. Property values aren't completed
properly anyway on bash 3 (see above).

"[[ -v var ]]" to test whether a variable is set, also doesn't exist in
bash 3. Neither does ";;&" to fall through in a "case" statement.

In the unit tests:

* On my system (OS X), "#!/bin/bash" is bash 3.2, whereas
  "#!/usr/bin/env bash" is the 4.2 version I built myself.
* I have to initialise array variables like "expected=()", or bash 3
  treats "+=" as appending to an array already populated with one empty
  string.

11 years agotools/gstreamer-completion: Support gst-inspect, and gst-launch element properties
David Rothlisberger [Wed, 19 Dec 2012 10:46:50 +0000 (10:46 +0000)]
tools/gstreamer-completion: Support gst-inspect, and gst-launch element properties

Completes options like "--gst-debug-level" and the values of some of
those options; completes gst-launch pipeline element names, property
names, and even property values (for enum or boolean properties only).

Doesn't complete all caps specifications, nor element names specified
earlier in the pipeline with "name=...".

The GStreamer version number is hard-coded into the completion script:
This patch is off the master branch and has the version hard-coded as
"1.0"; it needs to be updated if backported to the 0.10 branch. You
could always create a "gstreamer-completion.in" that has the appropriate
version inserted by "configure", but I'd rather not do that. The
hard-coded version is consistent with the previous implementation of
gstreamer-completion, which had the registry path hard-coded as
~/.gstreamer-1.0/registry.xml.

Note that GStreamer 0.10 installs "gst-inspect" and "gst-inspect-0.10".
"gst-inspect --help" only prints 4 flags (--help, --print, --gst-mm,
gst-list-mm) whereas "gst-inspect-0.10 --help-all" prints the full list
of flags. The same applies to "gst-launch" and "gst-launch-0.10".
GStreamer 1.0 only installs "gst-inspect-1.0", not "gst-inspect".

Requires bash 4; only tested with bash 4.2. Requires "bash-completion"
(which you install with your system's package manager).

Put this in /etc/bash_completion.d/ or in `pkg-config
--variable=compatdir bash-completion`, where it will be loaded at the
beginning of every new terminal session;
or in `pgk-config --variable=completionsdir bash-completion`, renamed to
match the name of the command it completes (e.g. "gst-launch-1.0", with
an additional symlink named "gst-inspect-1.0"), where it will be
autoloaded when needed.

test-gstreamer-completion.sh is (for now) in tests/misc -- it might be
worth creating "tests/check/tools", with all the necessary automake
boilerplate, and moving test-gstreamer-completion.sh there, and have it
run automatically with "make check".

IF YOU'RE NEW TO BASH COMPLETION SCRIPTS
----------------------------------------

"complete -F _gst_launch gst-launch-1.0" means that bash will run the
function "_gst_launch" to generate possible completions for the command
"gst-launch-1.0".

"_gst_launch" must return the possible completions in the array variable
COMPREPLY. (Note on bash syntax: "V=(a b c)" assigns three elements to
the array "V").

"compgen" prints a list of possible completions to standard output. Try
it:

    compgen -W "abc1 abc2 def" -- "a"
    compgen -f -- "/"

The last argument is the word currently being completed; compgen uses it
to filter out the non-matching completions. We put "--" first, in case
the word currently being completed starts with "-" or "--", so that it
isn't treated as a flag to compgen.

For the documentation of COMP_WORDS, COMP_CWORD, etc see
http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#index-COMP_005fCWORD-180

See also:
* http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion.html
* http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html

The bash-completion package provides the helper function
"_init_completion" which populates variables "cur", "prev", and "words".
See
http://anonscm.debian.org/gitweb/?p=bash-completion/bash-completion.git;a=blob;f=bash_completion;h=870811b4;hb=HEAD#l634

Note that by default, bash appends a space to the completed word. When
the completion is "property=" we don't want a trailing space; calling
"compopt -o nospace" modifies the currently-executing completion
accordingly. See
http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html#index-compopt

11 years agotools/gstreamer-completion: Updated to work with the binary registry
David Rothlisberger [Tue, 13 Nov 2012 16:36:46 +0000 (16:36 +0000)]
tools/gstreamer-completion: Updated to work with the binary registry

The original registry was in xml format (~/.gstreamer-*/registry.xml). A
binary registry format was added in 2007 (commit ebf0c9d3) and made the
default in 2008 (commit 3f39fd7e). In 0.10 you could still choose at
"configure" time to use the xml registry instead; in 1.0 the binary
registry is your only choice.

This change to gstreamer-completion should work with either format
because it parses the output of "gst-inspect" instead of reading the
registry file directly.

Note that _gst_launch no longer needs an explicit "return 0" because,
unlike the previous grep command, compgen always returns 0 (unless a
genuine error occurs).

Just like the previous implementation by David Schleef, this "only
completes names of features, but that's 90% of what I want it for."

11 years agoporting-to-1.0.txt: nit clarification
Stefan Sauer [Mon, 29 Apr 2013 19:11:36 +0000 (21:11 +0200)]
porting-to-1.0.txt: nit clarification

It is the process context that matters.

11 years agotypefind: Always leave TYPEFIND mode when we're stopping typefinding
Sebastian Dröge [Mon, 29 Apr 2013 11:20:11 +0000 (13:20 +0200)]
typefind: Always leave TYPEFIND mode when we're stopping typefinding

11 years agotypefind: Simplify code
Sebastian Dröge [Mon, 29 Apr 2013 11:03:24 +0000 (13:03 +0200)]
typefind: Simplify code

This is only called when in TYPEFIND mode.

11 years agotypefind: Push pending events independent of the existence of a downstream chain...
Sebastian Dröge [Mon, 29 Apr 2013 10:58:07 +0000 (12:58 +0200)]
typefind: Push pending events independent of the existence of a downstream chain function and peer

Downstream might create a peer only as result of the events in theory.

11 years agotypefind: Only push CAPS event once if we get one from upstream
Sebastian Dröge [Mon, 29 Apr 2013 10:56:54 +0000 (12:56 +0200)]
typefind: Only push CAPS event once if we get one from upstream

https://bugzilla.gnome.org/show_bug.cgi?id=692784

11 years agotypefind: Stop typefinding if we get a CAPS event from upstream
Sebastian Dröge [Mon, 29 Apr 2013 10:54:27 +0000 (12:54 +0200)]
typefind: Stop typefinding if we get a CAPS event from upstream

11 years agotypefind: Improve handling of GAP events
Sebastian Dröge [Mon, 29 Apr 2013 10:52:46 +0000 (12:52 +0200)]
typefind: Improve handling of GAP events

There's still room for improvement though.

11 years agotypefind: Forward events that should happen before the caps event directly
Sebastian Dröge [Mon, 29 Apr 2013 10:48:29 +0000 (12:48 +0200)]
typefind: Forward events that should happen before the caps event directly

There's no point in storing them and sending them later, and doing so would
later require to distinguish between events that should come before caps and
after.

https://bugzilla.gnome.org/show_bug.cgi?id=692784

11 years agotypefind: Only push pending buffers and events if we have caps
Sebastian Dröge [Mon, 29 Apr 2013 10:48:13 +0000 (12:48 +0200)]
typefind: Only push pending buffers and events if we have caps

11 years agotypefind: Remove code that would cause caps to be sent twice
Sebastian Dröge [Mon, 29 Apr 2013 10:39:20 +0000 (12:39 +0200)]
typefind: Remove code that would cause caps to be sent twice

Whenever we set typefind->caps we will also send a caps event downstream.

11 years agopwg: improve allocation docs
Wim Taymans [Sat, 27 Apr 2013 18:33:06 +0000 (20:33 +0200)]
pwg: improve allocation docs

11 years agocheck: set CK_TIMEOUT_MULTIPLIER on ARM
Tim-Philipp Müller [Sat, 27 Apr 2013 10:46:13 +0000 (11:46 +0100)]
check: set CK_TIMEOUT_MULTIPLIER on ARM

https://bugzilla.gnome.org/show_bug.cgi?id=695599

11 years agotypefind: fix caps leak when used in connection with uridecodebin and playbin
Tim-Philipp Müller [Fri, 26 Apr 2013 23:05:45 +0000 (00:05 +0100)]
typefind: fix caps leak when used in connection with uridecodebin and playbin

Don't leak forced sink caps.

11 years agocontroller: Fix element-type annotations
Thibault Saunier [Mon, 22 Apr 2013 21:08:43 +0000 (18:08 -0300)]
controller: Fix element-type annotations

11 years agoinputselector: Try to not push read-only buffers
Sebastian Dröge [Thu, 25 Apr 2013 14:38:49 +0000 (16:38 +0200)]
inputselector: Try to not push read-only buffers

We should only increase the refcount before pushing if we're
really going to use the buffer afterwards.

11 years agotests: add check for FLUSH pad probes
Alessandro Decina [Thu, 25 Apr 2013 05:15:39 +0000 (07:15 +0200)]
tests: add check for FLUSH pad probes

11 years agogstpad: run probes for FLUSH events sent with gst_pad_send_event
Alessandro Decina [Wed, 24 Apr 2013 06:40:32 +0000 (08:40 +0200)]
gstpad: run probes for FLUSH events sent with gst_pad_send_event

Move probe handling in gst_pad_send_event_unchecked so that probes are run for
FLUSH events too.

11 years agonetclock: Add support for IPv6
Sebastian Dröge [Wed, 24 Apr 2013 13:58:49 +0000 (15:58 +0200)]
netclock: Add support for IPv6

11 years agoporting-to-1.0.txt: add troubleshooting section
Tim-Philipp Müller [Wed, 24 Apr 2013 11:30:07 +0000 (12:30 +0100)]
porting-to-1.0.txt: add troubleshooting section

Add note about "cannot register existing type `GstObject'" warning.

11 years agobaseparse: Only infer TS if PTS interpolation is enabled
Sebastian Dröge [Tue, 23 Apr 2013 09:47:54 +0000 (11:47 +0200)]
baseparse: Only infer TS if PTS interpolation is enabled

Otherwise this is breaking timestamps of formats that
need reordering.

https://bugzilla.gnome.org/show_bug.cgi?id=597662

11 years agopad: notify caps property on NULL as well
Wim Taymans [Tue, 23 Apr 2013 09:17:05 +0000 (11:17 +0200)]
pad: notify caps property on NULL as well

Also notify the caps property when it changes to NULL

11 years agopad: clarify locking
Wim Taymans [Tue, 23 Apr 2013 09:16:16 +0000 (11:16 +0200)]
pad: clarify locking

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Mon, 22 Apr 2013 22:50:17 +0000 (23:50 +0100)]
Automatic update of common submodule

From 3cb3d3c to 5edcd85

11 years agopart-context: Write some design documentation about GstContext
Sebastian Dröge [Fri, 19 Apr 2013 13:01:20 +0000 (15:01 +0200)]
part-context: Write some design documentation about GstContext

11 years agopart-caps: Add more information about caps features, caps semantics and how to use...
Sebastian Dröge [Fri, 19 Apr 2013 11:21:34 +0000 (13:21 +0200)]
part-caps: Add more information about caps features, caps semantics and how to use them

11 years agocapsfeatures: Add documentation about ANY GstCapsFeatures
Sebastian Dröge [Fri, 19 Apr 2013 09:23:31 +0000 (11:23 +0200)]
capsfeatures: Add documentation about ANY GstCapsFeatures

11 years agobasesink: Don't set last_render_time if we're checking for a late buffer before ...
Sebastian Dröge [Fri, 19 Apr 2013 08:24:06 +0000 (10:24 +0200)]
basesink: Don't set last_render_time if we're checking for a late buffer before ::prepare()

This makes sure that at least one buffer per second is rendered if buffers
are dropped before ::prepare. Without this change, at least one buffer per
second wouldn't be too late before ::prepare anymore but would be dropped
before ::render because of last_render_time being set before ::prepare
already.

11 years agogstvalue: Add compare function for caps
Andre Moreira Magalhaes (andrunko) [Fri, 8 Feb 2013 05:57:44 +0000 (03:57 -0200)]
gstvalue: Add compare function for caps

11 years agodataqueue: add gst_data_queue_peek
Thiago Santos [Tue, 15 Jan 2013 19:57:20 +0000 (16:57 -0300)]
dataqueue: add gst_data_queue_peek

This function works just like gst_data_queue_pop, but it doesn't
remove the object from the queue.

Useful when inspecting multiple GstDataQueues to decide from which
to pop the element from.

Add: gst_data_queue_peek

11 years agotests: ignore new test binary
Tim-Philipp Müller [Thu, 18 Apr 2013 09:14:09 +0000 (10:14 +0100)]
tests: ignore new test binary

11 years agotools: update for latest context API changes
Tim-Philipp Müller [Thu, 18 Apr 2013 09:13:30 +0000 (10:13 +0100)]
tools: update for latest context API changes

11 years agocontext: Add gst_context_writable_structure() and let get_structure() return const...
Sebastian Dröge [Thu, 18 Apr 2013 08:17:44 +0000 (10:17 +0200)]
context: Add gst_context_writable_structure() and let get_structure() return const again

11 years agoprintf: fix handling of old printf extension specifiers for ABI compatibility
Tim-Philipp Müller [Wed, 17 Apr 2013 23:44:32 +0000 (00:44 +0100)]
printf: fix handling of old printf extension specifiers for ABI compatibility

Fixes abort when the old specifiers are used. Fix up the conversion
specifier, it would get overwritten with 'c' below to the extension
format char, which then later is unhandled, leading to the abort.
Also fix up and enable unit test for this.

https://bugzilla.gnome.org/process_bug.cgi

11 years agotests: add unit test for old printf extension specifiers
Tim-Philipp Müller [Wed, 17 Apr 2013 23:28:00 +0000 (00:28 +0100)]
tests: add unit test for old printf extension specifiers

To make sure we maintain binary compatibility with the old
specifiers.

https://bugzilla.gnome.org/show_bug.cgi?id=698242

11 years agocheck: run skipped tests if explicitly requested via GST_CHECKS
Tim-Philipp Müller [Wed, 17 Apr 2013 23:19:23 +0000 (00:19 +0100)]
check: run skipped tests if explicitly requested via GST_CHECKS

If a test that's disabled with tcase_skip_broken_test() is listed
in the GST_CHECKS environment variable, run it anyway.

11 years agogst-launch: Add GstContext support
Sebastian Dröge [Wed, 17 Apr 2013 11:47:35 +0000 (13:47 +0200)]
gst-launch: Add GstContext support

gst-launch will collect all the contexts from the pipeline elements
and update the overall pipeline context with it.

11 years agocontext: Add unit test for GstContext
Sebastian Dröge [Wed, 17 Apr 2013 10:44:29 +0000 (12:44 +0200)]
context: Add unit test for GstContext

11 years agocontext: Return a non-const GstStructure to make code simpler and update docs
Sebastian Dröge [Wed, 17 Apr 2013 10:17:49 +0000 (12:17 +0200)]
context: Return a non-const GstStructure to make code simpler and update docs

11 years agoquery: new _BANDWIDTH_LIMITED flag
Philippe Normand [Fri, 29 Mar 2013 13:56:57 +0000 (14:56 +0100)]
query: new _BANDWIDTH_LIMITED flag

Source elements with limited bandwidth capabilities and supporting
buffering for downstream elements should set this flag when answering
a scheduling query. This is useful for the on-disk buffering scenario
of uridecodebin to avoid checking the URI protocol against a list of
hardcoded protocols.

Bug 693484

11 years agodocs: fix missing flacdec in porting-to-1.0 pipeline example
Tim-Philipp Müller [Tue, 16 Apr 2013 08:55:00 +0000 (09:55 +0100)]
docs: fix missing flacdec in porting-to-1.0 pipeline example

11 years agodocs: add note about decoders and parsers to porting-to-1.0 doc
Tim-Philipp Müller [Tue, 16 Apr 2013 08:03:52 +0000 (09:03 +0100)]
docs: add note about decoders and parsers to porting-to-1.0 doc

11 years agogst: Add better support for static plugins
Sebastian Dröge [Wed, 24 Oct 2012 09:58:35 +0000 (11:58 +0200)]
gst: Add better support for static plugins

API: GST_PLUGIN_STATIC_DECLARE()
API: GST_PLUGIN_STATIC_REGISTER()

Based on a patch by Håvard Graff <havard.graff@tandberg.com>.

This now allows GST_PLUGIN_DEFINE() to create a static plugin if
GST_PLUGIN_BUILD_STATIC is defined. The resulting plugin can be
statically linked or dynamically linked during compilation but
can't be dynamically loaded during runtime.

Also adds GST_PLUGIN_STATIC_DECLARE() and GST_PLUGIN_STATIC_REGISTER(),
which allows to register a static linked plugin easily.
It is still required to manually register every single statically linked
plugin from inside the application as this can't be automated in a portable
way.

A new configure parameter --enable-static-plugins was added that allows
to build all plugins we build here as static plugins.

Fixes bug #667305.

11 years agomanual: Patch manual to refer to porting guide
Douglas Bagnall [Fri, 12 Apr 2013 01:50:39 +0000 (13:50 +1200)]
manual: Patch manual to refer to porting guide

https://bugzilla.gnome.org/show_bug.cgi?id=697845

11 years agopluginfeature: Fix the GstPluginFeature name comparison.
Sreerenj Balachandran [Sat, 13 Apr 2013 16:43:10 +0000 (19:43 +0300)]
pluginfeature: Fix the GstPluginFeature name comparison.

The gst_plugin_feature_rank_compare_func() should return
negative value, if the rank of both PluginFeatures are equal and
the name of first PluginFeature comes before the second one.

https://bugzilla.gnome.org/show_bug.cgi?id=697990

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Sun, 14 Apr 2013 16:54:22 +0000 (17:54 +0100)]
Automatic update of common submodule

From 2736592 to 3cb3d3c

11 years agoAutomatic update of common submodule
Tim-Philipp Müller [Sun, 14 Apr 2013 16:25:35 +0000 (17:25 +0100)]
Automatic update of common submodule

From aed87ae to 2736592

11 years agoprintf: disable some unused printf variants
Tim-Philipp Müller [Sun, 14 Apr 2013 10:33:41 +0000 (11:33 +0100)]
printf: disable some unused printf variants

11 years agoprintf: use sprintf() to work around glibc complaining about %n in a writable format...
Tim-Philipp Müller [Sun, 14 Apr 2013 10:23:10 +0000 (11:23 +0100)]
printf: use sprintf() to work around glibc complaining about %n in a writable format string

Don't use snprintf(), but use sprintf instead and do our own
length calculations, because glibc may complain about us passing
%n in a format string if the string is in writable memory, and
here the format string is always in writable memory since we
construct it on the fly. This happens if glibc has been compiled
with _FORTIFY_SOURCE=2, which seems to be the case on some
distros/systems). On the upside, we now use the sprintf code path
on all systems which should be better from a maintenance point
of view.

https://bugzilla.gnome.org/show_bug.cgi?id=697970

11 years agotests: skip all GstPoll tests on Windows
Tim-Philipp Müller [Sat, 13 Apr 2013 11:18:28 +0000 (12:18 +0100)]
tests: skip all GstPoll tests on Windows

As they don't work there, and it's non-trivial to fix.

https://bugzilla.gnome.org/show_bug.cgi?id=697609

11 years agogst-inspect: only add a '*' for non-'gpointer' pointers
Tim-Philipp Müller [Sat, 13 Apr 2013 11:00:12 +0000 (12:00 +0100)]
gst-inspect: only add a '*' for non-'gpointer' pointers

Spotted by Jose Antonio Santos Cadena.

https://bugzilla.gnome.org/show_bug.cgi?id=697791

11 years agoplugin: fix name expansion for GST_PLUGIN_DEFINE macro
Gwenole Beauchesne [Fri, 12 Apr 2013 12:48:29 +0000 (14:48 +0200)]
plugin: fix name expansion for GST_PLUGIN_DEFINE macro

Make GST_PLUGIN_DEFINE use G_STRINGIFY() to convert the name argument
into a meaningful string. The advantage of this is that `name' can be
expanded from other macros defined in the plug-in element.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
https://bugzilla.gnome.org/show_bug.cgi?id=697872

11 years agopo: add new translatable strings
Tim-Philipp Müller [Sat, 13 Apr 2013 10:35:49 +0000 (11:35 +0100)]
po: add new translatable strings

11 years agoprintf: don't build if debugging subsystem was disabled
Tim-Philipp Müller [Fri, 12 Apr 2013 22:58:52 +0000 (23:58 +0100)]
printf: don't build if debugging subsystem was disabled

11 years agoprintf: deal with some of the HAVE_FOO used in the printf code
Tim-Philipp Müller [Wed, 10 Apr 2013 10:51:37 +0000 (11:51 +0100)]
printf: deal with some of the HAVE_FOO used in the printf code

Probably needs some more work for MSVC.

11 years agoprintf: fix alloca use for windows with mingw32
Tim-Philipp Müller [Mon, 8 Apr 2013 18:42:27 +0000 (19:42 +0100)]
printf: fix alloca use for windows with mingw32

Don't use just GLIB_HAVE_ALLOCA_H to check if alloca is available,
that's just for the header. GLib may define alloca for us otherwise
too irrespective of GLIB_HAVE_ALLOCA_H.

Fixes compiler warning with mingw32:
gst/printf/vasnprintf.c:73:0: warning: "alloca" redefined

11 years agoprintf: enable and fix compiler warnings
Tim-Philipp Müller [Sun, 7 Apr 2013 19:11:21 +0000 (20:11 +0100)]
printf: enable and fix compiler warnings

But suppress -Wformat-nonliteral warnings since sprintf
is used with a runtime-generated format string in our
vasnprintf implementation.

11 years agoprintf: fix up dodgy use of #if HAVE_FOO and #if !HAVE_FOO
Tim-Philipp Müller [Sun, 7 Apr 2013 17:21:00 +0000 (18:21 +0100)]
printf: fix up dodgy use of #if HAVE_FOO and #if !HAVE_FOO

Should use #ifdef and #ifndef.

11 years agoprintf: mark internal functions as internal
Tim-Philipp Müller [Sun, 7 Apr 2013 16:36:29 +0000 (17:36 +0100)]
printf: mark internal functions as internal

11 years agoprintf: skip pointer extension signifier chars after %p
Tim-Philipp Müller [Sun, 7 Apr 2013 16:29:02 +0000 (17:29 +0100)]
printf: skip pointer extension signifier chars after %p

So they don't get printed after the serialised pointer string.

11 years agoprintf: don't leak serialised pointer extension strings
Tim-Philipp Müller [Sun, 7 Apr 2013 16:21:10 +0000 (17:21 +0100)]
printf: don't leak serialised pointer extension strings

11 years agoprintf: handle old GST_PTR_FORMAT %P and GST_SEGMENT_FORMAT %Q defines too
Tim-Philipp Müller [Sun, 7 Apr 2013 16:02:55 +0000 (17:02 +0100)]
printf: handle old GST_PTR_FORMAT %P and GST_SEGMENT_FORMAT %Q defines too

For binary backwards compatibility.

11 years agoprintf: make printf parser recognise our pointer extension format
Tim-Philipp Müller [Sun, 7 Apr 2013 15:41:40 +0000 (16:41 +0100)]
printf: make printf parser recognise our pointer extension format

and call the hook to get a string for the pointer instead.

https://bugzilla.gnome.org/show_bug.cgi?id=613081

11 years agoprintf: add infrastructure for pointer extensions hook
Tim-Philipp Müller [Sat, 30 Mar 2013 18:28:38 +0000 (18:28 +0000)]
printf: add infrastructure for pointer extensions hook

Does not do anything yet. On a sidenote, we can't just use
%p\001 or so to signal the extension because g-i complains
about an invalid ascii character then, so have to resort to
something more elaborate, such as %p\aA etc.

https://bugzilla.gnome.org/show_bug.cgi?id=613081

11 years agoinfo: use new internal printf for debug message printing
Tim-Philipp Müller [Sat, 30 Mar 2013 17:20:13 +0000 (17:20 +0000)]
info: use new internal printf for debug message printing

and remove all the printf extension/specifier stuff for
the system printf. Next we need to add back the custom
specifiers to our own printf implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=613081

11 years agoprintf: add our own printf implementation for debug logging
Tim-Philipp Müller [Sat, 30 Mar 2013 15:13:32 +0000 (15:13 +0000)]
printf: add our own printf implementation for debug logging

We will add support for our own printf modifiers, so we can
get nice debug log output on all operating systems irrespective
of the specific libc version used.

https://bugzilla.gnome.org/show_bug.cgi?id=613081

11 years agotaglist: avoid triggering an assertion
Wim Taymans [Fri, 12 Apr 2013 15:13:15 +0000 (16:13 +0100)]
taglist: avoid triggering an assertion

When deserialization of the structure fails, return a NULL taglist instead of
asserting.

11 years agogst-inspect: add pointer mark to signal and action return types that are pointers
Jose Antonio Santos Cadenas [Thu, 11 Apr 2013 12:54:32 +0000 (14:54 +0200)]
gst-inspect: add pointer mark to signal and action return types that are pointers

When the return type of a signal or action is a pointer, it
should have an asterisk to mark it as such.

https://bugzilla.gnome.org/show_bug.cgi?id=697791

11 years agodocs: document type change of playbin's connection-speed property in porting docs
Tim-Philipp Müller [Thu, 11 Apr 2013 21:32:39 +0000 (22:32 +0100)]
docs: document type change of playbin's connection-speed property in porting docs

11 years agobuffer: add _gst_max_memory() function
Wim Taymans [Thu, 11 Apr 2013 13:31:01 +0000 (14:31 +0100)]
buffer: add _gst_max_memory() function

Add the a function to query the maximum amount of memory blocks that can be
added to a buffer. Also improve the docs for _insert_memory().

11 years agonettimeprovider: notify of changed bound address
Wim Taymans [Thu, 11 Apr 2013 13:04:45 +0000 (14:04 +0100)]
nettimeprovider: notify of changed bound address

Notify when the bound address is known, just like the port.

11 years agolaunch: handle PROGRESS messages
Wim Taymans [Thu, 11 Apr 2013 12:55:47 +0000 (13:55 +0100)]
launch: handle PROGRESS messages

Wait for all PROGRESS messages (if any) to complete before going to the PLAYING
state. This is the only way we can wait for live elements to complete their
operations.

This is interesting for elements like rtspsrc that do some asynchronous network
requests as part of going to the PAUSED state. It could be possible that it, for
example, provides a clock and then we would like to wait until it completes
so that we can use the provided clock when going to PLAYING.

11 years agoToggle upstream and downstream in RECONFIGURE paragraph.
Douglas Bagnall [Thu, 11 Apr 2013 03:05:08 +0000 (15:05 +1200)]
Toggle upstream and downstream in RECONFIGURE paragraph.