Commit 0beab2c2 authored by Sam Hocevar's avatar Sam Hocevar

  * ALL: removed libdvdcss from the vlc tree.
  * ALL: removed libdvdread from the vlc tree.
  * ./acconfig.h: removed this file.
  * ./plugins/dvd/dummy_dvdcss.c: merged this file into dvd.c.
  * ./AUTHORS: moved a few gentlemen to the libdvdcss AUTHORS file.
parent 1de7fc8e
......@@ -35,10 +35,6 @@ C: gbazin
D: mingw32 port, various win32 fixes
D: DirectX audio and video output
N: Billy Biggs
E: vektor@dumbterm.net
D: libdvdcss enhancements
N: Johan Bilien
E: jobi@via.ecp.fr
C: jobi
......@@ -141,11 +137,6 @@ E: jimmy@via.ecp.fr
C: jimmy
D: IDCT and YUV transformations
N: Hkan Hjort
E: d95hjort@dtek.chalmers.se
D: Solaris port of the DVD ioctls
D: libdvdcss enhancements
N: Samuel Hocevar
E: sam@zoy.org
C: sam
......@@ -165,7 +156,7 @@ D: patch for module options handling
N: Eugenio Jarosiewicz
E: ej0@cise.ufl.edu
C: ej
D: MacOS X interface, DVD ioctls, and various fixes
D: MacOS X interface, and various fixes
N: Brieuc Jeunhomme
E: bbp@via.ecp.fr
......@@ -204,10 +195,6 @@ N: Mathias Kretschmer
E: mathias@research.att.com
D: IP Multicast support
N: Markus Kuespert
E: ltlBeBoy@beosmail.com
D: BeOS port of the DVD ioctls
N: Michel Lespinasse
E: walken@zoy.org
C: walken
......@@ -275,10 +262,6 @@ E: richard@rshepherd.demon.co.uk
C: richards
D: BeOS video output (BBitmap and Overlay)
N: David Siebrger
E: drs-videolan@rucus.ru.ac.za
D: HP-UX port of the DVD ioctls
N: Espen Skoglund
E: esk@ira.uka.de
D: FreeBSD autoconf and Makefile patches
......@@ -293,7 +276,3 @@ N: Peter Surda
E: shurdeek@panorama.sth.ac.at
D: rc plugin for vlc control through /dev/stdin
N: German Tischler
E: tanis@gaspode.franken.de
D: FreeBSD DVD input patch
#=========================#
# ChangeLog for libdvdcss #
#=========================#
HEAD
* Support for REPORT_TITLE_KEY and RPC commands by Håkan Hjort
<d95hjort@dtek.chalmers.se>.
* HP-UX port courtesy of David Siebörger <drs-videolan@rucus.ru.ac.za>.
1.0.1
Fri, 7 Dec 2001 20:18:56 +0100
* Update for libdvdcss documentation.
* Reworked Keith Packard's raw device patch. The name of the raw device
is in the environment variable DVDCSS_RAW_DEVICE.
* Fixed a bug in libdvdcss: the key wasn't searched when it had to.
1.0.0
Mon, 12 Nov 2001 17:14:29 +0100
* Got rid of DVDCSS_SEEK_INI.
* 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.
* 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
just read is not a valid block of an MPEG2 Program stream, assume that the
title is unencrypted.
* Empty keys (for unscrambled sectors) are now cached as well.
* We try to decrypt the file even if DVD ioctls are not available.
0.0.3
Wed, 22 Aug 2001 15:18:01 +0200
* Added BSD/OS libdvd by Steven M. Schultz <sms@TO.GD-ES.COM> in
extras/BSDI_dvdioctl after he suggested us to do so. License is GPL.
* ./configure now checks for an installed libdvd under BSD/OS and
falls back to ours if not found.
* Fixed harmless typos in yesterday's Solaris libdvd patches.
* Bumped libdvdcss version number up to 0.0.3.
* Solaris DVD decryption support by Håkan Hjort <d95hjort@dtek.chalmers.se>.
* BSD/OS 4.3beta1 fixes by Steven M. Schultz <sms@TO.GD-ES.COM>.
* libdvdcss* packages are now a bit more policy-compliant.
* Fixed a Win32 bug in libdvdcss. This bug was appearing on title change.
0.0.2
Wed, 22 Aug 2001 15:18:01 +0200
* Fix in libdvdcss in the key caching code.
* Changed libdvdcss API to force binary incompatibility. Yeah, this is
evil, but if we don't do it now we'll have to do it when more people
are using it.
* Fixed minor libdvdcss stuff such as the soname and compilation flags.
* dvdcss_readv() optimisations for Win32.
* Fixed _win32_dvdcss_aread() to work around the WinASPI32 64kb transfer
size restriction.
* libdvdcss segfault fixes.
* Fixed 2 Win32 bugs in libdvdcss (in _win32_dvdcss_readv), one of them
should have prevented the Win9x dvd input from working.
* Moved the "if(Win2k)" out of the loop in _win32_dvdcss_readv.
* libdvdcss enhancements by Billy Biggs <vektor@dumbterm.net>. This breaks
vlc's DVD input (looks like decoders are expecting data too early and
DVD input can't cope with it due to decryption). Needs to be investigated.
* Removed unnecessary translations in the win32 code from block offsets to
byte offsets. This was overflowing some variables.
* Reduced the complexity of the Win9x ASPI functions because we only need
to handle DVD drive access.
* Win32 code now handles seeking in areas above 2.1 Go on DVDs.
* Additional MacOS X DVD ioctl work by Eugenio Jarosiewicz
<ej0@cise.ufl.edu>.
0.0.1
Tue, 19 Jun 2001 08:53:16 +0200
* First libdvdcss version (0.0.1).
* Fully working Windows DVD ioctl support by Jon Lech Johansen.
* Merged dvdcss_init and dvdcss_open into dvdcss_open, and dvdcss_close
and dvdcss_end into dvdcss_close. libdvdcss API now has 7 functions.
* Exported the CSS part of the dvd plugin into a library.
INSTALL file for libdvdcss, a DVD access library
Configuring libdvdcss
=====================
A typical way to configure libdvdcss is:
./configure --prefix=/usr
See `./configure --help' for more information.
It is also possible to cross-compile for the Win32 platform using mingw32:
CC=i586-mingw32msvc-gcc CFLAGS=-I/usr/i586-mingw32msvc \
RANLIB=i586-mingw32msvc-ranlib ./configure --host=i386-mingw32msvc \
--target=i386-mingw32msvc --build=i386-linux
Building libdvdcss
==================
Once configured, run `make' to build libdvdcss.
If you have player keys, you need to put them in the file csskeys.h, before
configuring libdvdcss to enable the "key" method (the one from libcss).
Installing libdvdcss
====================
You can install libdvdcss by typing:
make install
......@@ -210,8 +210,6 @@ endif
# Misc variables
#
VLC_QUICKVERSION := $(shell grep '^ *VLC_VERSION=' configure.in | head -1 | sed 's/"//g' | cut -f2 -d=)
LIBDVDCSS_QUICKVERSION := $(shell grep '^ *LIBDVDCSS_VERSION=' configure.in | head -1 | sed 's/"//g' | cut -f2 -d=)
# All symbols must be exported
export
......@@ -247,21 +245,15 @@ show:
#
# Cleaning rules
#
clean: libdvdcss-clean libdvdread-clean plugins-clean po-clean vlc-clean
clean: plugins-clean po-clean vlc-clean
rm -f src/*/*.o extras/*/*.o
rm -f lib/*.so* lib/*.a
rm -f plugins/*.so plugins/*.a
rm -rf extras/MacOSX/build
libdvdcss-clean:
-cd extras/libdvdcss && $(MAKE) clean
po-clean:
-cd po && $(MAKE) clean
libdvdread-clean:
-cd extras/libdvdread && $(MAKE) clean
plugins-clean:
for dir in $(PLUGINS_DIR) ; do \
( cd plugins/$${dir} \
......@@ -287,9 +279,9 @@ distclean: clean
#
# Install/uninstall rules
#
install: libdvdcss-install vlc-install plugins-install po-install
install: vlc-install plugins-install po-install
uninstall: libdvdcss-uninstall vlc-uninstall plugins-uninstall po-uninstall
uninstall: vlc-uninstall plugins-uninstall po-uninstall
vlc-install:
mkdir -p $(DESTDIR)$(bindir)
......@@ -320,18 +312,6 @@ endif
plugins-uninstall:
rm -f $(DESTDIR)$(libdir)/videolan/vlc/*.so
libdvdcss-install:
-cd extras/libdvdcss && $(MAKE) install
libdvdcss-uninstall:
-cd extras/libdvdcss && $(MAKE) uninstall
libdvdread-install:
-cd extras/libdvdread && $(MAKE) install
libdvdread-uninstall:
-cd extras/libdvdread && $(MAKE) uninstall
po-install:
-cd po && $(MAKE) install
......@@ -374,7 +354,7 @@ snapshot-common:
cp FAQ AUTHORS COPYING TODO todo.pl ChangeLog* README* INSTALL* \
Makefile Makefile.opts.in Makefile.dep Makefile.modules \
configure configure.in install-sh install-win32 vlc.spec \
config.sub config.guess acconfig.h aclocal.m4 mkinstalldirs \
config.sub config.guess aclocal.m4 mkinstalldirs \
tmp/vlc/
# Copy Debian control files
for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \
......@@ -400,18 +380,12 @@ snapshot: snapshot-common
rm -Rf tmp
snapshot-nocss: snapshot-common
# Remove libdvdcss
rm -Rf tmp/vlc/extras/libdvdcss
rm -f tmp/vlc/*.libdvdcss
# Fix debian information
rm -f tmp/vlc/debian/libdvdcss*
rm -f tmp/vlc/debian/control
sed -e 's#^ DVDs# unencrypted DVDs#' < debian/control \
| awk '{if(gsub("Package: libdvdcss",$$0))a=1;if(a==0)print $$0;if(a==1&&$$0=="")a=0}' \
> tmp/vlc/debian/control
rm -f tmp/vlc/debian/rules
sed -e 's#^\(export LIBDVDCSS_FLAGS=\).*#\1"--without-dvdcss"#' < debian/rules \
| awk '{if($$0=="# libdvdcss start")a=1;if(a==0)print $$0;if($$0=="# libdvdcss stop")a=0}' \
sed -e 's#^\(export DVDCSS_FLAGS=\).*#\1"--enable-dvd --without-dvdcss"#' < debian/rules \
> tmp/vlc/debian/rules
chmod +x tmp/vlc/debian/rules
# Build css-disabled archives
......@@ -437,8 +411,7 @@ package-win32:
# Copy relevant files
cp vlc.exe $(PLUGINS:%=plugins/%.so) tmp/
cp INSTALL.win32 tmp/INSTALL.txt ; unix2dos tmp/INSTALL.txt
for file in AUTHORS COPYING ChangeLog ChangeLog.libdvdcss \
README README.libdvdcss FAQ TODO ; \
for file in AUTHORS COPYING ChangeLog README FAQ TODO ; \
do cp $$file tmp/$${file}.txt ; \
unix2dos tmp/$${file}.txt ; done
for file in iconv.dll libgmodule-1.3-12.dll libgtk-0.dll libgdk-0.dll \
......@@ -467,8 +440,7 @@ package-beos:
mkdir -p tmp/vlc/share
# Copy relevant files
cp vlc tmp/vlc/
cp AUTHORS COPYING ChangeLog ChangeLog.libdvdcss \
README README.libdvdcss FAQ TODO tmp/vlc/
cp AUTHORS COPYING ChangeLog README FAQ TODO tmp/vlc/
for file in default8x16.psf default8x9.psf ; \
do cp share/$$file tmp/vlc/share/ ; done
# Create package
......@@ -489,8 +461,7 @@ package-macosx:
# Copy relevant files
cp -R vlc.app tmp/
cp AUTHORS COPYING ChangeLog ChangeLog.libdvdcss \
README README.libdvdcss FAQ TODO tmp/
cp AUTHORS COPYING ChangeLog README FAQ TODO tmp/
# Create disk image
./macosx-dmg 0 "vlc-${VLC_QUICKVERSION}" tmp/*
......@@ -498,39 +469,6 @@ package-macosx:
# Clean up
rm -Rf tmp
libdvdcss-snapshot: snapshot-common
# Remove vlc sources and icons, doc, debian directory...
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/debian
rm -Rf tmp/vlc/ipkg
# Remove useless headers
rm -f tmp/vlc/include/*
for file in defs.h.in config.h common.h int_types.h ; \
do cp include/$$file tmp/vlc/include/ ; done
# Remove misc files (??? - maybe not really needed)
rm -f tmp/vlc/vlc.spec tmp/vlc/INSTALL-win32.txt
mv tmp/vlc/INSTALL.libdvdcss tmp/vlc/INSTALL
mv tmp/vlc/README.libdvdcss tmp/vlc/README
mv tmp/vlc/ChangeLog.libdvdcss tmp/vlc/ChangeLog
# Fix Makefile
rm -f tmp/vlc/Makefile
sed -e 's#^install:#install-unused:#' \
-e 's#^uninstall:#uninstall-unused:#' \
-e 's#^clean:#clean-unused:#' \
-e 's#^all:.*#all: libdvdcss#' \
-e 's#^libdvdcss-install:#install:#' \
-e 's#^libdvdcss-uninstall:#uninstall:#' \
-e 's#^libdvdcss-clean:#clean:#' \
< Makefile > tmp/vlc/Makefile
# Build archives
F=libdvdcss-${LIBDVDCSS_QUICKVERSION}; \
mv tmp/vlc tmp/$$F; (cd tmp ; tar cf $$F.tar $$F); \
bzip2 -f -9 < tmp/$$F.tar > $$F.tar.bz2; \
gzip -f -9 tmp/$$F.tar ; mv tmp/$$F.tar.gz .
# Clean up
rm -Rf tmp
deb:
dpkg-buildpackage -rfakeroot -us -uc
......@@ -630,18 +568,6 @@ builtins: Makefile.modules Makefile.opts Makefile.dep Makefile $(BUILTIN_OBJ)
$(BUILTIN_OBJ): FORCE
@cd $(shell echo " "$(PLUGINS_TARGETS)" " | sed -e 's@.* \([^/]*/\)'$(@:plugins/%.a=%)' .*@plugins/\1@' -e 's@^ .*@@') && $(MAKE) -f ../../Makefile.modules $(@:plugins/%=../%)
#
# libdvdcss target
#
libdvdcss: Makefile.opts
@cd extras/libdvdcss && $(MAKE)
#
# libdvdread target
#
libdvdread: Makefile.opts
@cd extras/libdvdread && $(MAKE)
#
# gettext target
#
......
......@@ -92,8 +92,6 @@ LIB_IMDCTSSE = @LIB_IMDCTSSE@
LIB_IPV4 = @LIB_IPV4@
LIB_IPV6 = @LIB_IPV6@
LIB_KDE = @LIB_KDE@
LIB_LIBDVDCSS = @LIB_LIBDVDCSS@
LIB_LIBDVDREAD = @LIB_LIBDVDREAD@
LIB_LIRC = @LIB_LIRC@
LIB_MACOSX = @LIB_MACOSX@
LIB_MAD = @LIB_MAD@
......@@ -125,7 +123,6 @@ CFLAGS_GNOME = @CFLAGS_GNOME@
CFLAGS_GTK = @CFLAGS_GTK@
CFLAGS_KDE = @CFLAGS_KDE@
CFLAGS_IDCTALTIVEC = @CFLAGS_IDCTALTIVEC@
CFLAGS_LIBDVDCSS = @CFLAGS_LIBDVDCSS@
CFLAGS_MACOSX = @CFLAGS_MACOSX@
CFLAGS_MAD = @CFLAGS_MAD@
CFLAGS_MOTIONALTIVEC = @CFLAGS_MOTIONALTIVEC@
......@@ -135,17 +132,10 @@ CFLAGS_WIN32 = @CFLAGS_WIN32@
CFLAGS_X11 = @CFLAGS_X11@
CFLAGS_XVIDEO = @CFLAGS_XVIDEO@
#
# Additional objects
#
SRC_DVD_EXTRA = @SRC_DVD_EXTRA@
SRC_DVDCSS_EXTRA = @SRC_DVDCSS_EXTRA@
#
# Other special cases
#
NEED_GETOPT = @NEED_GETOPT@
NEED_LIBDVDCSS = @NEED_LIBDVDCSS@
###############################################################################
# Configuration pre-processing
......@@ -176,10 +166,6 @@ else
PROGRAM_BUILD = `date` $(USER)@`hostname`
endif
# PROGRAM_VERSION is the current vlc version
PROGRAM_VERSION=@VLC_VERSION@
LIBDVDCSS_VERSION=@LIBDVDCSS_VERSION@
# DEFINE will contain some of the constants definitions decided in Makefile,
# including SYS_xx. It will be passed to C compiler.
DEFINE_SYS := -DSYS_$(shell echo $(SYS) | sed -e 's/-.*//' | tr '[a-z].' '[A-Z]_')
......@@ -304,11 +290,6 @@ ifneq (,$(findstring mingw32,$(SYS)))
LDFLAGS += -mwindows -Xlinker --force-exe-suffix
endif
#
# C compiler and linker flags: setting soname
#
SOFLAGS = @SOFLAGS@
#
# C compiler flags: plugin compilation
#
......
README for libdvdcss, a portable abstraction library for DVD decryption
Introduction
============
libdvdcss is part of the VideoLAN project, a full MPEG2 client/server
solution. The VideoLAN Client can also be used as a standalone program
to play MPEG2 streams from a hard disk or a DVD.
Building and Installing libdvdcss
=================================
See the INSTALL or INSTALL.libdvdcss file for this.
Running lidvdcss
================
The behaviourof the library can be affected by changing two environment
variables:
DVDCSS_METHOD={title|disc|key}: method for key decryption
title: decrypted title key is guessed from the encrypted sectors of
the stream. Thus it should work with a file as well as the
DVD device. But it sometimes takes much time to decrypt a title
key and may even fail. With this method, the key is only checked
at the beginning of each title, so it won't work if the key
changes in the middle of a title.
This is the default method,
disc: the disc key is first cracked ; then all title keys can be
decrypted instantly, which allows us to check them often,
key: the same as "disc" if you don't have a file with player keys at
compilation time. If you do, the decryption of the disc key
will be faster with this method. It is the one that was used by
libcss.
DVDCSS_VERBOSE={0|1|2}: libdvdcss verbosity
0: no error messages, no debug messages,
1: only error messages (this is the default)
2: error and debug messages
Troubleshooting
===============
A mailing-list has been set up for support and discussion about vlc and
libdvdcss. Its address is :
<vlc@videolan.org>
To subscribe, send a mail to <listar@videolan.org> with the following
words in the mail body :
subscribe vlc
To unsubscribe, do the same with the words :
unsubscribe vlc
When reporting bugs, try to be as precise as possible (which OS, which
distribution, what plugins you were trying, and so on).
Resources
=========
The VideoLAN web site at http://www.videolan.org/ is a good start for
information about MPEG and DVD playing. Have a look at the documentation
section, as well as the bookmarks.
#undef PACKAGE
#undef VERSION
#undef DVD_DEVICE
#undef VCD_DEVICE
#undef COPYRIGHT_MESSAGE
#undef MODULE_SUFFIX
#undef MODULE_SYMBOL
#undef VERSION_MESSAGE
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
tmp
vlc
vlc-*
libdvdcss*
delete
files
*debhelper
......
......@@ -30,27 +30,6 @@ Description: a free MPEG and DVD player
This is vlc, the VideoLAN Client. It plays MPEG and MPEG2 files,
DVDs, or MPEG streams from a network source.
Package: libdvdcss1
Architecture: any
Depends: ${shlibs:Depends}
Conflicts: libdvdcss0.0.1, libdvdcss0.0.2, libdvdcss0.0.3
Description: a portable abstraction library for DVD decryption
libdvdcss is a portable abstraction library for DVD decryption, it
provides a simple API to access a DVD device as a block device.
.
This package contains the libdvdcss1 runtime library.
Package: libdvdcss1-dev
Architecture: any
Depends: libdvdcss1 (= ${Source-Version}), libc6-dev
Conflicts: libdvdcss0.0.1-dev, libdvdcss0.0.2-dev, libdvdcss0.0.3-dev
Description: development files for libdvdcss1
libdvdcss is a portable abstraction library for DVD decryption, it
provides a simple API to access a DVD device as a block device.
.
This package contains the header files and static library needed to
compile applications that use libdvdcss1.
Package: vlc-gnome
Architecture: any
Depends: vlc (= ${Source-Version}), ${shlibs:Depends}
......
usr/include/videolan
usr/lib
usr/share/doc
This package was debianized by Samuel Hocevar <sam@zoy.org> on
Mon, 13 Mar 2000 02:21:45 +0100.
It was taken from the CVS tree. See http://www.videolan.org/cvs.html
Upstream Authors: The VideoLAN Team <videolan@videolan.org>
VideoLAN is Copyright 1996, 1997, 1998, 1999, 2000, 2001 The VideoLAN Team
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
usr/lib
usr/share/doc/libdvdcss1
AUTHORS
README.libdvdcss
TODO
......@@ -10,15 +10,11 @@ export DH_COMPAT=3
# Compilation options
export CONFIG_FLAGS="--enable-release --prefix=/usr --enable-gnome --enable-gtk --enable-fb --enable-ggi --enable-sdl --enable-esd --enable-qt --enable-mad --enable-arts --enable-alsa --enable-lirc --enable-a52 --enable-kde --enable-aa"
export LIBDVDCSS_FLAGS="--with-dvdcss=local-shared"
export DVDCSS_FLAGS="--enable-dvd"
export VIDDIR="usr/share/videolan"
export PIXDIR="usr/share/pixmaps"
export GNOMEDIR="usr/share/gnome/apps/Multimedia"
# Library options
version=$(shell grep '^ *LIBDVDCSS_VERSION=' configure.in | head -1 | sed 's/"//g' | cut -f2 -d=)
major=$(shell echo "$(version)" | cut -f1 -d.)
build: build-stamp
build-stamp:
dh_testdir
......@@ -31,7 +27,7 @@ build-stamp:
esac ;\
./configure $$ARCH_FLAGS --mandir=$${prefix}/share/man \
--infodir=$${prefix}/share/info \
$(shell echo $(CONFIG_FLAGS)) $(shell echo $(LIBDVDCSS_FLAGS))
$(shell echo $(CONFIG_FLAGS)) $(shell echo $(DVDCSS_FLAGS))
$(MAKE)
......@@ -91,16 +87,6 @@ install: build
ln -s vlc.1.gz debian/vlc-qt/usr/share/man/man1/qvlc.1.gz
ln -s vlc.1.gz debian/vlc-kde/usr/share/man/man1/kvlc.1.gz
# libdvdcss start
mv debian/vlc/usr/include/videolan/dvdcss.h \
debian/libdvdcss$(major)-dev/usr/include/videolan
rm -Rf debian/vlc/usr/include
mv debian/vlc/usr/lib/*.a debian/libdvdcss$(major)-dev/usr/lib
mv debian/vlc/usr/lib/*.so debian/libdvdcss$(major)-dev/usr/lib
mv debian/vlc/usr/lib/*.so.* debian/libdvdcss$(major)/usr/lib
ln -s libdvdcss$(major) debian/libdvdcss$(major)-dev/usr/share/doc/libdvdcss$(major)-dev
# libdvdcss stop
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
......@@ -122,9 +108,6 @@ binary-arch: build install
# dh_installinfo
# dh_undocumented
dh_installchangelogs -Nvlc-gnome -Nvlc-gtk -Nvlc-ggi -Nvlc-glide -Nvlc-esd -Nvlc-alsa -Nvlc-sdl -Nvlc-qt -Nvlc-arts -Nvlc-mad -Nvlc-lirc -Nvlc-a52 -Nvlc-kde -Nvlc-aa ChangeLog
# libdvdcss start
dh_installchangelogs -Nvlc-gnome -Nvlc-gtk -Nvlc-ggi -Nvlc-glide -Nvlc-esd -Nvlc-alsa -Nvlc-sdl -Nvlc-qt -Nvlc-arts -Nvlc-mad -Nvlc-lirc -Nvlc-a52 -Nvlc-kde -Nvlc-aa ChangeLog.libdvdcss
# libdvdcss stop
dh_link
dh_strip
dh_compress
......
......@@ -12,14 +12,12 @@
- updater le numéro de version partout où c'est nécessaire
· configure.in (relancer autoconf)
· vlc.spec
· extras/libdvdcss/libdvdcss.spec (si nécessaire)
· ipkg/control
· debian/changelog
- mettre à jour les ChangeLog et la TODO list pour ceux qui auraient
étourdiment oublié de l'updater à chaque commit
- updater le numéro de version et le timestamp dans :
· ChangeLog
· ChangeLog.libdvdcss (si nécessaire)
- updater debian/changelog (laissez faire sam si vous ne savez pas
comment faire)
......@@ -30,9 +28,6 @@
- créer le tar.gz et le tar.bz2 du vlc avec `make snapshot'.
- copier le tar.gz et le tar.bz2 sur brahma, dans le répertoire
/opt/ftp/pub/videolan/vlc/<n° de version>/
- créer le tar.gz et le tar.bz2 de libdvdcss avec `make libdvdcss-snapshot'.
- copier le tar.gz et le tar.bz2 sur brahma, dans le répertoire
/opt/ftp/pub/videolan/libdvdcss/<n° de version>/
- si les répertoires créés ne sont pas en g+w, corriger cela
* Packages Debian pour videolan.org
......@@ -44,7 +39,7 @@
* Packages Debian officiels pour debian.org
- normalement il n'y a que sam qui touche à ça.
- créer un tar.gz sans libdvdcss avec `make snapshot-nocss'
- créer un tar.gz sans support dvdcss avec `make snapshot-nocss'
- `dpkg-buildpackage -rfakeroot'
- `debupload'
......@@ -72,7 +67,6 @@
- le web se trouve dans /opt/www/videolan/htdocs/
- éditer vlc/download.html pour mettre à jour les tarballs
- éditer libdvdcss/download.html si nécessaire
- éditer news.msg pour mettre une petite bafouille sur la release, en
s'inspirant des releases précédentes et du changelog quand on n'a pas
d'idées
......@@ -92,7 +86,6 @@
- cliquer sur la branche de la release, par exemple Ourumov
- choisir "add release" dans le menu déroulant
- remplir tout le bazar, et submit
- refaire pareil avec http://www.freshmeat.net/projects/libdvdcss/
- l'update peut mettre plusieurs heures
* Mail d'annonce
......
This diff is collapsed.
all: libdvd.a libdvd.so blkreset
blkreset: libdvd.a blkreset.c
cc -O2 -g -o blkreset blkreset.c libdvd.a
dvdioctl.o: dvdioctl.c dvd.h
cc -O2 -g -c -I. dvdioctl.c
dvdioctl.po: dvdioctl.c dvd.h
cc -O2 -fPIC -DPIC -g -c -o dvdioctl.po -I. dvdioctl.c
libdvd.a: dvdioctl.o
ar rcv libdvd.a dvdioctl.o
libdvd.so: dvdioctl.po
cc -shared -o libdvd.so dvdioctl.po
install: libdvd.a libdvd.so blkreset
install -c -m 644 libdvd.a /usr/local/lib/libdvd.a
install -c -m 755 libdvd.so /usr/local/lib/libdvd.so
ranlib /usr/local/lib/libdvd.a
install -c -m 644 dvd.h /usr/local/include/dvd.h
install -c -m 755 blkreset /usr/local/bin/blkreset
clean:
rm -f *.a *.o *.so *.po blkreset
/*
* This is a (very) simple program to be used when the blocksize on a CDrom
* drive gets set to something other than 2048 (such as 2336 when ripping
* VCDs).
*
* Uses the 'cdrom_blocksize' routine from libdvd
*/
#include <stdio.h>
#include <err.h>
#include <fcntl.h>
main(int argc, char **argv)
{
int fd;
char *device = "/dev/rsr1c";
if (argc != 2)
errx(1, "raw device name of CDROM drive needed as arg");
device = argv[1];
fd = open(device, O_RDONLY, 0);
if (fd < 0)
err(1, "open(%s)", device);
if (cdrom_blocksize(fd, 2048))
errx(1, "cdrom_blocksize for %s failed\n", device);
exit(0);
}
#ifndef _DVD_H_
#define _DVD_H_
#include <sys/cdefs.h>
#include <machine/endian.h>
#include <sys/ioctl.h>
__BEGIN_DECLS
int dvd_cdrom_ioctl(int, unsigned long, void *);
int cdrom_blocksize(int, int);
void dvd_cdrom_debug(int);
__END_DECLS
#define ioctl(a,b,c) dvd_cdrom_ioctl((a),(b),(c))
typedef unsigned char __u8;
typedef unsigned short __u16;
typedef unsigned int __u32;
#define DVD_READ_STRUCT 0x5390 /* Read structure */
#define DVD_WRITE_STRUCT 0x5391 /* Write structure */
#define DVD_AUTH 0x5392 /* Authentication */
#define DVD_STRUCT_PHYSICAL 0x00
#define DVD_STRUCT_COPYRIGHT 0x01
#define DVD_STRUCT_DISCKEY 0x02
#define DVD_STRUCT_BCA 0x03
#define DVD_STRUCT_MANUFACT 0x04
struct dvd_layer {
__u8 book_version : 4;
__u8 book_type : 4;
__u8 min_rate : 4;
__u8 disc_size : 4;
__u8 layer_type : 4;
__u8 track_path : 1;
__u8 nlayers : 2;
__u8 track_density : 4;
__u8 linear_density : 4;
__u8 bca : 1;
__u32 start_sector;
__u32 end_sector;
__u32 end_sector_l0;
};
struct dvd_physical {
__u8 type;
__u8 layer_num;
struct dvd_layer layer[4];
};
struct dvd_copyright {
__u8 type;
__u8 layer_num;
__u8 cpst;
__u8 rmi;
};
struct dvd_disckey {
__u8 type;
unsigned agid : 2;
__u8 value[2048];
};
struct dvd_bca {
__u8 type;
int len;
__u8 value[188];
};
struct dvd_manufact {
__u8 type;
__u8 layer_num;
int len;
__u8 value[2048];
};
typedef union {
__u8 type;
struct dvd_physical physical;
struct dvd_copyright copyright;
struct dvd_disckey disckey;
struct dvd_bca bca;
struct dvd_manufact manufact;
} dvd_struct;
/*
* DVD authentication ioctl
*/
/* Authentication states */
#define DVD_LU_SEND_AGID 0
#define DVD_HOST_SEND_CHALLENGE 1
#define DVD_LU_SEND_KEY1 2
#define DVD_LU_SEND_CHALLENGE 3
#define DVD_HOST_SEND_KEY2 4
/* Termination states */
#define DVD_AUTH_ESTABLISHED 5
#define DVD_AUTH_FAILURE 6
/* Other functions */
#define DVD_LU_SEND_TITLE_KEY 7
#define DVD_LU_SEND_ASF 8
#define DVD_INVALIDATE_AGID 9
#define DVD_LU_SEND_RPC_STATE 10
#define DVD_HOST_SEND_RPC_STATE 11
/* State data */
typedef __u8 dvd_key[5]; /* 40-bit value, MSB is first elem. */
typedef __u8 dvd_challenge[10]; /* 80-bit value, MSB is first elem. */
struct dvd_lu_send_agid {
__u8 type;
unsigned agid : 2;
};
struct dvd_host_send_challenge {
__u8 type;
unsigned agid : 2;
dvd_challenge chal;
};
struct dvd_send_key {
__u8 type;
unsigned agid : 2;
dvd_key key;
};
struct dvd_lu_send_challenge {
__u8 type;
unsigned agid : 2;
dvd_challenge chal;
};
#define DVD_CPM_NO_COPYRIGHT 0
#define DVD_CPM_COPYRIGHTED 1
#define DVD_CP_SEC_NONE 0
#define DVD_CP_SEC_EXIST 1
#define DVD_CGMS_UNRESTRICTED 0
#define DVD_CGMS_SINGLE 2
#define DVD_CGMS_RESTRICTED 3
struct dvd_lu_send_title_key {
__u8 type;
unsigned agid : 2;
dvd_key title_key;
int lba;
unsigned cpm : 1;
unsigned cp_sec : 1;
unsigned cgms : 2;
};
struct dvd_lu_send_asf {
__u8 type;
unsigned agid : 2;
unsigned asf : 1;
};
struct dvd_host_send_rpcstate {
__u8 type;
__u8 pdrc;
};
struct dvd_lu_send_rpcstate {
__u8 type : 2;
__u8 vra : 3;
__u8 ucca : 3;
__u8 region_mask;
__u8 rpc_scheme;
};
typedef union {
__u8 type;
struct dvd_lu_send_agid lsa;
struct dvd_host_send_challenge hsc;
struct dvd_send_key lsk;
struct dvd_lu_send_challenge lsc;
struct dvd_send_key hsk;
struct dvd_lu_send_title_key lstk;
struct dvd_lu_send_asf lsasf;
struct dvd_host_send_rpcstate hrpcs;
struct dvd_lu_send_rpcstate lrpcs;
} dvd_authinfo;
typedef struct {
__u16 report_key_length;
__u8 reserved1;
__u8 reserved2;
#if BYTE_ORDER == BIG_ENDIAN
__u8 type_code : 2;
__u8 vra : 3;
__u8 ucca : 3;
#elif BYTE_ORDER == LITTLE_ENDIAN
__u8 ucca : 3;
__u8 vra : 3;
__u8 type_code : 2;
#endif
__u8 region_mask;
__u8 rpc_scheme;
__u8 reserved3;
} rpc_state_t;
/*
* Stuff for the CDROM ioctls
*/
#define CDROMREADTOCHDR 0x5305 /* Read TOC header (cdrom_tochdr) */
#define CDROMREADTOCENTRY 0x5306 /* Read TOC entry (cdrom_tocentry) */
#define CDROMEJECT 0x5309 /* Ejects the cdrom media */
#define CDROMCLOSETRAY 0x5319 /* Reverse of CDROMEJECT */
#define CDROM_DRIVE_STATUS 0x5326 /* Get tray position, etc. */
#define CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes) */
#define CDROMREADMODE1 0x530d /* Read CDROM mode 1 data (2048 Bytes) */
#define CDROMREADRAW 0x5314 /* read data in raw mode (2352 bytes) */
#define CD_MINS 74 /* max. minutes per CD, not really a limit */
#define CD_SECS 60 /* seconds per minute */
#define CD_FRAMES 75 /* frames per second */
#define CD_MSF_OFFSET 150 /* MSF numbering offset of first frame */
#define CD_HEAD_SIZE 4 /* header (address) bytes per raw data frame */
#define CD_SYNC_SIZE 12 /* 12 sync bytes per raw data frame */
#define CD_FRAMESIZE 2048 /* bytes per frame, "cooked" mode */
#define CD_FRAMESIZE_RAW 2352 /* bytes per frame, "raw" mode */
#define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) /*2336*/
#define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) /*2340*/
/* CD-ROM address types (cdrom_tocentry.cdte_format) */
#define CDROM_LBA 0x01 /* logical block: first frame is #0 */
#define CDROM_MSF 0x02 /* minute-second-frame: binary. not bcd here!*/
/* The leadout track is always 0xAA, regardless of # of tracks on disc */
#define CDROM_LEADOUT 0xAA
/* drive status returned by CDROM_DRIVE_STATUS ioctl */
#define CDS_NO_INFO 0 /* if not implemented */
#define CDS_NO_DISC 1
#define CDS_TRAY_OPEN 2
#define CDS_DRIVE_NOT_READY 3
#define CDS_DISC_OK 4
/* For compile compatibility only - we don't support changers */
#define CDSL_NONE ((int) (~0U>>1)-1)
#define CDSL_CURRENT ((int) (~0U>>1))
struct cdrom_msf
{
__u8 cdmsf_min0; /* start minute */
__u8 cdmsf_sec0; /* start second */
__u8 cdmsf_frame0; /* start frame */
__u8 cdmsf_min1; /* end minute */
__u8 cdmsf_sec1; /* end second */
__u8 cdmsf_frame1; /* end frame */
};
struct cdrom_tochdr
{
__u8 cdth_trk0; /* start track */
__u8 cdth_trk1; /* end track */
};
struct cdrom_msf0
{
__u8 minute;
__u8 second;
__u8 frame;
};
union cdrom_addr
{
struct cdrom_msf0 msf;
int lba;
};
struct cdrom_tocentry
{
__u8 cdte_track;
__u8 cdte_adr :4;
__u8 cdte_ctrl :4;
__u8 cdte_format;
union cdrom_addr cdte_addr;
__u8 cdte_datamode;
};
struct modesel_head
{
__u8 reserved1;
__u8 medium;
__u8 reserved2;
__u8 block_desc_length;
__u8 density;
__u8 number_of_blocks_hi;
__u8 number_of_blocks_med;
__u8 number_of_blocks_lo;
__u8 reserved3;
__u8 block_length_hi;
__u8 block_length_med;
__u8 block_length_lo;
};
#endif /* _DVD_H_ */
This diff is collapsed.
###############################################################################
# vlc (VideoLAN Client) dvd module Makefile
# (c)2001 VideoLAN
###############################################################################
BASE_A := libdvdcss.a
BASE_SO := libdvdcss.so
MAJOR_SO := libdvdcss.so.$(shell echo $(LIBDVDCSS_VERSION) | cut -f1 -d.)
FULL_SO := libdvdcss.so.$(LIBDVDCSS_VERSION)
ifneq (,$(SOFLAGS))
ALL_SOFLAGS := $(SOFLAGS)$(MAJOR_SO)
SOFLAGS :=
endif
#
# C headers directories
#
CFLAGS := -I../../include -I../../extras $(CFLAGS)
#
# Objects
#
OBJ_C = libdvdcss.o css.o ioctl.o
ALL_OBJ = $(OBJ_C) $(OBJ_LIBDVDCSS)
#
# Standard dependencies
#
C_DEP := $(ALL_OBJ:%.o=.dep/%.d)
#
# Virtual targets
#
all: ../../lib/$(FULL_SO) ../../lib/$(BASE_A)
clean:
rm -f $(ALL_OBJ)
rm -f *.o
rm -rf .dep
install:
mkdir -p $(DESTDIR)$(includedir)/videolan
$(INSTALL) -m 644 videolan/dvdcss.h $(DESTDIR)$(includedir)/videolan
mkdir -p $(DESTDIR)$(libdir)
-$(INSTALL) -m 644 ../../lib/$(BASE_A) $(DESTDIR)$(libdir)
-$(INSTALL) -m 644 ../../lib/$(FULL_SO) $(DESTDIR)$(libdir)
rm -f $(DESTDIR)$(libdir)/$(BASE_SO) && ln -s $(FULL_SO) $(DESTDIR)$(libdir)/$(BASE_SO)
rm -f $(DESTDIR)$(libdir)/$(MAJOR_SO) && ln -s $(FULL_SO) $(DESTDIR)$(libdir)/$(MAJOR_SO)
uninstall:
rm -f $(DESTDIR)$(includedir)/videolan/dvdcss.h
rm -f $(DESTDIR)$(libdir)/$(BASE_A)
rm -f $(DESTDIR)$(libdir)/$(BASE_SO)
rm -f $(DESTDIR)$(libdir)/$(MAJOR_SO)
rm -f $(DESTDIR)$(libdir)/$(FULL_SO)
FORCE:
$(ALL_OBJ): %.o: ../../Makefile.dep Makefile
$(C_DEP): %.d: FORCE
@$(MAKE) -s --no-print-directory -f ../../Makefile.dep $@
$(OBJ_C): %.o: .dep/%.d
$(OBJ_C): %.o: %.c
$(CC) $(CFLAGS) $(CFLAGS_LIBDVDCSS) $(PCFLAGS) -c -o $@ $<
bsdi_dvdioctl.o: ../BSDI_dvdioctl/dvdioctl.c
$(CC) $(CFLAGS) $(CFLAGS_LIBDVDCSS) $(PCFLAGS) -c -o $@ $<
../../lib/$(FULL_SO): $(OBJ_C) $(OBJ_LIBDVDCSS)
$(CC) $(PCFLAGS) $(ALL_SOFLAGS) -o $@ $^ $(PLDFLAGS) $(LIB_LIBDVDCSS)
rm -f ../../lib/$(BASE_SO) && ln -s $(FULL_SO) ../../lib/$(BASE_SO)
rm -f ../../lib/$(MAJOR_SO) && ln -s $(FULL_SO) ../../lib/$(MAJOR_SO)
../../lib/$(BASE_A): $(OBJ_C) $(OBJ_LIBDVDCSS)
ar r $@ $^
$(RANLIB) $@
This diff is collapsed.
/*****************************************************************************
* css.h: Structures for DVD authentification and unscrambling
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: css.h,v 1.8 2002/01/23 03:15:31 stef Exp $
*
* Author: Stphane Borel <stef@via.ecp.fr>
*
* based on:
* - css-auth by Derek Fawcus <derek@spider.com>
* - DVD CSS ioctls example program by Andrew T. Veliath <andrewtv@usa.net>
* - DeCSSPlus by Ethan Hawke
* - The Divide and conquer attack by Frank A. Stevenson <frank@funcom.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#define KEY_SIZE 5
typedef u8 dvd_key_t[KEY_SIZE];
typedef struct dvd_title_s
{
int i_startlb;
dvd_key_t p_key;
struct dvd_title_s *p_next;
} dvd_title_t;
typedef struct css_s
{
int i_agid; /* Current Authenication Grant ID. */
dvd_key_t p_bus_key; /* Current session key. */
dvd_key_t p_disc_key; /* This DVD disc's key. */
dvd_key_t p_unenc_key; /* Current title key before decryption. */
dvd_key_t p_title_key; /* Current title key. */
} css_t;
/*****************************************************************************
* Prototypes in css.c
*****************************************************************************/
struct css_s;
int CSSTest ( dvdcss_handle );
int CSSGetDiscKey ( dvdcss_handle );
int CSSGetTitleKey ( dvdcss_handle, int );
int CSSDescrambleSector ( u8 * , u8 * );
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*****************************************************************************
* private.h: private DVD reading library data
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: libdvdcss.h,v 1.11 2001/11/26 15:56:36 massiot Exp $
*
* Authors: Stphane Borel <stef@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Needed headers
*****************************************************************************/
#include "css.h"
/*****************************************************************************
* The libdvdcss structure
*****************************************************************************/
struct dvdcss_s
{
/* File descriptor */
int i_fd;
int i_seekpos;
/* Decryption stuff */
int i_method;
css_t css;
boolean_t b_ioctls;
boolean_t b_encrypted;
dvd_title_t *p_titles;
/* Error management */
char *psz_error;
boolean_t b_errors;
boolean_t b_debug;
#if defined( WIN32 )
char *p_readv_buffer;
int i_readv_buf_size;
#else
int i_raw_fd;
int i_read_fd;
#endif
};
/*****************************************************************************
* libdvdcss method: used like init flags
*****************************************************************************/
#define DVDCSS_METHOD_KEY 0
#define DVDCSS_METHOD_DISC 1
#define DVDCSS_METHOD_TITLE 2
/*****************************************************************************
* Functions used across the library
*****************************************************************************/
int _dvdcss_seek ( dvdcss_handle, int i_blocks );
int _dvdcss_read ( dvdcss_handle, void *p_buffer, int i_blocks );
/*****************************************************************************
* Error management
*****************************************************************************/
#if defined( _WIN32 ) && defined( _MSC_VER )
# define DVDCSS_ERROR( x ) fprintf( stderr, "libdvdcss error: %s\n", x );
# define DVDCSS_DEBUG( x ) fprintf( stderr, "libdvdcss debug: %s\n", x );
#else
# define DVDCSS_ERROR( x... ) fprintf( stderr, "libdvdcss error: %s\n", ##x );
# define DVDCSS_DEBUG( x... ) fprintf( stderr, "libdvdcss debug: %s\n", ##x );
#endif
static __inline__ void _dvdcss_error( dvdcss_handle dvdcss, char *psz_string )
{
if( dvdcss->b_errors )
{
DVDCSS_ERROR( psz_string );
}
dvdcss->psz_error = psz_string;
}
static __inline__ void _dvdcss_debug( dvdcss_handle dvdcss, char *psz_string )
{
if( dvdcss->b_debug )
{
DVDCSS_DEBUG( psz_string );
}
}
# This is borrowed and adapted from Mandrake's Cooker
%define name libdvdcss
%define version 1.0.1-dev
%define release 1
%define major 1
%define lib_name %{name}%{major}
Summary: A library for accessing DVDs like block device, deciphering CSS encryption if needed.
Name: %{name}
Version: %{version}
Release: %{release}
Source0: http://www.videolan.org/pub/videolan/libdvcss/%{version}/%{name}-%{version}.tar.bz2
License: GPL
Group: System/Libraries
URL: http://videolan.org/
BuildRoot: %_tmppath/%name-%version-%release-root
%description
libdvdcss is a simple library designed for accessing DVDs like a block device
without having to bother about the decryption. The important features are:
* Portability. Currently supported platforms are GNU/Linux, FreeBSD, BeOS
and Windows. The MacOS X version is being worked on as well.
* Simplicity. There are currently 7 functions in the API, and we intend to
keep this number low.
* Freedom. libdvdcss is released under the General Public License, ensuring
it will stay free, and used only for free software products.
* Just better. Unlike most similar projects, libdvdcss doesn't require the
region of your drive to be set.
%package -n %{lib_name}
Summary: A library for accessing DVDs like block device, deciphering CSS encryption if needed.
Group: System/Libraries
Provides: %name
%description -n %{lib_name}
libdvdcss is a simple library designed for accessing DVDs like a block device
without having to bother about the decryption. The important features are:
* Portability. Currently supported platforms are GNU/Linux, FreeBSD, BeOS
and Windows. The MacOS X version is being worked on as well.
* Simplicity. There are currently 7 functions in the API, and we intend to
keep this number low.
* Freedom. libdvdcss is released under the General Public License, ensuring
it will stay free, and used only for free software products.
* Just better. Unlike most similar projects, libdvdcss doesn't require the
region of your drive to be set.
%package -n %{lib_name}-devel
Summary: Development tools for programs which will use the libdvdcss library.
Group: Development/C
Provides: %name-devel
Requires: %{lib_name} = %{version}
%description -n %{lib_name}-devel
The %{name}-devel package includes the header files and static libraries
necessary for developing programs which will manipulate DVDs files using
the %{name} library.
If you are going to develop programs which will manipulate DVDs,
you should install %{name}-devel. You'll also need to have the %name
package installed.
%prep
%setup -q
%build
%configure
make libdvdcss
%install
%makeinstall
%clean
rm -fr %buildroot
%post -n %{lib_name} -p /sbin/ldconfig
%postun -n %{lib_name} -p /sbin/ldconfig
%files -n %{lib_name}
%defattr(-,root,root,-)
%doc COPYING AUTHORS
%{_libdir}/*.so.*
%files -n %{lib_name}-devel
%defattr(-,root,root)
%doc COPYING
%{_libdir}/*.a
%{_libdir}/*.so
%{_includedir}/*
%changelog
* Tue Oct 02 2001 Christophe Massiot <massiot@via.ecp.fr>
- Imported Mandrake's vlc.spec into the CVS
* Thu Aug 23 2001 Yves Duret <yduret@mandrakesoft.com> 0.0.3-1mdk
- version 0.0.3
* Mon Aug 13 2001 Yves Duret <yduret@mandrakesoft.com> 0.0.2-1mdk
- version 0.0.2
* Tue Jun 19 2001 Yves Duret <yduret@mandrakesoft.com> 0.0.1-1mdk
- first release and first mdk release
#EOF
/*****************************************************************************
* libdvdcss.h: DVD reading library, exported functions.
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: dvdcss.h,v 1.10 2001/11/19 15:13:11 stef Exp $
*
* Authors: Stphane Borel <stef@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* The libdvdcss structure
*****************************************************************************/
typedef struct dvdcss_s* dvdcss_handle;
/*****************************************************************************
* Defines and flags
*****************************************************************************/
#define DVDCSS_BLOCK_SIZE 2048
#define DVDCSS_NOFLAGS 0
#define DVDCSS_READ_DECRYPT (1 << 0)
#define DVDCSS_SEEK_MPEG (1 << 0)
#define DVDCSS_SEEK_KEY (1 << 1)
/*****************************************************************************
* Exported prototypes
*****************************************************************************/
extern dvdcss_handle dvdcss_open ( char *psz_target );
extern int dvdcss_close ( dvdcss_handle );
extern int dvdcss_title ( dvdcss_handle,
int i_block );
extern int dvdcss_seek ( dvdcss_handle,
int i_blocks,
int i_flags );
extern int dvdcss_read ( dvdcss_handle,
void *p_buffer,
int i_blocks,
int i_flags );
extern int dvdcss_readv ( dvdcss_handle,
void *p_iovec,
int i_blocks,
int i_flags );
extern char * dvdcss_error ( dvdcss_handle );
###############################################################################
# vlc (VideoLAN Client) dvdread module Makefile
# (c)2001 VideoLAN
###############################################################################
LIBDVDREAD_VERSION := 0.9.2-videolan
BASE_A := libdvdread.a
BASE_SO := libdvdread.so
MAJOR_SO := libdvdread.so.$(shell echo $(LIBDVDREAD_VERSION) | cut -f1 -d.)
FULL_SO := libdvdread.so.$(LIBDVDREAD_VERSION)
ifneq (,$(SOFLAGS))
ALL_SOFLAGS := $(SOFLAGS)$(MAJOR_SO)
SOFLAGS :=
endif
#
# C headers directories
#
CFLAGS := -I../../include $(CFLAGS_DVDREAD) $(CFLAGS)
#
# Objects
#
OBJ_C = dvd_setup.o dvd_reader.o dvd_udf.o nav_print.o nav_read.o ifo_print.o ifo_read.o
ALL_OBJ = $(OBJ_C) $(OBJ_LIBDVDREAD)
#
# Standard dependencies
#
C_DEP := $(ALL_OBJ:%.o=.dep/%.d)
#
# Virtual targets
#
all: ../../lib/$(BASE_A) ../../lib/$(FULL_SO)
clean:
rm -f $(ALL_OBJ)
rm -f *.o
rm -rf .dep
install:
mkdir -p $(DESTDIR)$(libdir)
-$(INSTALL) -m 644 ../../lib/$(BASE_A) $(DESTDIR)$(libdir)
-$(INSTALL) -m 644 ../../lib/$(FULL_SO) $(DESTDIR)$(libdir)
rm -f $(DESTDIR)$(libdir)/$(BASE_SO) && ln -s $(FULL_SO) $(DESTDIR)$(libdir)/$(BASE_SO)
rm -f $(DESTDIR)$(libdir)/$(MAJOR_SO) && ln -s $(FULL_SO) $(DESTDIR)$(libdir)/$(MAJOR_SO)
uninstall:
rm -f $(DESTDIR)$(libdir)/$(BASE_A)
rm -f $(DESTDIR)$(libdir)/$(BASE_SO)
rm -f $(DESTDIR)$(libdir)/$(MAJOR_SO)
rm -f $(DESTDIR)$(libdir)/$(FULL_SO)
FORCE:
$(ALL_OBJ): %.o: ../../Makefile.dep Makefile
$(C_DEP): %.d: FORCE
@$(MAKE) -s --no-print-directory -f ../../Makefile.dep $@
$(OBJ_C): %.o: .dep/%.d
$(OBJ_C): %.o: %.c
$(CC) $(CFLAGS) $(PCFLAGS) -c -o $@ $<
../../lib/$(FULL_SO): $(OBJ_C) $(OBJ_LIBDVDREAD)
$(CC) $(PCFLAGS) $(ALL_SOFLAGS) -o $@ $^ $(PLDFLAGS) $(LIB_LIBDVDREAD)
rm -f ../../lib/$(BASE_SO) && ln -s $(FULL_SO) ../../lib/$(BASE_SO)
rm -f ../../lib/$(MAJOR_SO) && ln -s $(FULL_SO) ../../lib/$(MAJOR_SO)
../../lib/$(BASE_A): $(OBJ_C) $(OBJ_LIBDVDREAD)
ar r $@ $^
$(RANLIB) $@
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/**
* dvd_setup.h: setup functions header.
*/
/* Copyright (C) 2001 VideoLAN
* $Id: dvd_setup.h,v 1.2 2002/01/23 03:56:51 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*/
/**
* The libdvdcss structure.
*/
struct dvdcss_s
{
/* File descriptor */
int i_fd;
};
#ifdef GOD_DAMN_DMCA
/**
* Defines and flags.
*/
# define DVDCSS_NOFLAGS 0
# define DVDCSS_READ_DECRYPT (1 << 0)
# define DVDCSS_SEEK_MPEG (1 << 0)
# define DVDCSS_SEEK_KEY (1 << 1)
#else
# include <videolan/dvdcss.h>
#endif
typedef struct dvdcss_s* dvd_handle;
/**
* Pointers which will be filled either with dummy functions or
* with the dlopen()ed ones.
*/
dvd_handle (*pf_dvd_open) ( char * );
int (*pf_dvd_close) ( dvd_handle );
int (*pf_dvd_seek) ( dvd_handle, int, int );
int (*pf_dvd_read) ( dvd_handle, void *, int, int );
int (*pf_dvd_readv) ( dvd_handle, void *, int, int );
char * (*pf_dvd_error) ( dvd_handle );
/**
* Setup function accessed by dvd_reader.c
*/
void DVDSetupRead( void );
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
dvd_SOURCES = dvd.c dvd_access.c dvd_demux.c dvd_seek.c dvd_es.c dvd_ifo.c dvd_udf.c dvd_summary.c $(SRC_DVD_EXTRA)
EXTRA_DEP = ../../lib/libdvdcss.a ../../lib/libdvdcss.so
$(EXTRA_DEP): libdvdcss
libdvdcss:
@cd ../../ && $(MAKE) libdvdcss
dvd_SOURCES = dvd.c dvd_access.c dvd_demux.c dvd_seek.c dvd_es.c dvd_ifo.c dvd_udf.c dvd_summary.c
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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