2006-01-22  David Schleef  <ds@schleef.org>

	* README:
	* plugin/plugin.c:
	  Update some words.

2006-01-22  David Schleef  <ds@schleef.org>

	* plugin/Makefile.am:
	  Don't link against mozilla libs, since we don't actually
	  use them.

2006-01-09  David Schleef  <ds@schleef.org>

	* NEWS: update the news
	* configure.ac: bump version

2006-01-09  David Schleef  <ds@schleef.org>

	* configure.ac: remove more player bits
	* player/.cvsignore:

2006-01-09  David Schleef  <ds@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@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@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@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@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@schleef.org>

	* libswfdec/swfdec_button.c: (swfdec_button_dispose): Fix
	  a leak.

2005-12-05  David Schleef  <ds@schleef.org>

	* README:  The Limitations section was out of date.

2005-11-30  David Schleef  <ds@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@schleef.org>

	* libswfdec/swfdec_button.c: Fix silly crasher and memleak.

2005-10-25  David Schleef  <ds@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@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@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@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@schleef.org>

	* plugin/plugin.c: Update message.

2005-10-16  Eric Anholt  <anholt@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@FreeBSD.org>

	* libswfdec/actions_tags.c: (action_push):
	Fix a memory leak in string pushes.

2005-10-10  David Schleef  <ds@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@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@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@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@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@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@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@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@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@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@schleef.org>

	* MAINTAINERS: add contact info
	* README:

2005-05-21  David Schleef  <ds@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@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@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@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@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@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@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@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@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@schleef.org>

	* libswfdec/actions_tags.c: (action_call_method): workaround
	for TAG_C corruption.

2005-04-22  David Schleef  <ds@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@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@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@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@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@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@FreeBSD.org>

	* .cvsignore:
	* glib-compat/glib/.cvsignore:
	* libswfdec/js/.cvsignore:
	* plugin/.cvsignore:
	Add some more .cvsignore bits.

2005-04-07  Eric Anholt  <anholt@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@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@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@schleef.org>

	* libswfdec/swf.c: (tag_func_ignore): Fix segfault.

2005-04-07  Eric Anholt  <anholt@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@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@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@schleef.org>

	* libswfdec/actions.c: (action_push): Check that the register
	isn't NULL before copying.

2005-03-24  David Schleef  <ds@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@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@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@schleef.org>

	* configure.ac: version bump

2005-03-24  David Schleef  <ds@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@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@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@schleef.org>

	* configure.ac: use $MOZILLA_CONFIG, not mozilla-config

=== release 0.3.3 ===

2005-03-17  David Schleef  <ds@schleef.org>

	* configure.ac: version bump

2005-03-17  David Schleef  <ds@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@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@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@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@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@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@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@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@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@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@schleef.org>

	* libswfdec/swfdec_render_cairo.c: (draw_x): oops, fix typo.

2004-12-08  David Schleef  <ds@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@schleef.org>

	* configure.ac:
	* gimp-loader/Makefile.am: Install gimp plugin into the directory
	suggested by pkg-config.

2004-11-16  David Schleef  <ds@schleef.org>

	* libswfdec/Makefile.am: put headers in /usr/include/swfdec-0.3
	* swfdec.pc.in: same

2004-11-15  David Schleef  <ds@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@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@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@schleef.org>

	* configure.ac: bump nano

=== release 0.3.1 ===

2004-11-04  David Schleef  <ds@schleef.org>

	* Makefile.am: prep for release
	* configure.ac:
	* player/Makefile.am:
	* plugin/Makefile.am:

2004-11-04  David Schleef  <ds@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@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@schleef.org>

	* player/swf_play.c: (render_idle_audio): endianness fixes

2004-10-08  David Schleef  <ds@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@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@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@schleef.org>

	* Makefile.am: distcheck fixes
	* configure.ac:
	* libswfdec/Makefile.am:

2004-10-05  David Schleef  <ds@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@schleef.org>

	* libswfdec/Makefile.am:
	* libswfdec/swfdec_actions.h: new file

2004-10-04  David Schleef  <ds@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@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@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@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@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@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@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@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@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@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@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@schleef.org>

	Add new files
	* libswfdec/swfdec_buffer.c:
	* libswfdec/swfdec_buffer.h:
	* libswfdec/swfdec_render.h:

2004-08-26  David Schleef  <ds@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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

