openvortex-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Antworten: [Openvortex-dev] Desync in mplayer (known problem)


From: Manuel Jander
Subject: Re: Antworten: [Openvortex-dev] Desync in mplayer (known problem)
Date: Fri, 06 Jun 2003 20:31:15 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3.1) Gecko/20030527 Debian/1.3.1-2

Hello,

The roots of this problem is very simple. The Buffer shifter
has a wrong offset. Adding "+4" to the line

was:
p = dma->period_virt + i;

should be:
p = dma->period_virt + i + 4;

inside of:
void vortex_adbdma_bufshift();
dma->period_virt: index of current logical period number that
can be written to and is mapped to a valid hardware period.

dma->period_real: the next hardware period that should be emptyon the
next interrupt.

Because of this bug there is only one effective period buffer, turning
the chance of skipping very high. Fixing this makes skipping almost
impossible even on high CPU and bus loads.



There is another problem that causes ticks that somehow
start large and get smaller as the sample plays, but i'm still
unsure whats causing this. At 16 bits 44100 Hz its mostly
unnoticeable, but at 11KHz 8 bits, when samples are
"larger" in time, they get more noticeable.
Restricting to only 4096 periods and minimal 4 periods,
this problem i'm unable to notice this.

I suspect it has something to do with the way the position
of the current DMA is obtained, because it doesnt take into account the current
FIFO position, which adds somekind of offset to the actual DMA position.
Maybe the upper ALSA layers write data into a buffer thats not yet empty ?
Thats where i'm right now. Once this gets fixed this, work on the EQ will continue.

Greets

Manuel Jander.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]