Mercurial > mplayer.hg
annotate playtreeparser.h @ 23572:a00685941686
demux_mkv very long seek fix
The seek code searching for the closest position in the index used
"int64_t min_diff=0xFFFFFFFL" as the initial "further from the goal
than any real alternative" value. The unit is milliseconds so seeks more
than about 75 hours past the end of the file would fail to recognize the
last index position as the best match. This was triggered in practice by
chapter seek code which apparently uses a seek of 1000000000 seconds
forward to mean "seek to the end". The practical effect was that trying
to seek to the next chapter in a file without chapters made MPlayer
block until it finished reading the file from the current position to
the end.
Fixed by increasing the initial value from FFFFFFF to FFFFFFFFFFFFFFF.
author | uau |
---|---|
date | Wed, 20 Jun 2007 18:19:03 +0000 |
parents | b3be7df634b0 |
children | 3f0d00abc073 |
rev | line source |
---|---|
18265 | 1 |
2 /// \defgroup PlaytreeParser Playtree parser | |
3 /// \ingroup Playtree | |
4 /// | |
18316
b3be7df634b0
spelling/grammar/wording fixes in doxygen and non-doxygen comments
diego
parents:
18265
diff
changeset
|
5 /// The playtree parser allows to read various playlist formats. It reads from |
b3be7df634b0
spelling/grammar/wording fixes in doxygen and non-doxygen comments
diego
parents:
18265
diff
changeset
|
6 /// a stream allowing to handle playlists from local files and the network. |
18265 | 7 ///@{ |
8 | |
9 /// \file | |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
10 |
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
11 #ifndef __PLAYTREEPARSER_H |
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
12 #define __PLAYTREEPARSER_H |
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
13 |
8164
487cfc28525d
New config system + cleanup of header inter dependency
albeu
parents:
4782
diff
changeset
|
14 struct stream_st; |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
15 |
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
16 typedef struct play_tree_parser { |
8164
487cfc28525d
New config system + cleanup of header inter dependency
albeu
parents:
4782
diff
changeset
|
17 struct stream_st* stream; |
4782 | 18 char *buffer,*iter,*line; |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
19 int buffer_size , buffer_end; |
4782 | 20 int deep,keep; |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
21 } play_tree_parser_t; |
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
22 |
18265 | 23 /// Create a new parser. |
24 /** \param stream The stream to read from. | |
18316
b3be7df634b0
spelling/grammar/wording fixes in doxygen and non-doxygen comments
diego
parents:
18265
diff
changeset
|
25 * \param deep Parser depth. Some formats allow including other files, |
18265 | 26 * this is used to track the inclusion depth. |
27 * \return The new parser. | |
28 */ | |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
29 play_tree_parser_t* |
8164
487cfc28525d
New config system + cleanup of header inter dependency
albeu
parents:
4782
diff
changeset
|
30 play_tree_parser_new(struct stream_st* stream,int deep); |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
31 |
18265 | 32 /// Destroy a parser. |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
33 void |
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
34 play_tree_parser_free(play_tree_parser_t* p); |
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
35 |
18265 | 36 /// Build a playtree from the playlist opened with the parser. |
37 /** \param p The parser. | |
38 * \param forced If non-zero the playlist file was explicitly | |
39 * given by the user, allow falling back on | |
40 * one filename per line playlist. | |
41 * \return A new playtree or NULL on error. | |
42 */ | |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
43 play_tree_t* |
8925
5c15777f1c07
this patch adds an fallback to playlist (any but the plaintext-list format)
arpi
parents:
8164
diff
changeset
|
44 play_tree_parser_get_play_tree(play_tree_parser_t* p, int forced); |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
45 |
18265 | 46 /// Wrapper for play_tree_add_basepath (add base path from file). |
10211
4bc481804519
warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
alex
parents:
8925
diff
changeset
|
47 void |
4bc481804519
warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
alex
parents:
8925
diff
changeset
|
48 play_tree_add_bpf(play_tree_t* pt, char* filename); |
4bc481804519
warning fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
alex
parents:
8925
diff
changeset
|
49 |
4308
d752f99fd535
Objectization of the play_tree_parser for more flexiblity
albeu
parents:
diff
changeset
|
50 #endif |
18265 | 51 |
52 ///@} |