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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18265
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
1
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
2 /// \defgroup PlaytreeParser Playtree parser
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
3 /// \ingroup Playtree
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
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
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
7 ///@{
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
8
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
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
4b728967bd77 Playtree parser switch to a by line mode.
albeu
parents: 4308
diff changeset
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
4b728967bd77 Playtree parser switch to a by line mode.
albeu
parents: 4308
diff changeset
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
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
23 /// Create a new parser.
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
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
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
26 * this is used to track the inclusion depth.
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
27 * \return The new parser.
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
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
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
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
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
36 /// Build a playtree from the playlist opened with the parser.
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
37 /** \param p The parser.
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
38 * \param forced If non-zero the playlist file was explicitly
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
39 * given by the user, allow falling back on
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
40 * one filename per line playlist.
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
41 * \return A new playtree or NULL on error.
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
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
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
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
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
51
1a14fde7680d Doxygen Attack! - Chapter 3
albeu
parents: 10211
diff changeset
52 ///@}