Commit graph

2127 commits

Author SHA1 Message Date
Wim Taymans
e11ca04ae7 manual: add dynamic capsfilter example 2012-10-04 11:50:58 +02:00
Wim Taymans
ed19974e25 meta: do metadata registration threadsafe
We need to use g_once to register the metadata implementations
only once.

See https://bugzilla.gnome.org/show_bug.cgi?id=685332
2012-10-03 13:45:22 +02:00
Wim Taymans
cadfeb2cd3 manual: add partial preroll example with probes 2012-10-03 13:09:00 +02:00
Wim Taymans
f31dcf4e71 pwg: add appsink docs 2012-10-02 16:44:28 +02:00
Wim Taymans
cbc46176e0 pwg: rewite data-access chapter
Rewrite the data-access chapter so that we talk about appsrc instead
of the fakesrc hacks.
2012-10-02 16:15:19 +02:00
Tim-Philipp Müller
507fc9cea7 value: avoid duplicates when intersecting lists
Fixes negotiation taking a ridiculous amount of
time (multiple 10s of seconds on a core2) when
there are duplicate entries in lists.

Could have a negative performance impact on other
scenarios because we now have to iterate the
dest list to avoid duplicates, but we don't
have a lot of lists any more these days, and
they tend to be small anyway. The negatives
are hopefully countered by the positive effects
of reducing the list length early on in the
process. And in any case, it's the right thing
to do.

Based on patch by Andre Moreira Magalhaes.

https://bugzilla.gnome.org/show_bug.cgi?id=684981
2012-09-29 14:35:58 +01:00
Olivier Crête
fd846a7c64 miniobject: Always reject WRITE locks on READONLY miniobjects
Verify that mapping a read-only memory as read doesnt make it writable
2012-09-28 17:12:14 -04:00
Olivier Crête
fddf7dcb01 tests: Test the case where ghost pads are removed while streaming
https://bugzilla.gnome.org/show_bug.cgi?id=684809
2012-09-27 10:53:16 +02:00
Wim Taymans
c6e754635c tests: enable library abi checks 2012-09-27 10:37:32 +02:00
Wim Taymans
58443d6f2b tests: add abi checks
Enable abi checks again.
Fix abi sizes for x86_64, copy the file to other archs.
2012-09-26 17:11:05 +02:00
Wim Taymans
7c24fc7450 manual: fix up the manual
MIME-type -> media types
Fix up the manual in various places with the 1.0 way of doing things
such as probes, static elements, scheduling, ...
Add porting from 0.10 to 1.0 chapter.
Add probe example to build.
Remove some docs for remove components such as GstMixer and
GstPropertyProbe, XML...
2012-09-25 14:45:15 +02:00
Josep Torra Valles
173815bb6d benchmarks: printf format fixes to make intel compiler happy
https://bugzilla.gnome.org/show_bug.cgi?id=552657
2012-09-25 01:02:03 +01:00
Olivier Crête
945e0d2be9 pad: Remove pad probes only once
Also add test to make sure that if a pad probe is removed while it's
callback is running, the cleanup_hook isn't called again if it
returns GST_PAD_PROBE_REMOVE
2012-09-20 15:24:33 -04:00
Sebastian Dröge
de635d089f pad: Add parent parameter to the link and unlink functions
Fixes part of bug #683995.
2012-09-17 13:24:36 +02:00
Tim-Philipp Müller
c2175db889 sample: add serialisation/deserialisation functions for GstSample
Since these things are inside taglists now, it would be good to be
able to print them and deserialise them.

https://bugzilla.gnome.org/show_bug.cgi?id=681322
2012-09-16 23:20:46 +01:00
Mark Nauwelaerts
abf21d1f6d replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:01:21 +02:00
Wim Taymans
7921e652b6 tests: fix for appsink return value addition 2012-09-14 13:34:24 +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
Stefan Sauer
57b24d9c57 collectpads: fix a misplaced ')' 2012-09-12 23:12:56 +02:00
Stefan Sauer
57ea490f5a collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:04:47 +02:00
Tim-Philipp Müller
b25c3363e0 Revert "tests: fix buffer leak in queue2 unit test"
This reverts commit 232fd2953e.

