Stéphane Borel [Tue, 13 Feb 2001 10:08:51 +0000 (10:08 +0000)]
-adaptation of DVD module to navigation slider. The seek has to be
done on a multiple of 2048, and shopuld take care of the offset to the
beginning of the stream. It works with most of my DVDs by fails to
detect size of some streams.
-change of the order of call to ifo and css functions in input_dvd.c,
because we can't read ifo files before authentification on some DVDs.
-changed location of some css tables.
-we read ifo date and decrypt css keys for all titles now. It takes quite a
long time to initialize with some DVDs (if you have 42 titles for
instance). The key decryption might give a false value if the title is
less than 10 Mb ; I'm working on that :)
Sam Hocevar [Tue, 13 Feb 2001 04:29:46 +0000 (04:29 +0000)]
* added --intf option to vlc
* started cleaning vout_sdl.c
* the dummy plugin works again
* added a slider to the Gnome interface so that we can browse through streams
There is a problem with the slider: we sometimes get unexpected async
replies, which would mean that we don't properly lock our Xlib calls.
Which is true. But we also get these errors when using `--vout dummy'.
I'll investigate.
Sam Hocevar [Mon, 12 Feb 2001 07:52:40 +0000 (07:52 +0000)]
* Fixed my old stupid bug that disabled sound after having played the
first playlist item.
* Added `Prev' and `Next' buttons to the interface, with the beginning of
a playlist window (still empty).
* Added `Slow' and `Fast' buttons to the interface and popup menu.
Ok, I promise it's the last time I check bloat in, from now the interface
commits will be much cleaner and actually fix things :)
Sam Hocevar [Mon, 12 Feb 2001 00:20:37 +0000 (00:20 +0000)]
* The pure Gnome part of the Gnome interface has been rewritten from
scratch, and the .glade file included as well. You can edit it by
installing glade-gnome and doing `glade plugins/gnome/intf_gnome.glade',
or directly by hand if you grok XML.
* Files can now be loaded into vlc using the `Open' buttons. But for the
moment you still have to launch vlc with at least one file, because it
quits when the end of the playlist is reached.
* Idle screen was disabled because it eats a lot of CPU and is mostly
useless for the moment. And it gets activated when pause lasts for too
long.
Sam Hocevar [Sun, 11 Feb 2001 01:15:12 +0000 (01:15 +0000)]
Beginning of Interface II
---------------------------
* Plugins have completely disappeared, we now only use the new module API.
* All intf and vout modules are now independant. So far, only the Gnome
intf module and the SDL vout module have been ported. configure.in has
been modified to reflect the changes (x11 and dummy aren't compiled by
default anymore, while SDL and Gnome are).
Note that this is _not_ Interface II, it's just a step forward. For
instance, it lacks the whole message passing scheme.
Things that should work:
* Right-clicking on the SDL video output window brings the Gnome menu.
* Pause, Play, Exit, About work from the menu or from the interface window.
* The old SDL keys still work.
Things that are broken or may be broken:
* Xlib calls are not locked yet, which may lead to "Unexpected async reply"
errors, and make the vlc segfault.
* Sound only works for the first file.
* The SDL vout_sdl.c file is absolutely ugly and kludgey.
* The vlc immediately quits when no filename is given as an argument. Not
a real bug, but still annoying.
* The Gnome menu does not work in fullscreen mode.
Things that will come soon, maybe tomorrow:
* Complete navigation buttons (fast forward, slow, etc.).
* File/Open menu to add files to the playlist.
* Return of the X11 video output for those of us who do not have SDL.
* Textmode interface for those of us who do not have Gnome.
* aout and vout autospawn (maybe).
Sam Hocevar [Thu, 8 Feb 2001 23:40:26 +0000 (23:40 +0000)]
. added comments to src/interface/intf_plst.c and include/intf_plst.h
so that people understand how the playlist works.
. updated the TODO list (34 items to do, 41 done !)
* Portability : changed off64_t to off_t and activated appropriate
GNU/Linux options ;
* Changed fseek() to fseeko() for 64-bit offsets ;
* Reset frame predictors on a stream discontinuity.
Fixed a compile probleme on machine without a dvd player :ppppp
Maybe it would be a good idea to compile the DVD plugin on machines which
have one ? :pppp
Sam Hocevar [Thu, 8 Feb 2001 07:24:25 +0000 (07:24 +0000)]
. moved the playlist handling from input/input.c to interface/interface.c
. fixed a few warnings at compile-time
. fixed sound channel selection in playlist mode
. added a color message in the plugin bank because on peut bien d�conner
cinq minutes, quand-m�me
. we now spawn a new input thread for each file
. added a missing pf_close() because it's always cool to close files
after we read them
Sam Hocevar [Thu, 8 Feb 2001 04:43:28 +0000 (04:43 +0000)]
This commit is a bit early, but it'll save Stef, Henri and me much
time later, when we don't have to backport modifications to input_*.c
What's new :
- playlist works again (still the old wrong way like Meuuh doesn't
like, but this is going to change within a few hours)
- input_ps, input_ts and input_dvd are now plugins, located in
plugins/mpeg/ and plugins/dvd/
What's broken :
- audio output might be broken on some streams ; have to investigate
What has changed :
- fast/slow keys are now A/Z instead of A/S since S was already
linked to the scale/noscale toggle.
- `--dvd' doesn't work anymore, for the moment try to use :
vlc --input dvd /dev/dvd
- module bank is now less verbose ; use `--warn 1' to turn back
verbosity on
Stéphane Borel [Thu, 8 Feb 2001 01:34:42 +0000 (01:34 +0000)]
-New method using netlist to read packets on DVD device by sectors of
2048 bytes.
-Some modifications in netlist to make it work with DVD.
-Fixed � bug in mpeg_system.c
We use INPUT_READ_ONCE many times in the input code. I think that
we should replace it with a field in input_thread_t to give more
flexibility to modules. I have done it in DVD plugin but it can't work
if input.c is limited by INPUT_READ_ONCE.
The DVD method is slower than input_ps ; but there are things to
improve.
CSS descrambling is broken.
Sam Hocevar [Mon, 5 Feb 2001 21:00:23 +0000 (21:00 +0000)]
. disabled SDL parachute to let the vlc dump a core instead of staying stuck
. patched 2 debian bugs
(see http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=vlc)
. improved the snapshot generation
Sam Hocevar [Sun, 4 Feb 2001 03:06:30 +0000 (03:06 +0000)]
. removed obsolete video_yuv_mmx.S
. updated the TODO list and wrote a small todo.pl parser to make it
easier to see which items remain to be done
. `make snapshot' now creates vlc-*.tar.gz and vlc-*-nocss.tar.gz
Sam Hocevar [Wed, 31 Jan 2001 03:42:39 +0000 (03:42 +0000)]
. version 0.2.50 for the Linux Expo
. --overlay and --fulscreen options (only work with --vout sdl)
. the vlc exits after the end of the stream, which prevents from having
to kill it and relaunch it during a presentation, just script it like :
for i in ~/mpeg/* ; do vlc --fullscreen --overlay --vout sdl $i ; done
Yes, I know the --overlay stuff is fucking ugly. But *I* am not the one
who redefines vout_sys_t in an interface-related source file. I won't
change it until the vout/intf is finished being rewritten.
Additional information: if "--overlay --fulscreen" doesn't center your
picture, try with your screen geometry, eg:
"--overlay --fullscreen --width 1024 --height 768"
Sam Hocevar [Tue, 30 Jan 2001 05:48:23 +0000 (05:48 +0000)]
. not a very nice hack, but will probably spare us a few user complaints: if
no -a option is specified, the vlc will play the first audio type it finds,
so there is no need to specify "-a ac3" for a DVD anymore.
Stéphane Borel [Mon, 29 Jan 2001 06:10:10 +0000 (06:10 +0000)]
-CSS support kludged for current DVD input.
It is very slow now but will be more adapted to the forthcoming DVD
input.
It should read the first title of many DVDs but has been tested with few.
-Beginning of ifo commands to implement DVD navigation.
Sam Hocevar [Thu, 18 Jan 2001 05:13:23 +0000 (05:13 +0000)]
The motion compensation routines are now modules as well ; choose your
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 ?
Pierre Baillet [Tue, 16 Jan 2001 18:35:54 +0000 (18:35 +0000)]
- Added SDL sound support. Sounds a bit laggy sometimes but my streams are ill.
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 :->
Sam Hocevar [Tue, 16 Jan 2001 16:09:52 +0000 (16:09 +0000)]
. a few changes in the CPU extensions detection code, borrowed from the
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.
Sam Hocevar [Tue, 16 Jan 2001 05:04:25 +0000 (05:04 +0000)]
[ include/config.h.in has changed, don't forget tu run ./configure ]
. 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.
Stéphane Borel [Tue, 16 Jan 2001 04:41:20 +0000 (04:41 +0000)]
. Now use of 64 bits offsets to parse the whole DVD. So we have all the
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.
Sam Hocevar [Tue, 16 Jan 2001 02:16:38 +0000 (02:16 +0000)]
. merged the YUV plugins in the same directory to avoid too much code
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 ?)
Sam Hocevar [Mon, 15 Jan 2001 06:18:23 +0000 (06:18 +0000)]
. fixed the bug-that-made-the-vlc-segfault-on-exit, which means that
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.
Stéphane Borel [Mon, 15 Jan 2001 03:26:56 +0000 (03:26 +0000)]
. Correction of bugs in ifo parsing. Now the structures should be well
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 ?
Sam Hocevar [Sat, 13 Jan 2001 12:57:21 +0000 (12:57 +0000)]
. the IDCT functions are now located in modules : the classic IDCT,
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.
* Changed default values :
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 ?)
Sam Hocevar [Thu, 11 Jan 2001 17:44:48 +0000 (17:44 +0000)]
. moved the MPEG audio decoder to the new bitstream
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.
Sam Hocevar [Thu, 11 Jan 2001 15:35:35 +0000 (15:35 +0000)]
. moved swab32 from input_ext-dec.h to common.h. We probably won't need
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.
* Changed code for handling b_die in bitstream ;
* Move input_ext-dec.h to input.h ;
* New input_NullPacket function ;
* Fixed init bugs in input and vpar ;
Sam Hocevar [Wed, 10 Jan 2001 02:33:59 +0000 (02:33 +0000)]
. complete commenting of modules_core.h and small modifications
. 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)
Sam Hocevar [Tue, 9 Jan 2001 21:03:47 +0000 (21:03 +0000)]
. fixed a warning under FreeBSD (dlerror() is a const char*, not a char*).
. made configure script look for the bswap assembly instruction (using
AC_TRY_COMPILE makes sure the compiler will really accept it).