net.sf.fmj.media.parser
Class MultipartMixedReplaceParser

java.lang.Object
  extended by net.sf.fmj.media.AbstractControls
      extended by net.sf.fmj.media.AbstractPlugIn
          extended by net.sf.fmj.media.AbstractDemultiplexer
              extended by net.sf.fmj.media.parser.MultipartMixedReplaceParser
All Implemented Interfaces:
Controls, Demultiplexer, Duration, MediaHandler, PlugIn

public class MultipartMixedReplaceParser
extends AbstractDemultiplexer

Parser for multipart/x-mixed-replace - used in some cases for streaming jpegs. TODO: check out the jipcam project, which has Mjpeg parsing info. This project also has some ip camera info: http://www.codeproject.com/cs/media/cameraviewer.asp?print=true Some camera links from that project: Not responding: http://chipmunk.uvm.edu/cgi-bin/webcam/nph-update.cgi?dummy=garb Works: http://webcam-1.duesseldorf.it-on.net/cgi-bin/nph-update.cgi Works: http://webcam-2.duesseldorf.it-on.net/cgi-bin/nph-update.cgi Works: http://towercam.uu.edu/axis-cgi/mjpg/video.cgi Works: http://136.165.99.86/axis-cgi/mjpg/video.cgi Works: http://217.114.115.192/axis-cgi/mjpg/video.cgi Works: http://129.78.249.81/axis-cgi/mjpg/video.cgi Others: Works: http://camera.baywatch.tv/axis-cgi/mjpg/video.cgi?camera=1&resolution=352x240&compression=50 Works: http://www.surfshooterhawaii.com//cgi-bin/axispush555.cgi?dummy=garb More camera links: http://www.axis.com/solutions/video/gallery.htm TODO: support end-of-message, with 2 dashes after separator, see http://wp.netscape.com/assist/net_sites/pushpull.html

Author:
Ken Larson

Field Summary
static java.lang.String TIMESTAMP_KEY
           
 
Fields inherited from interface javax.media.PlugIn
BUFFER_PROCESSED_FAILED, BUFFER_PROCESSED_OK, INPUT_BUFFER_NOT_CONSUMED, OUTPUT_BUFFER_NOT_FILLED, PLUGIN_TERMINATED
 
Fields inherited from interface javax.media.Duration
DURATION_UNBOUNDED, DURATION_UNKNOWN
 
Constructor Summary
MultipartMixedReplaceParser()
           
 
Method Summary
 void close()
           
 ContentDescriptor[] getSupportedInputContentDescriptors()
           
 Track[] getTracks()
           
 boolean isPositionable()
           
 boolean isRandomAccess()
           
 void open()
           
 void setSource(DataSource source)
           
 void start()
           
 
Methods inherited from class net.sf.fmj.media.AbstractDemultiplexer
getDuration, getMediaTime, setPosition, stop
 
Methods inherited from class net.sf.fmj.media.AbstractPlugIn
getName, reset
 
Methods inherited from class net.sf.fmj.media.AbstractControls
addControl, getControl, getControls, removeControl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.media.PlugIn
getName, reset
 
Methods inherited from interface javax.media.Controls
getControl, getControls
 

Field Detail

TIMESTAMP_KEY

public static final java.lang.String TIMESTAMP_KEY
See Also:
Constant Field Values
Constructor Detail

MultipartMixedReplaceParser

public MultipartMixedReplaceParser()
Method Detail

getSupportedInputContentDescriptors

public ContentDescriptor[] getSupportedInputContentDescriptors()
Specified by:
getSupportedInputContentDescriptors in interface Demultiplexer
Specified by:
getSupportedInputContentDescriptors in class AbstractDemultiplexer

getTracks

public Track[] getTracks()
                  throws java.io.IOException,
                         BadHeaderException
Specified by:
getTracks in interface Demultiplexer
Specified by:
getTracks in class AbstractDemultiplexer
Throws:
java.io.IOException
BadHeaderException

setSource

public void setSource(DataSource source)
               throws java.io.IOException,
                      IncompatibleSourceException
Specified by:
setSource in interface MediaHandler
Specified by:
setSource in class AbstractDemultiplexer
Throws:
java.io.IOException
IncompatibleSourceException

open

public void open()
          throws ResourceUnavailableException
Specified by:
open in interface PlugIn
Overrides:
open in class AbstractPlugIn
Throws:
ResourceUnavailableException

close

public void close()
Specified by:
close in interface PlugIn
Overrides:
close in class AbstractPlugIn

start

public void start()
           throws java.io.IOException
Specified by:
start in interface Demultiplexer
Overrides:
start in class AbstractDemultiplexer
Throws:
java.io.IOException

isPositionable

public boolean isPositionable()
Specified by:
isPositionable in interface Demultiplexer
Overrides:
isPositionable in class AbstractDemultiplexer

isRandomAccess

public boolean isRandomAccess()
Specified by:
isRandomAccess in interface Demultiplexer
Overrides:
isRandomAccess in class AbstractDemultiplexer