Commit graph

1128 commits

Author SHA1 Message Date
Edward Hervey c1a75a0b45 gstbasesrc: unsigned long is "%lu", not "%ul". Fixes build on macosx 2009-03-11 11:23:05 +01:00
Stefan Kost 36205e7d42 logging: some additional logging for tracing caps negotiation.
Demote one log that can come quite often. Remove one fixme that is done. Apply
gst-indent changes.
2009-03-10 21:13:40 +02:00
Stefan Kost de48f9c507 collectpads: revert accidential commit from the queue (me should start using branches) 2009-03-06 22:10:10 +02:00
Stefan Kost 436b0e7275 collectpads: reliably go to eos. Fixes #574160
Update collectpads status when removing pads.
2009-03-06 21:50:19 +02:00
Andy Wingo e2ff005e63 basesink: propagate UPSTREAM events in pull mode too
* libs/gst/base/gstbasesink.c (gst_base_sink_send_event): Propagate
  upstream events in pull mode too.
2009-03-05 17:42:22 +01:00
Edward Hervey f0481cb717 GstAdapter: Discard empty buffers in _push(). Fixes #574024 2009-03-04 09:20:43 +01:00
Stefan Kost df620c9cb6 basesink: move left over handling of the error case to the activate_failed label.
If was left as dead code.
2009-02-26 15:42:06 +02:00
Wim Taymans 79c3c6a339 Error out more specifically on empty caps
When we get empty caps from the getcaps function in the default negotiate
function, post a more descriptive error.
2009-02-23 17:37:46 +01:00
LRN 4cd4883ed3 Fix signed when compiling with MSys/MinGW
fix signed issues when compiling with MSys/MinGW.
Fixes #572591.
2009-02-23 12:33:13 +01:00
Wim Taymans 805569c873 Don't forward LATENCY event when not ready
When we are not ready to handle a latency query (we are not yet prerolled) we
also don't try to forward the latency event because that might cause unexpected
errors when upstream is not yet linked.
2009-02-23 10:53:17 +01:00
Stefan Kost e31a7709c3 controller: remove unused variable 2009-02-05 13:42:30 +02:00
Stefan Kost f207841b89 check: Don't assume gst_pad_get_peer returns non NULL value. 2009-02-04 16:07:30 +02:00
Wim Taymans d807bca61c GstBaseSink: use new variable to schedule preroll
Use a separate variable to keep track if we need to call the preroll method
instead of abusing the commited variable.
2009-02-03 15:27:34 +01:00
Wim Taymans fe4233120c GstBaseSink: avoid calling preroll multiple times
Fix a regression introduced by fix for #567725 in commit
1c7ab4ed4f. We should only call the preroll
function once namely when we did not yet commit the state change.

