March 12, 2008

Great progress made on npgnash.dll

getgnash.org logo

What have I been furiously hacking on the last few nights? Gnash, the GNU Flash player. Specifically, I've been doing a lot of hacking on support for Win32. More specifically, I've been working on npgnash, the plugin that embeds Gnash inside Firefox using the Mozilla NPAPI.

I'm not going to get into the ugly details of what I went through to get as far as I have, but I'll summarize it as: a hell of a lot harder than it ought to have been. I'll save my rant for why C++ sucks, so badly, for another day. What you really want to see are screenshots, I know!

First, here's the entry for npgnash from Firefox's about:plugins page:

Firefox about:plugins showing npgnash

Okay, big deal, so I can load a DLL. Here's npgnash playing gravity.swf from the Gnash testsuite, right in the browser:

npgnash playing gravity.swf from the gnash testsuite

Who doesn't love a big bouncing smiley-face animating across their browser, right? But, the true test is playing my favorite YouTube video ... to test with, at least:

npgnash playing a YouTube video

Yup, that's no joke ... it's a screenshot of npgnash playing a YouTube video inside Firefox 2.0.0.12 on my WinXP machine. It's using the Anti-Grain Geometry (AGG) rendering engine, along with SDL/ffmpeg for audio ... and they both work, albeit not very well, yet.  Still, not bad for three or four days of hacking, right?

Despite all this progress and these screenshots, it's still not ready for general-purpose use, yet. The underlying Gnash code is still isn't fully re-entrant/thread-safe and the cleanup code isn't fully baked so I can't even load one SWF after another without it crashing. I also haven't implemented any mouse/keyboard support, so you can't actually use any of the player buttons you see in the YouTube video, etc., yet.

Still, it's a great start and hopefully by the time the 0.8.3 release is ready in a few months, there will be a lot more forward progress.

Tags: , , , ,

Posted by dossy at 01:10 AM | 609 | Link | Comments (4) | Trackbacks (0) | Bloglines | Feedster | Technorati | BlogPulse
Frederick's of Hollywood, Inc.


Comments
1
Gravatar Icon

*cheers*

I'm looking forward to the "C++ Sucks" rant.

Posted by: Simon C. Ion on March 12, 2008 at 01:44 AM | Permalink
2
Gravatar Icon

Thanks, Simon. Heh, my C++ Sucks rant generally revolves around a common theme of "C++ sucks for writing code that will be embedded inside a larger multi-threaded application, because of thread-safety issues and C++ exceptions." I also ran into the whole "typesafe enum 'improvement'" of C++, where newer versions of C++ treat enum differently than their simpler C behavior. Ugh.

Posted by: Dossy on March 12, 2008 at 09:12 AM | Permalink
3
Gravatar Icon

I was hoping to use gnash but I assume based on your post, that I should wait for a later beta and use the standard firefox plugin for now, is that correct?

sorry for bad language usage been up way too long!!!

kate

Posted by: kate on March 24, 2008 at 12:29 PM | Permalink
4
Gravatar Icon

Kate: What OS/platform are you looking to use Gnash on? On Win32, it's definitely not ready for end-user use, but is far enough along for other developers to hack on. For non-Win32 platforms (e.g., Linux, Solaris, *BSD's) it's apparently usable as far as any "beta" quality software could be.

Posted by: Dossy on March 24, 2008 at 02:36 PM | Permalink
Post a comment

Who are you?

(what is this?)
(what is this?)
(what is this?)
(what is this?)


(required)
(required, not displayed)


Allowed markup: a href title, abbr title, acronym title, b, blockquote cite type, br, code, dd, dl, dt, em, i, li, ol, p, pre, strike, strong, tt, ul.

Please type in the letters shown in the image below:
Graphical CAPTCHA.

A preview of your comment:

Posted by: