Commit graph

1812 commits

Author SHA1 Message Date
Nicolas Dufresne
e6ec142084 doc: Better document new GstCollectData.ABI.abi.dts
The doc generator get confused with the inline structure. So
workaround by wrapping the inner of the structure with
public/private mark, and document that GST_COLLECT_PADS_DTS macro
shall be used to access this.
2015-06-14 10:58:18 -04:00
Nicolas Dufresne
0e0a0c1b11 doc: Various doc fixes for libgstreamer-base
* Fix function name in sections.txt
* Add few missing or fix miss-named
* Workaround gtk-doc being confused with non typedef
  types (loose track of public/private
2015-06-14 10:56:28 -04:00
Nicolas Dufresne
bd9ea8d18f doc: Fix Since: marks
There was few Since: mark missing their column. Also unify the way
we set the Since mark on enum value and structure members. These
sadly don't show up in the index.
2015-06-13 20:19:59 -04:00
Nicolas Dufresne
4320337af6 doc: Remove gstindex from doc comment
Moving that to normal comment to silence the generator. GstIndex
is not in GStreamer library at the moment (removed from 0.10).
2015-06-13 13:55:27 -04:00
Nicolas Dufresne
32900408c1 gi: Set collectpads function param scope 2015-06-13 13:48:03 -04:00
Nicolas Dufresne
2f1c87094e gi: Skip allocator of non-boxed structure
These are not usable as they are, and can easily lead to crash
or leaks. This also silence warning from the scanner. If we manage to
make this usable, we can then remove that mark, it will require
to make this type boxed.
2015-06-13 13:42:58 -04:00
Tim-Philipp Müller
1164f91f1f libs: more doc scanner fixes
gstbasetransform.h:196: Warning: GstBase: "@submit_input_buffer" parameter unexpected at this location:
 * @submit_input_buffer: Function which accepts a new input buffer and pre-processes it.

gstnetcontrolmessagemeta.c:103: Warning: GstNet: gst_buffer_add_net_control_message_meta: unknown parameter 'message' in documentation comment, should be 'addr'
2015-06-13 15:06:11 +01:00
Nicolas Dufresne
51549bf6ba collectpads: Don't initially send an invalid DTS
Sending a possibly invalid DTS may confuse the muxers, which will
then think the DTS is going backward.

https://bugzilla.gnome.org/show_bug.cgi?id=740575
2015-06-12 17:20:16 -04:00
Nicolas Dufresne
b5e4f7bd9d collectpads: Add negative DTS support
Make gst_collect_pads_clip_running_time() function also store the
signed DTS in the CollectData. This signed DTS value can be used by
muxers to properly handle streams where DTS can be negative initially.

https://bugzilla.gnome.org/show_bug.cgi?id=740575
2015-06-12 17:20:16 -04:00
Jan Schmidt
0d96487879 basetransform: Add Since markers for new vfuncs
Add Since: 1.6 markers for the new submit_input_buffer() and
generate_output() vfuncs
2015-06-08 19:33:23 +10:00
Jan Schmidt
a198803bd6 basetransform: Split input buffer processing from output generation
Allow for sub-classes which want to collate incoming buffers or
split them into multiple output buffers by separating the input
buffer submission from output buffer generation and allowing
for looping of one of the phases depending on pull or push mode
operation.

https://bugzilla.gnome.org/show_bug.cgi?id=750033
2015-06-08 19:17:57 +10:00
Tim-Philipp Müller
828ceacc68 queuearray: remove duplicate assignment
We've already done this earlier in the function,
and nothing has changed since we first read it.
2015-05-30 12:40:44 +01:00
Matthew Waters
8bc0a6c562 basesink: use the slightly more correct take_sample for last-sample
gst_value_take_buffer() and gst_value_take_sample() both resolve to
g_value_take_boxed().  Use the method with the correct name if we
ever change that.
2015-05-25 21:05:56 +10:00
Jian
4f79c5e8da basesink: Fix QoS/lateness checking if subclass implements prepare/prepare_list vfuncs
In basesink functions gst_base_sink_chain_unlocked(), below code is used to
checking if buffer is late before doing prepare call to save some effort:
    if (syncable && do_sync)
      late =
          gst_base_sink_is_too_late (basesink, obj, rstart, rstop,
          GST_CLOCK_EARLY, 0, FALSE);

    if (G_UNLIKELY (late))
      goto dropped;

But this code has problem, it should calculate jitter based on current media
clock, rather than just passing 0. I found it will drop all the frames when
rewind in slow speed, such as -2X.

https://bugzilla.gnome.org/show_bug.cgi?id=749258
2015-05-14 11:18:12 +03:00
Ilya Konstantinov
b58245ac0a baseparse: fix GST_BASE_PARSE_FLAG_LOST_SYNC
Since frame->priv->discont was cleared earlier,
GST_BASE_PARSE_FLAG_LOST_SYNC was never being set.

Take the chance to refactor the frame creation a bit to
organize the flags setting and reset.

https://bugzilla.gnome.org/show_bug.cgi?id=738237
2015-04-28 12:57:35 -03:00
Thiago Santos
8641997630 baseparse: respect DISCONT flag on buffers
Drain the parser when a DISCONT buffer is received and then mark
the next buffer to be pushed as a DISCONT one

https://bugzilla.gnome.org/show_bug.cgi?id=745927
2015-04-28 12:54:08 -03:00
Tim-Philipp Müller
8e6561be91 Remove obsolete Android build cruft
This is not needed any longer.
2015-04-26 17:49:44 +01:00
Changbok Chea
60706692b3 basesrc: Remove unused assignment in perform_seek()
https://bugzilla.gnome.org/show_bug.cgi?id=748345
2015-04-23 14:03:23 +01:00
Vincent Penquerc'h
6240b03085 Revert "basesrc: fix pool leak on allocation query error path"
This reverts commit 84fdf50b2f.

It seems the bug was fixed independently, and the merge was
automagic, yielding two extra free calls.
2015-04-15 11:40:51 +01:00
Sebastian Dröge
7d3d4503a1 basesrc: Only set DTS to segment.start on the first buffer if subclass did not provide PTS
Otherwise we're going to set a rather arbitrary DTS of segment.start (usually
0) for live sources, which confuses synchronization if the source started
capturing at a later time. And it's especially wrong for raw media, for which
we should not set any DTS at all.

