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:
* gst/gstcaps.c: (_gst_caps_free), (gst_static_caps_get):
Add some refcount debugging.
Make gst_static_caps_get threadsafe, which is needed when autoplugging
in multiple streaming threads.
Original commit message from CVS:
Patch by: David Schleef <ds at schleef dot org>
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstadapter.c: (gst_adapter_copy):
* libs/gst/base/gstadapter.h:
API: gst_adapter_copy() that can reduce the amount of memcpy when
getting data from the adapter. Fixes#388201.
Original commit message from CVS:
* gst/gstregistrybinary.c: (gst_registry_binary_read_cache):
In print statements, "%x" is for guint. Fixes build on macosx.
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:
* gst/gst.c: (gst_init_get_option_group):
Make warning about late g_thread_init() calls a bit more explicit,
so that it's more obvious to application developers what they need
to do if a user files a bug against their application.
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:
Patch by: Carlos Sanmartin Dominguez <csanmartin@igalia.com>
* docs/manual/basics-bus.xml:
Fix example code, gst_element_unref() doesn't exist any longer.
Original commit message from CVS:
* docs/faq/gst-uninstalled:
Add gst-plugins-base/gst/utils/ to LD_LIBRARY_PATH so that plugins
depending on libgstbaseutils can work in uninstalled environment.
Original commit message from CVS:
* gst/gsttaglist.h:
* gst/gsttagsetter.c:
Add more docs regarding tag merge-modes and when to send tags. Fix 'since'
statement for new tag.
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.
Original commit message from CVS:
* tests/check/gst/gstabi.c:
* tests/check/gst/struct_hppa.h:
* tests/check/libs/libsabi.c:
* tests/check/libs/struct_hppa.h:
Add ABI structs for HPPA (see #393796).
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_abi_list):
Actually write ABI structs to the file specified in the GST_ABI
environment variable, as the message we print claims we would.
Original commit message from CVS:
* gst/gsttaglist.c: (_gst_tag_initialize):
Change tag type from STRING to DOUBLE. Apply ChangeLog surgery for my
previous two entries.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttaglist.c: (_gst_tag_initialize):
* gst/gsttaglist.h:
add tag support for beat-per-minute
Original commit message from CVS:
2007-01-13 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Allow
getrange() to return buffers with other caps, while we fix
demuxers and typefind, or otherwise change part-negotiation.txt.
Original commit message from CVS:
2007-01-12 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstbasetransform.c (gst_base_transform_activate):
Factor start/stop into this private function instead of partially
in activate functions and partially in the change_state function.
Fixes setup before the element has changed from READY->PAUSED, as
is the case in pull-mode pipelines.
(gst_base_transform_sink_activate_push)
(gst_base_transform_src_activate_pull): Refactor to use
gst_base_transform_activate().
(gst_base_transform_change_state): Removed, not needed any more.
* libs/gst/base/gstbasesink.c (gst_base_sink_negotiate_pull):
Truncate before fixating.
Original commit message from CVS:
2007-01-12 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstbasesink.c (gst_base_sink_negotiate_pull):
Don't set_caps() if the result of fixating is ANY, as it's not
supported, and not necessary in the case of a link with no
template caps on either side. Fixes tests/check/libs/basesrc in
some pull-mode tests.
Original commit message from CVS:
2007-01-12 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstbasetransform.c (_GstBaseTransformPrivate):
(gst_base_transform_init, gst_base_transform_sink_activate_push)
(gst_base_transform_src_activate_pull):
Track the activation mode.
(gst_base_transform_setcaps): In pull mode, when activating the
src pad, after activating the sink pad, activate the sink pad's
peer, as discussed in part-negotiation.txt.
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasesrc.c (gst_base_src_fixate): Add fixate
vmethod, as in basesink.
* libs/gst/base/gstbasesink.h: Reformat docs, add fixate vmethod.
* libs/gst/base/gstbasesink.c (gst_base_sink_pad_setcaps): In pull
mode, first proxy the setcaps to the peer pad.
(gst_base_sink_pad_fixate): Add a fixate function that calls the
new fixate vmethod.
(gst_base_sink_default_activate_pull): Rename from
gst_base_sink_activate_pull.
(gst_base_sink_negotiate_pull): New function, performs negotiation
in pull mode before calling ::activate_pull().
(gst_base_sink_pad_activate_pull): Actually call the activate_pull
vmethod instead of the default implementation. I have no idea how
this worked before. Negotiate before calling activate_pull.
Original commit message from CVS:
2007-01-12 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_activate_pull): Refuse to activate unlinked
sink pads in pull mode. In addition to being correct, fixes
filesrc ! decodebin ! identity ! fakesink.
(gst_pad_get_range, gst_pad_pull_range): Don't call
gst_pad_set_caps() if the caps changes; instead error out with
GST_FLOW_NOT_NEGOTIATED, as discussed in part-negotiation.txt.
Original commit message from CVS:
* libs/gst/check/gstbufferstraw.h:
* libs/gst/check/gstcheck.h:
Add G_BEGIN_DECLS and G_END_DECLS. Move GST_CHECK_MAIN where it
belongs.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* gst/gsttagsetter.c: (gst_tag_setter_merge_tags):
gst_tag_list_merge() returns a new list, so it's not the best idea
to ingore its return value. Effectively meant that tags could only
be merged on a GstTagSetter once using _merge_tags(). Fixes#395554.
Also add function guard to require a non-NULL taglist as input (has
always been so due to gst_tag_list_copy(), just making it explicit).
Original commit message from CVS:
* docs/random/draft-missing-plugins.txt:
Some additions: mention new API that is supposed to be used at the
various stages; short blob about new gst-inspect introspection
option; mention potential future problem with plugins that have
a dynamic list of elements (such as ladspa, pitfdll, libvisual).
Original commit message from CVS:
* tools/gst-inspect.c:
(print_plugin_automatic_install_info_codecs),
(print_plugin_automatic_install_info_protocols),
(print_plugin_automatic_install_info), (main):
Add --print-plugin-auto-install-info option to gst-inspect, so we can
introspect plugin files and get machine-parsable output that corresponds
to the last bit of the missing-plugin installer string (small gotcha:
doesn't take into account ranks).
Original commit message from CVS:
2007-01-10 Andy Wingo <wingo@pobox.com>
* docs/design/part-negotiation.txt: Update with, um, one way that
pull-mode negotiation might work?
* gst/gstpad.h:
* gst/gstpad.c (gst_pad_get_allowed_caps): Remove the restriction
that the pad must be a src pad; makes sense to call it the other
way in pull mode, and the logic is symmetric anyway.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad):
unref data at the end when we are done with the pad.
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_scan_path_level):
Plugin extension on HP-UX is .sl, add that to the list of approved
plugin extensions (see #393796).
* tests/check/gst/gstpad.c: (GST_START_TEST):
ulong => gulong. Fixes compilation with HP-UX compiler.
* tests/check/pipelines/parse-launch.c: (GST_START_TEST):
Fix compilation if valgrind headers are not available.
Original commit message from CVS:
* win32/common/libgstreamer.def:
Add new exported function.
* win32/vs6/libgstbase.dsp:
Add gstdataqueue.c to the build.
* win32/vs6/libgstcoreelements.dsp:
Add gstmultiqueue.c to the build.
Original commit message from CVS:
2007-01-06 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstbasesink.h: New GstBaseSinkClass vmethod,
activate_pull(), providing for a way to specialize the process of
spawning a thread to pull on the sink pad. There is a default
implementation.
* libs/gst/base/gstbasesink.c (gst_base_sink_pad_activate_pull)
(gst_base_sink_pad_activate_push, gst_base_sink_pad_activate)
(gst_base_sink_init): Renamed pad activation functions (inserting
"_pad" in their names). Refactor to use the new activate_pull
vmethod, as appropriate.
(gst_base_sink_class_init, gst_base_sink_activate_pull): Set the
default activate_pull function to start a task pulling from the
sink pad, as before.
Original commit message from CVS:
2007-01-06 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Set caps
on the pads if necessary, as in push()/chain(). Update docs.
Shouldn't affect existing pull() usage as it is currently only
being used on buffers without caps.
Original commit message from CVS:
* gst/gst.c: (gst_init_get_option_group), (gst_init_check),
(init_pre):
Call g_thread_init() first thing in gst_init() / gst_check_init().
When initialisation is done via gst_init_get_option_group() and
GOption parsing, issue a warning if the GLib thread system has not
been initialised yet by the time gst_init_get_option_group() is
called, as it's quite likely other GLib functions such as
g_option_context_new() have been called already then, and
g_thread_init() must be called before any other GLib function. The
application in question must be fixed in that case, since memory
corruption might happen otherwise.
We issue the warning because even if the GLib folks decide to work
around the problem on their end in future, this is still an issue
with all GLib versions >= 2.10.0, so we should warn until we depend
on a GLib version we know to be safe.
Update documentation as well.
Closes bug #391278.
Original commit message from CVS:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-typefind.c: (main):
* tools/gst-xmlinspect.c: (main):
Call g_thread_init() really really early, before any other GLib
function (see #342564 and recent discussion on gtk-devel-list).
Original commit message from CVS:
Patch by: Vincent Torri <vtorri at univ-evry dot fr>
* gst/gst_private.h:
* gst/gstconfig.h.in:
* gst/gstinfo.h:
On win32, all the __declspec stuff for symbol exporting is
apparently only needed with MSVC, but doesn't work with MingW.
Fixes compilation with MingW and #391909.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_activate_push):
Change some GST_ERROR_OBJECT that aren't really errors to
GST_WARNING_OBJECT in order to reduce terminal spam.