Wim Taymans
b5d4529fa4
basesink: inline the clip segment
2011-06-08 18:35:16 +02:00
Wim Taymans
3cb8b33935
message: move the new_base_time flag to async_done
...
Move the flag to indicate that a new_base_time should be distributed to the
pipeline, from the async_start to the async_done message. This would allow us to
decide when to reset the pipeline time based on other reasons than the
FLUSH_START event.
The main goal eventually is to make the FLUSH events not reset time at all but
reset the time based on the first buffer or segment that prerolls the pipeline
again.
2011-06-08 13:45:19 +02:00
Wim Taymans
a767bf2bf9
caps: use the caps event
...
Use the caps event instead of gst_pad_set_caps() and the setcaps function
2011-06-07 09:43:20 +02:00
Edward Hervey
69800aa307
basesink: Don't accept segments after EOS
...
And refactor the code slightly to avoid code duplication.
This solves a regression introduced by bdbc0693
2011-06-06 11:20:29 +02:00
Tim-Philipp Müller
4b920eb5d2
docs: update for API changes
...
Also remove GST_PAD_CHECKGETRANGEFUNC macro
2011-06-05 18:57:56 +01:00
Wim Taymans
3cbeb3848c
baseparse: use caps event instead of setcaps
2011-06-02 19:24:26 +02:00
Wim Taymans
8abc457a3b
pad: implement pad block with probes
2011-06-01 19:39:16 +02:00
Wim Taymans
a5bbf7f369
utils: remove _full variants of probes
...
Remove the _full variants and add the destroy notify to the regular methods.
2011-06-01 19:39:11 +02:00
Edward Hervey
9b1c84d5ac
basetransform: Use local priv variable instead of trans->priv
2011-05-31 18:31:53 +02:00
Edward Hervey
ceb86a586e
gst: Remove obvious dead assignments
2011-05-31 18:30:30 +02:00
Wim Taymans
690c81b95d
basesrc: remove deprecated clean shutdown method
2011-05-27 17:28:34 +02:00
Sebastian Dröge
26a5a877ff
basesrc: Fix for SEGMENT event API changes
2011-05-27 14:02:37 +02:00
Sebastian Dröge
30a7fd7b4d
Merge branch 'master' into 0.11
2011-05-27 13:58:26 +02:00
Sebastian Dröge
7295f3e2f6
basetransform: Pass the complete caps to transform_caps
...
Instead of passing it structure by structure. This allows
better optimized transform_caps functions and allows better
transformation decisions.
See bug #619844 .
2011-05-27 11:37:24 +02:00
Sebastian Dröge
934faf163c
basesrc: Send an update NEWSEGMENT event downstream if the duration changes
...
This allows streaming the complete file for files that have grown since
streaming started.
Fixes bug #647940 .
2011-05-27 09:05:46 +02:00
Sebastian Dröge
5076688c1f
pushsrc: Fix infinite recursion in pushsrc query handler
2011-05-26 14:14:13 +02:00
Wim Taymans
2c221a5729
feature: use object name
...
Remove the name property from the plugin feature and port code to use the object
name instead.
2011-05-24 18:17:24 +02:00
Wim Taymans
b0fad063b5
Merge branch 'master' into 0.11
2011-05-24 17:43:36 +02:00
Wim Taymans
7e6d579301
scheduling: port to new scheduling query
2011-05-24 17:39:56 +02:00
Debarshi Ray
f9a4dcd074
check: add fail_unless_equals_int64
...
https://bugzilla.gnome.org/show_bug.cgi?id=650973
2011-05-24 16:21:20 +02:00
Wim Taymans
7754d8d7ba
transform: fixes for bufferpool handling
...
Don't error out when the allocation query returns success.
Do bufferpool query after we pushed the caps event downstream so that we can get
a good bufferpool suggestion.
Also proxy the bufferpool query downstream when we operate in in_place mode.
2011-05-23 18:15:00 +02:00
Wim Taymans
35cc371363
transform: reset reconfigure state
...
When we negotiate new caps, reset the reconfigure state.
2011-05-23 16:53:01 +02:00
Wim Taymans
1cb7523efa
basetransform: WIP handle bufferpool
2011-05-23 15:38:31 +02:00
Wim Taymans
4e13568d27
basesrc: avoid calling _set_caps() on the srcpad
...
Avoid installing a setcaps function on the srcpad and calling the setcaps
function, we can do more efficiently with sending the event ourself and calling
our vmethod.
2011-05-21 19:06:08 +02:00
Wim Taymans
d33909302e
basetransform: remove some more code
...
Remove some more unused code from basetransform.
Prepare for implementing bufferpools.
2011-05-20 16:01:57 +02:00
Sebastian Dröge
ce216c1406
Merge branch 'master' into 0.11
2011-05-20 13:06:57 +02:00
Sebastian Dröge
1d57e46dbd
basesink: Only reinit the cached GstClockID if it is for the same clock
...
The clock might have changed since the clock ID was created and in
that case we have to request a new one.
2011-05-20 13:05:04 +02:00
Sebastian Dröge
a46c9c2a62
event: Make SEGMENT event parsing API more consistent with the others
2011-05-18 16:56:43 +02:00
Wim Taymans
ad0693f47d
basetransform: relax caps check
...
Also run the caps transform function on ANY caps, like we used to do before.
This makes sure that capsfilter has a chance to filter ANY caps as well.
2011-05-18 16:49:28 +02:00
Wim Taymans
e39182a085
Merge branch 'master' into 0.11
...
Conflicts:
gst/gstminiobject.c
gst/gstpad.c
gst/gstpad.h
gst/gstplugin.h
libs/gst/base/gstbaseparse.c
2011-05-18 13:14:57 +02:00
Mark Nauwelaerts
35567592ef
baseparse: maintain frame state during frame parsing round
...
See #650093 .
2011-05-18 09:49:35 +02:00
Mark Nauwelaerts
af5061e943
baseparse: provide latency query support
2011-05-18 09:49:22 +02:00
Mark Nauwelaerts
82a6cb39ae
baseparse: make minimum frame size handling more efficient and convenient
...
While some formats allow subclass to determine a specific subsequent
needed frame size, others may to need to scan for markers and can only
request 'additional data' by whatever reasonable available step.
In push mode, trying to minimize additional latency leads to step size
being the next input buffer. In pull mode, any reasonable step size
(such as already used by buffer caching) can be applied.
2011-05-18 09:49:12 +02:00
Mark Nauwelaerts
ee3344824c
baseparse: set correct buffer size
2011-05-18 09:49:02 +02:00
Sebastian Dröge
5f2cd2b0a3
base: Update for caps/pad template related API changes
2011-05-17 13:14:12 +02:00
Sebastian Dröge
3d2127f865
Revert "query: allow _make_writable on query handlers"
...
This reverts commit cf4fbc005c
.
This change did not improve the situation for bindings because
queries are usually created, then directly passed to a function
and not stored elsewhere, and the writability problem with
miniobjects usually happens with buffers or caps instead.
2011-05-17 11:21:41 +02:00
Wim Taymans
53e4d1a007
basetransform: fix buffer refcounting
...
When we fail to allocate an output buffer, set the buffer pointer to NULL or
else the calling function will try to unref it.
Remove some old comments
2011-05-16 18:48:20 +02:00
Wim Taymans
115c34badd
basesink: handle more formats
...
Don't hardcode GST_FORMAT_TIME in places, we can work with many formats.
2011-05-16 17:09:06 +02:00
Sebastian Dröge
b935a814d9
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
docs/gst/gstreamer-sections.txt
gst/gstbin.c
gst/gstelement.c
gst/gstelement.h
gst/gstghostpad.c
gst/gstminiobject.c
gst/gstminiobject.h
libs/gst/base/gstbasesrc.c
libs/gst/base/gstbasetransform.c
plugins/elements/gstinputselector.c
tests/check/gst/gstminiobject.c
2011-05-16 16:53:04 +02:00
Sebastian Dröge
bdf9022861
base: Improve negotiation with new getcaps() filter
2011-05-16 15:33:10 +02:00
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
Sebastian Dröge
e8688b62b2
basetransform: When trying to fixate the sink suggestion prefer its structure order
2011-05-14 11:39:34 +02:00
Sebastian Dröge
f56c6e1225
basetransform: In getcaps() prefer the caps order and caps of downstream if possible
2011-05-14 11:39:34 +02:00
Sebastian Dröge
b4bed6e09e
basetransform: Prefer caps order given by the subclass of the template caps order
2011-05-14 11:39:34 +02:00
Vincent Penquerc'h
03050fd71d
basesrc: do not set first buffer timestamp to 0 for live sources
...
Doing so avoids a large timestamp gap between first and second buffer
for live sources which take time to start up.
The first buffer now has a "live" timestamp based on the running time,
as other buffers do.
https://bugzilla.gnome.org/show_bug.cgi?id=649369
2011-05-12 18:10:14 +01:00
Wim Taymans
a59bc0ab02
basetransform: remove obsolete code
...
Remove some obsolete code.
Don't try to reconfigure when we don't have sink caps.
2011-05-11 18:09:03 +02:00
Sebastian Dröge
ef673656b7
basetransform: Implement support for pad reconfiguration again
2011-05-11 15:26:02 +02: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
bd540bfb66
event: Hide the GstStructure
...
Hide the GstStructure of the event in the implementation specific part so that
we can change it.
Add methods to check and make the event writable.
Add a new method to get a writable GstStructure of the element.
Avoid directly accising the event structure.
2011-05-10 11:50:16 +02:00
Wim Taymans
7f24a48387
event: _qos_full -> _qos
2011-05-09 18:48:55 +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
4eed658be1
basetransform: Use CAPs event
...
Use the caps event to configure basetransform.
Remove force_alloc hack, we don't need this in 0.11 with new upstream
negotiation.
Avoid getting some pad caps.
2011-05-09 15:08:51 +02:00
Wim Taymans
f127a416fa
basesink: add some more debug
2011-05-09 15:08:51 +02:00
Wim Taymans
24573211c6
Merge branch 'master' into 0.11
2011-05-08 13:14:55 +02:00
Wim Taymans
d34ca6140b
basesink: use CAPS event instead of setcaps function
2011-05-08 13:07: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
Tim-Philipp Müller
dccde2652f
baseparse: don't post loads of empty taglists
...
Only post bitrate updates if there's something to post, don't
post empty taglists if nothing changed.
2011-05-06 23:44:15 +01: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
5f06f3b0ae
check: let the normal code unset caps
2011-05-06 17:39:08 +02:00
Wim Taymans
fb3da828e5
element: rename gst_element_lost_state_full()
...
Rename gst_element_lost_state_full() to gst_element_lost_state() and
remove the old method name.
2011-05-06 12:19:16 +02:00
Sebastian Dröge
0069dc08ec
basetransform: Don't get the parent twice in the setcaps function
2011-05-05 18:21:21 +02:00
Sebastian Dröge
aebe4a3c13
basetransform: In getcaps() prefer the caps order and caps of downstream if possible
2011-05-05 15:22:08 +02:00
Sebastian Dröge
a6c1cbe69a
basetransform: Prefer caps order given by the subclass of the template caps order
2011-05-05 15:20:10 +02:00
Sebastian Dröge
07f59f5404
basesrc: Use the reconfigure flag on the pad instead of the event
2011-05-05 15:20:02 +02:00
Sebastian Dröge
1cc95da945
basetransform: Use new reconfigure flag on the pads instead of the reconfigure event
2011-05-05 15:19:56 +02:00
Sebastian Dröge
0179530bf1
basesrc: Only renegotiate once after receiving a renegotiate event
...
Also make this threadsafe.
2011-05-05 15:04:16 +02:00
Thiago Santos
93904ef3ad
basesrc: Handle the new renegotiate event
...
Makes basesrc handle the new renegotiate event by using a
renegotiate flag.
2011-05-05 15:03:54 +02:00
Sebastian Dröge
24cef7aa2f
basetransform: Also call gst_base_transform_reconfigure() on renegotiate events
2011-05-05 15:02:56 +02:00
Thiago Santos
3baed25383
basetransform: Handle the new renegotiate event
...
Let basetransform push a renegotiate event upstream
when it gets a new suggestion
2011-05-05 15:02:46 +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
de5ce36dd1
basetransform: Remove nowadays unused and uninitialized setcaps variable
2011-05-05 12:28:02 +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
511f556915
docs: it its %TRUE (constant)
...
As spotted by Tim.
2011-05-03 14:01:57 +03:00
Stefan Kost
217b209aba
docs: add missing parameter docs
2011-05-03 13:03:21 +03:00
Stefan Kost
59670baf8e
docs: add docs for GstDPPacketizer
2011-05-03 13:03:20 +03:00
Wim Taymans
baebf253ad
transform: do pad_alloc fallback correctly
2011-04-29 13:42:57 +02: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
Josep Torra
5ccda2f8f4
Small cosmetic cleanups
...
Make sure the return values from g_return_* are of the right type.
2011-04-25 11:10:47 +02:00
Wim Taymans
070cdaab7c
Merge branch 'master' into 0.11
2011-04-25 10:30:41 +02:00
Thiago Santos
0253c85b0d
basetransform: fix negotiation regression
...
Fixup patch for 83597767b1
Use a separate variable for knowing if a pad alloc has been made
instead of checking for the flow return that might not be the
result of the pad alloc
https://bugzilla.gnome.org/show_bug.cgi?id=648220
2011-04-21 14:04:49 +01:00
Wim Taymans
24bb414035
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
2011-04-19 16:21:15 +02:00
Havard Graff
38dcd41b97
basetransform: don't unref trans until the function is done using it
...
trans->priv->force_alloc = FALSE would crash if the ref held is the last
https://bugzilla.gnome.org/show_bug.cgi?id=648215
2011-04-19 15:09:14 +01:00
Tim-Philipp Müller
b35d54dcd1
baseparse: don't deadlock when setting external index
...
Protect index with its own lock. gst_index_get_writer_id() may take
the object lock internally (the default resolver, GST_INDEX_RESOLVER_PATH,
will anyway), so if we're using that to protect the index as well,
we'll deadlock.
https://bugzilla.gnome.org/show_bug.cgi?id=646811
2011-04-19 13:05:53 +01:00
Tim-Philipp Müller
c364539620
baseparse: make fmtlist constant
2011-04-19 11:51:30 +01:00
Sebastian Dröge
1cff66d587
base{sink,src}: Don't try to fixate ANY caps
2011-04-19 11:45:36 +02:00
Sebastian Dröge
100bdfb01c
net: Use G_DEFINE_TYPE instead of GST_BOILERPLATE
2011-04-19 11:45:36 +02:00
Sebastian Dröge
7da7494adc
base: Use G_DEFINE_TYPE instead of GST_BOILERPLATE
2011-04-19 11:45:36 +02:00
Tim-Philipp Müller
94c0bc74ce
docs: remove reference to baseparse API that didn't make it
2011-04-16 15:20:08 +01:00
Sebastian Dröge
caaf5ad528
Merge branch 'master' into 0.11
2011-04-16 16:06:02 +02:00
Sebastian Dröge
9b90d3d9c0
base: Update docs to say class_init instead of base_init
...
And remove a useless base_init in basesrc
2011-04-16 15:59:40 +02:00
Sebastian Dröge
64f6a18bad
net: Use G_DEFINE_TYPE
2011-04-16 15:59:40 +02:00
Tim-Philipp Müller
0bb5b6e435
libs: gobject-introspection scanner doesn't need to scan or update plugin info
...
Make sure the scanner doesn't load or introspect or check any plugins,
(especially not outside the build directory).
2011-04-16 10:45:16 +01:00
Tim-Philipp Müller
62d0001c84
libs: make sure gobject-introspection scanner calls gst_init()
...
https://bugzilla.gnome.org/show_bug.cgi?id=647922
2011-04-16 10:33:53 +01:00
Sebastian Dröge
8bfdd8c817
Merge branch 'master' into 0.11
2011-04-16 09:33:06 +02:00
Sebastian Dröge
f51a23a83c
Merge branch 'master' into 0.11
2011-04-16 08:59:58 +02:00
Tim-Philipp Müller
886246661f
baseparse: expose gst_base_parse_frame_free() for completeness
...
API: gst_base_parse_frame_free()
2011-04-15 19:07:55 +01:00
Tim-Philipp Müller
84a92464cf
baseparse: init frames on the stack with gst_base_parse_frame_init()
...
Frames must now be inited this way, can't just zero them
out and use them.
2011-04-15 18:52:18 +01:00
Tim-Philipp Müller
127df9a586
baseparse: more debug logging, minor clean-up
...
Trace frames, split out code to queue a frame for later.
2011-04-15 18:38:46 +01:00