Commit graph

14809 commits

Author SHA1 Message Date
Sebastian Dröge dd831b8114 element: Add API to get the last set context from an element
Elements should override GstElement::set_context() and also call
gst_element_set_context() to keep this context up-to-date with
the very latest context they internally use.
2013-03-31 11:26:32 +02:00
Stefan Sauer 782511d8f6 design: add initial tracing design doc 2013-03-30 14:13:10 +01:00
Sebastian Dröge f23db94fef pad: Let gst_pad_get_allowed_caps() pass the caps own caps as filter
This will reduce the number of caps created downstream and we don't
need to intersect in the very end with the pad's own caps.
2013-03-30 11:48:27 +01:00
Josep Torra 3c9dfaea38 basesink: fixes compiler warning
gstbasesink.c: In function 'gst_base_sink_chain_unlocked':
gstbasesink.c:3204: warning: 'ret' may be used uninitialized in this function
2013-03-30 10:24:27 +01:00
Stefan Sauer ba8c0f5e4b childproxy: fix gir warning 2013-03-29 19:16:45 +01:00
Edward Hervey 8c542540c2 Revert "pwg: Fix example"
This reverts commit 5d64f27d88.

*sigh*
2013-03-29 18:49:14 +01:00
Edward Hervey 5d64f27d88 pwg: Fix example 2013-03-29 18:46:18 +01:00
Edward Hervey 418dcd7277 pad: Remove SEGMENT sticky events when flushing
When flushing, it is expected that upstream will send a SEGMENT
event afterwards.
This also avoids stray SEGMENT events from coming through after a
flush.
2013-03-29 18:43:21 +01:00
Sebastian Dröge b909061031 gst: Add new GstContext miniobject for sharing contexts in a pipeline 2013-03-29 16:40:21 +01:00
Stefan Sauer bd85fe34ad argb-controlbinding: fix messed up property setter
This was misassigning the control sources. It was also leaking the old values if
a control source would be replaced.
2013-03-28 16:51:25 +01:00
Mark Nauwelaerts 6ddbaaa95c baseparse: reset next_pts upon SEGMENT event
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481
2013-03-27 18:26:30 +01:00
Mark Nauwelaerts 76acdee908 baseparse: more inter-timestamp tracking
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481
2013-03-27 18:26:30 +01:00
Olivier Crête ec16d6b0a4 buffer: Add annotations and pygi friendly extraction function
API: gst_buffer_extract_dup
2013-03-27 13:07:03 -04:00
Wim Taymans 21851c0e04 porting: hopefully clarify a little 2013-03-27 17:08:51 +01:00
David Schleef 700be18f11 Update docs for gst_pad_create_stream_id_printf()
To indicate that format strings should be alpha sortable.
2013-03-25 18:50:41 -07:00
Sebastian Dröge 7b00fd3701 caps: Add unit test for GST_CAPS_{ANY,NONE} and GST_STATIC_CAPS_{ANY,NONE}
https://bugzilla.gnome.org/show_bug.cgi?id=696435
2013-03-25 09:22:50 +01:00
Sebastian Dröge 7decc9bef7 caps: Fix gst_static_caps_get(GST_STATIC_CAPS_NONE)
https://bugzilla.gnome.org/show_bug.cgi?id=696435
2013-03-25 09:22:49 +01:00
Nicolas Dufresne 253035d395 basesrc: Don't send error if negotiate fails because we are flushing
Negotiation may be aborted by a flush from another thread that need to
stop the task (i.e. seek). Check that case and silently pause the task.

https://bugzilla.gnome.org/show_bug.cgi?id=696357
2013-03-25 08:57:06 +01:00
Tim-Philipp Müller a76885f333 toc: some documentation updates 2013-03-24 17:53:35 +00:00
Tim-Philipp Müller 1e6e797d65 docs: fix typo in query function example in Plugin Writer's Guide
https://bugzilla.gnome.org/show_bug.cgi?id=696142
2013-03-22 20:02:57 +00:00
Jonas Holmberg afbba8974a tests: fix spurious failure in test_collect collectpads test
pop() in collected callback.