https://bugzilla.gnome.org/show_bug.cgi?id=747731
2015-04-13 09:23:02 +02:00
Vincent Penquerc'h
84fdf50b2f basesrc: fix pool leak on allocation query error path
It could be triggered by:

gst-launch-1.0 videotestsrc num-buffers=20 ! videcrop bottom=214748364 ! videoconvert ! autovideosink

Spotted while testing:

https://bugzilla.gnome.org/show_bug.cgi?id=743910
2015-04-07 11:41:40 +01:00
Sebastian Dröge
370076edd5 baseparse: Forward SEGMENT_DONE events immediately
There might be no more data coming afterwards, and we just drained everything
that was left to be pushed anyway.
2015-04-06 18:46:06 -07:00
Ilya Konstantinov
f35ec14d33 basesrc: do not leak buffer pool in error case
https://bugzilla.gnome.org/show_bug.cgi?id=747321
2015-04-04 11:14:12 +01:00
Sebastian Dröge
7742f0a0d3 basesrc: Fix documentation, buffer pools are unreffed and not freed 2015-04-03 13:19:33 -07:00
Nicolas Dufresne
43f2f925a9 basetransform: Add Since mark for new method
https://bugzilla.gnome.org/show_bug.cgi?id=734424
2015-04-02 17:32:42 -04:00
Thibault Saunier
506afa54df basetransform: Add a method to let subclasses cleanly update srcpad caps
API:
    gst_base_transform_update_src

