Commit graph

1515 commits

Author SHA1 Message Date
Wim Taymans
0f6ca2afe4 queue2: unmap with the right data pointer
Use the original data pointer to unmap the buffer memory.
2012-01-06 13:06:32 +01:00
Tim-Philipp Müller
2836cbee94 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gsttaglist.c
	plugins/elements/gstoutputselector.c
2012-01-02 02:21:40 +00:00
Tim-Philipp Müller
be04f3945c index: remove GstIndex and GstIndexFactory for now
There are many good use cases for GstIndex and we want
to add it back again in some form, but possibly not with
the current API, which is very powerful (maybe too powerful),
but also a bit confusing. At the very least we'd need to
make the API bindings-friendly.
2011-12-30 18:32:57 +00:00
Thiago Santos
71fe1ad070 output-selector: Do not false warn about unlinked pad
When output-selector didn't receive a newsegment event it would
warn about pad being unlinked when switching pads. Making the logs
wrong and misleading.
2011-12-29 16:59:29 -03:00
Tim-Philipp Müller
2c2efb06bb filesrc: remove "fd" property
It's no longer useful, since we don't use mmap any more anyway,
and we might use a different API for I/O in future (such as GIO).
2011-12-26 18:44:39 +00:00
Tim-Philipp Müller
81ce8b76d0 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	plugins/elements/gstfilesrc.c
2011-12-25 12:47:55 +00:00
Tim-Philipp Müller
8a932dbca6 filesrc: return any remaining data on EOS before returning FLOW_UNEXPECTED 2011-12-25 12:42:11 +00:00
Tim-Philipp Müller
cf5de908fb filesrc: minor cosmetic changes
Rename woffset variable, maintain separate bytes_read in addition
to length variable.
2011-12-25 12:29:46 +00:00
Tim-Philipp Müller
f6a4af20b2 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	libs/gst/base/gstbasetransform.c
	libs/gst/controller/gstinterpolationcontrolsource.c
	libs/gst/controller/gstlfocontrolsource.c
	plugins/elements/gstfilesrc.c

Dit not merge controller or basetransform changes.
2011-12-25 11:58:12 +00:00
Vincent Penquerc'h
431fc714c9 filesrc: do not mistake short reads for EOS
While local filesystems will usually not cause short reads,
this may happen on seekable files on some remote filesystems.
Instead, loop till we get the requested amount of data, or
an actual EOS (ie, 0 bytes).

https://bugzilla.gnome.org/show_bug.cgi?id=665921
2011-12-12 13:35:06 +00:00
Tim-Philipp Müller
eaa2d81474 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gstindexfactory.c
	libs/gst/base/gstbasetransform.c
	plugins/elements/gstfakesink.c
	plugins/elements/gstfakesrc.c
	plugins/elements/gstidentity.c
	plugins/elements/gstinputselector.c
	plugins/elements/gstoutputselector.c

Note: did not merge any of the basetransform changes from 0.10.
2011-12-08 00:39:10 +00:00
Sebastian Dröge
47de97df84 inputselector: Don't send a NEWSEGMENT event if a buffer arrived before the segment was configured 2011-12-07 11:01:49 +01:00
Sebastian Dröge
7952a54299 outputselector: Don't send last segment/buffer when no segment was configured yet 2011-12-07 11:01:31 +01:00
Sebastian Dröge
c8909ab059 fakesink: Make event/buffer verbose output consistent with identity 2011-12-06 14:55:57 +01:00
Sebastian Dröge
b7b84671ba identity: Print buffer flags in the verbose output 2011-12-06 14:55:57 +01:00
Sebastian Dröge
675e54f1f4 fakesrc: Make event/buffer verbose output consistent with identity and print buffer flags 2011-12-06 14:55:57 +01:00
Wim Taymans
ebc25e895f basesrc: add async start option
Add a method to enable async start behaviour. The subclass can then complete the
start operation from any other thread by caling gst_base_src_start_complete().
The base class can wait for the start to complete with
gst_base_src_start_wait().
2011-12-06 14:01:50 +01:00
Wim Taymans
e7e948a5bf filesrc: cleanup error path 2011-12-06 13:47:29 +01:00
Tim-Philipp Müller
a1daf846f3 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gstobject.h
	libs/gst/check/gstcheck.h
	libs/gst/controller/gstcontroller.c
	plugins/elements/gstidentity.c
	tools/gst-xmlinspect.c
