platform/upstream/gst-plugins-base.git
13 years agolibs: port to new data API
Wim Taymans [Sun, 27 Mar 2011 11:55:15 +0000 (13:55 +0200)]
libs: port to new data API

13 years agotags: port to new metadata and memory API
Wim Taymans [Fri, 25 Mar 2011 18:52:30 +0000 (19:52 +0100)]
tags: port to new metadata and memory API

13 years agoMerge branch 'master' into 0.11-fdo
Wim Taymans [Tue, 15 Mar 2011 10:11:56 +0000 (11:11 +0100)]
Merge branch 'master' into 0.11-fdo

13 years agooggmux: Increase the seen header packets count when seeing a header packet
Sebastian Dröge [Mon, 14 Mar 2011 18:42:49 +0000 (19:42 +0100)]
oggmux: Increase the seen header packets count when seeing a header packet

This fixes muxing of Speex content and possibly other formats where the
header detection works by counting the packets.

Fixes bug #644745.

13 years agotypefinding: add depth and endianness to DTS caps
Tim-Philipp Müller [Mon, 14 Mar 2011 18:35:27 +0000 (18:35 +0000)]
typefinding: add depth and endianness to DTS caps

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

13 years agotextoverlay: use a class wide mutex to work around pango reentrance issues
Stefan Kost [Mon, 14 Mar 2011 09:14:04 +0000 (11:14 +0200)]
textoverlay: use a class wide mutex to work around pango reentrance issues

Pango is not reentrant. Use a class wide mutex to protect pange use in
gst_text_overlay_render_pangocairo(). This works reliable in contrast to the
hack in my previous commit.

Fixes Bug #412678

13 years agoRevert "textoverlay: add a hack to init the pango engine"
Stefan Kost [Mon, 14 Mar 2011 09:12:53 +0000 (11:12 +0200)]
Revert "textoverlay: add a hack to init the pango engine"

This reverts commit fee3266056b522cdd34e606b5682553d35eec5a1.

13 years agoplaback: trim trailing whitespace
Stefan Kost [Mon, 14 Mar 2011 08:09:35 +0000 (10:09 +0200)]
plaback: trim trailing whitespace

13 years agodecodebin2: reflow configuring new multiqueue instance
Stefan Kost [Mon, 14 Mar 2011 08:05:34 +0000 (10:05 +0200)]
decodebin2: reflow configuring new multiqueue instance

Use a single g_object_set to configure the new multiqueue instance. Also don't
needlessly set "use-buffering" if it is the default.

13 years agotextoverlay: drop trailing whitespaces
Stefan Kost [Fri, 4 Mar 2011 12:52:01 +0000 (14:52 +0200)]
textoverlay: drop trailing whitespaces

13 years agotextoverlay: add a hack to init the pango engine
Stefan Kost [Fri, 4 Mar 2011 12:52:28 +0000 (14:52 +0200)]
textoverlay: add a hack to init the pango engine

Layout a single char to pre-create all resources.

13 years agotests: add libscpp unit test to make sure g++ likes our library headers
Tim-Philipp Müller [Sat, 12 Mar 2011 17:51:41 +0000 (17:51 +0000)]
tests: add libscpp unit test to make sure g++ likes our library headers

13 years agotests: encodebin: Add reuse test case
Thiago Santos [Thu, 10 Mar 2011 17:22:38 +0000 (14:22 -0300)]
tests: encodebin: Add reuse test case

Adds a test case to check if encodebin can be reused

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

13 years agoencodebin: Tear down old profiles when setting new ones
Thiago Santos [Thu, 10 Mar 2011 17:38:47 +0000 (14:38 -0300)]
encodebin: Tear down old profiles when setting new ones

In NULL/READY, we should be able to switch profiles on encodebin,
this patch makes it tear down old profiles when new ones are set
if in NULL/READY states

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

13 years agomultifdsink: disconnect inactive clients in the select loop too
Andoni Morales Alastruey [Fri, 22 Oct 2010 12:01:26 +0000 (14:01 +0200)]
multifdsink: disconnect inactive clients in the select loop too

Clients are usually disconnected in the streaming thread if their inactivity
is bigger than the timeout. If no new buffers are to be rendered in the sink,
these clients will never be disconnected and for that reason it should be
handled in the select() loop too.

