Jitsi: the OpenSource Java VoIP and Instant Messaging client.

net.java.sip.communicator.impl.neomedia.codec.video.h264
Class DePacketizer

java.lang.Object
  extended by net.sf.fmj.media.AbstractControls
      extended by net.sf.fmj.media.AbstractPlugIn
          extended by net.sf.fmj.media.AbstractCodec
              extended by net.java.sip.communicator.impl.neomedia.codec.AbstractCodecExt
                  extended by net.java.sip.communicator.impl.neomedia.codec.video.h264.DePacketizer
All Implemented Interfaces:
javax.media.Codec, javax.media.Controls, javax.media.PlugIn

public class DePacketizer
extends AbstractCodecExt

Implements Codec to represent a depacketizer of H.264 RTP packets into NAL units.

Author:
Lyubomir Marinov, Damian Minkov

Field Summary
 
Fields inherited from class net.sf.fmj.media.AbstractCodec
inputFormat, inputFormats, opened, outputFormat
 
Fields inherited from interface javax.media.PlugIn
BUFFER_PROCESSED_FAILED, BUFFER_PROCESSED_OK, INPUT_BUFFER_NOT_CONSUMED, OUTPUT_BUFFER_NOT_FILLED, PLUGIN_TERMINATED
 
Constructor Summary
DePacketizer()
          Initializes a new DePacketizer instance which is to depacketize H.264 RTP packets into NAL units.
 
Method Summary
protected  void doClose()
          Close the Codec.
protected  void doOpen()
          Opens this Codec and acquires the resources that it needs to operate.
protected  int doProcess(javax.media.Buffer inBuffer, javax.media.Buffer outBuffer)
          Processes (depacketizes) a buffer.
 boolean requestKeyFrame(boolean urgent)
          Requests a key frame from the remote peer associated with this DePacketizer using the logic of DePacketizer.
 void setKeyFrameControl(KeyFrameControl keyFrameControl)
          Sets the KeyFrameControl to be used by this DePacketizer as a means of control over its key frame-related logic.
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.codec.AbstractCodecExt
close, discardOutputBuffer, getMatchingOutputFormats, getName, getSupportedOutputFormats, matches, open, process, setInputFormat, setOutputFormat, updateOutput, validateByteArraySize, validateShortArraySize
 
Methods inherited from class net.sf.fmj.media.AbstractCodec
checkInputBuffer, dump, getInputFormat, getOutputFormat, getSupportedInputFormats, isEOM, propagateEOM
 
Methods inherited from class net.sf.fmj.media.AbstractPlugIn
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
reset
 
Methods inherited from interface javax.media.Controls
getControl, getControls
 

Constructor Detail

DePacketizer

public DePacketizer()
Initializes a new DePacketizer instance which is to depacketize H.264 RTP packets into NAL units.

Method Detail

doClose

protected void doClose()
Close the Codec.

Specified by:
doClose in class AbstractCodecExt

doOpen

protected void doOpen()
               throws javax.media.ResourceUnavailableException
Opens this Codec and acquires the resources that it needs to operate. A call to PlugIn.open() on this instance will result in a call to doOpen only if AbstractCodec.opened is false. All required input and/or output formats are assumed to have been set on this Codec before doOpen is called.

Specified by:
doOpen in class AbstractCodecExt
Throws:
javax.media.ResourceUnavailableException - if any of the resources that this Codec needs to operate cannot be acquired
See Also:
AbstractCodecExt.doOpen()

doProcess

protected int doProcess(javax.media.Buffer inBuffer,
                        javax.media.Buffer outBuffer)
Processes (depacketizes) a buffer.

Specified by:
doProcess in class AbstractCodecExt
Parameters:
inBuffer - input buffer
outBuffer - output buffer
Returns:
BUFFER_PROCESSED_OK if buffer has been successfully processed

requestKeyFrame

public boolean requestKeyFrame(boolean urgent)
Requests a key frame from the remote peer associated with this DePacketizer using the logic of DePacketizer.

Parameters:
urgent - true if the caller has determined that the need for a key frame is urgent and should not obey all constraints with respect to time between two subsequent requests for key frames
Returns:
true if a key frame was indeed requested in response to the call; otherwise, false

setKeyFrameControl

public void setKeyFrameControl(KeyFrameControl keyFrameControl)
Sets the KeyFrameControl to be used by this DePacketizer as a means of control over its key frame-related logic.

Parameters:
keyFrameControl - the KeyFrameControl to be used by this DePacketizer as a means of control over its key frame-related logic

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under LGPL license.