plugins/elements/gsttypefindelement.c: Fix leaking element factories in typefinding.

Original commit message from CVS:
* plugins/elements/gsttypefindelement.c: (find_peek),
(gst_type_find_element_chain):
Fix leaking element factories in typefinding.
Fix problem where we forgot about a probable type on non-seekable
files, and thus later mis-typefound it.
This commit is contained in:
Michael Smith 2005-12-09 17:26:31 +00:00
parent 5bff908d58
commit 88e514af33
3 changed files with 23 additions and 4 deletions

View file

@ -1,3 +1,21 @@
2005-12-09 Michael Smith <msmith@fluendo.com>
* plugins/elements/gsttypefindelement.c: (find_peek),
(gst_type_find_element_chain):
Fix leaking element factories in typefinding.
Fix problem where we forgot about a probable type on non-seekable
files, and thus later mis-typefound it.
2005-12-09 Michael Smith <msmith@fluendo.com>
* common/m4/gst-makecontext.m4:
* common/m4/gst-mcsc.m4:
* configure.ac:
* win32/common/config.h:
* win32/common/config.h.in:
Remove makecontext stuff; not used in 0.10 and causes problems on
HPUX according to bug #322441
2005-12-07 Wim Taymans <wim@fluendo.com>
* tests/check/Makefile.am:

2
common

@ -1 +1 @@
Subproject commit 8678649bd612dcd040126bdcfb3a640974c86950
Subproject commit 4edc214072fe07d2aade96bc336493425654d7b4

View file

@ -550,6 +550,7 @@ find_peek (gpointer data, gint64 offset, guint size)
return NULL;
if (size <= entry->self->store->size) {
entry->requested_size = 0;
return GST_BUFFER_DATA (entry->self->store);
} else {
entry->requested_size = size;
@ -628,15 +629,15 @@ gst_type_find_element_chain (GstPad * pad, GstBuffer * buffer)
all_factories = g_list_sort (all_factories, compare_type_find_factory);
walk = all_factories;
while (all_factories) {
while (walk) {
entry = new_entry ();
entry->factory = GST_TYPE_FIND_FACTORY (all_factories->data);
entry->factory = GST_TYPE_FIND_FACTORY (walk->data);
entry->self = typefind;
entry->probability = 0;
typefind->possibilities =
g_list_prepend (typefind->possibilities, entry);
all_factories = g_list_next (all_factories);
walk = g_list_next (walk);
}
gst_plugin_feature_list_free (all_factories);
}