There were three threads in the test cases that hanged: the test thread and two
threads that push buffers. Each thread push one buffer on one pad. There are
two pads in the collectpads so the second buffer will trigger the
collect-callback.

This is what happens when the hang occurs:

The first thread pushes a buffer and initializes a cookie to the value of a
counter in the collectpads object and waits on a cond for the counter to change
and for someone to consume the buffer (i.e. _pop() it).

The second thread pushes a buffer and calls the collected callback, which
signals the cond that the test thread is waiting for.

The test thread pops both buffers (without holding any lock). Each call to
_pop() increases the counter broadcasts the condition that the first thread is
now waiting for. It then joins both threads (hangs).

The first thread wakes up and returns, since its buffer has been consumed.

The second thread starts executing again. When the callback, called by the
second thread, has returned it initializes a cookie to the value of a counter,
which has already prematurely been increased by the test thread when it popped
the buffers, and wait's on a cond for the counter to change and for someone to
consume the buffer (i.e. _pop() it). Since the buffer has already been poped
and the counter has already been increased it will be stuck forever.

https://bugzilla.gnome.org/show_bug.cgi?id=685555
2013-03-18 10:45:13 +00:00
Tim-Philipp Müller c4138f6c5b gst-uninstalled: remove ffmpeg libs from dynamic linker paths
We link those libs into the plugin statically, or use external
system libs, but never the internal snapshot dynamically.
2013-03-16 12:06:27 +00:00
Tim-Philipp Müller 57ff83b61e gst-uninstalled: add gst-editing-serves to GI_TYPELIB_PATH
So pygi can find it.

https://bugzilla.gnome.org/show_bug.cgi?id=695937
2013-03-16 12:00:55 +00:00
Tim-Philipp Müller 1750620752 utils: make sure slow GST_READ_UINT* variants don't have unexpected side effects
Fixes unit test on systems where unaligned memory access is not possible.

