[Swfdec-commits] 2 commits - ChangeLog swfdec/swfdec_movie_asprops.c swfdec/swfdec_player.c

Benjamin Otte company at kemper.freedesktop.org
Tue Apr 1 04:50:11 PDT 2008


 ChangeLog                     | 2012 ------------------------------------------
 swfdec/swfdec_movie_asprops.c |    5 
 swfdec/swfdec_player.c        |  104 ++
 3 files changed, 111 insertions(+), 2010 deletions(-)

New commits:
commit d672757397707bf546c0e735bf97ab9755c02dcc
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Apr 1 13:46:30 2008 +0200

    replace ChangeLog with a useful message about where our changelog is

diff --git a/ChangeLog b/ChangeLog
index ad67c57..164197f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,2008 +1,4 @@
-2006-01-22  David Schleef  <ds at schleef.org>
-
-	* README:
-	* plugin/plugin.c:
-	  Update some words.
-
-2006-01-22  David Schleef  <ds at schleef.org>
-
-	* plugin/Makefile.am:
-	  Don't link against mozilla libs, since we don't actually
-	  use them.
-
-2006-01-09  David Schleef  <ds at schleef.org>
-
-	* NEWS: update the news
-	* configure.ac: bump version
-
-2006-01-09  David Schleef  <ds at schleef.org>
-
-	* configure.ac: remove more player bits
-	* player/.cvsignore:
-
-2006-01-09  David Schleef  <ds at schleef.org>
-
-	* INSTALL: updated by autoconf.
-	* configure.ac: we only use pkg-config to detect mozilla now.
-	  start using gstreamer-0.10.  Remove SDL check.
-	* Makefile.am: remove SDL player subdir
-	* libswfdec/actions_tags.c: add audio_stop_sounds()
-	* libswfdec/proto.h: add protect()
-	* libswfdec/swf.c: disable experimental code by default
-	* libswfdec/swfdec_audio.c: implement audio_stop_sounds()
-	* libswfdec/swfdec_audio.h: same
-	* libswfdec/swfdec_image.c: handle jpegtables better
-	* libswfdec/swfdec_render.c: change ERROR to DEBUG
-	* libswfdec/swfdec_tag.c: implement protect
-	* plugin/gstswfdec.c: hacking to make plugin better
-	* plugin/swfdec-mozilla-player.c: same
-	* test/Makefile.am: disable some tests that don't compile
-	* player/Makefile.am: remove SDL player
-	* player/swf_play.c: remove SDL player
-
-2006-01-09  David Schleef  <ds at schleef.org>
-
-	* plugin/Makefile.am:
-	* plugin/gstappsrc.c:
-	* plugin/gstappsrc.h:
-	* plugin/gstswfdec.c:
-	* plugin/gstswfdec.h:
-	* plugin/plugin.c:
-	* plugin/swfdec-mozilla-player.c:
-	  Dude, the mojira plugin all works and shit.
-
-2006-01-08  David Schleef  <ds at schleef.org>
-
-	* plugin/Makefile.am:
-	* plugin/gstswfdec.c:
-	* plugin/gstswfdec.h:
-	* plugin/swfdec-mozilla-player.c:
-	  Checkpoint on plugin/player fixes.
-
-2005-12-16  David Schleef  <ds at schleef.org>
-
-	* libswfdec/actions.c:
-	* libswfdec/actions_tags.c:
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_render.c:
-	* libswfdec/swfdec_render.h:
-	* libswfdec/swfdec_render_cairo.c:
-	  Add some debuggering code.  Fix some bugs:
-	   - fix image translation matrix
-	   - fix (finally?) how the next frame is decided
-	   - assume id==0 is the main sprite
-	   - fix random crashes
-
-2005-12-16  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am:
-	* libswfdec/actions_tags.c:
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_decoder_internal.h:
-	* libswfdec/swfdec_internal.h:
-	  Add a function to flag running experimental code.
-
-2005-12-16  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_button.c: (swfdec_button_dispose): Fix
-	  a leak.
-
-2005-12-05  David Schleef  <ds at schleef.org>
-
-	* README:  The Limitations section was out of date.
-
-2005-11-30  David Schleef  <ds at schleef.org>
-
-	* libswfdec/js/js.c: (ZZ_formatter):
-	* libswfdec/js/jsapi.c: (TryArgumentFormatter):
-	* libswfdec/js/jsapi.h:
-	* libswfdec/js/jspubtd.h:
-	  Fix usage of 'va_list *', it's wrong and doesn't work on powerpc.
-	  Noticed (and mostly fixed) by David Woodhouse.
-	* player/swf_play.c:
-	  Remove unnecessary header.
-
-2005-10-25  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_button.c: Fix silly crasher and memleak.
-
-2005-10-25  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_cache.c: New code to help with caching data.
-	* libswfdec/swfdec_cache.h:
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/Makefile.am:
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_decoder.h:
-
-	* libswfdec/swfdec_image.c: Use cache/handles in image decoding.
-	* libswfdec/swfdec_image.h:
-	* libswfdec/swfdec_render_cairo.c:
-	* libswfdec/swfdec_shape.c:
-	* libswfdec/swfdec_types.h:
-
-2005-10-23  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am:  Move almost all tag parsing code into
-	  swfdec_tag.c
-	* libswfdec/actions.c:
-	* libswfdec/actions_builtin.c:
-	* libswfdec/color.c:
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_button.c:
-	* libswfdec/swfdec_display.c:
-	* libswfdec/swfdec_display.h:
-	* libswfdec/swfdec_font.c:
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/swfdec_render.c:
-	* libswfdec/swfdec_shape.c:
-	* libswfdec/swfdec_sprite.c:
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_tag.c:
-	* libswfdec/swfdec_text.c:
-
-2005-10-19  David Schleef  <ds at schleef.org>
-
-	* libswfdec/actions_builtin.c: (mc_attachMovie): Change sprite
-	  data structure so that each frame has a struct that contains
-	  information about the frame, including layers and sprite
-	  segments to display.
-	* libswfdec/render.c: (tag_place_object_2), (tag_remove_object),
-	(tag_remove_object_2), (tag_show_frame):
-	* libswfdec/swf.c: (swf_parse_header2):
-	* libswfdec/swfdec_render.c: (swfdec_render_get_image),
-	(swfdec_render_get_audio):
-	* libswfdec/swfdec_sound.c: (tag_func_start_sound):
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_dispose),
-	(swfdec_sprite_add_sound_chunk), (swfdec_sprite_add_action),
-	(swfdec_sprite_render_iterate), (swfdec_sprite_render),
-	(tag_func_define_sprite), (swfdec_sprite_get_seg),
-	(swfdec_sprite_frame_add_seg), (swfdec_sprite_frame_remove_seg),
-	(swfdec_spriteseg_place_object_2),
-	(swfdec_spriteseg_remove_object),
-	(swfdec_spriteseg_remove_object_2):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_types.h:
-
-	* test/Makefile.am: add parse
-	* test/dump.c: (dump_sprite): Disable code instead of fixing it.
-	* test/parse.c: (buffer_free), (main): only parse input, don't
-	  render.
-
-2005-10-19  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_tags.c: (action_extends):
-	Throw together a slightly less stubbed ActionExtends.  May still have
-	issues with the constructor getting hooked up.
-
-2005-10-17  David Schleef  <ds at schleef.org>
-
-	* plugin/plugin.c: Update message.
-
-2005-10-16  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/Makefile.am:
-	* libswfdec/actions_builtin.c:
-	* libswfdec/actions_tags.c:
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_audio.c:
-	* libswfdec/swfdec_bits.c:
-	* libswfdec/swfdec_debug.h:
-	* libswfdec/swfdec_object.c:
-	* libswfdec/swfdec_shape.c:
-	* libswfdec/swfdec_sound.c:
-	Minor cleanups exposed by sparse: mark several things static, add
-	a prototype for another, and add descriptions for some MB actions.  Fix
-	a broken include path that sparse choked on.
-
-2005-10-16  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_tags.c: (action_push):
-	Fix a memory leak in string pushes.
-
-2005-10-10  David Schleef  <ds at schleef.org>
-
-	* libswfdec/jpeg/huffman.c: (huffman_table_decode_macroblock):
-	* libswfdec/jpeg/jpeg.c: (generate_code_table):
-	* libswfdec/jpeg/jpeg_debug.h: Turn off JPEG debugging.
-
-2005-08-29  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_builtin.c: (movieclip_new):
-	Fix another GC breakage in movieclip rooting.  Roots are added as
-	pointers to gc-things (where a gc-thing is a pointer to a JS_object,
-	jdouble, etc.).  However, the pointer-to-gcthing must remain valid until
-	JS_RemoveRoot, while we were passing a pointer to a stack variable.
-	Many thanks to Brendan Eich (spidermonkey developer) for giving me the
-	pointer on how to fix it.
-
-2005-08-29  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions.c: (swfdec_init_context):
-	* libswfdec/actions_builtin.c: (action_register_sprite_seg):
-	* libswfdec/swfdec_actions.h:
-	Expand the scope of GC debugging, exposing a new issue quickly.
-
-2005-08-29  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_builtin.c: (swfdec_init_context_builtins):
-	Don't forget to initialize the jsval when setting _root.  Fixes a GC
-	crash, at a minimum.
-
-2005-08-27  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions.c: (swfdec_init_context), (action_script_call),
-	(swfdec_action_script_execute), (stack_push):
-	* libswfdec/actions_builtin.c: (movieclip_new):
-	* libswfdec/actions_tags.c: (stack_pop_to_string),
-	(stack_pop_to_object), (stack_pop_to_number), (stack_pop_to_int32),
-	(stack_pop_to_bool), (action_alloc_stack_argv),
-	(action_free_stack_argv), (action_push), (action_binary_op),
-	(action_string_equals), (action_string_length),
-	(action_string_add), (action_string_extract), (action_string_less),
-	(action_mb_string_length), (action_mb_string_extract),
-	(action_to_integer), (action_char_to_ascii),
-	(action_ascii_to_char), (action_mb_char_to_ascii),
-	(action_mb_ascii_to_char), (action_if), (action_get_variable),
-	(action_set_variable), (action_define_local),
-	(action_get_property), (action_set_property),
-	(action_clone_sprite), (action_start_drag), (action_trace),
-	(action_random_number), (action_call_function),
-	(action_call_method), (action_define_function),
-	(action_get_member), (action_init_object), (action_new_method),
-	(action_new_object), (action_set_member), (action_to_number),
-	(action_to_string), (action_add_2), (action_less_2),
-	(action_unary_op), (action_string_greater), (action_extends):
-	Improve GC-safety of actionscript code by being more careful with
-	storage of short-lived values and results of conversions.  Also corrects
-	some misuse of the result of JS_ValueToNumber, improves error checking,
-	and fixes JS_AddRoot arguments.  Finally, a define is added to allow for
-	forcing frequent GCing, which exposes that we've got issues (still).
-
-2005-08-17  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_bits.c: (swfdec_bits_syncbits): disable the
-	endpoint checking, because it's not important here.
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate): change
-	errors into debugging
-	* libswfdec/swfdec_render_cairo.c: (swfdec_shape_render): handle
-	button mapping in cairo backend, the same crappy way we do
-	with libart.
-
-2005-08-11  David Schleef  <ds at schleef.org>
-
-	* libswfdec/actions_tags.c: (action_goto_frame),
-	(action_next_frame), (action_previous_frame): Trying to make
-	all the frame navigation code work together.
-	* libswfdec/art.c: (art_rgb_fill_run), (art_rgb_run_alpha_2),
-	(compose_const_rgb888_u8), (compose_rgb888_u8):
-	* libswfdec/jpeg/huffman.c: (huffman_table_decode_macroblock): bug
-	fix in debugging output.
-	* libswfdec/jpeg/jpeg.c: (jpeg_decoder_decode_entropy_segment),
-	(jpeg_decoder_addbits): Make debugging quieter.
-	* libswfdec/swfdec_bits.c: (swfdec_bits_valid),
-	(swfdec_bits_getbit), (swfdec_bits_getbits),
-	(swfdec_bits_getsbits), (swfdec_bits_peek_u8),
-	(swfdec_bits_get_u8), (swfdec_bits_get_u16), (swfdec_bits_get_s16),
-	(swfdec_bits_get_be_u16), (swfdec_bits_get_u32),
-	(swfdec_bits_syncbits): Check validity of pointers.
-	* libswfdec/swfdec_button.c: (swfdec_button_execute): execute
-	code at the end of a frame.
-	* libswfdec/swfdec_decoder.h: same
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate): same
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_render_iterate): same
-	* libswfdec/swfdec_sprite.h: same
-	* libswfdec/swfdec_render_cairo.c: (swfdec_shape_render): set
-	pattern extension correctly.
-	* libswfdec/swfdec_shape.c: (swf_shape_add_styles),
-	(swf_morphshape_add_styles): remove mysterious factor, because it's
-	not necessary with cairo.
-	* libswfdec/swfdec_text.c: (define_text): more checking.
-
-2005-06-28  David Schleef  <ds at schleef.org>
-
-	* configure.ac: Make cairo backend default, because I like it.
-	* libswfdec/swfdec_audio.c: (swfdec_audio_render): remove debugging
-	* libswfdec/swfdec_render_cairo.c: (swfdec_matrix_to_cairo),
-	(swfdec_shape_render): Add gradients and images.
-	* plugin/swfdec-mozilla-player.c: (create_pipeline): use
-	gconfaudiosink element instead of gconf stuff.
-
-2005-06-16  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/swf.c:
-	* libswfdec/tags.h:
-	Document a couple more tag names.  Couldn't find what MX4 is.
-
-2005-06-16  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/swfdec_shape.c: (swf_shape_add_styles),
-	(swfdec_shape_compose):
-	Add support for fill style type 0x42 and 0x43, the unsmoothed versions
-	of the previous two fill styles.  Actually, the previous two are
-	unsmoothed in our current implementation.  Also, attempt to support
-	repeating fill styles, though I don't have a good test for them.
-
-2005-05-27  David Schleef  <ds at schleef.org>
-
-	* MAINTAINERS: add contact info
-	* README:
-
-2005-05-21  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_audio.c: (swfdec_audio_render): Fix
-	  copy-past-end-of-buffer bug that was causing noise.
-
-2005-05-21  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am:
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_audio.c:
-	* libswfdec/swfdec_audio.h:
-	* libswfdec/swfdec_buffer.c:
-	* libswfdec/swfdec_buffer.h:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/swfdec_render.c:
-	* libswfdec/swfdec_sound.c:
-	  Mostly implement an audio mixing subsystem.
-
-2005-05-12  David Schleef  <ds at schleef.org>
-
-	* plugin/swfdec-mozilla-player.c: (create_pipeline): Add a
-	colorspace to the pipeline, since a negotiation failure will
-	occur unless the XImage format is exactly the same as swfdec's
-	colorspace.
-
-2005-05-08  David Schleef  <ds at schleef.org>
-
-	Fixes for -wsigned-compare, default in gcc-4.0:
-	* configure.ac: reenable -Werror
-	* libswfdec/actions.c: (stack_pop), (stack_show),
-	(stack_show_value):
-	* libswfdec/jpeg/jpeg.c: (jpeg_decoder_decode_entropy_segment):
-	* libswfdec/js/Makefile.am:
-	* libswfdec/js/jsdtoa.c: (ulp), (b2d), (JS_strtod):
-	* libswfdec/js/jsinterp.c: (js_Interpret):
-	* libswfdec/js/jsstr.c: (str_split):
-	* libswfdec/swfdec_actions.h:
-	* libswfdec/swfdec_bits.c: (swfdec_bits_get_string):
-	* libswfdec/swfdec_decoder.h:
-
-2005-05-08  David Schleef  <ds at schleef.org>
-
-	* configure.ac: oops, checked in a mistake.
-	* libswfdec/actions_tags.c: (action_define_function_2): fix warning
-	* libswfdec/swfdec_render_cairo.c: (swfdec_render_be_start),
-	(swfdec_render_be_clear), (swfdec_shape_render),
-	(swfdec_text_render): Update to new cairo API.
-	* libswfdec/jpeg/huffman.c: (huffman_table_decode_macroblock):
-	remove random printf
-	* plugin/Makefile.am: Disable plugin building if gstreamer isn't
-	around.
-
-	Fixes for -wsigned-compare, default in gcc-4.0:
-	* libswfdec/swfdec_decoder.h: fix endianness
-	* pixbuf-loader/io-swf.c: (fill_info):
-	* player/swf_play.c: (main):
-	* plugin/gstappsrc.c: (gst_appsrc_loop):
-	* plugin/swfdec-mozilla-player.c: (found_tags):
-	* test/dump.c: (main):
-
-2005-05-06  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions.c: (action_script_call),
-	(swfdec_action_script_execute), (name_object):
-	* libswfdec/actions_builtin.c: (swfdec_init_context_builtins),
-	(action_register_sprite_seg):
-	* libswfdec/actions_tags.c: (action_call_function),
-	(action_call_method):
-	* libswfdec/swfdec_actions.h:
-	- Add new named movieclips as members of their parent movieclip.
-	- Store the root object in the actionscript context, and use that
-	  instead of looking it up all the time.
-	- Make name_object public (perhaps needs a better name) and make it
-	  recognize _root as well.  Use it in registering movieclips as well as
-	  stack_show().
-
-2005-05-05  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_tags.c: (action_mb_char_to_ascii),
-	(action_mb_ascii_to_char), (action_get_time), (action_enumerate_2),
-	(action_extends):
-	- Re-add code for MB conversion actions, though it is untested.  These
-	  were removed with the conversion to js code.
-	- Add warnings in some unimplemented actions, along with the FIXMEs.
-
-2005-05-05  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions.c: (action_script_call), (stack_show),
-	(jsval_as_object):
-	* libswfdec/actions_tags.c: (action_define_local),
-	(action_new_object), (action_set_member):
-	- Fix setting of register arguments for Function2s.  It was still
-	  trying to stack_pop them from before when arguments were made to be
-	  passed through argv[].
-	- Don't pop the set of arguments for an ActionNew twice.
-	- Fix printing of integers in stack_show().
-	- Increase verbosity of debugging info in ActionDefineLocal and
-	  ActionSetProperty.
-
-2005-05-05  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions.c: (jsval_as_object):
-	* libswfdec/actions_builtin.c: (mc_getBytesLoaded),
-	(mc_getBytesTotal):
-	* libswfdec/actions_tags.c: (action_call_function),
-	(action_call_method), (action_get_member), (action_new_object),
-	(action_set_member), (action_extends):
-	* libswfdec/swfdec_actions.h:
-	- Add a new jsval_as_object function.  This checks if the value is an
-	  object and returns it before trying to use JS_ValueToObject.
-	  JS_ValueToObject had some strange side effects when being called on
-	  objects, and we might not even need to use JS_ValueToObject in
-	  handling AS bytecode.  Workarounds were happening in the code for
-	  specific problems as a result of this already.  Leave an INFO message
-	  in to see if we ever hit the JS_ValueToObject case.
-	- Add stubs for getBytesLoaded and getBytesTotal, which are called
-	  frequently.  Returning 0 (undef) for getBytesTotal is likely to lead
-	  to divides by zero.
-	- Make CallFunction check for methods in the root object along with
-	  global.  It's not clear what the scope for functions is from the docs,
-	  so we'll have to settle with an accumulated list for now.
-
-2005-05-05  David Schleef  <ds at schleef.org>
-
-	* libswfdec/actions_tags.c: (action_call_method): workaround
-	for TAG_C corruption.
-
-2005-04-22  David Schleef  <ds at schleef.org>
-
-	* libswfdec/actions.c: (action_script_call),
-	(swfdec_action_script_execute): debug skipped action tags
-	* libswfdec/actions_builtin.c: (mc_attachMovie): properly
-	terminate movieclip_props.
-	* libswfdec/actions_tags.c: (action_goto_frame),
-	(action_call_method): hack fix for goto_frame.  Check for
-	bogus argc parameters in call_method.
-	* libswfdec/swf.c: (swfdec_decoder_get_version): Add function.
-	* libswfdec/swfdec.h: same.
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_render_iterate):
-	Disable code that causes rendering problems.
-	* plugin/gstswfdec.c: (gst_swfdec_loop): create gst tag for
-	codec version.
-	* plugin/swfdec-mozilla-player.c: (main), (create_pipeline),
-	(new_gtk_window), (do_error_message), (timeout), (menu_report_bug),
-	(menu_copy_url), (button_press_event), (expose), (found_tags):
-	Random hacking: clean up error handling, print errors as a
-	label, add "Copy URL" to menu, check codec version (from tag)
-	and complain if it's too high.
-
-2005-04-10  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_builtin.c: (mc_play), (mc_stop):
-	* libswfdec/actions_tags.c: (action_get_variable),
-	(action_get_member), (action_new_object),
-	(action_define_function_2):
-	Hook up named function2s (like original functions), and improve some
-	debugging output while I'm here.
-
-2005-04-10  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_render_iterate):
-	Logging of frame numbers during render_iterate isn't WARNING material.
-
-2005-04-10  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_builtin.c: (mc_attachMovie), (mc_x_get),
-	(mc_x_set), (mc_y_get), (mc_y_set), (movieclip_find):
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_sprite.c: (swfdec_exports_lookup),
-	(tag_func_export_assets):
-	* libswfdec/swfdec_sprite.h:
-	- Support ExportAssets, which is used in attachMovie to refer to sprites
-	  by name.
-	- Fill in MovieClip.attachMovie and add getters/setters for
-	  MovieClip._x and _y.
-
-2005-04-08  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/js/INTEGRATION:
-	* libswfdec/js/jsprf.c:
-	Use G_VA_COPY instead of looking for a define from elsewhere, partially
-	fixing 64-bit builds.
-
-2005-04-08  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions.c: (action_script_call),
-	(swfdec_action_script_execute):
-	* libswfdec/actions_builtin.c: (mc_play), (mc_stop),
-	(mc_attachMovie), (movieclip_new), (movieclip_find),
-	(swfdec_init_context_builtins), (action_register_sprite_seg):
-	* libswfdec/actions_tags.c: (action_goto_frame),
-	(action_next_frame), (action_previous_frame), (action_play),
-	(action_stop), (action_call_function), (action_call_method):
-	* libswfdec/js/jslibmath.h:
-	* libswfdec/render.c: (tag_place_object_2):
-	* libswfdec/swf.c: (swfdec_decoder_new), (swfdec_decoder_parse),
-	(swfdec_decoder_free), (swf_parse_header2):
-	* libswfdec/swfdec_actions.h:
-	* libswfdec/swfdec_bits.c: (swfdec_bits_get_string):
-	* libswfdec/swfdec_debug.c:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_font.c: (tag_func_define_font_2):
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate):
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_render_iterate),
-	(swfdec_sprite_render), (swfdec_spriteseg_dup),
-	(swfdec_spriteseg_free), (swfdec_spriteseg_place_object_2):
-	* libswfdec/swfdec_sprite.h:
-	- Make a sprite segment to handle the root Timeline, simplifying the
-	  swfdec_sprite_render_iterate loop and actionscript code.  "stopped" is
-	  now set in segments, rather than global render state, and some frame
-	  index control has moved there as well.  Fix the render_iterate loop
-	  for recursion.
-	- Attach a MovieClip instance to all segments, not just ones with
-	  PlaceObject2 performed on them with a name.
-	- Handle the "root" variable in actionscripts, mostly.  There's a
-	  lockroot property of movieclips which affects it, and we don't handle
-	  that.
-	- Make the "this" value of global functions and action_script_execute
-	  calls be "root" rather than "_global".  This is not quite correct, as
-	  clipevents (for example) use the movie clip they're associated with,
-	  not the root timeline.
-	- Flesh out the MovieClip class a little, providing a play and stop
-	  function and a stub attachMovie which is the next to be filled in,
-	  most likely.
-	- Eliminate some dead code.
-
-2005-04-08  Eric Anholt  <anholt at FreeBSD.org>
-
-	* .cvsignore:
-	* glib-compat/glib/.cvsignore:
-	* libswfdec/js/.cvsignore:
-	* plugin/.cvsignore:
-	Add some more .cvsignore bits.
-
-2005-04-07  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions.c: (pc_is_valid):
-	Allow jumps to endpc to handle functions which jump outside themselves
-	in order to return.  action_script_call correctly returns when this
-	happens.
-
-2005-04-07  Eric Anholt  <anholt at FreeBSD.org>
-
-	* plugin/Makefile.am:
-	Don't attempt to build the plugin or the associated player if
-	WITH_MOZILLA is unset.
-
-2005-04-07  David Schleef  <ds at schleef.org>
-
-	* configure.ac: Switch to using GLOBAL_CFLAGS for -Wall and
-	-Werror, so they get propograted everywhere.
-	* gimp-loader/Makefile.am:
-	* glib-compat/glib/Makefile.am:
-	* libswfdec/Makefile.am:
-	* libswfdec/jpeg/Makefile.am:
-	* libswfdec/js/Makefile.am:
-	* libswfdec/mpeg/Makefile.am:
-	* pixbuf-loader/Makefile.am:
-	* player/Makefile.am:
-	* plugin/Makefile.am:
-	* test/Makefile.am:
-
-2005-04-07  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swf.c: (tag_func_ignore): Fix segfault.
-
-2005-04-07  Eric Anholt  <anholt at FreeBSD.org>
-
-	* libswfdec/actions_tags.c: (action_new_object):
-	Check if the class name of the object looked up during ActionNewObject
-	matches the object's name.  If not, then it's probably js_ObjectClass
-	(or is that js_FunctionClass?) and we're dealing with a class that was
-	defined by the script and not a standard one.  Since these classes don't
-	get their constructors found by JS_* functions, make a new object and
-	call the constructor ourselves.  Also, use the "parent" field properly,
-	I hope.
-
-2005-04-05  David Schleef  <ds at schleef.org>
-
-	* configure.ac: disable creating _stdint.h
-	* libswfdec/Makefile.am: set CFLAGS correctly for js
-	* libswfdec/art.c: use glib types
-	* libswfdec/js/Makefile.am: create jsautocfg.h at compile time
-	* libswfdec/js/jsautocfg.h: remove
-	* libswfdec/js/jslibmath.h: disable math code that isn't slurped
-	* libswfdec/swfdec_internal.h: don't include _stdint.h
-	* libswfdec/swfdec_render.c: use glib types
-
-2005-04-04  Eric Anholt  <anholt at FreeBSD.org>
-
-	* .cvsignore:
-	* configure.ac:
-	* libswfdec/Makefile.am:
-	* libswfdec/actions.c:
-	* libswfdec/actions_builtin.c:
-	* libswfdec/actions_tags.c:
-	* libswfdec/js/.cvsignore:
-	* libswfdec/js/INTEGRATION:
-	* libswfdec/js/Makefile.am:
-	* libswfdec/js/js.c:
-	* libswfdec/js/js.msg:
-	* libswfdec/js/jsapi.c:
-	* libswfdec/js/jsapi.h:
-	* libswfdec/js/jsarena.c:
-	* libswfdec/js/jsarena.h:
-	* libswfdec/js/jsarray.c:
-	* libswfdec/js/jsarray.h:
-	* libswfdec/js/jsatom.c:
-	* libswfdec/js/jsatom.h:
-	* libswfdec/js/jsautocfg.h:
-	* libswfdec/js/jsbit.h:
-	* libswfdec/js/jsbool.c:
-	* libswfdec/js/jsbool.h:
-	* libswfdec/js/jsclist.h:
-	* libswfdec/js/jscntxt.c:
-	* libswfdec/js/jscntxt.h:
-	* libswfdec/js/jscompat.h:
-	* libswfdec/js/jsconfig.h:
-	* libswfdec/js/jscpucfg.c:
-	* libswfdec/js/jscpucfg.h:
-	* libswfdec/js/jsdate.c:
-	* libswfdec/js/jsdate.h:
-	* libswfdec/js/jsdbgapi.c:
-	* libswfdec/js/jsdbgapi.h:
-	* libswfdec/js/jsdhash.c:
-	* libswfdec/js/jsdhash.h:
-	* libswfdec/js/jsdtoa.c:
-	* libswfdec/js/jsdtoa.h:
-	* libswfdec/js/jsemit.c:
-	* libswfdec/js/jsemit.h:
-	* libswfdec/js/jsexn.c:
-	* libswfdec/js/jsexn.h:
-	* libswfdec/js/jsfile.c:
-	* libswfdec/js/jsfile.h:
-	* libswfdec/js/jsfun.c:
-	* libswfdec/js/jsfun.h:
-	* libswfdec/js/jsgc.c:
-	* libswfdec/js/jsgc.h:
-	* libswfdec/js/jshash.c:
-	* libswfdec/js/jshash.h:
-	* libswfdec/js/jsinterp.c:
-	* libswfdec/js/jsinterp.h:
-	* libswfdec/js/jslibmath.h:
-	* libswfdec/js/jslock.c:
-	* libswfdec/js/jslock.h:
-	* libswfdec/js/jslog2.c:
-	* libswfdec/js/jslong.c:
-	* libswfdec/js/jslong.h:
-	* libswfdec/js/jsmath.c:
-	* libswfdec/js/jsmath.h:
-	* libswfdec/js/jsnum.c:
-	* libswfdec/js/jsnum.h:
-	* libswfdec/js/jsobj.c:
-	* libswfdec/js/jsobj.h:
-	* libswfdec/js/jsopcode.c:
-	* libswfdec/js/jsopcode.h:
-	* libswfdec/js/jsopcode.tbl:
-	* libswfdec/js/jsosdep.h:
-	* libswfdec/js/jsotypes.h:
-	* libswfdec/js/jsparse.c:
-	* libswfdec/js/jsparse.h:
-	* libswfdec/js/jsprf.c:
-	* libswfdec/js/jsprf.h:
-	* libswfdec/js/jsprvtd.h:
-	* libswfdec/js/jspubtd.h:
-	* libswfdec/js/jsregexp.c:
-	* libswfdec/js/jsregexp.h:
-	* libswfdec/js/jsscan.c:
-	* libswfdec/js/jsscan.h:
-	* libswfdec/js/jsscope.c:
-	* libswfdec/js/jsscope.h:
-	* libswfdec/js/jsscript.c:
-	* libswfdec/js/jsscript.h:
-	* libswfdec/js/jsshell.msg:
-	* libswfdec/js/jsstddef.h:
-	* libswfdec/js/jsstr.c:
-	* libswfdec/js/jsstr.h:
-	* libswfdec/js/jstypes.h:
-	* libswfdec/js/jsutil.c:
-	* libswfdec/js/jsutil.h:
-	* libswfdec/js/jsxdrapi.c:
-	* libswfdec/js/jsxdrapi.h:
-	* libswfdec/js/prmjtime.c:
-	* libswfdec/js/prmjtime.h:
-	* libswfdec/render.c:
-	* libswfdec/swf.c:
-	* libswfdec/swfdec_actions.h:
-	* libswfdec/swfdec_bits.c:
-	* libswfdec/swfdec_debug.c:
-	* libswfdec/swfdec_font.c:
-	* libswfdec/swfdec_render.c:
-	(swfdec_render_get_image):
-	* libswfdec/swfdec_render.h:
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_render_iterate),
-	(swfdec_sprite_render), (swfdec_spriteseg_free),
-	(swfdec_get_clipeventflags), (swfdec_spriteseg_place_object_2):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/tags.h:
-	Add initial support for ActionScript 2, used in Flash 5+ scripts:
-	- Bring in Mozilla's Spidermonkey JS code, and connect it to the build.
-	  Include an INTEGRATION file noting the changes made to the code from
-	  the upstream.
-	- Replace ActionVals with jsvals, the multiple-type value used in
-	  spidermonkey.
-	- Set up a JS context when initializing the AS context, including array
-	  objects for stack and registers.  We must be careful to store all
-	  jsvals used in our structs in some sort of rooted object, or they will
-	  be automatically garbage collected.  The spidermonkey code comes with
-	  the standard Math, String, Number, etc. classes from ECMA-262.
-	- Add support for function and method calls by moving the actionscript
-	  opcode parsing into a new action_script_call JS native function and
-	  wrapping it in JS function objects to call, including when doing
-	  the intial action_script_execute.
-	- Add implementations of the following actions: CallFunction,
-	  CallMethod, DefineFunction, GetMember, InitObject, NewObject,
-	  SetMember, ToNumber, ToString, Modulo, BitAnd, BitLShift, BitOr,
-	  BitRShift, BitURShift, BitXor, Decrement, Increment, PushDuplicate,
-	  Swap, StoreRegister, StringGreater
-	- Add incomplete implementations of the following actions: DefineLocal,
-	  DefineLocal2, Equals2, Typeof, Add2, Less2, Greater
-	- Add stubs of the following actions: Delete2, NewMethod, Enumerate2,
-	  Extends
-	- Stub out ActionMBAsciiToChar and ActionMBCharToAscii (oops).
-	- Support the DoInitAction control tag, which executes actionscript on a
-	  given sprite once, rather than on a specific frame.
-	- Note the names of the new MX* control tags described in the Flash 7
-	  spec.
-	- Add initial support for ClipEvents in PlaceObject2 control tag.
-	- Add a callback from PlaceObject2 to actions.c so that new MovieClip
-	  objects can be created corresponding to the object.
-	- Split the actions.c file into three -- actions_builtin.c for the
-	  native classes and functions, actions_tags.c for the Action*
-	  implementations, and actions.c contains the remainder of execution,
-	  object, type, stack, etc. support.
-	- Remove the RenderState object and replace it with a frame_index number
-	  in the SpriteSegment.  To deal with MovieClips, we will need to move
-	  more play control into the SpriteSegment (instance of a Sprite).
-	
-	This is a significant step towards playing Flash 5+ files correctly, but
-	there is significant work to do.  ActionNewObject appears to not call
-	the constructor necessary if it's one we set up (as in, any class
-	created by the script), which kills some scripts, and is a major
-	regression from the non-spidermonkey patch.  However, if this can be
-	resolved, the spidermonkey route is clearly the way to go.  MovieClip
-	class support is also critical and used regularly by scripts.
-
-2005-03-25  David Schleef  <ds at schleef.org>
-
-	* libswfdec/actions.c: (action_push): Check that the register
-	isn't NULL before copying.
-
-2005-03-24  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_font.c: (tag_func_define_font_2): downgrade
-	a SWFDEC_ERROR()
-	* plugin/gstappsrc.c: (gst_appsrc_loop): quiet a GST_ERROR
-	* plugin/gstswfdec.c: (art_warn): quiet a GST_ERROR
-	* plugin/plugin.c: (plugin_newp), (plugin_destroy): Apparently
-	Mozilla sends NULLs instead of strings occasionally.  Account
-	for this.  Turn off debugging (again).
-
-2005-03-24  David Schleef  <ds at schleef.org>
-
-	* Makefile.am: Re-add m4 directory
-	* configure.ac: Use a real macro to generate stdint.h
-	* libswfdec/actions.c: (pc_is_valid), (action_jump), (action_if),
-	(action_constant_pool): Check PC values when jumping.  Fix memleak
-	when freeing constant pools.  (From Eric Anholt)
-	* libswfdec/proto.h: cleanup
-	* libswfdec/swf.c: (tag_func_end), (tag_func_ignore): cleanup.
-	Make Protect tag quieter.
-	* libswfdec/swfdec_internal.h: include local stdint.h
-	* libswfdec/swfdec_shape.c: (swf_shape_get_recs),
-	(swf_shape_ignore_recs), (swf_morphshape_get_recs): fix
-	gratuitous use of int16_t.
-	* m4/ax_create_stdint_h.m4: add
-
-2005-03-24  David Schleef  <ds at schleef.org>
-
-	Changes from Eric Anholt
-	* configure.ac: Create a stdint.h if it doesn't exist.
-	* libswfdec/actions.c: Fix go_to_label
-	* libswfdec/swfdec_button.c: (tag_func_define_button_2): Use the
-	correct segment length -- fixes warning.
-
-2005-03-24  David Schleef  <ds at schleef.org>
-
-	* configure.ac: version bump
-
-2005-03-24  David Schleef  <ds at schleef.org>
-
-	* plugin/gstappsrc.c: (gst_appsrc_class_init), (gst_appsrc_init),
-	(gst_appsrc_get_property), (gst_appsrc_loop): Add source_url
-	property, for relaying metadata from Mozilla
-	* plugin/gstappsrc.h: add to object
-	* plugin/plugin.c: (plugin_thread), (plugin_newp),
-	(plugin_set_window): push metadata info from Mozilla to helper
-	app
-	* plugin/spp.h: Add new GO_TO_URL2 and METADATA methods.
-	GO_TO_URL2 sends both the target and URL.  METADATA sends
-	metadata from Mozilla to the app.
-	* plugin/swfdec-mozilla-player.c: (menu_open), (menu_report_bug),
-	(button_press_event), (embed_url), (packet_go_to_url): Use new
-	methods.
-
-2005-03-24  David Schleef  <ds at schleef.org>
-
-	* configure.ac: version bump
-	* libswfdec/actions.c: (action_set_variable): set variable to
-	the value, not the variable name. (fix from Eric Anholt)
-
-=== release 0.3.4 ===
-
-2005-03-19  David Schleef  <ds at schleef.org>
-
-	* configure.ac: version nano bump
-	* plugin/Makefile.am:
-	* plugin/gstswfdec.c: Pull from gst-plugins, since the only version
-	that works with swfdec-mozilla-player is unreleased.
-	* plugin/gstswfdec.h:
-	* plugin/swfdec-mozilla-player.c: (main): use local swfdec element
-
-2005-03-19  David Schleef  <ds at schleef.org>
-
-	* configure.ac: use $MOZILLA_CONFIG, not mozilla-config
-
-=== release 0.3.3 ===
-
-2005-03-17  David Schleef  <ds at schleef.org>
-
-	* configure.ac: version bump
-
-2005-03-17  David Schleef  <ds at schleef.org>
-
-	* libswfdec/actions.c: (swfdec_action_script_execute),
-	(action_get_url): quiet debugging
-	* libswfdec/art.c: (art_rgb_svp_alpha_callback): dynamically
-	allocate temp scanline
-	* libswfdec/swf.c: (swfdec_decoder_set_image_size): resize fixes
-	* libswfdec/swfdec_render.c: (swfdec_render_get_audio): quiet
-	debugging
-	* libswfdec/swfdec_render_libart.c: (swfdec_render_be_start):
-	dynamically allocate temp scanline
-	* plugin/gstappsrc.c: (gst_appsrc_loop): remove dead code
-	* plugin/plugin.c: (plugin_thread), (plugin_newp),
-	(plugin_destroy), (plugin_set_window): add instance to debugging
-	* plugin/swfdec-mozilla-player.c: (main), (new_gtk_window),
-	(timeout), (check_playing), (window_state_event),
-	(visibility_notify_event), (unmap), (desired_size): convert to
-	threaded pipeline, add window management stuff
-
-2005-02-11  David Schleef  <ds at schleef.org>
-
-	* Makefile.am: don't dist removed m4 files
-	* configure.ac: remove m4 from ACLOCAL_FLAGS.  Disable gimp
-	plugin whenever prefix is different from gimp's prefix.
-	Check for gstreamer.
-	* gimp-loader/Makefile.am: disable correctly
-
-2005-02-11  David Schleef  <ds at schleef.org>
-
-	Major plugin changes: start using a gstreamer-based player,
-	copying the appsrc element from gst-mozilla-player.  Merge
-	bugfixes from Debian packaging, including limiting the
-	number of players and unblocking signals (esp. SIGHUP) so
-	that the helper player gets killed correctly.
-	* plugin/Makefile.am:
-	* plugin/gstappsrc.c: (gst_appsrc_get_event_mask),
-	(gst_appsrc_get_formats), (_do_init), (gst_appsrc_base_init),
-	(gst_appsrc_class_init), (gst_appsrc_init),
-	(gst_appsrc_event_handler), (gst_appsrc_set_property),
-	(gst_appsrc_get_property), (gst_appsrc_loop),
-	(gst_appsrc_change_state), (gst_appsrc_uri_get_type),
-	(gst_appsrc_uri_get_protocols), (gst_appsrc_uri_get_uri),
-	(gst_appsrc_uri_set_uri), (gst_appsrc_uri_handler_init),
-	(plugin_init):
-	* plugin/gstappsrc.h:
-	* plugin/plugin.c: (plugin_fork), (plugin_thread), (plugin_newp),
-	(plugin_destroy), (plugin_set_window):
-	* plugin/swfdec-mozilla-player.c: (main), (do_help),
-	(print_formats), (new_gtk_window), (button_press_event),
-	(button_release_event), (key_press), (motion_notify),
-	(configure_cb), (expose_cb), (destroy_cb), (embedded),
-	(video_widget_realize), (video_widget_allocate), (desired_size),
-	(embed_url), (packet_write):
-
-2005-01-28  David Schleef  <ds at schleef.org>
-
-	* configure.ac: fix liboil dependency
-	* libswfdec/actions.c: (swfdec_action_script_execute),
-	(action_goto_frame), (action_get_url), (action_stop),
-	(action_stop_sounds), (action_push), (action_get_property),
-	(action_constant_pool): implement constant pools, add warnings
-	* libswfdec/art.c: (paint), (art_rgb_svp_alpha_callback),
-	(swfdec_art_bpath_from_points): cleanups, use liboil
-	* libswfdec/render.c: cleanup
-	* libswfdec/swf.c: (swfdec_decoder_get_url): add get_url()
-	* libswfdec/swfdec.h: same
-	* libswfdec/swfdec_buffer.c: (swfdec_buffer_queue_free): fix leak
-	* libswfdec/swfdec_button.c: (swfdec_button_init),
-	(swfdec_button_dispose), (swfdec_button_render),
-	(tag_func_define_button_2), (tag_func_define_button),
-	(swfdec_button_execute): implement button actions
-	* libswfdec/swfdec_button.h: same
-	* libswfdec/swfdec_decoder.h: add url and button handling
-	* libswfdec/swfdec_font.c: (tag_func_define_font_2): check for
-	broken kerning entries
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate),
-	(swfdec_render_get_image), (swfdec_render_get_audio): implement
-	button actions.
-	* libswfdec/swfdec_render.h: same
-	* libswfdec/swfdec_render_libart.c: (swfdec_shape_render),
-	(swfdec_text_render), (swfdec_render_in_button_area): implement
-	button actions.
-	* libswfdec/swfdec_render_libart.h: add prototypes
-	* libswfdec/swfdec_shape.h: implement define_button
-	* player/swf_play.c: (main), (do_safe), (packet_write): implement
-	buttons and url handling.
-	* plugin/plugin.c: (plugin_fork), (plugin_thread),
-	(plugin_set_window): implement url handling
-	* plugin/spp.h: same
-
-2005-01-12  David Schleef  <ds at schleef.org>
-
-	* plugin/plugin.c: (NP_GetValue): Downgrade to flash 4.0, in
-	an attempt to get more web pages to work.
-
-2005-01-12  David Schleef  <ds at schleef.org>
-
-	* Makefile.am: autoregenify
-	* autogen.sh: same
-	* configure.ac: same
-	* m4/as-ac-expand.m4: remove
-	* m4/as-libtool.m4: remove
-	* m4/as-version.m4: remove
-
-2005-01-10  David Schleef  <ds at schleef.org>
-
-	* gimp-loader/Makefile.am: depends on HAVE_GIMP
-	* libswfdec/swfdec_sound.c: fixes from last checkin
-	* libswfdec/swfdec_sound.h: same
-
-2004-12-26  David Schleef  <ds at schleef.org>
-
-	* configure.ac: bump to liboil-0.3
-	* libswfdec/actions.c: major rewrite
-	* libswfdec/art.c: (art_bpath_cat), (art_vpath_cat): oilify
-	* libswfdec/jpeg/jpeg.c: merge code from liboil
-	* libswfdec/jpeg/jpeg_debug.h: debug jpeg code at swfdec level
-	* libswfdec/swf.c: (swfdec_decoder_set_mouse),
-	(swfdec_decoder_set_image_size), (swf_parse_header2): add mouse
-	handling, add SoundStreamHead2
-	* libswfdec/swfdec.h: add mouse handling
-	* libswfdec/swfdec_buffer.c: (swfdec_buffer_queue_pull),
-	(swfdec_buffer_queue_peek): oilify
-	* libswfdec/swfdec_button.c: (tag_func_define_button_2): remove
-	get_actions() call
-	* libswfdec/swfdec_decoder.h: add some fields
-	* libswfdec/swfdec_render.c: (swfdec_render_resize),
-	(compare_lists), (swfdec_render_get_image),
-	(swfdec_render_get_audio): implement caching of partially-rendered
-	images
-	* libswfdec/swfdec_render.h: add protos
-	* libswfdec/swfdec_render_cairo.c: (swfdec_render_be_start),
-	(swfdec_render_be_clear), (draw_line), (draw), (draw_rev),
-	(draw_x), (swfdec_shape_render), (swfdec_text_render): cleanup
-	* libswfdec/swfdec_render_libart.c: (swfdec_render_be_start),
-	(swfdec_render_be_clear): add backend clearing
-	* libswfdec/swfdec_sound.c: (swfdec_sound_dispose),
-	(tag_func_define_sound), (tag_func_sound_stream_head),
-	(get_soundinfo), (tag_func_start_sound), (swfdec_sound_mp3_decode),
-	(swfdec_sound_mp3_decode_stream), (convert_synth_to_buffer):
-	implement decoding/playing of sound objects
-	* libswfdec/swfdec_sound.h: add protos
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_dispose),
-	(tag_func_define_sprite): primitive sound rendering
-	* libswfdec/swfdec_sprite.h: add field
-	* libswfdec/swfdec_types.h: add SwfdecActionContext
-	* player/swf_play.c: (main), (do_safe), (sound_setup),
-	(render_idle_audio): handle mouse events.
-	* swfdec.pc.in: add liboil to requires:
-
-2004-12-10  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_render_cairo.c: (swfdec_shape_render),
-	(swfdec_text_render): Fix line rendering and add text
-	rendering.
-
-2004-12-09  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_render_cairo.c: (draw_line), (draw), (draw_rev),
-	(draw_x), (swfdec_shape_render): fixes to make the cairo backend
-	work somewhat correctly.
-
-2004-12-08  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_render_cairo.c: (draw_x): oops, fix typo.
-
-2004-12-08  David Schleef  <ds at schleef.org>
-
-	* configure.ac: Add switch for using the cairo backend, and fix
-	cairo detection
-	* libswfdec/Makefile.am: add cairo backend
-	* libswfdec/swf.c: same
-	* libswfdec/swfdec_decoder.h: same
-	* libswfdec/swfdec_layer.c: same
-	* libswfdec/swfdec_render.c: (swfdec_render_get_image): move some
-	rendering stuff to backends
-	* libswfdec/swfdec_render.h: move backend functions to here, since
-	they're common to both
-	* libswfdec/swfdec_render_cairo.c: (swfdec_render_be_start),
-	(swfdec_render_be_stop), (swfdec_layervec_render), (draw),
-	(draw_rev), (draw_x), (swfdec_shape_render), (swfdec_text_render),
-	(swf_config_colorspace), (swfdec_render_layervec_free): add cairo
-	backend
-	* libswfdec/swfdec_render_libart.c: (swfdec_render_be_start),
-	(swfdec_render_be_stop): move some rendering stuff to backend
-	* libswfdec/swfdec_shape.c: add cairo backend
-	* libswfdec/swfdec_text.c: same
-	* libswfdec/swfdec_transform.h: same
-	* player/swf_play.c: (render_idle_audio): disable debugging and
-	add noskip
-	* test/render-fast.c: remove libart header
-	* test/render.c: same
-
-2004-11-24  David Schleef  <ds at schleef.org>
-
-	* configure.ac:
-	* gimp-loader/Makefile.am: Install gimp plugin into the directory
-	suggested by pkg-config.
-
-2004-11-16  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am: put headers in /usr/include/swfdec-0.3
-	* swfdec.pc.in: same
-
-2004-11-15  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_render.c: (swfdec_render_get_image): Fix crasher
-	when increasing size of window.
-	* player/swf_play.c: (main), (do_safe), (new_window),
-	(render_idle_audio): Implement --safe.  Attempt to make SDL
-	handle events when plugged.
-	* plugin/plugin.c: (plugin_fork), (plugin_thread), (plugin_newp),
-	(plugin_destroy), (plugin_set_window), (plugin_write_ready),
-	(plugin_write), (plugin_event), (plugin_set_value),
-	(NP_Initialize), (DEBUG): Merge plugin code from gstreamer.
-
-2004-11-14  David Schleef  <ds at schleef.org>
-
-	* player/swf_play.c: (main): g_file_get_contents() takes gsize,
-	  not int.
-	* test/dump.c: (main):
-	* test/render.c: (main):
-
-2004-11-06  David Schleef  <ds at schleef.org>
-
-	Global reindent.
-	* libswfdec/actions.c: (get_actions), (tag_func_do_action),
-	(swfdec_action_script_execute):
-	* libswfdec/art.c: (art_vpath_reverse), (art_rgb_svp_alpha2),
-	(art_rgb565_fillrect), (art_rgb_fillrect),
-	(art_rgb565_svp_alpha_callback),
-	(art_rgb_svp_alpha_compose_callback), (art_rgb_svp_alpha_callback),
-	(art_grey_svp_alpha_callback), (swfdec_art_bpath_from_points),
-	(art_bpath_affine_transform_inplace):
-	* libswfdec/art.h:
-	* libswfdec/color.c: (swfdec_color_apply_transform):
-	* libswfdec/color.h:
-	* libswfdec/render.c: (tag_place_object_2),
-	(swfdec_spriteseg_render), (swfdec_layer_render):
-	* libswfdec/swf.c: (swfdec_init), (swfdec_decoder_new),
-	(swfdec_decoder_add_data), (swfdec_decoder_add_buffer),
-	(swfdec_decoder_eof), (swfdec_decoder_parse),
-	(swfdec_decoder_free), (swfdec_decoder_set_image_size),
-	(swf_inflate_init), (swf_parse_header2), (tag_func_dumpbits),
-	(tag_func_frame_label):
-	* libswfdec/swfdec.h:
-	* libswfdec/swfdec_actions.h:
-	* libswfdec/swfdec_bits.c: (swfdec_bits_get_color_transform),
-	(swfdec_bits_get_transform):
-	* libswfdec/swfdec_bits.h:
-	* libswfdec/swfdec_buffer.c: (swfdec_buffer_new),
-	(swfdec_buffer_new_and_alloc), (swfdec_buffer_new_with_data),
-	(swfdec_buffer_new_subbuffer), (swfdec_buffer_ref),
-	(swfdec_buffer_unref), (swfdec_buffer_free_mem),
-	(swfdec_buffer_free_subbuffer), (swfdec_buffer_queue_new),
-	(swfdec_buffer_queue_get_depth), (swfdec_buffer_queue_get_offset),
-	(swfdec_buffer_queue_free), (swfdec_buffer_queue_push),
-	(swfdec_buffer_queue_pull), (swfdec_buffer_queue_peek):
-	* libswfdec/swfdec_buffer.h:
-	* libswfdec/swfdec_button.c: (swfdec_button_base_init),
-	(swfdec_button_class_init), (swfdec_button_init),
-	(swfdec_button_dispose), (swfdec_button_render),
-	(tag_func_define_button_2):
-	* libswfdec/swfdec_button.h:
-	* libswfdec/swfdec_debug.c: (swfdec_debug_log), (art_warn):
-	* libswfdec/swfdec_debug.h:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_display.c: (tag_func_place_object_2):
-	* libswfdec/swfdec_font.c: (swfdec_font_base_init),
-	(swfdec_font_class_init), (swfdec_font_init),
-	(swfdec_font_dispose), (swfdec_font_get_glyph),
-	(tag_func_define_font), (tag_func_define_font_2):
-	* libswfdec/swfdec_font.h:
-	* libswfdec/swfdec_image.c: (swfdec_image_base_init),
-	(swfdec_image_class_init), (swfdec_image_init),
-	(swfdec_image_dispose), (lossless), (define_bits_lossless),
-	(swfdec_image_colormap_decode):
-	* libswfdec/swfdec_image.h:
-	* libswfdec/swfdec_layer.c: (swfdec_render_get_sublayer):
-	* libswfdec/swfdec_object.c: (swfdec_object_get_type),
-	(swfdec_object_base_init), (swfdec_object_class_init),
-	(swfdec_object_init), (swfdec_object_dispose),
-	(swfdec_object_unref), (swfdec_object_get):
-	* libswfdec/swfdec_object.h:
-	* libswfdec/swfdec_rect.c: (swfdec_rect_intersect),
-	(swfdec_rect_union), (swfdec_rect_is_empty):
-	* libswfdec/swfdec_rect.h:
-	* libswfdec/swfdec_render.c: (swfdec_render_free),
-	(swfdec_render_iterate), (swfdec_render_get_object_state),
-	(swfdec_render_seek), (swfdec_render_get_frame_index),
-	(swfdec_render_get_image), (swfdec_render_get_audio):
-	* libswfdec/swfdec_render.h:
-	* libswfdec/swfdec_render_libart.c: (swfdec_layervec_render),
-	(swfdec_shape_render), (swfdec_text_render),
-	(swf_config_colorspace), (swfdec_render_layervec_free):
-	* libswfdec/swfdec_render_libart.h:
-	* libswfdec/swfdec_shape.c: (swfdec_shape_base_init),
-	(swfdec_shape_class_init), (swfdec_shape_init),
-	(swfdec_shape_dispose), (swfdec_shapevec_free), (get_shape_rec),
-	(tag_func_define_shape), (tag_define_shape), (tag_define_shape_3),
-	(swf_shape_add_styles), (swfdec_shape_get_fill0style),
-	(swfdec_shape_get_fill1style), (swfdec_shape_get_linestyle),
-	(swf_shape_get_recs), (swfdec_shape_compose),
-	(swfdec_shape_compose_gradient), (my_root),
-	(swfdec_gradient_to_palette), (tag_define_morph_shape),
-	(swf_shape_ignore_recs), (swf_morphshape_add_styles),
-	(swf_morphshape_get_recs):
-	* libswfdec/swfdec_shape.h:
-	* libswfdec/swfdec_sound.c: (swfdec_sound_base_init),
-	(swfdec_sound_class_init), (swfdec_sound_init),
-	(swfdec_sound_dispose), (tag_func_sound_stream_block),
-	(swfdec_decoder_sound_buffer_append), (adpcm_decode),
-	(swfdec_sound_render), (swfdec_sound_mp3_init),
-	(swfdec_sound_mp3_cleanup), (swfdec_sound_mp3_decode),
-	(swfdec_sound_mp3_decode_stream):
-	* libswfdec/swfdec_sound.h:
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_base_init),
-	(swfdec_sprite_class_init), (swfdec_sprite_init),
-	(swfdec_sprite_dispose), (swfdec_sprite_add_sound_chunk),
-	(swfdec_sprite_add_action), (swfdec_sprite_render),
-	(tag_func_define_sprite), (swfdec_sprite_get_seg),
-	(swfdec_spriteseg_place_object_2):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_text.c: (swfdec_text_base_init),
-	(swfdec_text_class_init), (swfdec_text_init),
-	(swfdec_text_dispose), (define_text), (tag_func_define_text_2):
-	* libswfdec/swfdec_text.h:
-	* libswfdec/swfdec_transform.c: (swfdec_transform_is_translation),
-	(swfdec_transform_multiply), (swfdec_transform_invert),
-	(swfdec_transform_init_identity), (swfdec_transform_translate),
-	(swfdec_transform_get_expansion):
-	* libswfdec/swfdec_transform.h:
-	* libswfdec/tags.h:
-	* player/swf_play.c: (main), (do_help), (new_window), (fill_audio),
-	(sound_setup), (render_idle_audio), (render_idle_noaudio),
-	(fd_is_ready), (packet_get), (packet_free):
-	* plugin/plugin.c: (plugin_fork), (plugin_newp), (plugin_destroy),
-	(plugin_set_window), (plugin_new_stream), (plugin_destroy_stream),
-	(plugin_write_ready), (plugin_write), (plugin_stream_as_file),
-	(NP_GetValue), (NP_GetMIMEDescription), (NP_Initialize),
-	(NP_Shutdown), (NPP_DestroyStream), (NPP_URLNotify),
-	(packet_write):
-	* plugin/spp.h:
-
-2004-11-04  David Schleef  <ds at schleef.org>
-
-	* configure.ac: bump nano
-
-=== release 0.3.1 ===
-
-2004-11-04  David Schleef  <ds at schleef.org>
-
-	* Makefile.am: prep for release
-	* configure.ac:
-	* player/Makefile.am:
-	* plugin/Makefile.am:
-
-2004-11-04  David Schleef  <ds at schleef.org>
-
-	* README: add dependency on liboil
-	* player/swf_play.c: (main), (do_help), (new_window),
-	(sound_setup), (render_idle_audio), (fd_is_ready), (packet_get):
-	Cleanup.
-
-2004-11-04  David Schleef  <ds at schleef.org>
-
-	* README: random fixes
-	* libswfdec/swf.c: (swfdec_decoder_set_image_size): change scaling
-	back to browser-friendly policy.
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate): change eof
-	policy back to being browser-friendly
-	* libswfdec/swfdec_shape.c: (swfdec_shape_compose_gradient),
-	(my_root): optimization for circular gradients
-	* player/Makefile.am: include plugin dir for spp.h
-	* player/swf_play.c: (main), (do_help), (sound_setup),
-	(render_idle_audio), (packet_get), (packet_free): Add SPP protocol
-	handling.  Additional fixes to make plugin work again.
-	* plugin/plugin.c: (plugin_fork), (plugin_newp), (plugin_destroy),
-	(plugin_set_window), (plugin_destroy_stream), (plugin_write),
-	(plugin_stream_as_file), (NP_GetValue), (NP_Initialize),
-	(NPP_DestroyStream), (packet_write): Add SPP protocol handling.
-	Other random fixes.
-	* plugin/spp.h: SPP protocol.
-
-2004-10-26  David Schleef  <ds at schleef.org>
-
-	* player/swf_play.c: (render_idle_audio): endianness fixes
-
-2004-10-08  David Schleef  <ds at schleef.org>
-
-	* Makefile.am: player no longer depends on glib
-	* glib-compat/glib-object.h: new
-	* glib-compat/glib.h: more compatibility
-	* glib-compat/glib/Makefile.am: add gobject.c
-	* glib-compat/glib/gobject.c: (g_type_init), (g_type_name),
-	(g_object_new), (g_object_unref): 
-	* libswfdec/jpeg/Makefile.am:
-	* libswfdec/swfdec_debug.c: (swfdec_debug_log): glib-compat stuff
-	* libswfdec/swfdec_display.c: (tag_func_place_object_2),
-	(tag_func_remove_object), (tag_func_remove_object_2): remove g_print()
-	* libswfdec/swfdec_font.h: glib-compat
-	* libswfdec/swfdec_image.h: same
-	* libswfdec/swfdec_object.c: same
-	* libswfdec/swfdec_object.h: same
-	* libswfdec/swfdec_render.c: (swfdec_render_get_image): same
-	* libswfdec/swfdec_shape.c: (get_shape_rec),
-	(tag_func_define_shape): remove g_print()
-	* libswfdec/swfdec_shape.h: glib-compat
-	* libswfdec/swfdec_sound.h: same
-	* libswfdec/swfdec_sprite.h: same
-	* libswfdec/swfdec_text.h: same
-	* player/swf_play.c: (main), (render_idle_audio),
-	(render_idle_noaudio): remove glib dependency
-	* test/Makefile.am: dump works with glib-compat
-	* test/dump.c: (main): same
-
-2004-10-08  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swfdec_render.c: (swfdec_render_get_object_state):
-	add object id as identifier for object state.  Improves rendering
-	of sprites.
-	* libswfdec/swfdec_render.h:
-	* libswfdec/swfdec_shape.c: (swfdec_shape_get_fill0style),
-	(swfdec_shape_get_fill1style), (swfdec_shape_get_linestyle):
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_render):
-	* player/Makefile.am: Remove gtk dependency.
-	* player/swf_play.c: (main), (new_window), (render_idle_audio),
-	(render_idle_noaudio): Remove gtk dependency.  SDL-only now.
-
-2004-10-07  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swf.c: disable DefineMorphShape
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate): return FALSE
-	if we know the animation has ended.
-	* libswfdec/swfdec_sprite.c: (tag_func_define_sprite): fix parsing
-	to handle changes in tag lookup function.
-
-2004-10-05  David Schleef  <ds at schleef.org>
-
-	* Makefile.am: distcheck fixes
-	* configure.ac:
-	* libswfdec/Makefile.am:
-
-2004-10-05  David Schleef  <ds at schleef.org>
-
-	* TODO: random notes
-	* libswfdec/actions.c: (get_actions),
-	(swfdec_action_script_execute): minor execution improvements
-	* libswfdec/swf.c: (swfdec_decoder_parse),
-	(swfdec_decoder_get_tag_func): check for invalid tags
-	differently.
-	* libswfdec/swfdec_bits.c: (swfdec_bits_get_morph_gradient): add
-	function
-	* libswfdec/swfdec_bits.h: ditto
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate),
-	(swfdec_render_get_audio): stop if iterating past end.  Increase
-	audio buffer size.
-	* libswfdec/swfdec_shape.c: (tag_func_define_shape),
-	(tag_define_shape), (tag_define_shape_3), (swf_shape_add_styles),
-	(swfdec_gradient_to_palette), (tag_define_morph_shape),
-	(swf_shape_ignore_recs), (swf_morphshape_add_styles),
-	(swf_morphshape_get_recs): improve debugging.  Add morph shape
-	parsing (incomplete)
-	* libswfdec/swfdec_shape.h: add protos
-	* libswfdec/swfdec_sound.c: (swfdec_sound_mp3_decode),
-	(swfdec_sound_mp3_decode_stream): resync more correctly
-	* libswfdec/swfdec_sound.h: change buffer size
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_render): decrease
-	warning level
-
-2004-10-04  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am:
-	* libswfdec/swfdec_actions.h: new file
-
-2004-10-04  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am: export art_warn
-	* libswfdec/actions.c: (tag_func_do_action),
-	(swfdec_action_script_execute): minimal AS execution
-	* libswfdec/jpeg/huffman.c: switch to swfdec debugging system
-	* libswfdec/jpeg/jpeg.c: same.  Check for image overruns when
-	decoding macroblocks.
-	* libswfdec/jpeg/jpeg_debug.h: same
-	* libswfdec/jpeg/test.c: same
-	* libswfdec/jpeg/test_rgb.c: same
-	* libswfdec/render.c: add debugging
-	* libswfdec/swf.c: add debugging.  allocate action buffer array
-	* libswfdec/swfdec_buffer.c: quiet debugging.  Add get_offset.
-	* libswfdec/swfdec_buffer.h: same
-	* libswfdec/swfdec_button.c: Fix button rendering.
-	* libswfdec/swfdec_button.h: same
-	* libswfdec/swfdec_debug.c: override art_warn.  it's annoying.
-	* libswfdec/swfdec_decoder.h: add stopped field.
-	* libswfdec/swfdec_image.c: add debugging
-	* libswfdec/swfdec_internal.h: add swfdec_actions.h
-	* libswfdec/swfdec_render.c: improve iteration, fix clipping.
-	* libswfdec/swfdec_render.h: improve iteration
-	* libswfdec/swfdec_shape.c: check for inconsistent SWF files
-	* libswfdec/swfdec_sound.c: replace SoundChunk with Buffer
-	* libswfdec/swfdec_sound.h: same
-	* libswfdec/swfdec_sprite.c: record actions.  Fix clipping
-	rendering and parsing.
-	* libswfdec/swfdec_sprite.h: Add action buffer array.
-	* player/swf_play.c: minor fixes
-	* test/dump.c: dump more information
-
-2004-09-22  David Schleef  <ds at schleef.org>
-
-	* libswfdec/jpeg/bits.h: reindent
-	* libswfdec/jpeg/huffman.c:
-	* libswfdec/jpeg/huffman.h:
-	* libswfdec/jpeg/jpeg.c:
-	* libswfdec/jpeg/jpeg.h:
-	* libswfdec/jpeg/jpeg_debug.h:
-	* libswfdec/jpeg/jpeg_internal.h:
-	* libswfdec/jpeg/jpeg_rgb_decoder.c:
-	* libswfdec/jpeg/jpeg_rgb_decoder.h:
-	* libswfdec/jpeg/jpeg_rgb_internal.h:
-	* libswfdec/jpeg/test.c:
-	* libswfdec/jpeg/test_rgb.c:
-
-2004-09-17  David Schleef  <ds at schleef.org>
-
-	Switch to using buffers for the input stream.
-	* libswfdec/swf.c: (swfdec_init), (swfdec_decoder_new),
-	(swfdec_decoder_add_buffer), (swfdec_decoder_parse),
-	(swfdec_decoder_free), (swf_parse_header1), (swf_inflate_init),
-	(swf_parse_header2), (swfdec_decoder_get_tag_name),
-	(swfdec_decoder_get_tag_func), (tag_func_ignore_quiet),
-	(tag_func_ignore):
-	* libswfdec/swfdec_bits.h:
-	* libswfdec/swfdec_buffer.c: (swfdec_buffer_queue_new),
-	(swfdec_buffer_queue_get_depth), (swfdec_buffer_queue_free),
-	(swfdec_buffer_queue_push), (swfdec_buffer_queue_pull),
-	(swfdec_buffer_queue_peek):
-	* libswfdec/swfdec_buffer.h:
-	* libswfdec/swfdec_button.c: (tag_func_define_button_2):
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_image.c: (swfdec_image_jpegtables),
-	(tag_func_define_bits_jpeg), (tag_func_define_bits_jpeg_2),
-	(tag_func_define_bits_jpeg_3), (define_bits_lossless):
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate),
-	(swfdec_render_get_frame_index), (swfdec_render_get_audio):
-	* libswfdec/swfdec_sound.c: (tag_func_sound_stream_block),
-	(tag_func_define_sound), (swfdec_sound_mp3_decode_stream):
-	* libswfdec/swfdec_sprite.c: (tag_func_define_sprite):
-	* libswfdec/swfdec_types.h:
-	* test/render.c: (main):
-
-2004-09-13  David Schleef  <ds at schleef.org>
-
-	* libswfdec/swf.c: (swfdec_init), (swfdec_decoder_new): Check
-	SWFDEC_DEBUG env var, and call init in decoder_new().
-
-2004-09-13  David Schleef  <ds at schleef.org>
-
-	* configure.ac: export GLIB_REQUIRES
-	* glib-compat/glib/gfileutils.c: (g_file_test),
-	(g_file_error_quark), (g_file_error_from_errno),
-	(get_contents_stdio), (get_contents_regfile), (get_contents_posix),
-	(get_contents_win32), (g_mkstemp), (g_file_open_tmp),
-	(g_build_pathv), (g_build_path), (g_build_filename),
-	(g_file_read_link), (g_readfile_new), (g_readfile_get_length),
-	(g_readfile_get_contents), (g_readfile_free): more compat stuff
-	* glib-compat/glib/gstrfuncs.c: (g_memdup): same
-	* glib-compat/glib/gstrfuncs.h: same
-
-2004-09-13  David Schleef  <ds at schleef.org>
-
-	* .cvsignore:  Some cvsignore files
-	* gimp-loader/.cvsignore:
-	* glib-compat/.cvsignore:
-	* libswfdec/.cvsignore:
-	* libswfdec/jpeg/.cvsignore:
-	* libswfdec/mpeg/.cvsignore:
-	* pixbuf-loader/.cvsignore:
-	* player/.cvsignore:
-	* plugin/.cvsignore:
-	* test/.cvsignore:
-	* test/dump.c: (main), (dump_sprite):  oops, these never got added
-	* test/render.c: (buffer_free), (main): same
-
-2004-09-13  David Schleef  <ds at schleef.org>
-
-	* configure.ac: Bump soname for liboil and swfdec
-	* libswfdec/art.c: (art_rgb_run_alpha_2): adjust for liboil API
-	* libswfdec/jpeg/jpeg.c: (jpeg_decoder_decode_entropy_segment): same
-	* libswfdec/swf.c: (swfdec_decoder_parse): ERROR->WARNING
-
-2004-09-01  David Schleef  <ds at schleef.org>
-
-	Make more compatibile with glib-compat.
-	* Makefile.am:
-	* README:
-	* configure.ac:
-	* gimp-loader/Makefile.am:
-	* gimp-loader/swf-gimp.c:
-	* libswfdec/Makefile.am:
-	* swfdec.pc.in:
-
-	Glib compatibility stuff.  Mostly taken from glib.
-	* glib-compat/Makefile.am:
-	* glib-compat/glib.h:
-	* glib-compat/glib/Makefile.am:
-	* glib-compat/glib/config.h:
-	* glib-compat/glib/garray.c:
-	* glib-compat/glib/garray.h:
-	* glib-compat/glib/gdebug.h:
-	* glib-compat/glib/gfileutils.c:
-	* glib-compat/glib/gfileutils.h:
-	* glib-compat/glib/glist.c:
-	* glib-compat/glib/glist.h:
-	* glib-compat/glib/gmacros.h:
-	* glib-compat/glib/gmem.c:
-	* glib-compat/glib/gmem.h:
-	* glib-compat/glib/gmessages.h:
-	* glib-compat/glib/gprintfint.h:
-	* glib-compat/glib/gstrfuncs.c:
-	* glib-compat/glib/gstrfuncs.h:
-	* glib-compat/glib/gtypes.h:
-	* glib-compat/glibconfig.h:
-
-2004-09-01  David Schleef  <ds at schleef.org>
-
-	Make less dependent on gobject.  Change API to use SwfdecBuffer.
-	* libswfdec/Makefile.am: remove swf.h
-	* libswfdec/swf.c: (swfdec_decoder_new), (swfdec_decoder_add_data),
-	(swfdec_decoder_add_buffer), (swfdec_decoder_free):
-	* libswfdec/swf.h: remove
-	* libswfdec/swfdec.h:
-	* libswfdec/swfdec_buffer.c: (swfdec_buffer_unref):
-	* libswfdec/swfdec_button.c: (tag_func_define_button_2):
-	* libswfdec/swfdec_button.h:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_font.c: (swfdec_font_dispose),
-	(tag_func_define_font), (tag_func_define_font_2):
-	* libswfdec/swfdec_image.c: (tag_func_define_bits_jpeg),
-	(tag_func_define_bits_jpeg_2), (tag_func_define_bits_jpeg_3),
-	(define_bits_lossless):
-	* libswfdec/swfdec_object.c: (swfdec_object_new),
-	(swfdec_object_unref):
-	* libswfdec/swfdec_object.h:
-	* libswfdec/swfdec_render.c: (swfdec_render_free): Fix memleak.
-	* libswfdec/swfdec_shape.c: (tag_define_shape),
-	(tag_define_shape_3):
-	* libswfdec/swfdec_sound.c: (tag_func_define_sound),
-	(tag_func_sound_stream_head), (swfdec_sound_render),
-	(swfdec_sound_chunk_free):
-	* libswfdec/swfdec_sprite.c: (tag_func_define_sprite):
-	* libswfdec/swfdec_text.c: (swfdec_text_base_init),
-	(swfdec_text_class_init), (swfdec_text_init),
-	(swfdec_text_dispose), (define_text):
-	* pixbuf-loader/io-swf.c: (swf_add_bits):
-	* player/swf_play.c: (main), (do_help), (new_gtk_window),
-	(fill_audio), (sound_setup), (tv_diff), (fixup_buffer),
-	(render_idle_audio), (render_idle_noaudio):
-	* test/render-fast.c: (read_swf_file):
-
-2004-08-27  David Schleef  <ds at schleef.org>
-
-	Add mpeg decoding library ripped from ffmpeg.  Doesn't work.
-	* libswfdec/mpeg/Makefile.am:
-	* libswfdec/mpeg/avcodec.h:
-	* libswfdec/mpeg/bswap.h:
-	* libswfdec/mpeg/common.h:
-	* libswfdec/mpeg/dsputil.h:
-	* libswfdec/mpeg/mpeg_config.h:
-	* libswfdec/mpeg/mpegaudio.h:
-	* libswfdec/mpeg/mpegaudiodec.c: (l1_unscale), (l2_unscale_group),
-	(l3_unscale), (int_pow_init), (int_pow), (decode_init), (dct32),
-	(round_sample), (synth_filter), (imdct12), (imdct36),
-	(check_header), (decode_header), (mpa_decode_header),
-	(mp_decode_layer1), (l2_select_table), (mp_decode_layer2),
-	(seek_to_maindata), (lsf_sf_expand),
-	(exponents_from_scale_factors), (get_bitsz), (huffman_decode),
-	(reorder_block), (compute_stereo), (compute_antialias_integer),
-	(compute_antialias_float), (compute_imdct), (sample_dump),
-	(mp_decode_layer3), (mp_decode_frame), (decode_frame):
-	* libswfdec/mpeg/mpegaudiodectab.h:
-	* libswfdec/mpeg/rational.h:
-
-2004-08-27  David Schleef  <ds at schleef.org>
-
-	Merge prerender into render.  Use SwfdecBuffer.  Make sprites
-	work again.  Make sound work again.  Essentially back up to
-	the level of 0.2.2 now.
-	* libswfdec/render.c: (swfdec_spriteseg_render):
-	* libswfdec/swf.c: (swfdec_decoder_addbits):
-	* libswfdec/swfdec.h:
-	* libswfdec/swfdec_buffer.c:
-	* libswfdec/swfdec_button.c: (swfdec_button_class_init),
-	(swfdec_button_render):
-	* libswfdec/swfdec_button.h:
-	* libswfdec/swfdec_debug.c:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_object.h:
-	* libswfdec/swfdec_render.c: (swfdec_render_iterate),
-	(swfdec_render_get_object_state), (swfdec_render_get_image),
-	(swfdec_render_get_audio):
-	* libswfdec/swfdec_render.h:
-	* libswfdec/swfdec_render_libart.c: (swfdec_shape_render),
-	(swfdec_text_render):
-	* libswfdec/swfdec_render_libart.h:
-	* libswfdec/swfdec_shape.c: (swfdec_shape_class_init),
-	(swfdec_shape_compose):
-	* libswfdec/swfdec_shape.h:
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_class_init),
-	(swfdec_sprite_render), (tag_func_define_sprite):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_text.c: (swfdec_text_class_init):
-	* libswfdec/swfdec_types.h:
-
-2004-08-26  David Schleef  <ds at schleef.org>
-
-	Add new files
-	* libswfdec/swfdec_buffer.c:
-	* libswfdec/swfdec_buffer.h:
-	* libswfdec/swfdec_render.h:
-
-2004-08-26  David Schleef  <ds at schleef.org>
-
-	Remove these
-	* libswfdec/jpeg/conv8x8_f64_s16.h:
-	* libswfdec/jpeg/idct8_f64.h:
-	* libswfdec/jpeg/idct8x8_f64.h:
-	* libswfdec/jpeg/idct8x8_s16.h:
-	* libswfdec/jpeg/sl_block8x8.h:
-	* libswfdec/jpeg/sl_types.h:
-	* libswfdec/jpeg/unzigzag8x8_s16.h:
-
-	rewrite rendering code
-	* libswfdec/Makefile.am:
-	* libswfdec/render.c: (swf_invalidate_irect):
-	* libswfdec/swf.c: (swfdec_decoder_new), (swfdec_decoder_parse),
-	(swfdec_decoder_set_colorspace):
-	* libswfdec/swfdec_button.c: (swfdec_button_class_init):
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/swfdec_layer.c:
-	* libswfdec/swfdec_layer.h:
-	* libswfdec/swfdec_render.c: (swfdec_render_new),
-	(swfdec_render_free), (swfdec_render_iterate),
-	(swfdec_render_seek), (swfdec_render_get_image),
-	(swfdec_render_get_audio), (swfdec_spriteseg_prerender),
-	(swfdec_layer_render):
-	* libswfdec/swfdec_render_libart.c: (swfdec_layervec_render):
-	* libswfdec/swfdec_sound.c: (swfdec_decoder_sound_buffer_append),
-	(swfdec_sound_render), (swfdec_sound_mp3_decode_stream):
-	* libswfdec/swfdec_sound.h:
-	* libswfdec/swfdec_types.h:
-
-2004-08-24  David Schleef  <ds at schleef.org>
-
-	Change malloc/free to g_malloc/g_free.
-	* libswfdec/actions.c: (action_add), (action_substring),
-	(action_string_concat):
-	* libswfdec/art.c: (art_bpath_cat), (art_vpath_cat),
-	(art_vpath_reverse):
-	* libswfdec/jpeg/Makefile.am:
-	* libswfdec/jpeg/jpeg.c: (jpeg_decoder_sof_baseline_dct):
-	* libswfdec/jpeg/test.c: (getfile):
-	* libswfdec/jpeg/test_rgb.c: (main2), (getfile):
-	* libswfdec/render.c: (swf_render_frame):
-	* libswfdec/swf.c: (swfdec_decoder_parse), (swfdec_decoder_free),
-	(swf_parse_header2), (swfdec_decoder_render):
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_image.c: (tag_func_define_bits_jpeg),
-	(tag_func_define_bits_jpeg_2), (tag_func_define_bits_jpeg_3),
-	(define_bits_lossless):
-	* libswfdec/swfdec_render_libart.c: (swfdec_shape_prerender),
-	(swfdec_text_prerender):
-	* libswfdec/swfdec_shape.c: (swf_shape_get_recs):
-	* libswfdec/swfdec_sound.c: (tag_func_sound_stream_block),
-	(swfdec_sound_chunk_free):
-	* libswfdec/swfdec_sound.h:
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_dispose),
-	(swfdec_sprite_add_sound_chunk), (tag_func_define_sprite):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_types.h:
-
-2004-08-11  David Schleef  <ds at schleef.org>
-
-	Lots of hacking.  Modularizing libart dependency.
-	* configure.ac:
-	* libswfdec/Makefile.am:
-	* libswfdec/actions.c: (action_add), (action_subtract),
-	(action_multiply), (action_divide), (action_equal),
-	(action_less_than), (action_logical_and), (action_logical_or),
-	(action_logical_not), (action_string_equal),
-	(action_string_length), (action_substring), (action_int),
-	(action_string_concat):
-	* libswfdec/art.c: (art_svp_make_convex), (art_rgb565_fillrect),
-	(art_rgb_fillrect), (swfdec_art_bpath_from_points),
-	(art_bpath_affine_transform_inplace):
-	* libswfdec/art.h:
-	* libswfdec/color.c: (swfdec_color_apply_transform),
-	(tag_func_set_background_color):
-	* libswfdec/color.h:
-	* libswfdec/proto.h:
-	* libswfdec/render.c: (swf_invalidate_irect), (tag_place_object_2),
-	(tag_remove_object), (tag_remove_object_2), (tag_show_frame),
-	(swf_render_frame):
-	* libswfdec/swf.c: (swfdec_decoder_new), (swfdec_decoder_addbits),
-	(swfdec_decoder_parse), (swfdec_decoder_free),
-	(swfdec_decoder_set_image_size), (swfdec_decoder_get_sound_chunk),
-	(zalloc), (zfree), (swf_inflate_init), (swf_parse_header2),
-	(tag_func_frame_label), (swfdec_decoder_render):
-	* libswfdec/swfdec_bits.c: (swfdec_bits_get_color_transform),
-	(swfdec_bits_get_transform), (swfdec_bits_get_fill_style):
-	* libswfdec/swfdec_bits.h:
-	* libswfdec/swfdec_button.c: (swfdec_button_base_init),
-	(swfdec_button_class_init), (swfdec_button_init),
-	(swfdec_button_dispose), (swfdec_button_prerender),
-	(tag_func_define_button_2):
-	* libswfdec/swfdec_debug.c: (swfdec_debug_log):
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_display.c: (tag_func_place_object_2),
-	(tag_func_remove_object), (tag_func_remove_object_2):
-	* libswfdec/swfdec_font.c: (swfdec_font_base_init),
-	(swfdec_font_class_init), (swfdec_font_init),
-	(swfdec_font_dispose):
-	* libswfdec/swfdec_image.c: (swfdec_image_base_init),
-	(swfdec_image_class_init), (swfdec_image_init),
-	(swfdec_image_dispose), (zalloc), (zfree), (lossless),
-	(swfdec_image_jpegtables), (tag_func_define_bits_jpeg),
-	(tag_func_define_bits_jpeg_2), (tag_func_define_bits_jpeg_3),
-	(define_bits_lossless):
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/swfdec_layer.c: (swfdec_layer_free):
-	* libswfdec/swfdec_layer.h:
-	* libswfdec/swfdec_object.h:
-	* libswfdec/swfdec_rect.c: (swfdec_rect_union_to_masked),
-	(swfdec_rect_intersect), (swfdec_rect_union), (swfdec_rect_copy),
-	(swfdec_rect_is_empty):
-	* libswfdec/swfdec_rect.h:
-	* libswfdec/swfdec_render_libart.c: (swfdec_layervec_render),
-	(art_svp_translate), (art_svp_bbox), (swfdec_shape_prerender),
-	(swfdec_text_prerender), (swf_config_colorspace),
-	(swfdec_render_layervec_free):
-	* libswfdec/swfdec_render_libart.h:
-	* libswfdec/swfdec_shape.c: (swfdec_shape_base_init),
-	(swfdec_shape_class_init), (swfdec_shape_init),
-	(swfdec_shape_dispose), (swfdec_shapevec_free), (get_shape_rec),
-	(tag_func_define_shape), (tag_define_shape), (tag_define_shape_3),
-	(swf_shape_add_styles), (tag_define_shape_2),
-	(swfdec_shape_compose), (swfdec_shape_compose_gradient),
-	(swfdec_gradient_to_palette):
-	* libswfdec/swfdec_shape.h:
-	* libswfdec/swfdec_sound.c: (swfdec_sound_base_init),
-	(swfdec_sound_class_init), (swfdec_sound_init),
-	(swfdec_sound_dispose), (tag_func_sound_stream_block),
-	(tag_func_define_sound), (tag_func_sound_stream_head),
-	(get_soundinfo), (tag_func_start_sound),
-	(tag_func_define_button_sound), (adpcm_decode),
-	(swfdec_sound_mp3_cleanup), (swfdec_sound_mp3_decode):
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_base_init),
-	(swfdec_sprite_class_init), (swfdec_sprite_init),
-	(swfdec_sprite_dispose), (swfdec_sprite_prerender),
-	(swfdec_spriteseg_place_object_2):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_text.c: (swfdec_text_get_type), (define_text):
-	* libswfdec/swfdec_text.h:
-	* libswfdec/swfdec_transform.c: (swfdec_transform_is_translation),
-	(swfdec_transform_multiply), (swfdec_transform_invert),
-	(swfdec_transform_init_identity), (swfdec_transform_translate),
-	(swfdec_transform_get_expansion):
-	* libswfdec/swfdec_transform.h:
-	* libswfdec/swfdec_types.h:
-
-2004-08-05  David Schleef  <ds at schleef.org>
-
-	* libswfdec/art.c: (swfdec_art_bpath_from_points),
-	(art_bpath_affine_transform_inplace): Minor speedup.
-	* libswfdec/art.h:
-
-2004-08-05  David Schleef  <ds at schleef.org>
-
-	Store shape points as shorts, not doubles. (Saves 85% memory.)
-	* libswfdec/art.c: (swfdec_art_bpath_from_points):
-	* libswfdec/art.h:
-	* libswfdec/swfdec_shape.c: (swf_shape_vec_new),
-	(swf_shape_get_recs), (swfdec_shape_prerender):
-	* libswfdec/swfdec_shape.h:
-	* libswfdec/swfdec_text.c: (swfdec_text_prerender):
-
-2004-08-04  David Schleef  <ds at schleef.org>
-
-	convert jpeg to liboil
-	* libswfdec/Makefile.am:
-	* libswfdec/jpeg/Makefile.am:
-	* libswfdec/jpeg/huffman.c:
-	* libswfdec/jpeg/jpeg.c: (jpeg_decoder_decode_entropy_segment):
-	* libswfdec/swf.c: (swfdec_decoder_parse), (tag_func_dumpbits): make
-	more quiet.
-	* libswfdec/swfdec_bits.h: compile fix
-
-2004-08-03  David Schleef  <ds at schleef.org>
-
-	Fixes for bits_t change
-	* libswfdec/internal.h:
-	* libswfdec/swfdec_bits.c: (swfdec_bits_needbits):
-	* libswfdec/swfdec_debug.c:
-	* libswfdec/swfdec_image.c: (lossless),
-	(swfdec_image_colormap_decode):
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/swfdec_sound.c: (swfdec_sound_mp3_decode_stream):
-
-2004-08-02  David Schleef  <ds at schleef.org>
-
-	Global change bits_t -> SwfdecBits.  Prepend swfdec_bits_ to
-	all bit related functions.
-	* Makefile.am:
-	* configure.ac:
-	* gimp-loader/swf-gimp.c: (load_dialog):
-	* libswfdec/Makefile.am:
-	* libswfdec/actions.c: (get_actions),
-	(swfdec_action_script_execute):
-	* libswfdec/bits.h:
-	* libswfdec/color.c: (tag_func_set_background_color):
-	* libswfdec/get.c:
-	* libswfdec/get.h:
-	* libswfdec/proto.h:
-	* libswfdec/render.c: (art_place_object_2), (art_remove_object),
-	(art_remove_object_2):
-	* libswfdec/swf.c: (swfdec_decoder_parse), (dumpbits),
-	(swf_parse_header1), (swf_parse_header2), (swf_parse_tag),
-	(tag_func_dumpbits), (tag_func_frame_label):
-	* libswfdec/swfdec_button.c: (tag_func_define_button_2):
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_display.c: (tag_func_place_object_2),
-	(tag_func_remove_object), (tag_func_remove_object_2):
-	* libswfdec/swfdec_font.c: (tag_func_define_font),
-	(get_kerning_record), (tag_func_define_font_2):
-	* libswfdec/swfdec_image.c: (swfdec_image_jpegtables),
-	(tag_func_define_bits_jpeg), (tag_func_define_bits_jpeg_2),
-	(tag_func_define_bits_jpeg_3), (define_bits_lossless):
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/swfdec_shape.c: (get_shape_rec),
-	(tag_func_define_shape), (art_define_shape), (art_define_shape_3),
-	(swf_shape_add_styles), (swf_shape_get_recs):
-	* libswfdec/swfdec_shape.h:
-	* libswfdec/swfdec_sound.c: (tag_func_sound_stream_block),
-	(tag_func_define_sound), (tag_func_sound_stream_head),
-	(get_soundinfo), (tag_func_start_sound),
-	(tag_func_define_button_sound), (adpcm_decode):
-	* libswfdec/swfdec_sprite.c: (tag_func_define_sprite),
-	(swfdec_spriteseg_place_object_2),
-	(swfdec_spriteseg_remove_object),
-	(swfdec_spriteseg_remove_object_2):
-	* libswfdec/swfdec_text.c: (define_text):
-	* swfdec.pc.in:
-	* test/Makefile.am:
-	* test/display-shape.c:
-
-2004-08-02  David Schleef  <ds at schleef.org>
-
-	Lots and lots of hacking.
-	* libswfdec/art.c: (art_rgb_run_alpha_2), (art_rgb_fillrect),
-	(art_rgb_svp_alpha_compose_callback), (art_rgb_svp_alpha_callback):
-	* libswfdec/art.h:
-	* libswfdec/mpglib/Makefile.am:
-	* libswfdec/mpglib/README:
-	* libswfdec/mpglib/clipconv_f32_s16.h:
-	* libswfdec/mpglib/common.c:
-	* libswfdec/mpglib/dct32_f32.h:
-	* libswfdec/mpglib/dct64_i386.c:
-	* libswfdec/mpglib/decode_i386.c:
-	* libswfdec/mpglib/huffman.h:
-	* libswfdec/mpglib/interface.c:
-	* libswfdec/mpglib/l2tables.h:
-	* libswfdec/mpglib/layer1.c:
-	* libswfdec/mpglib/layer2.c:
-	* libswfdec/mpglib/layer3.c:
-	* libswfdec/mpglib/main.c:
-	* libswfdec/mpglib/mpglib.h:
-	* libswfdec/mpglib/mpglib_config.h:
-	* libswfdec/mpglib/mpglib_internal.h:
-	* libswfdec/mpglib/tabinit.c:
-	* libswfdec/render.c: (swf_render_frame):
-	* libswfdec/sound.c:
-	* libswfdec/swf.c: (swfdec_init), (swfdec_decoder_new),
-	(swfdec_decoder_eof), (swfdec_decoder_free),
-	(swfdec_decoder_set_image_size), (swf_inflate_init),
-	(swf_parse_header2), (swf_parse_tag), (swfdec_decoder_render):
-	* libswfdec/swfdec.h:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_image.c: (swfdec_image_dispose):
-	* libswfdec/swfdec_layer.c: (swfdec_render_get_layer),
-	(swfdec_layervec_render):
-	* libswfdec/swfdec_shape.c: (swfdec_shape_get_fill0style),
-	(swfdec_shape_get_fill1style), (swfdec_shape_get_linestyle),
-	(swf_shape_get_recs), (swfdec_shape_prerender):
-	* libswfdec/swfdec_sound.c: (tag_func_sound_stream_block),
-	(tag_func_define_sound), (tag_func_sound_stream_head),
-	(swfdec_sound_mp3_init), (swfdec_sound_mp3_decode),
-	(swfdec_sound_mp3_decode_stream):
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_dispose),
-	(swfdec_sprite_prerender), (tag_func_define_sprite),
-	(swfdec_spriteseg_remove_object),
-	(swfdec_spriteseg_remove_object_2):
-	* libswfdec/swfdec_text.c: (define_text), (swfdec_text_prerender):
-	* swfdec.pc.in:
-	* test/Makefile.am:
-
-2004-07-02  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am:  Don't use mpglib
-	* libswfdec/swf.c: (swf_parse_tag):
-	* libswfdec/swfdec_debug.c:
-	* libswfdec/swfdec_object.c: (swfdec_object_dump):
-	* libswfdec/swfdec_object.h:
-	* test/Makefile.am:
-
-2004-06-05  David Schleef  <ds at schleef.org>
-
-	* libswfdec/Makefile.am: Global change from SWF_DEBUG to SWFDEC_LOG,
-	SWFDEC_DEBUG, etc.
-	* libswfdec/actions.c: (get_actions),
-	(swfdec_action_script_execute):
-	* libswfdec/color.c: (transform_color):
-	* libswfdec/render.c: (art_place_object_2), (swf_render_frame),
-	(swfdec_spriteseg_prerender):
-	* libswfdec/sound.c: (tag_func_sound_stream_block),
-	(tag_func_define_sound), (tag_func_sound_stream_head),
-	(swfdec_sound_render):
-	* libswfdec/swf.c: (swfdec_decoder_new), (swfdec_decoder_parse),
-	(swf_parse_header2), (swf_parse_tag), (tag_func_ignore):
-	* libswfdec/swfdec_button.c: (tag_func_define_button_2):
-	* libswfdec/swfdec_debug.c: (swfdec_debug_log),
-	(swfdec_debug_set_level), (swfdec_debug_get_level):
-	* libswfdec/swfdec_debug.h:
-	* libswfdec/swfdec_decoder.h:
-	* libswfdec/swfdec_font.c: (tag_func_define_font),
-	(tag_func_define_font_2):
-	* libswfdec/swfdec_image.c: (swfdec_image_jpegtables),
-	(tag_func_define_bits_jpeg), (tag_func_define_bits_jpeg_2),
-	(tag_func_define_bits_jpeg_3), (define_bits_lossless):
-	* libswfdec/swfdec_internal.h:
-	* libswfdec/swfdec_object.c: (swfdec_object_get):
-	* libswfdec/swfdec_shape.c: (tag_func_define_shape),
-	(art_define_shape), (art_define_shape_3), (swf_shape_add_styles),
-	(swf_shape_get_recs), (swfdec_shape_prerender),
-	(swfdec_shape_compose), (swfdec_shape_compose_gradient):
-	* libswfdec/swfdec_sound.c: (tag_func_sound_stream_block),
-	(tag_func_define_sound), (tag_func_sound_stream_head),
-	(swfdec_sound_render):
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_prerender),
-	(swfdec_sprite_render), (tag_func_define_sprite),
-	(swfdec_spriteseg_place_object_2):
-
-2004-06-05  David Schleef  <ds at schleef.org>
-
-	* COPYING: switch to LGPL
-	* INSTALL: unknown 
-	* autogen.sh: bump libtool to 1.5
-	* compile: remove
-	* configure.ac: add majorminor
-	* depcomp: remove
-	* install-sh: remove
-	* libswfdec/Makefile.am: hacking
-	* libswfdec/proto.h:
-	* libswfdec/render.c: (art_show_frame), (swf_render_frame),
-	(swfdec_spriteseg_prerender):
-	* libswfdec/swfdec_button.c: (swfdec_button_class_init),
-	(tag_func_define_button_2):
-	* libswfdec/swfdec_button.h:
-	* libswfdec/swfdec_font.c: (tag_func_define_font),
-	(tag_func_define_font_2):
-	* libswfdec/swfdec_image.c: (tag_func_define_bits_jpeg),
-	(tag_func_define_bits_jpeg_2), (tag_func_define_bits_jpeg_3),
-	(define_bits_lossless):
-	* libswfdec/swfdec_object.c: (swfdec_object_class_init),
-	(swfdec_object_get):
-	* libswfdec/swfdec_object.h:
-	* libswfdec/swfdec_shape.c: (swfdec_shape_class_init),
-	(art_define_shape), (art_define_shape_3):
-	* libswfdec/swfdec_shape.h:
-	* libswfdec/swfdec_sound.c: (tag_func_define_sound),
-	(tag_func_sound_stream_head):
-	* libswfdec/swfdec_sprite.c: (swfdec_sprite_class_init),
-	(swfdec_sprite_render), (tag_func_define_sprite):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_text.c: (swfdec_text_class_init), (define_text):
-	* libswfdec/swfdec_text.h:
-	* libswfdec/version_script: remove
-	* missing: remove
-	* mkinstalldirs: remove
-
-2004-04-20  David Schleef  <ds at schleef.org>
-
-	Cleanups.
-	* libswfdec/swfdec_button.c: (tag_func_define_button_2):
-	* libswfdec/swfdec_font.c: (tag_func_define_font),
-	(tag_func_define_font_2):
-	* libswfdec/swfdec_image.c: (tag_func_define_bits_jpeg),
-	(tag_func_define_bits_jpeg_2), (tag_func_define_bits_jpeg_3),
-	(define_bits_lossless):
-	* libswfdec/swfdec_shape.c: (art_define_shape),
-	(art_define_shape_3):
-	* libswfdec/swfdec_sound.c: (tag_func_define_sound),
-	(tag_func_sound_stream_head):
-	* libswfdec/swfdec_sprite.c: (tag_func_define_sprite):
-	* libswfdec/swfdec_text.c: (define_text):
-	* player/swf_play.c: (render_idle), (convert_image):
-
-2004-04-20  David Schleef  <ds at schleef.org>
-
-	Fixes to get swfdec compiling and semi-working again.
-	* configure.ac:
-	* libswfdec/swf.c: (swfdec_decoder_new):
-	* libswfdec/swfdec_button.c: (swfdec_button_get_type):
-	* libswfdec/swfdec_button.h:
-	* libswfdec/swfdec_font.c: (swfdec_font_get_type),
-	(tag_func_define_font), (tag_func_define_font_2):
-	* libswfdec/swfdec_font.h:
-	* libswfdec/swfdec_image.c: (swfdec_image_get_type):
-	* libswfdec/swfdec_image.h:
-	* libswfdec/swfdec_object.c:
-	* libswfdec/swfdec_object.h:
-	* libswfdec/swfdec_shape.c: (swfdec_shape_get_type),
-	(swfdec_shape_init):
-	* libswfdec/swfdec_shape.h:
-	* libswfdec/swfdec_sprite.c: (tag_func_define_sprite):
-	* libswfdec/swfdec_sprite.h:
-	* libswfdec/swfdec_text.c: (swfdec_text_init):
-
-2004-02-25  David Schleef  <ds at schleef.org>
-
-	* configure.ac: Add liboil dependency.
-	* libswfdec/Makefile.am: Add liboil dependency.
-	* libswfdec/art.c: (art_rgb_svp_alpha2), (art_rgb_fill_run),
-	(art_rgb_run_alpha), (compose_const_rgb888_u8_ref),
-	(compose_const_rgb888_u8_fast), (compose_rgb888_u8_ref),
-	(compose_const_rgb888_rgb888_ref), (compose_rgb888_rgb888_ref),
-	(art_rgb_svp_alpha_callback): Convert to 32-bit RGB colorspace.
-	* libswfdec/color.c: (swf_config_colorspace): same
-	* libswfdec/jpeg/jpeg_rgb_decoder.c: (convert): same
-	* libswfdec/shape.c: (swfdec_gradient_to_palette): same
-	* libswfdec/swf.c: (swfdec_decoder_new): same
-	* libswfdec/swfdec_image.c: (define_bits_lossless),
-	(swfdec_image_colormap_decode): same
-
+The Swfdec project does not use a ChangeLog anymore. Please use the git log
+functionality for an eqivalent.
+If you got this as a package, please see http://swfdec.freedesktop.org for
+obtaining the git sources.
commit 7cdbf2f344ecd892200197d4596b63f8d5ab3ea3
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Apr 1 13:32:57 2008 +0200

    implement <TAB> key moving focus
    
    - does not descend into movies that have tabChildren set yet.
    - also implements invalidating the focusrect, but that's unfortunately
      slightly broken.

