Commit graph

9364 commits

Author SHA1 Message Date
Thomas Vander Stichele cec504cb7f git-version.sh: make executable 2009-06-13 14:55:43 +02:00
Thomas Vander Stichele 9cc750765e Update scripts/cvs-update.sh to git-update.sh; add git-version.sh
add script to get git versions
    first update all, then build
    add gnonlin too
    specify where to pull from
    also update submodule
    rename and change cvs-update script to git-update
2009-06-13 14:53:24 +02:00
Tim-Philipp Müller 674447fafe bytereader: add gst_byte_reader_masked_scan_uint32()
Add a pattern scan function similar to the one recently added to
GstAdapter, and a unit test (based on the adapter one).
Fixes #585592.

API: add gst_byte_reader_masked_scan_uint32()
2009-06-13 10:53:49 +01:00
René Stadler c403e4b7f0 Fix remaining --disable-gst-debug ABI breakage.
Fixes #579177.
2009-06-12 18:19:23 +03:00
Stefan Kost 36bb7c76b1 filesrc/sink: turn the bus messages into g_warning
Its a programming error.
2009-06-12 17:55:02 +03:00
Wim Taymans f456be1db6 message: fix docs 2009-06-12 15:48:35 +02:00
Wim Taymans 25067558dc stepping: more stepping improvements
Update design doc with step-start docs.
Add eos field to step done message
when stepping in reverse, update the segment time field.
Flush out the current step when we are flushing.
2009-06-12 13:20:36 +02:00
Wim Taymans 23b772664b basesink: post step-start
when we clip, also stop the stepping.
Don't do QoS when stepping
Post step-start when queueing and activating the step.
2009-06-12 13:16:29 +02:00
Wim Taymans e969b3a399 message: add step-start message 2009-06-12 13:16:29 +02:00
Tim-Philipp Müller 4530151ad2 gstvalue: more efficient value table lookup for fundamental types
Small micro-optimisation: look up value table for fundamental types
via an array dedicated to fundamental types instead of going through
a hash table lookup. Since there can be only 255 fundamental types,
the table size/efficiency trade-off should be acceptable, esp. since
the most commonly-used types are all fundamental types. The size of
the table could probably be minimised further if needed by allocating
the table dynamically and only expanding it on demand.
2009-06-11 19:02:40 +01:00
Tim-Philipp Müller e8bfd88f26 gstvalue: don't put GTypes into int variables
GTypes are not ints and as such are not guaranteed to fit into an int
(with the exception of fundamental types), so we really shouldn't put
them into int variables. Even if a rather unlikely obscure corner case,
this has actually been a problem at some point in the past, see commit
99f16655f4.
2009-06-11 18:48:50 +01:00
Stefan Kost e938861cb8 filesrc/sink: improve warning message a bit (wrong state)
Unify and turn those into element warnings.
2009-06-11 18:16:05 +03:00
Jan Schmidt 4165cdf4af elementfactory: Fix a compiler warning
Use (gpointer) instead of (gpointer *) to fix a strict-aliasing build warning.
2009-06-11 14:00:09 +01:00
Jan Schmidt 29170a4cfa docs: Bump common, fix the upload logic inclusion
Update the common submodule, and fix the docs upload rules to include
the right makefile snippet from common.
2009-06-11 13:16:29 +01:00
Jan Schmidt 2e2695f594 multiqueue: Use the slice allocator for MultiQueueItems 2009-06-11 10:34:28 +01:00
Tim-Philipp Müller 7e9105bca0 Make sure config.h is only included once
Fixes build problem on win32 (#585075).
2009-06-10 20:29:41 +01:00
Stefan Kost 094d71f004 plugin: add since: tags for the api docs.
The previous related commit added new API.
API: add gst_plugin_get_cache_data, gst_plugin_set_cache_data
2009-06-10 18:07:11 +03:00
Stefan Kost a6999575d5 plugin: fix leaks introduced by fix for #584389 2009-06-10 12:03:42 +03:00
Tim-Philipp Müller cdd47a37e9 structure: add gst_structure_*_get*() vararg functions
Add a bunch of vararg getter convenience functions to complement
the vararg setter functions, and a basic unit test. Fixes #534208.

API: gst_structure_get()
API: gst_structure_id_get()
API: gst_structure_get_valist()
API: gst_structure_id_get_valist()
2009-06-10 09:39:12 +01:00
Tim-Philipp Müller 26b201273a docs: a few small API doc fixes and additions 2009-06-10 09:39:12 +01:00
Tim-Philipp Müller a33de081b2 logging: when logging taglists, shorten long buffer dumps
Don't dump hundreds of kB of hexdata into debug logs when converting
taglists containing huge images into a string. Instead, shorten the
buffer data so that the string is still readable and debug logs
stay managable. Can be turned off with GST_DEBUG_OPTIONS=full-tags.
See #584988.
2009-06-10 09:39:11 +01:00
Wim Taymans 5a77f18278 multiqueue: check byte range even when we have timestamps
As found by thaytan on IRC.
Also check the byte limit, even if we have timestamps because there might just
not be a time limit.
2009-06-09 13:08:54 +02:00
Wim Taymans 6e633cbe33 basesink: update segment start/stop for clipping
When we start stepping, store the start/stop values of the segment before we
install new start/stop values for clipping in non-flushing steps.

for non-flushing steps, update the element start time. For flushing steps, it
does not change because running_time does not advance

Make sure we always perform the stop_stepping operations even when we drop
frames.
2009-06-09 12:06:35 +02:00
Wim Taymans 72e8d9909c basesink: do proper clipping in stepping
Update the stop position of the segment so that we clip correctly.
After clipping in non-flushing mode, rerender the remainder of the buffer.
2009-06-09 10:25:34 +02:00
Wim Taymans afeec70eff segment: make conversion more precise
Make sure the conversion from and the conversion to give the same results.
2009-06-09 10:23:23 +02:00
Tim-Philipp Müller f44204c8fa utils: gst_util_uint64_scale*() micro-optimisations
Sprinkle G_LIKELY/G_UNLIKELY; add inlined _scale_int_unchecked()
so we don't do some checks twice when calling it from _scale().
2009-06-08 17:13:17 +01:00
Tim-Philipp Müller 998b2392d3 Remove double semicolons at end of line 2009-06-08 17:13:17 +01:00
Wim Taymans 89c42f8506 stepping: do flushing steps correctly
Note in the docs that a flushing step in PLAYING brings the pipeline to the lost
state and skips the data before prerolling again.

Implement the flushing step correctly by invalidating the current step
operation, which would activate the new step operation.
2009-06-08 17:41:56 +02:00
Jan Schmidt f0f9ed875f basesink: Change awkward wording in a translateable message. 2009-06-08 16:16:27 +01:00
Wim Taymans a4c6d04b4c basesink: add non-flushing steps
Add support for non-flushing steps and with different rates.
Clear step info when flushing
2009-06-08 16:27:36 +02:00
Stefan Kost ed88db818b registry: allow plugins to cache extra data in registry. Fixes #570233
Add a GstStructure to GstPlugin. Plugins can retieve it in plugin_init and
access the cached info or build the cache and store it there.
2009-06-07 23:48:59 +03:00
Stefan Kost 55577a48ea registry: don't recreate features on first use. Fixes #584389
The first time one calls gst_element_factory_make(), gst recreates the plugin
feature and the element factory. As a side effect we ref the class to fill
in detail we already have filled from the registry cache. This patch changes
the behaviour to just update the existing entries. The factory is now attached
to the type and set in gst_element_base_class_init().
2009-06-07 23:48:59 +03:00
Wim Taymans fbaa49faf4 tests: conditionally compile the streams example
Detect pthreads.h in configure.ac
Only compile the streams example when pthreads.h is present.

Fixes #585039
2009-06-07 22:20:54 +02:00
Wim Taymans 1769cc7297 gstvalue: remove type checks and redundant code 2009-06-07 17:32:35 +02:00
Wim Taymans 19f98d6418 value: fix fraction range lcopy function
This function seems to be broken for 3.5 years. Luckily nobody ever tried to
make a fraction range object property...
2009-06-07 15:43:57 +02:00
Wim Taymans 65f9b38138 gstvalue: performance improvements
Add a GType->GstValueTable hashtable mapping.
Avoid _get_type() multiple times when we can.
Use GSlice for fraction range dynamic memory
Add G_LIKELY when we can
Improve lookup of the value table using the hashtable
2009-06-07 15:35:12 +02:00
Wim Taymans c6e6e7c97b structure: no need to clear on init
We don't need to clear the field on init because we will do that again before we
are going to use the field later.
2009-06-07 14:30:28 +02:00
Jan Schmidt 766e7afc23 gststructure: Fix some memory leaks. Sprinkle G_LIKELY/UNLIKELY
Fix some memory leaks shown by the new serialisation/deserialisation unit
test. Split the gst_string_wrap function in gstvalue.c into components and
use them to make gst_string_take_and_wrap, which takes ownership of the
string, avoiding a strdup.

Add some G_LIKELY/UNLIKELY, and clean up some leaks in error paths.
2009-06-05 21:00:43 +01:00
Mark Nauwelaerts 4bb3702886 basesrc: reply to QUERY_SEEKING with original format. Fixes #584838. 2009-06-05 16:01:27 +02:00
Tim-Philipp Müller c9915b767f configure: remove AC_C_INLINE and update win32 files to git
Remove AC_C_INLINE check, so we don't end up with an #undef inline in
config.h, which causes problems with some versions of MSCV apparently.
GLib defines inline for us in a suitable way already anyway.
Fixes #584835.

While we're at it, also update the other win32 files to git (bump
version, add new defines and enums).
2009-06-04 19:47:11 +01:00
Wim Taymans 814b46b6a6 ghostpad: avoid excessive notify for caps
Avoid an object property notify if the caps on the other pad were already
set (and thus notified).
2009-06-04 18:26:04 +02:00
Wim Taymans fa7db7d247 basesink: fix clipped start/stop after step
Use the segment helpers to get a more accurate clipped start/stop position after
a stepping operation ended.
2009-06-04 17:27:03 +02:00
Wim Taymans 957e40343d basesink: use more correct segment methods
Use the more correct new segment methods for updating the segment before and
after a step.
2009-06-04 12:53:23 +02:00
Wim Taymans 0e74bfe248 segment: add gst_segment_set_running_time
Added new method for closing the segment to a specific running time.

API: GstSegment::gst_segment_set_running_time()
2009-06-04 12:53:20 +02:00
Tim-Philipp Müller fef7c3f2ff po: update .po files for string changes
This makes sure that people who get themselves a fresh checkout
don't immediately have changed *po files after running make, which
would cause a bit of hassle next time the files are updated. Better
to keep them up-to-date when strings change.
2009-06-04 00:59:04 +01:00
Tim-Philipp Müller 32ba8b4fb3 errors: reword state change failed error message and remove bugzilla link
Reword this message a bit to make it clearer what it means, namely that
the state change may have failed for good reasons, but that the element
just failed to post a proper error on the bus. This is not an internal
GStreamer bug, and we really don't need people to flood bugzilla with
bug reports if one such plugin bug ever makes it into the wild.
2009-06-04 00:59:03 +01:00
Tim-Philipp Müller 99a1493e69 gst-launch: refer to element, pad, or object in some message strings
Revisit these strings now that the change regarding the message source
object in gst_element_found_tags_for_pad() got reverted. Try to refer
explicitly to what kind of element it is (element, pad, etc.) in some
cases, which is nicer than having to deduce this info (and we can
re-use the already existing translated strings for the most common
case). It also makes for better example code, since it's clear now
that the message source object doesn't have to be an element.
2009-06-04 00:40:52 +01:00
Tim-Philipp Müller 604097bc3a API: add GST_MESSAGE_SRC_NAME macro
Add GST_MESSAGE_SRC_NAME macro that always returns a non-NULL string.
Useful for debugging and logging purposes.
2009-06-04 00:40:51 +01:00
Wim Taymans 92984a116b segment: add method for converting to position
Add gst_segment_to_position() that converts a running_time to a position in the
segment. A faulty variant of this function is currently used in inputselector
but we'll need it for frame stepping too.

API: GstSegment::gst_segment_to_position()
2009-06-03 19:06:30 +02:00
Wim Taymans a907f8d145 basesink; handle EOS correctly.
Handle EOS and buffers without a timestamp gracefully.
Remove a warning that is not so much a warning now anymore.
2009-06-03 15:39:13 +02:00