https://bugzilla.gnome.org/show_bug.cgi?id=734424
2015-04-02 17:16:23 -04:00
Edward Hervey
e4d07e161d introspection: Don't use g-ir-scanner cache at compile time
It pollutes user directories and we don't need to cache it

https://bugzilla.gnome.org/show_bug.cgi?id=747095
2015-03-31 11:16:09 +02:00
Nicolas Dufresne
208696a774 basesrc: Flush-stop starts live task in paused
The flush-stop event should not restart the task for live sources unless
the element is playing. This was breaking seeks in pause with the rtpsrc.

https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-27 19:03:30 -04:00
Thiago Santos
a041d8862d baseparse: only post 'no valid frames' error if buffers were received
Otherwise baseparse will consider empty streams to be an error while
an empty stream is a valid scenario. With this patch, errors would
only be emitted if the parser received data but wasn't able to
produce any output from it.

This change is only for push-mode operation as in pull mode an
empty file can be considered an error for the one driving the
pipeline

Includes a unit test for it

https://bugzilla.gnome.org/show_bug.cgi?id=733171
2015-03-26 12:25:57 -03:00
Olivier Crête
187570aded baseparse: remove duplicate code
These are already freed by gst_base_parse_clear_queues()

https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-03-17 19:35:08 +00:00
Vincent Penquerc'h
780f71c4d5 baseparse: reset skip on segments and discontinuities
Large scale skip is an optimization, and thus it is safer to
stop skipping than to continue. Clear skip on segments and
discontinuities, as these are points where it is possible that
the original idea of "bytes to skip" changes.
2015-03-16 12:53:50 +00:00
Tim-Philipp Müller
01e44969df basesink: handle empty buffer list more gracefully
Don't abort, just ignore it. It's like a buffer
without memories.
2015-03-14 21:09:50 +00:00
Tim-Philipp Müller
2b4d066355 adapter: minor optimisation for gst_adapter_take_buffer_list()
Try to allocate buffer list with a suitable size from the
beginning to avoid having to re-alloc the buffer list array.
2015-03-14 21:09:45 +00:00
Tim-Philipp Müller
e6a0f52e3c adapter: add gst_adapter_take_buffer_list()
API: gst_adapter_take_buffer_list()
2015-03-14 17:22:22 +00:00
Tim-Philipp Müller
68012b4d23 collectpads: avoid multiple calls to gst_buffer_get_size() in macro 2015-03-14 16:02:03 +00:00
Tim-Philipp Müller
4a1cee3c44 adapter: avoid multiple calls to gst_buffer_get_size() in macro 2015-03-14 16:02:03 +00:00
Thiago Santos
5e15d4aa60 basesink: drain on allocation query
Allows buffers to be reclaimed when caps is to be renegotiated so
that bufferpools can be stopped. As the allocation query is
serialized all buffers have been already drained from the pipeline,
except this last_sample one.

https://bugzilla.gnome.org/show_bug.cgi?id=682770
2015-03-13 19:03:01 +00:00
Thiago Santos
901fea5985 basesink: when draining, deep copy the last buffer to unref old memory
Use gst_buffer_copy_deep() to force the copy of the underlying
memory instead of possibly doing a shallow copy of the buffer
and just referencing the memory

https://bugzilla.gnome.org/show_bug.cgi?id=745287
2015-03-13 18:37:04 +00:00
Wim Taymans
4b174b14f5 basesink: clean up the need_preroll variable
Based on patch from Song Bing <b06498@freescale.com>

Don't just set the need_preroll flag to TRUE in all cases. When we
are already prerolled it needs to be set to FALSE and when we go to
READY we should not touch it. We should only set it to TRUE in other
cases, like what the code above does.

See https://bugzilla.gnome.org/show_bug.cgi?id=736655
2015-03-11 16:40:17 +01:00
Mark Nauwelaerts
b9411dab75 flowcombiner: add a gst_flow_combiner_update_pad_flow() method
https://bugzilla.gnome.org/show_bug.cgi?id=744572

