[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[533] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-12-10 15:13:41
|
Revision: 533 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=533&view=rev Author: nickols_k Date: 2012-12-10 15:13:31 +0000 (Mon, 10 Dec 2012) Log Message: ----------- security patch: use const std::string& instead of const char* in classes where it's possible Modified Paths: -------------- mplayerxp/libmpdemux/demuxer_info.cpp mplayerxp/libmpdemux/demuxer_info.h mplayerxp/libmpstream/cdd.h mplayerxp/libmpstream/cdda.cpp mplayerxp/libmpstream/cddb.cpp mplayerxp/libmpstream/mrl.cpp mplayerxp/libmpstream/mrl.h mplayerxp/libmpstream/s_cdd.cpp mplayerxp/libmpstream/s_dvdnav.cpp mplayerxp/libmpstream/s_dvdread.cpp mplayerxp/libmpstream/s_file.cpp mplayerxp/libmpstream/s_ftp.cpp mplayerxp/libmpstream/s_lavc.cpp mplayerxp/libmpstream/s_network.cpp mplayerxp/libmpstream/s_null.cpp mplayerxp/libmpstream/s_oss.cpp mplayerxp/libmpstream/s_rtsp.cpp mplayerxp/libmpstream/s_tv.cpp mplayerxp/libmpstream/s_udp.cpp mplayerxp/libmpstream/s_vcdnav.cpp mplayerxp/libmpstream/stream.cpp mplayerxp/libmpstream/stream.h mplayerxp/libmpstream/stream_internal.h mplayerxp/libmpstream/url.cpp mplayerxp/libmpstream/url.h mplayerxp/libvo/video_out.cpp mplayerxp/libvo/video_out.h mplayerxp/libvo/video_out_internal.h mplayerxp/libvo/vo_fbdev.cpp mplayerxp/libvo/vo_null.cpp mplayerxp/libvo/vo_opengl.cpp mplayerxp/libvo/vo_sdl.cpp mplayerxp/libvo/vo_vesa.cpp mplayerxp/libvo/vo_x11.cpp mplayerxp/libvo/vo_xv.cpp mplayerxp/libvo/x11_system.cpp mplayerxp/libvo/x11_system.h mplayerxp/mplayerxp.cpp Modified: mplayerxp/libmpdemux/demuxer_info.cpp =================================================================== --- mplayerxp/libmpdemux/demuxer_info.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpdemux/demuxer_info.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -48,10 +48,10 @@ return MPXP_Ok; } -int Demuxer_Info::print(const char *filename) const +int Demuxer_Info::print(const std::string& filename) const { unsigned i; - MSG_HINT(" CLIP INFO (%s):\n",filename); + MSG_HINT(" CLIP INFO (%s):\n",filename.c_str()); for(i=0;i<INFOT_MAX;i++) if(id[i]) MSG_HINT(" %s: %s\n",info_names[i],id[i]); Modified: mplayerxp/libmpdemux/demuxer_info.h =================================================================== --- mplayerxp/libmpdemux/demuxer_info.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpdemux/demuxer_info.h 2012-12-10 15:13:31 UTC (rev 533) @@ -4,6 +4,7 @@ #include "osdep/mplib.h" using namespace mpxp; #include "xmpcore/xmp_enums.h" +#include <string> namespace mpxp { enum { @@ -33,7 +34,7 @@ MPXP_Rc add(unsigned opt, const char *param); const char* get(unsigned opt) const; - int print(const char *filename) const; + int print(const std::string& filename) const; private: char *id[INFOT_MAX]; Modified: mplayerxp/libmpstream/cdd.h =================================================================== --- mplayerxp/libmpstream/cdd.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/cdd.h 2012-12-10 15:13:31 UTC (rev 533) @@ -42,11 +42,11 @@ CD_Info(); virtual ~CD_Info(); - virtual cd_track_t* add_track(const char *track_name, unsigned int track_nb, unsigned int min, unsigned int sec, unsigned int msec, unsigned long frame_begin, unsigned long frame_length); + virtual cd_track_t* add_track(const std::string& track_name, unsigned int track_nb, unsigned int min, unsigned int sec, unsigned int msec, unsigned long frame_begin, unsigned long frame_length); virtual cd_track_t* get_track(unsigned int track_nb) const; virtual void print() const; - virtual MPXP_Rc parse_xmcd(const char *_xmcd_file); + virtual MPXP_Rc parse_xmcd(const std::string& _xmcd_file); std::string artist; std::string album; @@ -73,8 +73,8 @@ CDD_Interface(); virtual ~CDD_Interface(); - virtual MPXP_Rc open_cdda(const char* dev,const char* track); - virtual MPXP_Rc open_cddb(libinput_t*,const char* dev,const char* track); + virtual MPXP_Rc open_cdda(const std::string& dev,const std::string& track); + virtual MPXP_Rc open_cddb(libinput_t*,const std::string& dev,const std::string& track); virtual int read(char *buf,track_t* trackidx); virtual void seek(off_t pos,track_t *trackidx); Modified: mplayerxp/libmpstream/cdda.cpp =================================================================== --- mplayerxp/libmpstream/cdda.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/cdda.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -37,12 +37,12 @@ m_config_register_options(cfg,cdda_conf); } -static unsigned cdda_parse_tracks(unsigned char *arr,unsigned nelem,const char *arg) +static unsigned cdda_parse_tracks(unsigned char *arr,unsigned nelem,const std::string& arg) { const char *st,*end; unsigned rval=0; - unsigned slen=strlen(arg); - st=arg; + unsigned slen=arg.length(); + st=arg.c_str(); memset(arr,0,sizeof(unsigned char)*nelem); do { size_t datalen,value,evalue,i; @@ -70,22 +70,22 @@ rval=value; } st=end+1; - if(st>arg+slen) break; + if(st>arg.c_str()+slen) break; }while(end); return rval; } -MPXP_Rc CDD_Interface::open_cdda(const char* dev,const char* arg) { +MPXP_Rc CDD_Interface::open_cdda(const std::string& dev,const std::string& arg) { unsigned cd_tracks; unsigned int audiolen=0; unsigned i; unsigned char arr[256]; int st_inited; - cd = cdio_cddap_identify(dev,mp_conf.verbose?1:0,NULL); + cd = cdio_cddap_identify(dev.c_str(),mp_conf.verbose?1:0,NULL); if(!cd) { - MSG_ERR("Can't open cdda device: %s\n",dev); + MSG_ERR("Can't open cdda device: %s\n",dev.c_str()); return MPXP_False; } Modified: mplayerxp/libmpstream/cddb.cpp =================================================================== --- mplayerxp/libmpstream/cddb.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/cddb.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -582,7 +582,7 @@ } } -cd_track_t* CD_Info::add_track(const char *track_name, +cd_track_t* CD_Info::add_track(const std::string& track_name, unsigned int track_nb, unsigned int _min, unsigned int _sec, @@ -591,7 +591,7 @@ unsigned long frame_length) { cd_track_t *cd_track; - if( track_name==NULL ) return NULL; + if( track_name.empty()) return NULL; cd_track = new(zeromem) cd_track_t; if( cd_track==NULL ) { @@ -697,13 +697,13 @@ return ptr; } -MPXP_Rc CD_Info::parse_xmcd(const char *_xmcd_file) { +MPXP_Rc CD_Info::parse_xmcd(const std::string& _xmcd_file) { int length, pos = 0; char *ptr; char *ptr2; unsigned int audiolen; - if( _xmcd_file==NULL ) return MPXP_False; - char* xmcd_file = mp_strdup(_xmcd_file); + if( _xmcd_file.empty() ) return MPXP_False; + char* xmcd_file = mp_strdup(_xmcd_file.c_str()); length = strlen(xmcd_file); ptr = xmcd_file; @@ -736,7 +736,7 @@ return MPXP_Ok; } -MPXP_Rc CDD_Interface::open_cddb(libinput_t *libinput,const char *dev, const char *track) { +MPXP_Rc CDD_Interface::open_cddb(libinput_t *libinput,const std::string& dev, const std::string& track) { char *xmcd_file = NULL; MPXP_Rc ret; Modified: mplayerxp/libmpstream/mrl.cpp =================================================================== --- mplayerxp/libmpstream/mrl.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/mrl.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -82,6 +82,11 @@ return line; } +const char *mrl_parse_line(const std::string& line,char **user,char **pass,char **ms,char **port) +{ + return mrl_parse_line(line.c_str(),user,pass,ms,port); +} + static void mrl_store_args(const char *arg,char *value, const mrl_config_t * args) { #ifdef TEST_MRL @@ -180,5 +185,9 @@ if(value) delete value; return param; } +const char * mrl_parse_params(const std::string& param, const mrl_config_t * args) +{ + return mrl_parse_params(param.c_str(),args); +} } // namespace mpxp Modified: mplayerxp/libmpstream/mrl.h =================================================================== --- mplayerxp/libmpstream/mrl.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/mrl.h 2012-12-10 15:13:31 UTC (rev 533) @@ -3,6 +3,7 @@ #define __MPXP_MRL_H 1 #include "mp_config.h" +#include <string> namespace mpxp { /** Parses line which contains MRL and splits it on components. * @param line source line to be parsed @@ -23,6 +24,7 @@ * @see mrl_parse_params **/ extern const char *mrl_parse_line(const char *line,char **user,char **pass,char **ms,char **port); + extern const char *mrl_parse_line(const std::string& line,char **user,char **pass,char **ms,char **port); enum { MRL_TYPE_PRINT =0, /**< NoType! Just printout value of argument */ @@ -52,5 +54,6 @@ * @see mrl_parse_line **/ extern const char * mrl_parse_params(const char *param,const mrl_config_t * args); + extern const char * mrl_parse_params(const std::string& param,const mrl_config_t * args); } // namespace mpxp #endif Modified: mplayerxp/libmpstream/s_cdd.cpp =================================================================== --- mplayerxp/libmpstream/s_cdd.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_cdd.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -23,7 +23,7 @@ Cdda_Stream_Interface(libinput_t* libinput); virtual ~Cdda_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -46,13 +46,13 @@ track_idx(255) {} Cdda_Stream_Interface::~Cdda_Stream_Interface() { delete priv; } -MPXP_Rc Cdda_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Cdda_Stream_Interface::open(const std::string& filename,unsigned flags) { MPXP_Rc rc; const char *param; char *device; UNUSED(flags); - if(strcmp(filename,"help") == 0) { + if(filename=="help") { MSG_HINT("Usage: cdda://<@device><#trackno>\n"); return MPXP_False; } @@ -133,7 +133,7 @@ Cddb_Stream_Interface(libinput_t* libinput); virtual ~Cddb_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); private: libinput_t* libinput; }; @@ -142,14 +142,14 @@ libinput(_libinput) {} Cddb_Stream_Interface::~Cddb_Stream_Interface() {} -MPXP_Rc Cddb_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Cddb_Stream_Interface::open(const std::string& filename,unsigned flags) { #ifdef HAVE_STREAMING const char *param; char *device; MPXP_Rc retval; UNUSED(flags); - if(strcmp(filename,"help") == 0) { + if(filename=="help") { MSG_HINT("Usage: cddb://<@device><#trackno>\n"); return MPXP_False; } Modified: mplayerxp/libmpstream/s_dvdnav.cpp =================================================================== --- mplayerxp/libmpstream/s_dvdnav.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_dvdnav.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -53,7 +53,7 @@ DvdNav_Stream_Interface(libinput_t* libinput); virtual ~DvdNav_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -66,7 +66,7 @@ virtual float stream_pts() const; virtual std::string mime_type() const; private: - MPXP_Rc new_stream(const char * filename); + MPXP_Rc new_stream(const std::string& filename); void stream_ignore_timers(int ignore); void stream_sleep(int seconds); int stream_sleeping(); @@ -77,7 +77,7 @@ void cmd_handler(unsigned cmd); dvdnav_t* dvdnav; /* handle to libdvdnav stuff */ - const char* filename; /* path */ + std::string filename; /* path */ int ignore_timers; /* should timers be skipped? */ int sleeping; /* are we sleeping? */ unsigned int sleep_until; /* timer */ @@ -106,14 +106,13 @@ ignore_timers=ignore; } -MPXP_Rc DvdNav_Stream_Interface::new_stream(const char* _filename) { - const char * title_str; +MPXP_Rc DvdNav_Stream_Interface::new_stream(const std::string& _filename) { + const char* title_str; - if (!_filename) return MPXP_False; - filename=mp_strdup(_filename); + if (_filename.empty()) return MPXP_False; + filename=_filename; - if(dvdnav_open(&dvdnav,filename)!=DVDNAV_STATUS_OK) { - delete filename; + if(dvdnav_open(&dvdnav,filename.c_str())!=DVDNAV_STATUS_OK) { return MPXP_False; } @@ -180,7 +179,7 @@ return 0; } -MPXP_Rc DvdNav_Stream_Interface::open(const char *_filename,unsigned flags) +MPXP_Rc DvdNav_Stream_Interface::open(const std::string& _filename,unsigned flags) { const char *param; char *dvd_device; Modified: mplayerxp/libmpstream/s_dvdread.cpp =================================================================== --- mplayerxp/libmpstream/s_dvdread.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_dvdread.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -54,7 +54,7 @@ DvdRead_Stream_Interface(libinput_t* libinput); virtual ~DvdRead_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -69,8 +69,8 @@ private: int chapter_from_cell(int title,int cell); int number_of_subs() const; - int aid_from_lang(const char* lang) const; - int sid_from_lang(const char* lang) const; + int aid_from_lang(const std::string& lang) const; + int sid_from_lang(const std::string& lang) const; int lang_from_sid(int id) const; int next_title(int dvd_title); int next_cell(); @@ -153,9 +153,10 @@ int DvdRead_Stream_Interface::number_of_subs() const { return nr_of_subtitles; } -int DvdRead_Stream_Interface::aid_from_lang(const char* lang) const { +int DvdRead_Stream_Interface::aid_from_lang(const std::string& _lang) const { int code; unsigned i; + const char* lang=_lang.c_str(); while(lang && strlen(lang)>=2){ code=lang[1]|(lang[0]<<8); for(i=0;i<unsigned(nr_of_channels);i++){ @@ -171,9 +172,10 @@ return -1; } -int DvdRead_Stream_Interface::sid_from_lang(const char* lang) const { +int DvdRead_Stream_Interface::sid_from_lang(const std::string& _lang) const { int code; unsigned i; + const char* lang=_lang.c_str(); while(lang && strlen(lang)>=2){ code=lang[1]|(lang[0]<<8); for(i=0;i<unsigned(nr_of_subtitles);i++){ @@ -589,7 +591,7 @@ dvd_angle=1; } -MPXP_Rc DvdRead_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc DvdRead_Stream_Interface::open(const std::string& filename,unsigned flags) { UNUSED(flags); int dvd_title; @@ -598,7 +600,7 @@ char param[256]; last_title=-1; - if(strcmp(filename,"help") == 0 || strlen(filename)==10) { + if(filename=="help" || filename.length()==10) { MSG_HINT("Usage: dvdread://<@device>#<titleno>-<lasttitle>,<chapter>-<lastchapter>,<angle>\n"); return MPXP_False; } Modified: mplayerxp/libmpstream/s_file.cpp =================================================================== --- mplayerxp/libmpstream/s_file.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_file.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -25,7 +25,7 @@ File_Stream_Interface(libinput_t* libinput); virtual ~File_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -47,13 +47,13 @@ fd(0),was_open(0),spos(0) {} File_Stream_Interface::~File_Stream_Interface() {} -MPXP_Rc File_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc File_Stream_Interface::open(const std::string& filename,unsigned flags) { UNUSED(flags); - if(strcmp(filename,"-")==0) fd=0; - else fd=::open(filename,O_RDONLY); + if(filename=="-") fd=0; + else fd=::open(filename.c_str(),O_RDONLY); if(fd<0) { - MSG_ERR("[s_file] Cannot open file: '%s'\n",filename); + MSG_ERR("[s_file] Cannot open file: '%s'\n",filename.c_str()); return MPXP_False; } was_open = (fd==0)?0:1; @@ -117,12 +117,12 @@ Stdin_Stream_Interface(libinput_t* libinput); virtual ~Stdin_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); }; Stdin_Stream_Interface::Stdin_Stream_Interface(libinput_t*l):File_Stream_Interface(l) {} Stdin_Stream_Interface::~Stdin_Stream_Interface() {} -MPXP_Rc Stdin_Stream_Interface::open(const char *filename,unsigned flags) { +MPXP_Rc Stdin_Stream_Interface::open(const std::string& filename,unsigned flags) { UNUSED(filename); return File_Stream_Interface::open("-",flags); } Modified: mplayerxp/libmpstream/s_ftp.cpp =================================================================== --- mplayerxp/libmpstream/s_ftp.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_ftp.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -30,7 +30,7 @@ Ftp_Stream_Interface(libinput_t* libinput); virtual ~Ftp_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -45,7 +45,7 @@ int readresp(char* rsp); int OpenPort(); int OpenData(size_t newpos); - int SendCmd(const char *cmd,char* rsp); + int SendCmd(const std::string& cmd,char* rsp); const char* user; const char* pass; @@ -173,9 +173,10 @@ return r; } -int Ftp_Stream_Interface::SendCmd(const char *cmd,char* rsp) +int Ftp_Stream_Interface::SendCmd(const std::string& _cmd,char* rsp) { - int l = strlen(cmd); + const char* cmd=_cmd.c_str(); + int l = _cmd.length(); int hascrlf = cmd[l - 2] == '\r' && cmd[l - 1] == '\n'; if(hascrlf && l == 2) MSG_V("\n"); @@ -314,18 +315,15 @@ if(tcp.established()) tcp.close(); } -MPXP_Rc Ftp_Stream_Interface::open(const char *_filename,unsigned flags) +MPXP_Rc Ftp_Stream_Interface::open(const std::string& _filename,unsigned flags) { int resp; char str[256],rsp_txt[256]; - char *uname; + std::string uname; UNUSED(flags); - if(!(uname=new char [strlen(_filename)+7])) return MPXP_False; - strcpy(uname,"ftp://"); - strcat(uname,_filename); + uname=std::string("ftp://")+_filename; if(!(url=url_new(uname))) goto bad_url; - delete uname; // url = check4proxies (rurl); if(!(url->hostname && url->file)) { bad_url: Modified: mplayerxp/libmpstream/s_lavc.cpp =================================================================== --- mplayerxp/libmpstream/s_lavc.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_lavc.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -16,7 +16,7 @@ Lavs_Stream_Interface(libinput_t* libinput); virtual ~Lavs_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -67,15 +67,15 @@ void Lavs_Stream_Interface::close() {} -MPXP_Rc Lavs_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Lavs_Stream_Interface::open(const std::string& filename,unsigned flags) { int64_t _size; UNUSED(flags); av_register_all(); - MSG_V("[lavc] Opening %s\n", filename); + MSG_V("[lavc] Opening %s\n", filename.c_str()); - if (ffurl_open(&ctx, filename, 0, &int_cb, NULL) < 0) return MPXP_False; + if (ffurl_open(&ctx, filename.c_str(), 0, &int_cb, NULL) < 0) return MPXP_False; spos = 0; _size = ffurl_size(ctx); if (_size >= 0) end_pos = _size; Modified: mplayerxp/libmpstream/s_network.cpp =================================================================== --- mplayerxp/libmpstream/s_network.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_network.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -26,7 +26,7 @@ Network_Stream_Interface(libinput_t* libinput); virtual ~Network_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -53,14 +53,14 @@ } } -MPXP_Rc Network_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Network_Stream_Interface::open(const std::string& filename,unsigned flags) { UNUSED(flags); url = url_new(filename); if(url) { networking=new_networking(); if(networking_start(tcp,networking,url)!=MPXP_Ok){ - MSG_ERR(MSGTR_UnableOpenURL, filename); + MSG_ERR(MSGTR_UnableOpenURL, filename.c_str()); url_free(url); url=NULL; free_networking(networking); Modified: mplayerxp/libmpstream/s_null.cpp =================================================================== --- mplayerxp/libmpstream/s_null.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_null.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -13,7 +13,7 @@ Null_Stream_Interface(libinput_t* libinput); virtual ~Null_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -28,7 +28,7 @@ Null_Stream_Interface::Null_Stream_Interface(libinput_t*libinput):Stream_Interface(libinput) {} Null_Stream_Interface::~Null_Stream_Interface() {} -MPXP_Rc Null_Stream_Interface::open(const char *filename,unsigned flags) { +MPXP_Rc Null_Stream_Interface::open(const std::string& filename,unsigned flags) { UNUSED(filename); UNUSED(flags); return MPXP_False; Modified: mplayerxp/libmpstream/s_oss.cpp =================================================================== --- mplayerxp/libmpstream/s_oss.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_oss.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -33,7 +33,7 @@ Oss_Stream_Interface(libinput_t* libinput); virtual ~Oss_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -56,14 +56,14 @@ :Stream_Interface(libinput) {} Oss_Stream_Interface::~Oss_Stream_Interface() {} -MPXP_Rc Oss_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Oss_Stream_Interface::open(const std::string& filename,unsigned flags) { char *args; char *oss_device,*comma; unsigned tmp,param; int err; UNUSED(flags); - if(strcmp(filename,"help") == 0) { + if(filename=="help") { MSG_HINT("Usage: oss://<@device>#<channels>,<samplerate>,<sampleformat>\n"); return MPXP_False; } Modified: mplayerxp/libmpstream/s_rtsp.cpp =================================================================== --- mplayerxp/libmpstream/s_rtsp.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_rtsp.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -32,7 +32,7 @@ Rtsp_Stream_Interface(libinput_t* libinput); virtual ~Rtsp_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -139,13 +139,13 @@ } extern int index_mode; -MPXP_Rc Rtsp_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Rtsp_Stream_Interface::open(const std::string& filename,unsigned flags) { URL_t *url; UNUSED(flags); - if(strncmp(filename,"rtsp://",7)!=0) return MPXP_False; + if(filename.substr(0,7)!="rtsp://") return MPXP_False; - MSG_V("STREAM_RTSP, URL: %s\n", filename); + MSG_V("STREAM_RTSP, URL: %s\n", filename.c_str()); networking = new_networking(); if (!networking) return MPXP_False; Modified: mplayerxp/libmpstream/s_tv.cpp =================================================================== --- mplayerxp/libmpstream/s_tv.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_tv.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -584,7 +584,7 @@ Tv_Stream_Interface(libinput_t* libinput); virtual ~Tv_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -602,7 +602,7 @@ Tv_Stream_Interface::Tv_Stream_Interface(libinput_t*libinput):Stream_Interface(libinput) {} Tv_Stream_Interface::~Tv_Stream_Interface() { delete priv; } -MPXP_Rc Tv_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Tv_Stream_Interface::open(const std::string& filename,unsigned flags) { UNUSED(flags); mrl_parse_params(filename,tvopts_conf); Modified: mplayerxp/libmpstream/s_udp.cpp =================================================================== --- mplayerxp/libmpstream/s_udp.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_udp.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -31,7 +31,7 @@ Udp_Stream_Interface(libinput_t* libinput); virtual ~Udp_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -92,11 +92,11 @@ return MPXP_Ok; } -MPXP_Rc Udp_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc Udp_Stream_Interface::open(const std::string& filename,unsigned flags) { URL_t *url; UNUSED(flags); - MSG_V("STREAM_UDP, URL: %s\n", filename); + MSG_V("STREAM_UDP, URL: %s\n", filename.c_str()); networking = new_networking(); if (!networking) return MPXP_False; Modified: mplayerxp/libmpstream/s_vcdnav.cpp =================================================================== --- mplayerxp/libmpstream/s_vcdnav.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/s_vcdnav.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -34,7 +34,7 @@ VcdNav_Stream_Interface(libinput_t* libinput); virtual ~VcdNav_Stream_Interface(); - virtual MPXP_Rc open(const char *filename,unsigned flags); + virtual MPXP_Rc open(const std::string& filename,unsigned flags); virtual int read(stream_packet_t * sp); virtual off_t seek(off_t off); virtual off_t tell() const; @@ -73,10 +73,10 @@ if(segment) delete segment; } -static void __FASTCALL__ _cdio_detect_media(const char *device) +static void __FASTCALL__ _cdio_detect_media(const std::string& device) { CdIo_t *img; - img=cdio_open(device,DRIVER_UNKNOWN); + img=cdio_open(device.c_str(),DRIVER_UNKNOWN); if(img) { discmode_t mode=cdio_get_discmode(img); @@ -84,7 +84,7 @@ } } -MPXP_Rc VcdNav_Stream_Interface::open(const char *filename,unsigned flags) +MPXP_Rc VcdNav_Stream_Interface::open(const std::string& filename,unsigned flags) { const char *param; char *device,*dev; @@ -92,7 +92,7 @@ int vcd_track=-1; vcdinfo_open_return_t open_rc; UNUSED(flags); - if(strcmp(filename,"help") == 0) { + if(filename=="help") { MSG_HINT("Usage: vcdnav://<@device><#trackno>\n"); return MPXP_False; } Modified: mplayerxp/libmpstream/stream.cpp =================================================================== --- mplayerxp/libmpstream/stream.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/stream.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -120,7 +120,7 @@ int Stream::eof() const { return _eof; } void Stream::eof(int e) { if(!e) reset(); _eof = e; } -MPXP_Rc Stream::open(libinput_t*libinput,const char* filename,int* ff) +MPXP_Rc Stream::open(libinput_t*libinput,const std::string& filename,int* ff) { unsigned i,done; unsigned mrl_len; @@ -128,7 +128,7 @@ done=0; for(i=0;sdrivers[i]!=&null_stream;i++) { mrl_len=strlen(sdrivers[i]->mrl); - if(strncmp(filename,sdrivers[i]->mrl,mrl_len)==0||sdrivers[i]->mrl[0]=='*') { + if(filename.substr(0,mrl_len)==sdrivers[i]->mrl||sdrivers[i]->mrl[0]=='*') { MSG_V("Opening %s ... ",sdrivers[i]->mrl); Stream_Interface* drv = sdrivers[i]->query_interface(libinput); if(sdrivers[i]->mrl[0]=='*') mrl_len=0; Modified: mplayerxp/libmpstream/stream.h =================================================================== --- mplayerxp/libmpstream/stream.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/stream.h 2012-12-10 15:13:31 UTC (rev 533) @@ -58,7 +58,7 @@ static void print_drivers(); - virtual MPXP_Rc open(libinput_t*libinput,const char* filename,int* file_format); + virtual MPXP_Rc open(libinput_t*libinput,const std::string& filename,int* file_format); virtual int read(any_t* mem,int total); virtual off_t seek(off_t off); virtual int skip(off_t len); Modified: mplayerxp/libmpstream/stream_internal.h =================================================================== --- mplayerxp/libmpstream/stream_internal.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/stream_internal.h 2012-12-10 15:13:31 UTC (rev 533) @@ -19,7 +19,7 @@ * @param filename points MRL of stream (vcdnav://, file://, http://, ...) * @param flags currently unused and filled as 0 **/ - virtual MPXP_Rc open(const char *filename,unsigned flags) = 0; + virtual MPXP_Rc open(const std::string& filename,unsigned flags) = 0; /** Reads next packet from stream * @param _this points structure which identifies stream Modified: mplayerxp/libmpstream/url.cpp =================================================================== --- mplayerxp/libmpstream/url.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/url.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -45,21 +45,20 @@ return res; } -URL_t* -url_new(const char* url) { +URL_t* url_new(const std::string& url) { int pos1, pos2,v6addr = 0; URL_t* Curl = NULL; char *escfilename=NULL; char *ptr1=NULL, *ptr2=NULL, *ptr3=NULL, *ptr4=NULL; int jumpSize = 3; - if( url==NULL ) return NULL; + if( url.empty()) return NULL; - if (strlen(url) > (std::numeric_limits<size_t>::max() / 3 - 1)) { + if (url.length() > (std::numeric_limits<size_t>::max() / 3 - 1)) { MSG_FATAL("MemAllocFailed\n"); goto err_out; } - escfilename=new char [strlen(url)*3+1]; + escfilename=new char [url.length()*3+1]; if (!escfilename ) { MSG_FATAL("MemAllocFailed\n"); goto err_out; @@ -241,10 +240,10 @@ /* Replace escape sequences in an URL (or a part of an URL) */ /* works like strcpy(), but without return argument */ void -url2string(char *outbuf, const char *inbuf) +url2string(char *outbuf, const std::string& inbuf) { unsigned char c,c1,c2; - int i,len=strlen(inbuf); + int i,len=inbuf.length(); for (i=0;i<len;i++){ c = inbuf[i]; if (c == '%' && i<len-2) { //must have 2 more chars @@ -311,8 +310,8 @@ /* Replace specific characters in the URL string by an escape sequence */ /* works like strcpy(), but without return argument */ void -string2url(char *outbuf, const char *_inbuf) { - char* inbuf=mp_strdup(_inbuf); +string2url(char *outbuf, const std::string& _inbuf) { + char* inbuf=mp_strdup(_inbuf.c_str()); int i = 0,j,len = strlen(inbuf); char* tmp,*in; char *unesc = NULL; Modified: mplayerxp/libmpstream/url.h =================================================================== --- mplayerxp/libmpstream/url.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libmpstream/url.h 2012-12-10 15:13:31 UTC (rev 533) @@ -6,7 +6,7 @@ #ifndef __URL_H #define __URL_H - +#include <string> //#define __URL_DEBUG namespace mpxp { @@ -20,12 +20,12 @@ char *password; } URL_t; - URL_t* url_new(const char* url); + URL_t* url_new(const std::string& url); void url_free(URL_t* url); URL_t *url_redirect(URL_t **url, const char *redir); - void url2string(char *outbuf, const char *inbuf); - void string2url(char *outbuf, const char *inbuf); + void url2string(char *outbuf, const std::string& inbuf); + void string2url(char *outbuf, const std::string& inbuf); #ifdef __URL_DEBUG void url_debug(URL_t* url); Modified: mplayerxp/libvo/video_out.cpp =================================================================== --- mplayerxp/libvo/video_out.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/video_out.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -170,22 +170,23 @@ return priv.video_out; } -MPXP_Rc Video_Output::init(const char *driver_name) const +MPXP_Rc Video_Output::init(const std::string& driver_name) const { - char* drv_name = NULL; - char * subdev = NULL; - if(driver_name) { - drv_name=mp_strdup(driver_name); - subdev = strchr(drv_name,':'); - if(subdev) { *subdev='\0'; subdev++; } + size_t offset; + std::string drv_name; + std::string subdev; + if(!driver_name.empty()) { + drv_name=driver_name; + offset=drv_name.find(':'); + if(offset!=std::string::npos) subdev = drv_name.substr(offset+1); } vo_priv_t& priv=*static_cast<vo_priv_t*>(vo_priv); unsigned i; - if(!drv_name) priv.video_out=vo_infos[0]; + if(drv_name.empty()) priv.video_out=vo_infos[0]; else for (i=0; vo_infos[i] != &null_vo_info; i++){ const vo_info_t *info = vo_infos[i]; - if(strcmp(info->short_name,drv_name) == 0){ + if(info->short_name==drv_name){ priv.video_out = vo_infos[i]; break; } @@ -194,7 +195,6 @@ if(priv.video_out) { priv.vo_iface=priv.video_out->query_interface(subdev); } - if(drv_name) delete drv_name; return priv.vo_iface?MPXP_Ok:MPXP_False; } @@ -312,7 +312,7 @@ } MPXP_Rc Video_Output::configure(vf_stream_t* s,uint32_t width, uint32_t height, uint32_t d_width, - uint32_t d_height, vo_flags_e _fullscreen, const char *title, + uint32_t d_height, vo_flags_e _fullscreen, const std::string& title, uint32_t format) { vo_priv_t& priv=*static_cast<vo_priv_t*>(vo_priv); @@ -338,7 +338,7 @@ priv.dri.d_width = d_w; priv.dri.d_height = d_h; MSG_V("priv.video_out->config(%u,%u,%u,%u,0x%x,'%s',%s)\n" - ,w,h,d_w,d_h,_fullscreen,title,vo_format_name(dest_fourcc)); + ,w,h,d_w,d_h,_fullscreen,title.c_str(),vo_format_name(dest_fourcc)); retval = priv.vo_iface->configure(w,h,d_w,d_h,_fullscreen,title,dest_fourcc); priv.srcFourcc=format; if(retval == MPXP_Ok) { Modified: mplayerxp/libvo/video_out.h =================================================================== --- mplayerxp/libvo/video_out.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/video_out.h 2012-12-10 15:13:31 UTC (rev 533) @@ -13,6 +13,7 @@ #include "osdep/mplib.h" using namespace mpxp; +#include <string> #include <inttypes.h> #include <stdarg.h> @@ -50,7 +51,7 @@ /** Text description of VO-driver */ class VO_Interface; - typedef VO_Interface* (*query_interface_t)(const char* args); + typedef VO_Interface* (*query_interface_t)(const std::string& args); struct vo_info_t { const char* name; /**< driver name ("Matrox Millennium G200/G400") */ const char* short_name; /**< short name (for config strings) ("mga") */ @@ -166,12 +167,14 @@ void FLIP_UNSET() { flags&=~VOFLAG_FLIPPING; } void FLIP_REVERT() { flags^=VOFLAG_FLIPPING; } - virtual MPXP_Rc init(const char *driver_name) const; + virtual MPXP_Rc init(const std::string& driver_name) const; virtual void print_help() const; virtual const vo_info_t* get_info() const; - virtual MPXP_Rc configure(vf_stream_t* parent,uint32_t width, uint32_t height, uint32_t d_width, - uint32_t d_height, vo_flags_e fullscreen,const char *title, - uint32_t format); + virtual MPXP_Rc configure(vf_stream_t* parent,uint32_t width, + uint32_t height, uint32_t d_width, + uint32_t d_height, vo_flags_e fullscreen, + const std::string& title, + uint32_t format); virtual uint32_t query_format(uint32_t* fourcc,unsigned src_w,unsigned src_h) const; virtual MPXP_Rc reset() const; Modified: mplayerxp/libvo/video_out_internal.h =================================================================== --- mplayerxp/libvo/video_out_internal.h 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/video_out_internal.h 2012-12-10 15:13:31 UTC (rev 533) @@ -23,11 +23,12 @@ #ifndef __VIDEO_OUT_INTERNAL_H #define __VIDEO_OUT_INTERNAL_H 1 #include "dri_vo.h" +#include <string> namespace mpxp { class VO_Interface : public Opaque { public: - VO_Interface(const char *args) { UNUSED(args); }; + VO_Interface(const std::string& args) { UNUSED(args); }; virtual ~VO_Interface() {}; virtual MPXP_Rc configure(uint32_t width, @@ -35,7 +36,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format) = 0; virtual MPXP_Rc select_frame(unsigned idx) = 0; virtual MPXP_Rc flush_page(unsigned idx) { UNUSED(idx); return MPXP_NA; } Modified: mplayerxp/libvo/vo_fbdev.cpp =================================================================== --- mplayerxp/libvo/vo_fbdev.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/vo_fbdev.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -109,7 +109,7 @@ class FBDev_VO_Interface : public VO_Interface { public: - FBDev_VO_Interface(const char* args); + FBDev_VO_Interface(const std::string& args); virtual ~FBDev_VO_Interface(); virtual MPXP_Rc configure(uint32_t width, @@ -117,7 +117,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format); virtual MPXP_Rc select_frame(unsigned idx); virtual MPXP_Rc flush_page(unsigned idx); @@ -130,8 +130,8 @@ virtual MPXP_Rc ctrl(uint32_t request, any_t*data); private: MPXP_Rc fb_preinit(); - const char* parse_sub_device(const char *sd); - int parse_fbmode_cfg(const char *cfgfile); + std::string parse_sub_device(const std::string& sd); + int parse_fbmode_cfg(const std::string& cfgfile); int get_token(int num); void vt_set_textarea(int u, int l); void lots_of_printf() const; @@ -189,11 +189,11 @@ MPXP_Rc fb_works; }; -const char* FBDev_VO_Interface::parse_sub_device(const char *sd) +std::string FBDev_VO_Interface::parse_sub_device(const std::string& sd) { const char *param; #ifdef CONFIG_VIDIX - if(memcmp(sd,"vidix",5) == 0) return &sd[5]; /* vidix_name will be valid within init() */ + if(sd.substr(0,5)=="vidix") return &sd[5]; /* vidix_name will be valid within init() */ else #endif { @@ -292,16 +292,16 @@ #endif } -FBDev_VO_Interface::FBDev_VO_Interface(const char *arg) +FBDev_VO_Interface::FBDev_VO_Interface(const std::string& arg) :VO_Interface(arg), aspect(new(zeromem) Aspect(mp_conf.monitor_pixel_aspect)) { - const char *vidix_name=NULL; - if(arg) vidix_name=parse_sub_device(arg); + std::string vidix_name; + if(!arg.empty()) vidix_name=parse_sub_device(arg); #ifdef CONFIG_VIDIX - if(vidix_name) { + if(!vidix_name.empty()) { if(!(vidix=new(zeromem) Vidix_System(vidix_name))) { - MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name); + MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name.c_str()); exit_player("Vidix error"); } } @@ -361,7 +361,7 @@ static fb_mode_t *fb_modes = NULL; static int nr_modes = 0; -int FBDev_VO_Interface::parse_fbmode_cfg(const char *cfgfile) +int FBDev_VO_Interface::parse_fbmode_cfg(const std::string& cfgfile) { #define CHECK_IN_MODE_DEF\ do {\ @@ -376,14 +376,14 @@ int in_mode_def = 0; int tmp, i; - MSG_DBG2("Reading %s: ", cfgfile); + MSG_DBG2("Reading %s: ", cfgfile.c_str()); - if ((fp = fopen(cfgfile, "r")) == NULL) { - MSG_ERR("can't open '%s': %s\n", cfgfile, strerror(errno)); + if ((fp = fopen(cfgfile.c_str(), "r")) == NULL) { + MSG_ERR("can't open '%s': %s\n", cfgfile.c_str(), strerror(errno)); return -1; } - if ((line = (char *) mp_malloc(MAX_LINE_LEN + 1)) == NULL) { + if ((line = new char[MAX_LINE_LEN + 1]) == NULL) { MSG_ERR("can't get memory for 'line': %s\n", strerror(errno)); return -2; } @@ -894,7 +894,7 @@ } MPXP_Rc FBDev_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, - uint32_t d_height, unsigned _flags, const char *title, + uint32_t d_height, unsigned _flags, const std::string& title, uint32_t format) { struct fb_cmap *cmap; @@ -1206,7 +1206,7 @@ return MPXP_NA; } -static VO_Interface* query_interface(const char* args) { return new(zeromem) FBDev_VO_Interface(args); } +static VO_Interface* query_interface(const std::string& args) { return new(zeromem) FBDev_VO_Interface(args); } extern const vo_info_t fbdev_vo_info = { "Framebuffer Device" #ifdef CONFIG_VIDIX Modified: mplayerxp/libvo/vo_null.cpp =================================================================== --- mplayerxp/libvo/vo_null.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/vo_null.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -41,7 +41,7 @@ namespace mpxp { class Null_VO_Interface : public VO_Interface { public: - Null_VO_Interface(const char* args); + Null_VO_Interface(const std::string& args); virtual ~Null_VO_Interface(); virtual MPXP_Rc configure(uint32_t width, @@ -49,7 +49,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format); virtual MPXP_Rc select_frame(unsigned idx); virtual void get_surface_caps(dri_surface_cap_t *caps) const; @@ -74,7 +74,7 @@ return MPXP_Ok; } -MPXP_Rc Null_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,unsigned flags,const char *title, uint32_t format) +MPXP_Rc Null_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,unsigned flags,const std::string& title, uint32_t format) { unsigned awidth; size_t i; @@ -139,10 +139,10 @@ } } -Null_VO_Interface::Null_VO_Interface(const char *arg) +Null_VO_Interface::Null_VO_Interface(const std::string& arg) :VO_Interface(arg) { - if(arg) MSG_ERR("vo_null: Unknown subdevice: %s\n",arg); + if(!arg.empty()) MSG_ERR("vo_null: Unknown subdevice: %s\n",arg.c_str()); } void Null_VO_Interface::get_surface_caps(dri_surface_cap_t *caps) const @@ -224,10 +224,12 @@ } MPXP_Rc Null_VO_Interface::ctrl(uint32_t request, any_t*data) { + UNUSED(request); + UNUSED(data); return MPXP_NA; } -static VO_Interface* query_interface(const char* args) { return new(zeromem) Null_VO_Interface(args); } +static VO_Interface* query_interface(const std::string& args) { return new(zeromem) Null_VO_Interface(args); } extern const vo_info_t null_vo_info = { "Null video output", "null", Modified: mplayerxp/libvo/vo_opengl.cpp =================================================================== --- mplayerxp/libvo/vo_opengl.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/vo_opengl.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -55,7 +55,7 @@ namespace mpxp { class OpenGL_VO_Interface : public VO_Interface { public: - OpenGL_VO_Interface(const char* args); + OpenGL_VO_Interface(const std::string& args); virtual ~OpenGL_VO_Interface(); virtual MPXP_Rc configure(uint32_t width, @@ -63,7 +63,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format); virtual MPXP_Rc select_frame(unsigned idx); virtual void get_surface_caps(dri_surface_cap_t *caps) const; @@ -94,7 +94,7 @@ LocalPtr<GLX_System> glx; }; -OpenGL_VO_Interface::OpenGL_VO_Interface(const char *arg) +OpenGL_VO_Interface::OpenGL_VO_Interface(const std::string& arg) :VO_Interface(arg), aspect(new(zeromem) Aspect(mp_conf.monitor_pixel_aspect)), glx(new(zeromem) GLX_System(vo_conf.mDisplayName,vo_conf.xinerama_screen)) @@ -158,7 +158,7 @@ /* connect to server, create and map window, * allocate colors and (shared) memory */ -MPXP_Rc OpenGL_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,unsigned _flags, const char *title, uint32_t format) +MPXP_Rc OpenGL_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,unsigned _flags, const std::string& title, uint32_t format) { int is_bgr; XSizeHints hint; @@ -289,10 +289,12 @@ } MPXP_Rc OpenGL_VO_Interface::ctrl(uint32_t request, any_t*data) { + UNUSED(request); + UNUSED(data); return MPXP_NA; } -static VO_Interface* query_interface(const char* args) { return new(zeromem) OpenGL_VO_Interface(args); } +static VO_Interface* query_interface(const std::string& args) { return new(zeromem) OpenGL_VO_Interface(args); } extern const vo_info_t opengl_vo_info = { "X11 (OpenGL)", Modified: mplayerxp/libvo/vo_sdl.cpp =================================================================== --- mplayerxp/libvo/vo_sdl.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/vo_sdl.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -167,7 +167,7 @@ class SDL_VO_Interface : public VO_Interface { public: - SDL_VO_Interface(const char* args); + SDL_VO_Interface(const std::string& args); virtual ~SDL_VO_Interface(); virtual MPXP_Rc configure(uint32_t width, @@ -175,7 +175,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format); virtual MPXP_Rc select_frame(unsigned idx); virtual MPXP_Rc flush_page(unsigned idx); @@ -197,7 +197,7 @@ void erase_rectangle(unsigned idx,int x, int y, int w, int h); void lock_surfaces(); void unlock_surfaces(); - const char* parse_sub_device(const char *sd) const; + std::string parse_sub_device(const std::string& sd) const; std::string sdl_subdevice; @@ -243,12 +243,12 @@ } /** Private SDL Data structure **/ -const char* SDL_VO_Interface::parse_sub_device(const char *sd) const +std::string SDL_VO_Interface::parse_sub_device(const std::string& sd) const { #ifdef CONFIG_VIDIX - if(memcmp(sd,"vidix",5) == 0) return &sd[5]; /* vidix_name will be valid within init() */ + if(sd.substr(0,5)=="vidix") return &sd[5]; /* vidix_name will be valid within init() */ #endif - return NULL; + return ""; } SDL_VO_Interface::~SDL_VO_Interface() @@ -263,22 +263,22 @@ #endif } -SDL_VO_Interface::SDL_VO_Interface(const char *arg) +SDL_VO_Interface::SDL_VO_Interface(const std::string& arg) :VO_Interface(arg), aspect(new(zeromem) Aspect(mp_conf.monitor_pixel_aspect)) #ifdef HAVE_X11 ,x11(new(zeromem) X11_System(vo_conf.mDisplayName,vo_conf.xinerama_screen)) #endif { - const char* vidix_name=NULL; + std::string vidix_name; num_buffs = 1; surface = NULL; - if(arg) sdl_subdevice=arg; - if(arg) vidix_name = parse_sub_device(arg); + if(!arg.empty()) sdl_subdevice=arg; + if(!arg.empty()) vidix_name = parse_sub_device(arg); #ifdef CONFIG_VIDIX - if(vidix_name) { + if(!vidix_name.empty()) { if(!(vidix=new(zeromem) Vidix_System(vidix_name))) { - MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name); + MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name.c_str()); exit_player("Vidix error"); } } @@ -543,7 +543,7 @@ * returns : non-zero on success, zero on error. **/ -MPXP_Rc SDL_VO_Interface::configure(uint32_t _width, uint32_t _height, uint32_t d_width, uint32_t d_height,unsigned _flags, const char *title, uint32_t _format) +MPXP_Rc SDL_VO_Interface::configure(uint32_t _width, uint32_t _height, uint32_t d_width, uint32_t d_height,unsigned _flags, const std::string& title, uint32_t _format) //static int sdl_setup (int width, int height) { MPXP_Rc retval; @@ -601,7 +601,7 @@ format = _format; /* Set output window title */ - SDL_WM_SetCaption (".: MPlayerXP : F = Fullscreen/Windowed : C = Cycle Fullscreen Resolutions :.", title); + SDL_WM_SetCaption (".: MPlayerXP : F = Fullscreen/Windowed : C = Cycle Fullscreen Resolutions :.", title.c_str()); if(mode == GL) { switch(_format){ @@ -1247,7 +1247,7 @@ return MPXP_NA; } -static VO_Interface* query_interface(const char* args) { return new(zeromem) SDL_VO_Interface(args); } +static VO_Interface* query_interface(const std::string& args) { return new(zeromem) SDL_VO_Interface(args); } extern const vo_info_t sdl_vo_info = { "SDL YUV/RGB/BGR renderer (SDL v1.1.7+ !)" #ifdef CONFIG_VIDIX Modified: mplayerxp/libvo/vo_vesa.cpp =================================================================== --- mplayerxp/libvo/vo_vesa.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/vo_vesa.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -60,7 +60,7 @@ class VESA_VO_Interface : public VO_Interface { public: - VESA_VO_Interface(const char* args); + VESA_VO_Interface(const std::string& args); virtual ~VESA_VO_Interface(); virtual MPXP_Rc configure(uint32_t width, @@ -68,7 +68,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format); virtual MPXP_Rc select_frame(unsigned idx); virtual MPXP_Rc flush_page(unsigned idx); @@ -80,7 +80,7 @@ virtual uint32_t check_events(const vo_resize_t*); virtual MPXP_Rc ctrl(uint32_t request, any_t*data); private: - const char* parse_sub_device(const char *sd); + std::string parse_sub_device(const std::string& sd); int has_dga() const { return win.idx == -1; } int valid_win_frame(unsigned long offset) const { return offset >= win.low && offset < win.high; } any_t* video_ptr(unsigned long offset) const { return win.ptr + offset - win.low; } @@ -159,21 +159,21 @@ #endif } -VESA_VO_Interface::VESA_VO_Interface(const char *arg) +VESA_VO_Interface::VESA_VO_Interface(const std::string& arg) :VO_Interface(arg), aspect(new(zeromem) Aspect(mp_conf.monitor_pixel_aspect)) { - const char* vidix_name=NULL; + std::string vidix_name; MPXP_Rc pre_init_err = MPXP_Ok; subdev_flags = 0xFFFFFFFEUL; cpy_blk_fnc=NULL; - MSG_DBG2("vo_vesa: preinit(%s) was called\n",arg); - MSG_DBG3("vo_vesa: subdevice %s is being initialized\n",arg); - if(arg) vidix_name = parse_sub_device(arg); + MSG_DBG2("vo_vesa: preinit(%s) was called\n",arg.c_str()); + MSG_DBG3("vo_vesa: subdevice %s is being initialized\n",arg.c_str()); + if(!arg.empty()) vidix_name = parse_sub_device(arg); #ifdef CONFIG_VIDIX - if(vidix_name) { + if(!vidix_name.empty()) { if(!(vidix=new(zeromem) Vidix_System(vidix_name))) { - MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name); + MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name.c_str()); exit_player("Vidix error"); } } @@ -309,18 +309,18 @@ #define SUBDEV_NODGA 0x00000001UL #define SUBDEV_FORCEDGA 0x00000002UL -const char* VESA_VO_Interface::parse_sub_device(const char *sd) +std::string VESA_VO_Interface::parse_sub_device(const std::string& sd) { subdev_flags = 0; - if(strcmp(sd,"nodga") == 0) { subdev_flags |= SUBDEV_NODGA; subdev_flags &= ~(SUBDEV_FORCEDGA); } + if(sd=="nodga") { subdev_flags |= SUBDEV_NODGA; subdev_flags &= ~(SUBDEV_FORCEDGA); } else - if(strcmp(sd,"dga") == 0) { subdev_flags &= ~(SUBDEV_NODGA); subdev_flags |= SUBDEV_FORCEDGA; } + if(sd=="dga") { subdev_flags &= ~(SUBDEV_NODGA); subdev_flags |= SUBDEV_FORCEDGA; } #ifdef CONFIG_VIDIX else - if(memcmp(sd,"vidix",5) == 0) return &sd[5]; /* priv.vidix_name will be valid within init() */ + if(sd.substr(0,5)=="vidix") return &sd[5]; /* priv.vidix_name will be valid within init() */ #endif - else { MSG_ERR("vo_vesa: Unknown subdevice: '%s'\n", sd); subdev_flags = 0xFFFFFFFFUL; } - return NULL; + else { MSG_ERR("vo_vesa: Unknown subdevice: '%s'\n", sd.c_str()); subdev_flags = 0xFFFFFFFFUL; } + return ""; } static int __FASTCALL__ check_depth(unsigned bpp) @@ -427,7 +427,7 @@ * bit 2 (0x04) enables software scaling (-zoom) * bit 3 (0x08) enables flipping (-flip) (NK: and for what?) */ -MPXP_Rc VESA_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,unsigned flags, const char *title, uint32_t format) +MPXP_Rc VESA_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,unsigned flags, const std::string& title, uint32_t format) { struct VbeInfoBlock vib; struct VesaModeInfoBlock vmib; @@ -594,8 +594,8 @@ if(use_scaler || fs_mode) { /* software scale */ if(use_scaler > 1) { - aspect.save(width,height,d_width,d_height,vmode_info.XResolution,vmode_info.YResolution); - aspect.calc(dstW,dstH,flags&VOFLAG_FULLSCREEN?Aspect::ZOOM:Aspect::NOZOOM); + aspect->save(width,height,d_width,d_height,vmode_info.XResolution,vmode_info.YResolution); + aspect->calc(dstW,dstH,flags&VOFLAG_FULLSCREEN?Aspect::ZOOM:Aspect::NOZOOM); } else if(fs_mode) { dstW = vmode_info.XResolution; dstH = vmode_info.YResolution; @@ -715,9 +715,9 @@ int x; if(mp_conf.verbose>1) paintBkGnd(); else clear_screen(); - x = (vmode_info.XResolution/vmode_info.XCharSize)/2-strlen(title)/2; + x = (vmode_info.XResolution/vmode_info.XCharSize)/2-title.length()/2; if(x < 0) x = 0; - vbeWriteString(x,0,7,title); + vbeWriteString(x,0,7,title.c_str()); } return MPXP_Ok; } @@ -803,7 +803,7 @@ return MPXP_NA; } -static VO_Interface* query_interface(const char* args) { return new(zeromem) VESA_VO_Interface(args); } +static VO_Interface* query_interface(const std::string& args) { return new(zeromem) VESA_VO_Interface(args); } extern const vo_info_t vesa_vo_info = { "VESA VBE 2.0 video output" Modified: mplayerxp/libvo/vo_x11.cpp =================================================================== --- mplayerxp/libvo/vo_x11.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/vo_x11.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -54,7 +54,7 @@ namespace mpxp { class X11_VO_Interface : public VO_Interface { public: - X11_VO_Interface(const char* args); + X11_VO_Interface(const std::string& args); virtual ~X11_VO_Interface(); virtual MPXP_Rc configure(uint32_t width, @@ -62,7 +62,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format); virtual MPXP_Rc select_frame(unsigned idx); virtual MPXP_Rc flush_page(unsigned idx); @@ -75,7 +75,7 @@ virtual uint32_t check_events(const vo_resize_t*); virtual MPXP_Rc ctrl(uint32_t request, any_t*data); private: - const char* parse_sub_device(const char *sd); + std::string parse_sub_device(const std::string& sd); void resize(int x,int y) const; void display_image(XImage * myximage) const; void lock_surfaces(); @@ -118,32 +118,32 @@ #include <X11/extensions/XShm.h> #endif -const char* X11_VO_Interface::parse_sub_device(const char *sd) +std::string X11_VO_Interface::parse_sub_device(const std::string& sd) { #ifdef CONFIG_VIDIX - if(memcmp(sd,"vidix",5) == 0) return &sd[5]; /* vidix_name will be valid within init() */ + if(sd.substr(0,5)=="vidix") return &sd[5]; /* vidix_name will be valid within init() */ #endif - MSG_ERR("vo_x11: Unknown subdevice: '%s'\n", sd); - return NULL; + MSG_ERR("vo_x11: Unknown subdevice: '%s'\n", sd.c_str()); + return ""; } -X11_VO_Interface::X11_VO_Interface(const char *arg) +X11_VO_Interface::X11_VO_Interface(const std::string& arg) :VO_Interface(arg), aspect(new(zeromem) Aspect(mp_conf.monitor_pixel_aspect)), x11(new(zeromem) X11_System(vo_conf.mDisplayName,vo_conf.xinerama_screen)) { - const char* vidix_name=NULL; + std::string vidix_name; num_buffers=1; pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); pthread_mutex_init(&surfaces_mutex,&attr); - if(arg) vidix_name = parse_sub_device(arg); + if(!arg.empty()) vidix_name = parse_sub_device(arg); #ifdef CONFIG_VIDIX - if(vidix_name) { -MSG_INFO("args=%s vidix-name=%s\n",arg,vidix_name); + if(!vidix_name.empty()) { +MSG_INFO("args=%s vidix-name=%s\n",arg.c_str(),vidix_name.c_str()); if(!(vidix=new(zeromem) Vidix_System(vidix_name))) { - MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name); + MSG_ERR("Cannot initialze vidix with '%s' argument\n",vidix_name.c_str()); exit_player("Vidix error"); } } @@ -214,7 +214,7 @@ return ret; } -MPXP_Rc X11_VO_Interface::configure(uint32_t width,uint32_t height,uint32_t d_width,uint32_t d_height,unsigned _flags,const char *title,uint32_t format) +MPXP_Rc X11_VO_Interface::configure(uint32_t width,uint32_t height,uint32_t d_width,uint32_t d_height,unsigned _flags,const std::string& title,uint32_t format) { XSizeHints hint; unsigned i; @@ -425,7 +425,7 @@ return MPXP_NA; } -static VO_Interface* query_interface(const char* args) { return new(zeromem) X11_VO_Interface(args); } +static VO_Interface* query_interface(const std::string& args) { return new(zeromem) X11_VO_Interface(args); } extern const vo_info_t x11_vo_info = { "X11 ( XImage/Shm )" Modified: mplayerxp/libvo/vo_xv.cpp =================================================================== --- mplayerxp/libvo/vo_xv.cpp 2012-12-10 13:30:58 UTC (rev 532) +++ mplayerxp/libvo/vo_xv.cpp 2012-12-10 15:13:31 UTC (rev 533) @@ -42,7 +42,7 @@ namespace mpxp { class Xv_VO_Interface : public VO_Interface { public: - Xv_VO_Interface(const char* args); + Xv_VO_Interface(const std::string& args); virtual ~Xv_VO_Interface(); virtual MPXP_Rc configure(uint32_t width, @@ -50,7 +50,7 @@ uint32_t d_width, uint32_t d_height, unsigned flags, - const char *title, + const std::string& title, uint32_t format); virtual MPXP_Rc select_frame(unsigned idx); virtual void get_surface_caps(dri_surface_cap_t *caps) const; @@ -83,14 +83,14 @@ int XShmGetEventBase(Display*); // FIXME: dynamically allocate this stuff -Xv_VO_Interface::Xv_VO_Interface(const char *arg) +Xv_VO_Interface::Xv_VO_Interface(const std::string& arg) :VO_Interface(arg), aspect(new(zeromem) Aspect(mp_conf.monitor_pixel_aspect)), xv(new(zeromem) Xv_System(vo_conf.mDisplayName,vo_conf.xinerama_screen)) { num_buffers=1; - if(arg) { - MSG_ERR("vo_xv: Unknown subdevice: %s\n",arg); + if(!arg.empty()) { + MSG_ERR("vo_xv: Unknown subdevice: %s\n",arg.c_str()); exit_player("Xv error"); } } @@ -143,7 +143,7 @@ * connect to server, create and map window, * allocate colors and (shared) memory */ -MPXP_Rc Xv_VO_Interface::configure(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height,unsigned _flags,const char *title, uint32_t _format) +MPXP_Rc Xv_VO_Interface::configure(uint32_t width, uint32_t height, u... [truncated message content] |