FS#14115 - gnash-common does not work properly (sound crash)

Attached to Project: Arch Linux
Opened by Etienne Lepercq (guepe) - Sunday, 05 April 2009, 20:37 GMT
Last edited by Eric Belanger (Snowman) - Tuesday, 19 May 2009, 00:34 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Eric Belanger (Snowman)
Architecture i686
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:gnash-common previously used opengl for renderer, which was not working at all on my machine. Now, this bug has been (two days ago) fixed, but it has been compiled to use ffmpeg as audio backend, which should not be used : gstreamer works properly.

With the current package, I am able to read flash videos without sound, but gnash crashes when some audio is embedded.

I compiled by myself gnash-0.8.5 from repositoy, with these options :

./configure --prefix=/opt/gnash-0.8.5 --enable-gui=gtk --enable-renderer=agg --enable-gstreamer --build=i686-pc-linux-gnu

The prefix /opt is used just to not interfere with the gnash-common package and should not be used for packaging. The enable-gui=gtk is default, as endable-renderer=agg, but has been put here to be more specific.

With gstreamer, videos on youtube for example works perfectly well, as it should.

Additional info:
* package version(s) : 0.8.5


Steps to reproduce:
Open any youtube video, play : it starts buffering, then crashed (gray box)

To solve this bug, recompile with gstreamer (which modifies dependancy from ffmpeg to gstreamer)

The gnash log when using gnash-common package (i686) is available here : http://pastebin.com/m56b3fba3

Worth noting : ERROR: outputSize:0 after decoding 9 bytes of input audio data. Upgrading ffmpeg/libavcodec might fix this issue.
This task depends upon

Closed by  Eric Belanger (Snowman)
Tuesday, 19 May 2009, 00:34 GMT
Reason for closing:  Fixed
Additional comments about closing:  fixed in 0.8.5-2
Comment by Eric Belanger (Snowman) - Monday, 06 April 2009, 00:44 GMT
When I tried with gstreamer ( --enable-gstreamer --enable-media=gstreamer ), videos on youtube weren't working at all IIRC. That's why I built it with --enable-ffmpeg --enable-media=ffmpeg
Maybe using --enable-gstreamer --enable-media=ffmpeg is the better combination. Could you try it?

BTW, ffmpeg will be updated to the stable 0.5 version. Perhaps that should be done first.
Comment by Etienne Lepercq (guepe) - Monday, 06 April 2009, 15:43 GMT
It works ! I have video+sound with this combination (--enable-gstreamer --enable-media=gstreamer): do you plan to make an update to the package to match these options ?
Comment by Etienne Lepercq (guepe) - Monday, 06 April 2009, 15:46 GMT
Sorry, I can't update the last comment, but options were the ones you suggested : --enable-gstreamer --enable-media=ffmpeg

./configure --prefix=/opt/gnash-0.8.5 --enable-gui=gtk --enable-renderer=agg --enable-gstreamer --enable-media=ffmpeg --build=i686-pc-linux-gnu

;-)
Comment by Etienne Lepercq (guepe) - Monday, 06 April 2009, 18:17 GMT
Sorry, I can't update the last comment, but options were the ones you suggested : --enable-gstreamer --enable-media=ffmpeg

./configure --prefix=/opt/gnash-0.8.5 --enable-gui=gtk --enable-renderer=agg --enable-gstreamer --enable-media=ffmpeg --build=i686-pc-linux-gnu

;-)
Comment by Eric Belanger (Snowman) - Monday, 20 April 2009, 21:17 GMT
I haven't had time to work on this yet (will do soon). Could you try the gnash in extra with the ffmpeg 0.5 in testing and see if it fix the issue? Also could you post links to videos where the gnash in extra crashes? That might be helpful as I wasn't able to reproduce your problem.
Comment by Etienne Lepercq (guepe) - Thursday, 23 April 2009, 17:29 GMT
I would like to help but after adding testing repos :

sudo pacman -S testing/ffmpeg
Résolution des dépendances...
Recherche des conflits possibles entre paquets...
Erreur: la préparation de la transaction a échoué (la satisfaction des dépendances a échoué)
:: vlc: requiert ffmpeg>=20081220
:: xine-lib: requiert ffmpeg>=20081220

And when searching for ffmpeg :

sudo pacman -Ss ffmpeg
testing/ffmpeg 0.5-1
Complete and free Internet live audio and video broadcasting solution for Linux/Unix
extra/ffmpeg 20090217-1
Complete and free Internet live audio and video broadcasting solution for Linux/Unix

When using yaourt :

yaourt -Ss ffmpeg
testing/ffmpeg 0.5-1 [20090217-1 installed]
Complete and free Internet live audio and video broadcasting solution for
Linux/Unix
extra/ffmpeg 20090217-1 [installed]
Complete and free Internet live audio and video broadcasting solution for
Linux/Unix


I really don't know why yaourt tells me that I have testing/ffmpeg 0.5-1 as I _never_ enabled testing repos... What should I do ?
Comment by Eric Belanger (Snowman) - Thursday, 23 April 2009, 18:23 GMT
You can skip dependency check if you don't want to update the packages in testing for the ffmpeg/x264 update:
# pacman -Sd testing/ffmpeg testing/x264

Test gnash then reinstall the ffmpeg and x264 from extra.

yaourt is just confused about the versioning scheme change. It doesn't tell you have 0.5 installed. It says "[20090217-1 installed]"
Comment by Eric Belanger (Snowman) - Wednesday, 29 April 2009, 22:42 GMT
Did you had time to try it again?
Also could you post links to videos where the gnash in extra crashes?
Comment by Etienne Lepercq (guepe) - Wednesday, 29 April 2009, 23:28 GMT
Sorry for not responding ! I was thinking this afternoon that I had to test it, but did not have time yet. I hope to find it this evening, will comment later. I did not forget this task ;-)
Comment by Etienne Lepercq (guepe) - Thursday, 30 April 2009, 00:59 GMT
I just installed ffmpeg and x264 from testing... With these versions, the current gnash plugin works : video is playing with sound, no crash.
BUT : playback is SLOW. Very slow, I don't have a big processor (P-M 1.8GHz) but with the ffmpeg from extra it works fine.
I tried then to use ffmpeg from testing + my own compilation of gnash : same thing, playback is OK, but slow, which I don't encounter with previous version.

So for gnash the ffmpeg package from testing solves my problem... but ffmpeg creates a new one !!

I also tried a .mp4 video file with VLC and it run smoothly, so it seems that mabe this is more related to x264 package. What do you think ? Where can I get some more infos on what is causing this bad playback experience ?
Comment by Eric Belanger (Snowman) - Thursday, 30 April 2009, 02:28 GMT
Try rebuilding the ffmpeg in testing against the x264 in extra (you'll need to change the versioned depends on x264). This way we'll know if the slowdown is caused by the ffmpeg or the x264 in testing.
Comment by filippo colombo (ombra85) - Monday, 04 May 2009, 17:50 GMT
Tried gnash-gtk 0.8.5 but it crashes on youtube with firefox 3.0.10-1 .

I use ffmpeg 20090217-1.

With ffmpeg 0.5 from testing no crash but still no video on youtube.

Comment by Etienne Lepercq (guepe) - Monday, 04 May 2009, 23:48 GMT
I am sorry for the latency, I am really busy these days (moving, work etc...).
I tried doing this : remove testing repo, reinstall x264 from extra
Add testing repo, get PKGBUILD of ffmpet with yaourt -G testing/ffmpeg

Then I changed PKGBUILD to make it depend on x264 from extra, and installed ffmpet from testing (src, yaourt -Sb testing/ffmpeg) + edit PKGBUILD to depend on the x264 version from extra.
Gnash succesfully loads inside epiphany, but crashes :
30612:3047753472] 19:45:43: DEBUG: AudioDecoderFfmpeg: initialized FFMPEG codec 86018 (aac) for FLASH codec 10 (Advanced Audio Coding)
30612:3047753472] 19:45:43: DEBUG: NetStream_as::initAudioDecoder: hot-plugging audio consumer
30612:3047753472] 19:45:43: ERROR: outputSize:0 after decoding 9 bytes of input audio data. Upgrading ffmpeg/libavcodec might fix this issue.
30612:3047753472] 19:45:43: DEBUG: pushDecodedAudioFrames(): Decoded audio frame contains no samples

Apparently gnashplugin dislikes the ffmpeg testing version with x264 extra version ^^ !
Comment by filippo colombo (ombra85) - Tuesday, 05 May 2009, 19:08 GMT
i use x264 , ffmpeg and gnash-gtk from extra but gnash doesn't work on youtube.
Comment by filippo colombo (ombra85) - Tuesday, 05 May 2009, 19:09 GMT
When gnash crashes i see on terminal:

53851ce2-8af9-b4ed-6544edb5-58b68031 is dumped
Comment by Eric Belanger (Snowman) - Friday, 08 May 2009, 20:26 GMT
You could try updating x264 to the current daily snapshot and building the ffmpeg in testing against it.

Youtube vieos (video and audio) play fine here with the ffmpeg/x264 in testing but only on my x86_64 machine. I tested it in both firefox and epiphany. There is a problem with the widgets at the bottom of the video. Only the play/pause button work. Sometime the widgets disappears but if you click were the button is supposed to be, the video still pause/play. On my i686 machine, I just get a grey box. I just noticed that as I was doing my test on my x86_64 machine. I'll look into it further.
Comment by Etienne Lepercq (guepe) - Sunday, 10 May 2009, 00:06 GMT
Using x264 from testing with ffmpeg from extra does not work at all : gnash does not even loads up properly.

3853:3049006864] 18:32:40: DEBUG: Main loop ended, cleaning up
3853:3049006864] 18:32:40: DEBUG: Any segfault past this message is likely due to improper threads cleanup.
3846:3047143184] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) enter
3846:3047143184] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) returning
3846:3047143184] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) enter
3846:3047143184] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) returning
3846:3047143184] 18:32:40: DEBUG: Main loop ended, cleaning up
3846:3047143184] 18:32:40: DEBUG: Any segfault past this message is likely due to improper threads cleanup.
3850:3047126800] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) enter
3850:3047126800] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) returning
3850:3047126800] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) enter
3850:3047126800] 18:32:40: DEBUG: gboolean gnash::<unnamed>::deleteEvent(GtkWidget*, GdkEvent*, void*) returning
3850:3047126800] 18:32:40: DEBUG: Main loop ended, cleaning up
3850:3047126800] 18:32:40: DEBUG: Any segfault past this message is likely due to improper threads cleanup.
3853:3049006864] 18:32:40: DEBUG: ~Player - _movieDef refcount: 2 (1 will be dropped now)
3846:3047143184] 18:32:40: DEBUG: ~Player - _movieDef refcount: 2 (1 will be dropped now)
3850:3047126800] 18:32:40: DEBUG: ~Player - _movieDef refcount: 2 (1 will be dropped now)
3853:3049006864] 18:32:40: DEBUG: ~Gui - _movieDef refcount: 1
3846:3047143184] 18:32:40: DEBUG: ~Gui - _movieDef refcount: 1
3850:3047126800] 18:32:40: DEBUG: ~Gui - _movieDef refcount: 1

For my setup/computer, the best result is using ffmpeg and x264 from extra AND compile gnash with options I wrote earlier :-(
Comment by Eric Belanger (Snowman) - Sunday, 10 May 2009, 03:30 GMT
Try updating x264 to the latest snapshot: 20090509

What architecture are you guys using?

I'll try again with --enable-gstreamer --enable-media=gstreamer to see if it works here. That would by-pass the ffmpeg problem if gstreamer works of course.

BTW, gnash is orphaned and I don't want to spend too much time on it. If it takes too much time fixing this, I might move the ffmpeg in testing to extra before.
Comment by Eric Belanger (Snowman) - Sunday, 10 May 2009, 19:23 GMT
I got it to work on my i686. Rebuild both gnash-common & -gtk with --enable-gstreamer and --enable-media=gst The video/audio works and the widgets works also. I'll try that on my x86_64 and if it works I'll do that for the package.
Comment by Eric Belanger (Snowman) - Thursday, 14 May 2009, 15:20 GMT
I've pushed gnash-common and gnash-gtk 0.8.5-2 to testing. It uses gstreamer instead of ffmpeg so it should work regardless if you have the ffmpeg from extra or testing. Everything works here in youtube (audio, video, widgets) for both arches. I've also enabled speex as some flv file use it to encode their audio according to gnash docs. Please test and report if it works for you.
Comment by Etienne Lepercq (guepe) - Thursday, 14 May 2009, 20:22 GMT
Works flawlessly for me with your packages from testing on i686 !!
I kept ffmpeg from extra (but it is not involved AFAIK - since you used gstreamer)

kudos to Eric !

Loading...