Commit graph

9508 commits

Author SHA1 Message Date
Stefan Kost
04470fc794 basetransform: use new _caps_can_intersect() 2009-08-06 15:30:33 +03:00
Stefan Kost
568202cb47 caps: add gst_caps_can_intersect()
Often we don't need the result of the intersection. Add a variant that only
tries to intersect. It can break out earlier and does less GValue copying.
API: gst_caps_can_intersect()
2009-08-06 15:30:33 +03:00
Stefan Kost
cfacd2cbb3 basetransform: only check caps_is_fixed() if they changed
The previous code could call gst_caps_is_fixed() for the same caps many times.
2009-08-06 15:30:33 +03:00
Stefan Kost
baaf7e5319 caps: split callback for structure intersect into two functions
We call this separately. there is no much benefit in reusing the callback.
Splitting is let us remove a branch also.
2009-08-06 15:30:33 +03:00
Stefan Kost
f5314ecae1 logging: log if we copy caps to be able to track it 2009-08-06 15:30:33 +03:00
Stefan Kost
24517c8975 caps: add comments about g_ptr_array size behaviour
Just explain the behaviour to avoid that someone else is wasting time trying to
improve this too.
2009-08-06 15:30:33 +03:00
Stefan Kost
89cefd8b59 example: unref the clock id 2009-08-06 15:30:32 +03:00
Stefan Kost
12f9b39fac pad: use correct variable in test 2009-08-06 15:30:32 +03:00
Stefan Kost
e4ee7831e3 registry: add filename to debug message, like elsewhere 2009-08-06 15:30:32 +03:00
Stefan Kost
b01fb4d230 bin: fix compiler warning about unused var when disabling debug logging 2009-08-06 15:13:36 +03:00
Mark Nauwelaerts
3352c5d970 queue: post error message when pausing task
If downstream returns error and upstream has already delivered
everything (including EOS) and will no longer be around to find
out that we paused (and why), post error message.  Fixes #589991.
2009-08-06 13:42:25 +02:00
Mark Nauwelaerts
3f0e4bd6f6 queue: add unit test
Make a downstream element return an error after upstream has already
put all data into queue (including EOS).  As such, upstream
will not be around to pick up the error, so it is up to queue to
act appropriately.  See #589991.

Note there may be downstream fatal errors (e.g. negotiation) that do
not warrant an error message already having been posted.
2009-08-06 13:40:18 +02:00
Wim Taymans
a2a973eafd basetransform: clarify _caps_is_equal() 2009-08-06 10:53:25 +02:00
Wim Taymans
ec4d259b67 basetransform: refactor metadata modifications
Check when we need to touch the metadata of the output buffer after selecting
the output buffer so that we have everything in one place.
Also take flags and timestamp modifications into account.
2009-08-06 10:53:22 +02:00
Wim Taymans
2f5ed9e29d capsfilter: only set caps when different
When we have an input buffer with caps and when those caps are different from
the caps we want, only then make a writable copy of the input buffer as the
output buffer and set the caps on that output buffer. This avoids some cases
where we took a subbuffer for setting caps that were the same.
2009-08-06 10:53:12 +02:00
Wim Taymans
db6ce33e3a basetransform: enable optimisation
When we have the same input as output caps, reuse the input caps object. After
the caps refcounting has been sorted out now, we can finally enable this
optimisation.
2009-08-06 10:53:07 +02:00
Wim Taymans
96e342b686 tests: don't set caps on unwritable buffers
Take the ref after setting the caps on a buffer because else the buffer is
techinically not writable.
2009-08-06 10:53:01 +02:00
Wim Taymans
49f24e2044 queue: get caps after making writable
Get the caps of the buffer after we made the buffer writable. This did not
cause any problems but it's nicer this way.
2009-08-06 10:52:56 +02:00
Wim Taymans
04f3f096c3 capsfilter: fix refcounting problem
Make sure the metadata is writable before setting the caps on a buffer.
2009-08-06 10:52:45 +02:00
Wim Taymans
6cf64beb79 basetransform: fix refcounting problem
Add some more debug info.
Make sure that the output buffer has writable metadata before we attempt to set
caps on it.

fixes #583999
2009-08-06 10:52:34 +02:00
Wim Taymans
950c70c8bb caps: add some more debugging in _replace 2009-08-06 10:52:12 +02:00
Wim Taymans
4146fa2eed pad: Add some more debugging 2009-08-06 10:52:05 +02:00
Wim Taymans
3b26e0c600 ghostpad: small improvements
Unref the target pad after we used it for debugging.
Add some more debug.
Only replace caps when they changed.
2009-08-06 10:51:54 +02:00
Wim Taymans
575e1de88b basesink: cleanups in position queries
Use existing boolean flag to pass position queries upstream. Also add upstream
queries for the last position queries.
2009-08-06 10:45:30 +02:00
Tim-Philipp Müller
cc57c404fd configure.ac: fix libxml2 check, which is only needed for xml load/save now
Since the registry doesn't use libxml2 any longer, it's no longer necessary
to disable both xml load/save *and* the registry to get rid of the libxml2
dependency, disabling just xml loading/saving is enough. Fixes #590841.
2009-08-06 09:21:56 +01:00
Tim-Philipp Müller
19847e1956 gst-uninstalled: rename uninstalled registry file to registry.dat
We're not using the xml registry any longer after all.
2009-08-06 09:21:43 +01:00
Tim-Philipp Müller
0f0d3cb146 gst-uninstalled: refine search paths for uninstalled plugin modules
Use more refined search paths for our plugin modules. Not only does
this make things much faster in an uninstalled setup, it also makes
sure we're not accidentally using out-of-date plugins built ages
ago as part of a (failed) 'make distcheck' when we forget to clean
up the distcheck build directory.
2009-08-06 09:21:33 +01:00
Tim-Philipp Müller
02790ee700 docs: dist GStreamer-1.0 buffer design draft 2009-08-06 09:21:19 +01:00
Sebastian Dröge
ea9e3392c1 taglist: Add new ALBUM_ARTIST tag to the docs 2009-08-06 06:50:41 +02:00
John Millikin
3e538b71fb taglist: Add support for ALBUM_ARTIST tag
The "album artist" tag is used when the artist of an entire
album differs from the artist of an individual track; for example,
when a "guest artist" appears on an album, or on compilations.

