annotate libdvdcss/css.h @ 33263:5f527a9a9521

Add an exit function. This function will allow performing clean-up operations. (MPlayer calls guiDone() before exiting, but only if the GUI has been initialized, i.e. if guiInit() has been called successfully. Any exit_player()/exit_player_with_rc() after GUI's cfg_read() until guiInit(), or any exit_player() during guiInit() itself will end the GUI without calling guiDone(). This exit function will at least handle abortions during guiInit() itself. It will be called twice in case of an guiExit() after GUI initialization - first directly, next by guiDone() via MPlayer's exit_player_with_rc().)
author ib
date Tue, 03 May 2011 12:19:22 +0000
parents cda66f57f7a5
children 691431d2289e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20613
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
1 /*****************************************************************************
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
2 * css.h: Structures for DVD authentication and unscrambling
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
3 *****************************************************************************
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
4 * Copyright (C) 1999-2001 VideoLAN
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
5 * $Id$
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
6 *
27442
afa2cc0166be Sync libdvdcss with upstream version r212.
diego
parents: 20613
diff changeset
7 * Author: Stéphane Borel <stef@via.ecp.fr>
20613
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
8 *
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
9 * based on:
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
10 * - css-auth by Derek Fawcus <derek@spider.com>
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
11 * - DVD CSS ioctls example program by Andrew T. Veliath <andrewtv@usa.net>
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
12 * - DeCSSPlus by Ethan Hawke
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
13 * - The Divide and conquer attack by Frank A. Stevenson <frank@funcom.com>
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
14 *
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
15 * This program is free software; you can redistribute it and/or modify
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
16 * it under the terms of the GNU General Public License as published by
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
17 * the Free Software Foundation; either version 2 of the License, or
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
18 * (at your option) any later version.
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
19 *
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
20 * This program is distributed in the hope that it will be useful,
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
23 * GNU General Public License for more details.
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
24 *
31098
9e9595c779cf libdvdcss: cosmetics: Fix FSF address and program name in license headers.
diego
parents: 27442
diff changeset
25 * You should have received a copy of the GNU General Public License along
9e9595c779cf libdvdcss: cosmetics: Fix FSF address and program name in license headers.
diego
parents: 27442
diff changeset
26 * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
9e9595c779cf libdvdcss: cosmetics: Fix FSF address and program name in license headers.
diego
parents: 27442
diff changeset
27 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20613
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
28 *****************************************************************************/
32265
cda66f57f7a5 Sync some minor changes from upstream libdvdcss, up to r237.
diego
parents: 31806
diff changeset
29
cda66f57f7a5 Sync some minor changes from upstream libdvdcss, up to r237.
diego
parents: 31806
diff changeset
30 #ifndef DVDCSS_CSS_H
cda66f57f7a5 Sync some minor changes from upstream libdvdcss, up to r237.
diego
parents: 31806
diff changeset
31 #define DVDCSS_CSS_H
cda66f57f7a5 Sync some minor changes from upstream libdvdcss, up to r237.
diego
parents: 31806
diff changeset
32
cda66f57f7a5 Sync some minor changes from upstream libdvdcss, up to r237.
diego
parents: 31806
diff changeset
33 #include "dvdcss/dvdcss.h"
cda66f57f7a5 Sync some minor changes from upstream libdvdcss, up to r237.
diego
parents: 31806
diff changeset
34
20613
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
35 #define KEY_SIZE 5
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
36
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
37 typedef uint8_t dvd_key_t[KEY_SIZE];
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
38
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
39 typedef struct dvd_title_s
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
40 {
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
41 int i_startlb;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
42 dvd_key_t p_key;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
43 struct dvd_title_s *p_next;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
44 } dvd_title_t;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
45
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
46 typedef struct css_s
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
47 {
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
48 int i_agid; /* Current Authenication Grant ID. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
49 dvd_key_t p_bus_key; /* Current session key. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
50 dvd_key_t p_disc_key; /* This DVD disc's key. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
51 dvd_key_t p_title_key; /* Current title key. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
52 } css_t;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
53
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
54 /*****************************************************************************
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
55 * Prototypes in css.c
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
56 *****************************************************************************/
31806
383f17e1ef2f Handle failing ioctls more gracefully for dvdcss.
reimar
parents: 31098
diff changeset
57 void _dvdcss_test ( dvdcss_t );
20613
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
58 int _dvdcss_title ( dvdcss_t, int );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
59 int _dvdcss_disckey ( dvdcss_t );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
60 int _dvdcss_titlekey ( dvdcss_t, int , dvd_key_t );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
61 int _dvdcss_unscramble ( uint8_t *, uint8_t * );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
62
32265
cda66f57f7a5 Sync some minor changes from upstream libdvdcss, up to r237.
diego
parents: 31806
diff changeset
63 #endif /* DVDCSS_CSS_H */