CVS: main/libmpdemux network.h,1.9,1.10 network.c,1.27,1.28 open.c,1.31,1.32
Update of /cvsroot/mplayer/main/libmpdemux In directory mplayer:/var/tmp.root/cvs-serv2636 Modified Files: network.h network.c open.c Log Message: Moved network related code from open.c to network.c Index: network.h =================================================================== RCS file: /cvsroot/mplayer/main/libmpdemux/network.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- network.h 14 Jan 2002 06:44:30 -0000 1.9 +++ network.h 19 Jan 2002 09:04:02 -0000 1.10 @@ -38,13 +38,7 @@ void *data; } streaming_ctrl_t; -streaming_ctrl_t *streaming_ctrl_new(); -void streaming_ctrl_free( streaming_ctrl_t *streaming_ctrl ); - -int autodetectProtocol( streaming_ctrl_t *streaming_ctrl, int *fd_out, int *file_format ); -URL_t* check4proxies( URL_t *url ); - -//int streaming_start( stream_t *stream, int demuxer_type ); +//int streaming_start( stream_t *stream, int demuxer_type, URL_t *url ); int streaming_bufferize( streaming_ctrl_t *streaming_ctrl, char *buffer, int size); Index: network.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpdemux/network.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- network.c 18 Jan 2002 11:05:29 -0000 1.27 +++ network.c 19 Jan 2002 09:04:02 -0000 1.28 @@ -83,6 +83,9 @@ void streaming_ctrl_free( streaming_ctrl_t *streaming_ctrl ) { if( streaming_ctrl==NULL ) return; + if( streaming_ctrl->url ) url_free( streaming_ctrl->url ); + if( streaming_ctrl->buffer ) free( streaming_ctrl->buffer ); + if( streaming_ctrl->data ) free( streaming_ctrl->data ); free( streaming_ctrl ); } @@ -177,6 +180,7 @@ URL_t* check4proxies( URL_t *url ) { + if( url==NULL ) return NULL; if( !strcasecmp(url->protocol, "http_proxy") ) { printf("Using HTTP proxy: http://%s:%d\n", url->hostname, url->port ); return url; @@ -207,7 +211,7 @@ sprintf( new_url, "http_proxy://%s:%d/%s", proxy_url->hostname, proxy_url->port, url->url); tmp_url = url_new( new_url ); if( tmp_url==NULL ) { - return url; + return url; } url_free( url ); url = tmp_url; @@ -444,7 +448,7 @@ int streaming_bufferize( streaming_ctrl_t *streaming_ctrl, char *buffer, int size) { -printf("streaming_bufferize\n"); +//printf("streaming_bufferize\n"); streaming_ctrl->buffer = (char*)malloc(size); if( streaming_ctrl->buffer==NULL ) { printf("Memory allocation failed\n"); @@ -461,19 +465,19 @@ //printf("nop_streaming_read\n"); if( stream_ctrl->buffer_size!=0 ) { int buffer_len = stream_ctrl->buffer_size-stream_ctrl->buffer_pos; -printf("%d bytes in buffer\n", stream_ctrl->buffer_size); +//printf("%d bytes in buffer\n", stream_ctrl->buffer_size); len = (size<buffer_len)?size:buffer_len; memcpy( buffer, (stream_ctrl->buffer)+(stream_ctrl->buffer_pos), len ); stream_ctrl->buffer_pos += len; -printf("buffer_pos = %d\n", stream_ctrl->buffer_pos ); +//printf("buffer_pos = %d\n", stream_ctrl->buffer_pos ); if( stream_ctrl->buffer_pos>=stream_ctrl->buffer_size ) { free( stream_ctrl->buffer ); stream_ctrl->buffer = NULL; stream_ctrl->buffer_size = 0; stream_ctrl->buffer_pos = 0; -printf("buffer cleaned\n"); +//printf("buffer cleaned\n"); } -printf("read %d bytes from buffer\n", len ); +//printf("read %d bytes from buffer\n", len ); } if( len<size ) { @@ -529,6 +533,7 @@ if( http_hdr->body_size>0 ) { if( streaming_bufferize( stream->streaming_ctrl, http_hdr->body, http_hdr->body_size )<0 ) { http_free( http_hdr ); + stream->streaming_ctrl->data = NULL; return -1; } } @@ -651,9 +656,20 @@ } int -streaming_start(stream_t *stream, int demuxer_type) { - int ret=-1; +streaming_start(stream_t *stream, int demuxer_type, URL_t *url) { + int ret; if( stream==NULL ) return -1; + + stream->streaming_ctrl = streaming_ctrl_new(); + if( stream->streaming_ctrl==NULL ) { + return -1; + } + stream->streaming_ctrl->url = check4proxies( url_copy(url) ); + ret = autodetectProtocol( stream->streaming_ctrl, &stream->fd, &demuxer_type ); + if( ret<0 ) { + return -1; + } + ret = -1; // For RTP streams, we usually don't know the stream type until we open it. if( !strcasecmp( stream->streaming_ctrl->url->protocol, "rtp")) { @@ -693,7 +709,8 @@ } if( ret<0 ) { - free( stream->streaming_ctrl ); + streaming_ctrl_free( stream->streaming_ctrl ); + stream->streaming_ctrl = NULL; } return ret; } Index: open.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpdemux/open.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- open.c 17 Jan 2002 20:40:07 -0000 1.31 +++ open.c 19 Jan 2002 09:04:02 -0000 1.32 @@ -374,24 +374,13 @@ #ifdef STREAMING url = url_new(filename); if(url) { - streaming_ctrl_t *streaming_ctrl; - streaming_ctrl = streaming_ctrl_new(); - if( streaming_ctrl==NULL ) return NULL; - url = check4proxies( url ); - streaming_ctrl->url = url_copy( url ); - if( autodetectProtocol( streaming_ctrl, &f, file_format )<0 ) { - mp_msg(MSGT_OPEN,MSGL_INFO,MSGTR_UnableOpenURL, filename ); - return NULL; - } - mp_msg(MSGT_OPEN,MSGL_INFO,MSGTR_ConnToServer, url->hostname ); stream=new_stream(f,STREAMTYPE_STREAM); - stream->streaming_ctrl = streaming_ctrl; - //if( streaming_start( stream , url, *file_format )<0){ - if( streaming_start( stream, *file_format )<0){ + if( streaming_start( stream, *file_format, url )<0){ mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_UnableOpenURL, filename); - url_free(url); + url_free(url); return NULL; } + mp_msg(MSGT_OPEN,MSGL_INFO,MSGTR_ConnToServer, url->hostname ); url_free(url); return stream; }
participants (1)
-
Bertrand Baudet