Commit graph

11423 commits

Author SHA1 Message Date
Wim Taymans
14d7db1b52 bus: make the bus almost lockfree
Use new GstPoll functionality to wakeup the mainloop.
Use an atomic queue on the writer side to post the messages.
The reader side it protected with the lock still because we don't want multiple
concurrent readers.
2011-02-16 17:56:39 +01:00
Wim Taymans
401d73df7f defs: fix defs file for new symbols 2011-02-16 17:56:39 +01:00
Wim Taymans
5f81eac5e1 atomicqueue: use correct array sizes 2011-02-16 17:56:39 +01:00
Wim Taymans
6b2c2a043d atomicqueue: fix docs some more 2011-02-16 17:56:39 +01:00
Wim Taymans
905fea098f atomicqueue: add refcounting and docs 2011-02-16 17:56:39 +01:00
Wim Taymans
ebb37b48d8 atomicqueue: make sure a min initial_size is used 2011-02-16 17:56:38 +01:00
Wim Taymans
4c9287687b atomicqueue: add an atomic queue
Add an atomic queue. The queue can be used from multiple threads simultaneously
and without taking any locks or doing any blocking operations. This makes it
highly scalable for things like the bus, bufferpools and object recycling.
2011-02-16 17:56:38 +01:00
Wim Taymans
8d27621e40 check: fix a leak in the bus unit test 2011-02-16 17:56:38 +01:00
Wim Taymans
1037fd9919 deinit: add progress type class unref 2011-02-16 17:56:38 +01:00
Stefan Kost
5e35837402 utils: tell also what pad a pad is already linked against 2011-02-16 15:15:26 +02:00
Sebastian Dröge
c1c0c86bba file{sink,src}: Check if non-URI characters are escaped, but only for the URI not the location property 2011-02-15 22:57:28 +01:00
Sebastian Dröge
39eeab382c file{src,sink}: Fix unit tests
filesink and filesrc should return exactly the same URI as passed
and must not escape path separators.
2011-02-15 22:57:28 +01:00
Sebastian Dröge
c4be9526eb filesink: Fix escaping of URIs
Especially don't escape / as path separators
2011-02-15 22:57:28 +01:00
Andoni Morales Alastruey
df9f72e78c filesrc: Fix escaping of file uris
Fixes bug #642393.
2011-02-15 22:57:28 +01:00
Wim Taymans
ea21e404a7 message: add timeout to progress message
Add a timeout member to the progress messages to let the application know about
the timeout so that it can do some gui things with it.
2011-02-15 18:55:23 +01:00
Wim Taymans
fab02a497a design: mention timeout in the progress message 2011-02-15 18:55:23 +01:00
Wim Taymans
fd0efad9cb design: make progress draft official 2011-02-15 18:55:22 +01:00
Wim Taymans
ec1bbd36bf message: rename category to code 2011-02-15 18:55:22 +01:00
Wim Taymans
37fbb5e20f message: add new message quark 2011-02-15 18:55:22 +01:00
Wim Taymans
8ff6a082d7 docs: add more standard categories 2011-02-15 18:55:22 +01:00
Wim Taymans
4a1ad4407d gst: register new type 2011-02-15 18:55:22 +01:00
Wim Taymans
5db2e45d5c check: add progress message unit test 2011-02-15 18:55:22 +01:00
Wim Taymans
f5b175972c message: add progress message functions 2011-02-15 18:55:22 +01:00
Wim Taymans
6382a6813d docs: update progress field
Avoid naming the progress free text field 'message' as it conflicts with the
message itself.
2011-02-15 18:55:22 +01:00
Mark Nauwelaerts
8bf4c1e1a8 queue2: don't read beyond the end of file upstream in pull mode
... which could lead to a premature eos being reported downstream,
rather than a successful partial read which would result when
performed directly on e.g. basesrc.
2011-02-15 14:51:20 +01:00
Chen Rui
b164a8232a utils: return real error in compatible link check
We need to ensure we call gst_pad_check_link() with the two pads in the correct
order. The order depends on wheter we iterate src or sink pads.

Signed-off-by: Chen Rui <rui.chen@tieto.com>
2011-02-14 22:45:50 +02:00
Wim Taymans
12d2d01663 pad: Check sinkpad for flushing
Check the sinkpad for the flushing state before calling the chainfunction on the
pad. We do this by checking the cache (which is also cleared on the srcpad when
the sink is set to flushing).

