]> git.sesse.net Git - vlc/blob - plugins/dvd/input_dvd.h
This commit is a bit early, but it'll save Stef, Henri and me much
[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 #define DVD_LB_SIZE 2048
27
28 /*****************************************************************************
29  * thread_dvd_data_t: extension of input_thread_t for DVD specificity
30  *****************************************************************************/
31 typedef struct thread_dvd_data_s
32 {
33     int                     i_fd;               // File descriptor of device
34     boolean_t               b_encrypted;        // CSS encryption
35     int                     i_read_once;        // NB of bytes read by DVDRead
36     int                     i_title;            // Current Title
37     /* Scrambling Information */
38 #if defined( HAVE_SYS_DVDIO_H ) || defined( LINUX_DVD )
39     struct css_s            css;
40 #endif
41     /* Structure that contains all information of the DVD */
42     struct ifo_s            ifo;
43 } thread_dvd_data_t;
44
45 /*****************************************************************************
46  * Prototypes in dvd_ifo.c
47  *****************************************************************************/
48 struct ifo_s    IfoInit( int );
49 void            IfoRead( struct ifo_s * );
50 void            IfoEnd( ifo_t * );
51
52 /*****************************************************************************
53  * Prototypes in dvd_css.c
54  *****************************************************************************/
55 #if defined( HAVE_SYS_DVDIO_H ) || defined( LINUX_DVD )
56 int             CSSTest     ( int );
57 struct css_s    CSSInit     ( int );
58 int             CSSGetKeys  ( struct css_s * );
59 int             CSSDescrambleSector( u8 * , u8 * );
60
61 #endif