API: gst_flow_combiner_update_pad_flow()
2015-03-07 20:18:43 +01:00
Mark Nauwelaerts
8ec7272d99 flowcombiner: add a gst_flow_combiner_reset() method
https://bugzilla.gnome.org/show_bug.cgi?id=744572

API: gst_flow_combiner_reset()
2015-03-07 20:18:43 +01:00
Sebastian Dröge
bfaa7d1b9f basesrc: Fix typo in debug message 2015-03-06 11:00:20 +01:00
Edward Hervey
c1d2254b23 baseparse: Don't emit errors on EOS if we saw GAP events
If we saw GAP events (meaning the streams is advancing) before we get
EOS, we should not post an ERROR, since it is not fatal.

https://bugzilla.gnome.org/show_bug.cgi?id=745143
2015-02-26 07:52:05 +01:00
Mark Nauwelaerts
70603c1d27 flowcombiner: fix documentation comment typo 2015-02-23 20:08:20 +01:00
Mark Nauwelaerts
aca7faf520 baseparse: drain segment upon SEGMENT_DONE to ensure proper event order 2015-02-23 20:08:20 +01:00
Mark Nauwelaerts
84f0410186 baseparse: clean up some bogus commented code 2015-02-23 20:08:20 +01:00
Thiago Santos
d718a2befd basesrc: fix documentation and debug message after latency updates
Changes docs and message according to latency handling fix
2015-02-12 14:12:08 -03:00
Sebastian Dröge
4a5ce862a2 Improve and fix LATENCY query handling
This now follows the design docs everywhere.

https://bugzilla.gnome.org/show_bug.cgi?id=744106
2015-02-11 17:53:04 +02:00
Sebastian Dröge
f4bd5f119a basetransform: Short-circuit CAPS query handling if transform_caps returns EMPTY caps
Both for the peer filter caps and the converted caps based on the peer caps.

If the peer filter caps are EMPTY, the peer caps query will also return
EMPTY. There's no ned to both downstream/upstream with this query.
2014-12-22 13:08:37 +01:00
Vincent Penquerc'h
dd40d99710 baseparse: jump over large skips in pull mode
This bypasses the dumping of buffers we still have to do in push mode.

https://bugzilla.gnome.org/show_bug.cgi?id=730053
2014-12-18 13:11:46 +00:00
Edward Hervey
05092eda8e basesink: clamp reported position based on direction
When using a negative rate (rate being segment.rate * segment.applied_rate),
we will end up reporting decreasing positions, therefore adjust the clamping
against last reported value accordingly.

Fixes positions getting properly reported with applied_rate < 0.0

https://bugzilla.gnome.org/show_bug.cgi?id=738092
2014-12-01 10:46:42 +01:00
Sebastian Dröge
154eefecc9 Don't compare booleans for equality to TRUE and FALSE
TRUE is 1, but every other non-zero value is also considered true. Comparing
for equality with TRUE would only consider 1 but not the others.

Also normalize booleans in a few places.
2014-12-01 09:51:37 +01:00
Thiago Santos
8f4ef80fc4 baseparse: update the duration variable before emitting the bus
Otherwise the application might still get the old value if it asks
between the message and the real update.
2014-11-28 17:00:17 -03:00
Sebastian Dröge
21321ce674 basetransform: Compare correct caps variable against NULL before comparing caps 2014-11-27 18:00:57 +01:00
Sebastian Dröge
a7f3571d02 basetransform: Fix caps equality check
Instead of checking if our outcaps are equivalent to the previous incaps, and
if that is the case not setting any caps on the pad... compare against our
previous outcaps because that's what we care about.

