Sebastian Dröge [Thu, 19 Sep 2013 07:42:15 +0000 (09:42 +0200)]
po: Update translations
Sebastian Dröge [Wed, 18 Sep 2013 21:07:31 +0000 (23:07 +0200)]
message: Implement getting the name of the context message types
Sebastian Dröge [Tue, 17 Sep 2013 19:36:22 +0000 (21:36 +0200)]
context: Fix unit test for GstContext changes
Sebastian Dröge [Tue, 17 Sep 2013 12:34:47 +0000 (14:34 +0200)]
gst-launch: Update for GstContext changes
Sebastian Dröge [Tue, 17 Sep 2013 12:29:06 +0000 (14:29 +0200)]
context: Update docs
Sebastian Dröge [Tue, 17 Sep 2013 12:25:10 +0000 (14:25 +0200)]
bin: Implement context caching and propagation again
Sebastian Dröge [Tue, 17 Sep 2013 11:50:08 +0000 (13:50 +0200)]
message/query: Simplify CONTEXT messages/queries to only contain a single type
Sebastian Dröge [Tue, 17 Sep 2013 11:33:33 +0000 (13:33 +0200)]
context: Update documentation
Sebastian Dröge [Tue, 17 Sep 2013 11:28:42 +0000 (13:28 +0200)]
context: Change GstContext to contain only a single context
It was unintuitive that GstContext was actually a list of different
contexts. GstContext now is only a type string and a structure to
contain the actual context.
Sebastian Dröge [Tue, 17 Sep 2013 11:12:28 +0000 (13:12 +0200)]
element: Remove GstContext caching
Sebastian Dröge [Tue, 17 Sep 2013 11:10:53 +0000 (13:10 +0200)]
context: Add persistent qualifier for a context
Non-persistent contexts are removed when elements go back
to NULL state, persistent contexts are not. Applications
most likely want to set persistent contexts.
Sebastian Dröge [Tue, 17 Sep 2013 11:10:16 +0000 (13:10 +0200)]
query: Make CONTEXT query upstream and downstream
Sebastian Dröge [Tue, 17 Sep 2013 11:09:34 +0000 (13:09 +0200)]
event: Remove CONTEXT downstream event
This is going to be implemented with an upstream query instead
for consistency and simplicity.
Jonas Holmberg [Fri, 13 Sep 2013 12:41:45 +0000 (14:41 +0200)]
gst: Stop all unused threads in GThreadPool in gst_deinit()
Since the default number of max unused threads in GThreadPool has been
changed from 0 to 2 it needs to be set to 0 to stop all threads or
valgrind will report them as memory leaks.
Rico Tzschichholz [Tue, 10 Sep 2013 15:39:30 +0000 (16:39 +0100)]
controlbindings: fix pspec relaxation for control source properties
The change should have been from PARAM_CONSTRUCT_ONLY to
PARAM_CONSTRUCT, otherwise bindings are affected, since
they look for the CONSTRUCT flag.
See
ec55363d
Sebastian Dröge [Tue, 10 Sep 2013 08:15:03 +0000 (10:15 +0200)]
queue2: Only update current level if we already downloaded a range
Otherwise queue->level is NULL and dereferencing that is not a good
idea in general.
https://bugzilla.gnome.org/show_bug.cgi?id=707648
Sebastian Dröge [Mon, 9 Sep 2013 13:40:25 +0000 (15:40 +0200)]
meta: Deprecate GST_META_TAG_MEMORY
The GQuarks are not exported by any public API
Mathieu Duponchelle [Wed, 21 Aug 2013 22:02:28 +0000 (00:02 +0200)]
meta: Add a #define for memory metadata
Mathieu Duponchelle [Wed, 21 Aug 2013 22:01:44 +0000 (00:01 +0200)]
basetransform: implement a default transform_meta.
If a metadata has no dependency as shown by the tags, copy it.
Mathieu Duponchelle [Thu, 22 Aug 2013 19:32:36 +0000 (21:32 +0200)]
meta: API: Add gst_meta_api_type_get_tags() to get all meta tags.
Sebastian Dröge [Mon, 9 Sep 2013 12:21:56 +0000 (14:21 +0200)]
tests/capsfilter: Fix memory leak and compare caps directly instead of strcmp()
Sebastian Rasmussen [Fri, 6 Sep 2013 21:03:54 +0000 (23:03 +0200)]
tests/capsfilter: Test caps-related queries and property
Gustavo Noronha Silva [Fri, 6 Sep 2013 18:09:46 +0000 (15:09 -0300)]
Update the buffering state before stalling for more data
In some cases the wait for more data was happening without updating
the buffering state, meaning the API user would not be able to notice
it should pause the pipeline and update UI to indicate that is the
case, the video would likely stutter instead.
https://bugzilla.gnome.org/show_bug.cgi?id=707648
Thiago Santos [Wed, 4 Sep 2013 18:28:10 +0000 (15:28 -0300)]
basesrc: preserve seqnum on segments after seeks
The seqnum of the segment after a seek should be the same of
the seek event. Downstream elements might rely on seqnums to
identify events related to a seek.
This is particularly important when a demuxer maps a TIME seek
into a BYTES seek for upstream and it needs to identify the
corresponding segment event and map it back into TIME to push
downstream, possibly using the values from the original seek
event.
https://bugzilla.gnome.org/show_bug.cgi?id=707530
Zaheer Abbas Merali [Thu, 5 Sep 2013 12:14:42 +0000 (14:14 +0200)]
collectpads: Don't unref NULL GstCollectData
If a pad is removed while a collectpads element (say adder) is in a chain
function waiting to be collected, there is a possibility that an unref happens
on a NULL pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=707536
Christian Fredrik Kalager Schaller [Wed, 4 Sep 2013 15:11:20 +0000 (17:11 +0200)]
Remove PyXML from spec file, it is not longer needed
Sebastian Dröge [Wed, 4 Sep 2013 12:40:57 +0000 (14:40 +0200)]
typefind: Add missing break after handling the GAP event
Thanks to Edward Hervey for noticing.
Tim-Philipp Müller [Wed, 4 Sep 2013 08:18:55 +0000 (09:18 +0100)]
tools: move gst-plot-timeline.py into scripts directory
So it's not in PATH in an uninstalled setup (thwarting
gst-play autocompletion).
Matej Knopp [Tue, 3 Sep 2013 21:59:05 +0000 (23:59 +0200)]
multiqueue: Don't reduce single queue visible size below its current level
If the multiqueue has automatically grown chances are good that
we will cause the pipeline to starve if the maximum level is reduced
below that automatically grown size.
https://bugzilla.gnome.org/show_bug.cgi?id=707156
Sebastian Dröge [Mon, 2 Sep 2013 11:53:51 +0000 (13:53 +0200)]
outputselector: Don't adjust segment->start to the current time when switching pads
This does not make any sense at all and breaks timestamp->running_time
calculations in unpredictable ways.
https://bugzilla.gnome.org/show_bug.cgi?id=707130
Mathieu Duponchelle [Thu, 29 Aug 2013 21:18:31 +0000 (23:18 +0200)]
capsfilter: Delete link directly in pending_events.
When removing a segment event.
https://bugzilla.gnome.org/show_bug.cgi?id=707088
Tim-Philipp Müller [Thu, 29 Aug 2013 10:07:38 +0000 (11:07 +0100)]
basesink: demote log message, don't spam INFO level when handling buffer lists
Sebastian Dröge [Wed, 28 Aug 2013 11:26:28 +0000 (13:26 +0200)]
Back to development
Sebastian Dröge [Wed, 28 Aug 2013 10:36:16 +0000 (12:36 +0200)]
Release 1.1.4
Sebastian Dröge [Wed, 28 Aug 2013 10:36:01 +0000 (12:36 +0200)]
Update .po files
Sebastian Dröge [Wed, 28 Aug 2013 10:30:00 +0000 (12:30 +0200)]
po: update translations
Alessandro Decina [Tue, 27 Aug 2013 07:31:22 +0000 (09:31 +0200)]
filesink: please gcc (avoid a warn_unused_result warning)
Alessandro Decina [Tue, 27 Aug 2013 05:51:35 +0000 (07:51 +0200)]
filesink: flush (discard data) on FLUSH_STOP
Reset the write position to 0 and truncate the file on FLUSH_STOP.
Alessandro Decina [Tue, 27 Aug 2013 05:05:11 +0000 (07:05 +0200)]
tests: filesink: small refactoring
Tim-Philipp Müller [Mon, 26 Aug 2013 12:19:10 +0000 (13:19 +0100)]
tools: gst-launch: don't print properties being reset when shutting down
It's just noise.
Edward Hervey [Thu, 22 Aug 2013 17:01:32 +0000 (19:01 +0200)]
basetransform: Don't push out identical caps
This avoids triggering plenty of extra code/methods/overhead downstream when
we can just quickly check whenever we want to set caps whether they are
identical or not
https://bugzilla.gnome.org/show_bug.cgi?id=706600
Tim-Philipp Müller [Wed, 21 Aug 2013 11:21:43 +0000 (12:21 +0100)]
docs: flesh out gst_sample_get_buffer() a little
https://bugzilla.gnome.org/show_bug.cgi?id=706478
Kerrick Staley [Wed, 21 Aug 2013 06:59:29 +0000 (23:59 -0700)]
parse: make grammar.y work with Bison 3
YYLEX_PARAM is no longer supported in Bison 3.
https://bugzilla.gnome.org/show_bug.cgi?id=706462
Wonchul Lee [Tue, 20 Aug 2013 08:15:41 +0000 (17:15 +0900)]
sample: Add gst_sample_copy()
https://bugzilla.gnome.org/show_bug.cgi?id=706454
Olivier Crête [Mon, 19 Aug 2013 18:55:22 +0000 (14:55 -0400)]
buffer: Fix gst_buffer_memcmp() where the buffer is smaller than size
Also add unit tests for gst_buffer_memcmp
https://bugzilla.gnome.org/show_bug.cgi?id=706162
Tim-Philipp Müller [Tue, 20 Aug 2013 16:06:49 +0000 (17:06 +0100)]
docs: flesh out gst_element_query_{duration,position} docs a bit
Matthieu Bouron [Wed, 14 Aug 2013 15:18:59 +0000 (16:18 +0100)]
taglist: handle publisher and interpreted-by tags
https://bugzilla.gnome.org/show_bug.cgi?id=705999
Sebastian Dröge [Tue, 20 Aug 2013 11:58:24 +0000 (13:58 +0200)]
pluginloader: Don't call memcpy() with NULL src and 0 length
Sebastian Dröge [Tue, 20 Aug 2013 08:16:41 +0000 (10:16 +0200)]
queue: Properly unlock the sinkpad streaming thread when deactivating the pad
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Sebastian Dröge [Tue, 20 Aug 2013 08:16:05 +0000 (10:16 +0200)]
queue2: Properly unlock the sinkpad streaming thread when deactivating the pad
https://bugzilla.gnome.org/show_bug.cgi?id=706360
Sebastian Dröge [Mon, 19 Aug 2013 14:38:50 +0000 (16:38 +0200)]
multiqueue: Clean up after the streaming thread has stopped
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Sebastian Dröge [Mon, 19 Aug 2013 14:38:40 +0000 (16:38 +0200)]
queue2: Clean up after the streaming thread has stopped
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Sebastian Dröge [Mon, 19 Aug 2013 14:38:16 +0000 (16:38 +0200)]
queue: Clean up after the streaming thread has stopped
https://bugzilla.gnome.org/show_bug.cgi?id=705835
Brendan Long [Mon, 1 Jul 2013 20:04:46 +0000 (14:04 -0600)]
parse: Add GST_FLAG_NO_SINGLE_ELEMENT_BINS
This makes gst_parse_bin_from_description() return an element instead of
a bin if there's only one element. Also changed gstparse.c to use this,
so gst-launch won't create superfluous bins.
https://bugzilla.gnome.org/show_bug.cgi?id=703405
Arnaud Vrac [Fri, 16 Aug 2013 18:36:53 +0000 (20:36 +0200)]
query: return NULL when parsing uri redirection that was not set
https://bugzilla.gnome.org/show_bug.cgi?id=706160
Sebastian Dröge [Sun, 18 Aug 2013 09:48:40 +0000 (11:48 +0200)]
buffer: Update since marker for gst_buffer_extract_dup() to 1.0.10
Tim-Philipp Müller [Fri, 16 Aug 2013 15:45:41 +0000 (16:45 +0100)]
queue2: don't crash on EOS if queue is empty
Fixes spurious crash in test_simple_shutdown_while_running
unit test.
Tim-Philipp Müller [Fri, 16 Aug 2013 15:28:12 +0000 (16:28 +0100)]
queue2: don't change global buffering state from within query handler
When a buffering query is handled it uses the get_buffering_percent()
function to get some statitics. Unfortunately this function also
calculates whether the queue should be buffering and adapts the
global queue2 state in case of state transitions from/to buffering
(including whether a buffering message was posted on the bus!).
This means that there is a race which can cause buffering messages
to never posted if the global state changes happen as a result of aa
query instead of resulting from bytes flowing in/out.
Spotted by Sjoerd Simons.
Change to only query state in get_buffering_percent() and update
state only in update_buffering().
https://bugzilla.gnome.org/show_bug.cgi?id=705332
Wim Taymans [Fri, 16 Aug 2013 10:54:38 +0000 (12:54 +0200)]
queue2: update buffering when changing capacity
When the capacity of the queue changes, make sure we post an updated buffering
message because we might suddenly have completed the buffering stage.
Jonas Holmberg [Thu, 15 Aug 2013 13:35:08 +0000 (15:35 +0200)]
Free thread pools in gst_deinit()
Jonas Holmberg [Fri, 16 Aug 2013 09:03:30 +0000 (11:03 +0200)]
check: Call gst_deinit() at exit of all processes
Tim-Philipp Müller [Wed, 14 Aug 2013 20:41:23 +0000 (21:41 +0100)]
clock: simplify internal gst_clock_return_get_name() helper
Wim Taymans [Wed, 14 Aug 2013 15:44:48 +0000 (17:44 +0200)]
basesrc: improve flush-start handling
Use custom code to implement flush-stop, we can't reuse the set_flushing code
because we can't touch the live_playing flag and we need to signal the
streaming thread.
Wim Taymans [Wed, 14 Aug 2013 15:14:15 +0000 (17:14 +0200)]
basesrc: stop flushing in flush-stop
Wim Taymans [Wed, 14 Aug 2013 14:58:41 +0000 (16:58 +0200)]
basesrc: handle flush better
Unlock the streaming thread when flushing so that we can
insert the flush-stop correctly.
Edward Hervey [Wed, 14 Aug 2013 13:46:57 +0000 (15:46 +0200)]
.gitignore: ignore .dirstamp
Edward Hervey [Wed, 14 Aug 2013 05:21:06 +0000 (07:21 +0200)]
check: Don't use nodist headers on gir scanner
Just creates noise and bogus symbols
Edward Hervey [Wed, 7 Aug 2013 16:20:03 +0000 (18:20 +0200)]
gst: minor docstring fixups to make g-i happy
note: the #ifndef move is actually a move of the "SECTION" docstring
Edward Hervey [Tue, 13 Aug 2013 15:14:53 +0000 (17:14 +0200)]
.gitignore: Ignore files from automake test-driver
Edward Hervey [Wed, 7 Aug 2013 16:24:40 +0000 (18:24 +0200)]
baseparse: Add a property to disable passthrough
In some specific cases (like transmuxing) we want to force the element
to actually parse all incoming data even if the element deems it is not
necessary.
This property simply ignores requests from the element to enable passthrough
mode which results in processing always being enabled.
https://bugzilla.gnome.org/show_bug.cgi?id=705621
Thiago Santos [Thu, 8 Aug 2013 00:26:01 +0000 (21:26 -0300)]
dataqueue: add gst_data_queue_push_force
Adds a variant of the _push function that doesn't check the queue limits
before adding the new item. It is useful when pushing an element to the
queue shouldn't lock the thread.
One particular scenario is when the queue is used to serialize buffers
and events that are going to be pushed from another thread. The
dataqueue should have a limit on the amount of buffers to be stored to
avoid large memory consumption, but events can be considered to have
negligible impact on memory compared to buffers. So it is useful to be
used to push items into the queue that contain events, even though the
queue is already full, it shouldn't matter inserting an item that has
no significative size.
This scenario happens on adaptive elements (dashdemux / mssdemux) as
there is a single download thread fetching buffers and putting into the
dataqueues for the streams. This same download thread can als generate
events in some situations as caps changes, eos or a internal control
events. There can be a deadlock at preroll if the first buffer fetched
is large enough to fill the dataqueue and the download thread and the
next iteration of the download thread decides to push an event to this
same dataqueue before fetching buffers to other streams, if this push
locks, the pipeline will be stuck in preroll as no more buffers will be
downloaded.
There is a somewhat common practice in dash streams to have a single
very large buffer for audio and one for video, so this will always
happen as the download thread will have to push an EOS right after
fetching the first buffer for any stream.
API: gst_data_queue_push_force
https://bugzilla.gnome.org/show_bug.cgi?id=705694
Sebastian Dröge [Tue, 13 Aug 2013 11:06:50 +0000 (13:06 +0200)]
sysmem: Only copy the requested part of memory instead of the complete source memory
https://bugzilla.gnome.org/show_bug.cgi?id=705678
Tim-Philipp Müller [Tue, 13 Aug 2013 11:11:19 +0000 (12:11 +0100)]
query: add Since markers for new API and add to exports file
Andoni Morales Alastruey [Tue, 23 Jul 2013 14:25:27 +0000 (16:25 +0200)]
query: fix annotation for gst_query_parse_uri
Andoni Morales Alastruey [Fri, 19 Apr 2013 10:14:54 +0000 (12:14 +0200)]
query: add new redirection uri the URI query
Thiago Santos [Mon, 12 Aug 2013 12:25:34 +0000 (09:25 -0300)]
query: add some missing 'transfer none' gi annotations
The current documentation is controverse, while it states that the
returned value is valid only while the query is is valid, which presumes
a 'transfer none' policy. But the tooltip for the 'out' annotation
states the default is 'transfer-full'.
Add the missing 'transfer none' annotations to fix this.
Nicolas Dufresne [Thu, 8 Aug 2013 10:08:31 +0000 (12:08 +0200)]
bytereader: Accelerate MPEG/H264 start code scanning
Accelerate MPEG/H264 start code scanning using Boyer-Moor bad character
heuristic.
https://bugzilla.gnome.org/show_bug.cgi?id=702357
Tim-Philipp Müller [Sat, 10 Aug 2013 10:31:23 +0000 (11:31 +0100)]
pipeline: g-i: allow clock to be NULL in gst_pipeline_use_clock()
https://bugzilla.gnome.org/show_bug.cgi?id=705751
Adrian Pardini [Wed, 7 Aug 2013 17:17:28 +0000 (14:17 -0300)]
controller: fixes int overflow with properties that span +-INT_MAX
When the range for a property is defined as -INT_MAX-1 .. INT_MAX, like
the xpos in a videomixer the following expression in the macro
definitions of convert_g_value_to_##type (and the equivalent in
convert_value_to_##type)
v = pspec->minimum + (g##type) ROUNDING_OP ((pspec->maximum - pspec->minimum) * s);
are converted to:
v = -
2147483648 + (g##type) ROUNDING_OP ((
2147483647 - -
2147483648) * s);
(
2147483647 - -
2147483648) overflows to -1 and the net result is:
v = -
2147483648 + (g##type) ROUNDING_OP (-1 * s);
so v only takes the values -
2147483648 for s == 0 and
2147483647
for s == 1.
Rewriting the expression as minimum*(1-s) + maximum*s gives the correct
result in this case.
https://bugzilla.gnome.org//show_bug.cgi?id=705630
Lubosz Sarnecki [Fri, 2 Aug 2013 11:31:59 +0000 (13:31 +0200)]
build: add subdir-objects to AM_INIT_AUTOMAKE
Fixes warnings with automake 1.14
https://bugzilla.gnome.org/show_bug.cgi?id=705350
Wim Taymans [Fri, 2 Aug 2013 14:21:45 +0000 (16:21 +0200)]
design: fix typo
Sjoerd Simons [Mon, 29 Jul 2013 13:48:32 +0000 (15:48 +0200)]
queue2: Fix backwards seeks into undowloaded ranges
When in download buffering mode queue2 didn't check if a range offset is
in a undownloaded range before the currently in-progress range. Causing
seeks to an earlier offset to, well, take a while.
Kjartan Maraas [Tue, 30 Jul 2013 17:27:23 +0000 (19:27 +0200)]
docs: some small gtk-doc markup fixes
https://bugzilla.gnome.org/show_bug.cgi?id=705156
Kjartan Maraas [Tue, 30 Jul 2013 17:27:23 +0000 (19:27 +0200)]
gst: register new color mode enum, fixing 'make check'
https://bugzilla.gnome.org/show_bug.cgi?id=705156
Edward Hervey [Tue, 16 Apr 2013 17:04:48 +0000 (19:04 +0200)]
typefindhelper: Avoid using buffer_get_size in tight loops
Calling gst_buffer_get_size represented 2/3 of the cost of helper_find_peek
which was called whenever a typefindfunction wanted to peek at data.
We already know the size (from the GstMapInfo), so just use that.
Tim-Philipp Müller [Mon, 29 Jul 2013 18:38:51 +0000 (19:38 +0100)]
po: update translations
Tim-Philipp Müller [Mon, 29 Jul 2013 18:13:03 +0000 (19:13 +0100)]
common: revert accidental re-winding of common submodule
Sjoerd Simons [Fri, 26 Jul 2013 14:15:24 +0000 (16:15 +0200)]
query: Clarify the estimated-total documentation
Tweak the documentation slightly to clarify that the estimated-total in
a a Buffering query the total remaining time of a download, not the
total time for the complete download. Also indicate the unit used.
https://bugzilla.gnome.org/show_bug.cgi?id=704934
Sjoerd Simons [Fri, 26 Jul 2013 13:08:13 +0000 (15:08 +0200)]
queue2: Forward the schedule query upstream
When asked about the scheduling flags first check with upstream and
simply add the _SEEKABLE flag when using a temporary file as storage.
This enables the forwarding of _SEQUENTIAL and _BANDWIDTH_LIMITED from
sources if needed.
https://bugzilla.gnome.org/show_bug.cgi?id=704927
Sebastian Dröge [Mon, 29 Jul 2013 12:47:15 +0000 (14:47 +0200)]
Back to development
Sebastian Dröge [Mon, 29 Jul 2013 11:34:53 +0000 (13:34 +0200)]
Release 1.1.3
Sebastian Dröge [Mon, 29 Jul 2013 11:30:25 +0000 (13:30 +0200)]
Update .po files
Sebastian Dröge [Mon, 29 Jul 2013 10:10:45 +0000 (12:10 +0200)]
base: Fix handling of SEGMENT query
The values should be in stream-time, and start/stop should not
be swapped for negative rates.
Sebastian Dröge [Mon, 29 Jul 2013 09:05:09 +0000 (11:05 +0200)]
typefind: Only advance offset by the number of bytes we actually read
There might be a short read at EOS.
Sebastian Dröge [Mon, 29 Jul 2013 08:48:30 +0000 (10:48 +0200)]
baseparse: Implement SEGMENT query
Tim-Philipp Müller [Fri, 26 Jul 2013 17:36:04 +0000 (18:36 +0100)]
buffer: fix Since: marker for new gst_buffer_extract_dup()
Wim Taymans [Fri, 26 Jul 2013 10:19:32 +0000 (12:19 +0200)]
clock: debug the clock return values
Thiago Santos [Thu, 25 Jul 2013 15:20:14 +0000 (12:20 -0300)]
baseparse: fix seqnum handling for seeks
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events
Fixes #676242
David Schleef [Wed, 24 Jul 2013 17:29:30 +0000 (10:29 -0700)]
info: parse debug levels > 9
Sebastian Dröge [Wed, 24 Jul 2013 14:57:46 +0000 (16:57 +0200)]
value: Fix copy&paste mistakes in the bitmask function docs