fm.liveswitch.openh264.Encoder Class Reference

An OpenH264-based encoder. More...

Public Member Functions

 Encoder ()
 Initializes a new instance of the fm.liveswitch.openh264.Encoder class. More...
 
 Encoder (fm.liveswitch.IVideoOutput input)
 Initializes a new instance of the fm.liveswitch.openh264.Encoder class. More...
 
 Encoder (fm.liveswitch.IVideoOutput input, fm.liveswitch.h264.ProfileLevelId profileLevelId)
 Initializes a new instance of the fm.liveswitch.openh264.Encoder class. More...
 
 Encoder (fm.liveswitch.h264.ProfileLevelId profileLevelId)
 Initializes a new instance of the fm.liveswitch.openh264.Encoder class with a profile level ID. More...
 
fm.liveswitch.openh264.EncoderConfig getCodecConfig ()
 Gets a copy of the encoder configuration. More...
 
boolean getForceKeyFrame ()
 Gets a value indicating whether a keyframe should be forced. More...
 
String getLabel ()
 Gets a label that identifies this class. More...
 
fm.liveswitch.h264.ProfileLevelId getProfileLevelId ()
 Gets the profile level identifier. More...
 
double getQuality ()
 Gets the target output quality. More...
 
int setCodecConfig (fm.liveswitch.openh264.EncoderConfig config)
 Sets the encoder configuration. More...
 
void setForceKeyFrame (boolean value)
 Sets a value indicating whether a keyframe should be forced. More...
 
void setQuality (double value)
 Sets the target output quality. More...
 
- Public Member Functions inherited from fm.liveswitch.VideoEncoder
void addOnBitrateChange (fm.liveswitch.IAction0 value)
 Adds a handler that is raised when the bitrate changes. More...
 
void addOnBitrateChangeWithCaller (fm.liveswitch.IAction1< fm.liveswitch.VideoEncoder > value)
 Adds a handler that is raised when the bitrate changes. More...
 
int getBitrate ()
 Gets the current bitrate, in kbps. More...
 
int getFrameHeight ()
 Gets the last frame height. More...
 
double getFrameRate ()
 Gets the current frame rate. More...
 
long getFramesEncoded ()
 Gets the number of encoded frames. More...
 
int getFrameWidth ()
 Gets the last frame width. More...
 
int getMaxBitrate ()
 Gets the maximum bitrate, in kbps. More...
 
int getMaxCodecBitrate ()
 Gets the maximum possible codec bitrate, in kbps. More...
 
int getMaxOutputBitrate ()
 Gets the maximum output bitrate, in kbps. More...
 
int getMinBitrate ()
 Gets the minimum bitrate, in kbps. More...
 
int getMinCodecBitrate ()
 Gets the minimum possible codec bitrate, in kbps. More...
 
int getMinOutputBitrate ()
 Gets the minimum output bitrate, in kbps. More...
 
boolean getStaticOutputBitrate ()
 Gets whether fm.liveswitch.VideoEncoder#getMinOutputBitrate and fm.liveswitch.VideoEncoder#getMaxOutputBitrate should return fm.liveswitch.VideoEncoder#getMinCodecBitrate and fm.liveswitch.VideoEncoder#getMaxCodecBitrate, respectively, or response to changes in fm.liveswitch.VideoEncoder#getMinBitrate and fm.liveswitch.VideoEncoder#getMaxBitrate. More...
 
int getTargetBitrate ()
 Gets the target bitrate, in kbps. More...
 
int getTargetOutputBitrate ()
 Gets the target output bitrate, in kbps. More...
 
boolean processFrame (fm.liveswitch.VideoFrame frame)
 Processes the frame. More...
 
void removeOnBitrateChange (fm.liveswitch.IAction0 value)
 Removes a handler that is raised when the bitrate changes. More...
 
void removeOnBitrateChangeWithCaller (fm.liveswitch.IAction1< fm.liveswitch.VideoEncoder > value)
 Removes a handler that is raised when the bitrate changes. More...
 
void setMaxBitrate (int value)
 Sets the maximum bitrate, in kbps. More...
 
void setMinBitrate (int value)
 Sets the minimum bitrate, in kbps. More...
 
