Mark Nauwelaerts [Thu, 29 Oct 2009 15:05:00 +0000 (16:05 +0100)]
baseparse: reset passthrough mode to default (disabled) on activation
Mark Nauwelaerts [Thu, 29 Oct 2009 14:16:59 +0000 (15:16 +0100)]
baseparse: ensure buffer metadata is writable
Mark Nauwelaerts [Wed, 28 Oct 2009 13:06:13 +0000 (14:06 +0100)]
baseparse: fix/enhance DISCONT marking
In particular, consider DISCONT == !sync, and allow subclass to query
sync state, as it may want to perform additional checks depending
on whether sync was achieved earlier on.
Also arrange for subclass to query whether leftover data is being drained.
Mark Nauwelaerts [Mon, 23 Nov 2009 14:48:25 +0000 (15:48 +0100)]
baseparse: add timestamp handling, and default conversion
In particular, (optionally) provide baseparse with a notion of frames per second
(and therefore also frame duration) and have it track frame and byte counts.
This way, subclass can provide baseparse with fps and have it provide default
buffer time metadata and conversions, though subclass can still install
callbacks to handle such itself.
Mark Nauwelaerts [Wed, 28 Oct 2009 11:02:03 +0000 (12:02 +0100)]
baseparse: documentation fixes
Mark Nauwelaerts [Wed, 28 Oct 2009 11:00:08 +0000 (12:00 +0100)]
baseparse: use_fixed_caps for src pad
After all, stream is as-is, and there is little molding to downstream's
taste that can be done. If subclass can and wants to do so, it can
still override as such.
Julien Moutte [Fri, 20 Nov 2009 16:32:13 +0000 (17:32 +0100)]
aacparse: Fix compilation warnings
Josep Torra [Sun, 11 Oct 2009 09:22:11 +0000 (11:22 +0200)]
aacparse: fix warnings in macosx snow leopard
Mark Nauwelaerts [Fri, 25 Sep 2009 15:02:53 +0000 (17:02 +0200)]
aacparse: forego (bogus) parsing of already parsed (raw) input
Mark Nauwelaerts [Fri, 7 Aug 2009 11:07:17 +0000 (13:07 +0200)]
baseparse: prevent infinite loop when draining
Mark Nauwelaerts [Fri, 7 Aug 2009 11:06:28 +0000 (13:06 +0200)]
baseparse: fix minor memory leak
Sebastian Dröge [Tue, 14 Jul 2009 12:08:04 +0000 (14:08 +0200)]
aacparse: Add function for the baseparse subclass to push buffers downstream
Also handle the case gracefully where the subclass decides to drop
the first buffers and has no caps set yet. It's still required to
have valid caps set when the first buffer should be passed downstream.
Sebastian Dröge [Tue, 14 Jul 2009 12:07:44 +0000 (14:07 +0200)]
baseparse: Fix seek event leaking
Tim-Philipp Müller [Mon, 1 Jun 2009 12:56:18 +0000 (13:56 +0100)]
baseparse: propagate return value of GstBaseParse::set_sink_caps()
gst_base_parse_sink_setcaps() presumably should fail if the subclass
returns FALSE from its ::set_sink_caps() function.
Tim-Philipp Müller [Mon, 1 Jun 2009 12:47:01 +0000 (13:47 +0100)]
baseparse: don't try to GST_LOG an already-freed caps string
The proper way to log caps is via GST_PTR_FORMAT anyway.
Mark Nauwelaerts [Tue, 26 May 2009 17:43:53 +0000 (19:43 +0200)]
baseparse: fix debug category
Mark Nauwelaerts [Mon, 27 Apr 2009 20:39:15 +0000 (22:39 +0200)]
baseparse: fix (regression in) newsegment handling
(aacparse, amrparse, flacparse). Fixes #580133.
René Stadler [Tue, 7 Apr 2009 01:53:02 +0000 (04:53 +0300)]
baseparse: Fix slightly broken buffer-in-segment check (aacparse, amrparse, flacparse)
René Stadler [Sun, 5 Apr 2009 00:50:19 +0000 (03:50 +0300)]
baseparse: Fix push mode seeking (aacparse, amrparse)
Sending the flush-start event forward before taking the stream lock actually
works, in contrast to deadlocking in downstream preroll_wait (hunk 1).
After that we get the chain function being stuck in a busy loop. This is fixed
by updating the minimum frame size inside the synchronization loop because the
subclass asks for more data in this way (hunk 2).
Finally, this leads to a very probable crash because the subclass can find a
valid frame with a size greater than the currently available data in the
adapter. This makes the subsequent gst_adapter_take_buffer call return NULL,
which is not expected (hunk 3).
Mark Nauwelaerts [Tue, 31 Mar 2009 14:07:46 +0000 (16:07 +0200)]
baseparse: Delay newsegment as long as possible.
If newsegment is sent (too) early, caps may not yet be fixed/set,
and downstream may not have been linked.
Stefan Kost [Fri, 27 Feb 2009 09:24:37 +0000 (11:24 +0200)]
baseparse: revert last change and properly fix
Baseparse internaly breaks the semantics of a _chain function by calling it with
buffer==NULL. The reson I belived it was okay to remove it was that there is
also an unchecked access to buffer later in _chain. Actually that code is wrong,
as it most probably wants to set discont on the outgoing buffer.
Stefan Kost [Thu, 26 Feb 2009 09:02:06 +0000 (11:02 +0200)]
baseparse: remove checks for buffer==NULL
Accordifn to docs for GstPadChainFunction buffer cannot be NULL. If we would
leave the check, we would also need more such check below.
Jan Schmidt [Fri, 30 Jan 2009 18:18:10 +0000 (18:18 +0000)]
Fix the return value of the default parse_frame function.
Fix the return value of the default parse_frame function in both
copies of GstBaseParse
Stefan Kost [Thu, 13 Nov 2008 14:21:39 +0000 (14:21 +0000)]
gst/: Fix baseparse type name.
Original commit message from CVS:
* gst/aacparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.c:
Fix baseparse type name.
Stefan Kost [Thu, 13 Nov 2008 12:59:34 +0000 (12:59 +0000)]
Add two new baseparse based parsers (aac and amr) from Bug #518857.
Original commit message from CVS:
* configure.ac:
* gst/aacparse/Makefile.am:
* gst/aacparse/gstaacparse.c:
* gst/aacparse/gstaacparse.h:
* gst/aacparse/gstbaseparse.c:
* gst/aacparse/gstbaseparse.h:
* gst/amrparse/Makefile.am:
* gst/amrparse/gstamrparse.c:
* gst/amrparse/gstamrparse.h:
* gst/amrparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.h:
Add two new baseparse based parsers (aac and amr) from Bug #518857.
Havard Graff [Sat, 19 Mar 2011 23:56:08 +0000 (00:56 +0100)]
queue[2]: Make src query MT-safe
It is possible that the element might be going down while the event arrives
Havard Graff [Sat, 19 Mar 2011 23:56:08 +0000 (00:56 +0100)]
basesrc: Make src query MT-safe
It is possible that the element might be going down while the event arrives
Sebastian Dröge [Fri, 8 Apr 2011 12:56:37 +0000 (14:56 +0200)]
queue[2]: Unref events if the parent element disappeared
Havard Graff [Mon, 21 Mar 2011 15:01:05 +0000 (16:01 +0100)]
queue[2]: Make upstream events MT-safe
Sebastian Dröge [Fri, 8 Apr 2011 12:55:09 +0000 (14:55 +0200)]
base: Unref events if the parent element disappeared
And also unref events if the basetransform subclass has no
event handler and the event is not forwarded at all.
Havard Graff [Mon, 21 Mar 2011 15:01:05 +0000 (16:01 +0100)]
base: Make upstream events MT-safe
Stian Selnes [Tue, 29 Mar 2011 09:57:06 +0000 (11:57 +0200)]
gstqueue, gstqueue2: check if parent of pad is NULL in _getcaps
Parent of the pad (the queue) may be set to NULL while there is
a buffer alloc going on.
Sebastian Dröge [Fri, 8 Apr 2011 12:50:10 +0000 (14:50 +0200)]
inputselector: Fix getcaps and event function from last commit
Return ANY caps if the parent disappeared, i.e. the template caps
and don't leak events if the parent disappeared.
Havard Graff [Fri, 1 Apr 2011 06:46:14 +0000 (08:46 +0200)]
inputselector: Protect against pad-parent disappearing
Stian Selnes [Tue, 14 Dec 2010 15:06:46 +0000 (16:06 +0100)]
iterator: resync to avoid infinite loop
Sebastian Dröge [Fri, 8 Apr 2011 07:20:28 +0000 (09:20 +0200)]
utils: Fix uninitialized variable compiler warnings
Sebastian Dröge [Fri, 8 Apr 2011 07:15:10 +0000 (09:15 +0200)]
bus: Removed unused GCond
Sebastian Dröge [Fri, 8 Apr 2011 07:07:59 +0000 (09:07 +0200)]
multiqueue: Add another check for the flushing flag after taking the lock
This prevents another potential deadlock when flushing the pad
at exactly the right time.
Sebastian Dröge [Thu, 7 Apr 2011 09:24:35 +0000 (11:24 +0200)]
bus: Immediately drop messages after calling the sync handler if this is a synchronous bus
Otherwise we might wait forever for the message to be popped from
the queue if a sync handler returned GST_BUS_ASYNC.
https://bugzilla.gnome.org/show_bug.cgi?id=647005
Sebastian Dröge [Thu, 7 Apr 2011 09:19:57 +0000 (11:19 +0200)]
bus: Use a construct-only property to distinguish between child buses and normal buses
This allows to only create the socketpair when it is really required instead
of always creating it and immediately destroying it again for child buses.
https://bugzilla.gnome.org/show_bug.cgi?id=647005
Tim-Philipp Müller [Thu, 7 Apr 2011 19:47:25 +0000 (20:47 +0100)]
tests: add some basic unit tests for queue2
Tim-Philipp Müller [Thu, 7 Apr 2011 19:45:22 +0000 (20:45 +0100)]
queue2: fix buffer leak on eos when using the ring buffer
Idar Tollefsen [Tue, 11 Jan 2011 13:27:35 +0000 (14:27 +0100)]
queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read.
https://bugzilla.gnome.org/show_bug.cgi?id=646972
Tim-Philipp Müller [Thu, 7 Apr 2011 18:44:44 +0000 (19:44 +0100)]
queue2: fix minor memory leak
Tim-Philipp Müller [Thu, 7 Apr 2011 16:34:10 +0000 (17:34 +0100)]
funnel: minor element description fix
Stefan Kost [Thu, 7 Apr 2011 13:08:34 +0000 (16:08 +0300)]
docs: remove file as we have docs/design/part-missing-plugins.txt
Sebastian Dröge [Thu, 7 Apr 2011 08:48:04 +0000 (10:48 +0200)]
basesrc: Handle tag and custom downstream events the same
Especially drop tag events when flushing to not send them over
and over again.
Should've been in the last commit already but I forgot to call
git rebase --continue...
Sebastian Dröge [Thu, 7 Apr 2011 08:40:16 +0000 (10:40 +0200)]
bla
Sebastian Dröge [Thu, 7 Apr 2011 08:29:41 +0000 (10:29 +0200)]
basesrc: Send syncronized custom downstream/both events downstream from the streaming thread
Instead of just silently dropping them. The same was done for tag events
before already.
Fixes bug #635718.
Sebastian Dröge [Wed, 6 Apr 2011 12:06:49 +0000 (14:06 +0200)]
bus: Add private API to set a GstBus in child mode
This is used by GstBin to create a child bus without
a socketpair because child buses will always work
synchronous. Otherwise too many sockets could be
created and the limit of file descriptors for the
process could be reached.
Fixes bug #646624.
Sebastian Dröge [Wed, 6 Apr 2011 11:56:49 +0000 (13:56 +0200)]
Revert "bus: Only create the signalling socket pair when required"
This reverts commit
4bf8f1524f6e3374b3f3bc57322337723d06b928.
Sebastian Dröge [Wed, 6 Apr 2011 11:56:46 +0000 (13:56 +0200)]
Revert "bus: Check if pending messages are in the queue"
This reverts commit
bd1c40011434c1efaa696dc98ef855ef9cce9b28.
Tim-Philipp Müller [Wed, 6 Apr 2011 10:38:57 +0000 (11:38 +0100)]
checks: make tests_many_bins in bin unit test a bit faster
Not doing expensive checks when linking elements makes things
much faster.
Tim-Philipp Müller [Wed, 6 Apr 2011 10:30:18 +0000 (11:30 +0100)]
checks: add some queues to test_many_bins unit test
To limit the number of calls in a row per thread.
Sebastian Dröge [Wed, 6 Apr 2011 10:03:18 +0000 (12:03 +0200)]
bus: Check if pending messages are in the queue
We can't rely completely on the poll fd because the fd might be
created after messages were posted to the bus.
Sebastian Dröge [Wed, 6 Apr 2011 09:45:27 +0000 (11:45 +0200)]
value: GstDate/GDate has a abbreviation now
Tim-Philipp Müller [Sun, 3 Apr 2011 15:11:50 +0000 (16:11 +0100)]
checks: add GstBin unit test that creates a lot of bins
Currently fails (in normal circumstances) because we create a
socket pair for each bin's bus and exhaust the number of available
file descriptors.
https://bugzilla.gnome.org/show_bug.cgi?id=646624
Sebastian Dröge [Tue, 5 Apr 2011 14:22:48 +0000 (16:22 +0200)]
bus: Only create the signalling socket pair when required
Otherwise a new one would be created for every single bus and
the process could easily run out of file descriptors.
Fixes bug #646624.
Sebastian Dröge [Tue, 5 Apr 2011 12:36:43 +0000 (14:36 +0200)]
structure: Add date as a type abbreviation of GDate
See bug #646696.
Stefan Kost [Mon, 4 Apr 2011 12:56:30 +0000 (15:56 +0300)]
Automatic update of common submodule
From
1ccbe09 to
c3cafe1
Andoni Morales Alastruey [Mon, 4 Apr 2011 01:33:46 +0000 (03:33 +0200)]
gstpoll: retry reading the control socket to release properly all wakeups
if set->control_pending is set to 0 but we didn't not succed reading
the control socket, future calls to gst_poll_wait() will be awaiken
by the control socket which will not be released properly because
set->control_pending is already 0, causing an infinite loop.
Sebastian Dröge [Mon, 4 Apr 2011 08:18:14 +0000 (10:18 +0200)]
structure: Don't allow invalid GDates in all structures and don't allow NULL GDates in taglists
Some code (e.g. gstvorbistag.c) assumes non-NULL GDates in taglists and
explodes otherwise and NULL or invalid GDates don't make much sense anyway.
Thomas Kristensen [Fri, 25 Mar 2011 14:56:07 +0000 (15:56 +0100)]
poll: don't call WSAWaitForMultipleEvents with no events
Fixes error caught by Microsoft Application Verifier.
Tim-Philipp Müller [Sun, 3 Apr 2011 15:18:54 +0000 (16:18 +0100)]
docs: add pointer to part-seeking.txt design docs to event seek flags docs
Tim-Philipp Müller [Sun, 3 Apr 2011 15:18:14 +0000 (16:18 +0100)]
checks: ignore new funnel unit test binary
Bastien Nocera [Sat, 2 Apr 2011 13:51:18 +0000 (14:51 +0100)]
utils: Avoid using "type" as name for a variable and a macro argument in GST_BOILERPLATE
This caused "re-declaration" problems.
./clutter-gst-video-sink.c: In function ‘clutter_gst_video_sink_init_interfaces’:
./clutter-gst-video-sink.c:231:1: warning: declaration of ‘ClutterGstVideoSink’ shadows a global declaration [-Wshadow]
./clutter-gst-video-sink.h:64:44: warning: shadowed declaration is here [-Wshadow]
https://bugzilla.gnome.org/show_bug.cgi?id=646531
Sebastian Dröge [Fri, 1 Apr 2011 11:56:09 +0000 (13:56 +0200)]
element: When requesting an existing pad print a g_critical() instead of using an assertion
Some applications are requesting the same pad name multiple times
and the behaviour is undefined and different from element to element
but we don't want to break applications that work just fine.
In 0.11 this check should be an assertion again, although elements
have to do manual checking if the pad already exists again because
it can't be done in a threadsafe way here.
Sebastian Dröge [Fri, 1 Apr 2011 11:53:39 +0000 (13:53 +0200)]
element: Use gint64/guint64 string parsing functions
And check that the requested pad names are inside the valid
gint/guint range.
Josep Torra [Fri, 1 Apr 2011 11:51:31 +0000 (13:51 +0200)]
element: strto[u]l() returns a g[u]long
Tim-Philipp Müller [Thu, 31 Mar 2011 18:25:30 +0000 (19:25 +0100)]
design docs: document expected behaviour for ACCURATE and KEY_UNIT seek flags
Sebastian Dröge [Thu, 31 Mar 2011 08:53:03 +0000 (10:53 +0200)]
gstabi: Add some new structures for x86-64
Sebastian Dröge [Thu, 31 Mar 2011 08:46:40 +0000 (10:46 +0200)]
libsabi: Add lots of new structures for x86-64
Sebastian Dröge [Wed, 30 Mar 2011 08:48:47 +0000 (10:48 +0200)]
multiqueue: Make assignment of queue IDs and pad names threadsafe
Also add a test for naming pads by the caller and return NULL
when requesting an already existing pad.
Andreas Frisch [Tue, 29 Mar 2011 21:58:43 +0000 (23:58 +0200)]
multiqueue: Set the single queue ID to the ID of the requested pad if one was given by the caller
Sebastian Dröge [Tue, 29 Mar 2011 14:22:46 +0000 (16:22 +0200)]
element: Fix sanity checks for request pad templates without %
Sebastian Dröge [Tue, 29 Mar 2011 09:57:58 +0000 (11:57 +0200)]
element: Add some more sanity checks to the pad name checking of request pads in all cases
Especially check if a pad with that name already exists.
Sebastian Dröge [Tue, 29 Mar 2011 09:52:06 +0000 (11:52 +0200)]
element: Check %u too when trying to find a pad template for a request pad
Fraxinas [Mon, 28 Mar 2011 19:01:13 +0000 (21:01 +0200)]
multiqueue: Fix arbitrary sink + source pad naming
Use the string provided by the caller for the sinkpad name
if possible. Note that all sanity checking for this name
is already done in GstElement.
Fixes Bug #645931
Sebastian Dröge [Tue, 29 Mar 2011 09:18:36 +0000 (11:18 +0200)]
funnel: Add some more documentation about the behaviour of funnel
Sebastian Dröge [Tue, 29 Mar 2011 09:08:57 +0000 (11:08 +0200)]
funnel: Send a newsegment event after flush-stop
Sebastian Dröge [Tue, 29 Mar 2011 09:07:48 +0000 (11:07 +0200)]
funnel: Some random cleanup
Sebastian Dröge [Tue, 29 Mar 2011 08:56:00 +0000 (10:56 +0200)]
funnel: Use a GstPad subclass for the sinkpads instead of using the pad's element private data
Sebastian Dröge [Tue, 29 Mar 2011 08:42:31 +0000 (10:42 +0200)]
funnel: Integrate into the build system and rename the types
Sebastian Dröge [Tue, 29 Mar 2011 08:39:42 +0000 (10:39 +0200)]
funnel: Import funnel element from farsight2
Arun Raghavan [Mon, 28 Mar 2011 15:51:00 +0000 (21:21 +0530)]
basesrc: Return FALSE if we don't handle an event
basesrc's default event handler returns TRUE regardless of whether the
event is handled or not. This fixes the handler to conform with the
expected behaviour (which is to only return TRUE when the event has
actually benn handled). gst_bin_do_latency_func() depended on this
(incorrect) behaviour, and is now modified as well.
(Remaining 1-liner change in gstbasesrc.c is to keep gst-indent happy)
Sebastian Dröge [Fri, 25 Mar 2011 21:08:41 +0000 (22:08 +0100)]
Automatic update of common submodule
From
193b717 to
1ccbe09
Stefan Kost [Fri, 25 Mar 2011 12:55:39 +0000 (14:55 +0200)]
Automatic update of common submodule
From
b77e2bf to
193b717
Sebastian Dröge [Fri, 25 Mar 2011 08:27:58 +0000 (09:27 +0100)]
Automatic update of common submodule
From
d8814b6 to
b77e2bf
Sebastian Dröge [Fri, 25 Mar 2011 07:59:37 +0000 (08:59 +0100)]
Automatic update of common submodule
From
6aaa286 to
d8814b6
Stefan Kost [Thu, 24 Mar 2011 16:48:41 +0000 (18:48 +0200)]
Automatic update of common submodule
From
6aec6b9 to
6aaa286
Stefan Kost [Thu, 24 Mar 2011 16:27:09 +0000 (18:27 +0200)]
docs: fix some gtk-doc warnings
Document the queue leaky enums.
Stefan Kost [Thu, 24 Mar 2011 16:25:08 +0000 (18:25 +0200)]
queue2: set max value for to the matching one for the datatype
The property is guint64, so use G_MAXUINT64 instead of G_MAXUINT.
Stefan Kost [Thu, 24 Mar 2011 11:22:57 +0000 (13:22 +0200)]
docs: cleanup and xref fixes
Deal with the hints from gtk-doc and fix the xrefs. Apply a work-around for ()
precedence over @. Move "MT Safe" text to doc body in many places. Trim eol
whitespaces.
Stefan Kost [Wed, 23 Mar 2011 14:42:24 +0000 (16:42 +0200)]
basesink: print flow return as a name in debug log
Stefan Kost [Wed, 23 Mar 2011 15:13:58 +0000 (17:13 +0200)]
docs: do xrefs for non installed books too
Get the xrefs from the builddir for the books in the same packages. This fixes
the cross references if one does not have the docs already installed.
Edward Hervey [Mon, 19 Apr 2010 18:39:53 +0000 (20:39 +0200)]
basesrc: Keep downstream caps order when fixating
This allows use to use the first intersecting format prefered by downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=617045
Edward Hervey [Mon, 19 Apr 2010 18:40:56 +0000 (20:40 +0200)]
basetransform: Retain caps order when getting caps
If the element gave us caps in a specific order, let's retain that
by intersecting against the template but retaining the order given
by the element.
https://bugzilla.gnome.org/show_bug.cgi?id=617045
Thiago Santos [Fri, 25 Feb 2011 13:25:26 +0000 (10:25 -0300)]
tests: caps: Tests for the new caps intersection mode
Adds test cases for the caps 'first' intersect mode
Adds another test for the 'zigzag' mode
Fixes #617045
Edward Hervey [Fri, 25 Feb 2011 11:50:12 +0000 (08:50 -0300)]
gstcaps: new API : gst_caps_intersect_full
Just like gst_caps_intersect, but adds a new parameter 'mode'
that allows selecting the intersection algorithm to use.
Currently we have GST_CAPS_INTERSECT_MODE_ZIG_ZAG (default) and
GST_CAPS_INTERSECT_MODE_FIRST.
API: gst_caps_intersect_full
API: GstCapsIntersectMode
API: GST_CAPS_INTERSECT_MODE_ZIG_ZAG
API: GST_CAPS_INTERSECT_MODE_FIRST
https://bugzilla.gnome.org/show_bug.cgi?id=617045
Tim-Philipp Müller [Sat, 12 Mar 2011 17:01:39 +0000 (17:01 +0000)]
tests: add libscpp unit test to make sure g++ likes our library headers