2011-12-04 15:38:09 +00:00
Tim-Philipp Müller
2666450864 Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
GStaticRecMutex is part of our API/ABI, not much we can do here in 0.10.
2011-12-04 14:38:26 +00:00
Tim-Philipp Müller
5889260d5a Work around deprecated thread API in glib master
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We can't change most of
these in 0.10 because they're part of our API and ABI.
2011-12-04 13:35:38 +00:00
Wim Taymans
0e38f0dad0 basesink: clean up event handling
Add new wait_eos vmethod to wait for the eos timeout before posting the EOS
message on the bus.
Add default event handler. Move the default event actions in there. Call the
event vmethod from the pad event handler. Subclasses are now supposed to chain
up to the parent event handler or unref the event and do their own thing.
Avoid passing unused parameters to functions.
2011-12-02 22:20:08 +01:00
Mark Nauwelaerts
bfcb5a43a6 identity: unlock clock wait when appropriate
... notably FLUSH and state change to READY.
2011-12-02 13:41:54 +01:00
Edward Hervey
9d6b8d14c3 queue: source and sink pads proxy caps 2011-11-29 11:47:34 +01:00
Tim-Philipp Müller
e3dd1a8196 queue2: fix up comment after merge from 0.10 2011-11-28 01:12:48 +00:00
Tim-Philipp Müller
5acdc22001 Merge remote-tracking branch 'origin/master' into 0.11 2011-11-28 01:11:47 +00:00
Tim-Philipp Müller
3b28af5171 queue2: fix refactoring of draining-on-eos, munge flow return to FLOW_OK 2011-11-28 01:10:20 +00:00
Tim-Philipp Müller
6ed2b05157 queue2: fix up new bufferlist code for 0.11 2011-11-28 01:00:28 +00:00
Tim-Philipp Müller
17ddbc3072 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	plugins/elements/gstqueue2.c
2011-11-28 00:40:55 +00:00
Tim-Philipp Müller
2a3e7c4feb queue2: add bufferlist support
We want to maintain buffer lists if possible.
2011-11-28 00:16:40 +00:00
Tim-Philipp Müller
d663e18402 queue2: split out draining of queue on FLOW_UNEXPECTED into separate function 2011-11-28 00:16:40 +00:00
Tim-Philipp Müller
c9df12754d queue2: pass item type enum to _enqueue instead of simple isbuffer boolean
Avoids some unnecessary GST_IS_EVENT()
2011-11-28 00:16:40 +00:00
Tim-Philipp Müller
2d7f9cfe92 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gstbuffer.h
	gst/gstbufferlist.h
	gst/gstcaps.h
	gst/gstdatetime.h
	gst/gstelementfactory.h
	gst/gstevent.h
	gst/gstghostpad.h
	gst/gstindexfactory.h
	gst/gstiterator.h
	gst/gstmessage.h
	gst/gstminiobject.h
	gst/gstpipeline.h
	gst/gstquery.h
	gst/gstsegment.h
	gst/gststructure.h
	gst/gsttaglist.h
	gst/gsturi.h
	gst/gstvalue.h
	libs/gst/base/gstbitreader.h
	libs/gst/base/gstbytereader.h
	libs/gst/base/gstbytewriter.h