void setStaticOutputBitrate (boolean value)
 Sets whether fm.liveswitch.VideoEncoder#getMinOutputBitrate and fm.liveswitch.VideoEncoder#getMaxOutputBitrate should return fm.liveswitch.VideoEncoder#getMinCodecBitrate and fm.liveswitch.VideoEncoder#getMaxCodecBitrate, respectively, or response to changes in fm.liveswitch.VideoEncoder#getMinBitrate and fm.liveswitch.VideoEncoder#getMaxBitrate. More...
 
void setTargetBitrate (int value)
 Sets the target bitrate, in kbps. More...
 
 VideoEncoder (fm.liveswitch.VideoFormat inputFormat, fm.liveswitch.VideoFormat outputFormat)
 Initializes a new instance of the fm.liveswitch.VideoEncoder class. More...
 
- Public Member Functions inherited from fm.liveswitch.VideoPipe
void addOnProcessSizeChange (fm.liveswitch.IAction1< fm.liveswitch.Size > value)
 Adds a handler that is raised when a frame is about to be processed with a size that does not match the prior frame. More...
 
void addOnRaiseSizeChange (fm.liveswitch.IAction1< fm.liveswitch.Size > value)
 Adds a handler that is raised when a frame is about to be raised with a size that does not match the prior frame. More...
 
String getContent ()
 Gets the content descriptor. More...
 
fm.liveswitch.EncodingInfo getMaxInputEncoding ()
 Gets the maximum allowed input encoding. More...
 
double getMaxInputFrameRate ()
 Gets the maximum allowed input frame-rate, in fps. More...
 
int getMaxInputHeight ()
 Gets the maximum allowed input height. More...
 
double getMaxInputScale ()
 Gets the maximum allowed input scale. More...
 
fm.liveswitch.Size getMaxInputSize ()
 Gets the maximum allowed input size. More...
 
int getMaxInputWidth ()
 Gets the maximum allowed input width. More...
 
fm.liveswitch.EncodingInfo getMaxOutputEncoding ()
 Gets the maximum allowed output encoding. More...
 
double getMaxOutputFrameRate ()
 Gets the maximum allowed output frame-rate, in fps. More...
 
int getMaxOutputHeight ()
 Gets the maximum allowed output height. More...
 
double getMaxOutputScale ()
 Gets the maximum allowed output scale. More...
 
fm.liveswitch.Size getMaxOutputSize ()
 Gets the maximum allowed output size. More...
 
int getMaxOutputWidth ()
 Gets the maximum allowed output width. More...
 
fm.liveswitch.EncodingInfo getMinInputEncoding ()
 Gets the minimum allowed input encoding. More...
 
double getMinInputFrameRate ()
 Gets the minimum allowed input frame-rate, in fps. More...
 
int getMinInputHeight ()
 Gets the minimum allowed input height. More...
 
double getMinInputScale ()
 Gets the minimum allowed input scale. More...
 
fm.liveswitch.Size getMinInputSize ()
 Gets the minimum allowed input size. More...
 
int getMinInputWidth ()
 Gets the minimum allowed input width. More...
 
fm.liveswitch.EncodingInfo getMinOutputEncoding ()
 Gets the minimum allowed output encoding. More...
 
double getMinOutputFrameRate ()
 Gets the minimum allowed output frame-rate, in fps. More...
 
int getMinOutputHeight ()
 Gets the minimum allowed output height. More...
 
double getMinOutputScale ()
 Gets the minimum allowed output scale. More...
 
fm.liveswitch.Size getMinOutputSize ()
 Gets the minimum allowed output size. More...
 
int getMinOutputWidth ()
 Gets the minimum allowed output width. More...
 
boolean getOverConstrainedFrameRate ()
 Gets whether the pipe frame-rate is over-constrained. More...
 
boolean getOverConstrainedHeight ()
 Gets whether the pipe height is over-constrained. More...
 
boolean getOverConstrainedInput ()
 Gets whether the input is over-contrained. More...
 
boolean getOverConstrainedInputFrameRate ()
 Gets whether the minimum allowed input frame-rate exceeds the maximum allowed input frame-rate. More...
 
