annotate stream/url.h @ 24589:9118be6575da

demux_audio.c: Fix timestamp handling The code calculated the pts values of audio packets by adding the length of the current packet to the pts of the previous one. The length of the previous packet should be added instead. This broke WAV timestamps near the end of the stream where a short packet occurs. Change the code to store the pts of the next packet instead of the last one. This fixes the WAV timestamps and allows some simplifications. MP3 timestamps are not affected as packets are always treated as constant decoded length, and FLAC timestamps still have worse problems (FLAC is treated as as if it was constant bitrate even though it isn't). Also store the timestamps as double instead of float.
author uau
date Mon, 24 Sep 2007 21:49:56 +0000
parents 3f0d00abc073
children 4129c8cfa742
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
902
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
1 /*
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
2 * URL Helper
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
3 * by Bertrand Baudet <bertrand_baudet@yahoo.com>
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
4 * (C) 2001, MPlayer team.
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
5 */
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
6
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 20784
diff changeset
7 #ifndef URL_H
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 20784
diff changeset
8 #define URL_H
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
9
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 20784
diff changeset
10 //#define URL_DEBUG
4119
639b3b47b138 Added a debug function to print the struct's variables.
bertrand
parents: 3496
diff changeset
11
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
12 typedef struct {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
13 char *url;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
14 char *protocol;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
15 char *hostname;
840
9141234715a2 Added initialisation of URL pointers.
bertrand
parents: 833
diff changeset
16 char *file;
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
17 unsigned int port;
902
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
18 char *username;
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
19 char *password;
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
20 } URL_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
21
20784
720206eef78b Support URL redirections that do not specify full URL.
reimar
parents: 19271
diff changeset
22 URL_t *url_redirect(URL_t **url, const char *redir);
9690
a9b7b6055563 Added support for IPv6 numeric url like: http://[3ffe:400:100::1]:80/file
bertrand
parents: 7279
diff changeset
23 URL_t* url_new(const char* url);
902
ede5785faa53 Bugs fix, improvements...
bertrand
parents: 840
diff changeset
24 void url_free(URL_t* url);
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
25
9690
a9b7b6055563 Added support for IPv6 numeric url like: http://[3ffe:400:100::1]:80/file
bertrand
parents: 7279
diff changeset
26 void url_unescape_string(char *outbuf, const char *inbuf);
a9b7b6055563 Added support for IPv6 numeric url like: http://[3ffe:400:100::1]:80/file
bertrand
parents: 7279
diff changeset
27 void url_escape_string(char *outbuf, const char *inbuf);
3496
5c8a533dfa09 Added 2 functions to escape/unescape the url as described in the RFC 2396.
bertrand
parents: 3040
diff changeset
28
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 20784
diff changeset
29 #ifdef URL_DEBUG
9690
a9b7b6055563 Added support for IPv6 numeric url like: http://[3ffe:400:100::1]:80/file
bertrand
parents: 7279
diff changeset
30 void url_debug(const URL_t* url);
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 20784
diff changeset
31 #endif /* URL_DEBUG */
4119
639b3b47b138 Added a debug function to print the struct's variables.
bertrand
parents: 3496
diff changeset
32
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 20784
diff changeset
33 #endif /* URL_H */