This was already fixed.
2012-09-12 13:00:15 +01:00
Tim-Philipp Müller
232fd2953e tests: fix buffer leak in queue2 unit test 2012-09-12 12:33:51 +01:00
Mark Nauwelaerts
bb4860d961 check: port to the new GLib thread API 2012-09-12 13:01:18 +02:00
Mark Nauwelaerts
47e7c91ab5 tests: port to new GLib thread API 2012-09-12 13:01:18 +02:00
Mark Nauwelaerts
ec4ff874fc tests: benchmarks: align error message with code 2012-09-12 13:01:18 +02:00
Wim Taymans
00c6fa74f5 events: remove STREAM_CONFIG
We won't be able to implement this so it's better to move it out of the way.
2012-09-11 16:29:12 +02:00
Wim Taymans
ae0fdebaca tests: disable deprecation warnings
define GLIB_DISABLE_DEPRECATION_WARNINGS earlier so that it is defined before
the glib headers are loaded or else we trip over the GValueArray deprecations in
gst-inspect.c.
2012-09-10 10:08:09 +02:00
Tim-Philipp Müller
1ead500dad examples: fix bus/fd leak in hello world example
https://bugzilla.gnome.org/show_bug.cgi?id=683470
2012-09-06 15:06:08 +01:00
Tim-Philipp Müller
38e3d6c7fd examples: update Makefile.am android bits in controller example
Should fix build failure reported on IRC.
2012-09-03 18:45:03 +01:00
Tim-Philipp Müller
4ab9587417 tests: add check for gst-inspect --exists functionality 2012-09-01 23:02:10 +01:00
Tim-Philipp Müller
1507ce3907 tests: fix collectpads test
After an EOS we must send a FLUSH_STOP event if
we want to send data again.
2012-08-12 18:36:09 +01:00
Tim-Philipp Müller
79c0d2a276 tests: make pipeline test valgrind clean 2012-08-12 16:40:03 +01:00
Tim-Philipp Müller
31e28180b3 tests: fix pipeline unit test
Which was disabled because it failed.
2012-08-12 16:37:02 +01:00
Tim-Philipp Müller
5bff3ba949 tests: remove silly test_fail_abstract_new check
Our check would make sure that GLib segfaults when
someone tries to instantiate an abstract type, which
is an extremely useful thing to check for.

In newer GLibs this is fixed and we get an abort with
a g_error() now it seems, so let's just remove this
check entirely.
2012-08-08 14:50:10 +01:00
Tim-Philipp Müller
c354714544 examples: don't put things with side effects inside g_assert()
They will be defined away to NOOPs otherwise in release builds.
2012-08-08 09:53:26 +01:00
Sebastian Dröge
0d22988e5c event: Update for stream-start event API changes 2012-08-06 14:00:56 +02:00
Tim-Philipp Müller
352a4b5b07 tests: update .gitignore for queuearray test binary 2012-08-05 17:12:35 +01:00
Tim-Philipp Müller
53cfccf764 tests: fix spurious netclientclock test failures
Give clocks a bit more time to synchronise.
2012-08-05 17:11:46 +01:00
Tim-Philipp Müller
e8ab1006c7 toc: add GstTocScope and require it in the constructor
This is because we need to be able to signal different TOCs
to downstream elements such as muxers and the application,
and because we need to send both types as events (because
the sink should post the TOC messages for the app in the
end, just like tag messages are now posted by the sinks),
and hence need to make TOC events multi-sticky.

https://bugzilla.gnome.org/show_bug.cgi?id=678742
2012-07-28 09:16:06 +01:00
Sebastian Dröge
826a8d643d tag: Add a scope to taglists
This specifies if a given taglist applies to the complete
medium or only this specific stream. By default a taglist
has a stream scope.

Fixes bug #677619.
2012-07-28 00:34:41 +02:00
Wim Taymans
c8840b8270 segment: add offset field
Add an offset field that is used to track at what position the segment was
updated. This is used to set the running time to 0 when we do a flushing
seek that doesn't update the position.

