On 2011-06-17 09:13, Lu Guanqun wrote:
Hi David,

On Fri, Jun 17, 2011 at 02:31:41PM +0800, David Henningsson wrote:
On 2011-06-17 02:21, Lu Guanqun wrote:
Hi David,

How's your fighting rewind going?

Now, I find there's a rewind flood in my environment, and it's doing a
rewrite rewind all the times. At the time of rewinding, the write index
is less than the read index.

Do you have any idea what's going on? I'm only seeing this when I'm
viewing an 1080p MP4 file.

Thanks!

Hi Lu,

My patches has been optimisations so far, which means that it's reducing
the amount of rewinds rather than eliminating them. With a slow enough
computer (for Intel, the Atom comes to mind), or lots of other things to
do for that computer (such as viewing an 1080p file?), the rewind flood
thing can still happen.

Oh, man, you totally got me. :) I'm playing 1080p on an Atom based machine.
I find the rewind flood on this platform. For 480p video, it works quite
fine.


What client are you using to connect to PulseAudio? For gstreamer based
clients, my gstreamer patch was first applied upstream, then reverted
for reasons I don't fully understand. Applying it is likely to help
against rewinds. See bug https://bugzilla.gnome.org/show_bug.cgi?id=641072

Yes, I used gstreamer clients. FYI. The two patches on pulesaudio are
already applied.  However, no matter when I applied the gstreamer patch,
the rewind flood still can be seen.

As you said, you're doing optimizations. Is there a way to fully solve
this issue, or this is just a mission impossible per your understanding?

Nothing is impossible, the impossible just takes slightly longer to fix :-)

Lately I've been thinking that we should implement some kind of ratelimit to rewinding as well. Something like; if we've done 10 rewinds during the latest second, block rewinds for the upcoming second. That would give a "hickup" (likely temporary silence), but not complete brokenness. In combination with the existing patches, I believe that would give sufficient protection. I haven't figured out, however, what would be the right numbers for a particular machine.

The best thing you can do for now, however, is to make sure the client sends large packets. I e, rather one packet per second with one second of sample data in it, than a hundred packets with 10 ms of sample data in it.


--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to