Fixes #641928
2011-02-14 17:31:25 +01:00
Thiago Santos
3aaef921c5 basetransform: Check for pad alloc caps when suggestion is not fixed
If after computing the suggestion with downstream caps we still have
a non-fixed suggestion caps try to intersect with the input caps
of the pad alloc to avoid useless renegotiations.

https://bugzilla.gnome.org/show_bug.cgi?id=642130
2011-02-14 15:59:25 +01:00
Wim Taymans
f8828eace6 basesink: improve duration calculation
Keep track of the average distance between incomming timestamps and
use that to estimate the frame duration when buffers have no duration set on
them.
2011-02-14 15:17:45 +01:00
Wim Taymans
79665e8247 basesink: improve rate calculation
When there is no duration on input buffers, assume the rate is 1.0
instead of (the undefined) 0.0.
2011-02-14 15:17:44 +01:00
Wim Taymans
9661a713ba basesink: improve average duration calculation
Improve the calculation of the duration. When we have no input duration set on
the input buffers stop is set to start and then we end up using a 0 duration in
the average calculation.
2011-02-14 15:17:44 +01:00
Wim Taymans
dc0120fe28 basesink: rename variable
Rename an internal variable to better reflact what its value means.
2011-02-14 15:17:44 +01:00
Stefan Kost
61d84b9469 parse-launch: trim whitespaces 2011-02-14 15:39:21 +02:00
Stefan Kost
8f9f95cd78 parse-launch: fix typo in pad-list length comparision
It was comparing the length with itself.

Fixes #642071.
2011-02-14 15:37:23 +02:00
Stefan Kost
7e9b886ba2 Automatic update of common submodule
From f94d739 to 1de7f6a
2011-02-14 12:52:30 +02:00
Tim-Philipp Müller
d6aec1acc3 gst-launch: pretty-print datetime tags 2011-02-13 22:57:48 +00:00
Tim-Philipp Müller
c8b3bdbf63 gstreamer.doap: update mailing list host 2011-02-10 23:30:21 +00:00
Wim Taymans
c8d1abdd00 basesink: fix some comments 2011-02-10 15:21:46 +01:00
Wim Taymans
d19f40c716 basesink: keep track of earliest QoS timestamp
Keep track of the earliest allowed timestamp according to the latest
QoS report and drop buffers before that time. Activate this filter
when throttling is enabled. We could later also activate this in the
other QoS cases.

See #638891
2011-02-10 15:21:46 +01:00
Wim Taymans
dad43fa004 basesink: use new QoS type
Use the new QoS type and send throttling QoS messages.
2011-02-10 15:21:46 +01:00
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
Wim Taymans
56826a5ee6 event: add QoS event type
Add a parameter to the QoS event to specify the QoS event type.
Update docs and add unit test.

See #638891
2011-02-10 15:21:45 +01:00
Wim Taymans
aa32e1fab1 clock: fix parameter docs 2011-02-10 15:21:45 +01:00
Wim Taymans
80311b758c design: tweak docs a little 2011-02-10 15:21:45 +01:00
Wim Taymans
2371cbbec2 design: update QoS document
Add new QoS types and talk about the new throttle QoS message.
2011-02-10 15:21:44 +01:00
Tim-Philipp Müller
166be8d7f1 docs: fix some typos in the bufferpool draft 2011-02-10 13:46:08 +00:00
Tim-Philipp Müller
2d37f06ce8 events: fix g-i annotation for gst_event_new_tag() which takes ownership of the tag list 2011-02-10 10:20:10 +00:00
Tim-Philipp Müller
1a6f61a1c9 docs: mention that it's necessary to set the state of elements added to an already-running pipeline
https://bugzilla.gnome.org/show_bug.cgi?id=641631
2011-02-10 00:04:09 +00:00
Wim Taymans
654a9484ef design: add draft for first ideas for a bufferpool feature
Add a first draft with some ideas and use cases for the implementation
for bufferpools. The purpose is to be able to make elements negotiate
their buffer requirements as well as provide an infrastructure to
preallocate and reuse buffers in an easy way.
2011-02-09 16:27:33 +01:00
Stefan Kost
306c09e1b2 docs: clarify the NOMINAL_BITRATE docs
Tell that its a target bitrate and actual values might be different.
2011-02-09 15:23:13 +02:00