See https://bugzilla.gnome.org/show_bug.cgi?id=680306
2012-07-27 17:09:45 +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
dbb6d68999 tests: improve segment tests 2012-07-27 12:24:03 +02:00
Wim Taymans
a2027b5e9b allocator: remove user_data from alloc vmethod
Remove the user_data from the alloc vmethod. Subclasses that implement a new
alloc function can also implement their own vmethod to pass extra arguments. We
can then also require that custom allocators implement an alloc function so that
gst_allocator_alloc() always works.
2012-07-27 12:17:29 +02:00
Wim Taymans
60382cd994 tests: remove segment accumulation checks
Remove the checks because there is no more segment accumulation.
2012-07-27 12:17:28 +02:00
Tim-Philipp Müller
3231ea6204 taglist: gst_tag_list_get_buffer*() => gst_tag_list_get_sample*()
Image tags and other tags are now of GstSample type.
2012-07-26 15:51:10 +01:00
Mark Nauwelaerts
9166014007 tests: gstbuffer: add tests for some mulitple map combinations 2012-07-19 13:51:52 +02:00
Mark Nauwelaerts
8620352efc tests: gstbuffer: extend buffer copy test 2012-07-19 13:13:33 +02:00
Edward Hervey
028b9a8dbb check: Avoid deadlock
Queries will be sent when pipeline goes down to NULL, which would
result in the probe being called ... but can't take the lock.
2012-07-18 12:07:26 +02:00
Stefan Sauer
840f905c2c bin: aggregate durations like in adder
Stop querying the duration once an element return unknown and return unknown
as a final result. This avoid eventually cutting off a stream too early.
Add a tests to docuement the behavior.
2012-07-16 20:54:17 +02: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
Wim Taymans
02eebca16b pad: fix test raciness
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679506
2012-07-13 09:43:59 +02:00
Tim-Philipp Müller
443075e5a4 tests: fix toc unit tests
Meant to check subsubentry, not subentry.
2012-07-09 20:11:32 +01:00
Tim-Philipp Müller
5b133bbdcf tests: minor toc test clean-up 2012-07-09 20:11:32 +01:00
Tim-Philipp Müller
c427d8caa8 tests: turn toc check macros into proper functions
So we can see the line number of the check that fails.
2012-07-09 20:11:32 +01:00
Edward Hervey
e219ede527 check: Update tests for new STREAM_START message 2012-07-09 20:31:45 +02:00
Edward Hervey
e2326ac506 check: Ensure STREAM_START message is posted
A STREAM_START message is posted if and only if all sinks in the
bin/pipeline received the STREAM_START event
2012-07-09 20:31:45 +02:00
Edward Hervey
d14f523d4a check: Unit test for EOS message
Make sure we get the aggregated message if and only if all sinks
received an EOS event
2012-07-09 20:31:45 +02:00
Wim Taymans
f362f643ac memory: Make GstAllocator a GstObject
Make GstAllocator a GstObject instead of a GstMiniObject, like bufferpool.
Make a new gstallocator.c file. Make a GstAllocator subclass for the default
allocator.
2012-07-09 16:28:22 +02:00
Wim Taymans
10f3adfd9d clock: make abstract
Make the GstClock type abstract.
Fix a horrible hack in the clock unit test.
2012-07-09 16:28:22 +02:00
Tim-Philipp Müller
1ba0d6f6f6 toc: add gst_toc_dump() function for debugging
API: gst_toc_dump()
2012-07-09 13:12:27 +01:00
Tim-Philipp Müller
c0c79188ca bus, clock: make sure these never have a floating ref
Clear the initial floating ref in the init function for
busses and clocks. These objects can be set on multiple
elements, so there's no clear parent-child relationship
here. Ideally we'd just not make them derive from
GInitiallyUnowned at all, but since we want to keep
using GstObject features for debugging, we'll just do
it like this.

This should also fix some problems with bindings, which
seem to get confused when they get floating refs from
non-constructor functions (or functions annotated to
have a 'transfer full' return type). This works now:

from gi.repository import GObject, Gst

GObject.threads_init()
Gst.init(None)

pipeline=Gst.Pipeline()
bus = pipeline.get_bus()
pipeline.set_state(Gst.State.NULL)
del pipeline;