Fixes bug #590430.
2009-08-06 06:41:58 +02:00
Stian Selnes
6033efb920 basesink: Query upstream for the position if conversion in PAUSED failed
Fixes bug #590045.
2009-08-06 06:41:57 +02:00
Kipp Cannon
6bc2bf8307 basetransform: Improve debug output in gst_base_transform_acceptcaps()
Fixes bug #589524.
2009-08-06 06:41:57 +02:00
Sebastian Dröge
6fd97a6d64 basetransform: Don't unset GAP flag if working in passthrough mode
Fixes bug #589314.
2009-08-06 06:41:57 +02:00
Jan Schmidt
4385e707b1 back to development -> 0.10.24.1 2009-08-06 01:43:57 +01:00
Jan Schmidt
6bba2b6eeb Release 0.10.24 2009-08-05 00:53:17 +01:00
Jan Schmidt
a4f15cbe8a Update .po files 2009-08-05 00:53:11 +01:00
Mark Nauwelaerts
eeb6d810bc bytereader: avoid wrap-around in buffer size checks. Fixes #590622. 2009-08-03 20:55:21 +02:00
Jan Schmidt
8834f6272c 0.10.24.5 pre-release 2009-07-30 14:50:24 +01:00
Edward Hervey
cfb22080e2 collectpads: Get the flushing state with the object lock taken.
Fixes #590056
2009-07-29 11:50:17 +02:00
Edward Hervey
c138aa8648 collectpads: Make sure the CollectData list is up-to-date when reading/setting it
Without this, we risked:
* Checking the flushing state on an unexisting list
* Not setting the flushing state on pads that had just been added

Partially fixes #590056
2009-07-29 11:50:06 +02:00
Edward Hervey
fcbba9b15a collectpads: Split out _check_pads into a version without lock taking.
This is so we can use _check_pads in places where we've already taken
the lock in question.

Partially fixes #590056
2009-07-29 11:49:39 +02:00
Tim-Philipp Müller
623c19983a check: make new GstStreamConsistency structure private
There's no need to have GstStreamConsistency in a public header for
the time being, so make it private. While we're at it, add a gtk-doc
blurb for it though. Re-fixes #588744.
2009-07-28 15:26:42 +01:00
Jan Schmidt
db8aeb3b84 0.10.23.4 pre-release 2009-07-24 13:50:19 +01:00
Robin Stocker
527da05476 basesrc: don't handle SEEKING queries for formats that don't match the one the source operates in
Return FALSE in basesrc's default query handler when we get a SEEKING query for
a format that's not the one the source operates in. Previously (ie. before, in
the git version) we would return TRUE in that case and seekable=FALSE, which
is more correct, but causes backwards compatibility problems. (Before that
we would change the format of the query when answering, which was completely
broken since callers don't expect that or check for it). Since the SEEKING
query is a fairly recent addition, not all demuxers, parsers and decoders
implement it yet, in which case any SEEKING query by an application will
just be passed upstream where it will then be handled by basesrc. Now, if
e.g. totem does a SEEKING query for TIME format and we have a demuxer that
doesn't implement the query, basesrc would answer it with seekable=FALSE in
most cases, and totem can only take that as authoritative answer, not knowing
that the demuxer doesn't implement the SEEKING query. To avoid this, we make
basesrc return FALSE to SEEKING queries in unhandled formats. That way
applications like totem can fall back on assuming seekability depending on
whether a duration is available, or somesuch. Downstream elements doing
such queries are likely to equate an unhandled query with a non-seekable
response as well, so this should be an acceptable fix for the time being.

See #584838, #588944, #589423 and #589424.
2009-07-24 11:54:31 +01:00
Stefan Kost
01014d6717 Automatic update of common submodule
From fedaaee to 94f95e3
2009-07-24 00:41:55 +03:00
Stefan Kost
1a44bd93d6 gstregistrybinary: add +1 after error checking
The current code made the error checking pointless by changing -1 to 0 in error
cases. Also don't leak a pad template on error.
2009-07-20 20:59:29 +03:00
Jan Schmidt
ab6d3c736b 0.10.23.3 pre-release 2009-07-20 17:05:31 +01:00
Wim Taymans
ffca244c26 tests: make sure the tasks are joined
Call _clean_all() on the task to make sure everything is joined and stopped.

See #589127
2009-07-20 18:03:21 +02:00
Wim Taymans
a78199ae5e task: fix taskpool leak
GstTaks does not always unref the taskpool it was created from because it
depends on when the pool provided an ID for joining the task.
Rework some code so that we always unref the pool and optionally join when the
pool provided an id.

Fixes #589127
2009-07-20 18:02:53 +02:00
Wim Taymans
141e2af580 basesrc: make tag queuing threadsafe
See #588745
2009-07-20 13:40:16 +02:00