From d4f18c4eadb23de73e7ae1d1e2e899cbbfbef567 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Mon, 18 Mar 2002 19:14:52 +0000 Subject: [PATCH] * ./extras/MacOSX_dvdioctl: removed outdated files. * ./plugins/fx/scope.c: fixed an infinite loop error. * ./plugins: fixed segfaults in various demux plugins. * ./plugins/sdl/vout_sdl.c: SDL_VIDEODRIVER can be specified from the command line; try "--vout sdl:aalib" --- INSTALL | 9 +- extras/MacOSX_dvdioctl/COPYING | 372 ---------- extras/MacOSX_dvdioctl/DVDioctl.cpp | 690 ------------------ extras/MacOSX_dvdioctl/DVDioctl.h | 72 -- .../DVDioctl.pbproj/project.pbxproj | 274 ------- .../English.lproj/InfoPlist.strings | Bin 564 -> 0 bytes extras/MacOSX_dvdioctl/README | 31 - plugins/dvd/dvd_access.c | 4 +- plugins/dvd/dvd_demux.c | 7 +- plugins/dvdread/input_dvdread.c | 7 +- plugins/fx/scope.c | 27 +- plugins/mpeg_system/mpeg_es.c | 8 +- plugins/mpeg_system/mpeg_ps.c | 8 +- plugins/mpeg_system/mpeg_ts.c | 6 +- plugins/sdl/vout_sdl.c | 18 +- plugins/vcd/input_vcd.c | 5 + 16 files changed, 73 insertions(+), 1465 deletions(-) delete mode 100644 extras/MacOSX_dvdioctl/COPYING delete mode 100644 extras/MacOSX_dvdioctl/DVDioctl.cpp delete mode 100644 extras/MacOSX_dvdioctl/DVDioctl.h delete mode 100644 extras/MacOSX_dvdioctl/DVDioctl.pbproj/project.pbxproj delete mode 100644 extras/MacOSX_dvdioctl/English.lproj/InfoPlist.strings delete mode 100644 extras/MacOSX_dvdioctl/README diff --git a/INSTALL b/INSTALL index 1bdf1150c2..5530adfe6c 100644 --- a/INSTALL +++ b/INSTALL @@ -10,17 +10,10 @@ A typical way to configure vlc is: See `./configure --help' for more information. -Here is a shortcut to copy-paste for a complete build: - - make distclean ; ./configure --prefix=/usr --enable-gnome \ - --enable-fb --with-glide --with-ggi --enable-esd --enable-qt - If you intend to debug stuff, you may want to compile with debugging symbols: - make distclean ; ./configure --prefix=/usr --enable-gnome \ - --enable-fb --with-glide --with-ggi --enable-esd --enable-qt \ - --enable-debug + make distclean ; ./configure --prefix=/usr --enable-gnome --enable-debug It is also possible to cross-compile for the Win32 platform using mingw32: diff --git a/extras/MacOSX_dvdioctl/COPYING b/extras/MacOSX_dvdioctl/COPYING deleted file mode 100644 index a0a84169dd..0000000000 --- a/extras/MacOSX_dvdioctl/COPYING +++ /dev/null @@ -1,372 +0,0 @@ -APPLE PUBLIC SOURCE LICENSE -Version 1.1 - April 19,1999 - -Please read this License carefully before downloading this software. -By downloading and using this software, you are agreeing to be bound -by the terms of this License. If you do not or cannot agree to the -terms of this License, please do not download or use the software. - -1. General; Definitions. This License applies to any program or other -work which Apple Computer, Inc. ("Apple") publicly announces as -subject to this Apple Public Source License and which contains a -notice placed by Apple identifying such program or work as "Original -Code" and stating that it is subject to the terms of this Apple Public -Source License version 1.1 (or subsequent version thereof), as it may -be revised from time to time by Apple ("License"). As used in this -License: - -1.1 "Affected Original Code" means only those specific portions of -Original Code that allegedly infringe upon any party's intellectual -property rights or are otherwise the subject of a claim of -infringement. - -1.2 "Applicable Patent Rights" mean: (a) in the case where Apple is -the grantor of rights, (i) claims of patents that are now or hereafter -acquired, owned by or assigned to Apple and (ii) that cover subject -matter contained in the Original Code, but only to the extent -necessary to use, reproduce and/or distribute the Original Code -without infringement; and (b) in the case where You are the grantor of -rights, (i) claims of patents that are now or hereafter acquired, -owned by or assigned to You and (ii) that cover subject matter in Your -Modifications, taken alone or in combination with Original Code. - -1.3 "Covered Code" means the Original Code, Modifications, the -combination of Original Code and any Modifications, and/or any -respective portions thereof. - -1.4 "Deploy" means to use, sublicense or distribute Covered Code other -than for Your internal research and development (R&D), and includes -without limitation, any and all internal use or distribution of -Covered Code within Your business or organization except for R&D use, -as well as direct or indirect sublicensing or distribution of Covered -Code by You to any third party in any form or manner. - -1.5 "Larger Work" means a work which combines Covered Code or portions -thereof with code not governed by the terms of this License. - -1.6 "Modifications" mean any addition to, deletion from, and/or change -to, the substance and/or structure of Covered Code. When code is -released as a series of files, a Modification is: (a) any addition to -or deletion from the contents of a file containing Covered Code; -and/or (b) any new file or other representation of computer program -statements that contains any part of Covered Code. - -1.7 "Original Code" means (a) the Source Code of a program or other -work as originally made available by Apple under this License, -including the Source Code of any updates or upgrades to such programs -or works made available by Apple under this License, and that has been -expressly identified by Apple as such in the header file(s) of such -work; and (b) the object code compiled from such Source Code and -originally made available by Apple under this License. - -1.8 "Source Code" means the human readable form of a program or other -work that is suitable for making modifications to it, including all -modules it contains, plus any associated interface definition files, -scripts used to control compilation and installation of an executable -(object code). - -1.9 "You" or "Your" means an individual or a legal entity exercising -rights under this License. For legal entities, "You" or "Your" -includes any entity which controls, is controlled by, or is under -common control with, You, where "control" means (a) the power, direct -or indirect, to cause the direction or management of such entity, -whether by contract or otherwise, or (b) ownership of fifty percent -(50%) or more of the outstanding shares or beneficial ownership of -such entity. - -2. Permitted Uses; Conditions & Restrictions. Subject to the terms -and conditions of this License, Apple hereby grants You, effective on -the date You accept this License and download the Original Code, a -world-wide, royalty-free, non- exclusive license, to the extent of -Apple's Applicable Patent Rights and copyrights covering the Original -Code, to do the following: - -2.1 You may use, copy, modify and distribute Original Code, with or -without Modifications, solely for Your internal research and -development, provided that You must in each instance: - -(a) retain and reproduce in all copies of Original Code the copyright -and other proprietary notices and disclaimers of Apple as they appear -in the Original Code, and keep intact all notices in the Original Code -that refer to this License; - -(b) include a copy of this License with every copy of Source Code of -Covered Code and documentation You distribute, and You may not offer -or impose any terms on such Source Code that alter or restrict this -License or the recipients' rights hereunder, except as permitted under -Section 6; and - -(c) completely and accurately document all Modifications that you have -made and the date of each such Modification, designate the version of -the Original Code you used, prominently include a file carrying such -information with the Modifications, and duplicate the notice in -Exhibit A in each file of the Source Code of all such Modifications. - -2.2 You may Deploy Covered Code, provided that You must in each - instance: - -(a) satisfy all the conditions of Section 2.1 with respect to the -Source Code of the Covered Code; - -(b) make all Your Deployed Modifications publicly available in Source -Code form via electronic distribution (e.g. download from a web site) -under the terms of this License and subject to the license grants set -forth in Section 3 below, and any additional terms You may choose to -offer under Section 6. You must continue to make the Source Code of -Your Deployed Modifications available for as long as you Deploy the -Covered Code or twelve (12) months from the date of initial -Deployment, whichever is longer; - -(c) if You Deploy Covered Code containing Modifications made by You, -inform others of how to obtain those Modifications by filling out and -submitting the information found at -http://www.apple.com/publicsource/modifications.html, if available; -and - -(d) if You Deploy Covered Code in object code, executable form only, -include a prominent notice, in the code itself as well as in related -documentation, stating that Source Code of the Covered Code is -available under the terms of this License with information on how and -where to obtain such Source Code. - -3. Your Grants. In consideration of, and as a condition to, the -licenses granted to You under this License: - -(a) You hereby grant to Apple and all third parties a non-exclusive, -royalty-free license, under Your Applicable Patent Rights and other -intellectual property rights owned or controlled by You, to use, -reproduce, modify, distribute and Deploy Your Modifications of the -same scope and extent as Apple's licenses under Sections 2.1 and 2.2; -and - -(b) You hereby grant to Apple and its subsidiaries a non-exclusive, -worldwide, royalty-free, perpetual and irrevocable license, under Your -Applicable Patent Rights and other intellectual property rights owned -or controlled by You, to use, reproduce, execute, compile, display, -perform, modify or have modified (for Apple and/or its subsidiaries), -sublicense and distribute Your Modifications, in any form, through -multiple tiers of distribution. - -4. Larger Works. You may create a Larger Work by combining Covered -Code with other code not governed by the terms of this License and -distribute the Larger Work as a single product. In each such -instance, You must make sure the requirements of this License are -fulfilled for the Covered Code or any portion thereof. - -5. Limitations on Patent License. Except as expressly stated in -Section 2, no other patent rights, express or implied, are granted by -Apple herein. Modifications and/or Larger Works may require -additional patent licenses from Apple which Apple may grant in its -sole discretion. - -6. Additional Terms. You may choose to offer, and to charge a fee -for, warranty, support, indemnity or liability obligations and/or -other rights consistent with the scope of the license granted herein -("Additional Terms") to one or more recipients of Covered -Code. However, You may do so only on Your own behalf and as Your sole -responsibility, and not on behalf of Apple. You must obtain the -recipient's agreement that any such Additional Terms are offered by -You alone, and You hereby agree to indemnify, defend and hold Apple -harmless for any liability incurred by or claims asserted against -Apple by reason of any such Additional Terms. - -7. Versions of the License. Apple may publish revised and/or new -versions of this License from time to time. Each version will be -given a distinguishing version number. Once Original Code has been -published under a particular version of this License, You may continue -to use it under the terms of that version. You may also choose to use -such Original Code under the terms of any subsequent version of this -License published by Apple. No one other than Apple has the right to -modify the terms applicable to Covered Code created under this -License. - -8. NO WARRANTY OR SUPPORT. The Original Code may contain in whole or -in part pre-release, untested, or not fully tested works. The -Original Code may contain errors that could cause failures or loss of -data, and may be incomplete or contain inaccuracies. You expressly -acknowledge and agree that use of the Original Code, or any portion -thereof, is at Your sole and entire risk. THE ORIGINAL CODE IS -PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND -AND APPLE AND APPLE'S LICENSOR(S) (FOR THE PURPOSES OF SECTIONS 8 AND -9, APPLE AND APPLE'S LICENSOR(S) ARE COLLECTIVELY REFERRED TO AS -"APPLE") EXPRESSLY DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -AND/OR CONDITIONS OF MERCHANTABILITY OR SATISFACTORY QUALITY AND -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY -RIGHTS. APPLE DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE -ORIGINAL CODE WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF -THE ORIGINAL CODE WILL BE UNINTERRUPTED OR ERROR- FREE, OR THAT -DEFECTS IN THE ORIGINAL CODE WILL BE CORRECTED. NO ORAL OR WRITTEN -INFORMATION OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED -REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE -SCOPE OF THIS WARRANTY. You acknowledge that the Original Code is not -intended for use in the operation of nuclear facilities, aircraft -navigation, communication systems, or air traffic control machines in -which case the failure of the Original Code could lead to death, -personal injury, or severe physical or environmental damage. - -9. Liability. - -9.1 Infringement. If any portion of, or functionality implemented by, -the Original Code becomes the subject of a claim of infringement, -Apple may, at its option: (a) attempt to procure the rights necessary -for Apple and You to continue using the Affected Original Code; (b) -modify the Affected Original Code so that it is no longer infringing; -or (c) suspend Your rights to use, reproduce, modify, sublicense and -distribute the Affected Original Code until a final determination of -the claim is made by a court or governmental administrative agency of -competent jurisdiction and Apple lifts the suspension as set forth -below. Such suspension of rights will be effective immediately upon -Apple's posting of a notice to such effect on the Apple web site that -is used for implementation of this License. Upon such final -determination being made, if Apple is legally able, without the -payment of a fee or royalty, to resume use, reproduction, -modification, sublicensing and distribution of the Affected Original -Code, Apple will lift the suspension of rights to the Affected -Original Code by posting a notice to such effect on the Apple web site -that is used for implementation of this License. If Apple suspends -Your rights to Affected Original Code, nothing in this License shall -be construed to restrict You, at Your option and subject to applicable -law, from replacing the Affected Original Code with non-infringing -code or independently negotiating for necessary rights from such third -party. - -9.2 LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES SHALL APPLE BE -LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES -ARISING OUT OF OR RELATING TO THIS LICENSE OR YOUR USE OR INABILITY TO -USE THE ORIGINAL CODE, OR ANY PORTION THEREOF, WHETHER UNDER A THEORY -OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY -OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF -ANY REMEDY. In no event shall Apple's total liability to You for all -damages under this License exceed the amount of fifty dollars -($50.00). - -10. Trademarks. This License does not grant any rights to use the -trademarks or trade names "Apple", "Apple Computer", "Mac OS X", "Mac -OS X Server" or any other trademarks or trade names belonging to Apple -(collectively "Apple Marks") and no Apple Marks may be used to endorse -or promote products derived from the Original Code other than as -permitted by and in strict compliance at all times with Apple's third -party trademark usage guidelines which are posted at -http://www.apple.com/legal/guidelinesfor3rdparties.html. - -11. Ownership. Apple retains all rights, title and interest in and to -the Original Code and any Modifications made by or on behalf of Apple -("Apple Modifications"), and such Apple Modifications will not be -automatically subject to this License. Apple may, at its sole -discretion, choose to license such Apple Modifications under this -License, or on different terms from those contained in this License or -may choose not to license them at all. Apple's development, use, -reproduction, modification, sublicensing and distribution of Covered -Code will not be subject to this License. - -12. Termination. - -12.1 Termination. This License and the rights granted hereunder will - terminate: - -(a) automatically without notice from Apple if You fail to comply with -any term(s) of this License and fail to cure such breach within 30 -days of becoming aware of such breach; (b) immediately in the event of -the circumstances described in Section 13.5(b); or (c) automatically -without notice from Apple if You, at any time during the term of this -License, commence an action for patent infringement against Apple. - -12.2 Effect of Termination. Upon termination, You agree to -immediately stop any further use, reproduction, modification, -sublicensing and distribution of the Covered Code and to destroy all -copies of the Covered Code that are in your possession or control. -All sublicenses to the Covered Code which have been properly granted -prior to termination shall survive any termination of this License. -Provisions which, by their nature, should remain in effect beyond the -termination of this License shall survive, including but not limited -to Sections 3, 5, 8, 9, 10, 11, 12.2 and 13. Neither party will be -liable to the other for compensation, indemnity or damages of any sort -solely as a result of terminating this License in accordance with its -terms, and termination of this License will be without prejudice to -any other right or remedy of either party. - -13. Miscellaneous. - -13.1 Government End Users. The Covered Code is a "commercial item" as -defined in FAR 2.101. Government software and technical data rights -in the Covered Code include only those rights customarily provided to -the public as defined in this License. This customary commercial -license in technical data and software is provided in accordance with -FAR 12.211 (Technical Data) and 12.212 (Computer Software) and, for -Department of Defense purchases, DFAR 252.227-7015 (Technical Data -- -Commercial Items) and 227.7202-3 (Rights in Commercial Computer -Software or Computer Software Documentation). Accordingly, all U.S. -Government End Users acquire Covered Code with only those rights set -forth herein. - -13.2 Relationship of Parties. This License will not be construed as -creating an agency, partnership, joint venture or any other form of -legal association between You and Apple, and You will not represent to -the contrary, whether expressly, by implication, appearance or -otherwise. - -13.3 Independent Development. Nothing in this License will impair -Apple's right to acquire, license, develop, have others develop for -it, market and/or distribute technology or products that perform the -same or similar functions as, or otherwise compete with, -Modifications, Larger Works, technology or products that You may -develop, produce, market or distribute. - -13.4 Waiver; Construction. Failure by Apple to enforce any provision -of this License will not be deemed a waiver of future enforcement of -that or any other provision. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -will not apply to this License. - -13.5 Severability. (a) If for any reason a court of competent -jurisdiction finds any provision of this License, or portion thereof, -to be unenforceable, that provision of the License will be enforced to -the maximum extent permissible so as to effect the economic benefits -and intent of the parties, and the remainder of this License will -continue in full force and effect. (b) Notwithstanding the foregoing, -if applicable law prohibits or restricts You from fully and/or -specifically complying with Sections 2 and/or 3 or prevents the -enforceability of either of those Sections, this License will -immediately terminate and You must immediately discontinue any use of -the Covered Code and destroy all copies of it that are in your -possession or control. - -13.6 Dispute Resolution. Any litigation or other dispute resolution -between You and Apple relating to this License shall take place in the -Northern District of California, and You and Apple hereby consent to -the personal jurisdiction of, and venue in, the state and federal -courts within that District with respect to this License. The -application of the United Nations Convention on Contracts for the -International Sale of Goods is expressly excluded. - -13.7 Entire Agreement; Governing Law. This License constitutes the -entire agreement between the parties with respect to the subject -matter hereof. This License shall be governed by the laws of the -United States and the State of California, except that body of -California law concerning conflicts of law. - -Where You are located in the province of Quebec, Canada, the following -clause applies: The parties hereby confirm that they have requested -that this License and all related documents be drafted in English. Les -parties ont exige que le present contrat et tous les documents -connexes soient rediges en anglais. - -EXHIBIT A. - -"Portions Copyright (c) 1999-2000 Apple Computer, Inc. All Rights -Reserved. This file contains Original Code and/or Modifications of -Original Code as defined in and that 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. - -The 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." diff --git a/extras/MacOSX_dvdioctl/DVDioctl.cpp b/extras/MacOSX_dvdioctl/DVDioctl.cpp deleted file mode 100644 index c72769cb02..0000000000 --- a/extras/MacOSX_dvdioctl/DVDioctl.cpp +++ /dev/null @@ -1,690 +0,0 @@ -/***************************************************************************** - * DVDioctl.cpp: Linux-like DVD driver for Darwin and MacOS X - ***************************************************************************** - * Copyright (C) 1998-2000 Apple Computer, Inc. All rights reserved. - * Copyright (C) 2001 VideoLAN - * $Id: DVDioctl.cpp,v 1.7 2001/06/25 11:34:08 sam Exp $ - * - * Authors: Samuel Hocevar - * Eugenio Jarosiewicz - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * TODO: - * - add a timeout to waitForService() so that we don't wait forever - * - find a way to prevent user from ejecting DVD using the GUI while - * it is still in use - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -extern "C" -{ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -} - -#include -#include -#include -#include -#include - -#undef CONTROL //some include above #defines this and breaks the next include...grr. -#include -#include - -#include "DVDioctl.h" - -/***************************************************************************** - * Driver class - *****************************************************************************/ -class DVDioctl : public IOService -{ - OSDeclareDefaultStructors( DVDioctl ) - -public: - - virtual bool init ( OSDictionary *dictionary = 0 ); - virtual IOService *probe ( IOService *provider, SInt32 *score ); - virtual bool start ( IOService *provider ); - virtual void stop ( IOService *provider ); - virtual void free ( void ); -}; - -#define super IOService -OSDefineMetaClassAndStructors( DVDioctl, IOService ) - -/***************************************************************************** - * Variable typedefs - *****************************************************************************/ -typedef enum { DKRTYPE_BUF, DKRTYPE_DIO } dkrtype_t; -typedef struct dio { dev_t dev; struct uio * uio; } dio_t; -typedef struct buf buf_t; -typedef void * dkr_t; - -/***************************************************************************** - * Local prototypes - *****************************************************************************/ -static int DVDClose ( dev_t, int, int, struct proc * ); -static int DVDBlockIoctl ( dev_t, u_long, caddr_t, int, struct proc * ); -static int DVDOpen ( dev_t, int, int, struct proc * ); -static int DVDSize ( dev_t ); -static void DVDStrategy ( buf_t * ); -static int DVDReadWrite ( dkr_t, dkrtype_t ); -static void DVDReadWriteCompletion( void *, void *, IOReturn, UInt64 ); - -static struct bdevsw device_functions = -{ - DVDOpen, DVDClose, DVDStrategy, DVDBlockIoctl, eno_dump, DVDSize, D_DISK -}; - -/***************************************************************************** - * Local variables - *****************************************************************************/ -static DVDioctl * p_this = NULL; - -static bool b_inuse; -static int i_major; -static void *p_node; -static IODVDMedia *p_dvd; -static IODVDBlockStorageDriver *p_drive; -static IODVDServices *p_services; -static IOSCSIMultimediaCommandsDevice *p_scsi_mcd; - -/***************************************************************************** - * DKR_GET_DEV: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline dev_t DKR_GET_DEV(dkr_t dkr, dkrtype_t dkrtype) -{ - return (dkrtype == DKRTYPE_BUF) - ? ((buf_t *)dkr)->b_dev : ((dio_t *)dkr)->dev; -} - -/***************************************************************************** - * DKR_GET_BYTE_COUNT: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline UInt64 DKR_GET_BYTE_COUNT(dkr_t dkr, dkrtype_t dkrtype) -{ - return (dkrtype == DKRTYPE_BUF) - ? ((buf_t *)dkr)->b_bcount : ((dio_t *)dkr)->uio->uio_resid; -} - -/***************************************************************************** - * DKR_GET_BYTE_START: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline UInt64 DKR_GET_BYTE_START(dkr_t dkr, dkrtype_t dkrtype) -{ - if (dkrtype == DKRTYPE_BUF) - { - buf_t * bp = (buf_t *)dkr; - return bp->b_blkno * p_dvd->getPreferredBlockSize(); - } - return ((dio_t *)dkr)->uio->uio_offset; -} - -/***************************************************************************** - * DKR_IS_READ: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline bool DKR_IS_READ(dkr_t dkr, dkrtype_t dkrtype) -{ - return (dkrtype == DKRTYPE_BUF) - ? ((((buf_t *)dkr)->b_flags & B_READ) == B_READ) - : ((((dio_t *)dkr)->uio->uio_rw) == UIO_READ); -} - -/***************************************************************************** - * DKR_IS_ASYNCHRONOUS: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline bool DKR_IS_ASYNCHRONOUS(dkr_t dkr, dkrtype_t dkrtype) -{ - return (dkrtype == DKRTYPE_BUF) ? true : false; -} - -/***************************************************************************** - * DKR_IS_RAW: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline bool DKR_IS_RAW(dkr_t dkr, dkrtype_t dkrtype) -{ - return (dkrtype == DKRTYPE_BUF) ? false : true; -} - -/***************************************************************************** - * DKR_SET_BYTE_COUNT: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline void DKR_SET_BYTE_COUNT(dkr_t dkr, dkrtype_t dkrtype, UInt64 bcount) -{ - if (dkrtype == DKRTYPE_BUF) - { - ((buf_t *)dkr)->b_resid = ((buf_t *)dkr)->b_bcount - bcount; - } - else - { - ((dio_t *)dkr)->uio->uio_resid -= bcount; - } -} - -/***************************************************************************** - * DKR_RUN_COMPLETION: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline void DKR_RUN_COMPLETION(dkr_t dkr, dkrtype_t dkrtype, IOReturn status) -{ - if (dkrtype == DKRTYPE_BUF) - { - buf_t * bp = (buf_t *)dkr; - - bp->b_error = p_this->errnoFromReturn(status); - bp->b_flags |= (status != kIOReturnSuccess) ? B_ERROR : 0; - biodone(bp); - } -} - -/***************************************************************************** - * DKR_GET_BUFFER: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static inline IOMemoryDescriptor * DKR_GET_BUFFER(dkr_t dkr, dkrtype_t dkrtype) -{ - if (dkrtype == DKRTYPE_BUF) - { - buf_t * bp = (buf_t *)dkr; - - if ( (bp->b_flags & B_VECTORLIST) ) - { - assert(sizeof(IOPhysicalRange ) == sizeof(iovec )); - assert(sizeof(IOPhysicalRange::address) == sizeof(iovec::iov_base)); - assert(sizeof(IOPhysicalRange::length ) == sizeof(iovec::iov_len )); - return IOMemoryDescriptor::withPhysicalRanges( - (IOPhysicalRange *) bp->b_vectorlist, - (UInt32) bp->b_vectorcount, - (bp->b_flags & B_READ) ? kIODirectionIn : kIODirectionOut, - true ); - } - - return IOMemoryDescriptor::withAddress( - (vm_address_t) bp->b_data, - (vm_size_t) bp->b_bcount, - (bp->b_flags & B_READ) ? kIODirectionIn : kIODirectionOut, - (bp->b_flags & B_PHYS) ? current_task() : kernel_task ); - } - else - { - struct uio * uio = ((dio_t *)dkr)->uio; - - assert(sizeof(IOVirtualRange ) == sizeof(iovec )); - assert(sizeof(IOVirtualRange::address) == sizeof(iovec::iov_base)); - assert(sizeof(IOVirtualRange::length ) == sizeof(iovec::iov_len )); - - return IOMemoryDescriptor::withRanges( - (IOVirtualRange *) uio->uio_iov, - (UInt32) uio->uio_iovcnt, - (uio->uio_rw == UIO_READ ) ? kIODirectionIn : kIODirectionOut, - (uio->uio_segflg != UIO_SYSSPACE) ? current_task() : kernel_task, - true ); - } -} - -/***************************************************************************** - * DVDioctl::init: initialize the driver structure - *****************************************************************************/ -bool DVDioctl::init( OSDictionary *p_dict = 0 ) -{ - //IOLog( "DVD ioctl: initializing\n" ); - - p_this = this; - - p_node = NULL; - p_dvd = NULL; - p_drive = NULL; - p_services = NULL; - p_scsi_mcd = NULL; - i_major = -1; - b_inuse = false; - - bool res = super::init( p_dict ); - - return res; -} - -/***************************************************************************** - * DVDioctl::probe: check whether the driver can be safely activated - *****************************************************************************/ -IOService * DVDioctl::probe( IOService *provider, SInt32 *score ) -{ - //IOLog( "DVD ioctl: probing\n" ); - IOService * res = super::probe( provider, score ); - - return res; -} - -/***************************************************************************** - * DVDioctl::start: start the driver - *****************************************************************************/ -bool DVDioctl::start( IOService *provider ) -{ - //IOLog( "DVD ioctl: starting\n" ); - - if( !super::start( provider ) ) - { - return false; - } - - //IOLog( "DVD ioctl: creating device\n" ); - - i_major = bdevsw_add( -1, &device_functions ); - - if( i_major == -1 ) - { - //log(LOG_INFO, "DVD ioctl: failed to allocate a major number\n"); - return false; - } - - p_node = devfs_make_node ( makedev( i_major, 0 ), DEVFS_BLOCK, - UID_ROOT, GID_WHEEL, 0666, "dvd" ); - - if( p_node == NULL ) - { - //log( LOG_INFO, "DVD ioctl: failed creating node\n" ); - - if( bdevsw_remove(i_major, &device_functions) == -1 ) - { - //log( LOG_INFO, "DVD ioctl: bdevsw_remove failed\n" ); - } - - return false; - } - - return true; -} - -/***************************************************************************** - * DVDioctl::stop: stop the driver - *****************************************************************************/ -void DVDioctl::stop( IOService *provider ) -{ - //IOLog( "DVD ioctl: removing device\n" ); - - if( p_node != NULL ) - { - devfs_remove( p_node ); - } - - if( i_major != -1 ) - { - if( bdevsw_remove(i_major, &device_functions) == -1 ) - { - //log( LOG_INFO, "DVD ioctl: bdevsw_remove failed\n" ); - } - } - - //IOLog( "DVD ioctl: stopping\n" ); - super::stop( provider ); -} - -/***************************************************************************** - * DVDioctl::free: free all resources allocated by the driver - *****************************************************************************/ -void DVDioctl::free( void ) -{ - //IOLog( "DVD ioctl: freeing\n" ); - super::free( ); -} - -/* following functions are local */ - -/***************************************************************************** - * DVDOpen: look for an IODVDMedia object and open it - *****************************************************************************/ -static int DVDOpen( dev_t dev, int flags, int devtype, struct proc * ) -{ - IOStorageAccess level; - - /* Check that the device hasn't already been opened */ - if( b_inuse ) - { - //log( LOG_INFO, "DVD ioctl: already opened\n" ); - return EBUSY; - } - else - { - b_inuse = true; - } - - IOService * p_root = IOService::getServiceRoot(); - - if( p_root == NULL ) - { - //log( LOG_INFO, "DVD ioctl: couldn't find root\n" ); - b_inuse = false; - return ENXIO; - } - - OSDictionary * p_dict = p_root->serviceMatching( kIODVDMediaClass ); - - if( p_dict == NULL ) - { - //log( LOG_INFO, "DVD ioctl: couldn't find dictionary\n" ); - b_inuse = false; - return ENXIO; - } - - p_dvd = OSDynamicCast( IODVDMedia, p_root->waitForService( p_dict ) ); - - if( p_dvd == NULL ) - { - //log( LOG_INFO, "DVD ioctl: couldn't find service\n" ); - b_inuse = false; - return ENXIO; - } - - //log( LOG_INFO, "DVD ioctl: found DVD\n" ); - - level = (flags & FWRITE) ? kIOStorageAccessReaderWriter - : kIOStorageAccessReader; - - if( ! p_dvd->open( p_this, 0, level) ) - { - log( LOG_INFO, "DVD ioctl: IODVDMedia object busy\n" ); - b_inuse = false; - return EBUSY; - } - - p_drive = p_dvd->getProvider(); - - p_services = OSDynamicCast( IODVDServices, p_drive->getProvider() ); - - p_scsi_mcd = OSDynamicCast( IOSCSIMultimediaCommandsDevice, p_services->getProvider() ); - - log( LOG_INFO, "DVD ioctl: IODVDMedia->open()\n" ); - - return 0; -} - -/***************************************************************************** - * DVDClose: close the IODVDMedia object - *****************************************************************************/ -static int DVDClose( dev_t dev, int flags, int devtype, struct proc * ) -{ - /* Release the device */ - p_dvd->close( p_this ); - - p_dvd = NULL; - p_drive = NULL; - p_services = NULL; - p_scsi_mcd = NULL; - b_inuse = false; - - log( LOG_INFO, "DVD ioctl: IODVDMedia->close()\n" ); - - return 0; -} - -/***************************************************************************** - * DVDSize: return the device size - *****************************************************************************/ -static int DVDSize( dev_t dev ) -{ - return p_dvd->getPreferredBlockSize(); -} - -/***************************************************************************** - * DVDStrategy: perform read or write operations - *****************************************************************************/ -static void DVDStrategy( buf_t * bp ) -{ - DVDReadWrite(bp, DKRTYPE_BUF); - return; -} - -/***************************************************************************** - * DVDBlockIoctl: issue an ioctl on the block device - *****************************************************************************/ -static int DVDBlockIoctl( dev_t dev, u_long cmd, caddr_t addr, int flags, - struct proc *p ) -{ -#define p_data (((dvdioctl_data_t *)addr)) - IOReturn i_ret = EINVAL; - - /* Only needed for IODVD_READ_STRUCTURE */ - SCSITask *p_request; - SCSIServiceResponse response; - - IOMemoryDescriptor *p_mem; - - p_mem = IOMemoryDescriptor::withAddress( p_data->p_buffer, - p_data->i_size, - kIODirectionOutIn ); - - switch( cmd ) - { - case IODVD_READ_STRUCTURE: - - log( LOG_INFO, "DVD ioctl: IODVD_READ_STRUCTURE\n" ); - - i_ret = kIOReturnUnsupported; - response = kSCSIServiceResponse_SERVICE_DELIVERY_OR_TARGET_FAILURE; - -/* HACK! - Make GetSCSITask and friends in /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/IOKit/scsi-commands/IOSCSIPrimaryCommandsDevice.h public by moving public: from line 96 to line 79 (as root). It's only a compile time check - not a link time thing, so it should be ok. */ - p_request = p_scsi_mcd->GetSCSITask( ); - - if ( p_scsi_mcd->READ_DVD_STRUCTURE ( p_request, - p_mem, - p_data->i_lba, - 0,//?LAYER_NUMBER - p_data->i_keyformat, - p_mem->getLength(),//p_data->i_size ? - p_data->i_agid, - 0x00 //?CONTROL - ) == true ) - { - /* The command was successfully built, now send it */ - response = p_scsi_mcd->SendCommand( p_request ); - } - else - { -#if 0 - exit -1; - PANIC_NOW(( "IOSCSIMultimediaCommandsDevice:: " - "readDVDstruct malformed command" )); -#endif - } - - if( ( response == kSCSIServiceResponse_TASK_COMPLETE ) && - ( p_request->GetTaskStatus ( ) == kSCSITaskStatus_GOOD ) ) - { - i_ret = kIOReturnSuccess; - } - else - { - i_ret = kIOReturnError; - } - - p_scsi_mcd->ReleaseSCSITask( p_request ); - - } - - break; - - case IODVD_SEND_KEY: - - log( LOG_INFO, "DVD ioctl: send key to `%s', " - "buf %d, class %d, lba N/A, agid %d, format %d\n", - p_drive->getDeviceTypeName(), - (int)p_data->p_buffer, p_data->i_keyclass, - p_data->i_agid, p_data->i_keyformat ); - - i_ret = p_drive->sendKey( p_mem, (DVDKeyClass)p_data->i_keyclass, - p_data->i_agid, - (DVDKeyFormat)p_data->i_keyformat ); - - break; - - case IODVD_REPORT_KEY: - - log( LOG_INFO, "DVD ioctl: report key from `%s', " - "buf %d, class %d, lba %d, agid %d, format %d\n", - p_drive->getDeviceTypeName(), - (int)p_data->p_buffer, p_data->i_keyclass, p_data->i_lba, - p_data->i_agid, p_data->i_keyformat ); - - i_ret = p_drive->reportKey( p_mem, (DVDKeyClass)p_data->i_keyclass, - p_data->i_lba, p_data->i_agid, - (DVDKeyFormat)p_data->i_keyformat ); - - break; - - default: - - log( LOG_INFO, "DVD ioctl: unknown ioctl\n" ); - - i_ret = EINVAL; - - break; - } - - return i_ret; -#undef p_data -} - -/***************************************************************************** - * DVDReadWrite: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static int DVDReadWrite(dkr_t dkr, dkrtype_t dkrtype) -{ - IOMemoryDescriptor * buffer; - register UInt64 byteCount; - register UInt64 byteStart; - UInt64 mediaSize; - IOReturn status; - - byteCount = DKR_GET_BYTE_COUNT(dkr, dkrtype); - byteStart = DKR_GET_BYTE_START(dkr, dkrtype); - mediaSize = p_dvd->getSize(); - - if ( byteStart >= mediaSize ) - { - status = DKR_IS_READ(dkr,dkrtype) ? kIOReturnSuccess : kIOReturnIOError; goto dkreadwriteErr; - } - - if ( DKR_IS_RAW(dkr, dkrtype) ) - { - UInt64 mediaBlockSize = p_dvd->getPreferredBlockSize(); - - if ( (byteStart % mediaBlockSize) || (byteCount % mediaBlockSize) ) - { - status = kIOReturnNotAligned; - goto dkreadwriteErr; - } - } - - buffer = DKR_GET_BUFFER(dkr, dkrtype); - - if ( buffer == 0 ) - { - status = kIOReturnNoMemory; - goto dkreadwriteErr; - } - - if ( byteCount > mediaSize - byteStart ) - { - IOMemoryDescriptor * originalBuffer = buffer; - - buffer = IOMemoryDescriptor::withSubRange( originalBuffer, 0, - mediaSize - byteStart, originalBuffer->getDirection() ); - originalBuffer->release(); - if ( buffer == 0 ) - { - status = kIOReturnNoMemory; - goto dkreadwriteErr; - } - } - - if ( DKR_IS_ASYNCHRONOUS(dkr, dkrtype) ) - { - IOStorageCompletion completion; - - completion.target = dkr; - completion.action = DVDReadWriteCompletion; - completion.parameter = (void *) dkrtype; - - if ( DKR_IS_READ(dkr, dkrtype) ) - { - p_dvd->read( p_this, byteStart, buffer, completion ); - } - else - { - p_dvd->write( p_this, byteStart, buffer, completion ); - } - - status = kIOReturnSuccess; - } - else - { - if ( DKR_IS_READ(dkr, dkrtype) ) - { - status = p_dvd->IOStorage::read( p_this, byteStart, - buffer, &byteCount ); - } - else - { - status = p_dvd->IOStorage::write( p_this, byteStart, - buffer, &byteCount ); - } - - DVDReadWriteCompletion(dkr, (void *)dkrtype, status, byteCount); - } - - buffer->release(); - return p_this->errnoFromReturn(status); -dkreadwriteErr: - - DVDReadWriteCompletion(dkr, (void *)dkrtype, status, 0); - - return p_this->errnoFromReturn(status); -} - -/***************************************************************************** - * DVDReadWriteCompletion: borrowed from IOMediaBSDClient.cpp - *****************************************************************************/ -static void DVDReadWriteCompletion( void * target, - void * parameter, - IOReturn status, - UInt64 actualByteCount ) -{ - dkr_t dkr = (dkr_t) target; - dkrtype_t dkrtype = (dkrtype_t) (int) parameter; - dev_t dev = DKR_GET_DEV(dkr, dkrtype); - - if ( status != kIOReturnSuccess ) - { - IOLog( "DVD ioctl: %s (is the disc authenticated ?)\n", - p_this->stringFromReturn(status) ); - } - - DKR_SET_BYTE_COUNT(dkr, dkrtype, actualByteCount); - DKR_RUN_COMPLETION(dkr, dkrtype, status); -} - diff --git a/extras/MacOSX_dvdioctl/DVDioctl.h b/extras/MacOSX_dvdioctl/DVDioctl.h deleted file mode 100644 index e90ed7c0a8..0000000000 --- a/extras/MacOSX_dvdioctl/DVDioctl.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** - * 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 - * Eugenio Jarosiewicz - * - * 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) - diff --git a/extras/MacOSX_dvdioctl/DVDioctl.pbproj/project.pbxproj b/extras/MacOSX_dvdioctl/DVDioctl.pbproj/project.pbxproj deleted file mode 100644 index 3b737b47b4..0000000000 --- a/extras/MacOSX_dvdioctl/DVDioctl.pbproj/project.pbxproj +++ /dev/null @@ -1,274 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 32; - objects = { - 06AA1264FFB2107B11CA28AA = { - buildActionMask = 2147483647; - files = ( - ); - generatedFileNames = ( - ); - isa = PBXShellScriptBuildPhase; - name = "Shell Script"; - neededFileNames = ( - ); - shellPath = /bin/sh; - shellScript = "script=\"${SYSTEM_DEVELOPER_DIR}/ProjectBuilder Extras/Kernel Extension Support/KEXTPostprocess\";\nif [ -x \"$script\" ]; then\n . \"$script\"\nfi"; - }; - 06AA1265FFB2107B11CA28AA = { - buildRules = ( - ); - buildSettings = { - COPY_PHASE_STRIP = NO; - }; - isa = PBXBuildStyle; - name = Development; - }; - 06AA1266FFB2107B11CA28AA = { - buildRules = ( - ); - buildSettings = { - COPY_PHASE_STRIP = YES; - }; - isa = PBXBuildStyle; - name = Deployment; - }; - 06AA1267FFB2110C11CA28AA = { - buildActionMask = 2147483647; - files = ( - ); - generatedFileNames = ( - ); - isa = PBXShellScriptBuildPhase; - name = "Shell Script"; - neededFileNames = ( - ); - shellPath = /bin/sh; - shellScript = "script=\"${SYSTEM_DEVELOPER_DIR}/ProjectBuilder Extras/Kernel Extension Support/KEXTPreprocess\";\nif [ -x \"$script\" ]; then\n . \"$script\"\nfi"; - }; - 089C1669FE841209C02AAC07 = { - buildStyles = ( - 06AA1265FFB2107B11CA28AA, - 06AA1266FFB2107B11CA28AA, - ); - isa = PBXProject; - mainGroup = 089C166AFE841209C02AAC07; - projectDirPath = .; - targets = ( - 089C1673FE841209C02AAC07, - ); - }; - 089C166AFE841209C02AAC07 = { - children = ( - 247142CAFF3F8F9811CA285C, - 089C167CFE841241C02AAC07, - 19C28FB6FE9D52B211CA2CBB, - ); - isa = PBXGroup; - name = DVDioctl; - refType = 4; - }; - 089C1673FE841209C02AAC07 = { - buildPhases = ( - 06AA1267FFB2110C11CA28AA, - 089C1674FE841209C02AAC07, - 089C1675FE841209C02AAC07, - 089C1676FE841209C02AAC07, - 089C1677FE841209C02AAC07, - 089C1679FE841209C02AAC07, - 06AA1264FFB2107B11CA28AA, - ); - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ""; - HEADER_SEARCH_PATHS = ""; - INSTALL_PATH = "$(SYSTEM_LIBRARY_DIR)/Extensions"; - KERNEL_MODULE = YES; - LIBRARY_SEARCH_PATHS = ""; - MODULE_IOKIT = YES; - MODULE_NAME = DVDioctl; - MODULE_VERSION = 1.0.0d1; - OPTIMIZATION_CFLAGS = ""; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = DVDioctl; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; - WRAPPER_EXTENSION = kext; - }; - conditionalBuildSettings = { - }; - dependencies = ( - ); - isa = PBXBundleTarget; - name = DVDioctl; - productInstallPath = "$(SYSTEM_LIBRARY_DIR)/Extensions"; - productName = DVDioctl; - productReference = 0B81C263FFB7832611CA28AA; - productSettingsXML = " - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - DVDioctl - CFBundleIconFile - - CFBundleIdentifier - DVDioctl - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - KEXT - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0.0d1 - IOKitPersonalities - - DVDioctl - - CFBundleIdentifier - DVDioctl - IOClass - DVDioctl - IOKitDebug - 65535 - IOMatchCategory - DVDioctl - IOProviderClass - IOResources - IOResourceMatch - IOKit - - - OSBundleLibraries - - - -"; - shouldUseHeadermap = 1; - }; - 089C1674FE841209C02AAC07 = { - buildActionMask = 2147483647; - files = ( - 1A224C40FF42367911CA2CB7, - ); - isa = PBXHeadersBuildPhase; - name = Headers; - }; - 089C1675FE841209C02AAC07 = { - buildActionMask = 2147483647; - files = ( - 089C1680FE841241C02AAC07, - ); - isa = PBXResourcesBuildPhase; - name = "Bundle Resources"; - }; - 089C1676FE841209C02AAC07 = { - buildActionMask = 2147483647; - files = ( - 1A224C41FF42367911CA2CB7, - ); - isa = PBXSourcesBuildPhase; - name = Sources; - }; - 089C1677FE841209C02AAC07 = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXFrameworksBuildPhase; - name = "Frameworks & Libraries"; - }; - 089C1679FE841209C02AAC07 = { - buildActionMask = 2147483647; - files = ( - ); - isa = PBXRezBuildPhase; - name = "ResourceManager Resources"; - }; - 089C167CFE841241C02AAC07 = { - children = ( - 089C167DFE841241C02AAC07, - ); - isa = PBXGroup; - name = Resources; - refType = 4; - }; - 089C167DFE841241C02AAC07 = { - children = ( - 089C167EFE841241C02AAC07, - ); - isa = PBXVariantGroup; - name = InfoPlist.strings; - refType = 4; - }; - 089C167EFE841241C02AAC07 = { - fileEncoding = 10; - isa = PBXFileReference; - name = English; - path = English.lproj/InfoPlist.strings; - refType = 4; - }; - 089C1680FE841241C02AAC07 = { - fileRef = 089C167DFE841241C02AAC07; - isa = PBXBuildFile; - settings = { - }; - }; - 0B81C263FFB7832611CA28AA = { - isa = PBXBundleReference; - path = DVDioctl.kext; - refType = 3; - }; - 19C28FB6FE9D52B211CA2CBB = { - children = ( - 0B81C263FFB7832611CA28AA, - ); - isa = PBXGroup; - name = Products; - refType = 4; - }; - 1A224C3EFF42367911CA2CB7 = { - isa = PBXFileReference; - path = DVDioctl.h; - refType = 4; - }; - 1A224C3FFF42367911CA2CB7 = { - isa = PBXFileReference; - path = DVDioctl.cpp; - refType = 4; - }; - 1A224C40FF42367911CA2CB7 = { - fileRef = 1A224C3EFF42367911CA2CB7; - isa = PBXBuildFile; - settings = { - }; - }; - 1A224C41FF42367911CA2CB7 = { - fileRef = 1A224C3FFF42367911CA2CB7; - isa = PBXBuildFile; - settings = { - ATTRIBUTES = ( - ); - }; - }; - 247142CAFF3F8F9811CA285C = { - children = ( - 1A224C3EFF42367911CA2CB7, - 1A224C3FFF42367911CA2CB7, - ); - isa = PBXGroup; - name = Source; - path = ""; - refType = 4; - }; - }; - rootObject = 089C1669FE841209C02AAC07; -} diff --git a/extras/MacOSX_dvdioctl/English.lproj/InfoPlist.strings b/extras/MacOSX_dvdioctl/English.lproj/InfoPlist.strings deleted file mode 100644 index 42ccc052d72d2a103b0fda1ffe4d10fa34e16a88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmbu5%L>9U5Jm6WuLv%S_}Ypa1s|YYSa4r$eW2CSRz*KvJ&7Qw-APC%o!pr@x%Y<} z@?r|Ypa`LMdZ%JOgWjO4n#v-@g4KG;#^ni^tlSMJJeUF^5|J%^)*mWC)5$T zSU&v|qEVM!8tm& * @@ -787,7 +787,7 @@ static char * DVDParse( input_thread_t * p_input ) /* check block device */ if( stat( psz_device, &stat_info ) == -1 ) { - intf_ErrMsg( "input error: cannot stat() device `%s' (%s)", + intf_ErrMsg( "dvd error: cannot stat() device `%s' (%s)", psz_device, strerror(errno)); return NULL; } diff --git a/plugins/dvd/dvd_demux.c b/plugins/dvd/dvd_demux.c index e57e12ae04..674906e4bf 100644 --- a/plugins/dvd/dvd_demux.c +++ b/plugins/dvd/dvd_demux.c @@ -1,7 +1,7 @@ /* dvd_demux.c: DVD demux functions. ***************************************************************************** * Copyright (C) 1998-2001 VideoLAN - * $Id: dvd_demux.c,v 1.3 2002/03/09 16:48:33 stef Exp $ + * $Id: dvd_demux.c,v 1.4 2002/03/18 19:14:52 sam Exp $ * * Author: Stéphane Borel * @@ -88,6 +88,11 @@ void _M( demux_getfunctions)( function_list_t * p_function_list ) *****************************************************************************/ static int DVDInit( input_thread_t * p_input ) { + if( p_input->stream.i_method != INPUT_METHOD_DVD ) + { + return -1; + } + vlc_mutex_lock( &p_input->stream.stream_lock ); DVDLaunchDecoders( p_input ); diff --git a/plugins/dvdread/input_dvdread.c b/plugins/dvdread/input_dvdread.c index c4d4b8cf2f..883cdce64c 100644 --- a/plugins/dvdread/input_dvdread.c +++ b/plugins/dvdread/input_dvdread.c @@ -6,7 +6,7 @@ * It depends on: libdvdread for ifo files and block reading. ***************************************************************************** * Copyright (C) 2001 VideoLAN - * $Id: input_dvdread.c,v 1.33 2002/03/12 18:37:46 stef Exp $ + * $Id: input_dvdread.c,v 1.34 2002/03/18 19:14:52 sam Exp $ * * Author: Stéphane Borel * @@ -131,6 +131,11 @@ void _M( demux_getfunctions )( function_list_t * p_function_list ) *****************************************************************************/ static int DvdReadInit( input_thread_t * p_input ) { + if( p_input->stream.i_method != INPUT_METHOD_DVD ) + { + return -1; + } + vlc_mutex_lock( &p_input->stream.stream_lock ); DvdReadLauchDecoders( p_input ); diff --git a/plugins/fx/scope.c b/plugins/fx/scope.c index 2b1613d978..81ddb1e08a 100644 --- a/plugins/fx/scope.c +++ b/plugins/fx/scope.c @@ -2,7 +2,7 @@ * scope.c : Scope effect module ***************************************************************************** * Copyright (C) 2002 VideoLAN - * $Id: scope.c,v 1.4 2002/03/02 03:51:23 sam Exp $ + * $Id: scope.c,v 1.5 2002/03/18 19:14:52 sam Exp $ * * Authors: Samuel Hocevar * @@ -106,6 +106,8 @@ static void aout_getfunctions( function_list_t * p_function_list ) *****************************************************************************/ static int aout_Open( aout_thread_t *p_aout ) { + char *psz_method; + /* Allocate structure */ p_aout->p_sys = malloc( sizeof( aout_sys_t ) ); if( p_aout->p_sys == NULL ) @@ -114,11 +116,32 @@ static int aout_Open( aout_thread_t *p_aout ) return -1; } + psz_method = config_GetPszVariable( "aout" ); + if( psz_method ) + { + if( !*psz_method ) + { + free( psz_method ); + return -1; + } + } + else + { + return -1; + } + /* Open video output */ p_aout->p_sys->p_vout = vout_CreateThread( NULL, SCOPE_WIDTH, SCOPE_HEIGHT, FOURCC_I420, SCOPE_ASPECT ); + if( p_aout->p_sys->p_vout == NULL ) + { + intf_ErrMsg( "aout scope error: no suitable vout module" ); + free( p_aout->p_sys ); + return -1; + } + /* Open audio output */ p_aout->p_sys->aout.i_format = p_aout->i_format; p_aout->p_sys->aout.i_rate = p_aout->i_rate; @@ -128,7 +151,7 @@ static int aout_Open( aout_thread_t *p_aout ) (void *)&p_aout->p_sys->aout ); if( p_aout->p_sys->aout.p_module == NULL ) { - intf_ErrMsg( "aout error: no suitable aout module" ); + intf_ErrMsg( "aout scope error: no suitable aout module" ); vout_DestroyThread( p_aout->p_sys->p_vout, NULL ); free( p_aout->p_sys ); return -1; diff --git a/plugins/mpeg_system/mpeg_es.c b/plugins/mpeg_system/mpeg_es.c index 861266f286..c64254da81 100644 --- a/plugins/mpeg_system/mpeg_es.c +++ b/plugins/mpeg_system/mpeg_es.c @@ -2,7 +2,7 @@ * mpeg_es.c : Elementary Stream input module for vlc ***************************************************************************** * Copyright (C) 2001 VideoLAN - * $Id: mpeg_es.c,v 1.5 2002/03/15 17:17:35 sam Exp $ + * $Id: mpeg_es.c,v 1.6 2002/03/18 19:14:52 sam Exp $ * * Authors: Christophe Massiot * @@ -113,10 +113,10 @@ static int ESInit( input_thread_t * p_input ) if( *p_peek || *(p_peek + 1) || *(p_peek + 2) != 1 ) { - if( *p_input->psz_demux && strncmp( p_input->psz_demux, "es", 3 ) ) + if( *p_input->psz_demux && strncmp( !p_input->psz_demux, "es", 3 ) ) { /* User forced */ - intf_ErrMsg( "input error: this doesn't seem like an MPEG stream, continuing" ); + intf_ErrMsg( "input error: this doesn't look like an MPEG ES stream, continuing" ); } else { @@ -126,7 +126,7 @@ static int ESInit( input_thread_t * p_input ) } else if( *(p_peek + 3) > 0xb9 ) { - if( *p_input->psz_demux && strncmp( p_input->psz_demux, "es", 3 ) ) + if( *p_input->psz_demux && strncmp( !p_input->psz_demux, "es", 3 ) ) { /* User forced */ intf_ErrMsg( "input error: this seems to be a system stream (PS plug-in ?), but continuing" ); diff --git a/plugins/mpeg_system/mpeg_ps.c b/plugins/mpeg_system/mpeg_ps.c index 37fa5f0152..b9567719ae 100644 --- a/plugins/mpeg_system/mpeg_ps.c +++ b/plugins/mpeg_system/mpeg_ps.c @@ -2,7 +2,7 @@ * mpeg_ps.c : Program Stream input module for vlc ***************************************************************************** * Copyright (C) 2000-2001 VideoLAN - * $Id: mpeg_ps.c,v 1.7 2002/03/15 17:17:35 sam Exp $ + * $Id: mpeg_ps.c,v 1.8 2002/03/18 19:14:52 sam Exp $ * * Authors: Christophe Massiot * @@ -107,10 +107,10 @@ static int PSInit( input_thread_t * p_input ) if( *p_peek || *(p_peek + 1) || *(p_peek + 2) != 1 ) { - if( *p_input->psz_demux && strncmp( p_input->psz_demux, "ps", 3 ) ) + if( *p_input->psz_demux && !strncmp( p_input->psz_demux, "ps", 3 ) ) { /* User forced */ - intf_ErrMsg( "input error: this doesn't seem like an MPEG stream, continuing" ); + intf_ErrMsg( "input error: this doesn't look like an MPEG PS stream, continuing" ); } else { @@ -120,7 +120,7 @@ static int PSInit( input_thread_t * p_input ) } else if( *(p_peek + 3) <= 0xb9 ) { - if( *p_input->psz_demux && strncmp( p_input->psz_demux, "ps", 3 ) ) + if( *p_input->psz_demux && !strncmp( p_input->psz_demux, "ps", 3 ) ) { /* User forced */ intf_ErrMsg( "input error: this seems to be an elementary stream (ES plug-in ?),"); diff --git a/plugins/mpeg_system/mpeg_ts.c b/plugins/mpeg_system/mpeg_ts.c index 7d12c64026..f189e9a873 100644 --- a/plugins/mpeg_system/mpeg_ts.c +++ b/plugins/mpeg_system/mpeg_ts.c @@ -2,7 +2,7 @@ * mpeg_ts.c : Transport Stream input module for vlc ***************************************************************************** * Copyright (C) 2000-2001 VideoLAN - * $Id: mpeg_ts.c,v 1.6 2002/03/15 17:17:35 sam Exp $ + * $Id: mpeg_ts.c,v 1.7 2002/03/18 19:14:52 sam Exp $ * * Authors: Henri Fallon * @@ -107,10 +107,10 @@ static int TSInit( input_thread_t * p_input ) if( *p_peek != TS_SYNC_CODE ) { - if( *p_input->psz_demux && strncmp( p_input->psz_demux, "ts", 3 ) ) + if( *p_input->psz_demux && !strncmp( p_input->psz_demux, "ts", 3 ) ) { /* User forced */ - intf_ErrMsg( "input error: this doesn't seem like a TS stream, continuing" ); + intf_ErrMsg( "input error: this doesn't look like a TS stream, continuing" ); } else { diff --git a/plugins/sdl/vout_sdl.c b/plugins/sdl/vout_sdl.c index c898c795bc..8a1e4e3474 100644 --- a/plugins/sdl/vout_sdl.c +++ b/plugins/sdl/vout_sdl.c @@ -2,7 +2,7 @@ * vout_sdl.c: SDL video output display method ***************************************************************************** * Copyright (C) 1998-2001 VideoLAN - * $Id: vout_sdl.c,v 1.84 2002/03/17 17:00:38 sam Exp $ + * $Id: vout_sdl.c,v 1.85 2002/03/18 19:14:52 sam Exp $ * * Authors: Samuel Hocevar * Pierre Baillet @@ -154,6 +154,8 @@ void _M( vout_getfunctions )( function_list_t * p_function_list ) *****************************************************************************/ static int vout_Create( vout_thread_t *p_vout ) { + char *psz_method; + if( SDL_WasInit( SDL_INIT_VIDEO ) != 0 ) { return( 1 ); @@ -167,6 +169,20 @@ static int vout_Create( vout_thread_t *p_vout ) return( 1 ); } + psz_method = config_GetPszVariable( "vout" ); + if( psz_method ) + { + while( *psz_method && *psz_method != ':' ) + { + psz_method++; + } + + if( *psz_method ) + { + setenv( "SDL_VIDEODRIVER", psz_method + 1, 1 ); + } + } + /* Initialize library */ if( SDL_Init( SDL_INIT_VIDEO #ifndef WIN32 diff --git a/plugins/vcd/input_vcd.c b/plugins/vcd/input_vcd.c index 6d880e7c79..fa850ba7c5 100644 --- a/plugins/vcd/input_vcd.c +++ b/plugins/vcd/input_vcd.c @@ -454,6 +454,11 @@ static int VCDInit( input_thread_t * p_input ) { es_descriptor_t * p_es; + if( p_input->stream.i_method != INPUT_METHOD_VCD ) + { + return -1; + } + vlc_mutex_lock( &p_input->stream.stream_lock ); /* Set program information. */ -- 2.39.2