13 years agomultifdsink: disconnect inactive clients in the select loop too
Andoni Morales Alastruey [Fri, 22 Oct 2010 12:01:26 +0000 (14:01 +0200)]
multifdsink: disconnect inactive clients in the select loop too

Clients are usually disconnected in the streaming thread if their inactivity
is bigger than the timeout. If no new buffers are to be rendered in the sink,
these clients will never be disconnected and for that reason it should be
handled in the select() loop too.

13 years agolibs: make sure gobject-introspection scanner calls gst_init()
Tim-Philipp Müller [Wed, 9 Mar 2011 11:51:14 +0000 (11:51 +0000)]
libs: make sure gobject-introspection scanner calls gst_init()

Fixes introspection failures caused by type assertions/warnings.
Since we now moved from _get_type() functions to external GType
variables in a couple of places, we actually have to call gst_init()
to make sure these are set when we use GST_TYPE_FOO.

13 years agolibgstapp: fix backticks in gobject-introspection section of Makefile.am
Tim-Philipp Müller [Wed, 9 Mar 2011 11:45:03 +0000 (11:45 +0000)]
libgstapp: fix backticks in gobject-introspection section of Makefile.am

13 years agodiscoverer: Don't wait for subtitle streams to preroll
Arun Raghavan [Wed, 3 Nov 2010 09:07:07 +0000 (14:37 +0530)]
discoverer: Don't wait for subtitle streams to preroll

Subtitle streams being parse can cause the pipeline to wait indefinitely
to PREROLL. This makes subtitle streams got to PAUSED even if no data is
available. This should not be a cause for concern as we don't expect to
get much data for subtitle streams other than language tags from the
container.

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

13 years agometa: update for new API
Wim Taymans [Tue, 8 Mar 2011 17:01:41 +0000 (17:01 +0000)]
meta: update for new API

13 years agoximagesink: make metadata methods more like core
Wim Taymans [Fri, 4 Mar 2011 17:32:53 +0000 (18:32 +0100)]
ximagesink: make metadata methods more like core

13 years agobaseaudiosink: use sink preroll lock
Wim Taymans [Fri, 4 Mar 2011 16:25:46 +0000 (17:25 +0100)]
baseaudiosink: use sink preroll lock

13 years agoximagesink: reset the pool
Wim Taymans [Fri, 4 Mar 2011 09:21:52 +0000 (10:21 +0100)]
ximagesink: reset the pool

13 years agoximagesink: implement buffer_alloc from the pool
Wim Taymans [Thu, 3 Mar 2011 17:39:38 +0000 (18:39 +0100)]
ximagesink: implement buffer_alloc from the pool

Use the bufferpool for pad_alloc when we are asked for the same caps as the
bufferpool.

13 years agoximage: rewrite the buffer pool in ximagesink
Wim Taymans [Thu, 3 Mar 2011 15:48:23 +0000 (16:48 +0100)]
ximage: rewrite the buffer pool in ximagesink

Rewrite the pooling in ximagesink to extend from the bufferpool base class in
core. Move some code to a comon place and refactor.

13 years agoMerge branch 'master' into 0.11
Wim Taymans [Fri, 4 Mar 2011 15:21:13 +0000 (16:21 +0100)]
Merge branch 'master' into 0.11

13 years agobaseaudiosink: start ringbuffer upon going to PLAYING and already EOS
Mark Nauwelaerts [Thu, 3 Mar 2011 18:14:38 +0000 (19:14 +0100)]
baseaudiosink: start ringbuffer upon going to PLAYING and already EOS

... otherwise we may end up without running clock in PLAYING.

Fixes #636886.

13 years agoplaybin2: set several properties in one go
Stefan Kost [Fri, 4 Mar 2011 12:39:45 +0000 (14:39 +0200)]
playbin2: set several properties in one go

g_object_set is a varargs function. Save 7 g_obvject_calls (and the overhead of
them) by using it accordingly.

13 years agotypefindfunctions: fix compiler warning on 32-bit systems
Tim-Philipp Müller [Wed, 2 Mar 2011 15:38:01 +0000 (15:38 +0000)]
typefindfunctions: fix compiler warning on 32-bit systems