https://bugzilla.gnome.org/show_bug.cgi?id=695599
2013-03-12 14:41:01 +00:00
Wim Taymans 9baef63f5b launch: don't exit the loop on buffering in paused
When we receive a buffering message of 100% in the paused state, we exit
the event_loop and move to the PLAYING state. What should happen is that
we wait for both ASYNC-DONE and 100% buffering before continueing.
2013-03-11 12:28:19 +01:00
Stefan Sauer 31fbc86e09 design: update controller design and add some thoughs for future stuff 2013-03-08 13:16:40 +01:00
Stefan Sauer 03075cd144 docs: mention clipping of values in control-binding docs 2013-03-08 13:16:40 +01:00
Stefan Sauer c342d54571 controller: code cleanups
Use a property for accessing the control-source on the binding. Drop base_init
on the test object.
2013-03-08 13:16:40 +01:00
Sebastian Dröge 0936b506ab query: gst_query_get_n_allocation_params() returns a new ref to the allocator 2013-03-07 11:47:04 +01:00
Stefan Sauer 9db3c83d2e controller: remove a bogus test
We previously forgot to initilize the amplitde property to the default and thus it was 0.0. Therefore a default lfo controlsource returned a series of 0.0 and the test was asserting on that.
2013-03-07 11:37:21 +01:00
Stefan Sauer ec55363da3 controlbinding: relax the pspec for the control-source
We can change control sources on controlbindings.
2013-03-07 09:18:26 +01:00
Stefan Sauer e642896565 lfo: set a sensible lower boundary for the frequency
Use DBL_MIN, which is a the smalles double greater than zero that is not in
denormal format. This exposes the limit better than the runtime check.
2013-03-07 09:18:25 +01:00
Tim-Philipp Müller 6f1ac78a4e Automatic update of common submodule
From 2de221c to 04c7a1e
2013-03-06 23:59:28 +00:00
Stefan Sauer 1b076e995e lfocontrolsource: init the amplitude to the default and update the docs 2013-03-06 16:41:18 +01:00
Sebastian Dröge 814bdde113 gst-uninstalled: Add all the base/bad libraries and remove obsolete ones 2013-03-05 11:31:02 +01:00
Tim-Philipp Müller f40aa2c4ad basesink: fix use of uninitialized variable
Running suite(s): GstBaseSink
==22023== Conditional jump or move depends on uninitialised value(s)
==22023==    at 0x505FFCE: gst_base_sink_get_sync_times (gstbasesink.c:1936)
==22023==    by 0x5068C80: gst_base_sink_do_sync (gstbasesink.c:2379)
==22023==    by 0x506BCD2: gst_base_sink_default_wait_event (gstbasesink.c:2903)
==22023==    by 0x50633A4: gst_base_sink_default_event (gstbasesink.c:2918)
==22023==    by 0x6F5C216: gst_fake_sink_event (gstfakesink.c:383)
==22023==    by 0x505F164: gst_base_sink_event (gstbasesink.c:3108)
==22023==    by 0x52FA090: gst_pad_send_event_unchecked (gstpad.c:4822)
==22023==    by 0x5303756: gst_pad_send_event (gstpad.c:4984)
==22023==    by 0x40165B: basesink_test_gap (basesink.c:148)
2013-03-03 16:03:42 +00:00
Sebastian Dröge 64affd3e61 buffer: Fix memory copying logic in copy_into()
https://bugzilla.gnome.org/show_bug.cgi?id=695035
2013-03-03 12:06:36 +01:00
Sebastian Dröge 3360299ef4 registrychunks: Use correct print format specifiers to fix compiler warnings 2013-03-03 11:28:32 +01:00
David Schleef ac8ccf2c50 Fix misspellings of 'continuous' 2013-03-02 10:43:56 -08:00
David Schleef f671bd2754 collectpads: take DTS into account
Importantly, this patch converts DTS to running time.  Less importantly,
and possibly a problem for some muxers, is that it orders buffers by
DTS (if it is valid, otherwise PTS).  This is generally correct, but
might be somewhat surprising to muxers.

Also note that once converted to running time, DTS can end up negative.
2013-03-02 10:42:01 -08:00
Stefan Sauer a0cff35ae8 manual: improve the controller docs a little more
Reword some sections. Explain value mappings better.
2013-02-28 23:00:46 +01:00
Tim-Philipp Müller 6580017510 gst-uninstalled: add gst-libav to pkg-config path 2013-02-28 19:40:32 +00:00
Stefan Sauer 82f7bdd7bb seeking: add more logging for seeking
Especially add logging to error code paths.
2013-02-27 22:17:17 +01:00
Sebastian Dröge ce1c1cf214 buffer: Gracefully handle gst_memory_copy() returning NULL without crashing
gst_buffer_copy_into() and gst_buffer_resize_range() can now fail.
2013-02-27 10:11:23 +01:00
Wim Taymans e52aa65ab7 allocator: small internal cleanups
Rename System memory allocator to GstAllocatorSysmem and the memory to
GstMemorySystem.
2013-02-26 17:33:30 +01:00
Wim Taymans 4df4fd33b1 memory: add method to check memory type
Add a method to check if a memory was allocated from an allocator of
a given type.

API: gst_memory_is_type()
2013-02-26 15:37:24 +01:00
Wim Taymans b339b0c12e docs: improve docs a little 2013-02-26 15:36:10 +01:00
Wim Taymans d7f15f542a use GST_MESSAGE_DURATION_CHANGED in docs and code 2013-02-26 15:32:25 +01:00
Wim Taymans f37fc1d299 memory: don't unref allocator too soon
Unref the allocator *after* we have freed the memory. We also need to keep
a ref to the allocator around because following the now freed memory would
lead to crashes.
2013-02-26 14:40:38 +01:00
Sebastian Dröge 2ca0046934 buffer: Fix inverted logic for deciding if memory should be shared or copied
https://bugzilla.gnome.org/show_bug.cgi?id=694717
2013-02-26 09:09:25 +01:00