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)
- more precise message for the "force-dolby-surround" option
- don't use -1 as a value in an integer list option (dangerous casts
in the wxWidgets interface)
+ modules/audio_filter/converter/a52tofloat32.c:
- option to disable the internal upmixing algorithm
+ modules/audio_filter/channel_mixer/headphone.c:
- option to partially compensate the delay introduced by the algorithm
- option to accept raw Dolby Surround encoded streams
* vcdx/vcdplayer.c: disabled l10n of various error messages
* vcdx/vcd.c: disabled l10n of 2 debug masks. They are horribly to translate and used by advanced users only, who should speak English well enough for this purpose
* rest: disabled l10n of various strings or debug masks which cannot be translated
more to come
* 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
- Re-use our audio decoder modules instead of using libavcodec directly.
- No more dependance on libavcodec.
(downmixing is currently broken + you have to force the ffmpeg codec for a52)
* modules/audio_filter/format.c:
- PCM audio format conversion filter using the new common filter architecture.
* modules/audio_filter/converter/mpgatofixed32.c:
- implements both the old and new filter architecture (ie. useable in the transcoder).
* modules/codec/ffmpeg/audio.c:
- fixes and cleanup.
* modules/demux/dts.c: implemented DEMUX_GET_TIME and DEMUX_GET_LENGTH.
* modules/access/cdda.c: got rid of the cdda demux and add a wav header at the beginning of the data.
This allows to correctly support DTS audio cd (demux will detect what kind of CD it is).
* modules/demux/wav.c: code cleanup and fixed seeking.
support for 14bits big endian bitstreams as well as 16bits little endian bitstreams.
* modules/audio_filter/converter/dtstospdif.c: accumulate DTS frames from parser until we have enough to fill an S/PDIF frame.
+ 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.
* modules/audio_filter/converter/mpgatofixed32.c:
- fixed an issue that could cause glitches when switching from one stream
to another. the buffer wasn't entirely getting 0000 because multiple
channels were not taken into account when doing this.
* ALL:
- if float32 then clear the buffer with (float)0
indicate wether it is an "advanced" option or not. The goal with this is to
hide the user from all the strange options that very seldom needs to be
changed. added an extra argument to all the add_* macros to indicate wether
the item is advanced or not.
* src/libvlc.h: added an "show advanced options" config option default
disabled
* src/libvlc.c: the advanced options are not listed by vlc --help and
friends unless --advanced is used
* modules/gtk/preferences.c: the gtk/gnome preferences dialog don't show
advanced options unless advanced is set
all: set the advanced flag to VLC_FALSE or VLC_TRUE for all options, by
using some common sense. Please check and correct
note: All interfaces should still work like they used to, see the change in
modules/gtk/preferences.c to find out how to "hide" options.
second note: I think I've changed all the modules, but I could not test
everyone for compilation, expect some broken modules (the fix is to add ",
VLC_TRUE" as last argument to the add_* I forgot)
- Now using the low-level API of libmad,
- Decoding split in parsing & decoding (just like A/52),
- Should handle dual-mono files correctly,
* The old mpeg_audio plug-in can no longer work in this scheme and has
been disabled. Please _always_ compile with mad from now on.
* Updated po files.
* A placeholder for the Italian translation,
* A bug fix for mono streams on stereo speakers,
* A fix for a possible crash in the FTP access,
* Correct coordinates in OS X fullscreen modes (closing #47),
* Cosmetic fixes.
* ./modules/access/file.c: the file access plugin gets the real file size
under WinCE.
* ./modules/audio_filter/converter/u8tofixed32.c: added this conversion
filter to play some WAV files without an FPU.
* ./bootstrap: bootstrap --update-vc doesn't rely on the Makefile's presence.
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).
* ./modules/*: fixed a bunch of modules so that they compile under WinCE,
we now have access_file and the mpeg demux and video decoder working
(http://zoy.org/~sam/vlc/pocketvlc2.png).
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.
* include/vlc_threads.h: Avoid locking the interface,
* ALL: reworked all audio output plug-ins to correctly take into account
i_channels. At present this is known to break OSS, probably others.
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.
autodetect S/PDIF hardware support and the audio output plug-in chooses
the best one. Of course it probably breaks existing output modules, see
oss.c for hints :).
Also include minor tweaks which will entitle us to decode and output 5.1
audio. It may break existing plug-ins, too. See
audio_output.c:aout_FormatNbChannels for hints.
* New NextPTS() function, to replace CurrentPTS() (gives the PTS which will
be valid for NEXT byte).
* Fixed mono mode in the builtin mpeg audio decoder.
* Various fixes related to PTS calculation in audio decoders.
* Audio and video should now _always_ be perfectly in sync.
* Changes in a52.c (end_date management) must be ported to other codecs,
otherwise mixer errors will appear.
* Audio output plug-in can now tell whether they can handle a little
clock drift (for instance, inserting zeroes after a pause).
* Major changes in the handling of dates in the audio output ; still buggy,
but differently.
* Fixed a major bug in the aout pre-filters, preventing to run any other
decoder than liba52.
* p_aout->output.pf_play now has only one argument.
p_buffer now has a i_nb_bytes member. It is possible to indicate for a
format its byterate (necessary for AC3 and SPDIF).
* S/PDIF output seems to be working at last (tested with the file output).
return value to avoid audio starvation.
* ./modules/audio_filter/converter/*: a little loop optimization trick.
* ./src/audio_output/aout_ext-dec.c: removed this deprecated file.
instead of our own variable.
* ./modules/audio_filter/converter/a52tospdif.c, ./modules/codec/a52.c: added
<unistd.h>, required for bswap.
* ./modules/demux/mp4/libmp4.c: removed an unneccessary semicolon in a
macro definition.
* ./modules/audio_output/esd.c: first attempt at getting esd to work.
* ./modules/video_output/*: split sdl.so into a video and an audio plugin,
and removed useless subdirectories.
* ./modules/audio_output/sdl.c: compilation fix.