boolean getOverConstrainedInputHeight ()
 Gets whether the minimum allowed input height exceeds the maximum allowed input height. More...
 
boolean getOverConstrainedInputScale ()
 Gets whether the minimum allowed input scale exceeds the maximum allowed input scale. More...
 
boolean getOverConstrainedInputSize ()
 Gets whether the minimum allowed input size exceeds the maximum allowed input size. More...
 
boolean getOverConstrainedInputWidth ()
 Gets whether the minimum allowed input width exceeds the maximum allowed input width. More...
 
boolean getOverConstrainedOutput ()
 Gets whether the output is over-contrained. More...
 
boolean getOverConstrainedOutputFrameRate ()
 Gets whether the minimum allowed output frame-rate exceeds the maximum allowed output frame-rate. More...
 
boolean getOverConstrainedOutputHeight ()
 Gets whether the minimum allowed output height exceeds the maximum allowed output height. More...
 
boolean getOverConstrainedOutputScale ()
 Gets whether the minimum allowed output scale exceeds the maximum allowed output scale. More...
 
boolean getOverConstrainedOutputSize ()
 Gets whether the minimum allowed output size exceeds the maximum allowed output size. More...
 
boolean getOverConstrainedOutputWidth ()
 Gets whether the minimum allowed output width exceeds the maximum allowed output width. More...
 
boolean getOverConstrainedScale ()
 Gets whether the pipe scale is over-constrained. More...
 
boolean getOverConstrainedSize ()
 Gets whether the pipe size is over-constrained. More...
 
boolean getOverConstrainedWidth ()
 Gets whether the pipe width is over-constrained. More...
 
fm.liveswitch.EncodingInfo getTargetOutputEncoding ()
 Gets the target output encoding. More...
 
double getTargetOutputFrameRate ()
 Gets the target output frame-rate, in fps. More...
 
int getTargetOutputHeight ()
 Gets the target output height. More...
 
double getTargetOutputScale ()
 Gets the target output scale. More...
 
fm.liveswitch.Size getTargetOutputSize ()
 Gets the target output size. More...
 
int getTargetOutputWidth ()
 Gets the target output width. More...
 
fm.liveswitch.VideoType getVideoType ()
 Gets the video type. More...
 
void removeOnProcessSizeChange (fm.liveswitch.IAction1< fm.liveswitch.Size > value)
 Removes a handler that is raised when a frame is about to be processed with a size that does not match the prior frame. More...
 
void removeOnRaiseSizeChange (fm.liveswitch.IAction1< fm.liveswitch.Size > value)
 Removes a handler that is raised when a frame is about to be raised with a size that does not match the prior frame. More...
 
 VideoPipe (fm.liveswitch.VideoFormat inputFormat, fm.liveswitch.VideoFormat outputFormat)
 Initializes a new instance of the fm.liveswitch.VideoPipe class. More...
 
 VideoPipe (fm.liveswitch.VideoFormat outputFormat)
 Initializes a new instance of the fm.liveswitch.VideoPipe class. More...
 
- Public Member Functions inherited from fm.liveswitch.Dynamic
java.util.HashMap< String, Object > getDynamicProperties ()
 Gets all dynamic properties on this instance. More...
 
Object getDynamicValue (String key)
 Gets a property value from the local cache. More...
 
void setDynamicValue (String key, Object value)
 Sets a property value in the local cache. More...
 
boolean unsetDynamicValue (String key)
 Removes a property value from the local cache. More...
 
- Public Member Functions inherited from fm.liveswitch.IElement
abstract String getExternalId ()
 Gets the external identifier. More...
 
abstract String getId ()
 Gets the identifier. More...
 
abstract String getPipelineJson ()
 Gets the pipeline JSON with this as the central point. More...
 
abstract void setExternalId (String value)
 Sets the external identifier. More...
 
- Public Member Functions inherited from fm.liveswitch.IMediaElement
abstract boolean destroy ()
 Destroys this instance. More...
 
abstract boolean getDeactivated ()
 Gets a value indicating whether this instance is deactivated. More...
 
abstract boolean getDisabled ()
 Gets a value indicating whether this instance is disabled. More...
 
