Mercurial > mplayer.hg
comparison libmpdemux/stream_file.c @ 15461:7c272bfba96f
fixed file:// syntax using newly introduced -string- urlpart
author | nicodvb |
---|---|
date | Sat, 14 May 2005 12:50:59 +0000 |
parents | de27bb6ff3ec |
children | ec02252fbaa6 |
comparison
equal
deleted
inserted
replaced
15460:fa8c3f5b7ec2 | 15461:7c272bfba96f |
---|---|
12 #include "../m_option.h" | 12 #include "../m_option.h" |
13 #include "../m_struct.h" | 13 #include "../m_struct.h" |
14 | 14 |
15 static struct stream_priv_s { | 15 static struct stream_priv_s { |
16 char* filename; | 16 char* filename; |
17 char* dummy_hostname; | 17 char *filename2; |
18 } stream_priv_dflts = { | 18 } stream_priv_dflts = { |
19 NULL, NULL | 19 NULL, NULL |
20 }; | 20 }; |
21 | 21 |
22 #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) | 22 #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) |
23 /// URL definition | 23 /// URL definition |
24 static m_option_t stream_opts_fields[] = { | 24 static m_option_t stream_opts_fields[] = { |
25 {"filename", ST_OFF(filename), CONF_TYPE_STRING, 0, 0 ,0, NULL}, | 25 {"string", ST_OFF(filename), CONF_TYPE_STRING, 0, 0 ,0, NULL}, |
26 {"hostname", ST_OFF(dummy_hostname), CONF_TYPE_STRING, 0, 0, 0, NULL }, | 26 {"filename", ST_OFF(filename2), CONF_TYPE_STRING, 0, 0 ,0, NULL}, |
27 { NULL, NULL, 0, 0, 0, 0, NULL } | 27 { NULL, NULL, 0, 0, 0, 0, NULL } |
28 }; | 28 }; |
29 static struct m_struct_st stream_opts = { | 29 static struct m_struct_st stream_opts = { |
30 "file", | 30 "file", |
31 sizeof(struct stream_priv_s), | 31 sizeof(struct stream_priv_s), |
69 | 69 |
70 static int open_f(stream_t *stream,int mode, void* opts, int* file_format) { | 70 static int open_f(stream_t *stream,int mode, void* opts, int* file_format) { |
71 int f; | 71 int f; |
72 mode_t m = 0; | 72 mode_t m = 0; |
73 off_t len; | 73 off_t len; |
74 unsigned char *filename; | |
74 struct stream_priv_s* p = (struct stream_priv_s*)opts; | 75 struct stream_priv_s* p = (struct stream_priv_s*)opts; |
75 | 76 |
76 if(mode == STREAM_READ) | 77 if(mode == STREAM_READ) |
77 m = O_RDONLY; | 78 m = O_RDONLY; |
78 else if(mode == STREAM_WRITE) | 79 else if(mode == STREAM_WRITE) |
81 mp_msg(MSGT_OPEN,MSGL_ERR, "[file] Unknown open mode %d\n",mode); | 82 mp_msg(MSGT_OPEN,MSGL_ERR, "[file] Unknown open mode %d\n",mode); |
82 m_struct_free(&stream_opts,opts); | 83 m_struct_free(&stream_opts,opts); |
83 return STREAM_UNSUPORTED; | 84 return STREAM_UNSUPORTED; |
84 } | 85 } |
85 | 86 |
86 if(!p->filename) { | 87 if(p->filename) |
88 filename = p->filename; | |
89 else if(p->filename2) | |
90 filename = p->filename2; | |
91 else | |
92 filename = NULL; | |
93 if(!filename) { | |
87 mp_msg(MSGT_OPEN,MSGL_ERR, "[file] No filename\n"); | 94 mp_msg(MSGT_OPEN,MSGL_ERR, "[file] No filename\n"); |
88 m_struct_free(&stream_opts,opts); | 95 m_struct_free(&stream_opts,opts); |
89 return STREAM_ERROR; | 96 return STREAM_ERROR; |
90 } | 97 } |
91 | 98 |
92 #if defined(__CYGWIN__)|| defined(__MINGW32__) | 99 #if defined(__CYGWIN__)|| defined(__MINGW32__) |
93 m |= O_BINARY; | 100 m |= O_BINARY; |
94 #endif | 101 #endif |
95 | 102 |
96 if(!strcmp(p->filename,"-")){ | 103 if(!strcmp(filename,"-")){ |
97 if(mode == STREAM_READ) { | 104 if(mode == STREAM_READ) { |
98 // read from stdin | 105 // read from stdin |
99 mp_msg(MSGT_OPEN,MSGL_INFO,MSGTR_ReadSTDIN); | 106 mp_msg(MSGT_OPEN,MSGL_INFO,MSGTR_ReadSTDIN); |
100 f=0; // 0=stdin | 107 f=0; // 0=stdin |
101 #ifdef __MINGW32__ | 108 #ifdef __MINGW32__ |
107 #ifdef __MINGW32__ | 114 #ifdef __MINGW32__ |
108 setmode(fileno(stdout),O_BINARY); | 115 setmode(fileno(stdout),O_BINARY); |
109 #endif | 116 #endif |
110 } | 117 } |
111 } else { | 118 } else { |
112 f=open(p->filename,m); | 119 f=open(filename,m); |
113 if(f<0) { | 120 if(f<0) { |
114 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_FileNotFound,p->filename); | 121 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_FileNotFound,filename); |
115 m_struct_free(&stream_opts,opts); | 122 m_struct_free(&stream_opts,opts); |
116 return STREAM_ERROR; | 123 return STREAM_ERROR; |
117 } | 124 } |
118 } | 125 } |
119 | 126 |