Note: can't use G_GNUC_MALLOC with GstCaps return
values in 0.11 because of the EMPTY+ANY singletons.
2011-11-26 19:44:23 +00:00
Sebastian Dröge
1fa356a23c Merge branch 'master' into 0.11
Conflicts:
	gst/gstpad.c
	libs/gst/base/gstbaseparse.c
2011-11-24 11:23:07 +01:00
Vincent Penquerc'h
611ac6ea85 multiqueue: check filled state of queues even if another one is empty
This will avoid a case where overrun is never signalled if some
stream never produces any data, causing playbin2 to not end preroll.

https://bugzilla.gnome.org/show_bug.cgi?id=660778
2011-11-24 10:38:34 +01:00
Wim Taymans
407f45dc7f event: add STICKY_MULTY events
Add a new event flag for sticky events so that multiple events of that type can
be stored on a pad at the same time. Change the _get_sticky_event() function to
loop over the multiple events of a type.
Change the foreach function to make it possible to removed and modify the sticky
events on a pad.
Use an variable size array now to store the events. This could later be
optimized some more.
2011-11-23 18:05:00 +01:00
Matej Knopp
6ea74a0572 Fix printf format compiler warnings on OSX/64bit
https://bugzilla.gnome.org/show_bug.cgi?id=664491
2011-11-22 00:51:06 +00:00
Wim Taymans
2f1ed65339 pad: Merge pad mode activation functions
Add the pad mode to the activate function so that we can reuse the same function
for all activation modes. This makes the core logic smaller and allows for some
elements to make their activation code easier. It would allow us to add more
scheduling modes later without having to add more activate functions.
2011-11-21 13:29:05 +01:00
Wim Taymans
770159fb1c query: improve scheduling query
Turns some boolean arguments in the scheduling query to flags, which are easier
to extend and makes the code easier to read.
Make extra methods for configuring and querying the supported scheduling modes.
This should make it easier to add new modes later.
2011-11-18 17:27:16 +01:00
Wim Taymans
39a5e26ea9 pad: add parent to activate functions 2011-11-18 13:54:29 +01:00
Wim Taymans
12d5f03453 pad: fix scheduling mode enums
GstPadActivateMode -> GstPadMode
GST_PAD_ACTIVATE_* -> GST_PAD_MODE_*
2011-11-18 12:39:55 +01:00
Wim Taymans
cb54ab7d90 typefind: fix for new getrange method signature
gst_type_find_helper_get_range_ext -> gst_type_find_helper_get_range
2011-11-17 16:15:23 +01:00
Wim Taymans
612b1fbb14 pad: add parent to other functions
Add parent to chain, chain_list, getrange and event functions.
2011-11-17 12:40:45 +01:00
Wim Taymans
361a7ae44d add parent to internal links 2011-11-16 17:49:46 +01:00
Wim Taymans
09a8294d36 pad: add parent to the query function 2011-11-16 17:22:56 +01:00
Wim Taymans
54e1174060 GstPadFlags: rename flags GST_PAD_* -> GST_PAD_FLAG_* 2011-11-16 12:36:51 +01:00
Wim Taymans
06d4828df3 plugins: remove obsolete parent checks 2011-11-16 12:11:12 +01:00
Wim Taymans
e85198bc32 _query_peer_*() -> _peer_query_*() 2011-11-15 17:50:34 +01:00
Wim Taymans
2358938dbd _accept_caps() -> _query_accept_caps() 2011-11-15 17:40:19 +01:00
Wim Taymans
b5c3e254b1 pad: remove getcaps and use caps query
Remove the getcaps function on the pad and use the CAPS query for
the same effect.
Add PROXY_CAPS to the pad flags. This instructs the default caps event and query
handlers to pass on the CAPS related queries and events. This simplifies a lot
of elements that passtrough caps negotiation.
Make two utility functions to proxy caps queries and aggregate the result. Needs
to use the pad forward function instead later.
Make the _query_peer_ utility functions use the gst_pad_peer_query() function to
make sure the probes are emited properly.
2011-11-15 11:20:48 +01:00