abstract boolean getMuted ()
 Gets a value indicating whether this instance is muted. More...
 
abstract boolean getPaused ()
 Gets a value indicating whether this instance is paused. More...
 
abstract boolean getPersistent ()
 Gets a value indicating whether this instance is persistent. More...
 
abstract void setDeactivated (boolean value)
 Sets a value indicating whether this instance is deactivated. More...
 
abstract void setMuted (boolean value)
 Sets a value indicating whether this instance is muted. More...
 

Protected Member Functions

void doDestroy ()
 Destroys this instance. More...
 
void doProcessFrame (fm.liveswitch.VideoFrame frame, fm.liveswitch.VideoBuffer inputBuffer)
 Processes a frame. More...
 
- Protected Member Functions inherited from fm.liveswitch.VideoEncoder
void doProcessControlFrames (fm.liveswitch.MediaControlFrame[] controlFrames)
 Processes the control frames. More...
 
void doProcessTrackStatsFromOutput (fm.liveswitch.MediaTrackStats trackStats)
 Processes track stats from an output. More...
 
boolean getCanChangeBitrate ()
 Gets whether this pipe can change the output bitrate. More...
 
void raiseFrame (fm.liveswitch.VideoFrame frame)
 Raises the frame. More...
 
void setBitrate (int value)
 Sets the current bitrate, in kbps. More...
 
void setMaxOutputBitrate (int value)
 Sets the maximum output bitrate, in kbps. More...
 
void setMinOutputBitrate (int value)
 Sets the minimum output bitrate, in kbps. More...
 
void setTargetOutputBitrate (int value)
 Sets the target output bitrate, in kbps. More...
 
- Protected Member Functions inherited from fm.liveswitch.VideoPipe
fm.liveswitch.VideoFrame createFrame (fm.liveswitch.VideoBuffer buffer)
 Creates a frame. More...
 
fm.liveswitch.IVideoInputCollection createInputCollection (fm.liveswitch.IVideoOutput output)
 Creates an input collection. More...
 
fm.liveswitch.IVideoOutputCollection createOutputCollection (fm.liveswitch.IVideoInput input)
 Creates an output collection. More...
 
void doPreProcessFrame (fm.liveswitch.VideoFrame frame, fm.liveswitch.VideoBuffer inputBuffer)
 Pre-processes a frame. More...
 
boolean outputCanProcessFrame (fm.liveswitch.IVideoInput output)
 Determines whether an output can process a frame from this pipe. More...
 
void setMaxInputEncoding (fm.liveswitch.EncodingInfo value)
 Sets the maximum allowed input encoding. More...
 
void setMaxInputFrameRate (double value)
 Sets the maximum allowed input frame-rate, in fps. More...
 
void setMaxInputScale (double value)
 Sets the maximum allowed input scale. More...
 
void setMaxInputSize (fm.liveswitch.Size value)
 Sets the maximum allowed input size. More...
 
void setMaxOutputEncoding (fm.liveswitch.EncodingInfo value)
 Sets the maximum allowed output encoding. More...
 
void setMaxOutputFrameRate (double value)
 Sets the maximum allowed output frame-rate, in fps. More...
 
void setMaxOutputScale (double value)
 Sets the maximum allowed output scale. More...
 
void setMaxOutputSize (fm.liveswitch.Size value)
 Sets the maximum allowed output size. More...
 
void setMinInputEncoding (fm.liveswitch.EncodingInfo value)
 Sets the minimum allowed input encoding. More...
 
void setMinInputFrameRate (double value)
 Sets the minimum allowed input frame-rate, in fps. More...
 
void setMinInputScale (double value)
 Sets the minimum allowed input scale. More...
 
void setMinInputSize (fm.liveswitch.Size value)
 Sets the minimum allowed input size. More...
 
void setMinOutputEncoding (fm.liveswitch.EncodingInfo value)
 Sets the minimum allowed output encoding. More...
 
void setMinOutputFrameRate (double value)
 Sets the minimum allowed output frame-rate, in fps. More...
 
void setMinOutputScale (double value)
 Sets the minimum allowed output scale. More...
 
void setMinOutputSize (fm.liveswitch.Size value)
 Sets the minimum allowed output size. More...
 
