Grandma

My paternal grandmother died a month ago today - I may have been quieter than usual since December. The most vivid memory I have of her is helping to collect runner beans from her garden - apparently this had been going on since the World War II "dig for victory" campaign. Her funeral was in Hastings on 10th January, and she was buried in Fairlight, in the Roman Catholic area of St....

January 22, 2011

File synchronisation

If anyone mentions Dropbox to me one more time, I will scream. I'm sure it's a wonderful solution, but I have deep misgivings about handing my data over to someone I don't trust. Besides, my synchronisation needs are not that complicated. Here are my high-level requirements: Two way synchronisation between multiple clients and a central server. Automatic syncs - no requirement for manual triggering. Graceful handling of network outages, suspends, etc....

The Archers website

For those who are not aware, The Archers is a soap opera about rural life, broadcast on BBC Radio 4. Its website has recently been revamped. Unfortunately, I appear to be served the mobile version when I visit the front page (in all of Chromium, Iceweasel and Epiphany on Debian - admittedly not the most mainstream of browsers). BBC Mobile is doing some over-zealous useragent sniffing, it seems. Also amusing: there's a "...

First RTMP connection

Mwahahahaa, just a few moments ago, my local copy of gnash actually got past the RTMP handshake, and got a response from iPlayer. I need to be at work in around 8 hours, though, so no time to push this until tomorrow... and it needs some cleanup. Obviously, no audio has yet been played. Don't be silly.

November 19, 2010

Gnash and librtmp

Having studied librtmp over the weekend, it doesn't drop into gnash as neatly as I'd hoped. Gnash already has classes to implement NetConnection and NetStream, which it makes sense to use - but librtmp is designed to replace the need for such classes to exist. So it implements certain higher-level responses to various calls from the server, that are necessary when downloading a stream. Gnash probably needs to hook in instead, and let the flash application decide what to do in these cases....

November 15, 2010

Imitation is the sincerest of Flattr-y

Of course, now everyone wants to hate Flattr, and ban its buttons from Planet Debian. You can't coerce effectively over a network connection - unless you wave the DMUP at them. It's an interesting exercise to square this approach with the promise at the heart of free software - freedom. We let people sell our software for a profit; we're a billion-dollar industry now. (Red Hat alone is worth $1bn.) That's before we start counting the money made by the businesses whose servers rely on us....

Splitting librtmp from Gnash

So I studied the SWF 8 iPlayer a little - there are some simple rendering issues with Gnash that I'd like to come back to, but the biggest problem is obviously the media not playing. Looking at the network requests, wireshark says something about malformed packets - Gnash is getting as far as making RTMP requests, but the connection dies pretty quickly. My working theory is that there is a bug in the Gnash RTMP client code....

November 10, 2010

Eyeing up iPlayer

There exist several different versions of BBC iPlayer. (Even if you don't care about the main iPlayer site, perhaps you might want to watch videos on BBC News one day, which uses the same code.) Here is some (reformatted) Javascript from the BBC's site: a = glow.embed.Flash.version(); f = ""; f = a.major>=10 ? "10player.swf" : a.major<8 ? "7player.swf" : a.major==9 && (a.minor>0 || a.release>=115) ? "9player.swf" : "player.swf"; It is clear that Flash 9....

Gnash and downloaded SWF files

So, with the GNASH_OPTIONS=writelauncher hint from last time, you have got a script which runs gnash. It is still running a remote SWF file, though - you want to modify that file to isolate a test case, and for that it will need to be on the local filesystem. First, look in the gnash-debug-1.sh script to find the URL for the SWF, and download it. It's the last option passed to gnash....

Gnash from git

Gnash has moved from bzr to git, at least for the moment - Savannah's bzr setup is slow and unlikely to improve, so the choice is git or Launchpad, apparently. (Thinking selfishly, I'm a lot more familiar with git than with bzr, so I hope it stays this way.) My instructions from July have changed only slightly: git clone git://git.sv.gnu.org/git/gnash cd gnash ./autogen.sh ./configure --enable-renderer=agg \ --enable-media=GST \ --enable-gui=gtk \ --with-plugins-install=system make sudo make install sudo make install-plugins Buried near the end of the bug reports wiki page is a useful tip for debugging - export GNASH_OPTIONS=writelauncher before starting the browser, and gnash will write out the instructions for starting a local copy....