Wim Taymans
4ee5c61a2d
basesink: add property to configure a throttle-time
...
Add a property to configure the throttle time on a sink. The
property is not yet used.
See #638891
2011-02-10 15:21:45 +01:00
Mark Nauwelaerts
af13409798
net: use socklen_t where appropriate rather than specific type
...
In particular, fixes Cygwin build where socklen_t is defined as int
in line with native win32 api definition.
2011-01-31 18:55:21 +01:00
Stefan Kost
5cc2e6af79
nettimeprovider: handle invalid network addresses earlier
...
Handle inet_aton() return code.
2011-01-25 16:17:14 +02:00
Stefan Kost
7fc30f2d83
checks: add a comment to indicate that we intentionally leave out the 'break'
2011-01-25 16:17:14 +02:00
Stefan Kost
b6926d6707
docs: small controller api docs improvement
2011-01-25 16:17:14 +02:00
Tim-Philipp Müller
9382017b42
check: don't leak xml file name if GST_CHECK_XML is set
...
Spotted by nvineeth@gmail.com
2011-01-24 12:52:04 +00:00
Tim-Philipp Müller
a1581a5364
gobject-introspection: try harder to make g-ir-scanner use the right libgstreamer
...
Apply fix from libgstbase to all core libs now that we know that it
works. Should fix problems with g-ir-scanner using the wrong
(ie. system) libgstreamer, leading to linking errors such as
undefined reference to `gst_clock_single_shot_id_reinit'.
https://bugzilla.gnome.org/show_bug.cgi?id=637549
2011-01-18 09:04:51 +00:00
Tim-Philipp Müller
6c073ca2c7
gobject-introspection: another attempt to make g-i find the right libgstreamer
...
Turns out g-i puts the additional -L we specify at the end, helpfully.
https://bugzilla.gnome.org/show_bug.cgi?id=637549
2011-01-13 20:12:16 +00:00
Tim-Philipp Müller
d4407efd66
controller: update g-i include paths as well for header changes
...
Hopefully makes Lucid and Maverick build bots happy again
2011-01-12 10:21:43 +00:00
Benjamin Otte
835bac05b9
controller: Fix headers to use < > in #include statements
...
The behavior of " " in include statements is implementation-defined -
see the C standard, section 6.10.2 or
http://stackoverflow.com/questions/21593
2011-01-11 19:26:40 +01:00
Benjamin Otte
a9de00089e
gstnet: Fix --c-include for gir generation
...
Previously it was - probably due to copy/paste error - looking for
gstbase headers.
It's changed now to only include the one public header for gstnet.h
2011-01-11 19:16:43 +01:00
Tim-Philipp Müller
1ae28ed41c
gobject-introspection: make g-ir-scanner try harder to find the right libgstreamer
...
It's not quite clear to me why g-ir-scanner doesn't get this info from
the pkg-config file, nor why libtool doesn't get it from the .la.
https://bugzilla.gnome.org/show_bug.cgi?id=637549
2011-01-11 14:41:27 +00:00
Wim Taymans
5c479aa3a4
basesrc: make sure we wait and release the live lock
...
Make sure we release the live lock and wait in all cases when we need to wait
for the playing or flushing state change.
Fixes #635785
2011-01-10 13:30:05 +01:00
Tim-Philipp Müller
655451db54
basesrc, basesink: add some FIXMEs for the type of the blocksize property
2011-01-02 16:59:18 +00:00
Wim Taymans
e444ffecf7
basesrc: fix deadlock
...
Only go into LIVE_WAIT when the are not live_running and only stop waiting when
live_running is TRUE. If we don't loop, we could deadlock when called from
outside of basesrc, such as baseaudiosrc.
Fixes #635785
2010-12-29 11:48:18 +01:00
Wim Taymans
ef44d4b539
basesink: also preroll async=false sinks
...
Also preroll async=false sinks after a flush.
2010-12-28 16:23:32 +01:00
Wim Taymans
041d33e5f5
basesink: fix typo
2010-12-21 10:35:40 +01:00
Edward Hervey
bf41fb056a
base: documentation fixups and annotation
2010-12-17 19:19:40 +01:00
Edward Hervey
5372e81c9a
basesrc: Use an atomic integer instead of a lock for checking tags presence
...
https://bugzilla.gnome.org/show_bug.cgi?id=636455
2010-12-17 10:59:25 +01:00
Sebastian Dröge
0a74684b41
basetransform: Handle downstream giving a buffer with new caps but invalid size
...
This can happen for example when downstream proposed new caps, later proposed
the previous caps again which in turn enables passthrough mode in upstream
elements and the wrong-sized buffer appears in an element where the caps
change never happened. Simply allocate a new buffer in this case.
See bug #635461 .
2010-12-16 10:58:33 +01:00
Wim Taymans
6da39bf508
basesink: improve last_stop calculation
...
Only update the last_stop value when we had a valid stop position for the
clipping or else the clipping code assumes the stop position extends to the end
of the segment, which makes the position reporting return weird values.
2010-12-14 19:00:14 +01:00
Wim Taymans
4fd63f0ce2
basesink: fix object type handling in queued preroll
...
Factor out the method to get the object type.
When preroll-queue-len > 0, use the right object type instead of ignoring
buffer-lists.
2010-12-14 15:54:41 +01:00
Edward Hervey
c62c009d7e
libs: Fix GIR build for srcdir != builddir
2010-12-11 10:10:04 +01:00
Stefan Kost
1de8b60034
docs: fix wrong use of Since: keyword
2010-12-08 12:17:35 +02:00
Tim-Philipp Müller
686b16756d
docs: libgstbase: more gobject introspection annotations
...
Many of these are superfluous and were added for clarity.
2010-12-07 18:37:04 +00:00
Edward Hervey
d1eb8a14c5
libs: Add -I$(top_srcdir)/libs to g-ir-scanner commands
...
Without this, it will fail finding all headers.
2010-12-07 13:19:10 +01:00
Edward Hervey
27c0bc93b7
basesink: Don't forget to unref the cached ClockId
2010-12-05 15:58:48 +01:00
Edward Hervey
4525a405d5
gstcheck: Don't check pad refcount too early
...
Because of the new pad caching system, the peer pad might still
have a reference on a pad. We therefore delay the refcount checking
til 'after' we unlink the pad from any potential peer.
2010-12-05 14:46:28 +01:00
Edward Hervey
01039b1671
gstdataqueue: Don't break ABI
...
The order of the field was wrong, and the size of the structure didn't
end up being the same.
2010-12-02 19:44:41 +01:00
Wim Taymans
a813aad0ac
basesink: rework position reporting code
...
Unify the different position reporting code paths to make it more
understandable.
Use start_time to get more accurate position reporting in paused.
Fix unit tests for more accurate reporting.
2010-12-02 19:10:46 +01:00
Wim Taymans
79570f49dc
basesink: perform wait_preroll in a while loop
...
We need to continue calling wait_preroll() as long as the need_preroll variable
is true.
2010-12-02 19:10:45 +01:00
Wim Taymans
9076d5688f
basesink: also preroll after a flush with async=false
...
Make sure to preroll after a flush even when we are async=false.
Add unit test.
Fixes #634965
2010-12-02 19:10:45 +01:00
Wim Taymans
19e5a54c9f
adapter: improve docs a little.
2010-12-02 19:10:45 +01:00
Edward Hervey
ece40dacbc
basesink: Re-using GstClockID instead of constantly recreating one
...
Makes _sink_wait_clock at least 2 times faster.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
7115b77aab
basesink: Pass along miniobject type through various functions
...
Avoids doing useless GST_IS_*
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
606e59468d
basesink: Switch enable_last_buffer to an atomic int
...
Avoids having to take a lock to read/write it.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
7cc08390b9
gstdataqueue: Only emit g_cond_signal when needed
...
Keep track of which cond we're waiting for and only emit when needed.
https://bugzilla.gnome.org/show_bug.cgi?id=632779
2010-12-02 19:04:55 +01:00
Evan Nemerson
4906671694
introspection: Include exported packages information in GIRs
...
https://bugzilla.gnome.org/show_bug.cgi?id=635389
2010-11-21 00:36:30 +00:00
Jonathan Matthew
754c3038be
basetransform: use input position for queries if we have no output position
2010-10-29 15:45:04 +02:00
Wim Taymans
ce919c0573
basetransform: fix reverse negotiation
...
When the downstream element suggests a new format, pass the suggestion
upstream if we can't convert to it.
Fixes #633147
2010-10-29 12:03:48 +01:00
Tim-Philipp Müller
07755fd5ee
bytereader: const-ify byte reader argument in peek/scan API
...
Because we can.
2010-10-22 12:04:09 +01:00
Mark Nauwelaerts
21c5064783
basesink: recompute correct running time for buffer ending flushing step
...
Prevents delaying/hanging when resuming PLAYING.
Fixes #632433 .
2010-10-20 18:46:39 +02:00
Tim-Philipp Müller
b0d7c61f18
docs: fix misc. gtk-doc warnings in libs
...
(for gtk-doc 1.15)
2010-10-16 19:19:47 +01:00
Tim-Philipp Müller
1d9fbd1a7c
Revert "libs/gst/dataqueue: Document gst_data_queue_new_full"
...
This reverts commit 80727c1177
.
This doesn't make sense. gst_data_queue_new_full() is already
documented above. And we need the doc blurb for _new() here.
2010-10-16 18:30:18 +01:00
Tim-Philipp Müller
5b25761f29
docs: add some gtk-doc Since: markers
...
Add some gtk-doc Since: markers, fix one Since: marker,
fix typo.
2010-10-16 16:53:49 +01:00
Edward Hervey
80727c1177
libs/gst/dataqueue: Document gst_data_queue_new_full
2010-10-13 12:07:56 +02:00
Edward Hervey
906ae99742
base/gstdataqueue: inline some functions, get levels with memcpy.
2010-10-13 12:07:17 +02:00
Stefan Kost
ad2e7b1de3
docs: use the gtk-doc shortcuts to get coloured and xrefed example
2010-10-11 16:44:01 +03:00
Wim Taymans
428a6477d8
basesrc: tag as a SOURCE element
...
Tag all elements deriving from the basesrc with the IS_SOURCE flag.
2010-10-11 11:16:27 +02:00
Sebastian Dröge
14023fff89
basetransform: Report the output position on POSITION queries on the srcpad
...
There can be a difference between input and output last_stop.
Fixes bug #629410 .
2010-10-10 18:18:23 +02:00
Sebastian Dröge
894f833da9
bytewriter: Add missing file
2010-10-08 12:48:42 +02:00
Sebastian Dröge
69ef479ce4
bytewriter: Add unchecked variants of the writing functions
...
These don't check if there's enough free space available and are
available as inline functions only.
API: gst_byte_writer_put_int8_unchecked
API: gst_byte_writer_put_int16_be_unchecked
API: gst_byte_writer_put_int16_le_unchecked
API: gst_byte_writer_put_int24_be_unchecked
API: gst_byte_writer_put_int24_le_unchecked
API: gst_byte_writer_put_int32_be_unchecked
API: gst_byte_writer_put_int32_le_unchecked
API: gst_byte_writer_put_int64_be_unchecked
API: gst_byte_writer_put_int64_le_unchecked
API: gst_byte_writer_put_uint8_unchecked
API: gst_byte_writer_put_uint16_be_unchecked
API: gst_byte_writer_put_uint16_le_unchecked
API: gst_byte_writer_put_uint24_be_unchecked
API: gst_byte_writer_put_uint24_le_unchecked
API: gst_byte_writer_put_uint32_be_unchecked
API: gst_byte_writer_put_uint32_le_unchecked
API: gst_byte_writer_put_uint64_be_unchecked
API: gst_byte_writer_put_uint64_le_unchecked
API: gst_byte_writer_put_float32_be_unchecked
API: gst_byte_writer_put_float32_le_unchecked
API: gst_byte_writer_put_float64_be_unchecked
API: gst_byte_writer_put_float64_le_unchecked
API: gst_byte_writer_put_data_unchecked
API: gst_byte_writer_fill_unchecked
2010-10-08 12:19:45 +02:00
Tim-Philipp Müller
9bd4432d08
controller, dataprotocol: make public enum _get_type() functions thread-safe
...
Not that it is likely to matter in practice, but since these are public
API they should probably be thread-safe.
2010-10-08 09:34:47 +01:00
Tim-Philipp Müller
c7e3bab65d
dataprotocol, lfocontrolsource: fix enum value name in enums that are public API
...
So run-time bindings can introspect the names correctly (we abuse this
field as description field only in elements, not for public API
(where the description belongs into the gtk-doc chunk).
https://bugzilla.gnome.org/show_bug.cgi?id=629946
2010-10-08 09:28:21 +01:00
Sebastian Dröge
3ee6ae4030
bytewriter: Fix possible infinite loop caused by an overflow
2010-10-08 09:47:12 +02:00
Tim-Philipp Müller
3adac1b9cd
lfocontrolsource: use math-compat.h for M_PI
2010-10-05 18:31:58 +01:00
Stefan Kost
a11b047d00
basesink: don't take preroll-lock in get_property
...
Use atomic ops to read and write more properties. Taking the preroll lock in get_property
can lock up applications reading the property during preroll.
2010-10-05 12:30:34 +03:00
Stefan Kost
72e9834e88
basesink: add a fixme for 0.11
2010-10-05 12:29:19 +03:00
Wim Taymans
c9c9894552
basesink: format negative values better
...
Format negative values properly in the debug log.
2010-10-04 15:56:59 +02:00
Sebastian Dröge
f758e465c8
bytewriter: Add inline variants of all important functions
2010-10-03 23:32:06 +02:00
Sebastian Dröge
dd762eb49f
bitreader: Add inlined and unchecked versions of the important functions
...
API: gst_bit_reader_skip_unchecked
API: gst_bit_reader_skip_to_byte_unchecked
API: gst_bit_reader_get_bits_uint16_unchecked
API: gst_bit_reader_get_bits_uint32_unchecked
API: gst_bit_reader_get_bits_uint64_unchecked
API: gst_bit_reader_get_bits_uint8_unchecked
API: gst_bit_reader_peek_bits_uint16_unchecked
API: gst_bit_reader_peek_bits_uint32_unchecked
API: gst_bit_reader_peek_bits_uint64_unchecked
API: gst_bit_reader_peek_bits_uint8_unchecked
This alone makes flacparse about 3 times faster.
2010-10-03 15:32:41 +02:00
Sebastian Dröge
10c18151d2
bytewriter: Add guards to the inlined get_pos/get_remaining/get_size/etc functions
2010-10-03 15:32:41 +02:00
Sebastian Dröge
c41c2f7964
bitreader: Optimize peek_bits/get_bits a bit
...
Use local variables instead of dereferencing the bitreader
pointer all the time and don't copy the reader for peek_bits.
2010-10-03 15:32:41 +02:00
Wim Taymans
29e23e9142
basesink: improve adjust_time()
...
Add some more comments.
Make sure we don't end up with negative timestamps.
2010-09-24 12:22:33 +02:00
Havard Graff
54a5871434
basesink: renderdelay needs to be subtracted in adjust_time()
...
latency is already sink-latency + render-delay, and here we only
want to deal with the sink-latency.
Fixes #630436
2010-09-24 12:16:48 +02:00
Havard Graff
51d20158be
basetransform: Make a WARNING into a DEBUG statement
...
Fixes bug #630437 .
2010-09-23 21:55:04 +02:00
Wim Taymans
90d65cb446
basetransform: avoid useless memcpy
...
Because of the awkward refcounting in prepare_output_buffer, we might end up
with writable buffers that point to the same data. Check for those cases so that
we avoid a useless memcpy and keep valgrind quiet.
Fixes #628176
2010-09-23 18:23:39 +02:00
David Schleef
9dbe690f72
adapter: Add check for pattern bits not in mask
2010-09-18 19:29:09 -07:00
Wim Taymans
1afaa1680f
adapter: add function to get a list of buffers
...
Add a function to retrieve a list of buffers containing the first N bytes from
the adapter. This can be done without a memcpy and should make it possible to
transfer the list to a GstBufferList later.
2010-09-17 17:35:41 +02:00
Wim Taymans
a144882871
adapter: reuse more data in _peek()
...
Optimize _peek() some more by reusing already assembled data when we can.
2010-09-17 15:07:50 +02:00
Wim Taymans
961e2029db
adapter: optimize _take() a little more
...
When we have already assembled some data before, reuse this data and only copy
the part that is new.
2010-09-17 13:57:39 +02:00
Wim Taymans
fc4caf55c9
adapter: refactor adapter take
...
Move some common code into one place
2010-09-17 12:48:55 +02:00
Wim Taymans
1dde3cb440
adapter: add support for 0 sized buffers
...
Add support for 0 sized buffers. This is interesting in combination with the
timestamp functions.
Fixes #629553
2010-09-17 12:40:12 +02:00
Jeffrey S. Smith
4375e998ee
Fix casts in a bunch of inline functions to maintain correct const-ness
...
Make code including GStreamer headers compile with -Wcast-qual by
maintaining const-ness when casting. Also fix function signature of
gst_byte_writer_set_pos(): the byte writer should not be marked as
const.
https://bugzilla.gnome.org/show_bug.cgi?id=627910
2010-09-02 00:09:08 +01:00
Tim-Philipp Müller
f9204d5d70
build: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
...
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used). A useful side
effect of this is also that the PKG_CONFIG_PATH environment
is now logged in the configure output.
2010-09-01 17:08:58 +01:00
Edward Hervey
8c2481dd57
check: Use g_strcmp0 instead of strcmp
...
Avoids segfaults when using NULL arguments.
2010-08-30 12:48:40 +02:00
Sebastian Dröge
2dfb0d2772
base: Stop using GST_FLOW_IS_FATAL()
...
And document the special handling of WRONG_STATE.
2010-08-27 16:59:09 +02:00
Wim Taymans
f8abf35000
basetransform: recover from invalid downstream suggestions
...
When we are handling a buffer and need to allocate an output buffer, handle the
case when downstream suggests us a format that we can't convert the input buffer
to. In that case, check if there is another format available downstream instead
of failing.
Fixes #621332 and see also #614296
2010-08-26 15:18:47 +02:00
Thiago Santos
ac9bfe25ae
gstcollectpads: Fix docs about GstCollectData list
...
Add to the docs the fact that is only safe to iterate
GstCollectPad's data list inside the collected callback.
Fixes #610366
2010-08-12 16:05:35 -03:00
Sebastian Dröge
27bebf7456
basesrc: Make sure the buffer metadata is writable before changing it
2010-08-06 18:44:33 +02:00
Stefan Kost
2237af4b6b
debug: logging improvements
...
Use the event serialisation. Log formats name instead of number.
2010-08-05 10:31:50 +03:00
Stefan Kost
5d0015048b
check: don't use c++ keywords as variable names
2010-08-05 10:31:50 +03:00
Stefan Kost
71b494639b
basesrc: log seek event details
2010-08-05 10:31:50 +03:00
Stefan Kost
a82b607885
basesrc: avoid some caps manipulation
...
After the intersect we have writable caps. Copy the template caps so that also
there we have writable caps.
2010-08-05 09:40:02 +03:00
Thiago Santos
1b99e2e2dc
bytereader: Fix docs
...
Fix typo in docs for the unsigned peek functions
2010-08-04 13:47:23 -03:00
Rob Clark
29289ee79e
basetransform fix for upstream caps-renegotiation
...
If initially pass-through caps are negotiated between a transform element's
sink and src pads, but then the downstream element returns different caps
on a buffer from pad_alloc(), basetransform gets stuck with proxy_alloc=TRUE
even though the upstream peer doesn't accept the caps, causing
gst_pad_peer_accept_caps() to be called on each buffer in _buffer_alloc():
if (!gst_caps_is_equal (newcaps, caps)) {
GST_DEBUG_OBJECT (trans, "caps are new");
/* we have new caps, see if we can proxy downstream */
>> if (gst_pad_peer_accept_caps (pad, newcaps)) {
/* peer accepts the caps, return a buffer in this format */
GST_DEBUG_OBJECT (trans, "peer accepted new caps");
which is taking ~40ms/frame.
This patch does two things. (1) if the buffer returned from pad_alloc() has
new caps, trigger the decision whether to proxy the buffer-alloc to be
revisited, and (2) disable proxy if peer does not accept new caps. (The first
part may not be strictly needed, but seemed like a good idea.)
Note that this issue would not arise except in case of downstream elements
who have on their template-caps, some that would be suitable for pass-through,
but at runtime pick more restrictive caps (for ex, after querying a driver for
what formats it actually supports).
2010-07-27 17:34:49 +02:00
Thiago Santos
574e6ab423
basetransform: Try suggesting caps on bad caps pad_alloc
...
When basetransform received an unsupported caps on pad_alloc
it just returned not-negotiated. This patch makes it query
the allowed caps between his sinkpad and upstream's srcpad
to find a caps to suggest.
This happens when dinamically switching pipeline elements
and upstream pad_allocs with the previous caps that was
being used.
Fixes #614296
2010-07-26 14:49:14 -03:00
Sebastian Dröge
29a35e70e1
basetransform: Allow the subclass to add new fields to caps when getting new caps from downstream
...
This was already done in all other cases where new caps are handled
except upstream negotiation.
2010-07-17 21:30:18 +02:00
Tim-Philipp Müller
da289fd8e9
gstcheck: fix some silly list iteration code
...
g_list_length() is not the best way to check if a list is empty or not.
2010-07-16 18:20:57 +01:00
Sebastian Dröge
55986b9a10
basesrc: Return values in stream time for the POSITION query
...
Fixes bug #623622 .
2010-07-16 17:26:54 +02:00
Sebastian Dröge
249c4c18d0
basesink: Implement GstElement::get_query_types()
2010-07-16 17:26:50 +02:00
Sebastian Dröge
b2e7c4bd45
basesink: Only answer the SEGMENT query in pull mode
...
Otherwise the element handling the seeks should answer this query.
Fixes bug #623622 .
2010-07-16 17:26:31 +02:00
Sebastian Dröge
e2db318921
basetransform: Implement POSITION query
...
Fixes bug #623541 .
2010-07-16 17:26:22 +02:00
Alessandro Decina
3a553f4eda
basesink: add accessors for the enable-last-buffer property.
...
API: gst_base_sink_set_last_buffer_enabled
API: gst_base_sink_is_last_buffer_enabled
2010-07-06 16:39:18 +02:00
Alessandro Decina
f079ff3f20
basesink: add new enable-last-buffer property.
...
Add a new enable-last-buffer property. When false, it disables storing the last
received buffer in basesink::last-buffer. This can be useful in cases where
buffers need to be released asap.
API: GstBaseSink::enable-last-buffer
2010-07-06 12:38:21 +02:00
Sebastian Dröge
e0467b0100
controller: Fix build with GST_REMOVE_DEPRECATED
2010-06-25 18:25:40 +02:00
Sebastian Dröge
a15344515a
basesink: Initialize jitter to prevent printing an uninitialized variable if waiting for the clock failed
2010-06-17 13:20:13 +02:00
Wim Taymans
f80a824a2f
basetransform: reevaluate proxy_alloc when reconfigured
...
When we reconfigure the transform element, make sure we reevaluate the proxying
of buffer_alloc the next time around.
Fixes #621332
2010-06-14 16:20:18 +02:00
Mark Nauwelaerts
7e23719a74
adapter: optimize progressive masked_scan
...
Retain the last scanned buffer entry and offset, so we can resume buffer
scanning there in case of a typical progressive scan.
Also potentially optimize _copy subsequently occurring in that area.
2010-06-14 15:09:59 +02:00
Mark Nauwelaerts
d5ed339f20
adapter: add extended masked_scan_uint32_peek that also provides matching value
...
Also add to .def and docs.
Fixes #619828 .
API: gst_adapter_masked_scan_uint32_peek
2010-06-14 15:09:38 +02:00