Commit graph

11992 commits

Author SHA1 Message Date
Wim Taymans 930c019721 atomicqueue: fix subtle race
Fix a race where the reader would see the updated the tail pointer before the
write could write the data into the queue. Fix this by having a separate reader
tail pointer that is only incremented after the writer wrote the data.
2012-04-07 15:24:53 +01:00
Tim-Philipp Müller d05d29d0c9 filesrc: set default block size from local define
Doesn't actually change the default value, just makes use of the
define there is. Superficial testing with fakesink and jpegdec did
not reveal improved performance for bigger block sizes, so leave
default as it is.
2012-04-07 15:21:29 +01:00
Wim Taymans 4638f15de2 queue2: don't update the current reading_pos in flush
A flush from the upstream element should not make buffering go to 0, the next
pull request might be inside a range that we have and then we don't need to
buffer at all. If the next pull is outside anything we have, buffering will
happen as usual anyway.
2012-04-06 16:46:58 +02:00
Wim Taymans d8a61930af queue2: check the pad mode on the right pad 2012-04-06 12:32:49 +02:00
Wim Taymans f06458aabc queue2: forward flush events correctly
We want to forward the flush events received on the sinkpad whenever the srcpad
is activated in pushmode, which can also happen when using the RINGBUFFER or
DOWNLOAD mode and downstream failed to activate us in pull mode.
2012-04-06 12:24:22 +02:00
Wim Taymans 67ccad0621 queue2: stop waiting for more data after EOS
When we have EOS, read the remaining bytes in the buffer and make sure we don't
wait for more data. Also clip the output buffer to the amount of remaining
bytes.
2012-04-05 10:17:46 +02:00
Wim Taymans 9a1185673e queue2: check for filled buffer correctly
When using the ringbuffer mode, the buffer is filled when we reached the
max_level.bytes mark or the total size of the ringbuffer, whichever is smaller.
2012-04-05 10:16:52 +02:00
Wim Taymans 0bb0c68566 queue2: avoid waiting for a filled buffer
Use a threshold variable to hold the maximum distance from the current position
for with we will wait instead of doing a seek.
When using the ringbuffer and the requested offset is not available, avoid
waiting until the complete ringbuffer is filled but instead do a seek when the
requested data is further than the threshold.
Avoid doing the seek twice in the ringbuffer case.
Use the same threshold for ringbuffer and download buffering.
2012-04-05 10:16:46 +02:00
Tim-Philipp Müller 4d79cbe7ef tools: fix compiler warning
gst-launch.c: In function ‘print_toc_entry’:
gst-launch.c:446:3: error: the size of array ‘spc’ can’t be evaluated [-Werror=vla]
gst-launch.c:446:3: error: variable-sized object may not be initialized
2012-04-03 09:27:09 +01:00
Stefan Sauer 2c715dd827 gst-launch: add -c, --toc to print the toc
Print the nested chapter and edition structure of the chapters message.
2012-04-02 21:50:55 +02:00
Alexander Saprykin 72c7b56b01 docs: add overview of GstToc usage 2012-04-02 21:50:55 +02:00
Alexander Saprykin f9e99a24e6 docs: Add GstToc and GstTocSetter sections with related functions 2012-04-02 21:50:55 +02:00
Alexander Saprykin 4b6969c2a6 gstchecks: Add unit test for the GstTocSetter 2012-04-02 21:50:55 +02:00
Alexander Saprykin 936f524ee5 gstchecks: Add unit test for the GstToc 2012-04-02 21:50:55 +02:00
Alexander Saprykin 3f30c73443 Add new GstTocSetter interface 2012-04-02 21:50:55 +02:00
Alexander Saprykin 6e65daa4d1 Add new TOC query 2012-04-02 21:50:55 +02:00
Alexander Saprykin 03d0f569b3 Add new TOC message 2012-04-02 21:50:55 +02:00
Alexander Saprykin c3f97992c4 Add new TOC and TOC select events 2012-04-02 21:50:55 +02:00
Alexander Saprykin 1f7096b52a Add generic table of contents (TOC) support 2012-04-02 21:50:55 +02:00
Edward Hervey df6d0b0696 baseparse: always attempt to push if not-linked
This avoids ending up with plenty of pending data (since we'll only
 try to parse/push one frame from the incoming buffer).

Fixes increasing memory consumption when parsers aren't linked
2012-04-02 15:17:25 +02:00
Sebastian Dröge 9441e711df multiqueue: Wake up all not-linked streams when a stream switches from linked to not-linked
We reset all the waiting streams, let them push another buffer to
see if they're now active again. This allows faster switching
between streams and prevents deadlocks if downstream does any
waiting too.