Mark 64-bit interger constant as such to avoid warnings such as:
gsttypefindfunctions.c:2152: error: integer constant is too large for ‘long’ type

13 years agoconfigure.ac: export plugin description more platform independent
Mark Nauwelaerts [Mon, 28 Feb 2011 17:52:47 +0000 (18:52 +0100)]
configure.ac: export plugin description more platform independent

Fixes #642504.

13 years agoAutomatic update of common submodule
Mark Nauwelaerts [Mon, 28 Feb 2011 17:32:33 +0000 (18:32 +0100)]
Automatic update of common submodule

From 1de7f6a to 6aec6b9

13 years agonetbuffer: Implement NetAddress with metadata
Wim Taymans [Mon, 28 Feb 2011 11:59:40 +0000 (12:59 +0100)]
netbuffer: Implement NetAddress with metadata

Make a NetAddress metadata.

13 years agometa: fix for new API
Wim Taymans [Sun, 27 Feb 2011 18:42:31 +0000 (19:42 +0100)]
meta: fix for new API

13 years agoximagesink: experiment with convenience macros
Wim Taymans [Sat, 26 Feb 2011 17:19:01 +0000 (18:19 +0100)]
ximagesink: experiment with convenience macros

13 years agoximage: fix macros
Wim Taymans [Fri, 25 Feb 2011 15:28:55 +0000 (16:28 +0100)]
ximage: fix macros

13 years agoximage: reimplement buffer pooling with metadata
Wim Taymans [Fri, 25 Feb 2011 15:01:47 +0000 (16:01 +0100)]
ximage: reimplement buffer pooling with metadata

Use the buffer metadata to get back to the extra info we can use to optimize the
video rendering.

13 years agometadata: implement extra buffer data with metadata
Wim Taymans [Fri, 25 Feb 2011 14:49:33 +0000 (15:49 +0100)]
metadata: implement extra buffer data with metadata

Use buffer metadata to attach arbitrary extra data to buffers.

13 years agotests: fix some tests now that appbuffer is gone
Wim Taymans [Thu, 24 Feb 2011 11:19:27 +0000 (12:19 +0100)]
tests: fix some tests now that appbuffer is gone

13 years agov4l: use buffer private data for extra buffer info
Wim Taymans [Thu, 24 Feb 2011 11:18:43 +0000 (12:18 +0100)]
v4l: use buffer private data for extra buffer info

Since we can't subclass anymore, use the owber_priv pointer for storing extra
info for the buffer.

13 years agoX11: port imagesinks to new miniobjects
Wim Taymans [Thu, 24 Feb 2011 10:57:53 +0000 (11:57 +0100)]
X11: port imagesinks to new miniobjects

Remove the subbuffer from X11 sinks and use the private pointer to store a
single buffer metadata with the extra info.

13 years agominiobject: fix for changed miniobject
Wim Taymans [Wed, 23 Feb 2011 14:46:56 +0000 (15:46 +0100)]
miniobject: fix for changed miniobject

13 years agopbutils: use GObject as the base class
Wim Taymans [Wed, 23 Feb 2011 13:12:22 +0000 (14:12 +0100)]
pbutils: use GObject as the base class

We can't subclass miniobject so use GObject as the base class,

13 years agobaseaudiosink: remove deprecated method
Wim Taymans [Wed, 23 Feb 2011 12:42:16 +0000 (13:42 +0100)]
baseaudiosink: remove deprecated method

13 years agonetbuffer: disable GstNetBuffer object
Wim Taymans [Wed, 23 Feb 2011 12:14:21 +0000 (13:14 +0100)]
netbuffer: disable GstNetBuffer object

There are no more buffer subclasses and this should be implemented with
buffermetadata later.

13 years agoapp: remove appbuffer
Wim Taymans [Wed, 23 Feb 2011 12:13:32 +0000 (13:13 +0100)]
app: remove appbuffer

There are no more buffer subclasses and the application can use the regular API
to make buffers.

13 years agoMerge branch 'master' into 0.11
Wim Taymans [Mon, 28 Feb 2011 10:47:44 +0000 (11:47 +0100)]
Merge branch 'master' into 0.11

Conflicts:
configure.ac
gst-libs/gst/pbutils/Makefile.am

