Tim-Philipp Müller
de16d5adb3
baseparse: rename GstBaseFormat to GstBaseFormatFlags and fix up associated API
...
Also change gst_base_parse_set_format(parse,flags,switch_on) to
gst_base_parse_set_format_flags(parse,flags) which is more in line
with the rest of our API and how the function is used.
2011-04-08 15:44:57 +01:00
Tim-Philipp Müller
f691be223e
baseparse: don't expose GstAdapter in public header
...
None of the existing subclasses needs access to that, so there's
no reason to expose it for now.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
2011-04-08 15:44:57 +01:00
Tim-Philipp Müller
e2bf3647f8
baseparse: move various segment-related members into the private instance struct
...
If none of the existing subclasses uses these, there's probably no
need to expose them at the moment. Keep the segment itself exposed
though.
https://bugzilla.gnome.org/show_bug.cgi?id=518857
2011-04-08 15:44:57 +01:00
Tim-Philipp Müller
b2a76895af
baseparse: remove unused GST_BASE_PARSE_{SINK,SRC}_NAME
...
https://bugzilla.gnome.org/show_bug.cgi?id=518857
2011-04-08 15:44:57 +01:00
Tim-Philipp Müller
9f1b9f1419
baseparse: re-indent header
2011-04-08 15:44:57 +01:00
Tim-Philipp Müller
c88a143cb6
baseparse: fix up GType name and make _get_type() function thread-safe
...
Rename GType from GstBaseParseBad to GstBaseParse.
2011-04-08 15:44:57 +01:00
Tim-Philipp Müller
20f29628aa
libs: add GstBaseParse which was moved from -bad
2011-04-08 15:44:57 +01:00
David Schleef
d6847fd4a1
baseparse: make_metadata_writable() fix
2011-04-08 15:44:56 +01:00
Tim-Philipp Müller
940a47ae09
baseparse: rename GType from GstAudioBaseParseBad to GstBaseParseBad
...
We use it for video as well now.
2011-04-08 15:44:56 +01:00
Stefan Kost
0774878e92
baseparse: trim trailing whitespace
2011-04-08 15:44:56 +01:00
Stefan Kost
e8f04e76b7
baseparse: use delta-unit flags instead of none
2011-04-08 15:44:56 +01:00
David Schleef
35a7228ed5
baseparse: update documentation for API changes
2011-04-08 15:44:56 +01:00
David Schleef
e57cb6b47a
baseparse: Create baseparse library
2011-04-08 15:44:56 +01:00
Havard Graff
3d833e42b6
basesrc: Make src query MT-safe
...
It is possible that the element might be going down while the event arrives
2011-04-08 14:58:41 +02:00
Sebastian Dröge
237e54d4fe
base: Unref events if the parent element disappeared
...
And also unref events if the basetransform subclass has no
event handler and the event is not forwarded at all.
2011-04-08 14:57:05 +02:00
Havard Graff
0daedb7409
base: Make upstream events MT-safe
2011-04-08 14:57:00 +02:00
Wim Taymans
5077630a99
Merge branch 'master' into 0.11
2011-04-07 16:13:56 +02:00
Sebastian Dröge
7945821f92
basesrc: Handle tag and custom downstream events the same
...
Especially drop tag events when flushing to not send them over
and over again.
Should've been in the last commit already but I forgot to call
git rebase --continue...
2011-04-07 10:48:04 +02:00
Sebastian Dröge
c7c3e46b08
bla
2011-04-07 10:40:16 +02:00
Sebastian Dröge
1d9cd86af6
basesrc: Send syncronized custom downstream/both events downstream from the streaming thread
...
Instead of just silently dropping them. The same was done for tag events
before already.
Fixes bug #635718 .
2011-04-07 10:29:41 +02:00
Wim Taymans
d1a7d54cb5
bytewriter: don't add NULL data
2011-03-31 18:39:57 +02:00
Wim Taymans
468ec5bc40
bufferlist: simplify bufferlists
...
We now have multiple memory blocks as part of the buffers and we can therefore
reduce the bufferlist to a simple array of buffers.
2011-03-31 17:51:02 +02:00
Wim Taymans
ebb14d95b2
buffer: more API tweaks
...
_trim -> _resize
_create_sub -> copy_region
2011-03-30 16:47:55 +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
121b82ce27
buffer: fix subbuffers
2011-03-28 20:08:47 +02:00
Wim Taymans
beac9c4a95
buffer: fix remaining unit tests
2011-03-28 20:08:46 +02:00
Wim Taymans
121ab46aa6
memory: remove memory metadata again
2011-03-28 20:08:46 +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
Arun Raghavan
bae67f116c
basesrc: Return FALSE if we don't handle an event
...
basesrc's default event handler returns TRUE regardless of whether the
event is handled or not. This fixes the handler to conform with the
expected behaviour (which is to only return TRUE when the event has
actually benn handled). gst_bin_do_latency_func() depended on this
(incorrect) behaviour, and is now modified as well.
(Remaining 1-liner change in gstbasesrc.c is to keep gst-indent happy)
2011-03-28 21:48:23 +05:30
Stefan Kost
02eda0e3d9
docs: cleanup and xref fixes
...
Deal with the hints from gtk-doc and fix the xrefs. Apply a work-around for ()
precedence over @. Move "MT Safe" text to doc body in many places. Trim eol
whitespaces.
2011-03-24 18:32:20 +02:00
Stefan Kost
71dcd52cc0
basesink: print flow return as a name in debug log
2011-03-24 18:32:20 +02:00
Edward Hervey
d979eb3e9e
basesrc: Keep downstream caps order when fixating
...
This allows use to use the first intersecting format prefered by downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=617045
2011-03-24 12:30:42 -03:00
Edward Hervey
0f0a62f316
basetransform: Retain caps order when getting caps
...
If the element gave us caps in a specific order, let's retain that
by intersecting against the template but retaining the order given
by the element.
https://bugzilla.gnome.org/show_bug.cgi?id=617045
2011-03-24 11:47:32 -03:00
Tim-Philipp Müller
5300a5e73b
bytereader, bytewriter: fix up inline functions to make g++ happy
...
gstbytereader.h: In function ‘guint8* gst_byte_reader_dup_data_unchecked(GstByteReader*, guint)’:
gstbytereader.h:249:75: error: invalid conversion from ‘void*’ to ‘guint8*’
gstbytewriter.h: In function ‘gboolean _gst_byte_writer_ensure_free_space_inline(GstByteWriter*, guint)’:
gstbytewriter.h:196:75: error: invalid conversion from ‘void*’ to ‘guint8*’
https://bugzilla.gnome.org/show_bug.cgi?id=645595
2011-03-23 20:52:44 +00:00
Wim Taymans
f505f778cc
pad: more preroll lock to basesink
...
Move the preroll lock to basesink where it belongs.
2011-03-04 17:25:02 +01:00
Wim Taymans
6c18c9508d
miniobject: more boxed type fixing
...
More miniobject fixing, leaks horribly somewhere..
2011-02-23 10:35:09 +01:00
Wim Taymans
1218511185
libs: cleanups for 0.11
...
Remove deprecated stuff, fix padding, rearrange methods.
2011-02-22 19:09:48 +01:00
Wim Taymans
0894ed2053
Merge branch 'master' into 0.11
2011-02-22 15:08:51 +01:00
Wim Taymans
238b9a57cc
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
gst/gstelement.c
gst/gstelement.h
gst/gstpad.c
gst/gstutils.c
libs/gst/base/Makefile.am
libs/gst/check/Makefile.am
libs/gst/controller/Makefile.am
libs/gst/dataprotocol/Makefile.am
libs/gst/net/Makefile.am
win32/common/libgstreamer.def
2011-02-22 14:11:59 +01:00
Thiago Santos
83597767b1
basetransform: Be smarter with pad allocs
...
Avoid doing unnecessary pad-allocs when on passthrough mode.
If multiple basetransform elements are on a pipeline, they
would do a pad-alloc for each received buffer, each element
would do this, so we would have lots of pad allocs on the
pipeline for a single buffer being pushed through it.
This patch attempts to reduce this amount by avoiding
doing pad-allocs if the element has already done it
after the last pushed buffer. So it will only be allowed
to do a new pad-alloc after it has pushed a buffer, so we get
1x1 pad-alloc and buffer ratio
https://bugzilla.gnome.org/show_bug.cgi?id=642373
2011-02-21 10:31:22 -03:00
Thiago Santos
3aaef921c5
basetransform: Check for pad alloc caps when suggestion is not fixed
...
If after computing the suggestion with downstream caps we still have
a non-fixed suggestion caps try to intersect with the input caps
of the pad alloc to avoid useless renegotiations.
https://bugzilla.gnome.org/show_bug.cgi?id=642130
2011-02-14 15:59:25 +01:00
Wim Taymans
f8828eace6
basesink: improve duration calculation
...
Keep track of the average distance between incomming timestamps and
use that to estimate the frame duration when buffers have no duration set on
them.
2011-02-14 15:17:45 +01:00
Wim Taymans
79665e8247
basesink: improve rate calculation
...
When there is no duration on input buffers, assume the rate is 1.0
instead of (the undefined) 0.0.
2011-02-14 15:17:44 +01:00
Wim Taymans
9661a713ba
basesink: improve average duration calculation
...
Improve the calculation of the duration. When we have no input duration set on
the input buffers stop is set to start and then we end up using a 0 duration in
the average calculation.
2011-02-14 15:17:44 +01:00
Wim Taymans
dc0120fe28
basesink: rename variable
...
Rename an internal variable to better reflact what its value means.
2011-02-14 15:17:44 +01:00
Wim Taymans
c8d1abdd00
basesink: fix some comments
2011-02-10 15:21:46 +01:00
Wim Taymans
d19f40c716
basesink: keep track of earliest QoS timestamp
...
Keep track of the earliest allowed timestamp according to the latest
QoS report and drop buffers before that time. Activate this filter
when throttling is enabled. We could later also activate this in the
other QoS cases.
See #638891
2011-02-10 15:21:46 +01:00
Wim Taymans
dad43fa004
basesink: use new QoS type
...
Use the new QoS type and send throttling QoS messages.
2011-02-10 15:21:46 +01:00
Wim Taymans
4ee5c61a2d
basesink: add property to configure a throttle-time
...
Add a property to configure the throttle time on a sink. The
property is not yet used.
See #638891
2011-02-10 15:21:45 +01:00
Tim-Philipp Müller
6c073ca2c7
gobject-introspection: another attempt to make g-i find the right libgstreamer
...
Turns out g-i puts the additional -L we specify at the end, helpfully.
https://bugzilla.gnome.org/show_bug.cgi?id=637549
2011-01-13 20:12:16 +00:00
Tim-Philipp Müller
1ae28ed41c
gobject-introspection: make g-ir-scanner try harder to find the right libgstreamer
...
It's not quite clear to me why g-ir-scanner doesn't get this info from
the pkg-config file, nor why libtool doesn't get it from the .la.
https://bugzilla.gnome.org/show_bug.cgi?id=637549
2011-01-11 14:41:27 +00:00
Wim Taymans
5c479aa3a4
basesrc: make sure we wait and release the live lock
...
Make sure we release the live lock and wait in all cases when we need to wait
for the playing or flushing state change.
Fixes #635785
2011-01-10 13:30:05 +01:00
Tim-Philipp Müller
655451db54
basesrc, basesink: add some FIXMEs for the type of the blocksize property
2011-01-02 16:59:18 +00:00
Wim Taymans
e444ffecf7
basesrc: fix deadlock
...
Only go into LIVE_WAIT when the are not live_running and only stop waiting when
live_running is TRUE. If we don't loop, we could deadlock when called from
outside of basesrc, such as baseaudiosrc.
Fixes #635785
2010-12-29 11:48:18 +01:00
Wim Taymans
ef44d4b539
basesink: also preroll async=false sinks
...
Also preroll async=false sinks after a flush.
2010-12-28 16:23:32 +01:00
Wim Taymans
041d33e5f5
basesink: fix typo
2010-12-21 10:35:40 +01:00
Edward Hervey
bf41fb056a
base: documentation fixups and annotation
2010-12-17 19:19:40 +01:00
Edward Hervey
5372e81c9a
basesrc: Use an atomic integer instead of a lock for checking tags presence
...
https://bugzilla.gnome.org/show_bug.cgi?id=636455
2010-12-17 10:59:25 +01:00
Sebastian Dröge
0a74684b41
basetransform: Handle downstream giving a buffer with new caps but invalid size
...
This can happen for example when downstream proposed new caps, later proposed
the previous caps again which in turn enables passthrough mode in upstream
elements and the wrong-sized buffer appears in an element where the caps
change never happened. Simply allocate a new buffer in this case.
See bug #635461 .
2010-12-16 10:58:33 +01:00
Wim Taymans
6da39bf508
basesink: improve last_stop calculation
...
Only update the last_stop value when we had a valid stop position for the
clipping or else the clipping code assumes the stop position extends to the end
of the segment, which makes the position reporting return weird values.
2010-12-14 19:00:14 +01:00
Wim Taymans
4fd63f0ce2
basesink: fix object type handling in queued preroll
...
Factor out the method to get the object type.
When preroll-queue-len > 0, use the right object type instead of ignoring
buffer-lists.
2010-12-14 15:54:41 +01:00
Edward Hervey
c62c009d7e
libs: Fix GIR build for srcdir != builddir
2010-12-11 10:10:04 +01:00
Stefan Kost
1de8b60034
docs: fix wrong use of Since: keyword
2010-12-08 12:17:35 +02:00
Tim-Philipp Müller
686b16756d
docs: libgstbase: more gobject introspection annotations
...
Many of these are superfluous and were added for clarity.
2010-12-07 18:37:04 +00:00
Wim Taymans
b2ab72b916
pad: remove get_caps_reffed variants
...
Make the _get_caps functions behave like the _get_caps_reffed variants and
remove the _reffed variants. This means that _get_caps doesn't return a writable
caps anymore and an explicit _make_writable() is needed before modifying the
caps.
2010-12-07 18:14:38 +01:00
Wim Taymans
ce0355e6d0
Merge branch 'master' into 0.11
2010-12-07 15:53:56 +01:00
Edward Hervey
d1eb8a14c5
libs: Add -I$(top_srcdir)/libs to g-ir-scanner commands
...
Without this, it will fail finding all headers.
2010-12-07 13:19:10 +01:00
Wim Taymans
99775e5271
more 0.10 -> 0.11
2010-12-06 13:21:45 +01:00
Edward Hervey
27c0bc93b7
basesink: Don't forget to unref the cached ClockId
2010-12-05 15:58:48 +01:00
Edward Hervey
01039b1671
gstdataqueue: Don't break ABI
...
The order of the field was wrong, and the size of the structure didn't
end up being the same.
2010-12-02 19:44:41 +01:00
Wim Taymans
a813aad0ac
basesink: rework position reporting code
...
Unify the different position reporting code paths to make it more
understandable.
Use start_time to get more accurate position reporting in paused.
Fix unit tests for more accurate reporting.
2010-12-02 19:10:46 +01:00
Wim Taymans
79570f49dc
basesink: perform wait_preroll in a while loop
...
We need to continue calling wait_preroll() as long as the need_preroll variable
is true.
2010-12-02 19:10:45 +01:00
Wim Taymans
9076d5688f
basesink: also preroll after a flush with async=false
...
Make sure to preroll after a flush even when we are async=false.
Add unit test.
Fixes #634965
2010-12-02 19:10:45 +01:00
Wim Taymans
19e5a54c9f
adapter: improve docs a little.
2010-12-02 19:10:45 +01:00
Edward Hervey
ece40dacbc
basesink: Re-using GstClockID instead of constantly recreating one
...
Makes _sink_wait_clock at least 2 times faster.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
7115b77aab
basesink: Pass along miniobject type through various functions
...
Avoids doing useless GST_IS_*
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
606e59468d
basesink: Switch enable_last_buffer to an atomic int
...
Avoids having to take a lock to read/write it.
https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Edward Hervey
7cc08390b9
gstdataqueue: Only emit g_cond_signal when needed
...
Keep track of which cond we're waiting for and only emit when needed.
https://bugzilla.gnome.org/show_bug.cgi?id=632779
2010-12-02 19:04:55 +01:00
Evan Nemerson
4906671694
introspection: Include exported packages information in GIRs
...
https://bugzilla.gnome.org/show_bug.cgi?id=635389
2010-11-21 00:36:30 +00:00
Jonathan Matthew
754c3038be
basetransform: use input position for queries if we have no output position
2010-10-29 15:45:04 +02:00
Wim Taymans
ce919c0573
basetransform: fix reverse negotiation
...
When the downstream element suggests a new format, pass the suggestion
upstream if we can't convert to it.
Fixes #633147
2010-10-29 12:03:48 +01:00
Tim-Philipp Müller
07755fd5ee
bytereader: const-ify byte reader argument in peek/scan API
...
Because we can.
2010-10-22 12:04:09 +01:00
Mark Nauwelaerts
21c5064783
basesink: recompute correct running time for buffer ending flushing step
...
Prevents delaying/hanging when resuming PLAYING.
Fixes #632433 .
2010-10-20 18:46:39 +02:00
Tim-Philipp Müller
b0d7c61f18
docs: fix misc. gtk-doc warnings in libs
...
(for gtk-doc 1.15)
2010-10-16 19:19:47 +01:00
Tim-Philipp Müller
1d9fbd1a7c
Revert "libs/gst/dataqueue: Document gst_data_queue_new_full"
...
This reverts commit 80727c1177
.
This doesn't make sense. gst_data_queue_new_full() is already
documented above. And we need the doc blurb for _new() here.
2010-10-16 18:30:18 +01:00
Tim-Philipp Müller
5b25761f29
docs: add some gtk-doc Since: markers
...
Add some gtk-doc Since: markers, fix one Since: marker,
fix typo.
2010-10-16 16:53:49 +01:00
Edward Hervey
80727c1177
libs/gst/dataqueue: Document gst_data_queue_new_full
2010-10-13 12:07:56 +02:00
Edward Hervey
906ae99742
base/gstdataqueue: inline some functions, get levels with memcpy.
2010-10-13 12:07:17 +02:00
Stefan Kost
ad2e7b1de3
docs: use the gtk-doc shortcuts to get coloured and xrefed example
2010-10-11 16:44:01 +03:00
Wim Taymans
428a6477d8
basesrc: tag as a SOURCE element
...
Tag all elements deriving from the basesrc with the IS_SOURCE flag.
2010-10-11 11:16:27 +02:00
Sebastian Dröge
14023fff89
basetransform: Report the output position on POSITION queries on the srcpad
...
There can be a difference between input and output last_stop.
Fixes bug #629410 .
2010-10-10 18:18:23 +02:00
Sebastian Dröge
894f833da9
bytewriter: Add missing file
2010-10-08 12:48:42 +02:00
Sebastian Dröge
69ef479ce4
bytewriter: Add unchecked variants of the writing functions
...
These don't check if there's enough free space available and are
available as inline functions only.
API: gst_byte_writer_put_int8_unchecked
API: gst_byte_writer_put_int16_be_unchecked
API: gst_byte_writer_put_int16_le_unchecked
API: gst_byte_writer_put_int24_be_unchecked
API: gst_byte_writer_put_int24_le_unchecked
API: gst_byte_writer_put_int32_be_unchecked
API: gst_byte_writer_put_int32_le_unchecked
API: gst_byte_writer_put_int64_be_unchecked
API: gst_byte_writer_put_int64_le_unchecked
API: gst_byte_writer_put_uint8_unchecked
API: gst_byte_writer_put_uint16_be_unchecked
API: gst_byte_writer_put_uint16_le_unchecked
API: gst_byte_writer_put_uint24_be_unchecked
API: gst_byte_writer_put_uint24_le_unchecked
API: gst_byte_writer_put_uint32_be_unchecked
API: gst_byte_writer_put_uint32_le_unchecked
API: gst_byte_writer_put_uint64_be_unchecked
API: gst_byte_writer_put_uint64_le_unchecked
API: gst_byte_writer_put_float32_be_unchecked
API: gst_byte_writer_put_float32_le_unchecked
API: gst_byte_writer_put_float64_be_unchecked
API: gst_byte_writer_put_float64_le_unchecked
API: gst_byte_writer_put_data_unchecked
API: gst_byte_writer_fill_unchecked
2010-10-08 12:19:45 +02:00
Sebastian Dröge
3ee6ae4030
bytewriter: Fix possible infinite loop caused by an overflow
2010-10-08 09:47:12 +02:00
Stefan Kost
a11b047d00
basesink: don't take preroll-lock in get_property
...
Use atomic ops to read and write more properties. Taking the preroll lock in get_property
can lock up applications reading the property during preroll.
2010-10-05 12:30:34 +03:00
Stefan Kost
72e9834e88
basesink: add a fixme for 0.11
2010-10-05 12:29:19 +03:00
Wim Taymans
c9c9894552
basesink: format negative values better
...
Format negative values properly in the debug log.
2010-10-04 15:56:59 +02:00
Sebastian Dröge
f758e465c8
bytewriter: Add inline variants of all important functions
2010-10-03 23:32:06 +02:00
Sebastian Dröge
dd762eb49f
bitreader: Add inlined and unchecked versions of the important functions
...
API: gst_bit_reader_skip_unchecked
API: gst_bit_reader_skip_to_byte_unchecked
API: gst_bit_reader_get_bits_uint16_unchecked
API: gst_bit_reader_get_bits_uint32_unchecked
API: gst_bit_reader_get_bits_uint64_unchecked
API: gst_bit_reader_get_bits_uint8_unchecked
API: gst_bit_reader_peek_bits_uint16_unchecked
API: gst_bit_reader_peek_bits_uint32_unchecked
API: gst_bit_reader_peek_bits_uint64_unchecked
API: gst_bit_reader_peek_bits_uint8_unchecked
This alone makes flacparse about 3 times faster.
2010-10-03 15:32:41 +02:00
Sebastian Dröge
10c18151d2
bytewriter: Add guards to the inlined get_pos/get_remaining/get_size/etc functions
2010-10-03 15:32:41 +02:00
Sebastian Dröge
c41c2f7964
bitreader: Optimize peek_bits/get_bits a bit
...
Use local variables instead of dereferencing the bitreader
pointer all the time and don't copy the reader for peek_bits.
2010-10-03 15:32:41 +02:00
Wim Taymans
29e23e9142
basesink: improve adjust_time()
...
Add some more comments.
Make sure we don't end up with negative timestamps.
2010-09-24 12:22:33 +02:00
Havard Graff
54a5871434
basesink: renderdelay needs to be subtracted in adjust_time()
...
latency is already sink-latency + render-delay, and here we only
want to deal with the sink-latency.
Fixes #630436
2010-09-24 12:16:48 +02:00
Havard Graff
51d20158be
basetransform: Make a WARNING into a DEBUG statement
...
Fixes bug #630437 .
2010-09-23 21:55:04 +02:00
Wim Taymans
90d65cb446
basetransform: avoid useless memcpy
...
Because of the awkward refcounting in prepare_output_buffer, we might end up
with writable buffers that point to the same data. Check for those cases so that
we avoid a useless memcpy and keep valgrind quiet.
Fixes #628176
2010-09-23 18:23:39 +02:00
David Schleef
9dbe690f72
adapter: Add check for pattern bits not in mask
2010-09-18 19:29:09 -07:00
Wim Taymans
1afaa1680f
adapter: add function to get a list of buffers
...
Add a function to retrieve a list of buffers containing the first N bytes from
the adapter. This can be done without a memcpy and should make it possible to
transfer the list to a GstBufferList later.
2010-09-17 17:35:41 +02:00
Wim Taymans
a144882871
adapter: reuse more data in _peek()
...
Optimize _peek() some more by reusing already assembled data when we can.
2010-09-17 15:07:50 +02:00
Wim Taymans
961e2029db
adapter: optimize _take() a little more
...
When we have already assembled some data before, reuse this data and only copy
the part that is new.
2010-09-17 13:57:39 +02:00
Wim Taymans
fc4caf55c9
adapter: refactor adapter take
...
Move some common code into one place
2010-09-17 12:48:55 +02:00
Wim Taymans
1dde3cb440
adapter: add support for 0 sized buffers
...
Add support for 0 sized buffers. This is interesting in combination with the
timestamp functions.
Fixes #629553
2010-09-17 12:40:12 +02:00
Jeffrey S. Smith
4375e998ee
Fix casts in a bunch of inline functions to maintain correct const-ness
...
Make code including GStreamer headers compile with -Wcast-qual by
maintaining const-ness when casting. Also fix function signature of
gst_byte_writer_set_pos(): the byte writer should not be marked as
const.
https://bugzilla.gnome.org/show_bug.cgi?id=627910
2010-09-02 00:09:08 +01:00
Tim-Philipp Müller
f9204d5d70
build: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
...
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used). A useful side
effect of this is also that the PKG_CONFIG_PATH environment
is now logged in the configure output.
2010-09-01 17:08:58 +01:00
Sebastian Dröge
2dfb0d2772
base: Stop using GST_FLOW_IS_FATAL()
...
And document the special handling of WRONG_STATE.
2010-08-27 16:59:09 +02:00
Wim Taymans
f8abf35000
basetransform: recover from invalid downstream suggestions
...
When we are handling a buffer and need to allocate an output buffer, handle the
case when downstream suggests us a format that we can't convert the input buffer
to. In that case, check if there is another format available downstream instead
of failing.
Fixes #621332 and see also #614296
2010-08-26 15:18:47 +02:00
Thiago Santos
ac9bfe25ae
gstcollectpads: Fix docs about GstCollectData list
...
Add to the docs the fact that is only safe to iterate
GstCollectPad's data list inside the collected callback.
Fixes #610366
2010-08-12 16:05:35 -03:00
Sebastian Dröge
27bebf7456
basesrc: Make sure the buffer metadata is writable before changing it
2010-08-06 18:44:33 +02:00
Stefan Kost
2237af4b6b
debug: logging improvements
...
Use the event serialisation. Log formats name instead of number.
2010-08-05 10:31:50 +03:00
Stefan Kost
71b494639b
basesrc: log seek event details
2010-08-05 10:31:50 +03:00
Stefan Kost
a82b607885
basesrc: avoid some caps manipulation
...
After the intersect we have writable caps. Copy the template caps so that also
there we have writable caps.
2010-08-05 09:40:02 +03:00
Thiago Santos
1b99e2e2dc
bytereader: Fix docs
...
Fix typo in docs for the unsigned peek functions
2010-08-04 13:47:23 -03:00
Rob Clark
29289ee79e
basetransform fix for upstream caps-renegotiation
...
If initially pass-through caps are negotiated between a transform element's
sink and src pads, but then the downstream element returns different caps
on a buffer from pad_alloc(), basetransform gets stuck with proxy_alloc=TRUE
even though the upstream peer doesn't accept the caps, causing
gst_pad_peer_accept_caps() to be called on each buffer in _buffer_alloc():
if (!gst_caps_is_equal (newcaps, caps)) {
GST_DEBUG_OBJECT (trans, "caps are new");
/* we have new caps, see if we can proxy downstream */
>> if (gst_pad_peer_accept_caps (pad, newcaps)) {
/* peer accepts the caps, return a buffer in this format */
GST_DEBUG_OBJECT (trans, "peer accepted new caps");
which is taking ~40ms/frame.
This patch does two things. (1) if the buffer returned from pad_alloc() has
new caps, trigger the decision whether to proxy the buffer-alloc to be
revisited, and (2) disable proxy if peer does not accept new caps. (The first
part may not be strictly needed, but seemed like a good idea.)
Note that this issue would not arise except in case of downstream elements
who have on their template-caps, some that would be suitable for pass-through,
but at runtime pick more restrictive caps (for ex, after querying a driver for
what formats it actually supports).
2010-07-27 17:34:49 +02:00
Thiago Santos
574e6ab423
basetransform: Try suggesting caps on bad caps pad_alloc
...
When basetransform received an unsupported caps on pad_alloc
it just returned not-negotiated. This patch makes it query
the allowed caps between his sinkpad and upstream's srcpad
to find a caps to suggest.
This happens when dinamically switching pipeline elements
and upstream pad_allocs with the previous caps that was
being used.
Fixes #614296
2010-07-26 14:49:14 -03:00
Sebastian Dröge
29a35e70e1
basetransform: Allow the subclass to add new fields to caps when getting new caps from downstream
...
This was already done in all other cases where new caps are handled
except upstream negotiation.
2010-07-17 21:30:18 +02:00
Sebastian Dröge
55986b9a10
basesrc: Return values in stream time for the POSITION query
...
Fixes bug #623622 .
2010-07-16 17:26:54 +02:00
Sebastian Dröge
249c4c18d0
basesink: Implement GstElement::get_query_types()
2010-07-16 17:26:50 +02:00
Sebastian Dröge
b2e7c4bd45
basesink: Only answer the SEGMENT query in pull mode
...
Otherwise the element handling the seeks should answer this query.
Fixes bug #623622 .
2010-07-16 17:26:31 +02:00
Sebastian Dröge
e2db318921
basetransform: Implement POSITION query
...
Fixes bug #623541 .
2010-07-16 17:26:22 +02:00
Alessandro Decina
3a553f4eda
basesink: add accessors for the enable-last-buffer property.
...
API: gst_base_sink_set_last_buffer_enabled
API: gst_base_sink_is_last_buffer_enabled
2010-07-06 16:39:18 +02:00
Alessandro Decina
f079ff3f20
basesink: add new enable-last-buffer property.
...
Add a new enable-last-buffer property. When false, it disables storing the last
received buffer in basesink::last-buffer. This can be useful in cases where
buffers need to be released asap.
API: GstBaseSink::enable-last-buffer
2010-07-06 12:38:21 +02:00
Sebastian Dröge
a15344515a
basesink: Initialize jitter to prevent printing an uninitialized variable if waiting for the clock failed
2010-06-17 13:20:13 +02:00
Wim Taymans
f80a824a2f
basetransform: reevaluate proxy_alloc when reconfigured
...
When we reconfigure the transform element, make sure we reevaluate the proxying
of buffer_alloc the next time around.
Fixes #621332
2010-06-14 16:20:18 +02:00
Mark Nauwelaerts
7e23719a74
adapter: optimize progressive masked_scan
...
Retain the last scanned buffer entry and offset, so we can resume buffer
scanning there in case of a typical progressive scan.
Also potentially optimize _copy subsequently occurring in that area.
2010-06-14 15:09:59 +02:00
Mark Nauwelaerts
d5ed339f20
adapter: add extended masked_scan_uint32_peek that also provides matching value
...
Also add to .def and docs.
Fixes #619828 .
API: gst_adapter_masked_scan_uint32_peek
2010-06-14 15:09:38 +02:00
Wim Taymans
76f7a001fc
basetransform: add accept_caps vmethod
...
Allow subclasses to override the acceptcaps function because in some cases a
custom implementation can be much much faster than the default one.
See #621190
2010-06-14 12:45:20 +02:00
Olivier Crête
828f2a3389
basetransform: Assume size is the same if no transform_size/get_unit_size
...
Subclasses that don't implemen transform_size should be assumed to produce output
buffers of the same size.
https://bugzilla.gnome.org/show_bug.cgi?id=621334
2010-06-14 10:52:22 +02:00
Sebastian Dröge
83929a5849
basesink: Make sure we have a valid object to render in _render_object()
2010-06-13 18:05:41 +02:00
Sebastian Dröge
e6e29192bc
Remove some dead assignments
2010-06-13 17:08:48 +02:00
Stefan Kost
9b5bc5199e
basetransform: avoid a caps-copy
...
We can simply truncate the caps, as 'othercaps' is the result of intersect
operations and thus ours and writable.
2010-06-05 23:20:50 +03:00
Philippe Normand
6b8baaed50
basesink: Make gst_base_sink_query return TRUE if the segment query succeeded.
...
Fixes bug #620490 .
2010-06-03 17:40:45 +02:00
Mark Nauwelaerts
aa8b8b57d7
adapter: fix _try_to_merge_up
...
That is, provide correct return value (as documented), and actually
loop to consider more than the first 2 buffers.
2010-05-27 14:57:29 +02:00
Mark Nauwelaerts
7479b64a2a
collectpads: fix documentation glitch
2010-05-27 14:57:26 +02:00
Wim Taymans
3d72274b19
basesink: add jitter to debug output
2010-05-18 18:38:14 +02:00
Stefan Kost
a1c2071300
basesrc: reflow to truncate caps just once
...
We get writable caps from the intersection (unless it failed). As we truncate
those anyway, we don't need to manualy copy the first structure.
2010-05-06 17:04:53 +03:00
Tim-Philipp Müller
f77f7e987c
docs: document that gst_byte_writer_put_string*() writes the terminator too
2010-05-05 16:34:47 +01:00
Wim Taymans
6e4fde7195
docs: clarify the pull_range functions
...
Clarify the gst_pad_pull_range(), GstBaseSrc::create(), gst_pad_get_range()
and GstPadGetRange functions a little.
Fixes #617733
2010-05-05 12:01:50 +02:00
Wim Taymans
d00e97b7ea
basesrc: improve debugging
2010-05-04 11:45:02 +02:00
Stefan Kost
c96dec2a06
basesink: implement percentage position and duration queries
...
If upstream does not handle them, then implement those ourself.
2010-04-30 10:03:38 +03:00
Stefan Kost
c29e34113f
basesink: use gst_pad_peer_query instead of reinventing.
2010-04-30 10:03:38 +03:00