[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[569] mplayerxp/libmpstream2
Brought to you by:
olov
From: <nic...@us...> - 2012-12-17 12:05:54
|
Revision: 569 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=569&view=rev Author: nickols_k Date: 2012-12-17 12:05:45 +0000 (Mon, 17 Dec 2012) Log Message: ----------- use references instead of pointers Modified Paths: -------------- mplayerxp/libmpstream2/asf_mmst_streaming.cpp mplayerxp/libmpstream2/asf_streaming.cpp mplayerxp/libmpstream2/asf_streaming.h mplayerxp/libmpstream2/network.cpp mplayerxp/libmpstream2/network.h mplayerxp/libmpstream2/s_network.cpp mplayerxp/libmpstream2/s_rtsp.cpp mplayerxp/libmpstream2/s_udp.cpp mplayerxp/libmpstream2/stream.h Modified: mplayerxp/libmpstream2/asf_mmst_streaming.cpp =================================================================== --- mplayerxp/libmpstream2/asf_mmst_streaming.cpp 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/asf_mmst_streaming.cpp 2012-12-17 12:05:45 UTC (rev 569) @@ -204,7 +204,7 @@ } -static int get_header (Tcp& tcp, uint8_t *header, networking_t *networking) +static int get_header (Tcp& tcp, uint8_t *header, networking_t& networking) { unsigned char pre_header[8]; int header_len; @@ -362,7 +362,7 @@ } -static int get_media_packet (Tcp& tcp, int padding, networking_t *stream_ctrl) { +static int get_media_packet (Tcp& tcp, int padding, networking_t& stream_ctrl) { unsigned char pre_header[8]; unsigned char data[BUF_SIZE]; @@ -453,11 +453,11 @@ static int packet_length1; -static int asf_mmst_networking_read(Tcp& tcp, char *buffer, int size, networking_t *stream_ctrl ) +static int asf_mmst_networking_read(Tcp& tcp, char *buffer, int size, networking_t& stream_ctrl ) { int len; - while( stream_ctrl->buffer_size==0 ) { + while( stream_ctrl.buffer_size==0 ) { // buffer is empty - fill it! int ret = get_media_packet(tcp, packet_length1, stream_ctrl); if( ret<0 ) { @@ -467,21 +467,21 @@ return ret; } - len = stream_ctrl->buffer_size-stream_ctrl->buffer_pos; + len = stream_ctrl.buffer_size-stream_ctrl.buffer_pos; if(len>size) len=size; - memcpy( buffer, (stream_ctrl->buffer)+(stream_ctrl->buffer_pos), len ); - stream_ctrl->buffer_pos += len; - if( stream_ctrl->buffer_pos>=stream_ctrl->buffer_size ) { - delete stream_ctrl->buffer ; - stream_ctrl->buffer = NULL; - stream_ctrl->buffer_size = 0; - stream_ctrl->buffer_pos = 0; + memcpy( buffer, (stream_ctrl.buffer)+(stream_ctrl.buffer_pos), len ); + stream_ctrl.buffer_pos += len; + if( stream_ctrl.buffer_pos>=stream_ctrl.buffer_size ) { + delete stream_ctrl.buffer ; + stream_ctrl.buffer = NULL; + stream_ctrl.buffer_size = 0; + stream_ctrl.buffer_pos = 0; } return len; } -static int asf_mmst_networking_seek(Tcp& tcp, off_t pos, networking_t *networking ) +static int asf_mmst_networking_seek(Tcp& tcp, off_t pos, networking_t& networking ) { UNUSED(tcp); UNUSED(pos); @@ -489,7 +489,7 @@ return -1; } -MPXP_Rc asf_mmst_networking_start(Tcp& tcp, networking_t *networking) +MPXP_Rc asf_mmst_networking_start(Tcp& tcp, networking_t& networking) { char str[1024]; uint8_t data[BUF_SIZE]; @@ -497,7 +497,7 @@ int asf_header_len; int len, i, packet_length; char* path, *unescpath; - URL* url1 = networking->url; + URL* url1 = networking.url; tcp.close(); @@ -634,10 +634,10 @@ send_command (tcp, 0x07, 1, 0xFFFF | stream_ids[0] << 16, 24, data); - networking->networking_read = asf_mmst_networking_read; - networking->networking_seek = asf_mmst_networking_seek; - networking->buffering = 1; - networking->status = networking_playing_e; + networking.networking_read = asf_mmst_networking_read; + networking.networking_seek = asf_mmst_networking_seek; + networking.buffering = 1; + networking.status = networking_playing_e; packet_length1 = packet_length; MSG_V("mmst packet_length = %d\n",packet_length); Modified: mplayerxp/libmpstream2/asf_streaming.cpp =================================================================== --- mplayerxp/libmpstream2/asf_streaming.cpp 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/asf_streaming.cpp 2012-12-17 12:05:45 UTC (rev 569) @@ -51,7 +51,7 @@ // WMP sequence is MMSU then MMST and then HTTP. // In MPlayer case since HTTP support is more reliable, // we are doing HTTP first then we try MMST if HTTP fail. -static MPXP_Rc asf_http_networking_start(Tcp& fd, networking_t *networking ); +static MPXP_Rc asf_http_networking_start(Tcp& fd, networking_t& networking ); /* ASF networking support several network protocol. @@ -73,9 +73,9 @@ In MPlayer case since HTTP support is more reliable, we are doing HTTP first then we try MMST if HTTP fail. */ -MPXP_Rc asf_networking_start(Tcp& tcp, networking_t *networking) { - char *proto = networking->url->protocol; - int port = networking->url->port; +MPXP_Rc asf_networking_start(Tcp& tcp,networking_t& networking) { + char *proto = networking.url->protocol; + int port = networking.url->port; MPXP_Rc rc; // Is protocol even valid mms,mmsu,mmst,http,http_proxy? @@ -99,7 +99,7 @@ if (!strncasecmp(proto, "mmst", 4) || !strncasecmp(proto, "mms", 3)) { MSG_V("Trying ASF/TCP...\n"); rc = asf_mmst_networking_start(tcp,networking); - networking->url->port = port; + networking.url->port = port; if( rc==MPXP_Ok ) return MPXP_Ok; MSG_V(" ===> ASF/TCP failed\n"); return MPXP_False; @@ -110,7 +110,7 @@ !strncasecmp(proto, "mms", 3)) { MSG_V("Trying ASF/HTTP...\n"); rc = asf_http_networking_start(tcp,networking); - networking->url->port = port; + networking.url->port = port; if( rc==MPXP_Ok ) return MPXP_Ok; MSG_V(" ===> ASF/HTTP failed\n"); return MPXP_False; @@ -185,16 +185,16 @@ } static MPXP_Rc -asf_networking_parse_header(Tcp& tcp, networking_t* networking) { +asf_networking_parse_header(Tcp& tcp, networking_t& networking) { ASF_header_t asfh; ASF_stream_chunck_t chunk; - asf_http_networking_t* asf_ctrl = (asf_http_networking_t*) networking->data; + asf_http_networking_t* asf_ctrl = (asf_http_networking_t*) networking.data; char* buffer=NULL, *chunk_buffer=NULL; int i,r,size,pos = 0; int start; int buffer_size = 0; int chunk_size2read = 0; - int bw = networking->bandwidth; + int bw = networking.bandwidth; int *v_rates = NULL, *a_rates = NULL; int v_rate = 0, a_rate = 0, a_idx = -1, v_idx = -1; @@ -275,7 +275,7 @@ asf_ctrl->packet_size = fileh->max_packet_size; // before playing. // preroll: time in ms to bufferize before playing - networking->prebuffer_size = (unsigned int)(((double)fileh->preroll/1000.0)*((double)fileh->max_bitrate/8.0)); + networking.prebuffer_size = (unsigned int)(((double)fileh->preroll/1000.0)*((double)fileh->max_bitrate/8.0)); } pos = start; @@ -416,11 +416,11 @@ } static int -asf_http_networking_read( Tcp& tcp, char *buffer, int size, networking_t *networking ) { +asf_http_networking_read( Tcp& tcp, char *buffer, int size, networking_t& networking ) { static ASF_stream_chunck_t chunk; int read,chunk_size = 0; static int rest = 0, drop_chunk = 0, waiting = 0; - asf_http_networking_t *asf_http_ctrl = (asf_http_networking_t*)networking->data; + asf_http_networking_t* asf_http_ctrl = (asf_http_networking_t*)networking.data; while(1) { if (rest == 0 && waiting == 0) { @@ -492,7 +492,7 @@ } static int -asf_http_networking_seek( Tcp& tcp, off_t pos, networking_t *networking ) { +asf_http_networking_seek( Tcp& tcp, off_t pos, networking_t& networking ) { UNUSED(tcp); UNUSED(pos); UNUSED(networking); @@ -562,11 +562,11 @@ return ASF_Unknown_e; } -static HTTP_Header* asf_http_request(networking_t *networking) { +static HTTP_Header* asf_http_request(networking_t& networking) { HTTP_Header* http_hdr = new(zeromem) HTTP_Header; URL *url = NULL; URL *server_url = NULL; - asf_http_networking_t *asf_http_ctrl; + asf_http_networking_t* asf_http_ctrl; char str[250]; char *ptr; int i, enable; @@ -575,9 +575,8 @@ int asf_nb_stream=0, stream_id; // Sanity check - if( networking==NULL ) return NULL; - url = networking->url; - asf_http_ctrl = (asf_http_networking_t*)networking->data; + url = networking.url; + asf_http_ctrl = (asf_http_networking_t*)networking.data; if( url==NULL || asf_http_ctrl==NULL ) return NULL; // Common header for all requests. @@ -660,7 +659,7 @@ } static int -asf_http_parse_response(asf_http_networking_t *asf_http_ctrl, HTTP_Header& http_hdr ) { +asf_http_parse_response(asf_http_networking_t& asf_http_ctrl, HTTP_Header& http_hdr ) { const char *content_type, *pragma; char features[64] = "\0"; size_t len; @@ -713,14 +712,14 @@ } while( comma_ptr!=NULL ); pragma = http_hdr.get_next_field(); } - asf_http_ctrl->networking_type = asf_http_networking_type( content_type, features, http_hdr ); + asf_http_ctrl.networking_type = asf_http_networking_type( content_type, features, http_hdr ); return 0; } -static MPXP_Rc asf_http_networking_start(Tcp& tcp, networking_t *networking) { +static MPXP_Rc asf_http_networking_start(Tcp& tcp, networking_t& networking) { HTTP_Header *http_hdr=NULL; - URL *url = networking->url; - asf_http_networking_t *asf_http_ctrl; + URL *url = networking.url; + asf_http_networking_t* asf_http_ctrl; uint8_t buffer[BUFFER_SIZE]; int i, ret; int done; @@ -735,7 +734,7 @@ asf_http_ctrl->request = 1; asf_http_ctrl->audio_streams = asf_http_ctrl->video_streams = NULL; asf_http_ctrl->n_audio = asf_http_ctrl->n_video = 0; - networking->data = asf_http_ctrl; + networking.data = asf_http_ctrl; do { done = 1; @@ -773,7 +772,7 @@ if( mp_conf.verbose>0 ) { MSG_DBG2("Response [%s]\n", http_hdr->get_buffer() ); } - ret = asf_http_parse_response(asf_http_ctrl, *http_hdr); + ret = asf_http_parse_response(*asf_http_ctrl, *http_hdr); if( ret<0 ) { MSG_ERR("Failed to parse header\n"); delete http_hdr; @@ -829,14 +828,14 @@ } while(!done); if( asf_http_ctrl->networking_type==ASF_PlainText_e || asf_http_ctrl->networking_type==ASF_Redirector_e ) { - networking->networking_read = nop_networking_read; - networking->networking_seek = nop_networking_seek; + networking.networking_read = nop_networking_read; + networking.networking_seek = nop_networking_seek; } else { - networking->networking_read = asf_http_networking_read; - networking->networking_seek = asf_http_networking_seek; - networking->buffering = 1; + networking.networking_read = asf_http_networking_read; + networking.networking_seek = asf_http_networking_seek; + networking.buffering = 1; } - networking->status = networking_playing_e; + networking.status = networking_playing_e; delete http_hdr; return MPXP_Ok; Modified: mplayerxp/libmpstream2/asf_streaming.h =================================================================== --- mplayerxp/libmpstream2/asf_streaming.h 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/asf_streaming.h 2012-12-17 12:05:45 UTC (rev 569) @@ -6,6 +6,7 @@ #include "stream.h" +struct networking_t; namespace mpxp { class Tcp; } @@ -32,7 +33,7 @@ int audio_id, video_id; }; -extern MPXP_Rc asf_networking_start(Tcp& fd, networking_t *networking); -extern MPXP_Rc asf_mmst_networking_start(Tcp& fd, networking_t *networking); +extern MPXP_Rc asf_networking_start(Tcp& fd, networking_t& networking); +extern MPXP_Rc asf_mmst_networking_start(Tcp& fd, networking_t& networking); #endif Modified: mplayerxp/libmpstream2/network.cpp =================================================================== --- mplayerxp/libmpstream2/network.cpp 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/network.cpp 2012-12-17 12:05:45 UTC (rev 569) @@ -61,21 +61,16 @@ net_config_t net_conf; networking_t* new_networking() { - networking_t *networking = new(zeromem) networking_t; - if( networking==NULL ) { - MSG_FATAL(MSGTR_OutOfMemory); - return NULL; - } + networking_t* networking = new(zeromem) networking_t; networking->mime="application/octet-stream"; return networking; } -void free_networking( networking_t *networking ) { - if( networking==NULL ) return; - if( networking->url ) delete networking->url; - if( networking->buffer ) delete networking->buffer ; - if( networking->data ) delete networking->data ; - delete networking; +void free_networking( networking_t& networking ) { + if( networking.url ) delete networking.url; + if( networking.buffer ) delete networking.buffer ; + if( networking.data ) delete networking.data ; + delete &networking; } URL* @@ -281,11 +276,11 @@ return 0; } -off_t http_seek(Tcp& tcp, networking_t *networking, off_t pos ) { +off_t http_seek(Tcp& tcp, networking_t& networking, off_t pos ) { HTTP_Header* http_hdr = NULL; tcp.close(); - if(http_send_request(tcp,networking->url, pos)==MPXP_Ok) return 0; + if(http_send_request(tcp,networking.url, pos)==MPXP_Ok) return 0; http_hdr = http_read_response(tcp); @@ -310,7 +305,7 @@ if( http_hdr ) { delete http_hdr; - networking->data = NULL; + networking.data = NULL; } return pos; @@ -318,7 +313,7 @@ // By using the protocol, the extension of the file or the content-type // we might be able to guess the networking type. -static MPXP_Rc autodetectProtocol(networking_t *networking, Tcp& tcp) { +static MPXP_Rc autodetectProtocol(networking_t& networking, Tcp& tcp) { HTTP_Header *http_hdr=NULL; int redirect; int auth_retry=0; @@ -327,7 +322,7 @@ const char *content_type; const char *next_url; - URL *url = networking->url; + URL *url = networking.url; do { next_url = NULL; @@ -359,7 +354,7 @@ http_hdr = http_read_response(tcp); if( http_hdr==NULL ) goto err_out; if( mp_conf.verbose ) http_hdr->debug_hdr(); - networking->data = http_hdr; + networking.data = http_hdr; // Check if we can make partial content requests and thus seek in http-streams if( http_hdr->get_status()==200 ) { @@ -386,7 +381,7 @@ if( (field_data = http_hdr->get_field("icy-br")) != NULL ) MSG_INFO("Bitrate: %skbit/s\n", field_data); field_data = NULL; if ( (field_data = http_hdr->get_field("content-type")) != NULL ) - networking->mime = field_data; + networking.mime = field_data; return MPXP_Ok; } case 400: // Server Full @@ -427,7 +422,7 @@ // TODO: RFC 2616, recommand to detect infinite redirection loops next_url = http_hdr->get_field("Location" ); if( next_url!=NULL ) { - networking->url = url = url_redirect( &url, next_url ); + networking.url = url = url_redirect( &url, next_url ); if (!strcasecmp(url->protocol, "mms")) goto err_out; if (strcasecmp(url->protocol, "http")) { MSG_WARN("Unsupported http %d redirect to %s protocol\n", http_hdr->get_status(), url->protocol); @@ -456,34 +451,34 @@ } int -networking_bufferize( networking_t *networking,unsigned char *buffer, int size) { +networking_bufferize( networking_t& networking,unsigned char *buffer, int size) { //printf("networking_bufferize\n"); - networking->buffer = new char [size]; - if( networking->buffer==NULL ) { + networking.buffer = new char [size]; + if( networking.buffer==NULL ) { MSG_FATAL(MSGTR_OutOfMemory); return -1; } - memcpy( networking->buffer, buffer, size ); - networking->buffer_size = size; + memcpy( networking.buffer, buffer, size ); + networking.buffer_size = size; return size; } int -nop_networking_read(Tcp& tcp, char *buffer, int size, networking_t *stream_ctrl ) { +nop_networking_read(Tcp& tcp, char *buffer, int size, networking_t& stream_ctrl ) { int len=0; //printf("nop_networking_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); + 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); 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 ); - if( stream_ctrl->buffer_pos>=stream_ctrl->buffer_size ) { - delete stream_ctrl->buffer ; - stream_ctrl->buffer = NULL; - stream_ctrl->buffer_size = 0; - stream_ctrl->buffer_pos = 0; + memcpy( buffer, (stream_ctrl.buffer)+(stream_ctrl.buffer_pos), len ); + stream_ctrl.buffer_pos += len; +//printf("buffer_pos = %d\n", stream_ctrl.buffer_pos ); + if( stream_ctrl.buffer_pos>=stream_ctrl.buffer_size ) { + delete stream_ctrl.buffer ; + stream_ctrl.buffer = NULL; + stream_ctrl.buffer_size = 0; + stream_ctrl.buffer_pos = 0; //printf("buffer cleaned\n"); } //printf("read %d bytes from buffer\n", len ); @@ -501,21 +496,21 @@ } int -nop_networking_seek(Tcp& tcp, off_t pos, networking_t *n ) { +nop_networking_seek(Tcp& tcp, off_t pos, networking_t& n ) { UNUSED(tcp); UNUSED(pos); UNUSED(n); return -1; } -MPXP_Rc nop_networking_start(Tcp& tcp,networking_t* networking ) { +MPXP_Rc nop_networking_start(Tcp& tcp,networking_t& networking ) { HTTP_Header *http_hdr = NULL; const char *next_url=NULL; URL *rd_url=NULL; MPXP_Rc ret; if( !tcp.established() ) { - http_send_request(tcp, networking->url,0); + http_send_request(tcp, networking.url,0); if( !tcp.established() ) return MPXP_False; http_hdr = http_read_response(tcp); if( http_hdr==NULL ) return MPXP_False; @@ -542,7 +537,7 @@ if (next_url != NULL && rd_url != NULL) { MSG_STATUS("Redirected: Using this url instead %s\n",next_url); - networking->url=check4proxies(rd_url); + networking.url=check4proxies(rd_url); ret=nop_networking_start(tcp,networking); //recursively get networking started } else { MSG_ERR("Redirection failed\n"); @@ -561,11 +556,11 @@ break; } } else { - http_hdr = (HTTP_Header*)networking->data; + http_hdr = (HTTP_Header*)networking.data; if( http_hdr->get_body_size()>0 ) { if( networking_bufferize( networking, (unsigned char*)http_hdr->get_body(), http_hdr->get_body_size() )<0 ) { delete http_hdr; - networking->data = NULL; + networking.data = NULL; return MPXP_False; } } @@ -573,23 +568,23 @@ if( http_hdr ) { delete http_hdr; - networking->data = NULL; + networking.data = NULL; } - networking->networking_read = nop_networking_read; - networking->networking_seek = nop_networking_seek; - networking->prebuffer_size = 64*1024; // KBytes - networking->buffering = 1; - networking->status = networking_playing_e; + networking.networking_read = nop_networking_read; + networking.networking_seek = nop_networking_seek; + networking.prebuffer_size = 64*1024; // KBytes + networking.buffering = 1; + networking.status = networking_playing_e; return MPXP_Ok; } -void fixup_network_stream_cache(networking_t *networking) { - if(networking->buffering) { +void fixup_network_stream_cache(networking_t& networking) { + if(networking.buffering) { if(mp_conf.s_cache_size<0) { // cache option not set, will use our computed value. // buffer in KBytes, *5 because the prefill is 20% of the buffer. - mp_conf.s_cache_size = (networking->prebuffer_size/1024)*5; + mp_conf.s_cache_size = (networking.prebuffer_size/1024)*5; if( mp_conf.s_cache_size<64 ) mp_conf.s_cache_size = 64; // 16KBytes min buffer } MSG_INFO("[network] cache size set to: %i\n", mp_conf.s_cache_size); @@ -597,38 +592,38 @@ } int -pnm_networking_read(Tcp& tcp, char *buffer, int size, networking_t *stream_ctrl ) { - Pnm& pnm=*static_cast<Pnm*>(stream_ctrl->data); +pnm_networking_read(Tcp& tcp, char *buffer, int size, networking_t& stream_ctrl ) { + Pnm& pnm=*static_cast<Pnm*>(stream_ctrl.data); UNUSED(tcp); return pnm.read(buffer, size); } -MPXP_Rc pnm_networking_start(Tcp& tcp,networking_t *networking ) { +MPXP_Rc pnm_networking_start(Tcp& tcp,networking_t& networking ) { Pnm* pnm = new(zeromem) Pnm(tcp); - tcp.open(networking->url->hostname, - networking->url->port ? networking->url->port : 7070); + tcp.open(networking.url->hostname, + networking.url->port ? networking.url->port : 7070); if(!tcp.established()) return MPXP_False; - if(pnm->connect(networking->url->file)!=MPXP_Ok) { + if(pnm->connect(networking.url->file)!=MPXP_Ok) { delete pnm; return MPXP_NA; } - networking->data=pnm; - networking->networking_read = pnm_networking_read; - networking->prebuffer_size = 8*1024; // 8 KBytes - networking->buffering = 1; - networking->status = networking_playing_e; + networking.data=pnm; + networking.networking_read = pnm_networking_read; + networking.prebuffer_size = 8*1024; // 8 KBytes + networking.buffering = 1; + networking.status = networking_playing_e; return MPXP_Ok; } int -realrtsp_networking_read( Tcp& tcp, char *buffer, int size, networking_t *networking ) { - Rtsp_Session& rtsp=*static_cast<Rtsp_Session*>(networking->data); +realrtsp_networking_read( Tcp& tcp, char *buffer, int size, networking_t& networking ) { + Rtsp_Session& rtsp=*static_cast<Rtsp_Session*>(networking.data); return rtsp.read(tcp, buffer, size); } -MPXP_Rc realrtsp_networking_start( Tcp& tcp, networking_t *networking ) { +MPXP_Rc realrtsp_networking_start( Tcp& tcp, networking_t& networking ) { Rtsp_Session* rtsp; char *mrl; char *file; @@ -639,25 +634,25 @@ do { redirected = 0; - port = networking->url->port ? networking->url->port : 554; + port = networking.url->port ? networking.url->port : 554; tcp.close(); - tcp.open( networking->url->hostname, port, Tcp::IP4); - if(!tcp.established() && !networking->url->port) - tcp.open( networking->url->hostname,port = 7070, Tcp::IP4); + tcp.open( networking.url->hostname, port, Tcp::IP4); + if(!tcp.established() && !networking.url->port) + tcp.open( networking.url->hostname,port = 7070, Tcp::IP4); if(!tcp.established()) return MPXP_False; - file = networking->url->file; + file = networking.url->file; if (file[0] == '/') file++; - mrl = new char [strlen(networking->url->hostname)+strlen(file)+16]; - sprintf(mrl,"rtsp://%s:%i/%s",networking->url->hostname,port,file); + mrl = new char [strlen(networking.url->hostname)+strlen(file)+16]; + sprintf(mrl,"rtsp://%s:%i/%s",networking.url->hostname,port,file); rtsp = rtsp_session_start(tcp,&mrl, file, - networking->url->hostname, port, &redirected, - net_conf.bandwidth,networking->url->username, - networking->url->password); + networking.url->hostname, port, &redirected, + net_conf.bandwidth,networking.url->username, + networking.url->password); if ( redirected == 1 ) { - delete networking->url; - networking->url = url_new(mrl); + delete networking.url; + networking.url = url_new(mrl); tcp.close(); } delete mrl; @@ -667,12 +662,12 @@ if(!rtsp) return MPXP_False; - networking->data=rtsp; + networking.data=rtsp; - networking->networking_read = realrtsp_networking_read; - networking->prebuffer_size = 128*1024; // 8 KBytes - networking->buffering = 1; - networking->status = networking_playing_e; + networking.networking_read = realrtsp_networking_read; + networking.prebuffer_size = 128*1024; // 8 KBytes + networking.buffering = 1; + networking.status = networking_playing_e; return MPXP_Ok; } @@ -680,36 +675,36 @@ #ifndef STREAMING_LIVE_DOT_COM static int -rtp_networking_read(Tcp& tcp, char *buffer, int size, networking_t *networking ) { +rtp_networking_read(Tcp& tcp, char *buffer, int size, networking_t& networking ) { UNUSED(networking); return read_rtp_from_server(tcp, buffer, size ); } -static MPXP_Rc rtp_networking_start(Tcp& tcp,networking_t* networking, int raw_udp ) { +static MPXP_Rc rtp_networking_start(Tcp& tcp,networking_t& networking, int raw_udp ) { if( !tcp.established() ) { - Udp* udp(new(zeromem) Udp(networking->url)); + Udp* udp(new(zeromem) Udp(networking.url)); tcp = udp->socket(); if( !tcp.established()) return MPXP_False; } if(raw_udp) - networking->networking_read = nop_networking_read; + networking.networking_read = nop_networking_read; else - networking->networking_read = rtp_networking_read; - networking->networking_read = rtp_networking_read; - networking->networking_seek = nop_networking_seek; - networking->prebuffer_size = 64*1024; // KBytes - networking->buffering = 0; - networking->status = networking_playing_e; + networking.networking_read = rtp_networking_read; + networking.networking_read = rtp_networking_read; + networking.networking_seek = nop_networking_seek; + networking.prebuffer_size = 64*1024; // KBytes + networking.buffering = 0; + networking.status = networking_playing_e; return MPXP_Ok; } #endif -MPXP_Rc networking_start(Tcp& tcp,networking_t* networking, URL *url) { +MPXP_Rc networking_start(Tcp& tcp,networking_t& networking, URL *url) { MPXP_Rc rc; - networking->url = check4proxies( url ); + networking.url = check4proxies( url ); rc = autodetectProtocol( networking, tcp); @@ -717,13 +712,13 @@ rc = MPXP_False; // Get the bandwidth available - networking->bandwidth = net_conf.bandwidth; + networking.bandwidth = net_conf.bandwidth; // For RTP streams, we usually don't know the stream type until we open it. - if( !strcasecmp( networking->url->protocol, "rtp")) { + if( !strcasecmp( networking.url->protocol, "rtp")) { if(tcp.established()) tcp.close(); rc = rtp_networking_start(tcp, networking, 0); - } else if( !strcasecmp( networking->url->protocol, "pnm")) { + } else if( !strcasecmp( networking.url->protocol, "pnm")) { tcp.close(); rc = pnm_networking_start(tcp, networking); if (rc == MPXP_False) { @@ -731,7 +726,7 @@ return MPXP_False; } } - else if( !strcasecmp( networking->url->protocol, "rtsp")) { + else if( !strcasecmp( networking.url->protocol, "rtsp")) { if ((rc = realrtsp_networking_start( tcp, networking )) < 0) { MSG_INFO("Not a Realmedia rtsp url. Trying standard rtsp protocol.\n"); #ifdef STREAMING_LIVE_DOT_COM @@ -744,7 +739,7 @@ #endif } } - else if(!strcasecmp( networking->url->protocol, "udp")) { + else if(!strcasecmp( networking.url->protocol, "udp")) { tcp.close(); rc = rtp_networking_start(tcp, networking, 1); if(rc==MPXP_False) { @@ -761,7 +756,7 @@ if( rc==MPXP_False ) { //sometimes a file is just on a webserver and it is not streamed. //try loading them default method as last resort for http protocol - if ( !strcasecmp(networking->url->protocol, "http") ) { + if ( !strcasecmp(networking.url->protocol, "http") ) { MSG_STATUS("Trying default networking for http protocol\n "); //reset stream tcp.close(); @@ -774,11 +769,11 @@ } } if( rc==MPXP_False ) ; - else if( networking->buffering ) { + else if( networking.buffering ) { if(mp_conf.s_cache_size<0) { // cache option not set, will use our computed value. // buffer in KBytes, *5 because the prefill is 20% of the buffer. - mp_conf.s_cache_size = (networking->prebuffer_size/1024)*5; + mp_conf.s_cache_size = (networking.prebuffer_size/1024)*5; if( mp_conf.s_cache_size<64 ) mp_conf.s_cache_size = 64; // 16KBytes min buffer } MSG_INFO("Cache size set to %d KBytes\n", mp_conf.s_cache_size); @@ -787,7 +782,7 @@ } int -networking_stop( networking_t *networking) { - networking->status = networking_stopped_e; +networking_stop( networking_t& networking) { + networking.status = networking_stopped_e; return 0; } Modified: mplayerxp/libmpstream2/network.h =================================================================== --- mplayerxp/libmpstream2/network.h 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/network.h 2012-12-17 12:05:45 UTC (rev 569) @@ -67,20 +67,20 @@ unsigned int buffer_size; unsigned int buffer_pos; unsigned int bandwidth; // The downstream available - int (*networking_read)( Tcp& fd, char *buffer, int buffer_size, networking_t *stream_ctrl ); - int (*networking_seek)( Tcp& fd, off_t pos, networking_t *stream_ctrl ); + int (*networking_read)( Tcp& fd, char *buffer, int buffer_size, networking_t& stream_ctrl ); + int (*networking_seek)( Tcp& fd, off_t pos, networking_t& stream_ctrl ); Opaque* data; }; -extern void fixup_network_stream_cache(networking_t *s); -extern MPXP_Rc networking_start(Tcp& fd,networking_t *n, URL *url); -extern int networking_bufferize(networking_t *networking,unsigned char *buffer, int size); -extern networking_t *new_networking(); -extern void free_networking( networking_t *networking ); +extern void fixup_network_stream_cache(networking_t& s); +extern MPXP_Rc networking_start(Tcp& fd,networking_t& n, URL *url); +extern int networking_bufferize(networking_t& networking,unsigned char *buffer, int size); +extern networking_t* new_networking(); +extern void free_networking( networking_t& networking ); extern URL* check4proxies( URL* url ); -int nop_networking_read(Tcp& fd, char *buffer, int size, networking_t *stream_ctrl ); -int nop_networking_seek(Tcp& fd, off_t pos, networking_t *stream_ctrl ); +int nop_networking_read(Tcp& fd, char *buffer, int size, networking_t& stream_ctrl ); +int nop_networking_seek(Tcp& fd, off_t pos, networking_t& stream_ctrl ); MPXP_Rc http_send_request(Tcp& tcp,URL* url, off_t pos); HTTP_Header* http_read_response(Tcp& fd); Modified: mplayerxp/libmpstream2/s_network.cpp =================================================================== --- mplayerxp/libmpstream2/s_network.cpp 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/s_network.cpp 2012-12-17 12:05:45 UTC (rev 569) @@ -56,11 +56,11 @@ url = url_new(filename); if(url) { networking=new_networking(); - if(networking_start(tcp,networking,url)!=MPXP_Ok){ + if(networking_start(tcp,*networking,url)!=MPXP_Ok){ MSG_ERR(MSGTR_UnableOpenURL, filename.c_str()); delete url; url=NULL; - free_networking(networking); + free_networking(*networking); networking=NULL; return MPXP_False; } @@ -78,7 +78,7 @@ int Network_Stream_Interface::read(stream_packet_t*sp) { sp->type=0; - if(networking!=NULL)sp->len=networking->networking_read(tcp,sp->buf,STREAM_BUFFER_SIZE, networking); + if(networking!=NULL)sp->len=networking->networking_read(tcp,sp->buf,STREAM_BUFFER_SIZE, *networking); else sp->len=TEMP_FAILURE_RETRY(tcp.read((uint8_t*)sp->buf,STREAM_BUFFER_SIZE)); spos += sp->len; return sp->len; @@ -88,7 +88,7 @@ { off_t newpos=0; if(networking!=NULL) { - newpos=networking->networking_seek(tcp, pos, networking ); + newpos=networking->networking_seek(tcp, pos, *networking ); if( newpos<0 ) { MSG_WARN("Stream not seekable!\n"); return 1; Modified: mplayerxp/libmpstream2/s_rtsp.cpp =================================================================== --- mplayerxp/libmpstream2/s_rtsp.cpp 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/s_rtsp.cpp 2012-12-17 12:05:45 UTC (rev 569) @@ -78,7 +78,7 @@ Rtsp_Session* rtsp = static_cast<Rtsp_Session*>(networking->data); if (rtsp) rtsp->end (); delete networking->url; - free_networking(networking); + free_networking(*networking); networking=NULL; } @@ -155,12 +155,12 @@ tcp.close(); index_mode = -1; /* prevent most RTSP streams from locking due to -idx */ if (start() != MPXP_Ok) { - free_networking(networking); + free_networking(*networking); networking = NULL; return MPXP_False; } - fixup_network_stream_cache (networking); + fixup_network_stream_cache (*networking); return MPXP_Ok; } Stream::type_e Rtsp_Stream_Interface::type() const { return Stream::Type_Stream; } Modified: mplayerxp/libmpstream2/s_udp.cpp =================================================================== --- mplayerxp/libmpstream2/s_udp.cpp 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/s_udp.cpp 2012-12-17 12:05:45 UTC (rev 569) @@ -58,7 +58,7 @@ int Udp_Stream_Interface::read(stream_packet_t*sp) { - return nop_networking_read(tcp,sp->buf,sp->len,networking); + return nop_networking_read(tcp,sp->buf,sp->len,*networking); } off_t Udp_Stream_Interface::seek(off_t newpos) { return newpos; } @@ -73,7 +73,7 @@ void Udp_Stream_Interface::close() { - free_networking(networking); + free_networking(*networking); networking=NULL; } @@ -105,17 +105,17 @@ networking->url = check4proxies (url); if (url->port == 0) { MSG_ERR("You must enter a port number for UDP streams!\n"); - free_networking (networking); + free_networking (*networking); networking = NULL; return MPXP_False; } if (start () !=MPXP_Ok) { MSG_ERR("udp_networking_start failed\n"); - free_networking (networking); + free_networking (*networking); networking = NULL; return MPXP_False; } - fixup_network_stream_cache (networking); + fixup_network_stream_cache (*networking); return MPXP_Ok; } Stream::type_e Udp_Stream_Interface::type() const { return Stream::Type_Stream; } Modified: mplayerxp/libmpstream2/stream.h =================================================================== --- mplayerxp/libmpstream2/stream.h 2012-12-17 10:31:40 UTC (rev 568) +++ mplayerxp/libmpstream2/stream.h 2012-12-17 12:05:45 UTC (rev 569) @@ -11,7 +11,6 @@ #include "xmpcore/xmp_enums.h" -struct networking_t; namespace mpxp { struct libinput_t; enum { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |