summaryrefslogtreecommitdiffstats
path: root/stream/stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'stream/stream.h')
-rw-r--r--stream/stream.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/stream/stream.h b/stream/stream.h
index 1ff94a331c..40ea321bc4 100644
--- a/stream/stream.h
+++ b/stream/stream.h
@@ -112,6 +112,9 @@ typedef struct streaming_control {
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;
@@ -157,6 +160,8 @@ typedef struct stream {
void* cache_data;
void* priv; // used for DVD, TV, RTSP etc
char* url; // strdup() of filename/url
+ char *lavf_type; // name of expected demuxer type for lavf
+ struct MPOpts *opts;
#ifdef CONFIG_NETWORK
streaming_ctrl_t *streaming_ctrl;
#endif
@@ -284,12 +289,11 @@ inline static int stream_seek(stream_t *s,off_t pos){
mp_dbg(MSGT_DEMUX, MSGL_DBG3, "seek to 0x%qX\n",(long long)pos);
- if(s->eof)
- return 0;
if(pos<s->pos){
off_t x=pos-(s->pos-s->buf_len);
if(x>=0){
s->buf_pos=x;
+ s->eof = 0;
// putchar('*');fflush(stdout);
return 1;
}
@@ -316,24 +320,27 @@ inline static int stream_skip(stream_t *s,off_t len){
return 1;
}
+struct MPOpts;
void stream_reset(stream_t *s);
int stream_control(stream_t *s, int cmd, void *arg);
stream_t* new_stream(int fd,int type);
void free_stream(stream_t *s);
stream_t* new_memory_stream(unsigned char* data,int len);
-stream_t* open_stream(const char* filename,char** options,int* file_format);
-stream_t* open_stream_full(const char* filename,int mode, char** options, int* file_format);
-stream_t* open_output_stream(const char* filename,char** options);
+stream_t *open_stream(const char *filename, struct MPOpts *options,
+ int *file_format);
+stream_t *open_stream_full(const char *filename,int mode,
+ struct MPOpts *options, int *file_format);
+stream_t *open_output_stream(const char *filename, struct MPOpts *options);
/// Set the callback to be used by libstream to check for user
/// interruption during long blocking operations (cache filling, etc).
-void stream_set_interrupt_callback(int (*cb)(int));
+struct input_ctx;
+void stream_set_interrupt_callback(int (*cb)(struct input_ctx*, int),
+ struct input_ctx *ctx);
/// Call the interrupt checking callback if there is one and
/// wait for time milliseconds
int stream_check_interrupt(int time);
extern int dvd_title;
-extern int dvd_chapter;
-extern int dvd_last_chapter;
extern int dvd_angle;
extern char * audio_stream;