Thiago Santos [Mon, 26 May 2014 15:31:33 +0000 (12:31 -0300)]
flowcombiner: add GstFlowCombiner
Adds a utility struct that is capable of storing and aggregating flow returns
associated with pads.
This way all demuxers will have a standard function to use and have the
same expected results.
Includes tests.
https://bugzilla.gnome.org/show_bug.cgi?id=709224
Thiago Santos [Fri, 23 May 2014 16:25:35 +0000 (13:25 -0300)]
pad: store last flow return and provide acessor function
Stores the last result of a gst_pad_push or a pull on the GstPad and provides
a getter and a macro to access this field.
Whenever the pad is inactive it is set to FLUSHING
API: gst_pad_get_last_flow_return
https://bugzilla.gnome.org/show_bug.cgi?id=709224
Nicolas Dufresne [Fri, 23 May 2014 19:26:59 +0000 (15:26 -0400)]
bufferpool: Add method and virtuals to set flushing state
Currently there is no other way to unlock a buffer pool other then
stopping it. This may have the effect of freeing all the buffers,
which is too heavy for a seek. This patch add a method to enter and
leave flushing state. As a convenience, flush_start/flush_stop
virtual are added so pool implementation can also unblock their own
internal poll atomically with the rest of the pool. This is fully
backward compatible with doing stop/start to actually flush the pool
(as being done in GstBaseSrc).
https://bugzilla.gnome.org/show_bug.cgi?id=727611
Sebastian Dröge [Mon, 26 May 2014 12:23:13 +0000 (14:23 +0200)]
basetransform: Passthrough ALLOCATION queries in passthrough mode even if we had no caps yet
Or if the element does not care about caps at all.
Also remove an assigned but unused local variable.
https://bugzilla.gnome.org/show_bug.cgi?id=710268
Tim-Philipp Müller [Sun, 25 May 2014 15:10:30 +0000 (16:10 +0100)]
po: update
Piotr Drąg [Sun, 25 May 2014 14:57:59 +0000 (16:57 +0200)]
po: update POTFILES
https://bugzilla.gnome.org/show_bug.cgi?id=730718
Sebastian Dröge [Wed, 21 May 2014 11:23:21 +0000 (13:23 +0200)]
Back to development
Sebastian Dröge [Wed, 21 May 2014 11:06:34 +0000 (13:06 +0200)]
Release 1.3.2
Sebastian Dröge [Wed, 21 May 2014 09:39:53 +0000 (11:39 +0200)]
Update .po files
Sebastian Dröge [Wed, 21 May 2014 08:50:43 +0000 (10:50 +0200)]
Automatic update of common submodule
From 211fa5f to 1f5d3c3
Sebastian Dröge [Mon, 19 May 2014 09:05:12 +0000 (11:05 +0200)]
value: Add some positive testcase for string deserialization
Tim-Philipp Müller [Sun, 18 May 2014 09:49:50 +0000 (10:49 +0100)]
docs: remove reference to Mandrake and packages we no longer provide
https://bugzilla.gnome.org/show_bug.cgi?id=730312
Wim Taymans [Thu, 15 May 2014 14:41:58 +0000 (16:41 +0200)]
docs: fix typo
Tim-Philipp Müller [Wed, 14 May 2014 12:40:03 +0000 (13:40 +0100)]
pluginloader: fix compiler warning on windows
gstpluginloader.c:584:1: error: label 'beach' defined but not used
https://bugzilla.gnome.org/show_bug.cgi?id=730125
Tim-Philipp Müller [Tue, 13 May 2014 18:51:34 +0000 (19:51 +0100)]
elements: don't depend on libgio just for g_io_error_from_errno()
https://bugzilla.gnome.org/show_bug.cgi?id=729949
Tim-Philipp Müller [Tue, 13 May 2014 18:30:38 +0000 (19:30 +0100)]
sparsefile: keep it private as helper API for downloadbuffer
There's no expectation that any other element or applications
might want to use this helper API any time soon, so keep it
private for the time being. There were open questions regarding
portability and binding-friendliness too.
This also removes the gio dependency of -base again.
https://bugzilla.gnome.org/show_bug.cgi?id=729951
https://bugzilla.gnome.org/show_bug.cgi?id=729949
Tim-Philipp Müller [Tue, 13 May 2014 18:14:08 +0000 (19:14 +0100)]
docs: pick up GstBaseParse hierarchy and properties
Tim-Philipp Müller [Tue, 13 May 2014 18:10:43 +0000 (19:10 +0100)]
docs: expose GstPushSrcClass in documentation
Might come in handy in case someone wants to derive from it.
Edward Hervey [Mon, 12 May 2014 15:03:46 +0000 (17:03 +0200)]
pluginloader: Don't leak pluginloader in error cases
CID #1212154
Edward Hervey [Mon, 12 May 2014 14:59:29 +0000 (16:59 +0200)]
caps: Don't leak features on error cases
If we fail to parse fields, we would end up leaking the features we
parsed just before
CID #1212152
Nicolas Dufresne [Fri, 9 May 2014 18:28:59 +0000 (14:28 -0400)]
basetransform: Correctly reset configuration
When pool can't we use, and we fall back to default pool, we need to
correctly reset that pool configuration.
Edward Hervey [Fri, 9 May 2014 12:46:59 +0000 (14:46 +0200)]
nettimeprovider: Use non-freed variable
address is only used temporarily. Use the proper variable instead.
CID #1212189
Thiago Santos [Thu, 8 May 2014 20:33:37 +0000 (17:33 -0300)]
tests: multiqueue: test to check queue overrun with pts=none
Checks if buffers with pts=none can break the queue time size limit
and allow more buffers than expected
Nicolas Dufresne [Thu, 8 May 2014 18:48:00 +0000 (14:48 -0400)]
downloadbuffer: Fix 32bit build
format '%lli' expects argument of type 'long long int', but argument 8 has type 'gsize'
Nicolas Dufresne [Thu, 8 May 2014 18:12:16 +0000 (14:12 -0400)]
pool-nego: Correctly reset the configuration
When pool cannot be used, correctly reset the configuration before
configuration a default pool.
Nicolas Dufresne [Tue, 15 Apr 2014 18:17:00 +0000 (14:17 -0400)]
pool-nego: Retry setting configuration with modified config
Buffer pool set_config() may return FALSE if requested configuration needed
small changes. Reget the config and try setting it again (validating the
changes first). This ensure we have a configured pool if possible.
https://bugzilla.gnome.org/show_bug.cgi?id=727916
Nicolas Dufresne [Thu, 8 May 2014 16:47:43 +0000 (12:47 -0400)]
bufferpool: Add an helper to validate config
When we call gst_buffer_pool_set_config() the pool may return FALSE and
slightly change the parameters. This helper is useful to do the minial required
validation before accepting the modified configuration.
https://bugzilla.gnome.org/show_bug.cgi?id=727916
Nicolas Dufresne [Tue, 8 Apr 2014 23:27:55 +0000 (19:27 -0400)]
bufferpool: Update the configure even if set_config() returned false
According to the documentation, when set_config() return false, it should be
possible to read the modified version of the config. This patch fixes the
implementation so it is now according to the documentation.
https://bugzilla.gnome.org/show_bug.cgi?id=727916
Nicolas Dufresne [Tue, 6 May 2014 19:35:14 +0000 (15:35 -0400)]
bufferpool: Add support for reconfiguring a pool
If a pool config is being configured again, check if the configuration have changed.
If not, skip that step. Finally, if the pool is active, try deactivating it.
https://bugzilla.gnome.org/show_bug.cgi?id=728268
Nicolas Dufresne [Tue, 6 May 2014 20:59:34 +0000 (16:59 -0400)]
value: Add support for GstAllocationParams comparision
This is useful to compare buffer pool configuaration.
https://bugzilla.gnome.org/show_bug.cgi?id=728268
Nicolas Dufresne [Tue, 6 May 2014 20:46:55 +0000 (16:46 -0400)]
value: Add support for GObject comparising in structures
This is useful to allow comparing pool configuration where a GstAllocator
is set.
https://bugzilla.gnome.org/show_bug.cgi?id=728268
Tim-Philipp Müller [Thu, 8 May 2014 16:50:50 +0000 (17:50 +0100)]
plugin: fix case where gst_plugin_load_file() didn't set the error on failure
Tim-Philipp Müller [Thu, 8 May 2014 15:30:55 +0000 (16:30 +0100)]
sparsefile: add some Since markers to docs
Tim-Philipp Müller [Thu, 8 May 2014 15:25:55 +0000 (16:25 +0100)]
sparsefile: sprinkle G_BEGIN_DECLS / G_END_DECLS
for c++, and remove outdated comment, and add
new unit test to .gitignore.
Wim Taymans [Thu, 8 May 2014 14:49:53 +0000 (16:49 +0200)]
downloadbuffer: small cleanups
Wim Taymans [Thu, 8 May 2014 12:51:12 +0000 (14:51 +0200)]
downloadbuffer: update docs
Wim Taymans [Thu, 8 May 2014 12:50:42 +0000 (14:50 +0200)]
win32: update def
Wim Taymans [Fri, 21 Feb 2014 15:32:52 +0000 (16:32 +0100)]
Add new downloadbuffer element
See https://bugzilla.gnome.org/show_bug.cgi?id=680183
Wim Taymans [Fri, 2 May 2014 15:42:58 +0000 (17:42 +0200)]
pads: update docs for request pads
We would like to encourage the use of gst_element_request_pad()
Tim-Philipp Müller [Fri, 2 May 2014 16:02:37 +0000 (17:02 +0100)]
check: use _exit() instead of exit() in fail_unless() so we exit immediately
exit() will call atexit handlers, which may try to
clean up things or wait for things to get cleaned up,
which we don't want or need. We just want to stop
and let the parent know about the failure as quickly
as possible in case fork() is used.
Fixes timeouts on assert failures in checks where
an exit handler waits for things to stop, but they
don't stop because they haven't been shut down,
and they haven't been shut down because there's no
simple way to do so on failures.
http://sourceforge.net/p/check/patches/50/
Tim-Philipp Müller [Sun, 4 May 2014 13:52:01 +0000 (14:52 +0100)]
value: init flag mask more correctly
Руслан Ижбулатов [Sun, 4 May 2014 13:32:46 +0000 (13:32 +0000)]
filesrc: g_memmove() is deprecated
https://bugzilla.gnome.org/show_bug.cgi?id=712811
Sebastian Dröge [Sat, 3 May 2014 18:48:22 +0000 (20:48 +0200)]
Back to development
Sebastian Dröge [Sat, 3 May 2014 15:41:41 +0000 (17:41 +0200)]
Release 1.3.1
Sebastian Dröge [Sat, 3 May 2014 15:34:08 +0000 (17:34 +0200)]
Update .po files
Sebastian Dröge [Sat, 3 May 2014 15:20:46 +0000 (17:20 +0200)]
po: Update translations
Tim-Philipp Müller [Sat, 3 May 2014 11:14:43 +0000 (12:14 +0100)]
docs: add new device probing API to docs table of contents
https://bugzilla.gnome.org/show_bug.cgi?id=729440
Nicolas Dufresne [Sat, 3 May 2014 02:22:03 +0000 (22:22 -0400)]
doc: Add GstDevice* to gstreamer-sections.txt
https://bugzilla.gnome.org/show_bug.cgi?id=729440
Sebastian Dröge [Sat, 3 May 2014 08:14:40 +0000 (10:14 +0200)]
Automatic update of common submodule
From bcb1518 to 211fa5f
Nicolas Dufresne [Thu, 1 May 2014 14:37:18 +0000 (10:37 -0400)]
basesink: Always render prepared buffer
Currently, if prepare() takes too much time, we skip the call to render().
The side effect of this, is that we endup starving the render(). The solution
in this patch is to always render frames that are on time before prepare() is
executed. This will maximize the number of frames we display and smoothly
degrade the rendering performance.
https://bugzilla.gnome.org/show_bug.cgi?id=729335
Luis de Bethencourt [Thu, 1 May 2014 18:52:24 +0000 (14:52 -0400)]
scripts/git-version.sh: add more modules
Add more git repositories to check (so git-version.sh is consistent with
gst-uninstalled) and display the date of the last commit, which is more valuable
information than the last commit's hash.
Sebastian Dröge [Thu, 1 May 2014 16:42:47 +0000 (18:42 +0200)]
bin: Always first post the state-changed message for PAUSED->READY before posting any pending EOS message
https://bugzilla.gnome.org/show_bug.cgi?id=727949
Sebastian Dröge [Thu, 17 Apr 2014 19:10:55 +0000 (21:10 +0200)]
basesink: Add test for checking that EOS always comes after the state change to PLAYING
https://bugzilla.gnome.org/show_bug.cgi?id=727949
Stian Selnes [Tue, 15 Apr 2014 13:55:25 +0000 (15:55 +0200)]
bufferpool: fix log message of buffer pointer
Luis de Bethencourt [Wed, 30 Apr 2014 22:20:28 +0000 (18:20 -0400)]
scripts/git-version.sh: remove unused variable
Luis de Bethencourt [Wed, 30 Apr 2014 14:47:19 +0000 (10:47 -0400)]
scripts/git-version.sh: fix mistaken comments
Thiago Santos [Mon, 28 Apr 2014 16:02:11 +0000 (13:02 -0300)]
multiqueue: avoid signaling overrun on the first segment
When the first segment has position != 0 and position > max-size-time
it will immediatelly cause the multiqueue to signal overrun.
This can happen easily with adaptive streams when switching bitrates
and starting a new group. The segment for this new group will have
a position that is much greater than 0 and will lead to this issue.
This is particularly harmful when the adaptive stream uses mpegts
that doesn't emit no-more-pads and it might happen that only one
of the stream pads was added when the multiqueue overruns and gets
the group ready for exposing. So the user will only get audio or
video.
The solution is to fallback to the sink segment while the source pad
has no segment.
https://bugzilla.gnome.org/show_bug.cgi?id=729124
Xavi Artigas [Mon, 28 Apr 2014 08:14:50 +0000 (10:14 +0200)]
docs: enhancements to porting guide documentation
https://bugzilla.gnome.org/show_bug.cgi?id=727754
Sebastian Dröge [Mon, 28 Apr 2014 07:43:32 +0000 (09:43 +0200)]
query: Add boolean to URI query to specify if a redirect is permanent or not
Srimanta Panda [Fri, 25 Apr 2014 07:38:00 +0000 (07:38 +0000)]
funnel: Check if the last pad was set
If no data is coming but only EOS is sent from all of the sinkpad, it is not
forwarding the EOS.
https://bugzilla.gnome.org/show_bug.cgi?id=727945
Felipe Ortiz [Sat, 26 Apr 2014 16:02:18 +0000 (17:02 +0100)]
docs: add docs for various GstPad macros
https://bugzilla.gnome.org/show_bug.cgi?id=723652
Tim-Philipp Müller [Sat, 26 Apr 2014 22:12:13 +0000 (23:12 +0100)]
Revert "docs: add docs for various GstPad macros"
This reverts commit
d17438d5fd321daec4adbeb28a8fb5d5e07298dc.
This commit featured the wrong author, sorry.
Tim-Philipp Müller [Sat, 26 Apr 2014 20:21:51 +0000 (21:21 +0100)]
docs: remove outdated and pointless 'Last reviewed' lines from docs
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
Nicolas Dufresne [Wed, 26 Mar 2014 19:56:08 +0000 (15:56 -0400)]
buffer: Only set TAG_MEMORY if the memory has been replaced
Currently we set TAG_MEMORY as soon a resize changes the size of one
of the memory. This has the side effect that buffer pool cannot know if
the memory have simply been resized, or if the memorys has been replaced.
This make it hard to actually implement _reset(). Instead, only set the
TAG_MEMORY if one or more memory has been replaced, and do a light
sanity check of the size.
https://bugzilla.gnome.org/show_bug.cgi?id=727109
Showayb Zahda [Sat, 26 Apr 2014 16:02:18 +0000 (17:02 +0100)]
docs: add docs for various GstPad macros
https://bugzilla.gnome.org/show_bug.cgi?id=723652
Sebastian Dröge [Fri, 25 Apr 2014 13:38:39 +0000 (15:38 +0200)]
bin: When going to READY make sure to always deactivate pads
We might not have reached PAUSED yet because of an async error,
but nonetheless we want to make sure that the pads are always
deactivated in READY state.
Sebastian Dröge [Tue, 22 Apr 2014 16:23:15 +0000 (18:23 +0200)]
bin: Don't left-shift into the sign bit, the result is undefined
Sebastian Dröge [Tue, 22 Apr 2014 16:16:10 +0000 (18:16 +0200)]
value: Use an unsigned 64 bit integer as a mask
We shift the mask to the right later and shifting the result
of shifting over the sign bit is undefined.
Sebastian Dröge [Sun, 20 Apr 2014 09:59:02 +0000 (11:59 +0200)]
basesrc: Make sure to always hold the LIVE_LOCK when going to the flushing label
https://bugzilla.gnome.org/show_bug.cgi?id=728596
Srimanta Panda [Fri, 11 Apr 2014 17:52:02 +0000 (19:52 +0200)]
funnel: Handle end of stream event on sink pad
Handle end of stream events on sink pad. Check all the sink pad
has received eos before forwarding to source pad.
Fixes : https://bugzilla.gnome.org/show_bug.cgi?id=727945
Edward Hervey [Sat, 5 Apr 2014 09:37:53 +0000 (11:37 +0200)]
gstvalue: Prevent division or modulo by zero
The step can end up being zero if the underlying value isn't a valid
range GValue.
In those cases, return FALSE.
We don't use g_return*_if_fail since it will already have been triggered
by the above-mentionned _get_step() functions.
CID #1037132
Antoine Jacoutot [Wed, 9 Apr 2014 14:44:07 +0000 (16:44 +0200)]
libs: g-ir-scanner: do not hardcode libtool path
https://bugzilla.gnome.org/show_bug.cgi?id=726571
Sebastian Dröge [Wed, 16 Apr 2014 17:49:56 +0000 (19:49 +0200)]
memory/buffer: Initialise GstMapInfo to zeroes if mapping fails
This should allow for more meaningful errors. Dereferencing NULL
is more useful information than dereferencing a random address
happened to be on the stack.
Sebastian Dröge [Wed, 16 Apr 2014 15:49:06 +0000 (17:49 +0200)]
preset: Unref return value of gst_child_proxy_get_child_by_index() instead of leaking it
Sebastian Dröge [Wed, 16 Apr 2014 15:48:57 +0000 (17:48 +0200)]
preset: Automatic code style fixes
Vincent Penquerc'h [Wed, 16 Apr 2014 14:17:04 +0000 (15:17 +0100)]
queue2: fix event/preroll deadlock differently
The qlock is released between popping a buffer from the queue
and pushing it. When this buffer causes the sink to wait in
preroll, this lets a query see that the queue is empty, and
push the query then wait for it to be serviced. However, this
will not be done till after peroll, and this will thus block.
If upstream was waiting on buffering to reach 100% before
switching to PLAYING, a deadlock would ensue.
This had been fixed recently by failing queries when the
queue2 was buffering, but this happens to break some other
case (playbin on a local http server and matroska), while
this patch works for both.
See https://bugzilla.gnome.org/show_bug.cgi?id=728345
Edward Hervey [Wed, 16 Apr 2014 05:59:27 +0000 (07:59 +0200)]
check: Fix exported symbol name
it's _template and not _templ
Sebastian Dröge [Tue, 15 Apr 2014 19:16:06 +0000 (21:16 +0200)]
pad: Add missing space in debug output
Sebastian Dröge [Tue, 15 Apr 2014 10:58:59 +0000 (12:58 +0200)]
check: Add new API to set up pads from non-static pad templates
Sebastian Dröge [Mon, 14 Apr 2014 19:35:52 +0000 (21:35 +0200)]
collectpads: Fix memory leak in unit test
Tim-Philipp Müller [Sat, 12 Apr 2014 14:22:35 +0000 (15:22 +0100)]
testclock: replace newly-added GstTestClockIDList structure with a simple GList
Keep it simple. Likely also makes things easier for bindings,
and efficiency clearly has not been a consideration given how
the existing code handled these lists.
Tim-Philipp Müller [Sat, 12 Apr 2014 13:30:43 +0000 (14:30 +0100)]
docs: testclock: fix up Since markers
Tim-Philipp Müller [Fri, 11 Apr 2014 23:28:51 +0000 (00:28 +0100)]
testclock: add back gst_test_clock_wait_for_pending_id_count()
.. but deprecate it. ABI stability and all that.
It's a dangerous and racy function to use.
Tim-Philipp Müller [Sun, 23 Mar 2014 15:08:26 +0000 (15:08 +0000)]
testclock: remove unused variable
Fixes compiler warning.
Havard Graff [Mon, 16 Dec 2013 09:01:37 +0000 (10:01 +0100)]
testclock: add support for waiting and releasing multiple GstClockIDs
In order to be deterministic, multiple waiting GstClockIDs needs to be
released at the same time, or else one can get into the situation that
the one being released first can add itself back again before the next
one waiting is released.
Test added for new API and old tests rewritten to comply.
Linus Svensson [Tue, 1 Apr 2014 13:38:54 +0000 (15:38 +0200)]
pad: don't access unowned and possibly already freed event
Don't print the name of the event when ownership is given away.
https://bugzilla.gnome.org/show_bug.cgi?id=727484
Wim Taymans [Sat, 12 Apr 2014 05:13:02 +0000 (07:13 +0200)]
inspect: print structure values of properties
Jan Schmidt [Fri, 11 Apr 2014 12:38:25 +0000 (22:38 +1000)]
input-selector: Hold pad object lock when changing tags
Avoid spurious crashes when tags are retrieved just as
new ones arrive.
Edward Hervey [Fri, 11 Apr 2014 11:45:21 +0000 (13:45 +0200)]
gstbuffer: Fix range iteration
We want to iterate over items idx to idx + length
We use the len variable as the corrected number of memory to iterate
and then properly go over all items.
Fixes the issue where specifying any idx different from 0 had no effect
Spotted by clang static analyzer
Vincent Penquerc'h [Wed, 9 Apr 2014 16:01:01 +0000 (17:01 +0100)]
structure: error out when trying to fixate a fraction near an invalid target
Sebastian Dröge [Fri, 4 Apr 2014 15:28:23 +0000 (17:28 +0200)]
event: Update running time in QoS based on the pad offsets
https://bugzilla.gnome.org/show_bug.cgi?id=722697
Sebastian Dröge [Fri, 4 Apr 2014 15:15:25 +0000 (17:15 +0200)]
pad: Apply pad offsets on all events, not just segment events
Sebastian Dröge [Fri, 4 Apr 2014 15:06:18 +0000 (17:06 +0200)]
event: Add running-time-offset field to all events
Events passing through #GstPads that have a running time
offset set via gst_pad_set_offset() will get their offset
adjusted according to the pad's offset.
If the event contains any information that related to the
running time, this information will need to be updated
before usage with this offset.
Vincent Penquerc'h [Wed, 9 Apr 2014 15:40:27 +0000 (16:40 +0100)]
utils: avoid dividing by zero when multiplying y/z by 0/x
The gcd of 0/x is 0, and this is then used as a denominator.
Sebastian Dröge [Wed, 9 Apr 2014 14:01:09 +0000 (16:01 +0200)]
multiqueue: And actually run the other tests again
Sebastian Dröge [Wed, 9 Apr 2014 13:57:35 +0000 (15:57 +0200)]
multiqueue: Wake up the queues if limits are changing in a way that would unblock the queue
Sebastian Dröge [Wed, 9 Apr 2014 13:42:48 +0000 (15:42 +0200)]
multiqueue: Add test for checking if pads are waked up when limits are changed
Jose Antonio Santos Cadenas [Wed, 9 Apr 2014 08:15:33 +0000 (10:15 +0200)]
baseparse: Fix memory leak
Queued frames were not released after being pushed, this
caused a leak of the GstBaseParseFrame structure.
https://bugzilla.gnome.org/show_bug.cgi?id=727883
Tim-Philipp Müller [Mon, 7 Apr 2014 16:49:14 +0000 (17:49 +0100)]
queue2: use g_strerror() instead of strerror()
Need UTF-8 encoding.
Tim-Philipp Müller [Mon, 7 Apr 2014 16:47:30 +0000 (17:47 +0100)]
Revert "check: only call setpgid on valid child PIDs"
This reverts commit
b9313afc75b68d986e473b76b55543456857912b.
This should be fixed in upstream libcheck instead. We want
to keep diff of our local copy to upstream libcheck
to a minimum.