annotate libdvdcss/css.h @ 29888:5c39c41f38e8

Deobfuscate the special hack to disable cache for live555. Cache can not be used for it, since it does not provide any data stream, the data is provided to the demuxer "behind MPlayer's back".
author reimar
date Tue, 17 Nov 2009 19:23:55 +0000
parents afa2cc0166be
children 9e9595c779cf
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 *
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
25 * You should have received a copy of the GNU General Public License
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
26 * along with this program; if not, write to the Free Software
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
27 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
28 *****************************************************************************/
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
29 #define KEY_SIZE 5
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
30
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
31 typedef uint8_t dvd_key_t[KEY_SIZE];
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
32
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
33 typedef struct dvd_title_s
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
34 {
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
35 int i_startlb;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
36 dvd_key_t p_key;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
37 struct dvd_title_s *p_next;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
38 } dvd_title_t;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
39
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
40 typedef struct css_s
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
41 {
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
42 int i_agid; /* Current Authenication Grant ID. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
43 dvd_key_t p_bus_key; /* Current session key. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
44 dvd_key_t p_disc_key; /* This DVD disc's key. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
45 dvd_key_t p_title_key; /* Current title key. */
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
46 } css_t;
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
47
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
48 /*****************************************************************************
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
49 * Prototypes in css.c
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
50 *****************************************************************************/
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
51 int _dvdcss_test ( dvdcss_t );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
52 int _dvdcss_title ( dvdcss_t, int );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
53 int _dvdcss_disckey ( dvdcss_t );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
54 int _dvdcss_titlekey ( dvdcss_t, int , dvd_key_t );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
55 int _dvdcss_unscramble ( uint8_t *, uint8_t * );
e68f255d7d64 Move libdvdcss into its own subdirectory.
diego
parents:
diff changeset
56