Original commit message from CVS:
Based on patch by: Jan David Mol <j.j.d.mol at tudelft nl>
* plugins/elements/gstfilesink.c: (gst_file_sink_class_init):
* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
(gst_file_src_map_small_region), (gst_file_src_create_mmap):
Printf fixes for gsize parameters on PPC/OSX (#369366). Also,
don't cast to long long for portability reasons, but use
GLib's types instead.
Original commit message from CVS:
* plugins/elements/gstfdsrc.c: (gst_fd_src_update_fd):
Get the arguments to lseek() the right way around.
Fixes 367677.
Original commit message from CVS:
* docs/plugins/gstreamer-plugins.args:
* docs/plugins/inspect/plugin-coreelements.xml:
* docs/plugins/inspect/plugin-coreindexers.xml:
Update element args.
* gst/gstsystemclock.c:
Small comment update.
* plugins/elements/gsttee.c: (gst_tee_class_init), (gst_tee_init),
(gst_tee_request_new_pad), (gst_tee_release_pad),
(gst_tee_buffer_alloc), (gst_tee_sink_activate_push),
(gst_tee_sink_activate_pull):
* plugins/elements/gsttee.h:
Some tee loving:
Add default property defines.
Implement release pad function.
Give properties better blubs etc.
Activate pads before adding them to a running tee.
Do simple buffer_alloc on the first requested pad.
Post error when activation fails.
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* plugins/elements/gstqueue.c: (gst_queue_chain):
Recheck queue filledness after signalling the overrun when we're about
to leak downstream because we released the lock when emitting the signal
and the queue could be empty again. Fixes#352345.
Original commit message from CVS:
2006-10-09 Zaheer Abbas Merali <zaheerabbas at merali dot org>
Patch by: Josep Torre Valles <josep@fluendo.com>
* common/m4/gst-error.m4:
Disable warning of statement not reached on Forte.
* gst/gstmessage.h:
Fix warning on Forte (value doesn't fit on enumeration).
* libs/gst/base/gstbasesink.c: (gst_base_sink_chain_unlocked):
Fix warning on Forte (value doesn't fit on enumeration).
* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
DEBUG macro says it takes minimum of 2 args and so Forte
complains about the use with just 1 arg.
* plugins/elements/gstfdsink.c:
* plugins/elements/gstfdsrc.c:
* plugins/elements/gstfilesink.c:
* plugins/elements/gstfilesrc.c:
Use correct return type for the uri handler implementations.
All these fix warnings in Forte. Fixes bug #360860.
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_open_file),
(gst_file_sink_close_file), (gst_file_sink_event),
(gst_file_sink_render):
Add some FIXME for the NEWSEGMENT handling.
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_init),
(gst_file_sink_set_location), (gst_file_sink_open_file),
(gst_file_sink_close_file), (gst_file_sink_event),
(gst_file_sink_render):
Set file to NULL when closing filesink so that we can set a new filename
in READY. Fixes#358613.
Original commit message from CVS:
* docs/pwg/building-boiler.xml:
* plugins/elements/gstcapsfilter.c:
More G_OBJECT macro fixing. Also Fix some details on the plugin-stamp
section.
Original commit message from CVS:
* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
Revert previous change; I misunderstood single-segment mode.
Original commit message from CVS:
* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
Unset DISCONT on buffers when using single-segment mode.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
Small comment update.
* plugins/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_transform_ip):
Drop-probability is broken, mention this in the code with a
FIXME and also in the property description.
Make silent also be silent about the drop messages.
Original commit message from CVS:
* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
Requesting 0 bytes before the end of the file should result in
FLOW_OK and an empty buffer, not FLOW_UNEXPECTED. Thank you
unit test.
Original commit message from CVS:
* gst/gstcaps.c: (gst_static_caps_get), (gst_caps_get_structure):
Fix useless assert, a uint is always positive.
* gst/gststructure.c: (gst_structure_nth_field_name),
(gst_structure_foreach), (gst_structure_map_in_place):
Check input arguments for public functions to avoid obvious crashes.
* plugins/elements/gstfakesink.c: (gst_fake_sink_render):
* plugins/elements/gstfakesink.h:
Do less useless typechecking.
Original commit message from CVS:
* plugins/elements/gstfilesrc.c: (gst_file_src_class_init):
Do not use mmap() by default since there are a number of error
conditions that we would like to handle in a non-fatal way that
will result in a SIGBUS if we use mmap(). Examples: external
devices (USB harddrive, portable music player) being unplugged
while in use; file on mounted CD/DVD that can't be read because
the medium is partly damaged. Fixes#348455 and #348475.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_set),
(gst_structure_id_set_valist):
* gst/gststructure.h:
Add API for setting values into structures without performing
a quark lookup, if the appropriate quark is already known.
API: gst_structure_id_set
API: gst_structure_id_set_valist
* gst/parse/grammar.y:
* gst/parse/parse.l:
Remove some dead code shown by the coverage information.
Don't throw a critical g_warning when encountering a syntax error,
just warn and let the normal error path handle it.
* plugins/elements/gstelements.c:
Bump the rank of filesink up to PRIMARY so that it is preferred over
gnomevfssink for file:// sink uri's
* tests/check/pipelines/parse-launch.c: (expected_fail_pipe),
(GST_START_TEST), (run_delayed_test),
(gst_parse_test_element_base_init),
(gst_parse_test_element_class_init), (gst_parse_test_element_init),
(gst_parse_test_element_change_state),
(gst_register_parse_element), (parse_suite):
Beef up the tests for parse syntax to check that more error cases
fail as they are supposed to. Increases the test coverage a bit.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_get_type), (gst_buffer_new),
(gst_subbuffer_get_type), (gst_buffer_create_sub):
Avoid function call for known types by keeping the buffer and
subbuffer GType global.
* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
Random silly optimisations in read() path.
Original commit message from CVS:
* plugins/elements/gstfilesrc.c: (gst_file_src_set_property):
Remove superfluous g_object_notify() calls, GObject does
that for us automatically.
Original commit message from CVS:
* gst/gstminiobject.c:
update docs
* plugins/elements/gstfdsrc.c: (gst_fd_src_set_property),
(gst_fd_src_create):
log recurring events at LOG level
add more debug for when the fd gets set
Original commit message from CVS:
* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
(gst_file_src_init), (gst_file_src_set_property),
(gst_file_src_get_property), (gst_file_src_map_region):
* plugins/elements/gstfilesrc.h:
Add "sequential" property, off by default, to use madvise and hint
to the kernel that sequential access is desired.
Touch all retrieved pages by default to ensure they are pulled
into memory. (Closes#345720)
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_message_error),
(gst_check_run_suite):
if we get the wrong message, give us the types as string
* plugins/elements/gstfilesrc.c: (gst_file_src_start):
Fix a translatable
* tests/check/elements/filesrc.c: (GST_START_TEST):
add a test for trying to open a non-existing file
Original commit message from CVS:
* configure.ac:
set CFLAGS and friends to -O0 if gcov is being used
add GCOV LIBS
* gst/Makefile.am:
* libs/gst/base/Makefile.am:
* libs/gst/check/Makefile.am:
* libs/gst/controller/Makefile.am:
* libs/gst/dataprotocol/Makefile.am:
* libs/gst/net/Makefile.am:
* plugins/elements/Makefile.am:
* plugins/indexers/Makefile.am:
add makefile rules to generate gcov data and clean up
* tests/check/Makefile.am:
add a coverage target that generates an html overview
of coverage data
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_open_file),
(gst_file_sink_close_file), (gst_file_sink_do_seek),
(gst_file_sink_event), (gst_file_sink_render):
* plugins/elements/gstfilesink.h:
Check if we can seek in the file instead of assuming
we always can. Post an error when we are asked to seek in a
non-seekable file (like a fifo). Fixes#343312.
Some cleanups.
Original commit message from CVS:
* plugins/elements/gstelements.c:
* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
(gst_file_src_init), (gst_file_src_set_property),
(gst_file_src_get_property), (gst_file_src_start):
* plugins/elements/gstfilesrc.h:
Add a use-mmap property to enable easier testing of all code paths.
Bump rank to PRIMARY, so filesrc is the preferred file reader and used
in the absence of gnomevfssrc. (Closes#340501)
Original commit message from CVS:
Patch by: Julien Moutte <julien at moutte net>
* docs/gst/gstreamer-sections.txt:
Make new GST_FLOW_IS_SUCCESS macro visible in docs.
* plugins/elements/gstfakesink.c: (gst_fake_sink_class_init),
(gst_fake_sink_preroll):
* plugins/elements/gstfakesink.h:
Add new ::preroll-handoff signal (#337100).
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_caps):
Short-circuit gst_pad_set_caps if setting the existing
caps pointer again, and avoid printing debug and
reffing/unreffing the caps.
* plugins/elements/gstqueue.c: (gst_queue_push_one):
There's actually no need to set the caps before pushing -
the acceptcaps method will handle it anyway.
Original commit message from CVS:
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
The caps intersection algorithm can produce multiple copies of the
caps. Until that is fixed, we need to simplify the result to be
sure whether the allowed caps are fixed or not.
* plugins/elements/gstqueue.c: (gst_queue_init),
(gst_queue_bufferalloc), (gst_queue_acceptcaps),
(gst_queue_push_one):
Proxied buffer alloc should not set the caps on the source pad.
When pushing buffers, we always accept the caps change that triggers.
This prevents negotiation errors caused by caps changing mid-stream
and then being refused on our source pad (because upstream is now
refusing those caps).
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_push_one):
The queue is not responsible for pushing an EOS when receiving a fatal
flow error. It's up to the real element driving the pipeline to do that.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_push_one):
The queue was posting a non-needed GST_MESSAGE_ERROR when pushing a
buffer returned a fatal error. It should just send an EOS and stop
it's task.
Upstream elements will then properly receive the GST_FLOW_UNEXPECTED
when pushing buffers on the queue and will be able to handle the event.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_chain), (gst_queue_loop),
(gst_queue_set_property):
Don't forget to signal the _chain or _loop function
when the queue size or thresholds change since that might
cause them to make progres again.
Original commit message from CVS:
Patch by: James Andrewartha <trs80 at tartarus uwa edu au>
* gst/gst.c:
* gst/gstbus.c:
* gst/gstclock.c:
* gst/gstevent.c:
* gst/gstformat.c:
* gst/gstmessage.c:
* gst/gstparse.c:
* gst/gstquery.c:
* gst/gstutils.c:
* gst/parse/Makefile.am:
* libs/gst/base/gstadapter.c:
* libs/gst/base/gstbasesrc.c:
* libs/gst/base/gstpushsrc.c:
* libs/gst/base/gsttypefindhelper.c:
* plugins/elements/gstfakesrc.c:
* plugins/elements/gstidentity.c:
Make sure gstprivate.h and/or config.h are
always included first, otherwise some of our
defines (like _FILE_OFFSET_BITS) might be
redefined in the system headers. Fixes build
on opensolaris (#340016).
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
reverted wrong change and reflowed code to avoid others falling into
this trap
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
If we get EOS before any data is accumulated, don't use
uninitialised local variables.
Original commit message from CVS:
* plugins/elements/gstfdsink.c: (gst_fd_sink_render),
(gst_fd_sink_check_fd), (gst_fd_sink_update_fd):
handle EAGAIN, EINTR and short writes correctly. Also clean
up some error cases, avoid a deadlock on bad file descriptors and
use GST_DEBUG_OBJECT.
Fixes#339843
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* plugins/elements/gstfilesink.c: (gst_file_sink_render):
Don't error out on empty buffers (#336945).
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_chain):
More debug info; when skipping typefinding, send cached
events in all cases.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_chain):
Do not typefind content if the buffers already have caps.
Neccesary for icydemux (#333657), and the right thing to do anyway.
Original commit message from CVS:
Patch by Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* plugins/elements/gstqueue.c: (gst_queue_init),
(gst_queue_locked_flush), (gst_queue_handle_sink_event),
(gst_queue_set_property):
* plugins/elements/gstqueue.h:
In queue, when EOS is received, if minimum threshold > max_size -
current_level, there is chance that queue blocks forever in conditional item
del wait. This is because the queue is not emptied completely due to minimum
threshold.
Here is another approach. Instead of setting cur_levels to max in EOS, just
zero all minimum threshold levels. This should make sure that queue gives out
all data. When going to READY (stop) state, just reset the original minimum
threshold levels.
Fixes#336336.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c: (stop_typefinding),
(gst_type_find_element_handle_event),
(gst_type_find_element_send_cached_events),
(gst_type_find_element_change_state):
* plugins/elements/gsttypefindelement.h:
When typefinding is done in push mode, we should cache
events we receive during typefinding instead of just
dropping them (e.g. newsegment, custom events from
dvdreadsrc etc.) and then send them out once we've
determined the type of the stream (and decodebin
has had a chance to plug in a decoder/demuxer).