Showing posts with label standards. Show all posts
Showing posts with label standards. Show all posts

Friday, 4 March 2011

LASeR Standard

LASeR (Lightweight application scene representation ) is the MPEG RichMedia standard dedicated to the mobile, embedded and consumer electronics industries. LASeR provides a fluid user experience of enriched content, including Audio, Video, Text, and Graphics on constrained networks and devices.
LASeR standard is specified in the MPEG-4 Part 20.

The LASeR standard specifies the coded representation of multimedia presentations for rich media services. In the LASeR specification, a multimedia presentation is a collection of a scene description and media (zero, one or more). A media is an individual audiovisual content of the following type: image (still picture), video (moving pictures), audio and by extension, font data. A scene description is composed of text, graphics, animation, interactivity and spatial and temporal layout.
A LASeR scene description specifies four aspects of a presentation:
  • how the scene elements (media or graphics) are organized spatially, e.g. the spatial layout of the visual elements;
  • how the scene elements (media or graphics) are organized temporally, i.e. if and how they are synchronized, when they start or end;
  • how to interact with the elements in the scene (media or graphics), e.g. when a user clicks on an image;
  • and if the scene is changing, how these changes happen.
The sequence of a scene description and its timed modifications is called a LASeR stream.
LASeR handles access units, i.e. self-contained chauncks of data, which may be adapted for transmission over a variety of protocols. LASeR streams may be packaged with some or all of their related media into files of the ISO base media file format family (e.g. MP4) and delivered over reliable protocols.

LASeR :
  • Brings smart and pleasurable navigation within streamed and real-time AV contents,
  • Is compliant with existing business models, and
  • Allows an increased ARPU(Average Revenue Per Unit) by boosting service subscription thanks to interactivity.
Thanks to the LASeR standard, operators can enrich their service offers and generate user-addiction with the next generation rich-media technology, by leveraginge infrastructures and easily deployable over multi devices and networks.
Mattia Donna Bianco

Tuesday, 15 February 2011

The cross-browser challenge

Web standards have been growing fast thanks to the World Wide Web Consotrium and the community around it. It's amazing to see what a browser can do with a few lines of html and javascript. But.. What if you need to deliver a new feature to users and you can't implement it using current web standards ?

This often means you will have to develop your own "browser plugin" using native code. What you would like is to have a plugin that runs on every browser, on every operating system, on every hardware architecture.

In order to deliver encrypted RTSP content inside user's browser, WimTV had to face (and is facing) the very same problems. Just like Adobe Flash we had to implement our own piece of software that runs side by side with the browser, rendering contents in a child window.

While there are a lot of browsers available, it's is possible to group them by the rendering engine they use.

- Webkit: Chrome, Safari, Android Mobile Browser, many others
- Gecko: Firefox, Camino
- Trident: Internet Explorer, other Microsoft products

Luckly most Webkit and Gecko browsers implement NPAPI for their plugins.

NPAPI is a cross-platform plugin architecture that was introduced by Netscape and then received many contributions by Mozilla and Google. Basically it defines a set of APIs that must be implemented on both browser and plugin side in order for them to interact. Mozilla currently offers the best SDK and documentation to help developers write their plugins using C or C++.

WimTV Browser Plugin uses NPAPI to support Webkit and Gecko powered browsers, and a NPAPI-ACTIVEX wrapper in order to work on Microsoft Internet Explorer.

The wrapper is called PluginHostController. It is opensource and the code is available from Mozilla servers. It consist of an ActiveX plugin written in C++ and implementing some basic funcions of NPAPI. Unfortunately it was written some years ago and it is not maintained. In the meantime NPAPI evolved adding some features we used in our plugin, such as Scriptable APIs allowing Javascript interaction. In order to use it we had to develop the missing parts and then bundle wrapper and plugin inside a cab file.
Davide Bertola