alloca() was not used anyway on OSX and BSD, due to smaller stack sizes,
and we can't assume a default stack size anyway
I expect the performance loss to be minimal, but worth the code
simplification anyway (i didn't benchmark)
aout_BufferAlloc() is moved into its own function in a .c file instead
of being a macro
Since there is now 2 types of allocations (HEAP and NONE), make
i_alloc_type a boolean (true = HEAP alloc, false = NO alloc)
make aout_BufferFree() a static inline function in the same process.
Prototype doesn't change since the provided buffer doesn't need to be
set to NULL (I checked all the callers)
Also sizeof(byte_t)^Wsizeof(uint8_t) can only ever be 1, if it is
defined. It's not defined, if char is more than 8 bits, and uint8_t is
not provided, but then VLC will not compile in the first place.
Missing some cases that I could not test.
Also ffmpeg/chroma.c is locked, so I can but leave it broken.
Fix is for the remaining modules is obvious and the issue is easy to detect.
* Headers in include must contain the structures and prototypes needed
by the plugins and should be named vlc_*.
* Headers in include/vlc must contain the structures and prototypes
needed by external libvlc clients
* Moved and renamed some things in headers.
- Removed vlc_cpu.h, vlc_error.h (merged in vlc_common)
- Removed snapshot.h (merged in vlc_vout.h)
- Removed vlc_spu.h (merged in vlc_osd.h)
- Removed intf_eject.h and vlc_interaction.h (merged in vlc_interface)
- Moved all internal headers to src
- Merged vlc_video.h and video_output.h and move private things to src
- Removed vlc/intf.h, vlc/aout.h, vlc/vout.h, vlc/decoder.h and vlc/input.h
(meta headers for use in modules, and often implying too large
dependencies)
* Removed some useless dependencies
* Unexported a bunch of functions and structures used only in src/
(--> Still some work here)
* Finally made input_thread_t and input_source_t (mostly) private.
Added input_GetItem to fetch the input_item of an input_thread
* Cleaned up deprecated entries in vlc_symbols.h and bumped up symbol
prefix
This commit has a 99% probability of breaking the build, 0.1% of killing
your cat and 0% of getting you hot chicks.
Also, make it clearer what is shared and instance-specific
So,
libvlc_t ==> libvlc_global_t
vlc_t ==> libvlc_int_t (internal instance)
p_object->p_libvlc ==> p_object->p_libvlc_globale
p_object->p_vlc ==> p_object->p_libvlc
VLC_OBJECT_VLC ==> VLC_OBJECT_LIBVLC
And by the way, there is some cleanup required :) (ie, some things are created in the global object instead of the instance-specific one)
* Each module can declare a "human-readable short name" with set_name
* Modules are sorted by category (set_category, set_subcategory).
Modules configs can be separated by set_section()
* Separated audio-filter and audio-visual
* Separated extraintf and control
* New command and widget : add_module_list() for comma-separated modules
* Vfilters now use "," as separator
+ New build system, using recursive makefiles. Due to the amount of code
in VLC, this had become unavoidable.
+ Removed the check for OS X's stack size, since our automake targets are
a lot less hungry now.
+ Ditto for Solaris's sed.
+ Since automake-1.6 is faster than 1.7, use it first if both are present.
* m4/vlc.m4:
+ New AX_ADD_CPPFLAGS, AX_ADD_CFLAGS, AX_ADD_CXXFLAGS, AX_ADD_OBJCFLAGS
and AX_ADD_LDFLAGS macros that do all the magic to detect possible
modules and register their flags.
+ New AX_ADD_BUILTINS and AX_ADD_PLUGINS macros.
+ Some magic to generate vlc-config.
* configure.ac:
+ Moved most code to the AX_ADD_* macros.
+ Explicitely added all target Makefiles.
* modules/**/Modules.am:
+ Path to sources are now relative to Modules.am's directory level.
using the waveout module.
* ./bootstrap: we ignore comments when parsing makefiles.
* ./modules/audio_filter/converter/fixed32tofloat32.c: changed this module
so that it also does float32tofixed32.
* ./modules/*: ported a few other modules to WinCE (most of the time it's
just a #include <errno.h> that needs to be removed).
and is replaced by two members : i_physical_channels and i_original_channels.
i_physical_channels describes the channels which are effectively present
in the stream (at the current point of the aout pipeline), whereas
i_original_channels represents the channels we used to constitute the
stream. For instance a mono stream (FRONT_CENTER) may emanate from a
FRONT_LEFT channel of a STEREO stream.
Additionally, this contains hooks to dynamically select the audio device
and the channels configuration. In order to do that, all aout plugins,
and all interface plug-ins need to be adapted. Currently only SDL
(partially OSS) and the rc interface have been adapted, please use them
as a guide. Other aout plug-ins have been temporarily disabled.
IMPORTANT : if you need a working sound output, DO NOT UPDATE YOUR TREE
for several days until we fix that.
* modules/misc/network/ipv4.c: Fixed a long-standing segfault when saving
preferences and asking for multicast.
for information on how to use it in your interface plug-ins. In the
SDL vout, b and n are mapped to sound down/sound up.
* Fixed a major in the mad plug-in with wrong dates.
* Fixed a compilation bug.
* modules/codec/a52.c: Fixed detection of A/52 sound.
* modules/audio_filter/converter/a52tofloat32.c: Fixed a bug related to
downmixing.
* ALL: Added hooks for audio volume management.