[MPlayer-users] Latest SVN audio sync & high cpu usage with channels=6

Reimar Döffinger Reimar.Doeffinger at gmx.de
Tue Sep 29 10:09:39 CEST 2009


On Fri, Sep 25, 2009 at 12:43:50AM +0200, Jesús Guerrero wrote:
> On Fri, 25 Sep 2009 00:29:37 +0200, Reimar Döffinger
> <Reimar.Doeffinger at gmx.de> wrote:
> > On Thu, Sep 24, 2009 at 11:56:17PM +0200, Jesús Guerrero wrote:
> >> 29549 is the first one that I can compile against current mplayer (and
> it
> >> exhibits this same problem), 29548 will not compile:
> >> 
> >> $ make
> >> cc -MM -Wundef -Wdisabled-optimization -Wno-pointer-sign
> >> -Wdeclaration-after-statement -std=gnu99 -Wall -Wno-switch
> >> -Wpointer-arith
> >> -Wredundant-decls -O4 -march=native -mtune=native -pipe -ffast-math
> >> -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
> >> -D_LARGEFILE64_SOURCE -Ilibdvdread4 -I.  -D_REENTRANT
> >> -I/usr/include/directfb  -I/usr/include/SDL  -D_REENTRANT 
> >> -I/usr/include/freetype2   -I/usr/include/dirac  
> >> -I/usr/include/schroedinger-1.0 -I/usr/include/liboil-0.3    
> >> libao2/ao_alsa.c | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&,"
> -e
> >> "s,\(.*\)\.o: ,\1.d &," > libao2/ao_alsa.d
> >> cc -Wundef -Wdisabled-optimization -Wno-pointer-sign
> >> -Wdeclaration-after-statement -std=gnu99 -Wall -Wno-switch
> >> -Wpointer-arith
> >> -Wredundant-decls -O4 -march=native -mtune=native -pipe -ffast-math
> >> -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
> >> -D_LARGEFILE64_SOURCE -Ilibdvdread4 -I.  -D_REENTRANT
> >> -I/usr/include/directfb  -I/usr/include/SDL  -D_REENTRANT 
> >> -I/usr/include/freetype2   -I/usr/include/dirac  
> >> -I/usr/include/schroedinger-1.0 -I/usr/include/liboil-0.3     -c -o
> >> libao2/ao_alsa.o libao2/ao_alsa.c
> >> libao2/ao_alsa.c: In function 'init':
> >> libao2/ao_alsa.c:647: error: 'MSGTR_AO_ALSA_UnableToSetPeriodSize'
> >> undeclared (first use in this function)
> >> libao2/ao_alsa.c:647: error: (Each undeclared identifier is reported
> only
> >> once
> >> libao2/ao_alsa.c:647: error: for each function it appears in.)
> >> make: *** [libao2/ao_alsa.o] Error 1
> > 
> > So it gets ugly :-(. You can comment out any mp_msg lines that causes an
> > issue (line 647 in this case).
> 
> It compiles commenting that, and it works beautifully. So yes, it's
> 29548->29549 which broke this somewhat.

I can't reproduce the issue, could you
1) say which version of ALSA/the kernel you use?
2) add the patch below and see if there are any particular values
when the issue starts appearing (I'd expect some rather small values
< 512 there)
3) add the patch even further below and tell me what changes (if
anything)?

Index: libao2/ao_alsa.c
===================================================================
--- libao2/ao_alsa.c    (revision 29731)
+++ libao2/ao_alsa.c    (working copy)
@@ -819,6 +819,7 @@
     ret = snd_pcm_status_get_avail(status) * bytes_per_sample;
     if (ret > ao_data.buffersize)  // Buffer underrun?
        ret = ao_data.buffersize;
+printf("space: %i\n", ret);
     return ret;
 }
 

Index: libao2/ao_alsa.c
===================================================================
--- libao2/ao_alsa.c    (revision 29731)
+++ libao2/ao_alsa.c    (working copy)
@@ -763,8 +763,10 @@
 
 static int play(void* data, int len, int flags)
 {
-  int num_frames = len / bytes_per_sample;
+  int num_frames;
   snd_pcm_sframes_t res = 0;
+  len = len / ao_data.outburst * ao_data.outburst;
+  num_frames = len / bytes_per_sample;
 
   //mp_msg(MSGT_AO,MSGL_ERR,"alsa-play: frames=%i,
   //len=%i\n",num_frames,len);
 



More information about the MPlayer-users mailing list