Commit a264d032 authored by Sam Hocevar's avatar Sam Hocevar

  * Made everything ready for a vlc-0.2.91 / libdvdcss-1.0.0 release.
  * Updated ChangeLog and ChangeLog.libdvdcss.
  * Increased vlcs response message length.
  * Removed the i_flags argument to dvdcss_open. Everything is done through
    environment variables now.
parent b5b61d84
...@@ -6,6 +6,93 @@ HEAD ...@@ -6,6 +6,93 @@ HEAD
* Nothing yet. * Nothing yet.
0.2.91
Mon, 12 Nov 2001 17:14:29 +0100
* Added FAQ.
* New --channelserver switch.
* Documentation updates.
* ipkg script for Familiar Linux 0.5 & bug fix in debian/rules.
* Disabled DirectX audio output for the time being.
* Added Oct's NSIS installer script. It will probably not work for you,
but I need it to build the Win32 auto installer.
* Automatic handling of the Channel Server's response in network mode.
* GetMACAddress takes the interface defined in the environment variable
vlc_iface instead of eth0.
* Fixed bug with MPEG audio in TS streams.
* Fixed compilation (and quite probably runtime) issues under IA64
due to mixed int/void* casts.
* Merged DVD netlist with input netlist to remove duplicated code.
* BSD/OS VCD patch, courtesy of Steven M. Schultz <sms@TO.GD-ES.COM>.
* Win32 network fix.
* imdctsse should now compile and work in plugin and under BeOS.
* Kludge to have less discontinuity after a zero scr in DVD.
* Fixed some win32 64-bit issues.
* Fixed some win32 compile issues.
* Don't use long long, use u64/s64 (int_types.h).
* Move function that translates language codes into country name in src/misc
so that every plugin can use it.
* Changed the name of a function in dvd_udf.c to fit with the forthcoming
libdvdread plugin.
* Corrected à long time bug (around 0.2.81 I think), that created a
corruption in ifo data. This was the reason why some DVDs that worked with
0.2.80 no longer worked with newer version of vlc. They should work again
now.
* New --enable-release config option.
* Removed deprecated code and structures.
* Maybe corrected aspect ratio issue in fullscreen xvideo.
* Fixed support for SPU and LPCM streams over network.
* Added a new drawer to the control window to support Title / Chapter
selection, Subtitle selection, Audiochannel/Language selection,
Angle selection.
* New --volume option (untested, like usual :).
* Reimported Intf_Controller, connected "File/Open/File" to
Intf_Controller::file:Open (OS X).
* The intf is no longer accessed indirectly from vout_Destroy.
* Made it possible to open a File after vlc was started (you can use vlc now
without starting it from the command line) under OS X.
* Cleaned up playlist handling in Intf_Vlc_Wrapper.
* Modified the pf_close kludge in input.c so that we don't segfault when
pf_init fails.
* Changed chapter selection buttons aspect to try and differentiate them
from title selection ones.
* Changes to the BeOS interface to remove unwanted volumes from the Disk
Menu. Readonly filesystems like NTFS were being incorrectly added.
* Do not resample audio output if delta is short enough.
* Fixed a segfault on exit under Windows 2000.
* Enabled http button in gtk/gnome interface.
* Use memalign for aligned data (instead of a greek malloc).
* Some optimizations in imdct (all data are now aligned).
* SSE downmix now works for windows.
* SSE imdct is desactivated for windows (MINGW32 doesn't know how to aligned
data).
* Fixed '-' input.
* New interface for MacOS X, courtesy of Florian G. Pflug.
* BeOS interface changes to include menu for Title and chapter navigation.
* Improved more "BeOS" CD detection.
* VLC FAQ TBU.
* Synced dummy_dvdcss with Stef's changes to libdvdcss.
* configure now compiles the VCD plugin if linux/cdrom.h is present.
* Added VCD input plugin for Linux.
* Fixed ATTR_ALIGN configure test.
* Fixed compilation problems with OpenBSD.
* xvideo.so is now built in by default. Mixing PIC and non-PIC code was not
very nice.
* Fixed compilation errors in src/interface/main.c when the compiler did
not support SSE or 3DNow! inline assembly.
* Qt fix in vlc.spec courtesy of Christopher Johnson <cjohnson@mint.net>.
* Fixed error reporting on an unknown argument parsing.
* Fixed a deadlock in the TS input.
* Resizing the video out window in BeOS now retains the scaling.
* Tidied up the BeOS code to remove interface messages not required.
* Fixed an error in the ts://server[:port][/broadcast] input parsing.
* Minor video parser optimization.
* SDL now displays an error message on 422 streams.
* Chroma 4:2:2 and 4:4:4 support in the decoder.
* Fixed bugs in the C YUV transform with 4:2:2 format.
* Fixed bugs in RPM spec files.
* Fixed a bug in configure where ix86 machines were improperly detected.
0.2.90 0.2.90
Wed, 10 Oct 2001 15:00:29 +0200 Wed, 10 Oct 2001 15:00:29 +0200
......
...@@ -4,6 +4,33 @@ ...@@ -4,6 +4,33 @@
HEAD HEAD
* Nothing yet.
1.0.0
Mon, 12 Nov 2001 17:14:29 +0100
* Removed the i_flags argument to dvdcss_open. Everything is done through
environment variables now.
* Fixed a buffer overflow in CSSAuth().
* libdvdcss port to OpenBSD.
* Fixed NetBSD (and probably OpenBSD) libdvdcss compilation.
* Fixed undefined KEY_SIZE compile bug mentioned by Dave Thorup.
* Fixed CSS ioctl for Darwin/OSX - still might need tweaking of 'dataLength'
fields.
* Added ReadTitleKey ioctl for Darwin/OSX.
* When using title cracking method in libdvdcss, the key is only checked at
title start, not before each chapter.
* Use of an environment variable to choose libdvdcss method.
* New features for libdvdcss: we have three ways now to decode a title key.
* 1) Crack the title key (the method that was here before). The only change
here is that we search the key for the exact chapter we are seeking with
DVDSetArea (in case the key has changed within a title). It is maybe not a
good idea.
* 2) Crack the disc key, which allows us to decode instantly all title keys.
I've used an algorithm from Frank Stevenson ; it eats much memory (64MB),
and takes about 15 s at launch time.
* 3) Decode the disc key with player keys (libcss method). However, you need
licensed player keys at build time for this to work.
* Darwin ioctl, courtesy of ej0. * Darwin ioctl, courtesy of ej0.
* If we see 3000 unencrypted blocks assume that the title is unencrypted. * If we see 3000 unencrypted blocks assume that the title is unencrypted.
* If we have not seen any encrypted block and then discover that the block * If we have not seen any encrypted block and then discover that the block
......
...@@ -300,15 +300,19 @@ snapshot-common: ...@@ -300,15 +300,19 @@ snapshot-common:
-type d -name CVS -o -name '.*' -o -name '*.[o]' | \ -type d -name CVS -o -name '.*' -o -name '*.[o]' | \
while read i ; do rm -Rf $$i ; done while read i ; do rm -Rf $$i ; done
# Copy misc files # Copy misc files
cp vlc.spec AUTHORS COPYING TODO todo.pl ChangeLog* README* INSTALL* \ cp FAQ AUTHORS COPYING TODO todo.pl ChangeLog* README* INSTALL* \
Makefile Makefile.opts.in Makefile.dep Makefile.modules \ Makefile Makefile.opts.in Makefile.dep Makefile.modules \
configure configure.in install-sh config.sub config.guess \ configure configure.in install-sh install-win32 vlc.spec \
config.sub config.guess \
tmp/vlc/ tmp/vlc/
# Copy Debian control files # Copy Debian control files
for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \ for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \
debian/*copyright ; do cp $$file tmp/vlc/debian ; done debian/*copyright ; do cp $$file tmp/vlc/debian ; done
for file in control changelog rules ; do \ for file in control changelog rules ; do \
cp debian/$$file tmp/vlc/debian/ ; done cp debian/$$file tmp/vlc/debian/ ; done
# Copy ipkg control files
for file in control rules ; do \
cp ipkg/$$file tmp/vlc/ipkg/ ; done
# Copy fonts and icons # Copy fonts and icons
for file in share/*png share/*xpm share/*psf ; do \ for file in share/*png share/*xpm share/*psf ; do \
cp $$file tmp/vlc/share ; done cp $$file tmp/vlc/share ; done
...@@ -365,7 +369,7 @@ package-win32: ...@@ -365,7 +369,7 @@ package-win32:
README README.libdvdcss FAQ TODO tmp/ README README.libdvdcss FAQ TODO tmp/
for file in gtk-1.3.dll gdk-1.3.dll glib-1.3.dll gmodule-1.3.dll \ for file in gtk-1.3.dll gdk-1.3.dll glib-1.3.dll gmodule-1.3.dll \
gnu-intl.dll SDL.dll README-SDL.txt ; \ gnu-intl.dll SDL.dll README-SDL.txt ; \
do cp ../vlc-win32/$$file tmp/ ; done do cp ../win32-libs/$$file tmp/ ; done
mkdir tmp/share mkdir tmp/share
for file in default8x16.psf default8x9.psf ; \ for file in default8x16.psf default8x9.psf ; \
do cp share/$$file tmp/share/ ; done do cp share/$$file tmp/share/ ; done
...@@ -381,6 +385,7 @@ libdvdcss-snapshot: snapshot-common ...@@ -381,6 +385,7 @@ libdvdcss-snapshot: snapshot-common
rm -Rf tmp/vlc/src tmp/vlc/share tmp/vlc/plugins tmp/vlc/doc rm -Rf tmp/vlc/src tmp/vlc/share tmp/vlc/plugins tmp/vlc/doc
rm -Rf tmp/vlc/extras/GNUgetopt tmp/vlc/extras/MacOSX rm -Rf tmp/vlc/extras/GNUgetopt tmp/vlc/extras/MacOSX
rm -Rf tmp/vlc/debian rm -Rf tmp/vlc/debian
rm -Rf tmp/vlc/ipkg
# Remove useless headers # Remove useless headers
rm -f tmp/vlc/include/* rm -f tmp/vlc/include/*
for file in defs.h.in config.h.in common.h int_types.h ; \ for file in defs.h.in config.h.in common.h int_types.h ; \
......
This diff is collapsed.
...@@ -7,7 +7,7 @@ AC_CANONICAL_SYSTEM ...@@ -7,7 +7,7 @@ AC_CANONICAL_SYSTEM
HAVE_VLC=0 HAVE_VLC=0
if test -r src/interface/main.c; then if test -r src/interface/main.c; then
HAVE_VLC=1 HAVE_VLC=1
VLC_VERSION=0.2.90 VLC_VERSION=0.2.91
AC_SUBST(VLC_VERSION) AC_SUBST(VLC_VERSION)
VLC_CODENAME=Ourumov VLC_CODENAME=Ourumov
AC_SUBST(VLC_CODENAME) AC_SUBST(VLC_CODENAME)
...@@ -16,7 +16,7 @@ fi ...@@ -16,7 +16,7 @@ fi
HAVE_LIBDVDCSS=0 HAVE_LIBDVDCSS=0
if test -r extras/libdvdcss/libdvdcss.c; then if test -r extras/libdvdcss/libdvdcss.c; then
HAVE_LIBDVDCSS=1 HAVE_LIBDVDCSS=1
LIBDVDCSS_VERSION=0.0.3 LIBDVDCSS_VERSION=1.0.0
AC_SUBST(LIBDVDCSS_VERSION) AC_SUBST(LIBDVDCSS_VERSION)
if test -r extras/libdvdcss/csskeys.h; then if test -r extras/libdvdcss/csskeys.h; then
AC_DEFINE(HAVE_CSSKEYS,1,css decryption with player keys) AC_DEFINE(HAVE_CSSKEYS,1,css decryption with player keys)
...@@ -479,7 +479,6 @@ AC_CHECK_HEADERS(sys/ioctl.h,[ ...@@ -479,7 +479,6 @@ AC_CHECK_HEADERS(sys/ioctl.h,[
fi fi
]) ])
dnl dnl
dnl Check the operating system dnl Check the operating system
dnl dnl
......
vlc (0.2.91-1) unstable; urgency=low
* New upstream release.
* vlc will dlopen() an installed libdvdcss if available, to play
encrypted DVDs (Closes: #89856).
* vlc is now in sync with the official libdvdcss (Closes: #118194).
-- Samuel Hocevar <sam@zoy.org> Mon, 12 Nov 2001 17:14:29 +0100
vlc (0.2.90-2) unstable; urgency=low vlc (0.2.90-2) unstable; urgency=low
* Various upstream bugfixes. * Various upstream bugfixes.
......
...@@ -15,21 +15,21 @@ Description: a free MPEG and DVD player ...@@ -15,21 +15,21 @@ Description: a free MPEG and DVD player
This is vlc, the VideoLAN Client. It plays MPEG and MPEG2 files, This is vlc, the VideoLAN Client. It plays MPEG and MPEG2 files,
DVDs, or MPEG streams from a network source. DVDs, or MPEG streams from a network source.
Package: libdvdcss0.0.3 Package: libdvdcss1
Architecture: any Architecture: any
Depends: ${shlibs:Depends} Depends: ${shlibs:Depends}
Conflicts: libdvdcss0.0.2 Conflicts: libdvdcss0.0.1, libdvdcss0.0.2, libdvdcss0.0.3
Description: a portable abstraction library for DVD decryption Description: a portable abstraction library for DVD decryption
libdvdcss is a portable abstraction library for DVD decryption, it libdvdcss is a portable abstraction library for DVD decryption, it
provides a simple API to access a DVD device as a block device. provides a simple API to access a DVD device as a block device.
. .
This package contains the libdvdcss0 runtime library. This package contains the libdvdcss0 runtime library.
Package: libdvdcss0.0.3-dev Package: libdvdcss1-dev
Architecture: any Architecture: any
Depends: libdvdcss0.0.3 (= ${Source-Version}), libc6-dev Depends: libdvdcss1 (= ${Source-Version}), libc6-dev
Conflicts: libdvdcss0.0.2-dev Conflicts: libdvdcss0.0.1-dev, libdvdcss0.0.2-dev, libdvdcss0.0.3-dev
Description: development files for libdvdcss0 Description: development files for libdvdcss1
libdvdcss is a portable abstraction library for DVD decryption, it libdvdcss is a portable abstraction library for DVD decryption, it
provides a simple API to access a DVD device as a block device. provides a simple API to access a DVD device as a block device.
. .
......
...@@ -16,8 +16,8 @@ export PIXDIR="usr/share/pixmaps" ...@@ -16,8 +16,8 @@ export PIXDIR="usr/share/pixmaps"
export GNOMEDIR="usr/share/gnome/apps/Multimedia" export GNOMEDIR="usr/share/gnome/apps/Multimedia"
# Library options # Library options
version=$(shell grep '^ *LIBDVDCSS_VERSION=' configure.in | cut -f2 -d=) version=$(shell grep '^ *LIBDVDCSS_VERSION=[0-9]' configure.in | head -1 | cut -f2 -d=)
major=$(shell echo $(version) | cut -f1 -d.) major=$(shell echo "$(version)" | cut -f1 -d.)
build: build-stamp build: build-stamp
build-stamp: build-stamp:
...@@ -93,13 +93,13 @@ install: build ...@@ -93,13 +93,13 @@ install: build
# libdvdcss start # libdvdcss start
mv debian/vlc/usr/include/videolan/dvdcss.h \ mv debian/vlc/usr/include/videolan/dvdcss.h \
debian/libdvdcss$(version)-dev/usr/include/videolan debian/libdvdcss$(major)-dev/usr/include/videolan
rmdir debian/vlc/usr/include/videolan rmdir debian/vlc/usr/include/videolan
rmdir debian/vlc/usr/include rmdir debian/vlc/usr/include
mv debian/vlc/usr/lib/*.a debian/libdvdcss$(version)-dev/usr/lib mv debian/vlc/usr/lib/*.a debian/libdvdcss$(major)-dev/usr/lib
mv debian/vlc/usr/lib/*.so debian/libdvdcss$(version)-dev/usr/lib mv debian/vlc/usr/lib/*.so debian/libdvdcss$(major)-dev/usr/lib
mv debian/vlc/usr/lib/*.so.* debian/libdvdcss$(version)/usr/lib mv debian/vlc/usr/lib/*.so.* debian/libdvdcss$(major)/usr/lib
ln -s libdvdcss$(version) debian/libdvdcss$(version)-dev/usr/share/doc/libdvdcss$(version)-dev ln -s libdvdcss$(major) debian/libdvdcss$(major)-dev/usr/share/doc/libdvdcss$(major)-dev
# libdvdcss stop # libdvdcss stop
# Build architecture-independent files here. # Build architecture-independent files here.
......
...@@ -124,6 +124,13 @@ audio channel will also depend on the channel type. ...@@ -124,6 +124,13 @@ audio channel will also depend on the channel type.
.B \-s, \-\-dvdsubtitle [ 0\-31 ] .B \-s, \-\-dvdsubtitle [ 0\-31 ]
Select the subtitle channel, if there is one in the stream. Select the subtitle channel, if there is one in the stream.
.TP .TP
.B \-\-dvdcss-method <method>
Select the CSS decryption scheme when using libdvdcss. Usually to choose
from "disc", "title" or "key", but depends on your libdvdcss version.
.TP
.B \-\-dvdcss-verbose <level>
Select the CSS decryption verbosity level, 0, 1 or 2.
.TP
.B \-\-input <method> .B \-\-input <method>
Choose the input method, "dvd", "ps", "ts" for instance. Choose the input method, "dvd", "ps", "ts" for instance.
.TP .TP
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* css.c: Functions for DVD authentification and unscrambling * css.c: Functions for DVD authentification and unscrambling
***************************************************************************** *****************************************************************************
* Copyright (C) 1999-2001 VideoLAN * Copyright (C) 1999-2001 VideoLAN
* $Id: css.c,v 1.14 2001/11/11 04:51:10 jlj Exp $ * $Id: css.c,v 1.15 2001/11/12 20:16:32 sam Exp $
* *
* Author: Stphane Borel <stef@via.ecp.fr> * Author: Stphane Borel <stef@via.ecp.fr>
* Hkan Hjort <d95hjort@dtek.chalmers.se> * Hkan Hjort <d95hjort@dtek.chalmers.se>
...@@ -61,7 +61,7 @@ static int CSSGetASF ( dvdcss_handle dvdcss ); ...@@ -61,7 +61,7 @@ static int CSSGetASF ( dvdcss_handle dvdcss );
static void CSSCryptKey ( int i_key_type, int i_varient, static void CSSCryptKey ( int i_key_type, int i_varient,
u8 const * p_challenge, u8* p_key ); u8 const * p_challenge, u8* p_key );
static void CSSDecryptKey( u8* p_crypted, u8* p_key, u8 ); static void CSSDecryptKey( u8* p_crypted, u8* p_key, u8 );
static int CSSDiscCrack ( u8 * p_disc_key ); static int CSSDiscCrack ( dvdcss_handle dvdcss, u8 * p_disc_key );
static int CSSTitleCrack( int i_start, unsigned char * p_crypted, static int CSSTitleCrack( int i_start, unsigned char * p_crypted,
unsigned char * p_decrypted, unsigned char * p_decrypted,
dvd_key_t * p_sector_key, dvd_key_t * p_key ); dvd_key_t * p_sector_key, dvd_key_t * p_key );
...@@ -79,7 +79,8 @@ int CSSTest( dvdcss_handle dvdcss ) ...@@ -79,7 +79,8 @@ int CSSTest( dvdcss_handle dvdcss )
{ {
/* Since it's the first ioctl we try to issue, we add a notice */ /* Since it's the first ioctl we try to issue, we add a notice */
_dvdcss_error( dvdcss, "css error: ioctl_ReadCopyright failed, " _dvdcss_error( dvdcss, "css error: ioctl_ReadCopyright failed, "
"make sure DVD ioctls were compiled in" ); "make sure there is a DVD in the drive, and that "
"DVD ioctls were compiled in this libdvdcss version" );
return i_ret; return i_ret;
} }
...@@ -303,7 +304,7 @@ int CSSGetDiscKey( dvdcss_handle dvdcss ) ...@@ -303,7 +304,7 @@ int CSSGetDiscKey( dvdcss_handle dvdcss )
switch( dvdcss->i_method ) switch( dvdcss->i_method )
{ {
case DVDCSS_KEY: case DVDCSS_METHOD_KEY:
#ifdef HAVE_CSSKEYS #ifdef HAVE_CSSKEYS
/* Decrypt disc key with player keys from csskeys.h */ /* Decrypt disc key with player keys from csskeys.h */
_dvdcss_debug( dvdcss, "decrypting disc key with player keys" ); _dvdcss_debug( dvdcss, "decrypting disc key with player keys" );
...@@ -331,13 +332,13 @@ int CSSGetDiscKey( dvdcss_handle dvdcss ) ...@@ -331,13 +332,13 @@ int CSSGetDiscKey( dvdcss_handle dvdcss )
memcpy( dvdcss->css.disc.p_disc_key, disc_key, KEY_SIZE ); memcpy( dvdcss->css.disc.p_disc_key, disc_key, KEY_SIZE );
break; break;
#else #else
dvdcss->i_method = DVDCSS_DISC; dvdcss->i_method = DVDCSS_METHOD_DISC;
#endif #endif
case DVDCSS_DISC: case DVDCSS_METHOD_DISC:
/* Crack Disc key to be able to use it */ /* Crack Disc key to be able to use it */
_dvdcss_debug( dvdcss, "cracking disc key with key hash" ); _dvdcss_debug( dvdcss, "cracking disc key with key hash" );
_dvdcss_debug( dvdcss, "building 64MB table ... this will take some time" ); _dvdcss_debug( dvdcss, "building 64MB table ... this will take some time" );
CSSDiscCrack( dvdcss->css.disc.p_disc_key ); CSSDiscCrack( dvdcss, dvdcss->css.disc.p_disc_key );
break; break;
default: default:
...@@ -356,7 +357,8 @@ int CSSGetTitleKey( dvdcss_handle dvdcss, int i_pos ) ...@@ -356,7 +357,8 @@ int CSSGetTitleKey( dvdcss_handle dvdcss, int i_pos )
dvd_key_t p_key; dvd_key_t p_key;
int i,j; int i,j;
if( ( dvdcss->i_method == DVDCSS_TITLE ) || ( dvdcss->b_ioctls == 0 ) ) if( ( dvdcss->i_method == DVDCSS_METHOD_TITLE )
|| ( dvdcss->b_ioctls == 0 ) )
{ {
/* /*
* Title key cracking method from Ethan Hawke, * Title key cracking method from Ethan Hawke,
...@@ -488,7 +490,7 @@ int CSSGetTitleKey( dvdcss_handle dvdcss, int i_pos ) ...@@ -488,7 +490,7 @@ int CSSGetTitleKey( dvdcss_handle dvdcss, int i_pos )
memcpy( dvdcss->css.p_title_key, p_key, sizeof(dvd_key_t) ); memcpy( dvdcss->css.p_title_key, p_key, sizeof(dvd_key_t) );
return 0; return 0;
} // ( dvdcss->i_method == DVDCSS_TITLE ) || ( dvdcss->b_ioctls == 0 ) } // (dvdcss->i_method == DVDCSS_METHOD_TITLE) || (dvdcss->b_ioctls == 0)
} }
/***************************************************************************** /*****************************************************************************
...@@ -866,7 +868,7 @@ static int investigate( unsigned char* hash, unsigned char *ckey ) ...@@ -866,7 +868,7 @@ static int investigate( unsigned char* hash, unsigned char *ckey )
return memcmp( key, pkey, 5 ); return memcmp( key, pkey, 5 );
} }
static int CSSDiscCrack( u8 * p_disc_key ) static int CSSDiscCrack( dvdcss_handle dvdcss, u8 * p_disc_key )
{ {
unsigned char B[5] = { 0,0,0,0,0 }; /* Second Stage of mangle cipher */ unsigned char B[5] = { 0,0,0,0,0 }; /* Second Stage of mangle cipher */
unsigned char C[5] = { 0,0,0,0,0 }; /* Output Stage of mangle cipher unsigned char C[5] = { 0,0,0,0,0 }; /* Output Stage of mangle cipher
...@@ -913,7 +915,7 @@ static int CSSDiscCrack( u8 * p_disc_key ) ...@@ -913,7 +915,7 @@ static int CSSDiscCrack( u8 * p_disc_key )
/* /*
if( tmp4 == K1TABLEWIDTH ) if( tmp4 == K1TABLEWIDTH )
{ {
fprintf( stderr, "Table disaster %d", tmp4 ); _dvdcss_debug( dvdcss, "Table disaster %d", tmp4 );
} }
*/ */
if( tmp4 < K1TABLEWIDTH ) if( tmp4 < K1TABLEWIDTH )
...@@ -934,7 +936,7 @@ static int CSSDiscCrack( u8 * p_disc_key ) ...@@ -934,7 +936,7 @@ static int CSSDiscCrack( u8 * p_disc_key )
tmp3 = 0; tmp3 = 0;
fprintf( stderr, "initializing the big table" ); _dvdcss_debug( dvdcss, "initializing the big table" );
for( i = 0 ; i < 16777216 ; i++ ) for( i = 0 ; i < 16777216 ; i++ )
{ {
...@@ -958,7 +960,7 @@ static int CSSDiscCrack( u8 * p_disc_key ) ...@@ -958,7 +960,7 @@ static int CSSDiscCrack( u8 * p_disc_key )
BigTable[j] = i; BigTable[j] = i;
} }
// printf( "\n" ); /* fprintf( stderr, "\n" ); */
/* /*
* We are done initing, now reverse hash * We are done initing, now reverse hash
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libdvdcss.c: DVD reading library. * libdvdcss.c: DVD reading library.
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * Copyright (C) 1998-2001 VideoLAN
* $Id: libdvdcss.c,v 1.18 2001/10/16 16:51:28 stef Exp $ * $Id: libdvdcss.c,v 1.19 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Stphane Borel <stef@via.ecp.fr> * Authors: Stphane Borel <stef@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -80,11 +80,12 @@ static int _win32_dvdcss_aread ( int i_fd, void *p_data, int i_blocks ); ...@@ -80,11 +80,12 @@ static int _win32_dvdcss_aread ( int i_fd, void *p_data, int i_blocks );
/***************************************************************************** /*****************************************************************************
* dvdcss_open: initialize library, open a DVD device, crack CSS key * dvdcss_open: initialize library, open a DVD device, crack CSS key
*****************************************************************************/ *****************************************************************************/
extern dvdcss_handle dvdcss_open ( char *psz_target, int i_flags ) extern dvdcss_handle dvdcss_open ( char *psz_target )
{ {
int i_ret; int i_ret;
char psz_method[16] = "dvdcss_method"; char *psz_method = getenv( "DVDCSS_METHOD" );
char *psz_verbose = getenv( "DVDCSS_VERBOSE" );
dvdcss_handle dvdcss; dvdcss_handle dvdcss;
...@@ -92,37 +93,63 @@ extern dvdcss_handle dvdcss_open ( char *psz_target, int i_flags ) ...@@ -92,37 +93,63 @@ extern dvdcss_handle dvdcss_open ( char *psz_target, int i_flags )
dvdcss = malloc( sizeof( struct dvdcss_s ) ); dvdcss = malloc( sizeof( struct dvdcss_s ) );
if( dvdcss == NULL ) if( dvdcss == NULL )
{ {
if( ! (i_flags & DVDCSS_INIT_QUIET) )
{
DVDCSS_ERROR( "could not initialize library" );
}
return NULL; return NULL;
} }
/* Initialize structure */ /* Initialize structure with default values */
dvdcss->p_titles = NULL; dvdcss->p_titles = NULL;
dvdcss->b_debug = i_flags & DVDCSS_INIT_DEBUG;
dvdcss->b_errors = !(i_flags & DVDCSS_INIT_QUIET);
dvdcss->psz_error = "no error"; dvdcss->psz_error = "no error";
dvdcss->i_method = DVDCSS_METHOD_TITLE;
dvdcss->b_debug = 0;
dvdcss->b_errors = 1;
/* Find method from DVDCSS_METHOD environment variable */
if( psz_method != NULL )
/* find method from DVDCSS_METHOD environment variable */
dvdcss->i_method = DVDCSS_TITLE;
if( getenv( psz_method ) )
{ {
if( !strncmp( getenv( psz_method ), "key", 3 ) ) if( !strncmp( psz_method, "key", 4 ) )
{
dvdcss->i_method = DVDCSS_METHOD_KEY;
}
else if( !strncmp( psz_method, "disc", 5 ) )
{
dvdcss->i_method = DVDCSS_METHOD_DISC;
}
else if( !strncmp( psz_method, "title", 5 ) )
{ {
dvdcss->i_method = DVDCSS_KEY; dvdcss->i_method = DVDCSS_METHOD_TITLE;
} }
else if( !strncmp( getenv( psz_method ), "disc", 4 ) ) else
{ {
dvdcss->i_method = DVDCSS_DISC; _dvdcss_error( dvdcss, "unknown decrypt method, please choose "
"from 'title', 'key' or 'disc'" );
free( dvdcss );
return NULL;
}
}
/* Find verbosity from DVDCSS_VERBOSE environment variable */
if( psz_verbose != NULL )
{
switch( atoi( psz_verbose ) )
{
case 0:
dvdcss->b_errors = 0;
break;
case 1:
break;
case 2:
dvdcss->b_debug = 1;
break;
default:
_dvdcss_error( dvdcss, "unknown verbose level, please choose "
"from '0', '1' or '2'" );
free( dvdcss );
return NULL;
break;
} }
} }
/* Open device */
i_ret = _dvdcss_open( dvdcss, psz_target ); i_ret = _dvdcss_open( dvdcss, psz_target );
if( i_ret < 0 ) if( i_ret < 0 )
{ {
...@@ -174,7 +201,8 @@ extern char * dvdcss_error ( dvdcss_handle dvdcss ) ...@@ -174,7 +201,8 @@ extern char * dvdcss_error ( dvdcss_handle dvdcss )
extern int dvdcss_seek ( dvdcss_handle dvdcss, int i_blocks, int i_flags ) extern int dvdcss_seek ( dvdcss_handle dvdcss, int i_blocks, int i_flags )
{ {
/* title cracking method is too slow to be used at each seek */ /* title cracking method is too slow to be used at each seek */
if( ( ( i_flags & DVDCSS_SEEK_MPEG ) && ( dvdcss->i_method != DVDCSS_TITLE ) ) if( ( ( i_flags & DVDCSS_SEEK_MPEG )
&& ( dvdcss->i_method != DVDCSS_METHOD_TITLE ) )
|| ( i_flags & DVDCSS_SEEK_INI ) ) || ( i_flags & DVDCSS_SEEK_INI ) )
{ {
/* check the title key */ /* check the title key */
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* private.h: private DVD reading library data * private.h: private DVD reading library data
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * Copyright (C) 1998-2001 VideoLAN
* $Id: libdvdcss.h,v 1.8 2001/10/13 15:34:21 stef Exp $ * $Id: libdvdcss.h,v 1.9 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Stphane Borel <stef@via.ecp.fr> * Authors: Stphane Borel <stef@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -54,6 +54,13 @@ struct dvdcss_s ...@@ -54,6 +54,13 @@ struct dvdcss_s
#endif #endif
}; };
/*****************************************************************************
* libdvdcss method: used like init flags
*****************************************************************************/
#define DVDCSS_METHOD_KEY 0
#define DVDCSS_METHOD_DISC 1
#define DVDCSS_METHOD_TITLE 2
/***************************************************************************** /*****************************************************************************
* Error management * Error management
*****************************************************************************/ *****************************************************************************/
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* libdvdcss.h: DVD reading library, exported functions. * libdvdcss.h: DVD reading library, exported functions.
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * Copyright (C) 1998-2001 VideoLAN
* $Id: dvdcss.h,v 1.7 2001/10/14 03:26:20 stef Exp $ * $Id: dvdcss.h,v 1.8 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Stphane Borel <stef@via.ecp.fr> * Authors: Stphane Borel <stef@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -32,9 +32,6 @@ typedef struct dvdcss_s* dvdcss_handle; ...@@ -32,9 +32,6 @@ typedef struct dvdcss_s* dvdcss_handle;
*****************************************************************************/ *****************************************************************************/
#define DVDCSS_NOFLAGS 0 #define DVDCSS_NOFLAGS 0
#define DVDCSS_INIT_QUIET (1 << 0)
#define DVDCSS_INIT_DEBUG (1 << 1)
#define DVDCSS_READ_DECRYPT (1 << 0) #define DVDCSS_READ_DECRYPT (1 << 0)
#define DVDCSS_SEEK_INI (1 << 0) #define DVDCSS_SEEK_INI (1 << 0)
...@@ -42,18 +39,10 @@ typedef struct dvdcss_s* dvdcss_handle; ...@@ -42,18 +39,10 @@ typedef struct dvdcss_s* dvdcss_handle;
#define DVDCSS_BLOCK_SIZE 2048 #define DVDCSS_BLOCK_SIZE 2048
/*****************************************************************************
* libdvdcss method: used like init flags
*****************************************************************************/
#define DVDCSS_KEY 0
#define DVDCSS_DISC 1
#define DVDCSS_TITLE 2
/***************************************************************************** /*****************************************************************************
* Exported prototypes * Exported prototypes
*****************************************************************************/ *****************************************************************************/
extern dvdcss_handle dvdcss_open ( char *psz_target, extern dvdcss_handle dvdcss_open ( char *psz_target );
int i_flags );
extern int dvdcss_close ( dvdcss_handle ); extern int dvdcss_close ( dvdcss_handle );
extern int dvdcss_title ( dvdcss_handle, extern int dvdcss_title ( dvdcss_handle,
int i_block ); int i_block );
......
...@@ -60,7 +60,6 @@ ...@@ -60,7 +60,6 @@
* useful to track a bug */ * useful to track a bug */
//#define TRACE_INTF //#define TRACE_INTF
//#define TRACE_INPUT //#define TRACE_INPUT
//#define TRACE_DVDCSS
//#define TRACE_AUDIO //#define TRACE_AUDIO
#define TRACE_VOUT #define TRACE_VOUT
#define TRACE_VPAR #define TRACE_VPAR
...@@ -221,8 +220,6 @@ ...@@ -221,8 +220,6 @@
#define INPUT_AUDIO_VAR "vlc_input_audio" #define INPUT_AUDIO_VAR "vlc_input_audio"
#define INPUT_CHANNEL_VAR "vlc_input_channel" #define INPUT_CHANNEL_VAR "vlc_input_channel"
#define INPUT_SUBTITLE_VAR "vlc_input_subtitle" #define INPUT_SUBTITLE_VAR "vlc_input_subtitle"
#define INPUT_DVDCSS_VAR "dvdcss_method"
#define INPUT_DVDCSS_DEFAULT "title"
/* VCD defaults */ /* VCD defaults */
#define INPUT_VCD_DEVICE_VAR "vlc_vcd_device" #define INPUT_VCD_DEVICE_VAR "vlc_vcd_device"
......
...@@ -13,6 +13,10 @@ ...@@ -13,6 +13,10 @@
; . really remove the shortcuts. ; . really remove the shortcuts.
; . added an exec command to display the program file folder. (grOovy) ; . added an exec command to display the program file folder. (grOovy)
;;;;;;;;;;;;;;;;;;;;;;;;;
; General configuration ;
;;;;;;;;;;;;;;;;;;;;;;;;;
OutFile vlc-@VERSION@.exe OutFile vlc-@VERSION@.exe
Name "the VideoLAN Client" Name "the VideoLAN Client"
Caption "vlc @VERSION@ for Win32 Setup" Caption "vlc @VERSION@ for Win32 Setup"
...@@ -38,6 +42,10 @@ SetDatablockOptimize on ...@@ -38,6 +42,10 @@ SetDatablockOptimize on
SetDateSave off SetDateSave off
SetCompress auto SetCompress auto
;;;;;;;;;;;;;;;;;;;;
; Install settings ;
;;;;;;;;;;;;;;;;;;;;
Section "Install" Section "Install"
SetOutPath $INSTDIR SetOutPath $INSTDIR
...@@ -76,6 +84,10 @@ Section "Install" ...@@ -76,6 +84,10 @@ Section "Install"
Exec "explorer $SMPROGRAMS\VideoLAN\" Exec "explorer $SMPROGRAMS\VideoLAN\"
SectionEnd SectionEnd
;;;;;;;;;;;;;;;;;;;;;;
; Uninstall settings ;
;;;;;;;;;;;;;;;;;;;;;;
Section "Uninstall" Section "Uninstall"
Delete $SMPROGRAMS\VideoLAN\* Delete $SMPROGRAMS\VideoLAN\*
RMDir $SMPROGRAMS\VideoLAN RMDir $SMPROGRAMS\VideoLAN
......
...@@ -23,7 +23,7 @@ include ../../Makefile.modules ...@@ -23,7 +23,7 @@ include ../../Makefile.modules
# #
../alsa.so: $(PLUGIN_C) ../alsa.so: $(PLUGIN_C)
$(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS) $(LIB_ALSA) $(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS) $(LIB_ALSA) -lasound -lm -ldl
../alsa.a: $(BUILTIN_C) ../alsa.a: $(BUILTIN_C)
ar r $@ $^ ar r $@ $^
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* aout_alsa.c : Alsa functions library * aout_alsa.c : Alsa functions library
***************************************************************************** *****************************************************************************
* Copyright (C) 2000 VideoLAN * Copyright (C) 2000 VideoLAN
* $Id: aout_alsa.c,v 1.18 2001/07/12 20:44:52 reno Exp $ * $Id: aout_alsa.c,v 1.19 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Henri Fallon <henri@videolan.org> - Original Author * Authors: Henri Fallon <henri@videolan.org> - Original Author
* Jeffrey Baker <jwbaker@acm.org> - Port to ALSA 1.0 API * Jeffrey Baker <jwbaker@acm.org> - Port to ALSA 1.0 API
...@@ -89,9 +89,11 @@ static int aout_Probe( probedata_t *p_data ) ...@@ -89,9 +89,11 @@ static int aout_Probe( probedata_t *p_data )
int i_open_return, i_close_return; int i_open_return, i_close_return;
aout_sys_t local_sys; aout_sys_t local_sys;
printf("aout_probe\n");
/* Open device */ /* Open device */
i_open_return = snd_pcm_open( &(local_sys.p_alsa_handle), "plug:0,0", i_open_return = snd_pcm_open( &(local_sys.p_alsa_handle), "default",
SND_PCM_STREAM_PLAYBACK, 0 ); SND_PCM_STREAM_PLAYBACK, 0 );
printf("grmbl\n");
if( i_open_return ) if( i_open_return )
{ {
intf_WarnMsg( 2, "aout info: could not probe ALSA device (%s)", intf_WarnMsg( 2, "aout info: could not probe ALSA device (%s)",
...@@ -145,7 +147,7 @@ static int aout_Open( aout_thread_t *p_aout ) ...@@ -145,7 +147,7 @@ static int aout_Open( aout_thread_t *p_aout )
/* Open device */ /* Open device */
if( ( i_open_returns = snd_pcm_open(&(p_aout->p_sys->p_alsa_handle), if( ( i_open_returns = snd_pcm_open(&(p_aout->p_sys->p_alsa_handle),
"plug:0,0", "default",
SND_PCM_STREAM_PLAYBACK, 0) ) ) SND_PCM_STREAM_PLAYBACK, 0) ) )
{ {
intf_ErrMsg( "aout error: could not open ALSA device (%s)", intf_ErrMsg( "aout error: could not open ALSA device (%s)",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* dummy_dvdcss.c: Dummy libdvdcss with minimal DVD access. * dummy_dvdcss.c: Dummy libdvdcss with minimal DVD access.
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: dummy_dvdcss.c,v 1.2 2001/10/23 23:41:00 sam Exp $ * $Id: dummy_dvdcss.c,v 1.3 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -60,7 +60,7 @@ struct dvdcss_s ...@@ -60,7 +60,7 @@ struct dvdcss_s
/***************************************************************************** /*****************************************************************************
* dvdcss_open: initialize library, open a DVD device, crack CSS key * dvdcss_open: initialize library, open a DVD device, crack CSS key
*****************************************************************************/ *****************************************************************************/
extern dvdcss_handle dummy_dvdcss_open ( char *psz_target, int i_flags ) extern dvdcss_handle dummy_dvdcss_open ( char *psz_target )
{ {
dvdcss_handle dvdcss; dvdcss_handle dvdcss;
dvd_struct dvd; dvd_struct dvd;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* dummy_dvdcss.h: Dummy libdvdcss header. * dummy_dvdcss.h: Dummy libdvdcss header.
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: dummy_dvdcss.h,v 1.2 2001/10/23 23:41:00 sam Exp $ * $Id: dummy_dvdcss.h,v 1.3 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -31,9 +31,6 @@ typedef struct dvdcss_s* dvdcss_handle; ...@@ -31,9 +31,6 @@ typedef struct dvdcss_s* dvdcss_handle;
*****************************************************************************/ *****************************************************************************/
#define DVDCSS_NOFLAGS 0 #define DVDCSS_NOFLAGS 0
#define DVDCSS_INIT_QUIET (1 << 0)
#define DVDCSS_INIT_DEBUG (1 << 1)
#define DVDCSS_READ_DECRYPT (1 << 0) #define DVDCSS_READ_DECRYPT (1 << 0)
#define DVDCSS_SEEK_INI (1 << 0) #define DVDCSS_SEEK_INI (1 << 0)
...@@ -51,7 +48,7 @@ typedef struct dvdcss_s* dvdcss_handle; ...@@ -51,7 +48,7 @@ typedef struct dvdcss_s* dvdcss_handle;
/***************************************************************************** /*****************************************************************************
* Exported prototypes * Exported prototypes
*****************************************************************************/ *****************************************************************************/
dvdcss_handle dummy_dvdcss_open ( char *, int i_flags ); dvdcss_handle dummy_dvdcss_open ( char * );
int dummy_dvdcss_close ( dvdcss_handle ); int dummy_dvdcss_close ( dvdcss_handle );
int dummy_dvdcss_title ( dvdcss_handle, int ); int dummy_dvdcss_title ( dvdcss_handle, int );
int dummy_dvdcss_seek ( dvdcss_handle, int, int ); int dummy_dvdcss_seek ( dvdcss_handle, int, int );
...@@ -63,7 +60,7 @@ char * dummy_dvdcss_error ( dvdcss_handle ); ...@@ -63,7 +60,7 @@ char * dummy_dvdcss_error ( dvdcss_handle );
* Pointers which will be filled either with dummy_dvdcss functions or * Pointers which will be filled either with dummy_dvdcss functions or
* with the dlopen()ed ones. * with the dlopen()ed ones.
*****************************************************************************/ *****************************************************************************/
dvdcss_handle (* dvdcss_open ) ( char *, int i_flags ); dvdcss_handle (* dvdcss_open ) ( char * );
int (* dvdcss_close ) ( dvdcss_handle ); int (* dvdcss_close ) ( dvdcss_handle );
int (* dvdcss_title ) ( dvdcss_handle, int ); int (* dvdcss_title ) ( dvdcss_handle, int );
int (* dvdcss_seek ) ( dvdcss_handle, int, int ); int (* dvdcss_seek ) ( dvdcss_handle, int, int );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* dvd.c : DVD input module for vlc * dvd.c : DVD input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2000 VideoLAN * Copyright (C) 2000 VideoLAN
* $Id: dvd.c,v 1.13 2001/08/07 02:48:25 sam Exp $ * $Id: dvd.c,v 1.14 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -105,9 +105,9 @@ MODULE_DEACTIVATE_STOP ...@@ -105,9 +105,9 @@ MODULE_DEACTIVATE_STOP
*****************************************************************************/ *****************************************************************************/
static void ProbeLibDVDCSS( void ) static void ProbeLibDVDCSS( void )
{ {
char *pp_filelist[4] = { "libdvdcss.so.0", char *pp_filelist[4] = { "libdvdcss.so.1",
"./libdvdcss.so.0", "./libdvdcss.so.1",
"./lib/libdvdcss.so.0", "./lib/libdvdcss.so.1",
NULL }; NULL };
char **pp_file = pp_filelist; char **pp_file = pp_filelist;
...@@ -128,39 +128,28 @@ static void ProbeLibDVDCSS( void ) ...@@ -128,39 +128,28 @@ static void ProbeLibDVDCSS( void )
/* If libdvdcss.so was found, check that it's valid */ /* If libdvdcss.so was found, check that it's valid */
if( p_libdvdcss == NULL ) if( p_libdvdcss == NULL )
{ {
intf_ErrMsg( "dvd warning: libdvdcss.so.0 not present" ); intf_ErrMsg( "dvd warning: libdvdcss.so.1 not present" );
} }
else else
{ {
/* Check for libdvdcss 0.0.1 */ dvdcss_open = dlsym( p_libdvdcss, "dvdcss_open" );
if( dlsym( p_libdvdcss, "dvdcss_crack" ) != NULL ) dvdcss_close = dlsym( p_libdvdcss, "dvdcss_close" );
dvdcss_title = dlsym( p_libdvdcss, "dvdcss_title" );
dvdcss_seek = dlsym( p_libdvdcss, "dvdcss_seek" );
dvdcss_read = dlsym( p_libdvdcss, "dvdcss_read" );
dvdcss_readv = dlsym( p_libdvdcss, "dvdcss_readv" );
dvdcss_error = dlsym( p_libdvdcss, "dvdcss_error" );
if( dvdcss_open == NULL || dvdcss_close == NULL
|| dvdcss_title == NULL || dvdcss_seek == NULL
|| dvdcss_read == NULL || dvdcss_readv == NULL
|| dvdcss_error == NULL )
{ {
intf_ErrMsg( "dvd warning: libdvdcss.so.0 has deprecated symbol " intf_ErrMsg( "dvd warning: missing symbols in libdvdcss.so.1, "
"dvdcss_crack(), please upgrade" ); "this shouldn't happen !" );
dlclose( p_libdvdcss ); dlclose( p_libdvdcss );
p_libdvdcss = NULL; p_libdvdcss = NULL;
} }
else
{
dvdcss_open = dlsym( p_libdvdcss, "dvdcss_open" );
dvdcss_close = dlsym( p_libdvdcss, "dvdcss_close" );
dvdcss_title = dlsym( p_libdvdcss, "dvdcss_title" );
dvdcss_seek = dlsym( p_libdvdcss, "dvdcss_seek" );
dvdcss_read = dlsym( p_libdvdcss, "dvdcss_read" );
dvdcss_readv = dlsym( p_libdvdcss, "dvdcss_readv" );
dvdcss_error = dlsym( p_libdvdcss, "dvdcss_error" );
if( dvdcss_open == NULL || dvdcss_close == NULL
|| dvdcss_title == NULL || dvdcss_seek == NULL
|| dvdcss_read == NULL || dvdcss_readv == NULL
|| dvdcss_error == NULL )
{
intf_ErrMsg( "dvd warning: missing symbols in libdvdcss.so.0, "
"please upgrade libdvdcss or vlc" );
dlclose( p_libdvdcss );
p_libdvdcss = NULL;
}
}
} }
/* If libdvdcss was not found or was not valid, use the dummy /* If libdvdcss was not found or was not valid, use the dummy
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* -dvd_udf to find files * -dvd_udf to find files
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * Copyright (C) 1998-2001 VideoLAN
* $Id: input_dvd.c,v 1.95 2001/11/12 03:07:13 stef Exp $ * $Id: input_dvd.c,v 1.96 2001/11/12 20:16:33 sam Exp $
* *
* Author: Stphane Borel <stef@via.ecp.fr> * Author: Stphane Borel <stef@via.ecp.fr>
* *
...@@ -310,7 +310,6 @@ static void DVDInit( input_thread_t * p_input ) ...@@ -310,7 +310,6 @@ static void DVDInit( input_thread_t * p_input )
static void DVDOpen( struct input_thread_s *p_input ) static void DVDOpen( struct input_thread_s *p_input )
{ {
dvdcss_handle dvdhandle; dvdcss_handle dvdhandle;
int i_flags;
vlc_mutex_lock( &p_input->stream.stream_lock ); vlc_mutex_lock( &p_input->stream.stream_lock );
...@@ -324,23 +323,15 @@ static void DVDOpen( struct input_thread_s *p_input ) ...@@ -324,23 +323,15 @@ static void DVDOpen( struct input_thread_s *p_input )
vlc_mutex_unlock( &p_input->stream.stream_lock ); vlc_mutex_unlock( &p_input->stream.stream_lock );
/* Error messages from libdvdcss only in verbose mode */
i_flags = p_main->i_warning_level ? DVDCSS_NOFLAGS : DVDCSS_INIT_QUIET;
/* Debug message from libdvdcss selected from config.h #define */
#ifdef TRACE_DVDCSS
i_flags |= DVDCSS_INIT_DEBUG;
#endif
/* XXX: put this shit in an access plugin */ /* XXX: put this shit in an access plugin */
if( strlen( p_input->p_source ) > 4 if( strlen( p_input->p_source ) > 4
&& !strncasecmp( p_input->p_source, "dvd:", 4 ) ) && !strncasecmp( p_input->p_source, "dvd:", 4 ) )
{ {
dvdhandle = dvdcss_open( p_input->p_source + 4, i_flags ); dvdhandle = dvdcss_open( p_input->p_source + 4 );
} }
else else
{ {
dvdhandle = dvdcss_open( p_input->p_source, i_flags ); dvdhandle = dvdcss_open( p_input->p_source );
} }
if( dvdhandle == NULL ) if( dvdhandle == NULL )
...@@ -488,11 +479,9 @@ static int DVDSetArea( input_thread_t * p_input, input_area_t * p_area ) ...@@ -488,11 +479,9 @@ static int DVDSetArea( input_thread_t * p_input, input_area_t * p_area )
return -1; return -1;
} }
/* /* Force libdvdcss to check its title key.
* Force libdvdcss to check its title key. * It is only useful for title cracking method. Methods using the
* It is only useful for title cracking method. Methods using the decrypted * decrypted disc key are fast enough to check the key at each seek */
* disc key are fast enough to check the key at each seek
*/
if( dvdcss_seek( p_dvd->dvdhandle, p_dvd->i_start, DVDCSS_SEEK_INI ) < 0 ) if( dvdcss_seek( p_dvd->dvdhandle, p_dvd->i_start, DVDCSS_SEEK_INI ) < 0 )
{ {
intf_ErrMsg( "dvd error: %s", dvdcss_error( p_dvd->dvdhandle ) ); intf_ErrMsg( "dvd error: %s", dvdcss_error( p_dvd->dvdhandle ) );
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* and spawn threads. * and spawn threads.
***************************************************************************** *****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN * Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: main.c,v 1.122 2001/11/12 12:54:16 massiot Exp $ * $Id: main.c,v 1.123 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -131,7 +131,8 @@ ...@@ -131,7 +131,8 @@
#define OPT_YUV 183 #define OPT_YUV 183
#define OPT_DOWNMIX 184 #define OPT_DOWNMIX 184
#define OPT_IMDCT 185 #define OPT_IMDCT 185
#define OPT_DVDCSS 186 #define OPT_DVDCSS_METHOD 186
#define OPT_DVDCSS_VERBOSE 187
#define OPT_SYNCHRO 190 #define OPT_SYNCHRO 190
#define OPT_WARNING 191 #define OPT_WARNING 191
...@@ -203,7 +204,8 @@ static const struct option longopts[] = ...@@ -203,7 +204,8 @@ static const struct option longopts[] =
{ "dvdaudio", 1, 0, 'a' }, { "dvdaudio", 1, 0, 'a' },
{ "dvdchannel", 1, 0, 'c' }, { "dvdchannel", 1, 0, 'c' },
{ "dvdsubtitle", 1, 0, 's' }, { "dvdsubtitle", 1, 0, 's' },
{ "dvdcss_method", 1, 0, OPT_DVDCSS }, { "dvdcss-method", 1, 0, OPT_DVDCSS_METHOD },
{ "dvdcss-verbose", 1, 0, OPT_DVDCSS_VERBOSE },
/* Input options */ /* Input options */
{ "input", 1, 0, OPT_INPUT }, { "input", 1, 0, OPT_INPUT },
...@@ -772,8 +774,11 @@ static int GetConfiguration( int *pi_argc, char *ppsz_argv[], char *ppsz_env[] ) ...@@ -772,8 +774,11 @@ static int GetConfiguration( int *pi_argc, char *ppsz_argv[], char *ppsz_env[] )
case 's': /* --dvdsubtitle */ case 's': /* --dvdsubtitle */
main_PutIntVariable( INPUT_SUBTITLE_VAR, atoi(optarg) ); main_PutIntVariable( INPUT_SUBTITLE_VAR, atoi(optarg) );
break; break;
case OPT_DVDCSS: /* --dvdcss */ case OPT_DVDCSS_METHOD: /* --dvdcss-method */
main_PutPszVariable( INPUT_DVDCSS_VAR, optarg ); main_PutPszVariable( "DVDCSS_METHOD", optarg );
break;
case OPT_DVDCSS_VERBOSE: /* --dvdcss-verbose */
main_PutPszVariable( "DVDCSS_VERBOSE", optarg );
break; break;
/* Input options */ /* Input options */
...@@ -904,7 +909,8 @@ static void Usage( int i_fashion ) ...@@ -904,7 +909,8 @@ static void Usage( int i_fashion )
"\n -a, --dvdaudio <type> \tchoose DVD audio type" "\n -a, --dvdaudio <type> \tchoose DVD audio type"
"\n -c, --dvdchannel <channel> \tchoose DVD audio channel" "\n -c, --dvdchannel <channel> \tchoose DVD audio channel"
"\n -s, --dvdsubtitle <channel> \tchoose DVD subtitle channel" "\n -s, --dvdsubtitle <channel> \tchoose DVD subtitle channel"
"\n , --dvdcss <method> \tselect DVDCSS decryption method" "\n --dvdcss-method <method> \tselect dvdcss decryption method"
"\n --dvdcss-verbose <level> \tselect dvdcss verbose level"
"\n" "\n"
"\n --input \tinput method" "\n --input \tinput method"
"\n --channels \tenable channels" "\n --channels \tenable channels"
...@@ -936,7 +942,7 @@ static void Usage( int i_fashion ) ...@@ -936,7 +942,7 @@ static void Usage( int i_fashion )
"\n " DOWNMIX_METHOD_VAR "=<method name> \tAC3 downmix method" "\n " DOWNMIX_METHOD_VAR "=<method name> \tAC3 downmix method"
"\n " IMDCT_METHOD_VAR "=<method name> \tAC3 IMDCT method" "\n " IMDCT_METHOD_VAR "=<method name> \tAC3 IMDCT method"
"\n " AOUT_VOLUME_VAR "=[0..1024] \tVLC output volume" "\n " AOUT_VOLUME_VAR "=[0..1024] \tVLC output volume"
"\n " AOUT_RATE_VAR "=<rate> \toutput rate" ); "\n " AOUT_RATE_VAR "=<rate> \toutput rate" );
/* Video parameters */ /* Video parameters */
intf_MsgImm( "\nVideo parameters:" intf_MsgImm( "\nVideo parameters:"
...@@ -963,13 +969,12 @@ static void Usage( int i_fashion ) ...@@ -963,13 +969,12 @@ static void Usage( int i_fashion )
"\n " INPUT_ANGLE_VAR "=<angle> \tangle number" "\n " INPUT_ANGLE_VAR "=<angle> \tangle number"
"\n " INPUT_AUDIO_VAR "={ac3|lpcm|mpeg|off} \taudio type" "\n " INPUT_AUDIO_VAR "={ac3|lpcm|mpeg|off} \taudio type"
"\n " INPUT_CHANNEL_VAR "=[0-15] \taudio channel" "\n " INPUT_CHANNEL_VAR "=[0-15] \taudio channel"
"\n " INPUT_SUBTITLE_VAR "=[0-31] \tsubtitle channel" "\n " INPUT_SUBTITLE_VAR "=[0-31] \tsubtitle channel" );
"\n " INPUT_DVDCSS_VAR "={csskey|disc|title} \tdvdcss method" );
/* Input parameters */ /* Input parameters */
intf_MsgImm( "\nInput parameters:" intf_MsgImm( "\nInput parameters:"
"\n " INPUT_SERVER_VAR "=<hostname> \tvideo server" "\n " INPUT_SERVER_VAR "=<hostname> \tvideo server"
"\n " INPUT_PORT_VAR "=<port> \tvideo server port" "\n " INPUT_PORT_VAR "=<port> \tvideo server port"
"\n " INPUT_IFACE_VAR "=<interface> \tnetwork interface" "\n " INPUT_IFACE_VAR "=<interface> \tnetwork interface"
"\n " INPUT_BCAST_ADDR_VAR "=<addr> \tbroadcast mode" "\n " INPUT_BCAST_ADDR_VAR "=<addr> \tbroadcast mode"
"\n " INPUT_CHANNEL_SERVER_VAR "=<hostname> \tchannel server" "\n " INPUT_CHANNEL_SERVER_VAR "=<hostname> \tchannel server"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* netutils.c: various network functions * netutils.c: various network functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN * Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: netutils.c,v 1.41 2001/11/12 04:12:38 sam Exp $ * $Id: netutils.c,v 1.42 2001/11/12 20:16:33 sam Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* Benoit Steiner <benny@via.ecp.fr> * Benoit Steiner <benny@via.ecp.fr>
...@@ -258,7 +258,7 @@ int network_ChannelJoin( int i_channel ) ...@@ -258,7 +258,7 @@ int network_ChannelJoin( int i_channel )
#if defined( SYS_LINUX ) || defined( WIN32 ) #if defined( SYS_LINUX ) || defined( WIN32 )
#define VLCS_VERSION 12 #define VLCS_VERSION 12
#define MESSAGE_LENGTH 80 #define MESSAGE_LENGTH 256
char psz_mess[ MESSAGE_LENGTH ]; char psz_mess[ MESSAGE_LENGTH ];
char psz_mac[ 40 ]; char psz_mac[ 40 ];
......
# This is borrowed and adapted from Mandrake's Cooker # This is borrowed and adapted from Mandrake's Cooker
%define name vlc %define name vlc
%define vlc_ver 0.2.90 %define vlc_ver 0.2.91
%define version %vlc_ver %define version %vlc_ver
# libdvdcss # libdvdcss
%define major 0 %define major 0
%define lib_ver 0.0.3 %define lib_ver 1.0.0
%define lib_name libdvdcss%{major} %define lib_name libdvdcss%{major}
%define cvs 0 %define cvs 0
...@@ -157,6 +157,9 @@ rm -fr %buildroot ...@@ -157,6 +157,9 @@ rm -fr %buildroot
%changelog %changelog
* Mon Nov 12 2001 Christophe Massiot <massiot@via.ecp.fr> 0.2.91-1
- version 0.2.91
* Wed Oct 10 2001 Christophe Massiot <massiot@via.ecp.fr> 0.2.90-1 * Wed Oct 10 2001 Christophe Massiot <massiot@via.ecp.fr> 0.2.90-1
- version 0.2.90 - version 0.2.90
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment