2001-02-09  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* *.[ch] : add GPL header everywhere.

2001-02-02  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/oms_config.c (omsConfigOpen): cleanup.

	* src/oms/oms.c (oms_init): call omsConfigOpen() here
	for future use by the plugin_loading func.
	* src/oms/config-engine.[ch]: cleanup.

	* src/oms/plugin_mgr.c (plugin_print_all): new function.
	(plugin_mgr_init): call scandir() ourself, OMI shouldn't
	have to know about plugin_mgr function.
	Clean up the mess.

2001-01-27  Dominik Schnitzer  <dominik@schnitzer.at>
	* src/plugins/output/video/video_out_sdl.c (check_events):
	Make mouse cursor vanish after 3 secs of no mousemoves
 
2001-01-19  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/thread_demux.c (oms_thread_demux_stop): destroy
	mutex and condition.
	(_demux): slight optimisations, 
	reduce number of instructions from 315 to 275.
	(_demux): oops, this function is static.

2001-01-15  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/oms_config.c (output_audio_update): 
	reversed change that made oms crash when changing
	output plugins put my (c) header here as I forgotten
	to do so when commiting this file...
	
	Also, please avoid to modify a file only for the
	pleasure of changing coding style. Thanks.

	* src/oms/buf.c (oms_buf_get): do not return the 
	latest entry walked in the list if we do not find
	an entry with the right buf_id.

	* src/plugin/codec/mpeg2dec/libmpeg2/decode.c (mpeg2_init): 
	Done with Walken, 
	don't init Idct two time to avoid rendering bug.
	
	* src/oms/oms.c (omsPartPlayAutoStop): workaround,
	done with Walken... until libmpeg2 can handle bad
	stream (and stream change), we need to reopen the
	mpeg2dec plugin (set status to pause, flush the 
	buffer, reopen, change stream, play again).

	* src/oms/buf.c (oms_buf_free): if entry state is 
	VALID at freeing time, decrease the entries_valid
	counter.

	This fix another 100% CPU usage bug, 
	when thread_demux wasn't signaling the input condition
	cause the buffer to be processed list was empty but the
	counter was not cause of entry not got but freed.

	* src/oms/thread_input.c (_oms_thread_input): don't
	use pthread_cond_timed_wait here, cause the condtion
	will be signaled by the demux thread when there will
	be free buffer space anyway...

	Fix the bug where OMS was using 100% CPU usage on pause.

2001-01-14  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/thread_input.c (_oms_thread_input): set status
	to STOP when there is no more input and the buffer is
	empty (this stop the demux thread and avoid 100% CPU
	usage at the end of a DVD).

2001-01-12  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/buf.c (oms_buf_get): removed uneeded check.
	(oms_buf_get): using break make gcc optimize better
	(about 2 instructions less, I don't remember).

	* src/oms/oms_config.c (output_audio_update): 
	(output_video_update): do not pass NULL as fourcc_out.

	* src/oms/buf.c (oms_buf_free): call list_del anyway
	cause the entry may not have been got (oms_buf_get()
	not called).
	(oms_buf_free): 
	(oms_buf_flush):
	use assert().
	(oms_buf_exit): free all entry and the buffer.
	destroy the lists mutex.

	* src/oms/thread_demux.c (oms_thread_demux_kick): 
	(_thread_demux): 
	* src/oms/thread_input.c (_oms_thread_input): 
	(oms_thread_input_kick): 

	Fix possible races conditions.
	
	* src/oms/buf.c : 
	* src/oms/buf.h :

	sync with Dent change...
	
	* src/plugin/nav/nav_file.c (_dvd_buf_validate): 
	* src/plugin/decaps/decaps_vcd.c (_vcd_decaps): 
	* src/plugin/decaps/decaps_dummy.c (_dummy_decaps): no need
	to invalidate the buffer, as it was not validated.

	* src/oms/buf.c (oms_buf_free) 
	changed name to oms_buf_invalidate.
	
	* src/plugin/decaps/decaps_ps.c (_ps_decaps): 
	* src/plugin/nav/nav_dvd.c (_dvd_buf_validate): don't
	call oms_buf_free if the buffer wasn't validated.

	* src/oms/buf.c (oms_buf_alloc): lock when adding
	to freelist, fixed a bug where a list_del could occur
	2 time.
	(oms_buf_get): optimize...


2001-01-11  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/buf.c: 
	* include/oms/buf.h:

	complete reimplementation of the buffering done with Dent.
	Also re-adapted all plugins to use the new implementation.

	Cleanup of oms.c, also lock condition mutex before signaling /
	waiting on a condition.

2001-01-10  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/buf.c (oms_fastalloc): 
	(oms_buf_alloc): 
	(oms_buf_free): 
	do not only cache entry->mem, also cache entry...
	This avoid us to allocate a buf_entry_t structure at
	each oms_buf_alloc() call.

	* include/oms/buf.h: 
	* src/oms/buf.c (oms_fastalloc): avoid a double check again.
	
	* src/oms/buf.c (oms_buf_init): 
	(oms_buf_exit): 
	(oms_fastalloc): 
	(oms_buf_free): 
	(oms_fastalloc): 
	* include/oms/buf.h: 
	move mem_pool inside the buf_t structure, as it
	is buffer dependant.
	
	* src/oms/buf.c:
	(oms_buf_alloc): avoid a double check.

	* src/oms/buf.c: (string2FOURCC):
	* src/oms/plugin_mgr.c (string2FOURCC): move this
	function to the place it really belong.

2001-01-09  Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
        * src/plugin/output/audio/audio_* 
          changed fourcc to output
        * src/plugin/nav/nav_*
          changed so output plugin dependency checked
        * src/oms/plugin_mgr.c
          added code to load plugins based on uint32_t fourcc
          changed _plugin_string2fourcc to plugin_string2fourcc
       Note change requires omi to be re-checked out

2001-01-04  David Lehn  <dlehn@vt.edu>

	* src/plugin/codec/spudec/Makefile.am:
	* src/plugin/output/video/Makefile.am:
	link to liboms

	* src/plugin/input/nav_vcd.c:
	use pluginLoad() return value correctly

2000-12-29 John McCullough   <jcmdev0@netscape.net>
	* Added popup menu for the playlist.

2000-12-26 Dominik Schnitzer <dominik@schnitzer.at>
        * src/oms/playlist_misc.c distinction between playing row 
        and selected row.
        big cleanups
        gtk fixes

        * src/oms/playlist_op.c
        rewrote playlist load, save and file adding functions
        file adding now checks for the file type and accessability
        Commented the source :)
        major cleanups
        rewrote ~ 80% of the playlist stuff
        cleanups, we free allocated memory, on exit.
        code should be stable now, playlist behaves quite normal now :)
        fixed playlist saving/loading  
        playlist format changed

	* src/oms/playlist.c gtk fixes, changes, cleanups

