[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[141] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2010-02-15 17:22:56
|
Revision: 141 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=141&view=rev Author: nickols_k Date: 2010-02-15 17:22:49 +0000 (Mon, 15 Feb 2010) Log Message: ----------- new command line key + minor optimizations Modified Paths: -------------- mplayerxp/cfg-mplayer.h mplayerxp/libmpdemux/cache2.c mplayerxp/libmpdemux/cdda.c mplayerxp/libmpdemux/stream.c mplayerxp/mp_msg.c mplayerxp/mplayer.c Modified: mplayerxp/cfg-mplayer.h =================================================================== --- mplayerxp/cfg-mplayer.h 2010-02-10 16:31:34 UTC (rev 140) +++ mplayerxp/cfg-mplayer.h 2010-02-15 17:22:49 UTC (rev 141) @@ -78,6 +78,7 @@ extern unsigned vo_use_bm; #if defined( ARCH_X86 ) || defined(ARCH_X86_64) +extern int x86_simd; extern int x86_mmx; extern int x86_mmx2; extern int x86_3dnow; @@ -168,6 +169,8 @@ #if defined( ARCH_X86 ) || defined(ARCH_X86_64) static const config_t cpu_config[]={ + {"simd", &x86_simd, CONF_TYPE_FLAG, 0, 0, 1, NULL, "enables using of SIMD extensions of CPU"}, + {"nosimd", &x86_simd, CONF_TYPE_FLAG, 0, 1, 0, NULL, "disables using of SIMD extensions of CPU"}, {"mmx", &x86_mmx, CONF_TYPE_FLAG, 0, 0, 1, NULL, "enables using of MMX extensions of CPU"}, {"nommx", &x86_mmx, CONF_TYPE_FLAG, 0, 1, 0, NULL, "disables using of MMX extensions of CPU"}, {"mmx2", &x86_mmx2, CONF_TYPE_FLAG, 0, 0, 1, NULL, "enables using of MMX2 extensions of CPU"}, Modified: mplayerxp/libmpdemux/cache2.c =================================================================== --- mplayerxp/libmpdemux/cache2.c 2010-02-10 16:31:34 UTC (rev 140) +++ mplayerxp/libmpdemux/cache2.c 2010-02-15 17:22:49 UTC (rev 141) @@ -18,6 +18,7 @@ #include "../osdep/timer.h" #include "../cpudetect.h" #include "bswap.h" +#include "../libvo/fastmemcpy.h" #include "../help_mp.h" #include "mpdemux.h" #include "../mplayer.h" @@ -213,7 +214,7 @@ free(c); return 0; } - memset(c->packets,0,i); + memset(c->packets,0,i); pmem = c->mem; MSG_DBG2("For cache navigation was allocated %u bytes as %u packets (%u/%u)\n",i,num,size,sector); c->first=c->last=0; Modified: mplayerxp/libmpdemux/cdda.c =================================================================== --- mplayerxp/libmpdemux/cdda.c 2010-02-10 16:31:34 UTC (rev 140) +++ mplayerxp/libmpdemux/cdda.c 2010-02-15 17:22:49 UTC (rev 141) @@ -178,7 +178,10 @@ return -1; /* EOF */ } p->sector++; - if(p->sector == p->end_sector) return -1; /* EOF */ + if(p->sector == p->end_sector) { + MSG_DBG2("EOF was reached\n"); + return -1; /* EOF */ + } p->sector=map_sector(p,p->sector,&i); if(!p->sector) return -1; Modified: mplayerxp/libmpdemux/stream.c =================================================================== --- mplayerxp/libmpdemux/stream.c 2010-02-10 16:31:34 UTC (rev 140) +++ mplayerxp/libmpdemux/stream.c 2010-02-15 17:22:49 UTC (rev 141) @@ -14,6 +14,8 @@ #include "../mplayer.h" #include "help_mp.h" +#include "../libvo/fastmemcpy.h" + #include "stream.h" #include "demuxer.h" #include "demux_msg.h" @@ -81,7 +83,7 @@ &file_stream, }; -static unsigned int nsdrivers=sizeof(sdrivers)/sizeof(stream_driver_t*); +static const unsigned int nsdrivers=sizeof(sdrivers)/sizeof(stream_driver_t*); stream_t* __FASTCALL__ open_stream(const char* filename,int* file_format,stream_callback event_handler) { @@ -135,26 +137,23 @@ int __FASTCALL__ nc_stream_read_cbuffer(stream_t *s){ int len,legacy_eof; stream_packet_t sp; - sp.len=0; - sp.buf=s->buffer; - sp.type=0; if(s->eof){ s->buf_pos=s->buf_len=0; return 0; } while(1) { sp.type=0; sp.len=s->sector_size; - sp.buf=s->buffer; + sp.buf=(char *)s->buffer; if(s->type==STREAMTYPE_DS) len = demux_read_data((demux_stream_t*)s->priv,s->buffer,s->sector_size); else { if(!s->driver) { s->eof=1; return 0; } len = s->driver->read(s,&sp); } if(sp.type) - { + { if(s->event_handler) s->event_handler(s,&sp); continue; } if(s->driver->control(s,SCTRL_EOF,NULL)==SCTRL_OK) legacy_eof=1; else legacy_eof=0; if(sp.len<=0 || legacy_eof) - { + { MSG_DBG3("nc_stream_read_cbuffer: Guess EOF\n"); s->eof=1; s->buf_pos=s->buf_len=0; @@ -166,7 +165,7 @@ s->buf_pos=0; s->buf_len=sp.len; s->pos += sp.len; - MSG_DBG3("nc_stream_read_cbuffer done: pos=%llu buf_pos=%lu buf_len=%lu\n",s->pos,s->buf_pos,s->buf_len); + MSG_DBG3("nc_stream_read_cbuffer(%s) done[sector_size=%i len=%i]: buf_pos=%u buf_len=%u pos=%llu\n",s->driver->mrl,s->sector_size,len,s->buf_pos,s->buf_len,s->pos); return s->buf_len; } @@ -307,7 +306,7 @@ got_len=0; while(rlen) { - s->buffer=mem; + s->buffer=(unsigned char *)mem; s->buf_len=rlen; nc_stream_read_cbuffer(s); mem += min(rlen,(int)s->buf_len); Modified: mplayerxp/mp_msg.c =================================================================== --- mplayerxp/mp_msg.c 2010-02-10 16:31:34 UTC (rev 140) +++ mplayerxp/mp_msg.c 2010-02-15 17:22:49 UTC (rev 141) @@ -73,7 +73,6 @@ static int was_eol=1; if(level>verbose+MSGL_V-1) return; /* do not display */ if((mod&mp_msg_filter)==0) return; /* do not display */ - va_start(va, format); pthread_mutex_lock(&mp_msg_mutex); if(isatty(fileno(stderr))) fprintf(stderr,scol[level<9?level:8]); @@ -87,7 +86,9 @@ smod = msg_prefix[mod_name]; fprintf(stderr,"%s.%s(%u): ",smod?smod:"UNKNOWN",srcfile,linenum); } + va_start(va, format); ssize=vsprintf(sbuf,format, va); + va_end(va); if(strcmp(nls_get_screen_cp(),"UTF-8")!=0) { char *obuf; obuf=nls_recode2screen_cp("UTF-8",sbuf,ssize); @@ -99,7 +100,6 @@ else was_eol=0; fflush(stderr); pthread_mutex_unlock(&mp_msg_mutex); - va_end(va); } void mp_msg_flush(void) { fflush(stderr); } Modified: mplayerxp/mplayer.c =================================================================== --- mplayerxp/mplayer.c 2010-02-10 16:31:34 UTC (rev 140) +++ mplayerxp/mplayer.c 2010-02-15 17:22:49 UTC (rev 141) @@ -894,6 +894,7 @@ #if defined( ARCH_X86 ) || defined(ARCH_X86_64) +int x86_simd=-1; int x86_mmx=-1; int x86_mmx2=-1; int x86_3dnow=-1; @@ -910,19 +911,36 @@ static void get_mmx_optimizations( void ) { GetCpuCaps(&gCpuCaps); - if(x86_mmx != -1) gCpuCaps.hasMMX=x86_mmx; - if(x86_mmx2 != -1) gCpuCaps.hasMMX2=x86_mmx2; - if(x86_3dnow != -1) gCpuCaps.has3DNow=x86_3dnow; - if(x86_3dnow2 != -1) gCpuCaps.has3DNowExt=x86_3dnow2; - if(x86_sse != -1) gCpuCaps.hasSSE=x86_sse; - if(x86_sse2 != -1) gCpuCaps.hasSSE2=x86_sse2; - if(x86_sse3 != -1) gCpuCaps.hasSSE2=x86_sse3; - if(x86_ssse3 != -1) gCpuCaps.hasSSSE3=x86_ssse3; - if(x86_sse41 != -1) gCpuCaps.hasSSE2=x86_sse41; - if(x86_sse42 != -1) gCpuCaps.hasSSE2=x86_sse42; - if(x86_aes != -1) gCpuCaps.hasSSE2=x86_aes; - if(x86_avx != -1) gCpuCaps.hasSSE2=x86_avx; - if(x86_fma != -1) gCpuCaps.hasSSE2=x86_fma; + + if(x86_simd) { + if(x86_mmx != -1) gCpuCaps.hasMMX=x86_mmx; + if(x86_mmx2 != -1) gCpuCaps.hasMMX2=x86_mmx2; + if(x86_3dnow != -1) gCpuCaps.has3DNow=x86_3dnow; + if(x86_3dnow2 != -1) gCpuCaps.has3DNowExt=x86_3dnow2; + if(x86_sse != -1) gCpuCaps.hasSSE=x86_sse; + if(x86_sse2 != -1) gCpuCaps.hasSSE2=x86_sse2; + if(x86_sse3 != -1) gCpuCaps.hasSSE2=x86_sse3; + if(x86_ssse3 != -1) gCpuCaps.hasSSSE3=x86_ssse3; + if(x86_sse41 != -1) gCpuCaps.hasSSE41=x86_sse41; + if(x86_sse42 != -1) gCpuCaps.hasSSE42=x86_sse42; + if(x86_aes != -1) gCpuCaps.hasAES=x86_aes; + if(x86_avx != -1) gCpuCaps.hasAVX=x86_avx; + if(x86_fma != -1) gCpuCaps.hasFMA=x86_fma; + } else { + gCpuCaps.hasMMX= + gCpuCaps.hasMMX2= + gCpuCaps.has3DNow= + gCpuCaps.has3DNowExt= + gCpuCaps.hasSSE= + gCpuCaps.hasSSE2= + gCpuCaps.hasSSE2= + gCpuCaps.hasSSSE3= + gCpuCaps.hasSSE41= + gCpuCaps.hasSSE42= + gCpuCaps.hasAES= + gCpuCaps.hasAVX= + gCpuCaps.hasFMA=0; + } MSG_V("User corrected CPU flags: MMX=%d MMX2=%d 3DNow=%d 3DNow2=%d SSE=%d SSE2=%d SSE3=%d SSSE3=%d SSE41=%d SSE42=%d AES=%d AVX=%d FMA=%d\n", gCpuCaps.hasMMX, gCpuCaps.hasMMX2, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |