Commit graph

1689 commits

Author SHA1 Message Date
Tim-Philipp Müller 5180ff7c54 dataqueue: can't pass a GType through GINT_TO_POINTER
Use GSIZE_TO_POINTER instead. sizeof(GType) may be larger
than sizeof(gulong) and sizeof(int), so the casts may
chop off some bits from the GType value on some architectures.

Conflicts:
	plugins/elements/gstdataqueue.c
2013-01-30 13:19:09 +00:00
Alexander Schrab ca5628ad8c queue: remove query from queue if queue is flushing
When querying a queue that is flushing we end up adding
a query to the queuearray without taking a reference to
that query (because the normal functionality is to block
until that query is done and discarded from the queue).
This later causes problem if the query is unreffed outside
of the queue before we discard the queue. There is a check
to avoid unreffing any lingering query-objects, but since
the query has been deleted that check fails.

This commit depends on other fixes done to gst_queue_array_find()
and gst_queue_array_drop_element().

https://bugzilla.gnome.org/show_bug.cgi?id=692691
2013-01-30 12:12:45 +00:00
Tim-Philipp Müller 1b46969f7e queuearray: make _find() find the value if no compare function is provided
Allow NULL as compare function for direct value lookup.

https://bugzilla.gnome.org/show_bug.cgi?id=692691

Conflicts:
	plugins/elements/gstqueuearray.c
2013-01-30 12:11:33 +00:00
Alexander Schrab 0b2ccd5ff1 queuearray: fix gst_queue_array_find()
https://bugzilla.gnome.org/show_bug.cgi?id=692691
2013-01-30 11:11:39 +00:00
Alexander Schrab a1568a3054 queuearray: fix gst_queue_array_drop_element()
https://bugzilla.gnome.org/show_bug.cgi?id=692691
2013-01-30 11:11:06 +00:00
Wim Taymans 5379cb5ed1 NEWSEGMENT -> SEGMENT 2012-12-14 15:33:21 +01:00
Arnaud Vrac 45bd1c19cf inputselector: fix clock leak in wait_running_time
https://bugzilla.gnome.org/show_bug.cgi?id=688477
2012-11-17 10:18:42 +00:00
Jan Schmidt 07818f773d multiqueue: Add EOS status to debug output about filled/unfilled 2012-10-30 23:33:52 +00:00
Wim Taymans fc5849ef11 capsfilter: don't prefer passthrough
Basetransform should not try to negotiate in passthrough mode but
respect the order of what we return in the transform_caps method.
A typical case is that you specify some specific new caps in the
caps property but also allow the current caps to pass.
2012-10-04 11:18:19 +02:00
Wim Taymans 701424be9b typefind: send STREAM-START event
Send a STREAM_START event when we are operating in pull mode.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684424
2012-09-26 13:25:03 +02:00
Mark Nauwelaerts b14a3ad4ef identity: retimestamp both pts and dts when doing so 2012-09-26 10:55:47 +02:00
Mark Nauwelaerts 8e98ce54e1 identity: also track and store segment info in single segment mode 2012-09-25 15:06:43 +02:00
Josep Torra Valles 111fcc6e31 Make intel compiler happier
https://bugzilla.gnome.org/show_bug.cgi?id=552657
2012-09-25 00:56:26 +01:00
Mark Nauwelaerts f495fa7a21 identity: transform GAP event in single segment mode 2012-09-19 15:14:35 +02:00
Wim Taymans 3abc720345 docs: fix some docs
from git grep for ffmpegcolorspace and x-raw-
2012-09-13 11:35:41 +02:00
Mark Nauwelaerts 947635d893 filesink: fix build on Cygwin
... where __fbufsize is not available
2012-09-12 17:16:41 +02:00
Tim-Philipp Müller 2fe8ebaae6 queue2: fix possible data corruption in ring buffer mode when seeking
Fix race that could cause data corruption when seeking in ring buffer
mode.

In perform_seek_to_offset(), called from the demuxer's pull_range
request, we drop the lock, tell upstream (usually a http source)
to seek to a different offset, then re-acquire the lock before we
do things to the ranges. However, between us sending the seek event
and re-acquiring the lock, the source thread might already have pushed
some data and moved along the range's writing_pos beyond the seek
offset. In that case we don't want to set the writing position back
to the requested seek position, as it would cause data to be written
to the wrong offset in the file or ring buffer.

Reproducible doing seek-emulated fast-forward/backward on 006653.

Conflicts:
	plugins/elements/gstqueue2.c
2012-09-12 12:59:50 +01:00
Tim-Philipp Müller a85991eeb8 baseparse, typefind: only activate in pull mode if upstream is seekable
Upstream might support pull mode, but only sequential pulls,
which isn't gonna do much for us.

https://bugzilla.gnome.org/show_bug.cgi?id=634927
2012-09-11 01:40:53 +01:00
Jan Schmidt 8d8608c23b ghostpad: Make some debugging more verbose
Also, remove an unnecessary #include in input-selector
2012-08-31 06:25:37 -07:00
Arnaud Vrac dc86e65265 inputselector: fix clock leak
https://bugzilla.gnome.org/show_bug.cgi?id=682997
2012-08-30 19:47:57 +01:00
Edward Hervey 0eb13f146f inputselector: Wait for other streams to advance on unselected pads
Otherwise we end up dropping a lot of data in the case where data starts
arriving on the non-selected pad, resulting in big gaps in stream switching
2012-08-14 18:44:38 +02:00
Edward Hervey 6b447acc3c inputselector: More debug statements 2012-08-14 18:43:54 +02:00
Edward Hervey c33d2f7aba inputselector: Don't forward stream-start sticky events
Only one STREAM_START event should be let through, else it will
confuse downstream elements that think a new stream is starting
whereas in fact we are just switching to a different input.

In the future we might want to let them through but with the same
sequence number.
2012-08-14 18:42:31 +02:00
Edward Hervey ea761a24b4 inputselector: Use the first created pad by default
This guarantees a bit more consistency in which input stream will
be selected by default. It would previously be the first pad on which
an event/buffer/query was received ... which was racy and non-predictable.
2012-08-06 11:36:29 +02:00
Tim-Philipp Müller a9d1c529f6 input-selector: use generic marshaller for "block" action signal 2012-08-05 16:48:27 +01:00
Tim-Philipp Müller ba39106758 typefind: send segment_done event in addition to segment_done message 2012-08-02 00:22:29 +01:00
Sebastian Dröge 389ec66946 basesrc: Add default handler for URI query in GstURIHandler subclasses 2012-07-31 17:26:37 +02:00
Wim Taymans f05b0e222f Update for new seeking variable name
When seeking, the start value and type are now called start and start_type.
2012-07-27 15:24:52 +02:00
Wim Taymans a1f1bbd363 typefind: require bytes before typefinding
Require that we have some bytes in the adapter before we attempt to typefind.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680479
2012-07-24 12:38:15 +02:00
Wim Taymans a21575d640 plugins: print flags better
print the buffer flags as a hex number so that it becomes easier to see what
flags are set.
2012-07-23 13:40:38 +02:00
Wim Taymans b5caa93f6d queue2: set buffering-left to 0 on 100% buffering
Set the buffering-left field in the query to 0 when we are completely buffered.
Improve the debug.
2012-07-19 12:42:05 +02:00
Wim Taymans 60091bf225 queue2: fix buffering query
Fix the buffering query, fill in the right buffering-left and estimated-total
values.
2012-07-19 12:14:29 +02:00
Wim Taymans 14550f2ee2 queue2: fix the buffering-left in the buffering message
The buffering-left field in the buffering message should contain a time estimate
in milliseconds about for long the buffering is going to take. We can calculate
this value when we do rate_estimates.
2012-07-19 11:13:45 +02:00
Tim-Philipp Müller eecaca9140 queue: answer SCHEDULING query
Instead of letting the default query handler fail.
2012-07-18 09:15:51 +01:00
Tim-Philipp Müller 39054884fd queue2: handle CAPS event and drop it if operating in ring buffer mode
Fixes "Unexpected event of kind caps can't be added in temp file"
warning when doing download buffering.
2012-07-17 19:27:44 +01:00
Tim-Philipp Müller f72ba83a84 plugins: embed GstAueueArray in dataqueue struct as well 2012-07-14 20:33:30 +01:00
Tim-Philipp Müller 92cba34e0b plugins: don't use one-time array in plugin_init 2012-07-14 20:28:54 +01:00
Tim-Philipp Müller 22d78bad25 queue: embed GstQueueArray structure 2012-07-14 20:26:23 +01:00
Tim-Philipp Müller 14632db174 plugins: sprinkle some more G_GNUC_INTERNAL 2012-07-14 20:05:53 +01:00
Tim-Philipp Müller 2b17de7504 plugins: add init/clear functions to GstQueueArray 2012-07-14 19:38:39 +01:00
Tim-Philipp Müller 94f6ba9c0b base: make GstQueueArray private to coreelements for now
Keep it private until we have a reason to make it public.
2012-07-14 19:36:02 +01:00
Edward Hervey d3ffa82639 Remove 0.10-related documentation and "Since" markers 2012-07-10 12:03:27 +02:00
Tim-Philipp Müller c51a2c1ddf basesrc, basesink, baseparse, typefind: use GST_SEGMENT_FLAG with segment flags 2012-07-09 21:51:07 +01:00
Tim-Philipp Müller a8d5665db7 plugins: sprinkle G_GNUC_INTERNAL for dataqueue functions
And remove padding, since this is not public API any more.
2012-07-09 20:55:39 +01:00
Sebastian Dröge af73f3fc02 queue: Fix handling of min-threshold and serialized queries
Only consider the queue empty if the minimum thresholds
are not reached and data is at the queue head. Otherwise
we would block forever on serialized queries.

This also makes sending of serialized events, like caps, happen
faster and potentially improves negotiation performance.

Fixes bug #679458.
2012-07-09 15:40:29 +02:00
Tim-Philipp Müller dcc35b9c67 typefindelement: remove unimplemented maximum property 2012-07-06 11:26:14 +01:00
Tim-Philipp Müller 388237756e tee: remove unimplemented has-sink-loop property 2012-07-06 11:26:14 +01:00
Tim-Philipp Müller 41a762adb3 queue2: remove deprecated temp-location use, make it read-only 2012-07-06 11:26:14 +01:00
Tim-Philipp Müller b23185a73a identity: remove deprecated check-perfect property
Replaced by the more specific check-imperfect-{timestamp,offset}
2012-07-06 11:26:14 +01:00
Edward Hervey 31accf2d01 dataqueue: Use GstQueueArray 2012-07-04 17:46:54 +02:00