Mercurial > mplayer.hg
view libmpdvdkit2/libdvdcss_changes.diff @ 16649:e1d6fbd607e0
Fix DVD audio and subtitle stream mapping, esp. for DVD with both 4:3 and
16:9 subtitles.
Patch by Lehel Bernadt (lehel at pmc-services hu) with minor modifications.
author | reimar |
---|---|
date | Mon, 03 Oct 2005 14:29:01 +0000 |
parents | 954cdf2171f6 |
children | 2ab52c9b72b9 |
line wrap: on
line source
--- common.h 2003-06-13 19:33:35.000000000 +0200 +++ common.h 2005-03-01 07:41:41.000000000 +0100 @@ -27,21 +27,10 @@ /***************************************************************************** * Basic types definitions *****************************************************************************/ -#if defined( HAVE_STDINT_H ) -# include <stdint.h> -#elif defined( HAVE_INTTYPES_H ) -# include <inttypes.h> -#elif defined( SYS_CYGWIN ) -# include <sys/types.h> - /* Cygwin only defines half of these... */ - typedef u_int8_t uint8_t; - typedef u_int32_t uint32_t; -#else - /* Fallback types (very x86-centric, sorry) */ - typedef unsigned char uint8_t; - typedef signed char int8_t; - typedef unsigned int uint32_t; - typedef signed int int32_t; +#include <inttypes.h> + +#ifdef __CYGWIN__ +#define SYS_CYGWIN #endif #if defined( WIN32 ) --- css.c 2005-07-11 14:24:09.000000000 +0200 +++ css.c 2005-10-01 19:02:35.000000000 +0200 @@ -41,19 +41,11 @@ #include <string.h> #include <sys/types.h> #include <sys/stat.h> -#ifdef HAVE_SYS_PARAM_H -# include <sys/param.h> -#endif -#ifdef HAVE_UNISTD_H # include <unistd.h> -#endif #include <fcntl.h> - -#ifdef HAVE_LIMITS_H # include <limits.h> -#endif -#include "dvdcss/dvdcss.h" +#include "dvdcss.h" #include "common.h" #include "css.h" --- device.c 2005-07-11 13:33:34.000000000 +0200 +++ device.c 2005-10-01 19:08:07.000000000 +0200 @@ -31,23 +31,12 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#ifdef HAVE_ERRNO_H # include <errno.h> -#endif #include <sys/types.h> #include <sys/stat.h> -#ifdef HAVE_SYS_PARAM_H -# include <sys/param.h> -#endif #include <fcntl.h> - -#ifdef HAVE_UNISTD_H # include <unistd.h> -#endif - -#ifdef HAVE_LIMITS_H # include <limits.h> -#endif #if defined( WIN32 ) && !defined( SYS_CYGWIN ) # include <io.h> /* read() */ @@ -55,7 +44,7 @@ # include <sys/uio.h> /* struct iovec */ #endif -#include "dvdcss/dvdcss.h" +#include "dvdcss.h" #include "common.h" #include "css.h" @@ -143,8 +132,11 @@ print_debug( dvdcss, "opening target `%s'", psz_device ); #if defined( WIN32 ) - /* If device is not "X:", we are actually opening a file. */ - dvdcss->b_file = !psz_device[0] || psz_device[1] != ':' || psz_device[2]; + dvdcss->b_file = 1; + /* If device is "X:" or "X:\", we are not actually opening a file. */ + if (psz_device[0] && psz_device[1] == ':' && + (!psz_device[2] || (psz_device[2] == '\\' && !psz_device[3]))) + dvdcss->b_file = 0; /* Initialize readv temporary buffer */ dvdcss->p_readv_buffer = NULL; --- error.c 2004-02-24 16:46:49.000000000 +0100 +++ error.c 2005-10-01 19:10:06.000000000 +0200 @@ -25,16 +25,9 @@ #include <stdio.h> #include <stdlib.h> - -#ifdef HAVE_SYS_PARAM_H -# include <sys/param.h> -#endif - -#ifdef HAVE_LIMITS_H # include <limits.h> -#endif -#include "dvdcss/dvdcss.h" +#include "dvdcss.h" #include "common.h" #include "css.h" --- libdvdcss.c 2004-08-13 15:40:18.000000000 +0200 +++ libdvdcss.c 2005-10-01 19:11:27.000000000 +0200 @@ -87,10 +87,7 @@ * values. This will speed up descrambling of DVDs which are in the * cache. The DVDCSS_CACHE directory is created if it does not exist, * and a subdirectory is created named after the DVD's title or - * manufacturing date. If DVDCSS_CACHE is not set or is empty, \e libdvdcss - * will use the default value which is "${HOME}/.dvdcss/" under Unix and - * "C:\Documents and Settings\$USER\Application Data\dvdcss\" under Win32. - * The special value "off" disables caching. + * manufacturing date. */ /* @@ -103,28 +100,12 @@ #include <string.h> #include <sys/types.h> #include <sys/stat.h> -#ifdef HAVE_SYS_PARAM_H -# include <sys/param.h> -#endif -#ifdef HAVE_PWD_H -# include <pwd.h> -#endif #include <fcntl.h> #include <errno.h> - -#ifdef HAVE_UNISTD_H # include <unistd.h> -#endif - -#ifdef HAVE_LIMITS_H # include <limits.h> -#endif -#ifdef HAVE_DIRECT_H -# include <direct.h> -#endif - -#include "dvdcss/dvdcss.h" +#include "dvdcss.h" #include "common.h" #include "css.h" @@ -132,6 +113,12 @@ #include "ioctl.h" #include "device.h" +#ifndef HAVE_MPLAYER + #include "get_path.c" +#else + extern char * get_path( char * filename ); +#endif + /** * \brief Symbol for version checks. * @@ -233,6 +220,8 @@ } } +#if 0 /* MPlayer caches keys in its own configuration directory */ + /* * If DVDCSS_CACHE was not set, try to guess a default value */ @@ -309,6 +298,8 @@ #endif } +#endif /* 0 */ + /* * Find cache dir from the DVDCSS_CACHE environment variable */ @@ -326,6 +317,7 @@ psz_cache = NULL; } } + else psz_cache = get_path( "DVDKeys" ); /* * Open device @@ -504,9 +496,10 @@ dvdcss->psz_cachefile[0] = '\0'; goto nocache; } + i += sprintf( dvdcss->psz_cachefile + i, "/"); - i += sprintf( dvdcss->psz_cachefile + i, "/%s-%s%s", psz_title, - psz_serial, psz_key ); +// i += sprintf( dvdcss->psz_cachefile + i, "/%s", psz_data ); + i += sprintf( dvdcss->psz_cachefile + i, "/%s#%s", psz_title, psz_serial ); #if !defined( WIN32 ) || defined( SYS_CYGWIN ) i_ret = mkdir( dvdcss->psz_cachefile, 0755 ); #else