Robert Swain
c78996a313
queue2: ring buffer fixes
...
One must not affect the values of the current range based on a read
request before the correct range is activated.
2010-08-13 16:38:58 +02:00
Robert Swain
602f4774c7
queue2: Fix bugs
...
update_buffering () needs to be called every time we write to the ring
buffer so that applications don't get stuck waiting for a 100% buffered
message while queue2 is waiting for space
_create_write () must only be called for temp file/ring buffer cases
2010-08-13 16:38:57 +02:00
Robert Swain
9df54eb4ff
queue2: extend ring buffer to support ram mode
2010-08-13 16:38:57 +02:00
Robert Swain
e29cca10a4
queue2: merge write buffer functions and fix bugs
...
Cached data could have been overwritten so it is now protected until
it is read. Similarly data was overread as _have_data () was always
looking for the originally requested data even if part of it had been
read already.
2010-08-13 16:38:57 +02:00
Wim Taymans
04f1572ea2
queue2: small cleanup
2010-08-13 16:38:56 +02:00
Wim Taymans
695da33ef5
queue2: cleanup write_to_ring_buffer
...
Use cur_level.bytes to see how much space is free in the ringbuffer.
Simplyfy the write function, avoid taking subbuffers, move waiting for free
space in one spot, use simply counter to write data of a buffer.
2010-08-13 16:38:56 +02:00
Wim Taymans
abc9ab1747
queue2: cleanups
...
Add a macro to get the max size of the queue in bytes, which depends on the
max_level.bytes and the ring_buffer_max_size.
Some cleanups.
2010-08-13 16:38:56 +02:00
Wim Taymans
ecd8d3be3a
queue2: remove unused variable
2010-08-13 16:38:56 +02:00
Wim Taymans
4478c90642
queue2: cleanups
...
Make sure the cur_level.bytes is updated after we change the writing_pos or the
max_reading_pos.
Refactor get_free_space()
Add some comments
2010-08-13 16:38:55 +02:00
Wim Taymans
aec4ea0bfe
queue2: remove unneeded signal
2010-08-13 16:38:55 +02:00
Wim Taymans
7de963c0e0
queue2: set buffering mode correctly
2010-08-13 16:38:55 +02:00
Wim Taymans
cb6d9b071e
queue2: fix calculation of available ringbuffer data
2010-08-13 16:38:55 +02:00
Wim Taymans
8de7cc2222
queue2: reading_pos is updated in create_read only
2010-08-13 16:38:54 +02:00
Wim Taymans
cda4967839
queue2: refactor and add debug
2010-08-13 16:38:54 +02:00
Wim Taymans
117d12f325
queue2: fix flushing
2010-08-13 16:38:54 +02:00
Wim Taymans
e037dd37ae
queue2: add debug
2010-08-13 16:38:53 +02:00
Wim Taymans
e882e1b533
queue2: don't try to write 0 bytes
2010-08-13 16:38:53 +02:00
Wim Taymans
73e27fb017
queue2; cleanups and fixes
...
Make a macro for some frequent checks
Emit the removed signal in all cases when we remove something
2010-08-13 16:38:53 +02:00
Wim Taymans
6339bd0bec
queue2: refactorings
...
Check and handle seek errors
Refactor the wait_free_space function.
2010-08-13 16:38:53 +02:00
Robert Swain
c847b981f4
queue2: Use ring-buffer-max-size prop to control ring buffer
2010-08-13 16:38:52 +02:00
Robert Swain
500d6a9986
queue2: Clean up and improve code
2010-08-13 16:38:52 +02:00
Robert Swain
bde816451e
queue2: Fix conditions where behaviour should differ between ring
...
buffer and temp file
2010-08-13 16:38:52 +02:00
Robert Swain
68e2275bb9
queue2: add useful debug messages and fix an assumption in _have_data ()
2010-08-13 16:38:51 +02:00
Robert Swain
9d11b3e79e
queue2: fix buffering percentage in ring buffer mode
2010-08-13 16:38:51 +02:00
Robert Swain
178821aace
queue2: various ring buffer fixes
...
- make _get_range () emit the del signal once a buffer has been read
- use do {} while (); for wait code as queue is locked and no data could
have been read in the mean time so it makes no sense to check before
waiting
- make _is_filled () more robust
2010-08-13 16:38:51 +02:00
Robert Swain
d1809558e5
queue2: ring buffer work in progress
2010-08-13 16:38:51 +02:00
Robert Swain
f093707189
queue2: Add use-ring-buffer and ring-buffer-max-size properties
2010-08-13 16:38:50 +02:00
Robert Swain
dbfcc727ab
queue2: add ST-Ericsson copyright
2010-08-13 16:38:50 +02:00
Stefan Kost
f4c9aba26d
Automatic update of common submodule
...
From 3e8db1d to ec60217
2010-08-13 17:23:31 +03:00
Stefan Kost
72c0474936
info: xrefs glib symbol in docs
2010-08-12 23:25:03 +03: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
Tim-Philipp Müller
9eaf20631c
Automatic update of common submodule
...
From bd2054b to 3e8db1d
2010-08-10 10:56:38 +01:00
Thiago Santos
261ef606e2
tag: Adds GST_TAG_APPLICATION_NAME tag
...
Adds a new tag for representing application used to create
a media
https://bugzilla.gnome.org/show_bug.cgi?id=626027
2010-08-09 17:44:17 -03:00
Sebastian Dröge
699385f715
bufferlist: Initialize the GType cache for the bufferlist again
...
This was accidentially removed with last commit.
2010-08-08 17:57:52 +02:00
Sebastian Dröge
d5c0b3311b
bufferlist: Don't chain up finalize to the parent class
...
GstMiniObject::finalize does nothing and this prevents a
runtime-type-check cast and function call per buffer list.
2010-08-06 19:38:22 +02:00
Shixin Zeng
d41997040b
gst: make _get_type() in gst/* thread safe
...
This is not really necessary here because everything is
initialized from gst_init() already but using G_DEFINE_TYPE()
removes some copy&paste boilerplate code.
2010-08-06 19:35:59 +02:00
Sebastian Dröge
98da78ed2a
plugins: Add declarations for _get_type() functions to fix compiler warnings
2010-08-06 19:34:42 +02:00
Shixin Zeng
cfefcc7183
plugins: Make *_get_type() in plugins/* thread safe
...
It's not really needed here but using G_DEFINE_TYPE() reduces
some copy&paste boilerplate code.
2010-08-06 19:30:51 +02: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
0cb5660c3e
Automatic update of common submodule
...
From 2004d03
to bd2054b
2010-08-05 13:56:11 +03:00
Tim-Philipp Müller
18ecca6331
utils: speed up pad linking utility functions by not trying pads that will never work
...
In gst_element_get_compatible_pad(), when trying to find a compatible pad on an
element for a given pad, there's no point in checking the element's sink pads
if the pad to link is a sink pad as well, or the element's source pads if the
given pad is a source pad already, since those would never be able to link
anyway. Should speed up linking using the convenience functions a little bit,
or at least reduce debug log output.
2010-08-05 10:16:16 +01:00
Stefan Kost
f547482e7c
info: take the timestamp a tick later
...
The logging is not an atomic operation and because of the multi-threading we end
up with out-of-order log lines. Tools that present the log-file should probably
resort the lines. This change just takes the timestamp a bit closer to the
actual logging.
2010-08-05 10:35:46 +03: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
2c1386e3e6
manual: update gst-controller chapter
...
The docs were still describing deprecated api. Update it to tell about
control-cources.
2010-08-05 10:31:50 +03:00
Stefan Kost
461fd8d82d
tests: clean up eventloop in examples
...
Don't leak the bus. Don't parse messages with the method for errors (triggers
gobject warning).
2010-08-05 10:31:50 +03:00
Stefan Kost
dbe8e5d1ad
benchmark: handle errors from the pipeline
...
Catch errors and warnings on the bus. This fixes hanging pipelines in the case
of bugs elsewhere. Also print state-change messages to give more detail on the progress.
2010-08-05 10:31:50 +03:00
Stefan Kost
ced3d517eb
benchmark: cleanup last change in capsnego benchmark
...
A pad name is not a factory name.
2010-08-05 10:31:35 +03:00
Stefan Kost
d3f63b1b87
docs: more docs for gst_parse_launch and co
...
Tell about limited reusability of some parsed pipelines.
2010-08-05 09:40:03 +03:00