[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