13 years agotests: add ABI test suite for libs
Stefan Kost [Mon, 28 Feb 2011 08:10:22 +0000 (10:10 +0200)]
tests: add ABI test suite for libs

13 years agodecodebin2: Only prevent to autoplug the same parser multiple times for the same...
Sebastian Dröge [Sun, 27 Feb 2011 08:32:55 +0000 (09:32 +0100)]
decodebin2: Only prevent to autoplug the same parser multiple times for the same chain

Parsers are the only element class that are not changing the data and
could lead to an infinite loop. Other element classes like demuxers,
e.g. id3demux, can be used multiple times in a row and sometimes are.

13 years agodecodebin2: Break the double-factory checking loop immediately if the factory was...
Sebastian Dröge [Sat, 26 Feb 2011 22:43:39 +0000 (23:43 +0100)]
decodebin2: Break the double-factory checking loop immediately if the factory was used already

13 years agodecodebin2: Don't use the same element multiple times in the same chain
Sebastian Dröge [Sat, 26 Feb 2011 22:39:03 +0000 (23:39 +0100)]
decodebin2: Don't use the same element multiple times in the same chain

This is going to lead to an infinite loop of this element and can easily
happen with parsers that accept their own src caps on the sinkpad.

13 years agodecodebin2: Improve detection of raw caps in expose-all-streams=false mode
Sebastian Dröge [Sat, 26 Feb 2011 22:20:42 +0000 (23:20 +0100)]
decodebin2: Improve detection of raw caps in expose-all-streams=false mode

Previously we only checked against the raw caps but we should also
check against the return value of autoplug-continue. Additionally fix
a thread-safety issue with accessing the raw caps.

13 years agovideo: Add support for r210
David Schleef [Sat, 26 Feb 2011 03:37:07 +0000 (19:37 -0800)]
video: Add support for r210

13 years agogstvideo: Add GST_VIDEO_BUFFER_PROGRESSIVE flag
Robert Swain [Mon, 3 Jan 2011 10:41:56 +0000 (11:41 +0100)]
gstvideo: Add GST_VIDEO_BUFFER_PROGRESSIVE flag

Maps to GST_BUFFER_FLAG_MEDIA4. The purpose is to explicitly indicate
whether a telecined buffer is progressive or not without having to make
assumptions based on previous buffers.

13 years agoencodebin: Fix double unref in unit test
Sebastian Dröge [Thu, 24 Feb 2011 19:59:48 +0000 (20:59 +0100)]
encodebin: Fix double unref in unit test

13 years agochecks: add a simple unit test for the source-setup signal
Tim-Philipp Müller [Tue, 22 Feb 2011 14:54:55 +0000 (14:54 +0000)]
checks: add a simple unit test for the source-setup signal

13 years agoplaybin2, uridecodebin: add "source-setup" signal
Tim-Philipp Müller [Tue, 22 Feb 2011 12:56:48 +0000 (12:56 +0000)]
playbin2, uridecodebin: add "source-setup" signal

Add "source-setup" signal for convenience and discoverability. No need
to figure out "notify::source", look up the notify callback signature,
then do an g_object_get() to get the source element..

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

13 years agooggmux: Don't handle GstCollectData as GstObject, use the pad instead
Sebastian Dröge [Thu, 24 Feb 2011 15:22:53 +0000 (16:22 +0100)]
oggmux: Don't handle GstCollectData as GstObject, use the pad instead

13 years agoencodebin: Fix memory leaks related to request pads
Sebastian Dröge [Thu, 24 Feb 2011 15:02:50 +0000 (16:02 +0100)]
encodebin: Fix memory leaks related to request pads

Request pads have to be released by the caller and must be
unreffed after releasing them.

13 years agoencodebin: Return a new reference of the pad for the "request-pad" signal
Sebastian Dröge [Thu, 24 Feb 2011 14:55:00 +0000 (15:55 +0100)]
encodebin: Return a new reference of the pad for the "request-pad" signal

The GObject signal code assumes that the signal handlers return a
new reference or copy. Fixes bug #641927.

13 years agoadder: Fill in offset_end field of outgoing buffers
Leo Singer [Tue, 22 Feb 2011 04:34:41 +0000 (20:34 -0800)]
adder: Fill in offset_end field of outgoing buffers

