C++ Development and Consultancy - Open-Source Flash

C++ ASCII literals

I didn't invent it! But as I can't find the original code, here is my own version. The idea was most likely inspired by the somewhat cleverer, but no more useful analogue literals.

Create your own ASCII art, drawing it directly in the source code. Can you think of anything more beautiful?!

#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>

struct AsciiLiteral
    AsciiLiteral() : n(false) {}

C++ facets

Facets are one of the least understood and most esoteric parts of the C++ standard library. Because they are rarely used, there are few code examples, which in turn means most people never encounter them.

This is a great shame! Facets are a fascinating and multifa rich source of coding fun!

Gnash on a Cortex-A8 board

See a YouTube video of Gnash running on a cortex-A8 board (courtesy of Daniel Amor Martin).

RTMP encryption

The news that the BBC has started "encrypting" its RTMP streams came, in one of those coincidences, just as I'd decided to work on adding RTMP support to Gnash. So even when Gnash's RTMP video streaming works, it will still be legally difficult, if not impossible, for licence fee payers who care about software freedom to use the BBC's iPlayer.

Gnash and megavideo.com

A blog post on Gnash by Drascus drew my attention to megavideo.com, a rather ad-heavy but featureful video site that, unlike YouTube, works well in Gnash.

New features for Gnash 0.8.8?

Gnash will certainly be better in six months for our next release. It already has one major new feature - LocalConnection support - and RTMP video streaming is also planned.

But as Gnash is currently unfunded, many important features that could easily be added will be left out.

Here is an incomplete list of things that I can improve or newly implement in Gnash in a relatively short space of time (between 1 and 4 weeks):

  1. Reliable text handling (HTML text, text formatting, positioning etc). Currently this is not correct and fails in many cases.
  2. BitmapData functions. Rendering to an internal buffer for use in ActionScript. This is used for image handling in many SWF8 movies.
  3. RTMP. A basic implementation for video streaming and remoting should be ready for 0.8.8. But ironing out bugs and getting a really high-quality implementation will take longer.

Free Software in the UK

I wanted, on an impulse, to find out about the prominence of Free Software in the UK. Political support for Free Software occasionally makes the headlines, but how much of a presence does it have in everyday IT?

How would anyone try to find out about Free Software? By turning to the internet, of course! So I want to know what they would encounter. I used a well-known search engine to look for Free Software activity in the UK, and this is what I found:

Flash and freedom

Flash is neither free nor open. Despite Adobe's publicity efforts, its Open Screen project, and its attempt to document various parts of the Flash specifications, it is still closed and restricted.

Flash's lack of freedom is a combination of three things:

  1. it needs a closed player
  2. its sources are closed
  3. it is served in binary format over the internet

Gnash 0.8.7 released!

Gnash 0.8.7 has been released. You can get it from a GNU FTP or HTTP mirror, or from getgnash.org.

Improvements and features in Gnash since the last release are:

  • Automatic and spontaneous screenshots in all GUIs.
  • Significant memory savings in ActionScript execution.
  • Non-blocking load of bitmaps and movies.

LocalConnection in Gnash

This week I implemented the LocalConnection ActionScript class in Gnash. It is too late for Gnash 0.8.7, which should be released imminently. But the six months of testing before the next release are certainly a good thing where this code is concerned.

LocalConnection allows the player to communicate with other players or instances using shared memory. It is even used for communication between AS2 and AS3 loaded in the same SWF, since they can't otherwise talk to each other.

Inhalt abgleichen