https://bugzilla.gnome.org/show_bug.cgi?id=679286
https://bugzilla.gnome.org/show_bug.cgi?id=657202
2012-07-09 13:09:45 +01:00
Tim-Philipp Müller
52c0e856f7 tests: add more tests for datetime value serialisation/deserialisation
Esp. of partial datetimes.
2012-07-07 23:13:20 +01:00
Tim-Philipp Müller
93a2b6e9b3 value: use datetime serialise/deserialise functions for datetimes
This re-uses existing code and makes sure we properly serialise
and deserialise datetimes where not all fields are set (thus
fixing some warnings when serialising such datetimes).
2012-07-07 22:46:00 +01:00
Tim-Philipp Müller
1c43e3628d examples: fix debug log print formats in memory examples 2012-07-07 15:44:57 +01:00
Wim Taymans
408df31a48 memory: expose the GstAllocation structure
Expose the GstAllocation structure and provide an _init function. This makes it
easier to make 'subclasses' of the allocator that contain more info.
It also allows us to expose the flags on the allocator miniobject.
Make a flag to note that the allocator uses a custom alloc function.
2012-07-06 17:24:32 +02:00
Edward Hervey
d3744d05dc check: gstcontroller.h doesn't exist anymore 2012-07-06 12:48:44 +02:00
Edward Hervey
0efc42aac7 check: Use consistencycheck on basesrc 2012-07-06 12:48:44 +02:00
Wim Taymans
a39b13ff9f tests: remove unused includes 2012-07-06 09:11:48 +02:00
Wim Taymans
968de7b725 memory: add more examples
Add an example of a custom allocator with a custom API.
2012-07-05 18:07:52 +02:00
Wim Taymans
50cf7f6a08 memory: add gst_memory_init()
Add a method that memory implementations can call to initialize the standard
GstMemory structure.
Move the parent handling in the _free handler.
Rearrange some internal function parameters so that the order is consistent.
Add more memory examples
2012-07-05 17:11:01 +02:00
Wim Taymans
b2b934a928 tests: add memory example 2012-07-05 16:17:20 +02:00
Tim-Philipp Müller
8ac900a515 tests: fix toc unit test build by removing toc query stuff there too 2012-07-05 12:27:14 +01:00
Sebastian Dröge
dfd9b60221 toc: Make structures opaque and clean up function names and fields a bit 2012-07-05 12:29:02 +02:00
Wim Taymans
3b16efa1d1 miniobject: add lock functionality to GstMiniObject
Move the locking methods from GstMemory to GstMiniObject.
Add a miniobject flag to enable LOCKABLE objects. LOCKABLE objects can
use the lock/unlock API to control the access to the object.
Add a minobject flag that allows you to lock an object in readonly mode.
Modify the _is_writable() method to check the shared counter for LOCKABLE
objects. This allows us to control writability separately from the refcount for
LOCKABLE objects.
2012-07-05 11:19:16 +02:00
Mark Nauwelaerts
0f69f9e44a tests: gstbuffer: extend buffer copy test
... to check for independence of copied buffer.
2012-07-05 11:19:15 +02:00
Tim-Philipp Müller
3329f3f4e4 uri: there are valid URI protocols with only two letters, like fd://
We added a minimum length of three letters originally so we would
fail to recognise DOS/Windows-style filenames as valid URIs (as we
should). Two should be just fine as well.
2012-07-04 17:39:52 +01:00
Edward Hervey
041787ac82 check: New unit test for GstQueueArray 2012-07-04 17:46:54 +02:00
Tim-Philipp Müller
0bbeab52cc tests: make checks for from/to_g_date_time() actually work properly 2012-07-04 10:23:06 +01:00
Joshua M. Doe
ba6fad9302 datetime: add conversion to/from GDateTime
Exposes existing constructor.

API: gst_date_time_to_g_date_time()
API: gst_date_time_new_from_g_date_time()

https://bugzilla.gnome.org/show_bug.cgi?id=679080
2012-07-04 10:22:41 +01:00
Tim-Philipp Müller
08c2c446a5 tests: add unit test for element re-use using fakesrc 2012-07-03 19:15:25 +01:00
Raimo Järvi
40e68e7760 tests: fix build of datetime unit test in Windows
Also include config.h for all the #ifdef HAVE_XYZ.