Also improve locking a bit, srcresult must be protected by the
multiqueue lock too because it's used/set from random threads.
2012-03-29 14:49:53 +02:00
Sebastian Dröge 17e691421f multiqueue: Recompute high-time too when flushing, not only high-id 2012-03-29 14:47:57 +02:00
Sebastian Dröge d03e3d7772 inputselector: Only wait until the active pad's running time is reached if the active pad already saw data
Otherwise we might block forever because upstream (e.g. multiqueue) is waiting
for the previously active stream to return forever (which is waiting here
in inputselector) before pushing something on the newly selected stream.
2012-03-29 14:47:57 +02:00
Olivier Crête 37db4eefbf gstpad: Fix typo in docstring 2012-03-27 15:24:49 -04:00
Stefan Sauer f08d942795 gst-launch: don't shadow global variable 2012-03-22 08:36:50 +01:00
Tim-Philipp Müller bb78f15e42 configure: bump AS_LIBTOOL version
API was added to collectpads2
2012-03-12 23:21:05 +00:00
Tim-Philipp Müller 2c08b81db1 configure: backport AS_LIBTOOL version from 0.10.36 release
Might fix issues with missing symbols for people who install GStreamer
from source and at some point jumped back and forth between git master
and the 0.10.36 release (or 0.10. branch).
2012-03-12 23:19:43 +00:00
Stefan Sauer cc445664c8 docs: fix function name and typo 2012-03-12 23:08:45 +01:00
Christian Fredrik Kalager Schaller 3ca7f29224 update license link to point to 2.1 license, instead of just generic lgpl file, which is always the latest and thus not correct for gstreamer 2012-03-12 09:05:10 +00:00
Tim-Philipp Müller 4d2adb0249 pad, task: improve debug logging 2012-03-08 16:30:49 +00:00
Tim-Philipp Müller c683e39429 pads, collectpads2: get rid of superfluous brackets around static rec mutex calls
Makes it possible to define those calls to something for tracing.
2012-03-08 16:27:48 +00:00
Tim-Philipp Müller 3226e52dd2 common: update common module
For make foo/bar.check-norepeat target.
2012-03-08 16:25:20 +00:00
Tim-Philipp Müller 799d69b038 tests: add minimal basesrc ! sink seeking unit test
Should reproduce 'GStreamer-WARNING **: wrong STREAM_LOCK count 0'
warnings (with make pipelines/seek.torture or pipelines/seek.forever
anyway, since it appears to be racy).

https://bugzilla.gnome.org/show_bug.cgi?id=670846
2012-03-08 16:19:55 +00:00
Sebastian Dröge ed7f480222 baseparse: Fix 'self-comparison always evaluates to true'
This was really a bug.
2012-03-06 12:28:02 +01:00
Sebastian Dröge f000bbe924 tee: Fix 'use of logical '&&' with constant operand' compiler warning
This is actually a real bug.
2012-03-06 12:27:33 +01:00
Sebastian Dröge 7c32cfd661 basetransform: Fix 'equality comparison with extraneous parentheses' compiler warning 2012-03-06 12:23:15 +01:00
Sebastian Dröge c8cde669b7 gst: Fix 'comparison of unsigned enum expression >= 0 is always true' compiler warning 2012-03-06 12:16:19 +01:00
Sebastian Dröge 495aca4905 baseparse: Fix handling of multiple newsegment events
Previously only the last would be pushed, which would cause
invalid running times downstream. This also fixes the handling
of update newsegment events.
2012-03-05 14:41:12 +01:00
Sebastian Dröge 563ba031a2 baseparse: Also flush the close_segment
Pushing this after flushing will confuse downstream.
2012-03-05 14:37:57 +01:00
Sebastian Dröge 747dfc09b2 baseparse: Remove obsolete code and move gap handling to the correct place
The segment start adjustment code in pull mode should never trigger
anymore because the bisection code earlier would have already made
sure that we're at the desired position.

Also move the gap handling some lines below after sending the currently
configured segments. Otherwise we might fill gaps in a segment that is
not configured downstream yet.
2012-03-05 14:23:17 +01:00
Sebastian Dröge 13930dad53 baseparse: Clear some more state when receiving FLUSH_STOP
Like pending serialized events and the currently cached buffer.
2012-03-05 13:12:18 +01:00
Sebastian Dröge cd195f2143 baseparse: Only queue serialized events for sending them later 2012-03-05 13:01:14 +01:00
Tim-Philipp Müller 17985ac85e libgstcheck: export gst_consistency_checker_add_pad()
Fix build of the adder unit test in -base again.
2012-03-05 00:34:36 +00:00
Stefan Sauer 7141ad3ce6 consitencychecker: don't fail on multiple flush_start events
This seems to be okay after a irc discussion.
2012-03-02 12:16:03 +01:00
Stefan Sauer 43a6f5a63d consitencychecker: add handling for sink-pads
Add a pad-probe for sink-pads. One can now add extra pads (belonging to the same
element) to a checker. This allows us to extend the checks.
2012-02-29 22:00:16 +01:00
Stefan Sauer ac03c328d5 consistencychecker: also check for duplicated flush_starts 2012-02-29 08:44:04 +01:00
Stefan Sauer 9fd063e404 collectpads2: add more logging 2012-02-28 20:36:59 +01:00
Edward Hervey 823807c5f0 Suppress deprecation warnings in selected files, for g_value_array_* mostly 2012-02-27 13:43:59 +01:00
Tim-Philipp Müller 64effe78e7 tests: make datetime test more reliably when comparing two almost identical nows
Account for rounding errors in some places, and that two nows are
not always entirely identical, so allow some leeway when comparing
microseconds and seconds. Ran into this too often, esp. when the
system is under load.
2012-02-27 09:37:22 +00:00
Stefan Sauer daa5cae78b collectpads2: rescue the annotation from collectpads 2012-02-26 23:11:23 +01:00