Methods Summary |
---|
public void | close()
if (source != null) {
try {
source.stop();
// stop every tracks, so that readFrame() can be released.
// close every tracks to unblock the transfer handlers.
for (int i = 0; i < tracks.length; i++) {
((FrameTrack)tracks[i]).stop();
((FrameTrack)tracks[i]).close();
}
source.disconnect();
} catch (Exception e) {
// Internal error?
}
source = null;
}
started = false;
|
public java.lang.String | getName()
return NAMEBUFFER;
|
public javax.media.Track[] | getTracks()
for (int i = 0; i < tracks.length; i++)
((FrameTrack)tracks[i]).parse();
return tracks;
|
boolean | isRTPFormat(javax.media.Format fmt)
return fmt != null &&
fmt.getEncoding() != null &&
(fmt.getEncoding().endsWith("rtp") ||
fmt.getEncoding().endsWith("RTP"));
|
public void | open()Opens the plug-in software or hardware component and acquires
necessary resources. If all the needed resources could not be
acquired, it throws a ResourceUnavailableException. Data should not
be passed into the plug-in without first calling this method.
if (tracks != null)
return;
tracks = new Track[streams.length];
for (int i = 0; i < streams.length; i++) {
tracks[i] = new FrameTrack(this, (PushBufferStream)streams[i], 1);
}
|
public void | reset()Resets the state of the plug-in. Typically at end of media or when media
is repositioned.
for (int i = 0; i < tracks.length; i++)
((FrameTrack)tracks[i]).reset();
|
public void | setSource(javax.media.protocol.DataSource source)
if (!(source instanceof PushBufferDataSource)) {
throw new IncompatibleSourceException("DataSource not supported: " + source);
} else {
streams = ((PushBufferDataSource) source).getStreams();
}
if ( streams == null) {
throw new IOException("Got a null stream from the DataSource");
}
if (streams.length == 0) {
throw new IOException("Got a empty stream array from the DataSource");
}
if (!supports(streams))
throw new IncompatibleSourceException("DataSource not supported: " + source);
this.source = source;
this.streams = streams;
|
public void | start()Start the parser.
for (int i = 0; i < tracks.length; i++)
((FrameTrack)tracks[i]).start();
source.start();
started = true;
|
public void | stop()Stop the parser.
try {
source.stop();
// stop each of the tracks, so that readFrame can be released
for (int i = 0; i < tracks.length; i++)
((FrameTrack)tracks[i]).stop();
} catch (Exception e) {
// Internal errors?
}
started = false;
|
protected boolean | supports(javax.media.protocol.SourceStream[] streams)Override this if the Parser has additional requirements
from the PushSourceStream
return ( (streams[0] != null) &&
(streams[0] instanceof PushBufferStream) );
|