[MPlayer-dev-eng] [PATCH] Darwin dvdkit fixes
Joey Parrish
joey at yunamusic.com
Mon Jun 10 03:36:24 CEST 2002
Hello,
The first patch attached is to fix a typo in dvd_reader.c that makes
trouble for Darwin.
Also, I couldn't find MacOSX_dvdioctl headers anywhere on the Darwin
box I use, but I found them in an older version of vlc. Was it an
oversight not to include them in MPlayer? Anyhow, the second patch
tries to add them to the mpdvdkit tree. The second patch is not tested
yet, since I don't often have physical access to Darwin. Could anybody
please verify that it works? I apologize in advance if it doesn't.
The third patch is to enable mpdvdkit for darwin by default, and to
fix what I think is a bug... if I'm reading this correctly, then
dvdkit will be used even if there's no appropriate headers found
(like sys/cdio.h, or dvd.h)... and if I'm wrong, then just ignore
that extra line. :)
I hope these are useful.
Thanks,
--Joey
--
"All you need is love." --Darth Vader
-------------- next part --------------
--- libmpdvdkit/dvd_reader.c.orig Sun Jun 9 20:07:39 2002
+++ libmpdvdkit/dvd_reader.c Sun Jun 9 20:07:35 2002
@@ -47,7 +47,7 @@
#endif
#if defined(SYS_DARWIN)
-typedef u_int64_t off64_t
+typedef u_int64_t off64_t;
#define lseek64 lseek
#define stat64 stat
#endif
-------------- next part --------------
--- libmpdvdkit/ioctl.c Thu May 9 04:06:44 2002
+++ libmpdvdkit/ioctl.c Sun Jun 9 20:32:31 2002
@@ -70,7 +70,7 @@
#include "common.h"
#ifdef SYS_DARWIN
-# include "MacOSX_dvdioctl/DVDioctl.h"
+# include "darwin_dvdioctl.h"
#endif
#include "ioctl.h"
--- libmpdvdkit/darwin_dvdioctl.h Wed Dec 31 18:00:00 1969
+++ libmpdvdkit/darwin_dvdioctl.h Sun Jun 9 20:31:34 2002
@@ -0,0 +1,72 @@
+/*****************************************************************************
+ * DVDioctl.h: Linux-like DVD driver for Darwin and MacOS X
+ *****************************************************************************
+ * Copyright (C) 2001 VideoLAN
+ * $Id: DVDioctl.h,v 1.4 2001/06/25 11:34:08 sam Exp $
+ *
+ * Authors: Samuel Hocevar <sam at zoy.org>
+ * Eugenio Jarosiewicz <ej0 at cise.ufl.edu>
+ *
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License"). You may not use this file except in compliance with the
+ * License. Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
+ *
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *****************************************************************************/
+
+#if defined(KERNEL)
+/* Everything has already been defined */
+#else
+enum DVDKeyFormat
+{
+ kCSSAGID = 0x00,
+ kChallengeKey = 0x01,
+ kKey1 = 0x02,
+ kKey2 = 0x03,
+ kTitleKey = 0x04,
+ kASF = 0x05,
+ kSetRegion = 0x06,
+ kRPCState = 0x08,
+ kCSS2AGID = 0x10,
+ kCPRMAGID = 0x11,
+ kInvalidateAGID = 0x3f
+};
+
+enum DVDKeyClass
+{
+ kCSS_CSS2_CPRM = 0x00,
+ kRSSA = 0x01
+};
+#endif
+
+typedef struct dvdioctl_data
+{
+ void *p_buffer;
+
+#if defined(KERNEL)
+ UInt32 i_size;
+ UInt32 i_lba;
+ UInt8 i_agid;
+#else
+ u32 i_size;
+ u32 i_lba;
+ u8 i_agid;
+#endif
+
+ int i_keyclass;
+ int i_keyformat;
+
+} dvdioctl_data_t;
+
+#define IODVD_READ_STRUCTURE _IOWR('B', 1, dvdioctl_data_t)
+#define IODVD_SEND_KEY _IOWR('B', 2, dvdioctl_data_t)
+#define IODVD_REPORT_KEY _IOWR('B', 3, dvdioctl_data_t)
+
-------------- next part --------------
--- configure Sun Jun 9 19:52:36 2002
+++ configure Sun Jun 9 20:19:28 2002
@@ -2892,11 +2892,12 @@
echocheck "DVD support (libmpdvdkit)"
if test "$_dvdkit" = auto ; then
_dvdkit=no
- if linux || freebsd || netbsd ; then
+ if linux || freebsd || netbsd || darwin; then
test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
fi
fi
if test "$_dvdkit" = yes ; then
+ _dvdkit=no
test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || test "$_dvdio" = yes || test "$_bdsi_dvd" = yes && _dvdkit=yes
if test "$_dvdkit" = yes ; then
_inputmodules="mpdvdkit $_inputmodules"
More information about the MPlayer-dev-eng
mailing list