void setTargetOutputEncoding (fm.liveswitch.EncodingInfo value)
 Sets the target output encoding. More...
 
void setTargetOutputFrameRate (double value)
 Sets the target output frame-rate, in fps. More...
 
void setTargetOutputScale (double value)
 Sets the target output scale. More...
 
void setTargetOutputSize (fm.liveswitch.Size value)
 Sets the target output size. More...
 
void setVideoType (fm.liveswitch.VideoType value)
 Sets the video type. More...
 
- Protected Member Functions inherited from fm.liveswitch.Dynamic
 Dynamic ()
 
- Protected Member Functions inherited from fm.liveswitch.Serializable
boolean getIsDirty ()
 Gets a value indicating whether this instance is dirty. More...
 
 Serializable ()
 Initializes a new instance of the fm.liveswitch.Serializable class. More...
 
void setIsDirty (boolean value)
 Sets a value indicating whether this instance is dirty. More...
 

Detailed Description

An OpenH264-based encoder.

Constructor & Destructor Documentation

◆ Encoder() [1/4]

fm.liveswitch.openh264.Encoder.Encoder ( )

Initializes a new instance of the fm.liveswitch.openh264.Encoder class.

◆ Encoder() [2/4]

fm.liveswitch.openh264.Encoder.Encoder ( fm.liveswitch.IVideoOutput  input)

Initializes a new instance of the fm.liveswitch.openh264.Encoder class.

Parameters
inputThe input.

◆ Encoder() [3/4]

fm.liveswitch.openh264.Encoder.Encoder ( fm.liveswitch.IVideoOutput  input,
fm.liveswitch.h264.ProfileLevelId  profileLevelId 
)

Initializes a new instance of the fm.liveswitch.openh264.Encoder class.

Parameters
inputThe input.
profileLevelIdThe profile level ID.

◆ Encoder() [4/4]

fm.liveswitch.openh264.Encoder.Encoder ( fm.liveswitch.h264.ProfileLevelId  profileLevelId)

Initializes a new instance of the fm.liveswitch.openh264.Encoder class with a profile level ID.

Parameters
profileLevelIdThe profile level ID.

Member Function Documentation

◆ doDestroy()

void fm.liveswitch.openh264.Encoder.doDestroy ( )
protected

Destroys this instance.

◆ doProcessFrame()

void fm.liveswitch.openh264.Encoder.doProcessFrame ( fm.liveswitch.VideoFrame  frame,
fm.liveswitch.VideoBuffer  inputBuffer 
)
protected

Processes a frame.

Parameters
frameThe frame.
inputBufferThe input buffer.

◆ getCodecConfig()

fm.liveswitch.openh264.EncoderConfig fm.liveswitch.openh264.Encoder.getCodecConfig ( )

Gets a copy of the encoder configuration.

◆ getForceKeyFrame()

boolean fm.liveswitch.openh264.Encoder.getForceKeyFrame ( )

Gets a value indicating whether a keyframe should be forced.

Reimplemented from fm.liveswitch.VideoEncoder.

◆ getLabel()

String fm.liveswitch.openh264.Encoder.getLabel ( )

Gets a label that identifies this class.

Implements fm.liveswitch.IMediaElement.

◆ getProfileLevelId()

fm.liveswitch.h264.ProfileLevelId fm.liveswitch.openh264.Encoder.getProfileLevelId ( )

Gets the profile level identifier.

◆ getQuality()

double fm.liveswitch.openh264.Encoder.getQuality ( )

Gets the target output quality.

◆ setCodecConfig()

int fm.liveswitch.openh264.Encoder.setCodecConfig ( fm.liveswitch.openh264.EncoderConfig  config)

Sets the encoder configuration.

Returns
0 on success, non-zero on failure.

◆ setForceKeyFrame()

void fm.liveswitch.openh264.Encoder.setForceKeyFrame ( boolean  value)

Sets a value indicating whether a keyframe should be forced.

Reimplemented from fm.liveswitch.VideoEncoder.

◆ setQuality()

void fm.liveswitch.openh264.Encoder.setQuality ( double  value)

Sets the target output quality.