2000-12-21  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/config-engine.c (load_file_in_memory): 
	handle fopen error better.
	(check_for_directory): new function, if the filename
	contain a directory, create it.

	* src/oms/Makefile.am (liboms_la_SOURCES):
	* include/oms/recycler.h: 
	* src/oms/recycler.c: added to the repository,
	will be needed for new buffer implementation...
	This code is (c) Bertrand Petit.

	* src/plugin/output/video/configure.incl: correct a typo.

	* src/oms/oms_config.c (create_default_config):new function.

	* src/ui/gtk/main.c (video_plugin_load): don't setup
	a default output plugins here, return -1 on error.

	* src/oms/config-engine.c (config_get): remove
	thrailling space at the end of the string.

	* src/ui/gtk/config_gui.c (_create_radio): use strncmp.

2000-12-21  David Lehn  <dlehn@vt.edu>

	* m4/vo.m4: Copied from libvo.

	* various config/makefiles: updated to use newer libvo.

2000-12-19  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/ui/gtk/main.c (audio_plugin_load): oops,
	default output audio plugin to sys, this should
	correct the sigsegv when running oms without any
	configuration file.

	* src/oms/plugin_mgr.c (pluginFind): removed some
	debuging printf.

	* src/plugin/decaps/decaps_ps.c (_handle_audio_spu): don't
	issue an error (unhandled audio stream xxx) if this is an
	spu stream we do not want (not the one we selected).
	(Thanks to Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
	and Dominik Schnitzer <dominik@schnitzer.at> for helping 
	fixing this bug).
	
	* src/ui/gtk/config_gui.c (_create_radio): fix the bug
	where > 1 radio button could be selected.

	* src/oms/config-engine.c (config_get_clean): 
	new function, remove (eventual) space at the end of the string.

	* src/oms/oms.c: 
	reverted previous change for regression testing.

	(_demux): only free the buffer if we got one.

	(_demux): removed not necessary check.

	(_demux):
	(check_output_audio): 
	new function used by _demux to check if we need to drop frame.
	
	(set_status_stop): put back the oms_buf_flush call.