Fixes some cases where the outcaps became equivalent to the previous incaps,
but the previous outcaps were different and we were then sending buffers
downstream that were corresponding to the caps we forgot to set on the pad.
Resulting in crashes or image corruption.
2014-11-20 21:37:24 +01:00
Vincent Penquerc'h
7c4fbc9fb1 baseparse: allow skipping more data than we currently have
This can be useful for skipping large unwanted data, such as
large album art, when we know the size of it from a metadata
header.
2014-11-12 13:43:33 +00:00
Sebastian Dröge
a52184ed55 basetransform: Don't bother the subclass with setting the same caps multiple times 2014-11-09 10:42:55 +01:00
Sebastian Dröge
acc295c93b basesink: Don't bother the subclass with setting the same caps multiple times 2014-11-09 10:42:55 +01:00
Sebastian Dröge
674b555bec basesrc: Don't bother the subclass with setting the same caps multiple times 2014-11-09 10:42:54 +01:00
Jan Schmidt
f470d57edd dataqueue: Fix gst_data_queue_new() description.
Reword the function docs, which haven't made any sense since
gst_data_queue_new_full() was removed a few years ago.
2014-11-06 21:09:09 +11:00
Thibault Saunier
56606c5264 basesink: Answer the query position when receiving it from upstream
Currently we are just returning FALSE, but we do have the information
we should just answer the query the same way as when answering through
the GstElement.query vmethod default implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=739580
2014-11-04 11:53:23 +01:00
Luis de Bethencourt
c42b525848 doc: Do not use deprecated gtk-doc 'Rename to' tag
GObject introspection GTK-Doc tag "Rename to" has been deprecated, changing to
rename-to annotation.

https://bugzilla.gnome.org/show_bug.cgi?id=739514
2014-11-02 15:17:57 +00:00
Tim-Philipp Müller
989e97d1dd basesink: don't unlock mutex that is not locked
Fixes 'Attempt to unlock mutex that was not locked'
warning with newer GLibs when sink is shut down in
certain situations. Triggered by the decodebin
test_reuse_without_decoders unit test in -base
sometimes, esp. on slower machines.
2014-10-24 12:51:07 +01:00
Jan Schmidt
33e65d9358 collectpads: Use GST_PTR_FORMAT in debug to output buffer details
Use %GST_PTR_FORMAT instead of %p in debug output so all the buffer
details are output
2014-10-08 01:33:51 +11:00
Matej Knopp
d8aac32c78 baseparse: don't leak caps in gst_base_parse_process_streamheader
https://bugzilla.gnome.org/show_bug.cgi?id=737762
2014-10-03 12:36:27 +01:00
Tim-Philipp Müller
c78a1b111c Revert "baseparse: don't leak caps in gst_base_parse_process_streamheader"
This reverts commit 5e8b4bf085.

This causes refcounting criticals in the baseparse unit test.
2014-10-03 09:01:39 +01:00
Matej Knopp
5e8b4bf085 baseparse: don't leak caps in gst_base_parse_process_streamheader
https://bugzilla.gnome.org/show_bug.cgi?id=737762
2014-10-02 10:39:54 +03:00
Stefan Sauer
d5518edf12 fixme: bump leftover 0.11 fixme comments 2014-09-25 21:27:03 +02:00
Stefan Sauer
e8c5627802 basesrc: move the quick return up
Don't assign local vars if we skip anyway. Add logging for failure conditio
2014-09-25 20:33:17 +02:00
Jonas Holmberg
4a304a7774 flowcombiner: add a gst_flow_combiner_clear() method
https://bugzilla.gnome.org/show_bug.cgi?id=737359

API: gst_flow_combiner_clear()
2014-09-25 15:40:42 +01:00
Stefan Sauer
feeb2902da docs: fix a small contradition in the docs
The vmethod get_size() shall return the size in 'format' as configured by
_set_format().
2014-09-23 12:53:18 +02:00
Aurélien Zanelli
fefd6d06a1 basesrc: handle reference in set_allocation rather than in prepare_allocation
Otherwise we can forget to unref objects in error cases.

