They're here and they're hot! For an architecture that is not yet one year old, the current number of available Netscape Navigator plug-ins is phenomenal. Vendors are rushing to support their file formats with Navigator plug-ins. While Adobe, Macromedia, Autodesk, Micrografx, Corel, Farallon, and Apple are expanding their software horizons with plug-ins, lesser-known vendors with cool names such as Totally Hip, Tumbleweed Software, and Starfish Software are gaining popularity.
For the most part, Navigator plug-ins are file format driven. That is, software vendors are developing plug-ins to support their own file formats (to make them more popular) or to support existing popular formats. Consider a plug-in called FIGleaf Inline from Carberry Technologies. This plug-in supports image file formats such as CGM, GIF, JPEG, PNG, TIFF, CCITT, GP4, BMP, WMF, EPSF, Sun Raster and more. All popular multimedia file types will eventually have Navigator plug-in support. In many cases, as you'll see throughout this book, supporting these new types is a simple matter of mapping the Navigator Plug-in API to the appropriate system level API.
This chapter takes a look at some existing (as of May 1996) plug-ins of each main category. For more plug-ins, take a look at Appendix B "Today's Wide Word of Plug-Ins." Additionally, you can get the most up-to-date plug-in lists on the Web. Netscape maintains a good list at its home page:
http://www.netscape.com
Just search for plug-ins, because the exact location of the list changes frequently. Another good source for existing Navigator plug-ins is BrowswerWatch, which is located at the following address:
http://www.browserwatch.com
If you are planning to develop a Navigator plug-in for profit, you should monitor as many plug-in related Web sites and news groups as possible. BrowserWatch provides an excellent source of Web browser and plug-in news. Sometimes, the origins of this site's news are from Netscape and other plug-in developers that want to remain anonymous. It's basically a forum for companies to leak information to developers without getting the marketing department involved in a formal press release.
The majority of today's plug-ins fit nicely into the following eight categories:
Image viewers
Document viewers
Presentation
Animation
3-D and VRML
Audio
Video
Utilities
Plug-ins that don't fit well into these categories can be thrown into the Utilities section, because any plug-in can essentially be considered a utility.
Today's plug-ins use two basic architectures. In this book, these architectures are called streaming plug-ins and file-based plug-ins. You will see many examples of both later in this book. A streaming plug-in processes data as it is downloaded from the Web server. A file-based plug-in must download a complete file before it can process the data. As a general rule, streaming plug-ins are most desirable because they make more efficient use of time.
For example, consider the audio player plug-in that ships with Navigator 3.x. This plug-in is file-based-that is, it operates on a number of audio file formats after the complete file has been downloaded. Now compare that to a real-time audio broadcast, which must be a streaming plug-in because there is never a file.
When you are designing your plug-in, use a streaming design as much as possible. Keep in mind that a client machine running a Web browser is much faster than today's fastest Internet access speeds. Try to utilize that CPU bandwidth while data is downloading.
Image viewer plug-ins do exactly what the name implies: view images. This is a popular plug-in category and has many offerings.
Have you ever seen one of Berkeley System's slide show style screen savers? The company created a number of different products from Star Trek to Marvel Comics. The still images in these products are compressed using fractal technology from Iterated Systems. Iterated now has a plug-in for Navigator that offers great image compression. Figure 2.1 shows a picture of a skier displayed with Iterated Systems' Fractal Viewer plug-in. This graphic file is only 24KB in size! Notice the multitude of menu items available for special effects such as zoom, dither, flip, and rotate. The plug-in is available from http://www.interated.com.
Figure 2.1 : Iterated's Fractal Viewer plug-in in action.
Document viewer plug-ins view documents created by other software applications. A company called Inso Corporation has created a plug-in for viewing Microsoft Word documents. This plug-in is very useful for sharing Word documents via a Web server. Corporations with Intranets can use plug-ins such as this for employee viewing of important internal documents. Figure 2.2 shows this chapter as it is being written using Inso's Word Viewer plug-in. Get this plug-in from http://www.inso.com.
Figure 2.2 : Inso's Word Viewer is viewing this chapter as it is being written.
Presentation plug-ins are usually implemented as a slide show viewer with screen transitions. These plug-ins are good for presentations, as you would expect. Using the Navigator Web Browser as a generic viewer for presentations allows users to see a corporate presentation with the familiar browser interface.
The ASAP WebShow plug-in (http://www.spco.com) from Software Publishing Corporation has the capability to expand the presentation to the full computer screen. This is a nice feature because the full computer screen is used for your presentation instead of sharing space with the Navigator. Figure 2.3 shows ASAP WebShow viewing a presentation in full screen mode.
Figure 2.3 : SPC's ASAP WebShow is viewing a presentation in full screen mode.
Shockwave from Macromedia is the big deal for animation plug-ins. Unfortunately, the Shockwave installation is very large, and it is difficult to download.
A company called Totally Hip has a smaller implementation of an animation plug-in. This is a true streaming based plug-in called Sizzler. The animation increases in resolution as more data downloads-similar to Netscape's GIF file support, but animated. In Figure 2.4, a fly is animated across a Web page. You can get this plug-in from http://www.totallyhip.com.
Figure 2.4 : A Web page using Totally Hip's Sizzler to animate a fly across the page.
The Virtual Reality Modeling Language (VRML) makes interactive three-dimensional Web pages a reality. This technology is so intense that it requires its own language-VRML, as opposed to the traditional HTML.
Netscape, a big believer in VRML, ships a plug-in called Live3D with its browser. This plug-in lets you "fly" through 3-D virtual worlds. Figure 2.5 shows the menu items used to control your navigation through some three-dimensional blocks faced with the Netscape logo. The Live3D plug-in is available from Netscape's home page: http://www.netscape.com.
Figure 2.5 : You can navigate through these Netscape blocks with Netscape's Live3D plug-in.
A number of streaming audio based plug-ins are available from vendors such as Voxware and RealAudio. These plug-ins provide excellent audio compression to make real-time audio over the Internet a reality.
For regular, run-of-the-mill file-based audio such as .WAV format, Netscape ships an audio player with the Navigator that supports a large array of audio formats. This player is displayed in Figure 2.6. You can see the VCR style controls for play, stop and pause in addition to volume control. The audio player plug-in ships with Navigator 3.x.
Figure 2.6 : Netscape's audio player that ships with Navigator 3.x.
Streaming video plug-ins do exist from vendors such as VDOnet and Iterated Systems. You might not want to watch a movie through these plug-ins, but the frame rate that they achieve is impressive considering current Internet bandwidth.
Navigator 3.x for Windows ships with a player for .AVI video files. This is a file-based plug-in and it is not as impressive as the streaming video plug-ins, but everyone with Navigator 3.x will have it. Figure 2.7 shows Netscape's AVI player plug-in with a pop-up menu for controlling movie playback.
Figure 2.7 : Netscape's video player that ships with Navigator 3.x.
Several interesting utility plug-ins exist for Netscape Navigator. Be sure to check out the remote control plug-ins from Carbon Copy/Net and Farallon. Also interesting are OLE-based plug-ins from ActiveX and OpenScape.
Starfish software makes a plug-in that tells you the time in locations around the world. This plug-in also gives you an animated map that indicates daylight and darkness. The map is shown in Figure 2.8. Get the Earthtime plug-in from Starfish at http://www.starfishsoftware.com.
Figure 2.8 : The Earth Time plug-in from Starfish software.
If you want to investigate more plug-ins, be sure to check out Appendix B, "Today's Wide World of Plug-Ins," and, of course, check the Web. Try to learn from other plug-in authors before you start writing your own plug-in. Notice whether plug-ins are stream or file based. See what file formats they support. Don't reinvent the wheel!
Throughout this book, you will learn how to write you own plug-ins using different streaming, buffering, and multimedia techniques. Some of this book's samples such as Chapter 20, "A Plug-In with MCIWnd," show how easy it is to write a very sophisticated plug-in with very little code. Chapter 17, "A Streaming Audio Sample," is a fully streaming audio sample that demonstrates multithreaded 32-bit Windows programming and real-time data buffering. You can use these samples as a basis to write your own plug-ins for both private and commercial applications.
Most plug-ins get their start from a media file's MIME type. What is MIME? You'll find out in the next chapter.