implementation with `--motion motion', `--motion motionmmx' or
`--motion motionmmxext'. Of course, the best implementation is chosen
if you don't ask for any. There doesn't seem to be any performance hit
due to the move to shared libs, which is a good thing. Please test
actively if you have time, though.
Updated --help result, manpage, INSTALL document, and a few files.
I moved vdec_motion.h and vpar_blocks.h back to /include because they
will be needed to build motion compensation modules, but perhaps we don't
need to export everything which is in these files.
/src/video_decoder/ now has only one .c file, perhaps it could now be
merged with video_parser ?
please try.
- modified configure.in and all that stuff. Re-run configure
- SDL audio, video and interface are all part of the same .so now.
- remove YUV old files :->
kernel and from mpeg2dec. I still don't know how to detect if code
compiled with -mcpu=pentiumpro will run, since the cpuid arcanes are
quite obtuse to me. Perhaps we should also have a way not to load modules
if they have been compiled with a different CPU to avoid segfaults.
. fixed the --aout, --idct and --yuv flags
. updated manpage and --(long)help output to reflect that change
. removed a few unneeded #includes here and there
. cosmetic changes in error messages in input.c
Currently available flags are now :
--aout dummy
esd
dsp
alsa
--idct idct
idctclassic
idctmmx
--yuv yuv
yuvmmx
--vout works like before, but still uses the old plugin system for now.
available information
. Fixed a bug in parsing of VTS attributes
. Fixed a bug in input.c that made input plugin initialize even though
no stream is reachable (thanks Sam)
I hope I'll be able to get the position of the movie soon.
Meuuh : the seek function of the plugin now take off_t as argument which
could be a problem later. Maybe it should take off64_t or time argument.
duplication
. YUV transformations now use the new module API ; now only the vout
and interface still depend on the old plugin API
. changed TestMMX to TestCPU because we will be able to test for other
specific extensions (3DNow, SSE) for the forthcoming IDCT we'll
borrow to mpeg2dec (as usual :P)
. don't show "hiding module" messages anymore except in debug mode
. swapped C IDCT and Classic IDCT scores since the classic one seems
to be faster ; anyway you should use the MMX one
. fixed a Makefile bug under BeOS
. tried to fix the cpuid code so that it compiles under BeOS (Polux, can
you test it when you have time ?)
more than ever, � le client ne segfaulte pas �.
. there was still a problem upon quitting: sometimes the null packet
wasn't big enough to reach a decoder breakpoint, so I now create 10
of them (since I can't make it bigger) to be sure. Meuuh, what do
you think ?
. fixed the Makefile to spare a few variables here and there.
. reduced module hide delay, removed loading of the audio output
plugins since they are now modules.
. changed a few intf_Msg to intf_DbgMsg, and added "vout:", "intf:",
and so on in a few other messages.
. removed unused includes in the idct modules.
initialized. It remains some segfaults but it globally works.
. DVD mode is enabled with option --dvd. For the moment, it only read
the first vts and find the movie if it is at the beginning of the title
set.
Coming soon:
. udf filesystem management to access over 2Gb zones.
. detection of the offset to the movie inside a vts when it is not at
the beginning.
Is there a chance that using fopen/fseek function instead of open/lseek
system calls solve the 2Gb issue ?
our optimized IDCT, and MMX IDCT.
. cosmetic changes for modules (pf_* instead of p_*)
. fixes to the BeOS and dummy modules
WARNING: a new directory has been added, which means you have to
use `cvs update -dP' to update ; files have been removed , which means
you either have to run `make distclean' or remove the .deps directory,
and the configure script has changed, which means you have to run it
again. Don't complain before having checked this :)
Note about the IDCT modules: there is no way to choose the one we
use, but you may remove the module in lib/ to prevent it from being
loaded. The preference order is : MMX, Optimized, Classic.
INPUT_PTS_DELAY down to 200 ms ;
video heap down from 10 to 5 pictures ;
decoder fifo size from 1023 to 511 PES ;
* Fixed various bugs in 32 bit-versions of input_ext-dec.h ;
* Fixed a bug in GetChunk() ;
* Renamed GetByte, GetWord, ShowWord to _GetByte, _GetWord, _ShowWord ;
* Moved decoder_fifo-specific code from programs.c to dec.c ;
* Fixed bugs in program.c that prevented vlc to close all decoders ;
* Gave sam a lesson for the use of the bitstream in spu_decoder.c :ppp ;
* Made the video parser unlock the reference pictures before quitting
(still one left, yaknow why ?)
- ported the alsa plugin to the news vlc module API
- cosmetic changes
To do :
- check if it works with the latest alsa release
- add features ... prepare for 4 or more speakers
I wasn't sure whether the bits counting method was effective to
skip ancillary data at the end of a frame, but I kept it for
safety. There is still a lot to optimize in the bit counting, like
unrolling the first iteration of some loops, but I don't know if
it would be worth it. The other solution would have been to look for
a startcode after eache frame, without caring about the ancillary bits.
. cleaning in the SPU decoder.
it anymore really soon, since ntohl() and htonl() seem to be properly
optimized when gcc is passed the right optimization flags.
. fixed GetBits32 and RemoveBits32. I know the #ifdefs are useless since
we only support u32 words, but it's a safe reminder. Comments appreciated
on this fix since I may have b0rked something -- it runs well here though.
. separated MODULE_CONFIG_START and ADD_WINDOW (Henri, beware)
. fixed a very, very old bug that caused namespace collision between
plugins (Henri, beware: call your aout_getplugin function like this,
not alsa_aout_getplugin)
. removed the Debian specific clean rules from the Makefile, since they
are already handled by the debian/rules script.
. tidied a few compilation rules (-lfoo should always be at the end)
from RGB masks);
- cleaning of the fullscreen switch, still sucks but the surface is not
reallocated and that's good (thanks to the magic function
SDL_WM_ToggleFullScreen provided by sdl library :).
. Moved a mutex_destroy after the thread cancellation to prevent
possible problems
. Added a missing #ifdef in intf_msg.c which prevented compilation
with --enable-debug
. Fixed a bug in the input that prevented to quit properly in certain
cases (some ES were not deleted because their index was skipped when
the former one was deleted, well Meuuh should know what I mean)
There is still a segfault when quitting, most presumably in the
audio output. I couldn't find what causes it yet.
. made the audio_output API a bit simpler.
. got rid of modules_config.h.
. fixed `make install' rule.
. fixed warnings in the MMX YUV compilation.
. probably fixed a bug in the input : pp_foo structures were free()d at
the end, but this was useless since the last call to realloc() is
equivalent to free(), and two consecutive calls to free() aren't a
goo idea.
. we check that the version number match and that we don't already have
a module by that name when loading a new module.
. all public module_* functions now properly lock the module bank.
. the audio_output now uses the new module API ; EsounD and DSP modules
have been ported, which should be enough for Henri to port the ALSA one.
The new plugin API is now much simpler ; it's now just a matter of
calling module_Need( p_main->p_module_bank, MODULE_CAPABILITY_FOO, p_data );
and if successful we get the best module. Capabilities can be ORed, so that
one can ask for a plugin that does VOUT _and_ INTF actions for instance.
It's not complete yet though -- by making it generic I had to do a few
ugly casts here and there, which I am going to fix ASAP. Also, command line
selection of a plugin does not work yet.
The switch to the new plugin API has probably broken the BeOS audio
output ; we can either wait until the whole vlc has switched to the new
plugins, or create a separate beos_sound.so that conforms to the new API.