annotate read_cache.h @ 383:275f15342ea3 src

after an AUDIO change event assign the logical stream to the returned event, that for some reason was being ignored. The physical stream is still wrong
author nicodvb
date Sun, 29 Jun 2008 12:58:08 +0000
parents 52877d182e96
children 90ca650854e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
1 /*
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
2 * Copyright (C) 2000 Rich Wareham <richwareham@users.sourceforge.net>
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
3 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
4 * This file is part of libdvdnav, a DVD navigation library.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
5 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
6 * libdvdnav is free software; you can redistribute it and/or modify
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
9 * (at your option) any later version.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
10 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
11 * libdvdnav is distributed in the hope that it will be useful,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
14 * GNU General Public License for more details.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
15 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
19 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
20 * $Id$
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
21 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
22 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
23
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
24 #ifndef __DVDNAV_READ_CACHE_H
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
25 #define __DVDNAV_READ_CACHE_H
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
26
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
27 /* Opaque cache type -- defined in dvdnav_internal.h */
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
28 /* typedef struct read_cache_s read_cache_t; */
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
29
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
30 /* EXPERIMENTAL: Setting the following to 1 will use an experimental multi-threaded
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
31 * read-ahead cache.
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
32 */
60
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
33 #define _MULTITHREAD_ 0
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
35 /* Constructor/destructors */
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
36 read_cache_t *dvdnav_read_cache_new(dvdnav_t* dvd_self);
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
37 void dvdnav_read_cache_free(read_cache_t* self);
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
38
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
39 /* This function MUST be called whenever self->file changes. */
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
40 void dvdnav_read_cache_clear(read_cache_t *self);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
41 /* This function is called just after reading the NAV packet. */
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
42 void dvdnav_pre_cache_blocks(read_cache_t *self, int sector, size_t block_count);
60
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
43 /* This function will do the cache read.
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
44 * The buffer handed in must be malloced to take one dvd block.
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
45 * On a cache hit, a different buffer will be returned though.
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
46 * Those buffers must _never_ be freed. */
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
47 int dvdnav_read_cache_block(read_cache_t *self, int sector, size_t block_count, uint8_t **buf);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
48
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
49 #endif /* __DVDNAV_READ_CACHE_H */