Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_class_init),
(gst_type_find_element_set_property),
(gst_type_find_element_get_property),
(gst_type_find_element_activate):
* plugins/elements/gsttypefindelement.h:
Cleanup properties.
Fix pad leak when peer query fails.
We can still typefind when the peer returns -1.
Add property to force caps and bypass typefinding. This will be used in
uridecodebin.
API::force-caps
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* plugins/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_init), (gst_identity_prepare_output_buffer):
Identity is not always a passthrough element, it can modify the buffer
timestamps when it has a datarate and operates in single-segment mode.
We therefore make it an in_place filter with a custom buffer prepare
function that conditionally makes the input buffer metadata writable
when needed. Fixes#523985.
Original commit message from CVS:
* plugins/elements/gstfdsink.c: (gst_fd_sink_render):
* plugins/elements/gstfdsrc.c: (gst_fd_src_create):
Also retry our poll_wait when we get EAGAIN. Fixes#524041.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (single_queue_overrun_cb),
(single_queue_underrun_cb):
When trying to make room in the queue, bump the max allowed buffers
bigger than the current amount of buffers in the queue. this fixes some
nasty deadlocks in multiqueue when dynamically changing the limits of
the queue.
Original commit message from CVS:
Patch by: Ole André Vadla Ravnås
<ole dot andre dot ravnas at tandberg dot com>
* docs/gst/gstreamer-sections.txt:
* gst/gstpoll.c: (find_index), (gst_poll_free_winsock_event),
(gst_poll_update_winsock_event_mask), (gst_poll_new),
(gst_poll_free), (gst_poll_fd_init), (gst_poll_add_fd_unlocked),
(gst_poll_remove_fd), (gst_poll_fd_ctl_write),
(gst_poll_fd_ctl_read_unlocked), (gst_poll_fd_has_closed),
(gst_poll_fd_has_error), (gst_poll_fd_can_read_unlocked),
(gst_poll_fd_can_write), (gst_poll_wait),
(gst_poll_set_controllable), (gst_poll_restart),
(gst_poll_set_flushing):
* gst/gstpoll.h:
* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_new):
* libs/gst/net/gstnettimeprovider.c: (gst_net_time_provider_start),
(gst_net_time_provider_new):
* plugins/elements/gstfdsink.c: (gst_fd_sink_start):
* plugins/elements/gstfdsrc.c: (gst_fd_src_start):
* tests/benchmarks/gstpollstress.c: (main):
* tests/check/gst/gstpoll.c: (GST_START_TEST), (gst_poll_suite):
Remove GstPollMode from the API, it does not make sense to let the
application control this.
Add support for Win32.
Fix the testsuite. Fixes#520671.
Original commit message from CVS:
* plugins/elements/gstfdsink.c: (gst_fd_sink_update_fd):
* plugins/elements/gstfdsrc.c: (gst_fd_src_update_fd):
Don't reset GstPollFDs, this is not necessary at all.
* tests/check/gst/gstpoll.c: (test_poll_wait), (GST_START_TEST),
(delayed_restart), (delayed_control):
Use GST_POLL_FD_INIT.
Original commit message from CVS:
* gst/gstpoll.c: (gst_poll_fd_init):
* gst/gstpoll.h:
Added Since tags.
* plugins/elements/gstfdsink.c: (gst_fd_sink_update_fd):
Use some more init macros.
Original commit message from CVS:
* plugins/elements/gstfdsink.c: (gst_fd_sink_start):
* plugins/elements/gstfdsrc.c: (gst_fd_src_update_fd):
Use init macros and functions.
Original commit message from CVS:
* plugins/elements/gstqueue.c:
* plugins/elements/gstqueue.h:
When dropping buffers in leaky modes, mark next buffers we sent as
DISCONT.
Original commit message from CVS:
* plugins/elements/gstfilesrc.c: (gst_file_src_map_region):
Also, if mmap() fails that would be a READ error, not OPEN_READ.
Original commit message from CVS:
* plugins/elements/Makefile.am:
* plugins/elements/gstbufferstore.c:
* plugins/elements/gstbufferstore.h:
* plugins/elements/gsttypefindelement.h:
Remove GstBufferStore, no idea why we were still building it.
It's not used anywhere and superseded by GstAdapter.
* plugins/elements/gstfilesrc.c: (gst_file_src_map_region),
(gst_file_src_create_mmap):
* plugins/indexers/gstfileindex.c: (gst_file_index_add_association):
Printf format fixes for 64-bit integers.
Original commit message from CVS:
* gst/gstconfig.h.in:
Add 'id' for example.
* gst/gstpad.c:
* gst/gstutils.c:
* plugins/elements/gstfdsink.c:
Link to signals. Doc and comment fixes.
Original commit message from CVS:
* docs/design/part-synchronisation.txt:
Update some docs.
* docs/plugins/Makefile.am:
* docs/plugins/gstreamer-plugins-docs.sgml:
* docs/plugins/gstreamer-plugins-sections.txt:
* plugins/elements/gstmultiqueue.c:
Add multiqueue to the docs.
Original commit message from CVS:
Based on Patch by: Laurent Glayal <spglegle at yahoo dot fr>
* configure.ac:
Check for stdio_ext.h for the filesink changes.
* plugins/elements/gstfilesink.c: (buffer_mode_get_type),
(gst_file_sink_class_init), (gst_file_sink_init),
(gst_file_sink_dispose), (gst_file_sink_set_property),
(gst_file_sink_get_property), (gst_file_sink_open_file),
(gst_file_sink_close_file):
* plugins/elements/gstfilesink.h:
Add two properties to control the buffering mode and size.
API: GstFileSink::buffer-mode
API: GstFileSink::buffer-size
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_event):
Be a bit smarter when seeking, like, don't try to do a seek when it's
not needed. This avoids errors when the file is not seekable.
Fixes#499771.
Original commit message from CVS:
* docs/faq/developing.xml:
Add a question about how to submit new translations.
* docs/random/release:
Update the contact email address for the Translation Project
* plugins/elements/gstfdsrc.c:
The parent_class for fdsrc is pushsrc, not GstElement.
Original commit message from CVS:
* gst/gstpreset.c:
Add some comments and TODOs.
* gst/gstpreset.h:
Add padding for future changes.
* plugins/elements/gstqueue.c:
Implement the iface.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event),
(gst_type_find_element_activate):
Post special error message if we can't determine the type of a stream
because it's empty.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_set_property),
(gst_multi_queue_request_new_pad), (gst_single_queue_flush),
(gst_multi_queue_loop), (gst_multi_queue_sink_activate_push):
Make it so that pads are considered linked until a buffer is pushed
and discovered otherwise. This avoids problems with decodebin2 hanging
after a seek in the filesrc ! decodebin2 name=d ! fakesink d. ! fakesink
case.
Make sure we lock the multiqueue when updating the max-size properties.
Fix a crash on Solaris in a debug statement in get_request_pad that
passes a NULL string to GST_DEBUG.
* tests/check/elements/multiqueue.c: (mq_dummypad_chain),
(run_output_order_test):
Fix the test to allow the first buffer on not-linked pads to come out
of sequence while multiqueue discovers that they are not-linked.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_single_queue_push_one),
(gst_single_queue_new):
* plugins/elements/gstqueue.c: (gst_queue_init),
(gst_queue_push_one):
Fix queue negotiation. If acceptcaps unconditionally returns TRUE,
upstream is tricked into thinking it can suggest a format downstream
while downstream does not support that format. The real problem is that
core calls acceptcaps when pushing a buffer with new caps, for which we
do a little workaround by setting the caps on the srcpad ourselves
before pushing the buffer (until this is figured out). Fixes#486758.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_have_type), (gst_type_find_element_init),
(gst_type_find_element_setcaps), (gst_type_find_element_chain):
Move detecting the input caps of the sinkpad to the setcaps function.
This allows us to update the output caps when we receive new input caps
instead of always using the first detected caps.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_locked_enqueue),
(gst_queue_locked_dequeue):
Comment the segment-related code... in the PROPER function.
See #482147 and my commit from yesterday.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_locked_dequeue):
Disable code that's breaking the current-time-level reporting.
See #482147
Original commit message from CVS:
Patch by: Felipe Contreras <felipe dot contreras at gmail dot com>
* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event):
First patch of code cleanups, use the macros and right arguments in the
macros to signal and lock the queue. See #480858.
Original commit message from CVS:
* plugins/elements/gstfakesink.c:
Add some debug text to error message to indicate that
we errored out on request.
* tools/gst-launch.c:
When the state change to PLAYING fails, check for an
error message on the bus and print it.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (apply_buffer),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue):
Measure queue level based on the diff between head and tail timestamps
even when pushing the first buffer.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_locked_enqueue),
(gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_push_one), (gst_queue_handle_src_query),
(gst_queue_sink_activate_push), (gst_queue_src_activate_push):
* plugins/elements/gstqueue.h:
When downstream returns UNEXPECTED from pushing a buffer, don't try to
push more buffers but allow pushing of EOS and NEWSEGMENT.
Add some more debug info here and there. Fixes#476514.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_handle_src_query):
Queue can latency to the pipeline up to the configured max size in time.
Report this fact in the latency query.
Original commit message from CVS:
* docs/random/ensonic/dynlink.txt:
More thoughs on this.
* plugins/elements/gstcapsfilter.c:
Add bugzilla ticket number to FIXME comment.
Original commit message from CVS:
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
(gst_capsfilter_transform_size), (gst_capsfilter_prepare_buf):
Fix capsfilter for cases where the caps set on capsfilter will provide
additional information.
Fixes#449197
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* plugins/elements/gstmultiqueue.c:
(gst_multi_queue_get_internal_links), (apply_buffer),
(single_queue_overrun_cb), (gst_single_queue_new):
Implement non-default GstPadIntLinkFunction for multiqueue pads so that
the pipeline layout can be tracked correctly. Fixes#453732.
Original commit message from CVS:
* plugins/elements/gsttee.c: (gst_tee_base_init),
(gst_tee_request_new_pad), (gst_tee_release_pad),
(gst_tee_find_buffer_alloc), (gst_tee_buffer_alloc),
(gst_tee_do_push), (clear_pads), (gst_tee_handle_buffer),
(gst_tee_chain):
Be a lot smarter when deciding what srcpad to use for proxying
the buffer_alloc. Also handle pad added/removed when doing so.
Fixes#357959.
Keep track of what pads we already pushed on in case we have pads
added/removed while pushing. Fixes#374639
* tests/check/Makefile.am:
* tests/check/elements/tee.c: (handoff), (GST_START_TEST),
(tee_suite):
Added unit test for pad resync.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (apply_buffer),
(single_queue_overrun_cb):
When figuring out when a queue is filled, use our internal time estimate
based on segments, just like check_full does.
Original commit message from CVS:
Patch by: Tim Angus <tim at ngus dot net>
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
(gst_capsfilter_set_property):
Take a reference instead of a copy when setting "caps".
Fix documentation to clarify this behaviour. Fixes#449414.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_init),
(gst_single_queue_flush), (apply_segment), (apply_buffer),
(gst_single_queue_push_one), (gst_multi_queue_loop),
(gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event),
(gst_multi_queue_src_activate_push), (wake_up_next_non_linked),
(compute_high_id), (gst_single_queue_new):
* plugins/elements/gstmultiqueue.h:
Take the multiqueue lock when updating the fill level so we don't get
confused.
After applying a buffer or event on the src pad segment, make sure to
call gst_data_queue_limits_changed() to get the data queue to unblock
and check the filled state again.
Rework the not-linked pad handling so the logic is that not-linked
pads can push as fast as they like, but only so they never get
ahead of any linked pads.
* tests/check/elements/multiqueue.c: (mq_sinkpad_to_srcpad),
(mq_dummypad_getcaps), (mq_dummypad_chain), (mq_dummypad_event),
(run_output_order_test), (GST_START_TEST), (multiqueue_suite):
Add a test to check that not-linked pads always stay behind
linked pads.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (apply_buffer),
(gst_single_queue_push_one), (gst_multi_queue_chain),
(gst_multi_queue_sink_event):
Make sure we don't reference the buffer/event after we have given away
ownership in the queue.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_single_queue_flush),
(gst_multi_queue_chain), (gst_multi_queue_sink_event):
Update queue state _after_ adding the item in the queue because else we
could end up being full without the element added yet.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_item_destroy),
(gst_multi_queue_item_new):
Don't use GSlice because we don't depend on >= 2.10 yet.
Original commit message from CVS:
* libs/gst/base/gstdataqueue.c: (gst_data_queue_cleanup),
(gst_data_queue_finalize), (gst_data_queue_locked_is_empty),
(gst_data_queue_set_flushing), (gst_data_queue_push),
(gst_data_queue_pop), (gst_data_queue_drop_head),
(gst_data_queue_limits_changed), (gst_data_queue_get_level):
* libs/gst/base/gstdataqueue.h:
Various cleanups.
Added methods to get the current levels and to inform the queue that the
'full' limits changed.
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_init),
(gst_multi_queue_finalize), (gst_multi_queue_set_property),
(gst_single_queue_flush), (update_time_level), (apply_segment),
(apply_buffer), (gst_single_queue_push_one),
(gst_multi_queue_item_steal_object),
(gst_multi_queue_item_destroy), (gst_multi_queue_item_new),
(gst_multi_queue_loop), (gst_multi_queue_chain),
(gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event),
(gst_multi_queue_getcaps), (gst_multi_queue_src_activate_push),
(gst_multi_queue_src_query), (single_queue_overrun_cb),
(single_queue_underrun_cb), (single_queue_check_full),
(gst_single_queue_new):
Keep track of time in the queue by measuring the difference between
running_time on input and output. This gives more accurate results and
can compensate for segments correctly.
Make a queue by default only 5 buffers deep. We will now increase the
buffer size depending on the filledness of the other queues.
Factor out commong flush code.
Make sure we don't add additional refcounts to buffers when we can avoid
it.
Propagate GstFlowReturn differently.
Use GSlice for intermediate GstMultiQueueItems.
Keep track of EOS.
Resize queues on over and underruns based on filled level of other
queues.
When checking if the queue is filled, prefer to measure in time if we
can and fall back to bytes when no time is known.
* plugins/elements/gstqueue.c:
Fix return value.
Original commit message from CVS:
* libs/gst/base/gstdataqueue.c:
* libs/gst/base/gstdataqueue.h:
* plugins/elements/gstmultiqueue.c: (gst_single_queue_push_one),
(gst_multi_queue_item_new), (gst_multi_queue_chain),
(gst_multi_queue_sink_event):
* tests/check/elements/multiqueue.c: (multiqueue_suite):
Fix multiqueue leaking buffers and events when downstream or the
queue are flushing. Make refcounting assumptions explicit and
document them (shouldn't break existing code that uses it other than
maybe leak miniobjects, but that already happens anyway). Add unit
test for the most common flushing case. Fixes#423700.
Original commit message from CVS:
* gst/gstobject.c: (gst_object_class_init):
Fix signal signature.
* gst/gstsegment.c:
Add small clarification in the api docs.
* plugins/elements/gstfilesrc.c: (gst_file_src_set_location):
States are protected with object lock.
Original commit message from CVS:
* plugins/elements/Makefile.am:
* plugins/elements/gstmultiqueue.h:
* plugins/elements/gstqueue.h:
These are not installed headers, no need for padding.
Original commit message from CVS:
* plugins/elements/gstelements.c:
* plugins/elements/gstfilesink.c: (gst_file_sink_do_seek),
(gst_file_sink_get_current_offset):
* plugins/indexers/gstindexers.c: (plugin_init):
Use #ifdef for HAVE_XYZ for consistency.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/filesink.c: (setup_filesink),
(cleanup_filesink), (GST_START_TEST), (filesink_suite):
Add some unit tests for filesink.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* plugins/elements/gstfilesink.c: (gst_file_sink_open_file),
(gst_file_sink_query), (gst_file_sink_do_seek),
(gst_file_sink_get_current_offset), (gst_file_sink_render):
* plugins/elements/gstfilesink.h:
Fix position reporting; rename data_written member to current_pos to
reflect its real meaning (fixes#412648).
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_loop):
Hello, I am Mr Taymans' personal debugger. Today I will introduce a fix
for the subtle art of warning a potentially blocking thread that it
should check the source pad return value, and relay the information
upstream.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_init),
(gst_queue_finalize), (update_time_level), (apply_segment),
(apply_buffer), (gst_queue_locked_flush),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_push_one), (gst_queue_loop):
* plugins/elements/gstqueue.h:
Refactor an cleanup queue a bit.
Do better time level calculations that also work when the srcpad is not
yet running.
Remove some unneeded debug lines.
* tests/check/elements/queue.c: (GST_START_TEST), (queue_suite):
Added testcase for time level measurement.
Try to make some stuff more racefree.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_class_init),
(update_time_level), (gst_queue_locked_flush),
(gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_push_one), (gst_queue_loop):
* plugins/elements/gstqueue.h:
Be smarter when calculating the current amount of data in the queue by
measuring the difference between start and end timestamps (in running
time) inside the queue. Fixes#432876.
API: GstQueue::pushing to notify elements that we are pushing data again
since the running signal is rather broken for this purpose.
Original commit message from CVS:
* plugins/elements/gstqueue.c (_do_init, gst_queue_signals,
gst_queue_base_init, gst_queue_init):
use GST_BOILERPLATE
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
* plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
Set the location to NULL if "file://" is set as URI. Otherwise
some random previous URI would still be set if "file://" is
set on an already used filesink/filesrc.
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
* plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
Special case the "file://" URI as as this is used by some
applications to test with gst_element_make_from_uri if there's
an element that supports the URI protocol.
Also move the g_path_is_absolute() check for the location part
of the URI to also check this for "file://localhost/bla" URIs.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad):
Don't deadlock when releasing a pad - gst_pad_set_active may try
and take the multiqueue lock too.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c:
(gst_base_sink_queue_object_unlocked), (gst_base_sink_event):
Fix leak caused when refusing newsegment after EOS.
* plugins/elements/gstfakesink.c: (gst_fake_sink_class_init),
(gst_fake_sink_init), (gst_fake_sink_set_property),
(gst_fake_sink_get_property), (gst_fake_sink_preroll),
(gst_fake_sink_render), (gst_fake_sink_change_state):
* plugins/elements/gstfakesink.h:
Add num-buffers property to make the element generate EOS after a
configurable amount of buffers.
API: fakesink::num-buffers property.
* tests/check/elements/fakesink.c: (GST_START_TEST),
(fakesink_suite):
Fix GstBus leak in test.
Test for fakesink num-buffers.
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad):
Deactivate pads and free GstSingleQueue with gst_single_queue_free()
when releasing sink pad. Fixes#425400.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_single_queue_free):
Don't leak GCond.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/multiqueue.c: (setup_multiqueue),
(GST_START_TEST), (multiqueue_suite):
Add some dead simple unit tests for the 'multiqueue' element
(some bits don't work yet and are disabled for now).
Original commit message from CVS:
* plugins/elements/gstidentity.c (gst_identity_check_imperfect_offset):
So we should use correct constants for checking for None offset.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_flushing),
(gst_base_sink_change_state):
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_default_event), (gst_base_src_unlock_stop),
(gst_base_src_deactivate):
* libs/gst/base/gstbasesrc.h:
Add ::unlock_stop to basesrc and basesink. This allows an opportunity
for sub-classes to correctly clear any state they set trying to
unlock, such as clearing out unlock commands from a command fd.
* plugins/elements/gstfdsink.c: (gst_fd_sink_class_init),
(gst_fd_sink_render), (gst_fd_sink_unlock),
(gst_fd_sink_unlock_stop):
* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init),
(gst_fd_src_init), (gst_fd_src_unlock), (gst_fd_src_unlock_stop),
(gst_fd_src_create), (gst_fd_src_get_size), (gst_fd_src_do_seek):
Implement unlock_stop in fdsrc and fdsink.
Implement seeking in fdsrc when a seekable fd is passed, as in
gst-launch-0.10 fdsrc ! ... ! xvimagesink < /path/to/file
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_finalize),
(gst_single_queue_free):
Fix small leak (free GstSingleQueue structure too, not only contents).
Original commit message from CVS:
* plugins/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_init), (gst_identity_check_perfect),
(gst_identity_check_imperfect_timestamp),
(gst_identity_check_imperfect_offset), (gst_identity_transform_ip),
(gst_identity_set_property), (gst_identity_get_property):
* plugins/elements/gstidentity.h:
Separate out check-imperfect-timestamp and check-imperfect-offset.
Put back check-perfect as it was to keep compatibility.
Original commit message from CVS:
2007-03-08 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* plugins/elements/gstidentity.c: (gst_identity_check_perfect):
Fix check for perfect stream to ignore buffers with -1
offsets/offset ends when checking data contiguity.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc),
(gst_base_transform_handle_buffer), (gst_base_transform_chain),
(gst_base_transform_activate):
* libs/gst/base/gstbasetransform.h:
Add support for dropping buffers with custom GstFlowReturn.
Set DISCONT flags on outgoing buffers based on QoS, incomming DISCONT
buffers or dropped buffers.
* docs/libs/gstreamer-libs-sections.txt:
docs for new custom return code.
* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
Use drop support in base class to implement drop-probability.
Original commit message from CVS:
2007-03-07 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* plugins/elements/gstidentity.c: (gst_identity_check_perfect):
Only post bus message at max, once per buffer received.
Original commit message from CVS:
2007-03-07 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* plugins/elements/gstidentity.c: (gst_identity_check_perfect):
Rename non-perfect to imperfect for Mike and for the sanctity of
the language.
Also make sure bus message gets emitted for data-incontiguities.
Original commit message from CVS:
2007-03-07 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* plugins/elements/gstidentity.c: (gst_identity_check_perfect),
(gst_identity_start):
* plugins/elements/gstidentity.h:
Emit bus message if check-perfect is true and we encounter a
non-perfect stream between 2 consecutive buffers.
Fixes#415394.
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
* plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
Also check for an absolute path following file:// in the filesrc
element. Remove redundant check and call g_path_is_absolute() on the
unescaped location.
Original commit message from CVS:
* gst/gstbin.h:(gst_bin_get_by_interface),
(gst_bin_iterate_all_by_interface):
Replace interface parameter name by iface as interface is
a reserved keyword in Visual Studio for C++ projects so it removes
a build error for application developpers using VS.
* plugins/elements/gstfilesrc.c:(gst_file_src_uri_set_uri):
Fix a bug on Windows in uri format check. Now the prefix checked
is file:// and next we check if the path after file:// is absolute.
* win32/common/libgstbase.def:
* win32/common/libgstdataprotocol.def:
* win32/common/libgstgstreamer.def:
Add new exported functions.
Original commit message from CVS:
2007-02-09 Andy Wingo <wingo@pobox.com>
* tests/check/pipelines/simple-launch-lines.c (test_tee): Add
tests for push and pull tee behavior.
* plugins/elements/gsttee.h:
* plugins/elements/gsttee.c: Describe has-sink-loop better, and
mark as deprecated as well as unimplemented. It was a crack idea.
Add support for tee operating in pull mode, off by default.
Original commit message from CVS:
Patch by: Michal Benes <michal dot benes at itonis dot tv>
* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
Correctly generate EOS for non-seekable files. We don't have a total
length for them and would get an unexpected end of file if we only
special-cased for regular files. (Fixes: #404569)
Original commit message from CVS:
reviewed by: Wim Taymans <wim@fluendo.com>
* plugins/elements/gstfilesink.c: (gst_file_sink_uri_set_uri):
* plugins/elements/gstfilesrc.c: (gst_file_src_uri_set_uri):
Allow file://localhost/foo/bar URLs and correctly fail for every other
hostname that one sets. This was gnomevfssrc is linked for those if
installed as it can handle it (#403172)
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_chain_do_typefinding),
(gst_type_find_element_change_state):
Don't leak found caps in chain function (no idea why that never
showed up as a leak anywhere).
Original commit message from CVS:
Patch by: Jindrich Makovicka <jindrich.makovick at itonis dot tv>
* plugins/elements/gstfilesrc.c: (gst_file_src_start):
If not using mmap'ed files try to seek to the end instead of the
start to determine whether we can seek at all. This fixes the case
of 2GB+ files over NFS, where seeks in the first 2GB can succeed but
seeks for everything afterwards fail. Fixes#400656
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c:
(gst_multi_queue_loop):
Small fix.
(single_queue_overrun_cb), (single_queue_underrun_cb),
(single_queue_check_full), (gst_single_queue_new):
Implement single queue growth system.
This uses the extra-size properties, and will grow single queues by
that much if one goes full whereas there are others empty. This is
called extra-mode in the code.
When a single queue's levels go back below the initial max-size
limits, it is no longer in extra-mode. This is to ensure we don't
consume too much memory.
Fixes#399875
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c:
(gst_multi_queue_src_activate_push), (gst_single_queue_new):
Remove previous hack of unsetting the flushing flag for the source pad
instead of activating it. Instead, fix the source pad activate function
so that it no longer depends on having a parent set or not.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c: (gst_single_queue_new):
When dynamically creating single queues, activate sinkpad before adding
it.
We should be doing the same thing for the source pad, but we can't
since it would call a method which needs the parent to be set in order
to work propertly. Instead of activating the source pad, we just unset
the flushing flag, which is the minimal requirement for adding a pad
to an element in a state greater than READY.