https://bugzilla.gnome.org/show_bug.cgi?id=676935
2012-07-02 11:44:31 +01:00
Tim-Philipp Müller
2506dc5fe2 tests: test datetime deserialisation a bit more 2012-06-27 23:01:13 +01:00
Tim-Philipp Müller
d6e6391518 tests: fix bus leak in GstBin test_state_change_skip test
Still not valgrind clean though.
2012-06-27 20:52:52 +01:00
Tim-Philipp Müller
f95996d97f tests: add some datetime serialisation/deserialisation tests
https://bugzilla.gnome.org/show_bug.cgi?id=678031
2012-06-27 13:51:42 +01:00
Lionel Landwerlin
8b3708ea8c configure: add --disable-tools and --disable-benchmarks options
Add option to avoid build binaries. When building for platforms like
android, you might want to not link any "final" binary, mostly because
it requires special link flags or other parts of code that aren't
in the C library.

https://bugzilla.gnome.org/show_bug.cgi?id=677621
2012-06-26 23:12:56 +01:00
Tim-Philipp Müller
2c532aa821 toc: put toc directly into event/message/query structure
Now that TOCs are refcounted and have a GType, we can just
stuff a ref of the TOC directly into the various toc
event/message/query structures and get rid of lots of
cracktastic GstStructure <-> GstToc serialisation and
deserialisation code. We lose some TOC sanity checking
in the process, but that should really be done when
it's being created anyway.
2012-06-26 20:43:50 +01:00
Tim-Philipp Müller
03ac16c1d8 tocsetter: clean up and update API for refcounted TOCs
Let's keep it simple for now:

gst_toc_setter_reset_toc() -> gst_toc_setter_reset()
gst_toc_setter_get_toc_copy() -> removed
gst_toc_setter_get_toc() -> returns a ref now
gst_toc_setter_get_toc_entry_copy() -> removed,
    use TOC functions instead
gst_toc_setter_get_toc_entry() -> removed,
    use TOC functions instead
gst_toc_setter_add_toc_entry() -> removed,
    to avoid problems with (refcount-dependent)
    writability of TOC; use TOC functions instead
2012-06-25 20:18:32 +01:00
Tim-Philipp Müller
8590be2861 tocsetter, gst-launch, tests: update for GstToc API changes 2012-06-24 20:15:19 +01:00
Tim-Philipp Müller
bc28ebf08d sample: add compare function for GstSample
Should make gst_tag_list_is_equal() work properly with image tags.

https://bugzilla.gnome.org/show_bug.cgi?id=672637
2012-06-23 16:59:10 +01:00
Tim-Philipp Müller
e4b6bcb7b9 tests: add unit test for gst_element_make_from_uri()
https://bugzilla.gnome.org/show_bug.cgi?id=645467
2012-06-23 14:43:26 +01:00
Wim Taymans
7da1d23a9b info: add destroy notify to gst_debug_add_log_function() 2012-06-20 13:28:08 +02:00
Wim Taymans
6efb5c9b6b bus: add GDestroyNotify to set_sync_handler() 2012-06-20 12:29:35 +02:00
Wim Taymans
76e8b2ecda task: add GDestroyNotify to _new
Add a GDestroyNotify to the user_data we pass to gst_task_new()
Change gst_pad_start_task() to also take the notify
2012-06-20 10:31:49 +02:00
Wim Taymans
d7d5306009 clock: remove _full version
Rename gst_clock_id_wait_async_full() to gst_clock_id_wait_async()
and remove the old gst_clock_id_wait_async() version.
2012-06-20 09:58:14 +02:00
Wim Taymans
a1c5b00e72 memory: make GstMemory a miniobject 2012-06-14 16:34:28 +02:00
Tim-Philipp Müller
b45a44ef27 tests: add some basic unit tests for partial date time fields 2012-06-13 00:21:32 +01:00
Stefan Sauer
19e5fc54b7 childproxy: use GstChildProxy instead of GObject on the public api
Fix usage and also cleanup gst_object api use on gobjects.
2012-06-11 18:25:18 +02:00
Edward Hervey
502ee3d092 check: Add a test for GST_READ_* macros 2012-06-08 14:58:00 +02:00
Wim Taymans
11edb59462 tests: fix unit test after event change
Someone forgot to run make check before pushing...
2012-06-06 15:45:11 +02:00