]> git.sesse.net Git - vlc/blob - plugins/dvd/input_dvd.h
* Ported Glide and MGA plugins to the new module API. MGA never worked,
[vlc] / plugins / dvd / input_dvd.h
1 /*****************************************************************************
2  * input_dvd.h: thread structure of the DVD plugin
3  *****************************************************************************
4  * Copyright (C) 1999-2001 VideoLAN
5  *
6  * Author: Stéphane Borel <stef@via.ecp.fr>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
21  *****************************************************************************/
22
23 /*****************************************************************************
24  * Preamble
25  *****************************************************************************/
26 /* Logical block size for DVD-VIDEO */
27 #define DVD_LB_SIZE 2048
28
29 /*****************************************************************************
30  * thread_dvd_data_t: extension of input_thread_t for DVD specificity.
31  *****************************************************************************/
32 typedef struct thread_dvd_data_s
33 {
34     int                     i_fd;               // File descriptor of device
35     boolean_t               b_encrypted;        // CSS encryption
36     int                     i_read_once;        // NB of bytes read by DVDRead
37
38     int                     i_start_byte;
39     int                     i_start_cell;
40     int                     i_end_cell;
41
42     /* Scrambling Information */
43 #if defined( HAVE_SYS_DVDIO_H ) || defined( LINUX_DVD ) || defined( SYS_BEOS )
44     struct css_s            css;
45 #endif
46
47     /* Structure that contains all information of the DVD */
48     struct ifo_s            ifo;
49
50 } thread_dvd_data_t;
51
52 /*****************************************************************************
53  * Prototypes in dvd_ifo.c
54  *****************************************************************************/
55 struct ifo_s    IfoInit( int );
56 int             IfoReadVTS( struct ifo_s * );
57 void            IfoRead( struct ifo_s * );
58 void            IfoEnd( ifo_t * );
59
60 /*****************************************************************************
61  * Prototypes in dvd_css.c
62  *****************************************************************************/
63 #if defined( HAVE_SYS_DVDIO_H ) || defined( LINUX_DVD ) || defined( SYS_BEOS )
64 int             CSSTest     ( int );
65 struct css_s    CSSInit     ( int );
66 int             CSSGetKey   ( struct css_s * );
67 int             CSSDescrambleSector( u8 * , u8 * );
68
69 #endif