Add a unit test to check that we call the preroll function when interrupting the
clock_wait (see #567725).

Add a unit test to check that we only call the preroll function once.
2009-02-03 12:52:49 +01:00
Thijs Vermeir 8a080229c7 Force reconfigure of basetransform to recheck alloc request
While reconfiguring a basetransform element we need also to recheck
the alloc request. Because it's possible that due to caps changes
the proxy_alloc state is not correct anymore.
(Re-commit after discusion with Wim on IRC)
2009-02-02 18:23:41 +01:00
Wim Taymans c786c5224a Revert "Check suggested caps for proxy alloc"
This reverts commit 50afd45957.

It breaks the interactive test-scale unit test.
2009-01-30 10:45:17 +01:00
Wim Taymans a371ea6e5f Revert "Force reconfigure of basetransform to recheck alloc request"
This reverts commit 3a4602d771.

It breaks the interactive test-scale unit test.
2009-01-30 10:45:16 +01:00
Stefan Kost 45a17154b7 Add logging in failure case. Add more details to a todo comment. 2009-01-29 17:46:52 +02:00
Stefan Kost 6a310840af Add todo comments. 2009-01-29 17:46:52 +02:00
Thijs Vermeir 50afd45957 Check suggested caps for proxy alloc
Because we are trying to resolve a suggestion here we don't need
to check on caps for proxy_alloc but we need to check on the suggested
caps instead.
2009-01-29 13:58:55 +01:00
Thijs Vermeir 3a4602d771 Force reconfigure of basetransform to recheck alloc request
While reconfiguring a basetransform element we need also to recheck
the alloc request. Because it's possible that due to caps changes
the proxy_alloc state is not correct anymore.
2009-01-29 13:53:01 +01:00
Stefan Kost a91d1953a3 Don't check timestamp here, its done in the called function anyway. 2009-01-26 21:29:02 +02:00
Thijs Vermeir 3f054f1bae Fix typo 2009-01-25 18:06:44 +01:00
Thijs Vermeir 1a115bd3f7 Only free list of buffers once 2009-01-25 18:06:15 +01:00
Jan Schmidt e89ce19497 Update a bunch of gitignores to clean up my git status output 2009-01-23 16:08:40 +00:00
Wim Taymans 8620bc3295 Add new typefing helper function to guess the caps based on the file
extension. See #566661.
API: gst_type_find_helper_for_extension()
2009-01-21 12:48:18 +01:00
Wim Taymans 1c7ab4ed4f Update the last_buffer exactly with the buffer that caused the
preroll and also call the preroll method with that preroll buffer.
Fixes #567725.
2009-01-21 12:43:55 +01:00
Wim Taymans 10f9331125 libs/gst/base/gstbasesink.*: Fix documentation for the wait_clock method, rename basesink -> sink for consistency.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_wait_clock):
* libs/gst/base/gstbasesink.h:
Fix documentation for the wait_clock method, rename basesink -> sink
for consistency.
2009-01-09 15:43:17 +00:00
Wim Taymans b2052bb385 libs/gst/base/gstbasesink.c: Release the object lock before calling the query convert pad functions to avoid deadlocks.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position_last),
(gst_base_sink_get_position_paused), (gst_base_sink_get_position):
Release the object lock before calling the query convert pad functions
to avoid deadlocks.
2009-01-05 15:42:53 +00:00
Edward Hervey 8d18476d94 libs/gst/base/gstcollectpads.c: Use the name of the pads instead of a pointer, helps in debugging.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_available):
Use the name of the pads instead of a pointer, helps in debugging.
2009-01-03 18:39:38 +00:00
Stefan Kost 7dd8b92448 gst/gstdebugutils.c: Add some ideas, how to make the graph smaller.
Original commit message from CVS:
* gst/gstdebugutils.c:
Add some ideas, how to make the graph smaller.
* gst/gstutils.c:
Add a comment from a debug session.
* libs/gst/base/gstbasetransform.c:
Log more context.
* libs/gst/controller/gstinterpolationcontrolsource.c:
Indet.
* plugins/elements/gstcapsfilter.c:
Fix typo in docs.
2009-01-01 21:27:06 +00:00
Wim Taymans 1ec9399318 libs/gst/base/gstbasesink.c: Expose the render-delay as a property so things like appsink can use it to tweak the syn...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_init), (gst_base_sink_set_property),
(gst_base_sink_get_property):
Expose the render-delay as a property so things like appsink can use it
to tweak the synchronisation.
2008-12-15 12:47:59 +00:00
Peter Kjellerstedt 8b4dfd5a07 libs/gst/check/gstcheck.h: Allow check tests to use
Original commit message from CVS:
* libs/gst/check/gstcheck.h: Allow check tests to use
MAIN_START_THREADS()/MAIN_STOP_THREADS() multiple times. Also allows
CK_FORK=no to be used with multiple check test that use threads.
2008-12-10 15:19:45 +00:00
Sebastian Dröge 4e0529af25 libs/gst/check/gstcheck.c: Revert accidentially commited patch for bug #404631 which tries to print a backtrace if a ...
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_init):
Revert accidentially commited patch for bug #404631 which
tries to print a backtrace if a testcase is terminated by
a signal. This code was never activated as the corresponding
configure.ac change wasn't committed.
2008-12-09 14:46:24 +00:00
Stefan Kost 1f8d758f27 libs/gst/controller/gstcontroller.c: Aggregate return value for gst_controller_sync_values(). More info in logging. A...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Aggregate return value for gst_controller_sync_values(). More info in
logging. Always set values on first sync-call.
* libs/gst/controller/gstcontrolsource.c:
Microoptimizations.
* libs/gst/controller/gsthelper.c:
Fix return code and comment.
2008-12-09 09:56:25 +00:00
Wim Taymans b90bef8ee5 libs/gst/base/gstbasetransform.*: Add vmethod that is called before we start the transform and which can be used to c...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_getrange), (gst_base_transform_chain):
* libs/gst/base/gstbasetransform.h:
Add vmethod that is called before we start the transform and which can
be used to configure the transform, such as dynamic properties.
2008-12-08 18:35:44 +00:00
Stefan Kost 95e825900f libs/gst/base/gstbasesink.c: Turn comment into gtk-doc comment.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c:
Turn comment into gtk-doc comment.
2008-11-24 20:02:55 +00:00
Wim Taymans c577a143b9 libs/gst/base/gstbasetransform.c: Revert quick accepcaps attempt, it's not fully equivalent to the old behaviour and ...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_acceptcaps):
Revert quick accepcaps attempt, it's not fully equivalent to the old
behaviour and thus causes regressions.
2008-11-24 15:27:55 +00:00
Wim Taymans 0cca473acf libs/gst/base/gstbasetransform.c: Rename a variable to make the code clearer.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_acceptcaps):
Rename a variable to make the code clearer.
2008-11-22 15:09:20 +00:00
Wim Taymans c0e491cdca libs/gst/base/gstbasetransform.c: Add beginnings of a more optimized acceptcaps function than the default core one.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_getcaps), (gst_base_transform_find_transform),
(gst_base_transform_acceptcaps), (gst_base_transform_getrange):
Add beginnings of a more optimized acceptcaps function than the default
core one.
2008-11-21 17:14:48 +00:00
Wim Taymans 94752eaefd libs/gst/base/gstbasesink.c: Changing the render delay changes the latency and so we must post a latency message.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_render_delay):
Changing the render delay changes the latency and so we must post a
latency message.
2008-11-20 14:23:05 +00:00
Sebastian Dröge 8e8a5cbf11 libs/gst/controller/: Use gst_guint64_to_gdouble instead of gst_util_guint64_to_gdouble as it is mapped to a cast on ...
Original commit message from CVS:
* libs/gst/controller/gstinterpolation.c:
* libs/gst/controller/gstlfocontrolsource.c:
Use gst_guint64_to_gdouble instead of gst_util_guint64_to_gdouble
as it is mapped to a cast on non-win32 platforms.
2008-11-17 21:43:06 +00:00
Stefan Kost 627c40985b libs/gst/controller/: Keep last-value and only call set_property if value has changed. This supresses all the g_objec...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
* libs/gst/controller/gstcontrollerprivate.h:
Keep last-value and only call set_property if value has changed. This
supresses all the g_object_notifies we would trigger otherwise. It
also allows the user to chage the value while there is no controller
change.
2008-11-17 21:41:35 +00:00
Wim Taymans 3cc67ebab7 gst/gstbuffer.c: Avoid costly typechecking for trivially correct pointers.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_finalize):
Avoid costly typechecking for trivially correct pointers.
* gst/gstpoll.c: (gst_poll_wait):
Add some G_LIKELY here and there.
* libs/gst/base/gstadapter.c: (gst_adapter_push):
Add some debug info.
2008-11-13 18:09:45 +00:00
Wim Taymans 0a71170006 Copy seqnums from events to messages so that they can all be related back to eachother.
Original commit message from CVS:
* gst/gstbin.c: (bin_handle_async_start),
(gst_bin_handle_message_func), (gst_bin_query):
* libs/gst/base/gstbasesink.c: (gst_base_sink_render_object),
(gst_base_sink_event), (gst_base_sink_change_state):
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_loop), (gst_base_src_change_state):
Copy seqnums from events to messages so that they can all be related
back to eachother.
2008-11-04 15:56:55 +00:00
David Schleef 6de992cf71 libs/gst/net/Makefile.am: Add WIN32_LIBS to libgstnet LIBADD. Fixes #557300.
Original commit message from CVS:
Patch by: David Schleef  <ds@schleef.org>
* libs/gst/net/Makefile.am:
Add WIN32_LIBS to libgstnet LIBADD. Fixes #557300.
2008-11-03 10:59:49 +00:00
Wim Taymans 8798ea2cca libs/gst/base/gstbasetransform.c: If we have a fixate function, call it even if we already have fixed caps because th...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_find_transform), (gst_base_transform_getrange):
If we have a fixate function, call it even if we already have fixed caps
because the subclass might add some caps. Makes audioconvert add a
default channel layout.
2008-10-27 15:02:48 +00:00
Wim Taymans 8d871b9c1d libs/gst/base/gstbasetransform.c: Clear the output buffer variable.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_getrange):
Clear the output buffer variable.
Cleanups to the error path in the getrange function.
Fixes #557649.
2008-10-24 09:41:19 +00:00
Sebastian Dröge d3cb47b923 libs/gst/base/gstbytereader.c: Use GST_(READ|WRITE)_(FLOAT|DOUBLE)_(LE|BE) instead of our own copies of them.
Original commit message from CVS:
* libs/gst/base/gstbytereader.c:
Use GST_(READ|WRITE)_(FLOAT|DOUBLE)_(LE|BE) instead of our own
copies of them.
2008-10-23 07:11:54 +00:00
Sebastian Dröge 61ee0f414a API: Add gst_byte_reader_get_data and gst_byte_reader_peek_data to get a pointer to the data at the current position ...
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbytereader.c: (gst_byte_reader_get_data),
(gst_byte_reader_peek_data):
* libs/gst/base/gstbytereader.h:
* win32/common/libgstbase.def:
API: Add gst_byte_reader_get_data and gst_byte_reader_peek_data
to get a pointer to the data at the current position and have
a guaranteed size.
2008-10-22 14:47:04 +00:00
Jan Schmidt 446e8cb5e6 libs/gst/base/: Fix the names of 2 functions in the docs strings.
Original commit message from CVS:
* libs/gst/base/gstbitreader.c:
* libs/gst/base/gstbytereader.c:
Fix the names of 2 functions in the docs strings.
2008-10-22 13:47:20 +00:00
Wim Taymans f59b56f75d libs/gst/base/gstbasetransform.c: Protect sink_alloc caps with the sinkpad lock to avoid nasty caps refcount problems...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_buffer_alloc), (gst_base_transform_suggest):
Protect sink_alloc caps with the sinkpad lock to avoid nasty caps
refcount problems as seen in banshee and maybe also in farsight2.
Remove atomic int now that we need to take the lock anyways.
2008-10-21 16:30:41 +00:00
Wim Taymans ca9ccf1d02 libs/gst/base/gstbasesink.c: Implement more seeking in pull mode.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_default_do_seek),
(gst_base_sink_default_prepare_seek_segment),
(gst_base_sink_perform_seek), (gst_base_sink_get_position_last),
(gst_base_sink_get_position_paused), (gst_base_sink_get_position),
(gst_base_sink_query):
Implement more seeking in pull mode.
Use pad convert functions to convert position to the requested format.
Fix position/duration reporting in pull mode.
Implement position and duration reporting in other formats than time.
* libs/gst/base/gstbasesink.h:
Add member to keep track of when the segment is playing.
2008-10-20 15:18:14 +00:00
Wim Taymans b8609a7a76 libs/gst/base/gstbasesrc.c: Update comment.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
Update comment.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_handle_buffer),
(gst_base_transform_reconfigure):
Add some debug info.
* win32/common/libgstbase.def:
Add new method.
2008-10-20 13:29:06 +00:00
Stefan Kost 7198e34ee1 libs/gst/base/gstbasesrc.c: (gst_base_src_default_do_seek);
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_default_do_seek);
Remove duplicated assignment and log a message in failure case.
2008-10-19 19:57:25 +00:00
Wim Taymans 4561f3bf47 libs/gst/base/gstbasesink.c: Query the total number of bytes when activating the pad in pull mode.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_pad_activate_pull),
(gst_base_sink_query):
Query the total number of bytes when activating the pad in pull mode.
Implement duration query in pull mode by using the installed pad convert
function to convert from bytes to the requested format.
2008-10-17 13:27:59 +00:00
Wim Taymans fe07568997 Add method to commit the state in subclasses.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_preroll),
(gst_base_sink_flush_start), (gst_base_sink_flush_stop),
(gst_base_sink_event), (gst_base_sink_perform_seek),
(gst_base_sink_loop), (gst_base_sink_pad_activate_pull),
(gst_base_sink_send_event), (gst_base_sink_change_state):
* libs/gst/base/gstbasesink.h:
Add method to commit the state in subclasses.
Refactor the flush_start and flush_stop code because we need it for
flushing while seeking too.
Implement the beginnings of seeking in pull mode.
Use the segment last_stop field for the pulling offset.
Fix the pause method in pull mode.
Configure the segment to BYTES for pull mode.
API: GstBaseSink::gst_base_sink_do_preroll()
2008-10-16 14:09:18 +00:00
Wim Taymans 63b0da36b5 libs/gst/base/gstbasesrc.c: Update some docs.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init):
Update some docs.
2008-10-16 13:56:52 +00:00
Wim Taymans a739ae387d docs/design/part-negotiation.txt: Update the docs some more.
Original commit message from CVS:
* docs/design/part-negotiation.txt:
Update the docs some more.
* libs/gst/base/gsttypefindhelper.c: (helper_find_peek):
If we pull a buffer with non-trivial caps, suggest those caps with the
max probability.
2008-10-10 15:12:11 +00:00
Wim Taymans bc8e367885 gst/gstbin.c: The message src can be NULL, don't try to print the object names in that case.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_remove_func), (update_degree),
(gst_bin_handle_message_func):
The message src can be NULL, don't try to print the object names in that
case.
* libs/gst/base/gstbasesink.c: (gst_base_sink_pad_activate):
Add some more debug info.
* tests/check/pipelines/simple-launch-lines.c: (run_pipeline),
(GST_START_TEST):
Add some debug.
Fix the test, pull based sinks go ASYNC to PAUSED, just like other
scheduling modes.
2008-10-10 10:38:12 +00:00
Wim Taymans b3403511ea docs/design/part-negotiation.txt: Small doc update.
Original commit message from CVS:
* docs/design/part-negotiation.txt:
Small doc update.
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_pad_getcaps), (gst_base_sink_pad_setcaps),
(gst_base_sink_init), (gst_base_sink_set_blocksize),
(gst_base_sink_get_blocksize), (gst_base_sink_set_property),
(gst_base_sink_get_property), (gst_base_sink_needs_preroll),
(gst_base_sink_loop), (gst_base_sink_pad_activate),
(gst_base_sink_negotiate_pull), (gst_base_sink_pad_activate_pull),
(gst_base_sink_change_state):
* libs/gst/base/gstbasesink.h:
Add blocksize property and methods to control the amount of data
to pull.
Negotiate first before activating upstream in pull mode so that they can
negotiate themselves.
When we operate in pull mode, we only accept the caps that we
negotiated.
Make the sink go ASYNC to PAUSED, like all other sinks.
API: GstBaseSink::gst_base_sink_set_blocksize()
API: GstBaseSink::gst_base_sink_get_blocksize()
API: GstBaseSink::blocksize
* libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing),
(gst_base_src_set_live), (gst_base_src_is_live),
(gst_base_src_set_format), (gst_base_src_query_latency),
(gst_base_src_set_blocksize), (gst_base_src_get_blocksize),
(gst_base_src_set_do_timestamp), (gst_base_src_get_do_timestamp),
(gst_base_src_set_property), (gst_base_src_get_property):
* libs/gst/base/gstbasesrc.h:
Add typechecking in public API functions.
Add methods to control the blocksize in subclasses.
API: GstBaseSrc::gst_base_src_set_blocksize()
API: GstBaseSrc::gst_base_src_get_blocksize()
2008-10-10 10:01:36 +00:00
Wim Taymans 1fb53a23a1 libs/gst/base/gstbasesink.c: Forward LATENCY events upstreams so that elements know about the total pipeline latency....
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_send_event):
Forward LATENCY events upstreams so that elements know about the total
pipeline latency. Fixes #555307.
2008-10-08 14:21:13 +00:00
Sebastian Dröge 2ba1f3a6a2 libs/gst/base/gstbytereader.c: Use new GST_READ_UINT24_(LE|BE) macros.
Original commit message from CVS:
* libs/gst/base/gstbytereader.c: (gst_byte_reader_get_uint24_le),
(gst_byte_reader_get_uint24_be), (gst_byte_reader_get_int24_le),
(gst_byte_reader_get_int24_be), (gst_byte_reader_peek_uint24_le),
(gst_byte_reader_peek_uint24_be), (gst_byte_reader_peek_int24_le),
(gst_byte_reader_peek_int24_be):
Use new GST_READ_UINT24_(LE|BE) macros.
2008-10-07 12:26:40 +00:00
Sebastian Dröge b377c58e43 Add bit reader and byte reader classes, including documentation and an extensive unit test suite. Fixes bug #553554.
Original commit message from CVS:
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/Makefile.am:
* libs/gst/base/gstbitreader.c: (gst_bit_reader_new),
(gst_bit_reader_new_from_buffer), (gst_bit_reader_free),
(gst_bit_reader_init), (gst_bit_reader_init_from_buffer),
(gst_bit_reader_set_pos), (gst_bit_reader_get_pos),
(gst_bit_reader_get_remaining), (gst_bit_reader_skip),
(gst_bit_reader_skip_to_byte):
* libs/gst/base/gstbitreader.h:
* libs/gst/base/gstbytereader.c: (GDOUBLE_SWAP_LE_BE),
(GFLOAT_SWAP_LE_BE), (gst_byte_reader_new),
(gst_byte_reader_new_from_buffer), (gst_byte_reader_free),
(gst_byte_reader_init), (gst_byte_reader_init_from_buffer),
(gst_byte_reader_set_pos), (gst_byte_reader_get_pos),
(gst_byte_reader_get_remaining), (gst_byte_reader_skip),
(gst_byte_reader_get_uint8), (gst_byte_reader_get_int8),
(gst_byte_reader_peek_uint8), (gst_byte_reader_peek_int8),
(gst_byte_reader_get_uint24_le), (gst_byte_reader_get_uint24_be),
(gst_byte_reader_get_int24_le), (gst_byte_reader_get_int24_be),
(gst_byte_reader_peek_uint24_le), (gst_byte_reader_peek_uint24_be),
(gst_byte_reader_peek_int24_le), (gst_byte_reader_peek_int24_be):
* libs/gst/base/gstbytereader.h:
* tests/check/Makefile.am:
* tests/check/libs/bitreader.c: (GST_START_TEST),
(gst_bit_reader_suite):
* tests/check/libs/bytereader.c: (GST_START_TEST),
(gst_byte_reader_suite):
Add bit reader and byte reader classes, including documentation
and an extensive unit test suite. Fixes bug #553554.
2008-10-06 12:41:53 +00:00
Wim Taymans a4b27adb00 libs/gst/base/gstbasesink.c: Improve position reporting while flushing and other intermediate state changes. Fixes #5...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position),
(gst_base_sink_query):
Improve position reporting while flushing and other intermediate state
changes. Fixes #553874.
2008-10-06 08:58:25 +00:00
Jan Schmidt 86db1f680c Fix assertion in basetransform when the subclass chooses not to allocate a buffer in prepare_buffer(), and make capsf...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
* plugins/elements/gstcapsfilter.c:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/capsfilter.c:
Fix assertion in basetransform when the subclass chooses not to
allocate a buffer in prepare_buffer(), and make capsfilter error out
cleanly if requested to apply caps that don't completely specify the
buffer. Fixes #551509
2008-09-28 21:19:15 +00:00
Wim Taymans c2552e7d0d libs/gst/base/gstbasetransform.c: Take new caps ref because our old one might have been gone when the subclass perfor...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer):
Take new caps ref because our old one might have been gone when the
subclass performs a gst_pad_set_caps() on the srcpad. See #548764.
2008-09-24 15:03:40 +00:00
Wim Taymans f0ce6a40ad libs/gst/base/gstbasesrc.c: Use the result from gst_pad_set_caps() instead of assuming the element always accepted th...
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
Use the result from gst_pad_set_caps() instead of assuming the element
always accepted the caps computed by the default negotiate function.
2008-08-21 11:17:05 +00:00
Wim Taymans 8337ce91aa Implement method for reconfiguring basetransform.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_handle_buffer), (gst_base_transform_getrange),
(gst_base_transform_chain), (gst_base_transform_suggest),
(gst_base_transform_reconfigure):
* libs/gst/base/gstbasetransform.h:
Implement method for reconfiguring basetransform.
API: GstBaseTransform::gst_base_transform_reconfigure()
2008-08-20 10:52:09 +00:00
Wim Taymans e93b94afdf libs/gst/base/gstbasesink.c: Improve position reporting in the flushing state.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_render_object),
(gst_base_sink_event), (gst_base_sink_chain_unlocked),
(gst_base_sink_negotiate_pull), (gst_base_sink_pad_activate_pull),
(gst_base_sink_get_position), (gst_base_sink_change_state):
Improve position reporting in the flushing state.
Also report the position when we are not yet prerolled but we
have a newsegment event. Fixes #543444.
Improve the pull-based negotiation code.
* tests/check/elements/fakesink.c: (GST_START_TEST),
(fakesink_suite):
Add testcase for position reporting while flushing in PAUSED and
PLAYING.
* tests/check/generic/sinks.c: (GST_START_TEST):
Update unit-test, we can now query the position as soon as we receive a
NEWSEGMENT event.
2008-08-19 16:47:07 +00:00
Jason Zhao b981ec6e09 libs/gst/base/gstbasesink.c: When the subclass event handler releases the PREROLL_LOCK, we could be in the flushing s...
Original commit message from CVS:
Based on patch by: Jason Zhao <e3423c at motorola dot com>
* libs/gst/base/gstbasesink.c: (gst_base_sink_render_object):
When the subclass event handler releases the PREROLL_LOCK, we could be
in the flushing state and we have to ignore the event. Fixes #548394.
2008-08-19 08:52:05 +00:00
Wim Taymans 077d96dec3 libs/gst/base/gstbasetransform.c: If the element is configured in passthrough mode but the prepare_output_buffer gave...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer):
If the element is configured in passthrough mode but the
prepare_output_buffer gave us a new output buffer, discard that buffer
and reuse the input buffer.
2008-08-18 09:59:18 +00:00
Wim Taymans e580f95831 libs/gst/base/gstbasetransform.c: Go over the buffer_alloc function again and make sure we always end up allocating a...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_buffer_alloc):
Go over the buffer_alloc function again and make sure we always end up
allocating a buffer.
Add some more docs.
Avoid doing pad alloc when we have a pending suggestion because we
cannot yet deal with changing caps in that case. Fixes #547728
2008-08-14 16:37:29 +00:00
Wim Taymans dc9983cbea libs/gst/base/gstbasetransform.c: Don't overwrite the outsize when calculating the expected size of a new buffer beca...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps),
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_buffer_alloc), (gst_base_transform_suggest):
Don't overwrite the outsize when calculating the expected size of a new
buffer because we still need it in case we cannot process the new
buffer.
When converting the size of the new buffer to an upstream size, actually
use the expected size of the buffer, not some other random value.
Use an atomic int to signal that a new upstream caps suggestion is
available.
When we can convert the current buffer to a new format, check if the
buffer size is of the expected size and allocate a new buffer of the
expected size when this is not the case.
* tests/check/libs/transform1.c: (GST_START_TEST):
remove ifdeffed code from the unit test.
2008-08-14 13:57:58 +00:00
Stefan Kost 4711f2c4fa libs/gst/base/: Fix headings in docs and gtk-doc warnings.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c:
* libs/gst/base/gstbasetransform.c:
Fix headings in docs and gtk-doc warnings.
2008-08-12 06:16:02 +00:00
Edward Hervey 6b16636203 libs/gst/base/gstbasetransform.c: Fix a "may be used unitialized" warning.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Fix a "may be used unitialized" warning.
2008-08-11 15:14:28 +00:00
Wim Taymans 30f8603645 docs/libs/gstreamer-libs-sections.txt: Add new function:
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
Add new function:
API: GstBaseTransform::gst_base_transform_suggest()
* libs/gst/base/gstbasetransform.c: (gst_base_transform_finalize),
(gst_base_transform_init), (gst_base_transform_transform_caps),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps),
(gst_base_transform_can_transform),
(gst_base_transform_find_transform), (gst_base_transform_setcaps),
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer), (gst_base_transform_getrange),
(gst_base_transform_chain), (gst_base_transform_activate),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough),
(gst_base_transform_set_in_place),
(gst_base_transform_is_in_place), (gst_base_transform_update_qos),
(gst_base_transform_set_qos_enabled),
(gst_base_transform_is_qos_enabled),
(gst_base_transform_set_gap_aware), (gst_base_transform_suggest),
(gst_base_transform_reconfigure):
* libs/gst/base/gstbasetransform.h:
Rewrite of basetransform to perform negotiation outside of the
buffer_alloc functions.  Fixes #545853.
* tests/check/libs/transform1.c: (GST_START_TEST),
(buffer_alloc_ct2):
Update unit test.
2008-08-05 11:11:00 +00:00
Michael Smith e240fcbcaa Build the net library if we have winsock2.
Original commit message from CVS:
* configure.ac:
* libs/gst/Makefile.am:
Build the net library if we have winsock2.
2008-07-29 00:45:29 +00:00
Thijs Vermeir 100b75f909 libs/gst/base/gstbasesrc.h: revert the changes to the header file for the ABI.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.h:
revert the changes to the header file for the ABI.
2008-07-24 15:13:24 +00:00
Thijs Vermeir 4d9689b66a libs/gst/base/gstbasesrc.*: Don't cache the seekable status.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c:
* libs/gst/base/gstbasesrc.h:
Don't cache the seekable status.
Fixes bug #544174
2008-07-24 14:47:58 +00:00
Sebastian Dröge 10caec03ce libs/gst/controller/gstinterpolationcontrolsource.c: Don't use declarations after statements.
Original commit message from CVS:
* libs/gst/controller/gstinterpolationcontrolsource.c:
(_list_find_sorted_custom):
Don't use declarations after statements.
2008-07-08 11:20:22 +00:00
Sebastian Dröge 05d13e84ea libs/gst/dataprotocol/dataprotocol.c: Don't write to the same region of memory as a uint64 and uint16 as this breaks ...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
Don't write to the same region of memory as a uint64 and uint16
as this breaks strict aliasing rules and apparantly breaks on PPC
and s390. Thanks to Sjoerd Simons for analysing. Fixes bug #348114.
2008-06-30 09:38:45 +00:00
Stefan Kost b1b4a78ffc libs/gst/controller/gstinterpolationcontrolsource.c: Optimize list handling. Use own find function. Exploit that fact...
Original commit message from CVS:
* libs/gst/controller/gstinterpolationcontrolsource.c:
Optimize list handling. Use own find function. Exploit that fact that
the list is sorted. Also pass back the node before, so that we can
insert quickly. Have a fast path for append.
2008-06-29 16:11:24 +00:00
Thijs Vermeir 8442b73552 docs/libs/gstreamer-libs-sections.txt: Add new API to doc
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
Add new API to doc
* libs/gst/check/gstcheck.c:
* libs/gst/check/gstcheck.h:
API: gst_check_teardown_pad_by_name
2008-06-21 21:20:13 +00:00
Thijs Vermeir 46b1c45181 libs/gst/check/gstcheck.*: Also setup request pads and allow setup pads by name (#537812)
Original commit message from CVS:
* libs/gst/check/gstcheck.c:
* libs/gst/check/gstcheck.h:
Also setup request pads and allow setup pads by name (#537812)
API: gst_check_setup_src_pad_by_name
API: gst_check_setup_sink_pad_by_name
2008-06-21 19:48:53 +00:00
Wim Taymans bfb7bace38 libs/gst/base/gsttypefindhelper.c: Increase code readability.
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (helper_find_peek):
Increase code readability.
Don't try to compare buffer offsets when ther are invalid.
2008-06-20 11:24:03 +00:00
Wim Taymans 6624a8de12 Add method to allow sinks to specify additional delay between the sync times and the actual rendering of the data.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_query_latency), (gst_base_sink_set_render_delay),
(gst_base_sink_get_render_delay), (gst_base_sink_wait_eos),
(gst_base_sink_do_sync):
* libs/gst/base/gstbasesink.h:
* win32/common/libgstbase.def:
Add method to allow sinks to specify additional delay between the sync
times and the actual rendering of the data.
API: gst_base_sink_set_render_delay()
API: gst_base_sink_get_render_delay()
2008-06-20 08:54:45 +00:00
Stefan Kost 8d6056b7b1 libs/gst/controller/gstcontroller.c: Revert one change, that make ret value possible uninitialized.
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Revert one change, that make ret value possible uninitialized.
2008-06-20 08:36:46 +00:00
Stefan Kost 73151ffc11 libs/gst/controller/gstcontroller.c: Use freeze/thaw notify to sync notify emission a bit (its also more efficient). ...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Use freeze/thaw notify to sync notify emission a bit (its also more
efficient). Move debug output to LOG (is called a lot in a loop).
Always unset g_values if the have been initialized.
2008-06-20 08:32:36 +00:00
Wim Taymans 8cd06f8770 libs/gst/base/gstbasesink.c: If we have not seen a buffer before EOS, use the segment values to report the current po...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_wait_eos), (gst_base_sink_event):
If we have not seen a buffer before EOS, use the segment values to
report the current position instead of invalid positions.
2008-06-20 08:28:46 +00:00
Stefan Kost 27243ac326 Rewrite handling of default values. Fix overflow with unsigned types in linear interpolation. Remove now obsolete _fi...
Original commit message from CVS:
* libs/gst/controller/gstinterpolation.c:
* libs/gst/controller/gstinterpolationcontrolsource.c:
* tests/check/libs/controller.c:
Rewrite handling of default values. Fix overflow with unsigned types
in linear interpolation. Remove now obsolete _first_value() function.
Add more tests. Fixes #538201.
2008-06-20 08:17:08 +00:00
Wim Taymans 1380508f53 libs/gst/base/gstbasetransform.c: Add debug info.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_class_init), (gst_base_transform_init),
(gst_base_transform_transform_caps),
(gst_base_transform_prepare_output_buffer):
Add debug info.
When a buffer is writable, its metadata is also writable so we don't
need to subbuffer (which then makes the buffer not-writable anymore).
2008-06-20 08:14:23 +00:00
Wim Taymans f01c4d6201 libs/gst/base/gstbasesink.c: Add some debug.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_async_enabled),
(gst_base_sink_set_ts_offset), (gst_base_sink_perform_qos):
Add some debug.
Make sure we don't generate invalid QoS messages.
2008-06-04 11:47:16 +00:00
Wim Taymans a866e9d33b libs/gst/base/gstbasesink.c: The reported position must always be smaller than the last seen timestamps (or timestamp...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_get_position):
The reported position must always be smaller than the last seen
timestamps (or timestamp + duration for reverse).
2008-05-30 15:48:52 +00:00
Wim Taymans 5cba5bdbf1 libs/gst/base/gstbasesink.c: Fix position query range checks in reverse playback.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_get_position_last), (gst_base_sink_get_position):
Fix position query range checks in reverse playback.
2008-05-29 16:34:22 +00:00
Bjarne Rosengren eae0c4cb9a libs/gst/base/gstbasesrc.c: Make sending an EOS event to the basesrc non-blocking even if the implementation does blo...
Original commit message from CVS:
Based on patch by: Bjarne Rosengren <bjarne at axis dot com>
* libs/gst/base/gstbasesrc.c: (gst_base_src_send_event),
(gst_base_src_get_range), (gst_base_src_pad_get_range),
(gst_base_src_loop), (gst_base_src_set_flushing),
(gst_base_src_change_state):
Make sending an EOS event to the basesrc non-blocking even if the
implementation does blocking waits in the create function. This is done
by unlocking the create function when EOS is sent.
Fixes #535218.
2008-05-28 13:48:17 +00:00
Stefan Kost e3399e60a2 libs/gst/controller/gstcontroller.c: Add parameter guards.
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
Add parameter guards.
2008-05-27 20:19:17 +00:00
Sjoerd Simons 98faaeb7f4 libs/gst/base/gstbasesink.c: If nothing else can be used, use the last buffer's start time as the segment's last stop...
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
If nothing else can be used, use the last buffer's start time as
the segment's last stop. Fixes bug #534258.
2008-05-22 08:33:27 +00:00
Wim Taymans cc8334905c Don't use gst_element_get_pad().
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_load_and_link):
* gst/gstutils.c: (gst_element_link_pads),
(gst_element_unlink_pads):
* libs/gst/check/gstcheck.c: (gst_check_setup_src_pad),
(gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
(gst_check_teardown_sink_pad),
(gst_check_element_push_buffer_list):
* tests/check/elements/fakesink.c: (GST_START_TEST):
* tests/check/elements/filesink.c:
* tests/check/elements/filesrc.c: (GST_START_TEST):
* tests/check/elements/multiqueue.c: (setup_multiqueue),
(mq_sinkpad_to_srcpad):
* tests/check/elements/tee.c: (GST_START_TEST):
* tests/check/generic/sinks.c: (GST_START_TEST):
* tests/check/gst/gstbin.c: (GST_START_TEST):
* tests/check/gst/gstevent.c: (GST_START_TEST):
* tests/check/gst/gstghostpad.c: (GST_START_TEST):
* tests/check/gst/gstpipeline.c: (GST_START_TEST):
* tests/check/gst/gstquery.c: (GST_START_TEST):
* tests/check/gst/gstutils.c: (GST_START_TEST):
* tests/check/libs/basesrc.c: (GST_START_TEST):
* tests/check/pipelines/parse-launch.c: (run_delayed_test),
(gst_parse_test_element_change_state):
Don't use gst_element_get_pad().
2008-05-21 15:57:52 +00:00
Tim-Philipp Müller b4636b46bb libs/gst/base/gstbasetransform.c: Unref events that the GstBaseTransform::event vfunc didn't want to have forwarded b...
Original commit message from CVS:
Patch by: Tim-Philipp Müller  <tim.muller at collabora co uk>
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_event):
Unref events that the GstBaseTransform::event vfunc didn't want to
have forwarded by the base class. Closes a leak in identity.
Fixes bug #446763.
2008-05-20 08:28:24 +00:00