diff --git a/swfdec/swfdec_movie_asprops.c b/swfdec/swfdec_movie_asprops.c
index 55b8462..d004ecf 100644
--- a/swfdec/swfdec_movie_asprops.c
+++ b/swfdec/swfdec_movie_asprops.c
@@ -463,8 +463,11 @@ mc_focusrect_set (SwfdecMovie *movie, const SwfdecAsValue *val)
   }
 
   if (b != actor->focusrect) {
+    SwfdecPlayerPrivate *priv = SWFDEC_PLAYER (cx)->priv;
+    gboolean had_focusrect = swfdec_actor_has_focusrect (priv->focus);
     actor->focusrect = b;
-    swfdec_movie_invalidate_last (SWFDEC_MOVIE (actor));
+    if (had_focusrect != swfdec_actor_has_focusrect (priv->focus))
+      swfdec_movie_invalidate_last (SWFDEC_MOVIE (priv->focus));
   }
 }
 
diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index d18a1d3..ba7a880 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -1110,6 +1110,8 @@ swfdec_player_grab_focus (SwfdecPlayer *player, SwfdecActor *actor)
     klass = SWFDEC_ACTOR_GET_CLASS (prev);
     if (klass->focus_out)
       klass->focus_out (prev);
+    if (swfdec_actor_has_focusrect (prev))
+      swfdec_movie_invalidate_last (SWFDEC_MOVIE (prev));
   }
   priv->focus_previous = prev;
   priv->focus = actor;
