Bug 13772

Summary: Sound freezes animation with oss backend
Product: swfdec Reporter: Iasen Kostov <iasenkk>
Component: libraryAssignee: swfdec ml <swfdec>
Status: RESOLVED WONTFIX QA Contact: swfdec ml <swfdec>
Severity: major    
Priority: high CC: yselkowi
Version: 0.5.5   
Hardware: x86 (IA32)   
OS: FreeBSD   
Whiteboard:
i915 platform: i915 features:
Attachments: tentative to readd oss backend to 0.7.x
better playback with oss backend

Description Iasen Kostov 2007-12-21 07:55:27 UTC
When playing any sound swfdec freezes then plays 1-2 sec of animation/movie then freezes again when playing sound and then 1-2 sec animation/movie again :). That is happening on both my computers. When i disable the sound everything plays fine.
Comment 1 Riccardo Magliocchetti 2008-02-02 06:09:35 UTC
Can you provide more info like which audio backend are you using, if you are using ffmpeg + mad or gstreamer, an url that gives you the issue?
Comment 2 Iasen Kostov 2008-02-07 04:12:13 UTC
(In reply to comment #1)
> Can you provide more info like which audio backend are you using, if you are
> using ffmpeg + mad or gstreamer, an url that gives you the issue?
> 

It is using GStreamer at the moment. But I think I tested it without it too (I'm not sure what FreeBSD port uses without GStreamer) but it was the same. And it always has been as far as I remember. I think the problem is in OSS support not the decoder because it's not freezing only on video replays but on any kind of sound.
Comment 3 Riccardo Magliocchetti 2008-03-29 06:12:15 UTC
I've seen the same with alsa oss emulation, changed a bit the title. 
Comment 4 Yaakov Selkowitz 2008-05-28 06:26:37 UTC
Ditto here with swfdec-0.5 and -0.6 on Cygwin with OSS audio.  Video freezes if audio is playing, but if there is no audio, or if swfdec is built with --with-audio=none, video works fine.
Comment 5 Yaakov Selkowitz 2008-05-29 05:56:36 UTC
Re: comment 1, I tested 0.6.6 with each of the three decoders individually, and the results are the same.
Comment 6 Riccardo Magliocchetti 2008-07-03 01:29:57 UTC
Created attachment 17487 [details] [review]
tentative to readd oss backend to 0.7.x

Are you willing to try this patch that readd the oss backend to 0.7.x? Diffed against git but should apply to swfdec 0.7.2. You'll need swfdec-mozilla 0.7.2.
Comment 7 Riccardo Magliocchetti 2008-07-03 02:59:17 UTC
It works fine with youtube, not with games. No luck :(
Comment 8 Yaakov Selkowitz 2008-07-03 07:01:00 UTC
Sorry, no luck with either 0.7 or with adding O_NONBLOCK to 0.6. :-(
Comment 9 Riccardo Magliocchetti 2008-07-03 09:33:15 UTC
Created attachment 17499 [details] [review]
better playback with oss backend

Ok this one is against swfdec 0.6.6 tarball, i've tested these changes with 0.7.2 with both youtube and tennis.swf from the wiki screenshot page. I'd like someone from *BSD to test it. YMMV.
Comment 10 Yaakov Selkowitz 2008-07-03 14:46:39 UTC
Sorry, tried with 0.6 and 0.7, doesn't help.
Comment 11 Yaakov Selkowitz 2008-07-03 21:38:16 UTC
It just occurred to me, that since swfdec anyway deps gstreamer, why not use it for the audiosink as well?
Comment 12 Benjamin Otte 2008-07-03 23:30:28 UTC
Swfdec has not used GStreamer because of 4 reasons:
1) Swfdec didn't depend on GStreamer when the audio backends were written. That point is moot by now, but the biggest reason for why this wasn't even an option.
2) We open multiple sound streams and I wasn't sure if all audio outputs are able to handle this. This should be possible by now, so this point is moot, too.
3) I want to be able to couple sound streams. If a browser shows 3 Flash files and each emits 3 different sound streams, you don't want 9 volume controls or 1, but 3.
4) I want to be able to minimize dropouts, even when Swfdec (or X) clogs the CPU. The method to do this is to render 2 seconds of audio in advance. Unfortunately this causes prolems if you change the volume or pan inside the Flash file, because you don't want to wait for this to take 2 seconds to take effect. The solution to this is to rewind the sound stream. I'm not sure how to achieve this with GStreamer.

So, the reason why GStreamer wasn't used before is 1) and 2) and the reason why GStreamer (nor ALSA nor OSS) but Pulseaudio is the future is reasons 3) and 4).
Comment 13 Riccardo Magliocchetti 2008-09-08 04:41:44 UTC
Guys, i am really sorry for you but 0.8 is out and oss is gone.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.