annotate stream/stream_vcd.c @ 24576:6704a924d4aa

According to MSDN a thread must call CoUninitialize once for each successful call it has made to CoInitialize or CoInitializeEx, including any call that returns S_FALSE. Only the CoUninitialize call corresponding to the CoInitialize or CoInitializeEx call that initialized the library can close it. patch by Gianluigi Tiesi, mplayer netfarm it
author diego
date Sun, 23 Sep 2007 20:37:33 +0000
parents d261f5109660
children c1d17bd6683c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
1
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
2 #include "config.h"
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
3
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
4 #ifdef WIN32
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
5 #include <windows.h>
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
6 #endif
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
7
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
8 #include "mp_msg.h"
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
9 #include "stream.h"
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
10 #include "help_mp.h"
17012
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 15912
diff changeset
11 #include "m_option.h"
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 15912
diff changeset
12 #include "m_struct.h"
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
13
10121
d42177a0da2a Changed the STREAMING defines to MPLAYER_NETWORK to avoid name definition clash.
bertrand
parents: 9886
diff changeset
14 #include <fcntl.h>
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
15 #include <stdlib.h>
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
16 #include <unistd.h>
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
17 #ifndef WIN32
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
18 #include <sys/ioctl.h>
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
19 #endif
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
20 #include <errno.h>
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
21
23857
d5223bab4b92 Somewhat unified *BSD vcd reading
reimar
parents: 22775
diff changeset
22 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
23 #include "vcd_read_fbsd.h"
13681
e52daf7f3bcc enable vcd for all darwin based sys not only mac osx
nplourde
parents: 13678
diff changeset
24 #elif defined(SYS_DARWIN)
e52daf7f3bcc enable vcd for all darwin based sys not only mac osx
nplourde
parents: 13678
diff changeset
25 #include "vcd_read_darwin.h"
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
26 #elif defined(WIN32)
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
27 #include "vcd_read_win32.h"
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
28 #else
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
29 #include "vcd_read.h"
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
30 #endif
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
31
21926
a8cd73869242 at open() assign *file_format=DEMUXER_TYPE_MPEG_PS to avoid useless demuxer probing
nicodvb
parents: 21848
diff changeset
32 #include "libmpdemux/demuxer.h"
a8cd73869242 at open() assign *file_format=DEMUXER_TYPE_MPEG_PS to avoid useless demuxer probing
nicodvb
parents: 21848
diff changeset
33
10591
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
34 extern char *cdrom_device;
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
35
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
36 static struct stream_priv_s {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
37 int track;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
38 char* device;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
39 } stream_priv_dflts = {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
40 1,
10591
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
41 NULL
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
42 };
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
43
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
44 #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f)
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
45 /// URL definition
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
46 static m_option_t stream_opts_fields[] = {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
47 { "track", ST_OFF(track), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL },
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
48 { "device", ST_OFF(device), CONF_TYPE_STRING, 0, 0 ,0, NULL},
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
49 /// For url parsing
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
50 { "hostname", ST_OFF(track), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL },
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
51 { "filename", ST_OFF(device), CONF_TYPE_STRING, 0, 0 ,0, NULL},
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
52 { NULL, NULL, 0, 0, 0, 0, NULL }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
53 };
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
54 static struct m_struct_st stream_opts = {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
55 "vcd",
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
56 sizeof(struct stream_priv_s),
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
57 &stream_priv_dflts,
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
58 stream_opts_fields
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
59 };
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
60
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
61 static int fill_buffer(stream_t *s, char* buffer, int max_len){
15912
25feca1387e7 don't read past the end of the selected track
nicodvb
parents: 15566
diff changeset
62 if(s->pos > s->end_pos) /// don't past end of current track
25feca1387e7 don't read past the end of the selected track
nicodvb
parents: 15566
diff changeset
63 return 0;
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
64 return vcd_read(s->priv,buffer);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
65 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
66
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
67 static int seek(stream_t *s,off_t newpos) {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
68 s->pos = newpos;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
69 vcd_set_msf(s->priv,s->pos/VCD_SECTOR_DATA);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
70 return 1;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
71 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
72
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
73 static void close_s(stream_t *stream) {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
74 free(stream->priv);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
75 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
76
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
77 static int open_s(stream_t *stream,int mode, void* opts, int* file_format) {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
78 struct stream_priv_s* p = (struct stream_priv_s*)opts;
22775
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
79 int ret,ret2,f,sect,tmp;
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
80 mp_vcd_priv_t* vcd;
21848
3ff1eade91f9 GNU/kFreeBSD support, closes Bugzilla #704.
diego
parents: 19271
diff changeset
81 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
82 int bsize = VCD_SECTOR_SIZE;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
83 #endif
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
84 #ifdef WIN32
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
85 HANDLE hd;
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
86 char device[] = "\\\\.\\?:";
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
87 #endif
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
88
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
89 if(mode != STREAM_READ
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
90 #ifdef WIN32
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
91 || GetVersion() > 0x80000000 // Win9x
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
92 #endif
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
93 ) {
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
94 m_struct_free(&stream_opts,opts);
24257
d261f5109660 cosmetics: typo fix UNSUPORTED --> UNSUPPORTED
diego
parents: 23857
diff changeset
95 return STREAM_UNSUPPORTED;
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
96 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
97
10591
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
98 if (!p->device) {
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
99 if(cdrom_device)
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
100 p->device = strdup(cdrom_device);
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
101 else
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
102 p->device = strdup(DEFAULT_CDROM_DEVICE);
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
103 }
0d381b648b51 Fix -cdrom-device to work again with cdda and vcd.
albeu
parents: 10121
diff changeset
104
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
105 #ifdef WIN32
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
106 device[4] = p->device[0];
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
107 /* open() can't be used for devices so do it the complicated way */
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
108 hd = CreateFile(device, GENERIC_READ, FILE_SHARE_READ, NULL,
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
109 OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
110 f = _open_osfhandle((long)hd, _O_RDONLY);
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
111 #else
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
112 f=open(p->device,O_RDONLY);
22506
72fbf66a9429 add vcd:// for win32, patch by zuxy meng
compn
parents: 21926
diff changeset
113 #endif
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
114 if(f<0){
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
115 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_CdDevNotfound,p->device);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
116 m_struct_free(&stream_opts,opts);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
117 return STREAM_ERROR;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
118 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
119
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
120 vcd = vcd_read_toc(f);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
121 if(!vcd) {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
122 mp_msg(MSGT_OPEN,MSGL_ERR,"Failed to get cd toc\n");
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
123 close(f);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
124 m_struct_free(&stream_opts,opts);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
125 return STREAM_ERROR;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
126 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
127 ret2=vcd_get_track_end(vcd,p->track);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
128 if(ret2<0){
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
129 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_ErrTrackSelect " (get)\n");
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
130 close(f);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
131 free(vcd);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
132 m_struct_free(&stream_opts,opts);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
133 return STREAM_ERROR;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
134 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
135 ret=vcd_seek_to_track(vcd,p->track);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
136 if(ret<0){
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
137 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_ErrTrackSelect " (seek)\n");
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
138 close(f);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
139 free(vcd);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
140 m_struct_free(&stream_opts,opts);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
141 return STREAM_ERROR;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
142 }
22775
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
143 /* search forward up to at most 3 seconds to skip leading margin */
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
144 sect = ret / VCD_SECTOR_DATA;
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
145 for (tmp = sect; tmp < sect + 3 * 75; tmp++) {
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
146 char mem[VCD_SECTOR_DATA];
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
147 //since MPEG packs are block-aligned we stop discarding sectors if they are non-null
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
148 if (vcd_read(vcd, mem) != VCD_SECTOR_DATA || mem[2] || mem[3])
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
149 break;
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
150 }
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
151 mp_msg(MSGT_OPEN, MSGL_DBG2, "%d leading sectors skipped\n", tmp - sect);
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
152 vcd_set_msf(vcd, tmp);
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
153 ret = tmp * VCD_SECTOR_DATA;
f6dc5fd2b347 at open() discard front margin/empty sectors (fixes demuxing by libavformat); patch by Zuxy meng
nicodvb
parents: 22506
diff changeset
154
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
155 mp_msg(MSGT_OPEN,MSGL_V,"VCD start byte position: 0x%X end: 0x%X\n",ret,ret2);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
156
21848
3ff1eade91f9 GNU/kFreeBSD support, closes Bugzilla #704.
diego
parents: 19271
diff changeset
157 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
158 if (ioctl (f, CDRIOCSETBLOCKSIZE, &bsize) == -1) {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
159 mp_msg(MSGT_OPEN,MSGL_WARN,"Error in CDRIOCSETBLOCKSIZE");
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
160 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
161 #endif
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
162
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
163 stream->fd = f;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
164 stream->type = STREAMTYPE_VCD;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
165 stream->sector_size = VCD_SECTOR_DATA;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
166 stream->start_pos=ret;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
167 stream->end_pos=ret2;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
168 stream->priv = vcd;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
169
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
170 stream->fill_buffer = fill_buffer;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
171 stream->seek = seek;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
172 stream->close = close_s;
21926
a8cd73869242 at open() assign *file_format=DEMUXER_TYPE_MPEG_PS to avoid useless demuxer probing
nicodvb
parents: 21848
diff changeset
173 *file_format = DEMUXER_TYPE_MPEG_PS;
9886
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
174
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
175 m_struct_free(&stream_opts,opts);
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
176 return STREAM_OK;
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
177 }
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
178
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
179 stream_info_t stream_info_vcd = {
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
180 "Video CD",
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
181 "vcd",
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
182 "Albeu",
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
183 "based on the code from ???",
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
184 open_s,
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
185 { "vcd", NULL },
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
186 &stream_opts,
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
187 1 // Urls are an option string
e578e4375434 Port vcd to the new API
albeu
parents:
diff changeset
188 };