https://bugzilla.gnome.org/show_bug.cgi?id=736680
2014-09-16 10:17:28 +03:00
Tim-Philipp Müller
d4a4a96f82 baseparse: minor docs fix 2014-09-09 20:43:02 +01:00
Thiago Santos
59c34a8ff7 baseparse: handle streamheaders by prepending them to the stream
Add a first_buffer boolean state flag to have baseparse do actions
before pushing data. This is used to check the caps for streamheader
buffers that are prepended to the stream, but only if the first buffer
isn't already marked with the _HEADER flag. In this case, it is assumed
that the _HEADER marked buffer is the same as the streamheader.

https://bugzilla.gnome.org/show_bug.cgi?id=735070
2014-08-27 10:30:09 -03:00
Tim-Philipp Müller
86d7a597f0 bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
Adds API to get or peek a sub-reader of a certain size from
a given byte reader. This is useful when parsing nested chunks,
one can easily get a byte reader for a sub-chunk and make
sure one never reads beyond the sub-chunk boundary.

API: gst_byte_reader_peek_sub_reader()
API: gst_byte_reader_get_sub_reader()
2014-08-15 10:03:26 +01:00
Aurélien Zanelli
b9fa37f074 docs: make explicit that the caps passed to gst_base_src_set_caps() are 'tranfer none'
https://bugzilla.gnome.org/show_bug.cgi?id=733741
2014-08-15 09:53:09 +01:00
Tim-Philipp Müller
f88a981997 base: and fix build with new g-i again 2014-08-14 14:38:57 +01:00
Tim-Philipp Müller
55498523e4 base: remove g-i annotation that makes older g-ir-scanner crash
Just remove one skip annotation that causes this:

  ** (g-ir-compiler:12458): ERROR **: Caught NULL node, parent=empty

with older g-i versions such as 1.32.1.
2014-08-14 14:27:13 +01:00
Tim-Philipp Müller
d9516d3c58 bytereader: use unchecked inline variant for get_remaining in more places
We've already done the g_return_*_if_fail (reader != NULL)
dance in those places, so no need to do it again.
2014-08-06 14:23:47 +01:00
Thiago Santos
f8323b17fb bytereader: add gst_byte_reader_masked_scan_uint32_peek
Adds gst_byte_reader_masked_scan_uint32_peek just like
GstAdapter has a _peek and non _peek version

Upgraded tests to check that the returned value is correct in the
_peek version

API: gst_byte_reader_masked_scan_uint32_peek

https://bugzilla.gnome.org/show_bug.cgi?id=728356
2014-07-24 17:00:09 -03:00
Thibault Saunier
4c38895f4b baseparse: Return FLOW_FLUSHING when pushing a frame on a pad that has been flushed
When going to READY, it is possible that we are still pusing a frame but that
our srcpad has already been set to flushing. In that case we should not
post any error on the bus but instead cleanly return FLOW_FLUSHING.

https://bugzilla.gnome.org/show_bug.cgi?id=733320
2014-07-17 17:46:16 +02:00
Vincent Penquerc'h
2dc8839234 basesink: reset QoS on segment event
This avoids spurious warnings about slow machine when upstream
sends new segments without flushing.
2014-07-01 16:30:23 +01:00
Evan Nemerson
5abc82e9f3 introspection: Assorted minor introspection and documentation fixes
https://bugzilla.gnome.org/show_bug.cgi?id=732534
2014-07-01 09:03:41 +02:00
Sebastian Dröge
4720e6d0e0 dataqueue: Hide from bindings
Other languages have their own data structures that are more convenient to
use.

https://bugzilla.gnome.org/show_bug.cgi?id=731303
2014-06-26 19:32:28 +02:00
Sebastian Dröge
0d5177b5fe queuearray: Hide from bindings
Other languages have their own data structures that are more convenient to use.