2000-12-18  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/ui/gtk/config_gui.c (_create_radio): 
	(_create_parent): first attempt to only have one
	radio button selected at a time...

	* src/plugin/decaps/decaps_ps.c (_handle_pack_hdr): 
	(_handle_system_hdr): 
	(_handle_stream_padding): 
	(_handle_audio_spu):
	(_handle_pci_dsi): 
	(_handle_unknow):  new functions, used in ps_decaps()...
	The code is now a lot more clean, and error handling is better.

	* src/oms/buf.c: more cleanup.

	* src/oms/oms.c (set_status_stop): call oms_buf_flush
	for all kind of stream.
	(_demux): call oms_buf_free only if we got a buffer.

	* src/oms/buf.c (oms_buf_init): do not alloc mem_pool.
	(oms_buf_exit): do not free mem_pool.
	(oms_fastalloc): removed, the pool was never used and
	anyway it would have been more slow than malloc 
	(it was O(n) with n < 100 )... I have a scheme that is O(1)
	and that I'll add later.
	(oms_buf_alloc): cleaned up for the change.
	(oms_buf_free): mem_pool no longer exist.
	(oms_buf_newentry): removed, do the calloc for the new entry
	in the caller, this function was just duplicating an if statement.

	* src/oms/plugin_mgr.c (_plugin_string2fourcc): 
	argument is const.
	(fourcc_cmp): now compare whole fourcc array,
	all the fourcc specified in the second fourcc array
	must be in the first fourcc array.
	(pluginFind): merged pluginFindPath into pluginFind,
	now it also take two fourcc array (in and out) as argument...
	pluginFindNext is now unused, so removed.
	(pluginLoad): take two fourcc string (in and out), which
	are converted to 32 bit integer.

	* src/* : modified all the direct / indirect call
	to pluginLoad to match it's new prototype.

	Now, we have a decent, 
	working fourcc_in and out system...
	Next step is to convert all plugins to use existing &
	standardized fourcc.

2000-12-14  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/plugin/nav/nav_dvd.c (_dvd_get_info): divided
	into 3 function...
	(_get_info_program): 
	(_get_info_subpic): 
	(_get_info_audio): 
	that make the coded much more readable...
	also, removed a lot of uneeded code.

	* src/ifo/libifo/ifo_read.c (ifoClose): 
	the last ifo->tbl[id] was never freed 
	(use i <= ID_MAX not i < ID_MAX) as ifo_tbl is
	defined as ifo->tbl[ID_MAX + 1]

	* src/ui/gtk/playlist_op.c (_add_flatlist_entry): 
	no need to strdup a label (1 leak removed).

	* src/ui/gtk/playlist_misc.c (playlist_scan_device): 
	no need to strdup a label (2 leak removed).

	* src/oms/plugin_mgr.c (_plugin_string2fourcc): save string
	before strsep, to be able to free it after (after strsep,
	the string pointer was set to NULL cause strsep move the 
	string pointer until the end of the string).
	(_plugin_string2fourcc): also, just allocate the necessary bit
	for fourcc, we were allocating more than needed.
	(pluginRegister): we were leaking memory allocated by
	_plugin_string2fourcc when we were not at register time...

	Traced all oms initialisation leak with memprof,
	and fixed almost all of them...

	Not fixed are :

	a leak in the skin code,
	a leak in the playlist code,
	a leak at oms pluginScan time,
	a leak in the xml stuff.

	* src/oms/oms_xml.c (xmlParse): don't even attempt to 
	parse xml config stuff if there is no GUI defined callback.

	* src/oms/oms_config.c (omsCreateRawConfig): test config_get
	returned value before strdup'ing it, if the value is not present
	in the config file it would crash.
	(output_audio_update): 
	(output_video_update): avoid a NULL strcmp().

	Now, oms should launch without config file.

	* README : update.

2000-12-13  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/render_mgr.c (_renderLoad): return an int,
	and do not exit in case of error.

	* src/plugin/codec/spudec/dec_spu.c (_spudec_ctrl): 
	setting clut_t was commented out, and it's a need
	for the IFO parser to set subtitle color.
	(_spudec_config): parse color from config_get.

2000-12-11  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/oms_xml.c (xmlParse): divided into tree function.
	(xml_parse): added the ability to parse a file,
	instead of an xml string.

	* src/oms/oms_config.c (omsCreateRawConfig): made stuff cleaner.

	* src/oms/oms_xml.c (_handle_xml_tag): handle the page tag
	(which is for parent).

	* src/plugin/nav/nav_file.c (_file_open): correct error handling.

	* src/oms/plugin_mgr.c (pluginGetDecapsMagic): be more explicit
	for what is an error and what is not.

	* src/oms/oms_config.c (output_video_update): 
	(output_audio_update): 
	(omsCreateRawConfig): use temporary entry to store new
	name for output plugin to use (this avoid to reload output plugins
	each time we modify the general config).
	(call_plugin_cb): call config callback on all active plugins.

	* src/oms/config-engine.c (op_delete_line): 
	(config_del): created, permit to delete a line.

	* src/oms/plugin_mgr.c (_plugin_substr): removed, use strsep instead.
	(_plugin_string2fourcc): 

	some bugfix + function renaming not mentionned here.
	
	* src/ui/gtk/playlist_op.c (_add_flatlist_entry): use snprintf,
	it could be cool if people could take care about buffer overrun 
	problem... 
	(_add_flatlist_entry): removed two unneeded strdup.
	(playlist_load): fixed another possible overflow... no comment...
	use fgets().
	(_add_flatlist_entry): use strrchr, this should fix the playlist problem.

	* src/ui/gtk/config_gui.c (setup_config): oops,
	setup device stuff in setup_config not in setup_after_init(),
	Scan /dev/xxx should be back now.
	(colorpicker_clicked): the color buffer will need to be parsed this way :
	red,green,blue.
	(_create_colorpicker): connect to the color_changed signal.

	* src/plugin/codec/spudec/dec_spu.c (plugin_init): set variable
	attribute to 'subtitle_color'.

	* src/oms/oms_xml.c (_handle_xml_tag): handle variable tag.

2000-12-10  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/config-engine.c: new file,
	now liboms is responssible for handling configuration stuff,
	(necessary for plugin to be able to get new config value),
	I didn't reused the ui/gtk/oms/config_store.c stuff because
	it was dependant on glib.

	Dynamic plugins configuration throught xml now work,
	modified almost all the plugins to set the config member
	of their structure to NULL.
	This function will be called when the plugin configuration
	have changed.
	
	* src/ui/gtk/*.c : got rid of the old cfg_ stuff.
	
	* src/oms/oms_xml.c (_handle_xml_tag): pass a variable name
	to store new config value in.

	* src/oms/oms.c (omsOpenOutputAudio): 
	(omsOpenOutputVideo): 
	* src/oms/buf.c (string2FOURCC): 
	* include/oms/fourcc.h: 
	* src/oms/plugin_mgr.c (fourcc_cmp): 
	new function to compare fourcc.
	(pluginInit): 
	(pluginScan): made argument const.

	(_plugin_register_after_init): 
	now take fourcc_in and  fourcc_out arguments.
	(pluginRegister): 
	(pluginFindPath): more than comparing the plugin name, 
	also compare fourcc_in and fourcc_out, this should get 
	rid of the problem making oms sigsegv with plugin that use subplugins.
	(pluginLoadPath): 

2000-12-09  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/oms_xml.c (_handle_xml_tag): get the name attribute.
	(xmlParse): make the tab string a little more user friendly.

	* src/plugin/output/audio/audio_sys.c (PLUGIN_INIT): oops,
	radio, not checkbox.

	* src/oms/oms_xml.c (_handle_xml_tag): oops typo.

	* src/plugin/codec/spudec/dec_spu.c (plugin_init): 
	pass an xml string for subtitle color configuration.

	* src/ui/gtk/config_gui.c (create_colorpicker): created.
	update gui_cb structure to include pointer on create_colorpicker cb.

	* src/ui/gtk/main.c (main): reordered a little, draw the gtk
	frontend before oms initialization, call setup_config_after_init
	after oms initialization.

	* src/ui/gtk/config_gui.h: 
	* src/ui/gtk/config_gui.c (setup_config): divided into two functions :
	setup_config, and setup_config_after_init...
	the last one is to be called after Oms have inited, the first one is to
	be called before oms initialization.
	(setup_config_after_init): create the static notebook tab.
	(create_parent): 
	(create_radio): two function passed as callback to the xml config subsystem.

	* src/plugin/output/audio/audio_sys.c (PLUGIN_INIT): pass an xml string.

	* src/oms/plugin_mgr.c (_plugin_register_at_init): if xml_config
	exist, call xmlParse in order to parse the xml string, and call
	needed frontend provided callback.

	* src/oms/oms.c (omsRegisterConfigCb): new function, to be used
	by application using liboms for registering GUI dependant callback.

	* src/oms/Makefile.am (liboms_la_LIBADD): liboms link against
	libxml.

	* include/oms/oms.h: include oms_xml.h.
	* src/oms/oms_xml.c: 
	* include/oms/oms_xml.h: new file, ressponssible for parsing
	xml plugin configuration string, and calling frontend callback
	to create GUI dependant widget.
	

	* src/ui/xml/xmltag_widget.h (omsConfigCallback_t): new struct. 

	* src/oms/oms.c (omsConfigPluginCallback): new function.

	* src/ui/gtk/config_gui.c: use PLUGIN_ID macros instead
	of raw number.

	* include/oms/plugin.h: new members : xml_config.
	* src/oms/plugin_mgr.c (_plugin_register_at_init): 
	set xml_config.

	* src/ui/xml/xmltag_widget.h (COLORPICKER): 
	* src/ui/xml/xmltag_widget.c: added colorpicker,
	I wish to test this for the spudec plugins.

	* src/oms/plugin_mgr.c : temporarilly disabled the
	dependencie code cause :

	- it is buggy,
	- it is not finished (far from it),
	- it make thing break,

	the code is just #if 0 'ed.

2000-12-08  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/render_mgr.c: video open is back.
	clean up some old stuff.
	(_renderLoad): call open.
	(_video_open): back in the build again.

	* src/ui/gtk/config_plugins.c (create_plugin_page): use fourcc_in
	to print the plugin in question.
	(create_plugin_page): string drawed to the screen should now be
	a little more user friendly.

2000-12-07  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/plugin/output/video/libvo_mgr.c: 
	(plugin_register): new function.
	(plugin_init): adapt to the last libvo change.
	(plugin_exit): call libvo_exit().

	* src/plugin/output/video/Makefile.am: created the libvo_mgr
	plugins which deal with libvo output plugins.

	* src/plugin/output/video/* : completly removed libvo,
	we now use the an already installed version (from the libvo
	CVS module).

	* src/plugin/codec/spudec/dec_spu.c: remove output_video.h,
	include video_out.h, converted plugin_output_video_* to 
	vo_output_video_*.

	* src/plugin/codec/mpeg2dec/dec_mpeg2.c: include
	installed video_out.h from the brand new libvo.
	remove inclusion of output_video.h (removed from the cvs).
	(_mpeg2dec_open): pass a pointer to the output plugins,
	not NULL.

	* src/plugin/codec/mpeg2dec/Makefile.am (SUBDIRS): 
	remove the SUBDIRS variable as we now use libmpeg2
	shipped with mpeg2dec, link against installed libmpeg2.

	* src/oms/render_mgr.c: convert all existing instance of
	plugin_output_video_t to vo_output_video_t and
	plugin_output_video_attr_t to vo_output_video_attr_t,
	_video_open no longer exist.

	* src/oms/oms.c: 
	* include/oms/plugin/Makefile.am: remove output_video.h
	as it no longer exist.
	

2000-12-05  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/plugin/codec/mpeg2dec/libmpeg2/video_out.h: 
	fix build bustage.
	
	* src/plugin/codec/mpeg2dec/libmpeg2/video_out.h: 
	same as with output_video.h
	
	* include/oms/plugin/output_video.h: cleaned up the
	plugin_output_video_t structure, make it possible to
	cast into vo_output_video_t struct.
	Remove comment which were making the code unreadable.

	Now OMS play agin...
	Please, think about a real design for libmpeg2 / libvo /
	mpeg2dec / oms interaction...
	A real design mean no include duplicated, a real API...
	etc etc. Please, stop including libvo and libmpeg2 snapshot
	in oms tree, just have your own CVS module, and when you break
	the API, just create a branch for frontend (like OMS) to use.

	Thanks.

2000-11-29  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* include/oms/plugin/codec.h (CTRL_AUDIO_INITIALIZED): 
	define it.

	* src/oms/render_mgr.c (renderAudioOpen): 
	(renderVideoOpen): use the control interface in order to 
	set the initialized state for the plugin each time we use
	a new one.
	
	* src/oms/render_mgr.c (_renderLoad): made static.
	(renderInit): ditto.

	* src/oms/render_mgr.c :
	set render_plugin_video & render_plugin_audio to NULL at init time.
	(_renderLoad): 
	better formatting.

	(_video_close): check that a video codec plugin is loaded
	before trying to use it's ctrl interface. (This'll avoid
	a NULL pointer dereference when changing the display plugin
	without having started to play a DVD).
	set render_plugin_video to NULL after closing it.
	
	(_audio_close): set render_plugin_audio to NULL after calling
	close on it.

	Changing audio and video plugin from the GUI should now work,
	Bruno, it seem there is a bug in the X11 plugin, when it is unloaded :
	
	6       video_out_x11.c:x11_close#432   Closing video plugin
	Program received signal SIGSEGV, Segmentation fault.
	0x401fab98 in XCloseDisplay () from /usr/X11R6/lib/libX11.so.6
	

2000-11-28  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/oms.c (omsSetFilter): update to use the ctrl
	interface instead of set_filter... (fix build problem).

2000-11-11  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/ui/gtk/config_plugins.c (create_plugin_page): use
	pluginGetActive() to get the current active plugin from 
	plugin_id. Compare plugin->whoami in order to activate 
	the good plugins.

2000-11-09  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/ui/gtk/config_plugins.c (plugin_pressed): 
	use PLUGIN_ID_OUTPUT_AUDIO & PLUGIN_ID_OUTPUT_VIDEO
	macros to match the current plugin id.

2000-10-19  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/plugin/nav/nav_dvd.c (_dvd_ifo_init): cleanup
	some unused code.
	(_dvd_setup_audio): 

	* include/oms/plugin.h: removed some unused code.

	* src/plugin/nav/nav_file.c (_file_open): fix a typo
	(s/video/audio/)
	(_file_open): use the new global pointer scheme.

	* src/oms/plugin_mgr.c (omsPluginGetList): removed
	(omsPluginGetListFromId): new function.

	* src/oms/oms.c (omsGetInfo): use global pointer
	on current of the wanted id plugins.
	(oms_thread_input): 
	(omsRegisterCb): corrected a wrong check for invalid
	pointer dereference.
	(omsSetFilter): 
	(omsPartPlayAutoStop): 
	(_fill_buf): 
	(_demux): 
	(omsUnregisterCb): 

2000-10-17  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/plugin/input/input_file.c (file_close): 
	(file_open): 

	* include/oms/plugin/input.h: 

	* src/oms/plugin.c: remove from cvs... not used anymore.

	* src/plugin/codec/mpeg2dec/dec_mpeg2.c (compute_stat): new
	function that print current fps... 

2000-10-16  Charl P. Botha <cpbotha@ieee.org>

	* fixed Xv segfault bug introduced by dent's optimisation of the x11 
	  ouput plugin :)
	* added sections in FAQ to avoid questions asked far too often in
	  #livid
	  
2000-10-16  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/plugin_mgr.c (register_decaps): 
	(register_other): 
	(plugin_register_at_init): 
	(plugin_register_after_init): new function,
	(pluginRegister): now use plugin_register_at_init &
	plugin_register_after_init.
	(pluginScan): reset register_time to 0 if there is an error.
	(pluginScan): ditto, but don't forget to dlclose(handle).

	Simplifications and beatiffications to the code...

	* src/oms/oms.c (parse_uri): new function,
	(omsOpenInput): use parse_uri(), make call to nav function
	readable... also, avoid to leak strduped uri, and no need 
	to use goto here. Try to be more specific when checking
	error condition... many beautifications.

	(omsSetFilter): simplifications, beautiffication...
	removed some commented code, add a warning for invalid
	filter.

	(omsSetStatus): divide into small function, one for each
	task... this make it more readable.

	* src/ui/gtk/playlist_misc.c (playlist_scan_device): 
	better formatting in show_message() call.

	* src/ui/gtk/config_plugins.c (config_plugin_apply): 
	use new function to restart audio and video output
	subsystem independantly.

	* include/oms/plugin.h: 
	* src/oms/plugin_mgr.c (pluginUnload): not void anymore,
	make it return 0 or -1.

	* include/oms/oms.h:
	* src/oms/oms.c (omsCloseOutputAudio): 
	(omsCloseOutputVideo): new function that can be called
	independantly (instead of being obliged to call omsCloseOutput).
	(omsCloseOutput): use omsCloseOutputAudio & omsCloseOutputVideo.

	* src/ui/gtk/config_plugins.c (config_plugin_apply): 
	Uncommented the	call to change the video / audio plugins
	used... 

	* src/ui/gtk/config_gui.c (config_ok): remove the message
	saying that 'at the moment, you need to restart oms for
	config change to take place, as this is not true anymore'.
	(config_cancel): commented.
	(config_cancel): 
	(config_apply): 
	(config_ok): 
	(close_config): made static.
	(config_ok): call config_apply.
	(setup_config): C++ to C comment.

	* src/ui/gtk/messagebox.c (cb_mb_yesok): 
	(cb_mb_cancel): 
	(cb_mb_no): 
	(add_mb_button): static.
	nResult is static too.
	Slight cleanup.

	* src/ui/gtk/config_output.c :
	* src/ui/gtk/config_output.h :
	* src/ui/gtk/config_vo.c :
	* src/ui/gtk/config_vo.h :
	* src/ui/gtk/config_ao.c :
	* src/ui/gtk/config_ao.h : 
	removed from cvs, they are not used anymore.

	* src/ui/gtk/main.c (main): don't need to call
	cfg_read as cfg_init do it.
	(skin_load): new function.
	(main): check the return value of pluginInit.
	(video_plugin_load): 
	(audio_plugin_load): new function dedicated to 
	loading of default plugin.

	Made some variable static.

	* src/ui/gtk/config_plugins.c (plugin_pressed): 
	(create_plugin_page): 
	(config_plugin_apply): set global variable to NULL
	after applying change... corrected a typo.

	applied patch from Alan Shutko <ats@acm.org>
	(Need to include string.h for strcmp on RH7.),
	also reordered include list, slight cleanup, and
	add some comment.

2000-10-15  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/ui/gtk/config_plugins.c (create_plugin_page):
	(plugin_pressed):
	toggle the currently configured plugin button active
	(work for audio and video plugin id)...
	By the way, using an enum for plugin id would be probably
	easier.
	(config_plugin_apply):
	Save the current audio / video plugin configuration...
	(config_plugin_apply): 
	oops, s'/output_audio_device/output_audio_plugin/

	I also added code that call omsCloseOutput(), and then
	call omsOpenOutputAudio / omsOutputVideo with the new
	setting, but it is commented out because of a bug in
	video_out_x11.c ( plugin try to destroy a window which
	have not been created, probably because we didn't hit the
	'play' button ).

	* src/plugin/nav/nav_dvd.c (_dvd_get_info): 

	workaround the problem with question 
	"should i try to fetch it from the internet? (Y/n)"
	and oms stopping responding by testing if answer is
	yes instead of testing that answer != no...

	test the getchar return value for error.
	
	This do not tell me much about why getchar() return
	-1 (bad file descriptor) tought...

	* src/ui/gtk/config_devices.c: reordered include list,
	include messagebox.h.
	(add_device): clear entry after "Add Device" button is pressed.

	* src/ui/gtk/config_gui.c (config_ok): 
	* src/ui/gtk/playlist_misc.c (playlist_play_item): 
	(playlist_scan_device): addapt to show_message() change.

	* src/ui/gtk/messagebox.h (show_message): 
	* src/ui/gtk/messagebox.c: include stdarg.h
	(show_message): made this function use format string,
	inverse the ntype and strBody argument in order to do
	this.
	Made the strTitle, ntype, strBody argument const.

	
	* src/ui/gtk/config_devices.c (add_device): 
	(selection_made): 
	(remove_device): 
	(setup_devlist): 
	(config_device_apply): 
	(get_devices_config): 
	(get_dev_list): 
	(get_devices_config): no need to strdup device string.

	Big cleanup, make global variable static,
	public function at the end of the file.
	Make internal function static.
	Now, adding new device work, and it do not sigsegv
	everytime.
	
2000-07-22  Thomas Mirlacher  <dent@linuxvideo.org>

	*src/oms/plugin_mgr: replaced scandir with the equivalent
		opendir/readdir functions.

2000-07-21  Thomas Mirlacher  <dent@linuxvideo.org>

	* src/plugin/*: added an id-field to all plugin structures,
		se wen can use one function for different types of
		plugins - we will need this for the dxr2 and other 
		hardware plugins.

	* src/plugin/output/audio/audio_out_sys.c: fixed endian issues
		for PowerPC - thanks to Peter Burgstaller <peter@ains.at>

	* src/plugin/decaps/decaps_ps.c: mpeg-audio filter support.
		DVDs with ac3, pcm and/or mpeg audio should work
		correctly.

2000-07-20  Thomas Mirlacher  <dent@linuxvideo.org>

	* src/plugin/codec/ac3dec/codec.c: fixed a the size of data
		pushed to the output device (yes, a int16_t does have
		two bytes) thanks to H}kan Hjort <d95hjort@dtek.chalmers.se>
		for this hint :)

	* src/oms/demux.c: checking of we're finish, and avoid oms using
		100% CPU time in the idle loop (when no more data is present
		in the buffer)

2000-07-19  Thomas Mirlacher  <dent@linuxvideo.org>

	* src/oms/plugin_mgr.c,
	  src/ui/gtk/config_plugin.c: added development version for
		use of automatic registered plugins. removed codec
		config tab.

	* src/ui/gtk_simple/*: played around with the simple gtk version
		once more. its really time for someone starting to work
		on the uis again - i'm fed up with this frontend stuff.

	* src/oms/oms.c: reenabled the callbacks.

	* TODO: updated

2000-07-18  Thomas Mirlacher  <dent@linuxvideo.org>

	* src/plugin/codec/mpg123/*: added missing layers, and slight
		restructuring of 3 for loops, to put if's outside of
		the loops.

	* src/plugin/output/video/Makefile.am: added -lSDL, so SDL
		output now works.

	* src/plugin/output/video/*.c: changed setup-function, to
		pass a struct instead of a couple of arguments.

	* src/plugin/output/audio/*.c: changed setup-function, to
		pass a struct instead of a couple of arguments.

2000-07-17  Thomas Mirlacher  <dent@linuxvideo.org>

	* skins/deepspace: added. a new skin created by 
		Phillip J . Ehrlich <phillip.ehrlich@asu.edu>

2000-07-16  Thomas Mirlacher <dent@linuxvideo.org>
	
	* *: changed contact address.

2000-07-14  Thomas Mirlacher  <dent@linuxvideo.org>

	* configure.in.tmpl: added the false case, if there's no
		DVD_AUTHINFO present. - compile now works for systems
		without the relevant ioctls.

	* src/Makefile.am,
	  src/plugin/codec/ac3dec/*, 
	  src/plugin/codec/mpeg2dec/configure.incl,
	  src/plugin/input/Makefile.am,
	  src/plugin/nav/nav_dvd.c,
	  src/plugin/output/video/configure.incl: 
		solaris and unix9x patches.

	* src/plugin/output/audio/audio_out_sys.c: pretty-look reformating,
		preprocessor typo fixes. added missing audio_info_t
		variable for the solaris port.

	* src/si/*: unix9x fixes.

	* src/ui/shell/oms_shell.c: fixed typo (omsOpenOutputVideo tried
		to load audio plugin and vice versa).

	* src/plugin/output/video/yuv2rgb_mlib.c: file was missing.
		thanks also to H}kan Hjort <d95hjort@dtek.chalmers.se>
		for his great work on bringing oms to solaris.

2000-07-13  Thomas Mirlacher  <dent@linuxvideo.org>

	* configure.in.tmpl: fixed detection of dvd-ioctl support
		(patch by Christophe Labouisse <labouiss@cybercable.fr>)

2000-07-09  Thomas Mirlacher  <dent@linuxvideo.org>

	* Solaris patches: did some modifications of variable-types,
		as well as modification to a couple of Makefiles,
		adding conditionals. along with the patches from
		H}kan Hjort <d95hjort@dtek.chalmers.se>
		- Solaris support isn't really done, since we still
		have a couple of OS centric stuff in ... but we're
		moving closer

	* Makefiles and optimization: 'make release' now optmizes 
		even more.

	* src/plugin/output/audio/Makefile.am: no more different
		names for different systems - there ist just one
		name for default audio output: audio_sys

	* src/plugin/codec/(ac3dec,mpeg2dec)/bitstream.[ch]:
		64 bit bitstream functions for speeding up processing
		of bitstream operations (makes it possible to run
		a couple of DVDs without sound skipping and frame
		dropping on a Celeron 433) - this also should provide
		significant speedups on suns as well as alphas.

	* src/plugin/output/video/video_out_mga: if there is support
		for mmx, it will be used for writing to the display.
		also this gives some speed perfomance, it seems we
		cannot go any further without using DMA - also really
		strange bluring effects are appearing - we have to
		wait for a retrace when doing a flip page)

	* src/plugin/codec/ac3dec/*: started to use typenames as
		specified in unix9X documents 

	* src/plugin/codec/mpeg2dec/*: unix9X ified 

2000-07-03  Thomas Mirlacher  <dent@linuxvideo.org>

	* src/plugin/codec/spudec/spu.c: started to rewrite the direct
		access of buffers via indices, and use getbit functions
		instead.

	* src/plugin/output/video/Makefile.am: now works - had to add
		-rpath for all EXTRA_LTLIBRARIES. This is NOT the 
		correct solution, but the only workaround i found for 
		now.

	* oms_config.sample: added a sample config file, until we can
		configure oms via the UI again.

	* src/ifo/tstifo.c:
	  src/ifo/libifo/pgc.c: added support for firstPGC. - whis will
		allow us to use the DVD is intended (read the first pgc,
		and pass it into the VM)

	* src/plugin/codec/mpg123/codec.c: the setup function is still
		static, but now with the proper values, for most of my
		MP3 files (48kHz).
 
2000-07-01  Thomas Mirlacher  <dent@linuxvideo.org>

	* src/ifo/libifo/ifo.h fixed audio bitfield
	* src/plugin/nav/nav_dvd.c using the currect audio bitfield
		from ifo.h enables a clean implementation of automatic
		audio-decoder selection

2000-07-01  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/demux.c (demux_do): avoid a NULL pointer dereference
	if spu plugins isn't there (seen & approbated by Dent).

	* src/plugin/nav/nav_dvd.c (_dvd_open): do not return if spudec
	plugins isn't there, we should be able to watch a DVD without
	subtitle... avoid a pointer dereference if plugins isn't found.

2000-06-30  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/plugin/output/video/video_out_mga.c (write_frame_g200_mmx):
	fix compile : mga_vid_config seem to be in _mga_priv now.
	(write_slice_g200_mmx): ditto.

	* src/plugin/codec/spudec/spu.c (_dent_getbit_4): fix a typo.
	(_dent_getbit_16): commit the Thomas fix.

	* src/ui/gtk/config_skin.c (config_skin_apply): Fix the change
	config and sigsegv bug: avoid passing a NULL string to load_skin().

2000-06-29  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/ui/gtk/playlist_misc.c (playlist_play_item): use snprintf,
	no bound checking is always bad.
	(playlist_scan_device): ditto (this one was really a possible
	buffer overrun ).

	* src/ui/gtk/playlist.c (setup_playlist): Fix a buffer overrun
	that showed up if the devices string was to large (use snprintf).

	* src/ui/xml/xmlparse.h: s/uint/unsigned int/, make the whole
	xml stuff compile.

2000-06-29  Bruno Barreyra  <barreyra@ufl.edu>

	* src/plugin/codec/ac3dec/codec.c (_ac3dec_open) (_ac3dec_read):
	fix to make it accept driver "automagically" inserted.
	
2000-06-29  Yoann Vandoorselaere  <yoann@mandrakesoft.com>

	* src/oms/plugin_mgr.c (pluginScan): don't call plugins init function
	at init time,r it will be called when needed.

	* src/plugin/nav/nav_dvd.c (_dvd_open): fix 2 typos (s/video/audio/);
	do not return if loading of an audio plugins fail : 
	we should be able to only see video;
	avoid a NULL pointer dereference if there is no audio plugins.

	* src/oms/plugin_mgr.c (pluginScan): avoid returning if one plugin fail,
	we must load all other plugins.