@@ -1121,6 +1123,8 @@ swfdec_player_grab_focus (SwfdecPlayer *player, SwfdecActor *actor)
     klass = SWFDEC_ACTOR_GET_CLASS (actor);
     if (klass->focus_in)
       klass->focus_in (actor);
+    if (swfdec_actor_has_focusrect (actor))
+      swfdec_movie_invalidate_last (SWFDEC_MOVIE (actor));
   }
   swfdec_player_broadcast (player, SWFDEC_AS_STR_Selection, SWFDEC_AS_STR_onSetFocus, 2, vals);
 }
@@ -1375,10 +1379,108 @@ swfdec_player_emit_signals (SwfdecPlayer *player)
   }
 }
 
+static int
+swfdec_player_focus_sort (gconstpointer ca, gconstpointer cb)
+{
+  const SwfdecMovie *a = ca;
+  const SwfdecMovie *b = cb;
+
+  if (a->extents.y0 < b->extents.y0)
+    return 1;
+  else if (a->extents.y0 > b->extents.y0)
+    return -1;
+
+  if (a->extents.x0 < b->extents.x0)
+    return 1;
+  else if (a->extents.x0 > b->extents.x0)
+    return -1;
+
+  if (a->depth < b->depth)
+    return 1;
+  else if (a->depth > b->depth)
+    return -1;
+
+  /* provide consistent sorting as long as we are active */
+  if (a < b)
+    return -1;
+  else
+    return 1;
+}
+
+static gboolean
+swfdec_movie_can_tab (SwfdecMovie *movie)
+{
+  if (!SWFDEC_IS_ACTOR (movie))
+    return FALSE;
+
+  if (movie->parent == NULL)
+    return FALSE;
+
+  /* FIXME */
+  return TRUE;
+}
+
+static gboolean
+swfdec_player_handle_tab_list (SwfdecPlayer *player, SwfdecMovie *movie, SwfdecMovie *stop, gboolean forward)
+{
+  SwfdecPlayerPrivate *priv;
+  SwfdecMovie *cur;
+  GList *list, *walk;
+
+  priv = player->priv;
+  if (movie) {
+    list = g_list_copy (movie->list);
+  } else {
+    list = g_list_copy (priv->roots);
+  }
+
+  list = g_list_sort (list, swfdec_player_focus_sort);
+  if (!forward)
+    list = g_list_reverse (list);
+  if (stop) {
+    walk = g_list_find (list, stop);
+    g_assert (walk);
+    walk = walk->next;
+  } else {
+    walk = list;
+  }
+  do {
+    if (walk == NULL) {
+      if (movie) {
+	if (swfdec_player_handle_tab_list (player, movie->parent, movie, forward))
+	  goto success;
+      }
+      if (cur != NULL)
+	walk = list;
+      else
+	break;
+    }
+    cur = walk->data;
+    if (swfdec_movie_can_tab (cur)) {
+      swfdec_player_grab_focus (player, SWFDEC_ACTOR (cur));
+      goto success;
+    }
+    walk = walk->next;
+  } while (cur != stop);
+
+  g_list_free (list);
+  return FALSE;
+
+success:
+  g_list_free (list);
+  return TRUE;
+}
+
 static void
 swfdec_player_handle_tab (SwfdecPlayer *player, gboolean forward)
 {
-  SWFDEC_FIXME ("handle tab properly");
+  /* FIXME: add tabIndex handling here */
+  if (player->priv->focus) {
+    SwfdecMovie *focus = SWFDEC_MOVIE (player->priv->focus);
+    swfdec_player_handle_tab_list (player, focus->parent, focus, forward);
+  } else {
+    swfdec_player_handle_tab_list (player, NULL, NULL, forward);
+  }
 }
 
 static void


More information about the Swfdec-commits mailing list