summaryrefslogtreecommitdiffstats
path: root/stream/stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'stream/stream.h')
-rw-r--r--stream/stream.h30
1 files changed, 26 insertions, 4 deletions
diff --git a/stream/stream.h b/stream/stream.h
index 2dd65051c8..c48dd2a8b2 100644
--- a/stream/stream.h
+++ b/stream/stream.h
@@ -21,6 +21,7 @@
#include "config.h"
#include "mp_msg.h"
+#include "url.h"
#include <string.h>
#include <inttypes.h>
#include <sys/types.h>
@@ -89,9 +90,27 @@
#define STREAM_CTRL_SET_ANGLE 11
-#ifdef CONFIG_NETWORK
-#include "network.h"
-#endif
+typedef enum {
+ streaming_stopped_e,
+ streaming_playing_e
+} streaming_status;
+
+typedef struct streaming_control {
+ URL_t *url;
+ streaming_status status;
+ int buffering; // boolean
+ unsigned int prebuffer_size;
+ char *buffer;
+ unsigned int buffer_size;
+ unsigned int buffer_pos;
+ unsigned int bandwidth; // The downstream available
+ int (*streaming_read)( int fd, char *buffer, int buffer_size, struct streaming_control *stream_ctrl );
+ int (*streaming_seek)( int fd, off_t pos, struct streaming_control *stream_ctrl );
+ void *data;
+ // hacks for asf
+ int *audio_id_ptr;
+ int *video_id_ptr;
+} streaming_ctrl_t;
struct stream;
typedef struct stream_info_st {
@@ -143,6 +162,10 @@ typedef struct stream {
unsigned char buffer[STREAM_BUFFER_SIZE>VCD_SECTOR_SIZE?STREAM_BUFFER_SIZE:VCD_SECTOR_SIZE];
} stream_t;
+#ifdef CONFIG_NETWORK
+#include "network.h"
+#endif
+
int stream_fill_buffer(stream_t *s);
int stream_seek_long(stream_t *s, off_t pos);
@@ -156,7 +179,6 @@ int cache_stream_seek_long(stream_t *s,off_t pos);
#define cache_stream_seek_long(x,y) stream_seek_long(x,y)
#define stream_enable_cache(x,y,z,w) 1
#endif
-void fixup_network_stream_cache(stream_t *stream);
int stream_write_buffer(stream_t *s, unsigned char *buf, int len);
inline static int stream_read_char(stream_t *s){