[webkit-dev] writing NPAPI plugins for <video> tag

Sriram Neelakandan sriram.neelakandan at gmail.com
Tue Feb 24 21:08:51 PST 2009

Thanks Eric.
I am not that familiar with Obj-C.. but will give it a try
BTW. Is any one working on a GTK backend for the video-proxy plugin ?

On Wed, Feb 25, 2009 at 3:03 AM, Eric Carlson <eric.carlson at mac.com> wrote:
> Sriram -
> On Feb 24, 2009, at 1:28 AM, Sriram Neelakandan wrote:
>> Is there an NPAPI plugin extension available to say that the plugin
>> supports <video> tag
>> For example a set of methods / properties, which map directly to <video>
>> tag.
>> i.e play(), pause(), etc..map to a direct NPAPI method on the plugin
>> with the same JS name
>> I am not sure if this is what is called as proxy plugin for <video> tag.
>>> From the code in RenderPartObject.cpp
>> serviceType = "application/x-media-element-proxy-plugin";
>> it is clear that  the plugin should support this new mime-type..
>> 1. Please correct me if the above observation is incorrect
>> 2. Is there any other requirements that the plugin needs to meet ?
>> 3. Is there a sample NPAPI proxy plugin  ..  probably based on
>> gstreamer or mplayer .
>> 4. Is there some documentation related to NPAPI extension for <video>
>> tag handling ?
>  Yes, the PLUGIN_PROXY_FOR_VIDEO switch is intended to allow a port to use a
> plug-in to implement the <video>/<audio> back-end. It is not currently
> plumbed through WebKit for NPAPI plug-ins, only for Mac WebKit plug-ins.
>  There isn't a sample plug-in but the concept is fairly simple: an object
> that implements MediaPlayerPrivateInterface ("media engine" implementation)
> calls an interface exposed by a plug-in to set up and control a media file,
> and the plug-in calls an interface on the HTMLMediaElement to inform the
> implementation of media state changes.
>  It should be fairly easy to figure out by looking at the code inside of
>  To implement it for NPAPI plug-ins, you will need to:
>  + define the media control interface an NPAPI plug-in will implement (see
> MediaPlayerProxy.h for the ObjC interface used by a WebKit plug-in).
>  + write an object that implements MediaPlayerPrivateInterface that knows
> how to deal with the plug-in interface and notifications.
>  + define a mechanism for an NPAPI plug-in to pass an object that implements
> this interface back to the HTMLMediaElement (see WebPluginContainerPrivate.h
> for the WebKit plug-in version), which will pass it to your engine
> implementation.
> eric

Sriram Neelakandan
Author - Embedded Linux System Design And Development

More information about the webkit-dev mailing list