... rather than leave it as GST_BUFFER_OFFSET_NONE

Fix bug #642942.

13 years agoplaysink: release all chains when going to NULL
Mark Nauwelaerts [Wed, 23 Feb 2011 13:31:13 +0000 (14:31 +0100)]
playsink: release all chains when going to NULL

Also fixes #642466.

13 years agoplaysink: undo state change side effect on error way out
Mark Nauwelaerts [Wed, 23 Feb 2011 13:29:03 +0000 (14:29 +0100)]
playsink: undo state change side effect on error way out

... to avoid subsequent cleanup disposing an element not in NULL state.

13 years agoplaysink: avoid crashing on the way out when needed chain missing
Mark Nauwelaerts [Wed, 23 Feb 2011 09:32:08 +0000 (10:32 +0100)]
playsink: avoid crashing on the way out when needed chain missing

13 years agowin32: update .def file for new libgstvideo API
Tim-Philipp Müller [Tue, 22 Feb 2011 15:26:14 +0000 (15:26 +0000)]
win32: update .def file for new libgstvideo API

13 years agodiscoverer: handle desc==NULL
Stefan Kost [Tue, 22 Feb 2011 14:41:54 +0000 (16:41 +0200)]
discoverer: handle desc==NULL

It would otherwise be printed as (null) and mess up indentation (no \n).

13 years agodiscoverer: Chain dispose() up to parent class
Arun Raghavan [Tue, 8 Feb 2011 07:12:32 +0000 (12:42 +0530)]
discoverer: Chain dispose() up to parent class

13 years agodiscoverer: Keep a ref for the async timeout callback
Arun Raghavan [Mon, 7 Feb 2011 07:34:55 +0000 (13:04 +0530)]
discoverer: Keep a ref for the async timeout callback

This makes sure we maintain a ref on the discoverer object while the
async timeout callback is alive to prevent a potential crash if the
object is freed while the callback is pending.

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

13 years agodiscoverer: Use g_signal_connect_object instead of g_signal_connect
Arun Raghavan [Mon, 7 Feb 2011 08:27:39 +0000 (13:57 +0530)]
discoverer: Use g_signal_connect_object instead of g_signal_connect

We want to make sure the discoverer object passed to the various
callbacks doesn't become invalid if a callback is pending and the object
is free'd in the mean time.

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

13 years agotypefinding: detect raw h.263
Parthasarathi Susarla [Wed, 9 Feb 2011 16:22:42 +0000 (03:22 +1100)]
typefinding: detect raw h.263

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

13 years agopbutils: encoding-target: fix error checking in target file loading
Teemu Katajisto [Mon, 21 Feb 2011 13:58:16 +0000 (15:58 +0200)]
pbutils: encoding-target: fix error checking in target file loading

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

13 years agotests: fix videoscale test by ignoring newly-added 64-bit formats
Tim-Philipp Müller [Mon, 21 Feb 2011 17:55:04 +0000 (17:55 +0000)]
tests: fix videoscale test by ignoring newly-added 64-bit formats

They probably fail because ffmpegcolorspace can't handle those formats.

13 years agosdp: Fix copy/paste error in inrospection part of Makefile
Benjamin Otte [Mon, 21 Feb 2011 17:01:04 +0000 (18:01 +0100)]
sdp: Fix copy/paste error in inrospection part of Makefile

13 years agotag: Fix copy/paste error in inrospection part of Makefile
Benjamin Otte [Mon, 21 Feb 2011 17:00:36 +0000 (18:00 +0100)]
tag: Fix copy/paste error in inrospection part of Makefile

13 years agortsp: Fix copy/paste error in inrospection part of Makefile
Benjamin Otte [Mon, 21 Feb 2011 17:00:02 +0000 (18:00 +0100)]
rtsp: Fix copy/paste error in inrospection part of Makefile

13 years agoaudiorate: add skip-to-first property
Mark Nauwelaerts [Mon, 21 Feb 2011 11:40:36 +0000 (12:40 +0100)]
audiorate: add skip-to-first property

API: GstAudioRate::skip-to-first

13 years agovideorate: fix skip-to-first ts setup
Mark Nauwelaerts [Mon, 21 Feb 2011 11:27:17 +0000 (12:27 +0100)]
videorate: fix skip-to-first ts setup

... such as avoiding arithmetic mixing counts and ts, although latter
would typically be 0 so far.

13 years agoRevert "oggmux,adder: Check if collectpads has been freed"
Edward Hervey [Mon, 21 Feb 2011 11:04:09 +0000 (12:04 +0100)]
Revert "oggmux,adder: Check if collectpads has been freed"

This reverts commit 6d150873e8b4c23d694b0351570de323b1576d76.

Depends on a core commit that was reverted.

13 years agooggmux,adder: Check if collectpads has been freed
David Schleef [Mon, 21 Feb 2011 07:49:54 +0000 (23:49 -0800)]
oggmux,adder: Check if collectpads has been freed

Core now calls release_pad in finalize, which is usually after
the collectpads has been unreffed.

13 years agovideoscale: Add 16-bit-channel support
David Schleef [Sun, 20 Feb 2011 02:50:37 +0000 (18:50 -0800)]
videoscale: Add 16-bit-channel support

13 years agovideotestsrc: Add 16-bit-per-channel formats
David Schleef [Sun, 20 Feb 2011 00:41:43 +0000 (16:41 -0800)]
videotestsrc: Add 16-bit-per-channel formats

13 years agovideo: Add ARGB64 and AYUV64
David Schleef [Sat, 19 Feb 2011 20:03:17 +0000 (12:03 -0800)]
video: Add ARGB64 and AYUV64

16-bit per channel formats.

13 years agovideo: Add gst_video_format_get_component_depth()
David Schleef [Sat, 19 Feb 2011 00:26:59 +0000 (16:26 -0800)]
video: Add gst_video_format_get_component_depth()

13 years agoaudiotestsrc: each element gets its own instance of GRand, if needed
Leo Singer [Fri, 18 Feb 2011 21:27:23 +0000 (13:27 -0800)]
audiotestsrc: each element gets its own instance of GRand, if needed

As a result, pipelines that contain multiple instances of audiotestsrc
with the 'wave' property set to 'white-noise', 'pink-noise', or
'gaussian-noise' will run much faster, since they won't be competing
for access to the global, lock-protected instance of GRand.

Fixes bug #642720.

13 years agoplaybin2: If a sink claims to support ANY caps assume that it only supports the usual...
Sebastian Dröge [Fri, 18 Feb 2011 16:26:53 +0000 (17:26 +0100)]
playbin2: If a sink claims to support ANY caps assume that it only supports the usual raw formats

This should be changed again in 0.11, if a sink really claims to support ANY
caps it should support everything or provide correct caps.

13 years agoencodebin: Add a audioconverter after the audio resampler.
Edward Hervey [Thu, 17 Feb 2011 17:11:10 +0000 (18:11 +0100)]
encodebin: Add a audioconverter after the audio resampler.

This allows handling non-native-endianness conversion properly.

13 years agoplaybin2: Use gst_pad_accept_caps() instead of intersecting with the getcaps caps
Sebastian Dröge [Fri, 18 Feb 2011 13:04:38 +0000 (14:04 +0100)]
playbin2: Use gst_pad_accept_caps() instead of intersecting with the getcaps caps

This might be faster and more accurate in some cases to detect if a
sink supports a format and autoplugging can be stopped.

13 years agouridecodebin: Add default handler for autoplug-select
Sebastian Dröge [Fri, 18 Feb 2011 11:06:30 +0000 (12:06 +0100)]
uridecodebin: Add default handler for autoplug-select

uridecodebin proxies this signal and only the first signal handler
will ever be called from decodebin2, which is uridecodebin's proxy
signal handler.

13 years agouridecodebin: Return NULL from the default autoplug-sort handler
Sebastian Dröge [Fri, 18 Feb 2011 11:02:07 +0000 (12:02 +0100)]
uridecodebin: Return NULL from the default autoplug-sort handler

...instead of copying the array. Returning NULL will result
in the original factories array to be used and prevents a useless
array copy in most use cases.

13 years agodecodebin2: Return NULL from the default autoplug-sort handler
Sebastian Dröge [Fri, 18 Feb 2011 11:01:05 +0000 (12:01 +0100)]
decodebin2: Return NULL from the default autoplug-sort handler

...instead of copying the array. Returning NULL will result
in the original factories array to be used and prevents a useless
array copy in most use cases.

13 years agouridecodebin: Update autoplug-* signal docs from decodebin2
Sebastian Dröge [Fri, 18 Feb 2011 11:00:34 +0000 (12:00 +0100)]
uridecodebin: Update autoplug-* signal docs from decodebin2

uridecodebin proxies these signals.

13 years agodecodebin2: Update documentation of the autoplug-* signals
Sebastian Dröge [Fri, 18 Feb 2011 10:58:44 +0000 (11:58 +0100)]
decodebin2: Update documentation of the autoplug-* signals

Add notes about the behaviour if multiple signal handlers are connected.
For most autoplug-* signals only the first signal handler will ever
be invoked.

Also add to the autoplug-sort docs that the signal handler can return NULL
to specify that the order should change and other handlers get the chance
to sort the array.

13 years agodecodebin2: Keep the original factory list if the sort signal handlers returned NULL
Sebastian Dröge [Fri, 18 Feb 2011 10:57:12 +0000 (11:57 +0100)]
decodebin2: Keep the original factory list if the sort signal handlers returned NULL

13 years agouridecodebin: expose "autoplug-sort" signal
tskd2@yahoo.co.jp [Wed, 16 Feb 2011 11:14:25 +0000 (20:14 +0900)]
uridecodebin: expose "autoplug-sort" signal

It is a proxy of the decodebin2's one, and was missing
in the previous code.

See bug #642433.

13 years agoplaybin2: Use a recursive mutex for the playbin lock
Sebastian Dröge [Fri, 18 Feb 2011 09:57:40 +0000 (10:57 +0100)]
playbin2: Use a recursive mutex for the playbin lock

This lock is taken when activating a group, which could result in
calling the autoplug-continue callback, which also needs this lock
to access the sinks.

See bug #642174.

13 years agodecodebin2: Disconnect signal handlers when removing a failed element
Sebastian Dröge [Fri, 18 Feb 2011 08:36:34 +0000 (09:36 +0100)]
decodebin2: Disconnect signal handlers when removing a failed element

This prevents crashes later if one of the signals is emitted after the
element was removed from decodebin2 already, which can happen in discoverer.

13 years agotypefind: Fix mpeg TS detection
David Schleef [Wed, 16 Feb 2011 03:23:48 +0000 (19:23 -0800)]
typefind: Fix mpeg TS detection

13 years agotheoraenc: move debug category init earlier
David Schleef [Sat, 5 Feb 2011 01:36:40 +0000 (17:36 -0800)]
theoraenc: move debug category init earlier

13 years agooggparse: better detection of delta unit flag
David Schleef [Fri, 4 Feb 2011 06:41:23 +0000 (22:41 -0800)]
oggparse: better detection of delta unit flag

13 years agotheoraenc: Set speed level while running
David Schleef [Sun, 16 Jan 2011 02:21:28 +0000 (18:21 -0800)]
theoraenc: Set speed level while running

13 years agoSet the theoraenc speed-level property from libtheora's defaults.
Ralph Giles [Thu, 13 Jan 2011 23:12:53 +0000 (15:12 -0800)]
Set the theoraenc speed-level property from libtheora's defaults.

The speed-level property, which allows callers to trade of encoding
quality for speed in the libtheora api, has a version-dependent
maximum and default values. Instead of hardcoding the acceptable
range for the theoraenc element's presentation of this setting,
we query the library directly at class initialization time and
set the maximum and default values from that. If the query fails,
we fall back to the previous default setting.

To keep the values reported by gst-inspect (which I'm told use
the spec values from the class) with those available on an\
instantiated element, we remove to setting of enc->speed_level
from the initializer and instead pass G_PARAM_CONSTRUCT to
the property spec flags, asking g_object to set this property
when theoraenc objects are constructed.

NB in theory the maximum speed-level could depend on the actual
video caps. If later versions of libtheoraenc do this, a second
call will need to be made from theora_enc_reset to update the
property, since this function is mostly useful for realtime
adjustment of performance while the pipeline is running.