Wim Taymans
bdbc069348
Rework GstSegment handling
...
Improve GstSegment, rename some fields. The idea is to have the GstSegment
structure represent the timing structure of the buffers as they are generated by
the source or demuxer element.
gst_segment_set_seek() -> gst_segment_do_seek()
Rename the NEWSEGMENT event to SEGMENT.
Make parsing of the SEGMENT event into a GstSegment structure.
Pass a GstSegment structure when making a new SEGMENT event. This allows us to
pass the timing info directly to the next element. No accumulation is needed in
the receiving element, all the info is inside the element.
Remove gst_segment_set_newsegment(): This function as used to accumulate
segments received from upstream, which is now not needed anymore because the
segment event contains the complete timing information.
2011-05-16 11:37:52 +02:00
Tim-Philipp Müller
76ccd2a1e9
docs: fix up some Since markers and update for new multiqueue args
2011-05-14 14:05:52 +01:00
Sebastian Dröge
5229a26a76
inputselector: Add sync mode that syncs inactive pads to the running time of the active pad
...
Fixes bug #645017 .
2011-05-14 11:39:35 +02:00
Sebastian Dröge
9f83109706
multiqueue: Add mode to synchronize deactivated/not-linked streams by the running time
...
Fixes bug #645107 , #600648 .
2011-05-14 11:39:35 +02:00
Sebastian Dröge
07c5caac50
capsfilter: Fix deadlock, gst_pad_get_current_caps() already takes the pad's object lock
2011-05-11 15:19:39 +02:00
Mark Nauwelaerts
24888ecc70
multiqueue: ensure thread safety when adding a pad
...
This seems to be a regression, and was causing crashes.
https://bugzilla.gnome.org/show_bug.cgi?id=649878
2011-05-10 18:07:01 +01:00
Wim Taymans
cf4fbc005c
query: allow _make_writable on query handlers
...
Pass a GstQuery ** to the query handlers so that they can make the query
writable before using a setter on it.
Port code to new API.
2011-05-10 18:36:33 +02:00
Wim Taymans
84a1f4ba7f
element: use request_new_pad_full as the default
...
Add GstCaps to request_new_pad so that request_new_pad_full can be removed.
Fix elements.
2011-05-10 16:41:36 +02:00
Wim Taymans
108dff2210
message: hide the message structure field
...
Make a private structure to hold the GstStructure bits of the message.
Add some more useful macros like we have for events.
2011-05-10 13:34:10 +02:00
Wim Taymans
c07b57fc05
segment: remove _full version
...
Rename the _full versions of the functions to the normal function names.
2011-05-09 17:51:07 +02:00
Wim Taymans
d63829fc9a
segment: remove abs_rate from segment structure
...
Remove the abs_rate field from the segment structure, we can trivially compute
it when needed.
2011-05-09 16:39:13 +02:00
Wim Taymans
ba6b915651
base: avoid using buffer caps
...
Comment all code using buffer caps.
Rework capsfilter code a little.
Fix some unit tests
2011-05-08 12:46:17 +02:00
Wim Taymans
02e5feb2bf
pad: avoid using the old GST_PAD_CAPS
...
Don't use GST_PAD_CAPS but instead use the new gst_pad_get_current_caps()
method.
Avoid setting caps on buffers.
2011-05-06 19:04:54 +02:00
Wim Taymans
8ca3f9e71a
typefind: don't unset caps
2011-05-06 17:39:08 +02:00
Wim Taymans
cac9e8fee2
outputselector: handle NULL pads in some cases
2011-05-06 17:39:08 +02:00
Sebastian Dröge
caa16f2fa9
elements: Update everything for the new GstIterator API
2011-05-05 15:36:04 +02:00
Wim Taymans
c4751ec8c1
Revert "context: use context on buffers instead of caps"
...
This reverts commit 9ef1346b1f
.
Way to much for one commit and I'm not sure we want to get rid of the pad caps
just like that. It's nice to have the buffer and its type in onw nice bundle
without having to drag the complete context with it.
2011-05-05 13:17:08 +02:00
Sebastian Dröge
65eafd9340
Merge branch 'master' into 0.11
...
Conflicts:
docs/gst/gstreamer-sections.txt
gst/gstelementfactory.c
gst/gstminiobject.c
2011-05-05 12:27:51 +02:00
Wim Taymans
9ef1346b1f
context: use context on buffers instead of caps
...
Put the srcpad context on buffers instead of caps. This allows us to associate
all the relevant info contained in events with a buffer.
2011-05-04 18:59:47 +02:00
Stefan Kost
801d89e26f
docs: don't duplicate info that we take from element-details
2011-05-03 13:03:20 +03:00
Wim Taymans
6ab7e6c15d
Remove pad_alloc, this can now be done better
...
Remove pad_alloc and all references. This can now be done more efficiently and
more flexible with the ALLOCATION query and the bufferpool objects. There is no
reverse negotiation yet but that will be done with an event later.
2011-04-29 13:26:19 +02:00
Wim Taymans
7e2a79fa1d
queue2: fix mixing of return values
2011-04-25 10:56:06 +02:00
Sebastian Dröge
5020738a6d
elements: Use G_DEFINE_TYPE instead of GST_BOILERPLATE
2011-04-19 11:45:36 +02:00
Sebastian Dröge
f51a23a83c
Merge branch 'master' into 0.11
2011-04-16 08:59:58 +02:00
Sebastian Dröge
8839c513f7
queue2: Add missing ) to the ring-buffer-max-size property description
2011-04-15 13:59:02 +02:00
Sebastian Dröge
ea36e12bbc
multiqueue: Don't leak the sinkpad name
2011-04-14 09:07:48 +02:00
Ole André Vadla Ravnås
037efe8738
elements: Fix pad callbacks so they handle when parent goes away
...
1) We need to lock and get a strong ref to the parent, if still there.
2) If it has gone away, we need to handle that gracefully.
This is necessary in order to safely modify a running pipeline. Has been
observed when a streaming thread is doing a buffer_alloc() while an
application thread sends an event on a pad further downstream, and from
within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
while the streaming thread has its buffer_alloc() in progress.
2011-04-13 17:41:17 +02:00
Janne Grunau
b2e6870edc
queue2: prevent calculation with GST_CLOCK_TIME_NONE in update_time_level()
2011-04-13 17:35:39 +02:00
Wim Taymans
6be4dbdb5a
Merge branch 'master' into 0.11
...
Conflicts:
android/base.mk
android/controller.mk
android/dataprotocol.mk
android/elements.mk
android/gst-inspect.mk
android/gst-launch.mk
android/gst-plugin-scanner.mk
android/gst.mk
android/indexers.mk
android/net.mk
win32/common/libgstbase.def
2011-04-11 10:26:54 +02:00
Alessandro Decina
3f1ef2255a
android: make it ready for androgenizer
...
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 01:08:07 +02:00
Havard Graff
d092e3b9ff
queue[2]: Make src query MT-safe
...
It is possible that the element might be going down while the event arrives
2011-04-08 14:58:51 +02:00
Sebastian Dröge
1dac816e9c
queue[2]: Unref events if the parent element disappeared
2011-04-08 14:57:18 +02:00
Havard Graff
d5485786a4
queue[2]: Make upstream events MT-safe
2011-04-08 14:57:05 +02:00
Stian Selnes
339df347a0
gstqueue, gstqueue2: check if parent of pad is NULL in _getcaps
...
Parent of the pad (the queue) may be set to NULL while there is
a buffer alloc going on.
2011-04-08 14:51:06 +02:00
Sebastian Dröge
ba6054b862
inputselector: Fix getcaps and event function from last commit
...
Return ANY caps if the parent disappeared, i.e. the template caps
and don't leak events if the parent disappeared.
2011-04-08 14:50:10 +02:00
Havard Graff
297407438a
inputselector: Protect against pad-parent disappearing
2011-04-08 14:48:16 +02:00
Sebastian Dröge
6d97652903
multiqueue: Add another check for the flushing flag after taking the lock
...
This prevents another potential deadlock when flushing the pad
at exactly the right time.
2011-04-08 09:15:56 +02:00
Tim-Philipp Müller
12249e99c2
queue2: fix buffer leak on eos when using the ring buffer
2011-04-07 20:50:04 +01:00
Idar Tollefsen
46a786cee6
queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read.
...
https://bugzilla.gnome.org/show_bug.cgi?id=646972
2011-04-07 20:50:04 +01:00
Tim-Philipp Müller
419d117851
queue2: fix minor memory leak
2011-04-07 20:50:04 +01:00
Tim-Philipp Müller
01d016e720
funnel: minor element description fix
2011-04-07 20:50:04 +01:00
Wim Taymans
e8123bed46
funnel: fix for API change
2011-03-30 20:05:26 +02:00
Wim Taymans
7a62d32a07
Merge branch 'master' into 0.11-fdo
...
Conflicts:
docs/plugins/gstreamer-plugins.hierarchy
gst/gstelement.c
2011-03-30 19:58:52 +02:00
Wim Taymans
ebb14d95b2
buffer: more API tweaks
...
_trim -> _resize
_create_sub -> copy_region
2011-03-30 16:47:55 +02:00
Sebastian Dröge
8db570f48c
multiqueue: Make assignment of queue IDs and pad names threadsafe
...
Also add a test for naming pads by the caller and return NULL
when requesting an already existing pad.
2011-03-30 10:52:36 +02:00
Andreas Frisch
5368406a57
multiqueue: Set the single queue ID to the ID of the requested pad if one was given by the caller
2011-03-30 10:18:54 +02:00
Fraxinas
86bbc85ab1
multiqueue: Fix arbitrary sink + source pad naming
...
Use the string provided by the caller for the sinkpad name
if possible. Note that all sanity checking for this name
is already done in GstElement.
Fixes Bug #645931
2011-03-29 11:31:03 +02:00
Sebastian Dröge
b6caaf4ead
funnel: Add some more documentation about the behaviour of funnel
2011-03-29 11:20:06 +02:00
Sebastian Dröge
a7b451cc13
funnel: Send a newsegment event after flush-stop
2011-03-29 11:20:06 +02:00
Sebastian Dröge
acb8203e62
funnel: Some random cleanup
2011-03-29 11:20:06 +02:00
Sebastian Dröge
9c9f619f6b
funnel: Use a GstPad subclass for the sinkpads instead of using the pad's element private data
2011-03-29 11:20:06 +02:00
Sebastian Dröge
565efa30ea
funnel: Integrate into the build system and rename the types
2011-03-29 11:20:05 +02:00
Sebastian Dröge
e5a857e78a
funnel: Import funnel element from farsight2
2011-03-29 11:20:05 +02:00
Wim Taymans
6da19ffeb2
buffer: more buffer updates
2011-03-29 11:07:36 +02:00
Wim Taymans
a12ede3fb1
Merge branch 'master' into 0.11-fdo
...
Conflicts:
gst/gst.c
libs/gst/base/gstcollectpads.c
2011-03-28 20:11:20 +02:00
Wim Taymans
38ffe30745
memory: more work on implementing buffer memory
2011-03-28 20:08:46 +02:00
Wim Taymans
d82c8bd2af
memory: port code to new buffer data API
2011-03-28 20:08:45 +02:00
Stefan Kost
84eafff61b
docs: fix some gtk-doc warnings
...
Document the queue leaky enums.
2011-03-24 18:32:21 +02:00
Stefan Kost
1177a968cc
queue2: set max value for to the matching one for the datatype
...
The property is guint64, so use G_MAXUINT64 instead of G_MAXUINT.
2011-03-24 18:32:20 +02:00
Sebastian Dröge
489b94444e
multiqueue: Don't leak objects when flushing after dequeueing and before pushing the object
2011-03-22 11:04:20 +01:00
Sebastian Dröge
65fbc9398a
multiqueue: Really remove unused variable
2011-03-21 17:54:10 +01:00
Sebastian Dröge
383cac91b1
multiqueue: Increment unique item counter with atomic operations
...
Before it was only protected by the stream lock but every pad
has its own stream lock, making the protection rather useless.
2011-03-21 17:52:59 +01:00
Sebastian Dröge
9e36a51bac
multiqueue: Unblock all waiting pads when shutting down
2011-03-21 17:17:22 +01:00
Sebastian Dröge
5b48fd5b24
multiqueue: Remove unused variable
2011-03-21 16:34:19 +01:00
Sebastian Dröge
14eb517849
multiqueue: Exit loop function if the pad is flushing
...
Fixes possible deadlocks when flushing an unlinked pad that waits
for other pads to advance.
2011-03-21 16:29:40 +01:00
Jason D. Clinton
a789096c04
build: fix build with -Werror with GCC 4.6.0
...
This touches three areas of code, removes unused variables and discards
return values from two functions with (void).
https://bugzilla.gnome.org/show_bug.cgi?id=645267
2011-03-21 09:29:19 +01:00
Sebastian Dröge
69e81448c1
inputselector: Stop waiting for a pad switch when the pad is flushing
2011-03-19 08:57:06 +01:00
Sebastian Dröge
d41fe48ce3
inputselector: Move locking and signalling macros from the header to the source file
2011-03-19 08:57:06 +01:00
Sebastian Dröge
c8ecd6e9eb
inputselector: Hold the selector lock while reading properties of the active pad
2011-03-17 14:21:17 +01:00
Sebastian Dröge
5e60a80268
inputselector: Make sure that EOS is always sent downstream for the active pad
...
It can happen that the currently active pad got the EOS event
before it was activated and the previously active pad got the
EOS event after it was deactivated. In that case we have to
send the EOS event from an inactive pad downstream.
2011-03-17 14:10:49 +01:00
Sebastian Dröge
f19bb850ac
inputselector: Return GST_FLOW_OK until the selected pad pushed something downstream
...
This makes sure that during switches at no point in time all pads
have returned not-linked, which can happen when playing an audio-only
file with playbin2 and switching between the streams for example.
Fixes bug #644935 .
2011-03-17 12:06:39 +01:00
Wim Taymans
230c3455ac
Merge branch 'master' into 0.11
...
Conflicts:
gst/gstregistry.h
2011-03-02 11:08:34 +01:00
Tim-Philipp Müller
1f59906ec1
filesrc, filesink: fix URI creation regression for non-absolute locations
...
Passing e.g. location=foo would lead to warnings because g_filename_to_uri()
wants an absolute file path and returns NULL otherwise. Use brand-new
gst_filename_to_uri() instead, which will try harder to create a proper
URI for us.
Also add unit test.
2011-02-24 15:36:53 +00:00
Wim Taymans
70be8d8d95
improve type registration
2011-02-23 10:35:36 +01:00
Wim Taymans
6c18c9508d
miniobject: more boxed type fixing
...
More miniobject fixing, leaks horribly somewhere..
2011-02-23 10:35:09 +01:00
Tim-Philipp Müller
5ab1ee11ad
fakesink: print new MEDIA4 flag as well
2011-02-21 12:44:05 +00:00
David Schleef
7caf301d3f
fakesink: print buffer flags
2011-02-17 19:14:19 -08:00
Sebastian Dröge
c4be9526eb
filesink: Fix escaping of URIs
...
Especially don't escape / as path separators
2011-02-15 22:57:28 +01:00
Andoni Morales Alastruey
df9f72e78c
filesrc: Fix escaping of file uris
...
Fixes bug #642393 .
2011-02-15 22:57:28 +01:00
Mark Nauwelaerts
8bf4c1e1a8
queue2: don't read beyond the end of file upstream in pull mode
...
... which could lead to a premature eos being reported downstream,
rather than a successful partial read which would result when
performed directly on e.g. basesrc.
2011-02-15 14:51:20 +01:00
Mark Nauwelaerts
e14c133587
queue2: properly identity dequeued event as such
...
... which avoids terminating with ERROR rather than UNEXPECTED.
2011-02-02 15:37:38 +01:00
Olivier Crête
2cfc7adcb1
valve: Only set discont on the first buffer after drops
...
Reset the discont member after setting discont on the first buffer after
dropping.
2011-01-28 15:38:17 -05:00
Tim-Philipp Müller
5c778e25a5
identity: print unset buffer timestamps or durations as 'none'
...
Like fakesink and fakesrc do.
2011-01-28 19:59:47 +00:00
Stefan Kost
c5a57190ee
typefind: don't take object lock for reading the found caps
...
Once we switch to normal mode, we're not typefinding anymore and thus the caps
will not change. Therefore can avoid the object lock in the data-flow path.
The locking was added in order to fix bug #608877 .
2011-01-28 11:17:48 +02:00
Tim-Philipp Müller
af0642b6e8
docs: flesh out typefindelement docs some more
...
Mention that have-type signal may be emitted from streaming
thread or application thread, and fix a typo.
2011-01-25 18:48:40 +00:00
Stefan Kost
eed2a350cb
typefind: code and comment cleanups
...
Make code two places of the code the pushes the buffer store more similar. More
comments and debug logging.
2011-01-25 16:25:43 +02:00
Stefan Kost
740e4999b3
typefind: canonicalize signal name
2011-01-25 16:17:14 +02:00
Stefan Kost
c91c3d41fe
docs: mention have-type signal in the docs.
2011-01-25 16:17:14 +02:00
Mart Raudsepp
b387daa6ff
docs: Fix GstQueue2:ring-buffer-max-size property Since tag (0.10.31, not 0.10.30)
2011-01-24 14:38:36 +00:00
Stefan Kost
6090f22161
valve: fixe the property link and the sice docs
2011-01-11 15:14:04 +02:00
Thiago Santos
f552659504
outputselector: Improve get and set caps functions
...
Improve sink pad getcaps and setcaps by handling the case where
no src pads exist yet
2011-01-10 14:52:05 -03:00
Tim-Philipp Müller
cc1fc8eca8
indexers: fix two small leaks
...
element factory plugin_names are interned strings these days.
2011-01-07 02:20:45 +00:00
Thiago Santos
757dc90faa
output-selector: Add pad-negotiation-mode property
...
Adds getcaps/setcaps to output-selector and adds a property
to select which type of negotiation should be done.
The available modes are:
* none: no negotiation (current behavior), getcaps return ANY and
setcaps aren't set on any of the peers
* all: use all pads (default), getcaps returns the intersection of
peer pads and setcaps is set on all peers
* active: getcaps and setcaps are proxied to the active pad
https://bugzilla.gnome.org/show_bug.cgi?id=638381
2011-01-06 18:42:29 +00:00
Tim-Philipp Müller
c8ffd4e395
docs: mention extra input-selector pad properties
...
https://bugzilla.gnome.org/show_bug.cgi?id=638381
2011-01-06 18:18:29 +00:00
Tim-Philipp Müller
c57934d7bf
inputselector: remove "select-all" property
...
select-all mode is a bit broken (e.g. newsegment event
handling), so remove that for now. The funnel element
in farsight provides similar functionality.
https://bugzilla.gnome.org/show_bug.cgi?id=539042
https://bugzilla.gnome.org/show_bug.cgi?id=638381
2011-01-05 15:53:28 +00:00
Tim-Philipp Müller
7f7721511c
inputselector: make pad's get_type function thread-safe
2010-12-31 12:08:19 +00:00
Tim-Philipp Müller
07e2428afd
coreelements: remove unused files
2010-12-31 11:37:56 +00:00
Sebastian Dröge
3f89954c27
inputselector: Protected g_object_notify() calls for the active-pad with a recursive mutex
...
This works around a thread safety problem in GLib < 2.26.0 and should
be removed when we depend on 2.26.0.
Fixes bug #607513 .
2010-12-31 12:27:45 +01:00
Zhang Wanming
8a723cfc93
gstfdsink: fix typo
...
Signed-off-by: Zhang Wanming <Wanming.Zhang@tieto.com>
2010-12-31 12:20:45 +01:00
Tim-Philipp Müller
d692735f49
coreelements: GST_BOILERPLATE already sets parent_class
2010-12-31 00:56:11 +00:00
Tim-Philipp Müller
fdd65e382d
input-selector, output-selector: minor clean-ups
2010-12-31 00:56:11 +00:00
Tim-Philipp Müller
52617c91f3
coreelements: move input-selector and output-selector to core
...
Moved to core from gst-plugins-bad.
https://bugzilla.gnome.org/show_bug.cgi?id=614306
2010-12-31 00:55:19 +00:00
Thiago Santos
0cb6c9230d
outputselector: Avoid losing the last_buffer when switching
...
This patch makes outputselector take an extra ref when pushing
the last_buffer to avoid it losing it during the switch function.
This makes resend-latest properly work if the active-pad is changed
during the switch function buffer pushing (on a pad probe, for example).
https://bugzilla.gnome.org/show_bug.cgi?id=629917
2010-12-31 00:54:05 +00:00
Thiago Santos
974ca7713a
outputselector: Recheck pending switch after pushing buffer
...
This patch makes output-selector always recheck if there's a
pending pad switch after pushing a buffer, preventing that
it pushes a buffer on the 'wrong' pad.
https://bugzilla.gnome.org/show_bug.cgi?id=629917
2010-12-31 00:54:05 +00:00
Stefan Kost
246bb32dc5
inputselector: log times in human readable form
2010-12-31 00:54:05 +00:00
Stefan Kost
64beb26a56
inputselector: move reoccuring logs to LOG and remove a double info
...
Less debug spew in DEBUG category. No need to log pad again if we use
GST_LOG_OBJECT(pad,...).
2010-12-31 00:54:05 +00:00
Stefan Kost
d86c6f1956
various (gst): add missing G_PARAM_STATIC_STRINGS flags
...
Canonicalize property names as needed.
2010-12-31 00:54:05 +00:00
Stefan Kost
04c4e4fb9e
inputselector: sync with copy in -base
...
Use _get_caps_reffed to avoid copies.
2010-12-31 00:54:05 +00:00
Stefan Kost
d18e7d25f8
outputselector: move the debug init to the boilerplate macro
2010-12-31 00:54:05 +00:00
Stefan Kost
0da59d0795
inputselector: use GST_BOILERPLATE macro
2010-12-31 00:54:04 +00:00
Benjamin Otte
0b37d8bf36
gst_element_class_set_details => gst_element_class_set_details_simple
2010-12-31 00:54:04 +00:00
Sebastian Dröge
9d21103d42
Revert "inputselector: Protect g_object_notify() with the object's mutex"
...
This reverts commit 7e067615ff
, it's causing
deadlocks with playbin2.
2010-12-31 00:54:04 +00:00
Kipp Cannon
15b1ee56d4
inputselector: Protect g_object_notify() with the object's mutex
...
This works around the thread unsafety of g_object_notify()
Fixes bug #607513 .
2010-12-31 00:54:04 +00:00
Sebastian Dröge
acf1616ae1
inputselector: Remove useless variables and fix a uninitialized variable compiler warnings
...
Merged from gst-plugins-base, dfd51aa82a
.
2010-12-31 00:54:04 +00:00
Sebastian Dröge
9b2753c6e9
inputselector: Make sure that running_time->timestamp calculation never becomes negative
...
Merged from gst-plugins-base, f365385458
.
2010-12-31 00:54:04 +00:00
Sebastian Dröge
a1f6660655
inputselector: Use the start time (i.e. timestamp) as the last stop
...
Using the end time makes it impossible to replace buffers, which is
a big problem for subtitles that could have very long durations.
Merged from gst-plugins-base, 27034be461
.
2010-12-31 00:54:04 +00:00
Sebastian Dröge
8b2d4ad8a3
inputselector: Improve debugging
...
Merged from gst-plugins-base.
2010-12-31 00:54:04 +00:00
Wim Taymans
9515cbcd08
Revert "inputselector: use get_caps_reffed()"
...
This reverts commit 49ec4f796a
.
We can't use this new function yet.
2010-12-31 00:54:04 +00:00
Wim Taymans
b74b0f04f2
inputselector: use get_caps_reffed()
2010-12-31 00:54:04 +00:00
Stefan Kost
e955afd503
inputselector: also add inline to the proto to fix the build
2010-12-31 00:54:04 +00:00
Edward Hervey
f0010f15a9
gst: Remove dead assignments and resulting unused variables
...
Merged from gst-plugins-base, 8cd1b5209b
.
2010-12-31 00:54:04 +00:00
Sebastian Dröge
d7669fa9cc
inputselector: Use the same iterate internal links function as in gst-plugins-base
2010-12-31 00:54:04 +00:00
Tim-Philipp Müller
13cf296cb0
input-selector: Remove GST_DEBUG_FUNCPTR where they're pointless
...
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
Merged from gst-plugins-base, 6f4c1ac583
.
2010-12-31 00:53:58 +00:00
David Schleef
11dc5f63cb
input-selector: Remove Ronald Bultje from Authors field
...
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
Merged from gst-plugins-base, 0e9bc5125a
.
2010-12-31 00:53:50 +00:00
Wim Taymans
199c1bdbcb
inputselector: set output caps before pushing
...
Set the output caps on the srcpad before pushing the buffer because else core
will do a rather expensive check to see if we can actually accept those caps on
the srcpad.
Merged from gst-plugins-base, bdfb4b46d7
.
2010-12-31 00:53:50 +00:00
Wim Taymans
7c7acac0db
inputselector: install an acceptcaps function
...
Install a custom acceptcaps function instead of using the default expensive
check. We accept whatever downstream accepts so we pass along the acceptcaps
call to the downstream peer.
Merged from gst-plugins-base, 5b72f2adf9
.
2010-12-31 00:53:50 +00:00
Sebastian Dröge
8ee3931e5d
inputselector: Use new single iterator for the internally linked pads
...
This fixes a deadlock and removes some useless code.
2010-12-31 00:53:50 +00:00
Havard Graff
8669fe97bf
outputselector: make GST_FORMAT_TIME the default segment format
2010-12-31 00:53:50 +00:00
Sebastian Dröge
1543b0ea08
inputselector: Use iterate internal links instead of deprecated get internal links
2010-12-31 00:53:50 +00:00
Tommi Myöhänen
b79648c180
outputselector: check for pending srcpad in _get_property()
...
If there is a pending srcpad, return it instead of active srcpad
in gst_output_selector_get_property() function.
2010-12-31 00:53:50 +00:00
Stefan Kost
89e574ce0d
outputselector: do the pad_alloc for the pad that is pending and have a fallback
...
We should do the pad_alloc for the pending pad if any, as we will switch to that
pad on next _chain() call. Also do a fallback alloc, if there is no output yet to
not fail state transitions in dynamic pipelines.
2010-12-31 00:53:50 +00:00
Lasse Laukkanen
8d45bdf144
output-selector: serialize setting and actual changing of new active pad
2010-12-31 00:53:49 +00:00
Lasse Laukkanen
03d8251067
output-selector: unref latest buffer also when resending has been disabled
2010-12-31 00:53:49 +00:00
Lasse Laukkanen
c63ecb2b89
output-selector: keep ref to buffer for resending only if explicitly requested
2010-12-31 00:53:49 +00:00
Wim Taymans
bccc960734
inputselector: don't leak pads in iterator
2010-12-31 00:53:49 +00:00
Sebastian Dröge
e40d20c845
inputselector: Notify when the tags property of the selector sinkpads changes
...
First part of bug #584686 .
2010-12-31 00:53:49 +00:00
Stefan Kost
03d458b212
selector: remove not needed instance var (previous commit).
2010-12-31 00:53:49 +00:00
Stefan Kost
8e8adcd4c8
outputselector: implement pad_alloc on active pad.
2010-12-31 00:53:49 +00:00
Jan Schmidt
33ad3b9fad
input-selector: Forward segment events for the active pad immediately.
...
When a segment event is received on the active pad, forward it downstream
immediately instead of deferring it until the next data buffer arrives. This
fixes problems with segment updates never being sent downstream, like those
needed for sparse streams, or for closing previously opened segments.
This fixes playback of DVD menus with a still video frame and an audio track,
for example.
Fixes : #577843
2010-12-31 00:53:49 +00:00
Wim Taymans
5a63373aa5
outputselector: reset state when going to READY
...
Reset the last-buffer, the pending pad and the segment when going to the READY
state.
Fixes #576712 .
2010-12-31 00:53:49 +00:00
Wim Taymans
983ed52e92
selector: merge the tags
...
Merge the tags received on the input-selector sinkpads instead of only keeping
the last one we saw.
2010-12-31 00:53:49 +00:00
Stefan Kost
6b4f792065
docs: various doc fixes
...
No short-desc as we have them in the element details.
Also keep things (Makefile.am and sections.txt) sorted.
Reword ambigous returns. No text after since please.
2010-12-31 00:53:49 +00:00
Sebastian Dröge
ab025f08e7
inputselector: Fix compilation, activate_sinkpad() has no notify parameter
2010-12-31 00:53:49 +00:00
Michael Smith
55637934d1
input-selector: Activate and notify pad before processing events.
...
Events should trigger pad selection if we don't already have an
explicitly selected pad, so that events prior to first buffer don't get
lost.
2010-12-31 00:53:49 +00:00
Michael Smith
09424e4b3a
Unref event if we don't forward it, unref pads when done with them.
2010-12-31 00:53:48 +00:00
Michael Smith
981d08088c
plugins/elements/gstinputselector.c: Ensure we emit notify::active-pad when auto-selecting a pad due to it having activit...
...
Original commit message from CVS:
* plugins/elements/gstinputselector.c:
Ensure we emit notify::active-pad when auto-selecting a pad
due to it having activity and us not having an existing active
pad. Fixes #563147
2010-12-31 00:53:48 +00:00
Edward Hervey
acafa09a74
plugins/elements/gstinputselector.c: Gracefully handle the cases when we dont' have otherpad.
...
Original commit message from CVS:
* plugins/elements/gstinputselector.c: (gst_input_selector_event),
(gst_input_selector_query):
Gracefully handle the cases when we dont' have otherpad.
Fixes #556430
2010-12-31 00:53:47 +00:00
Stefan Kost
832f2f46e7
plugins/elements/gstoutputselector.c: Choose right pad for sending events. Fixes #555244
...
Original commit message from CVS:
* plugins/elements/gstoutputselector.c:
Choose right pad for sending events. Fixes #555244
2010-12-31 00:53:46 +00:00
Wim Taymans
9020592e1c
plugins/elements/gstinputselector.c: Reset the selector state when going to READY.
...
Original commit message from CVS:
* plugins/elements/gstinputselector.c: (gst_selector_pad_reset),
(gst_input_selector_reset), (gst_input_selector_change_state):
Reset the selector state when going to READY.
2010-12-31 00:53:46 +00:00
Wim Taymans
f7dad96f47
plugins/elements/gstinputselector.c: Reuse the get_linked_pads for both source and sinkpads because they are the same.
...
Original commit message from CVS:
* plugins/elements/gstinputselector.c: (gst_input_selector_init),
(gst_input_selector_event), (gst_input_selector_query):
Reuse the get_linked_pads for both source and sinkpads because they are
the same.
Implement a custum event handler and get the internally linked pad
directly instead of relying on the default (slower) implementation.
2010-12-31 00:53:45 +00:00