https://bugzilla.gnome.org/show_bug.cgi?id=731350
2014-06-26 19:32:18 +02:00
Evan Nemerson
eebff7b048 base: assorted introspection fixes and additions
https://bugzilla.gnome.org/show_bug.cgi?id=731542
2014-06-26 18:55:26 +02:00
Evan Nemerson
c38f3254f8 base: add (nullable) annotations to return values
https://bugzilla.gnome.org/show_bug.cgi?id=731542
2014-06-26 18:55:25 +02:00
Thiago Santos
b7516dbf7c baseparse: avoid returning _OK for _NOT_LINKED
When the parser receives non-aligned packets it can push a buffer
and get a not-linked return while still leaving some data still to
be parsed. This remaining data will not form a complete frame and
the subclass likely returns _OK and baseparse would take that
as the return, while it the element is actually not-linked.

This patch fixes this by storing the last flow-return from a push
and using that if a parsing operation doesn't result in data being
flushed or skipped.

https://bugzilla.gnome.org/show_bug.cgi?id=731474
2014-06-25 12:13:07 -03:00
Tim-Philipp Müller
f6e2dee6f9 flowcombiner: fix g-i transfer annotations 2014-06-16 09:18:45 +01:00
Edward Hervey
ecd8fd3511 flowcombiner: Fixed GBoxedCopyFunc
I'll just quote the most interesting man in the world:

"I don't usually push commits, but when I do I don't compile it
first"
2014-06-16 08:43:57 +02:00
Tim-Philipp Müller
b05eeb9df4 flowcombiner: keep a ref to the pads we're using
Needed for use via the boxed type.

https://bugzilla.gnome.org/show_bug.cgi?id=731355
2014-06-14 11:32:42 +01:00
Tim-Philipp Müller
49fedb521f flowcombiner: add boxed type for bindings
https://bugzilla.gnome.org/show_bug.cgi?id=731355
2014-06-14 10:54:41 +01:00
Nicolas Dufresne
d99e621533 bytereader: Use concistant derefence method
This is minor style fix to not mix *var and var[N].
2014-06-10 10:23:13 -04:00
Sungho Bae
d3b2f6e4b8 bytereader: Use pointer instead of index access
Currently the scan uses Boyer-moore method and its performance is good.
but, it can be optimized from an implementation of view.

The original scan code is implemented by byte array and index-based access.
In _scan_for_start_code(), the index is increasing from start to end and the
base address of the byte array is referred to as return value.

In the case, index-based access can be replaced by pointer access, which
improve the performance by removing index-related operations.

Its performace is enhanced by approximately 8% on arm-based embedded devices.
Although it seems trivial, it can affect the overall performance because the
_scan_for_start_code() function is very often called when H.264/H.265 video is
played.

In addition, the technique can apply for all architectures and it is good in
view of readability and maintainability.

https://bugzilla.gnome.org/show_bug.cgi?id=731442
2014-06-10 09:35:38 -04:00
Evan Nemerson
1cd4bd64b0 queuearray: fix expanding size of queue from 1
Without we would not actually expand and access
memory beyond the allocated region for the array.

https://bugzilla.gnome.org/show_bug.cgi?id=731349
2014-06-07 09:45:39 +01:00
Evan Nemerson
75e0a3c676 dataqueue: clear up documentation of gst_data_queue_new
The gpointer argument is passed to all three callbacks, not just one.

https://bugzilla.gnome.org/show_bug.cgi?id=731302
2014-06-07 09:30:14 +01:00
Evan Nemerson
1fe6d3ad08 introspection: fix some minor annotation bugs
https://bugzilla.gnome.org/show_bug.cgi?id=730982
2014-06-06 15:15:12 -04:00
Evan Nemerson
25af4ad652 base: use correct syntax in documentation more consistently
Previously, many constants were prefixed with # or unprefixed,
some functions and macros were prefixed with # instead of suffixed
with (), etc.

https://bugzilla.gnome.org/show_bug.cgi?id=731293
2014-06-06 15:09:21 -04:00
zhouming
2793f808ee baseparse: Pass rate of input segment to output segment
https://bugzilla.gnome.org/show_bug.cgi?id=729701
2014-06-06 13:53:35 +03:00
Tim-Philipp Müller
2f265b7571 flowcombiner: beautify headers a little 2014-05-27 10:09:02 +01:00