Package org.red5.codec
Class HEVCVideo
java.lang.Object
org.red5.codec.AbstractVideo
org.red5.codec.AVCVideo
org.red5.codec.HEVCVideo
- All Implemented Interfaces:
IVideoStreamCodec
,IoConstants
Red5 video codec for the AVC (h264) video format. Stores DecoderConfigurationRecord and last keyframe.
- Author:
- Tiago Jacobs (tiago@imdt.com.br), Paul Gregoire (mondain@gmail.com)
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.red5.codec.IVideoStreamCodec
IVideoStreamCodec.FrameData
-
Field Summary
Modifier and TypeFieldDescription(package private) static final String
AVC video codec constantprivate static org.slf4j.Logger
Fields inherited from class org.red5.codec.AVCVideo
bufferInterframes, decoderConfiguration, interframes, numInterframes
Fields inherited from class org.red5.codec.AbstractVideo
keyframes, keyframeTimestamp
Fields inherited from interface org.red5.io.IoConstants
AVC_PACKET_TYPE_END_OF_SEQUENCE, AVC_PACKET_TYPE_NALU, AVC_PACKET_TYPE_SEQUENCE_HEADER, FLAG_CODEC_H263, FLAG_CODEC_SCREEN, FLAG_CODEC_VP6, FLAG_FORMAT_ADPCM, FLAG_FORMAT_MP3, FLAG_FORMAT_NELLYMOSER, FLAG_FORMAT_NELLYMOSER_8_KHZ, FLAG_FORMAT_RAW, FLAG_FRAMETYPE_DISPOSABLE, FLAG_FRAMETYPE_GENERATED_KEYFRAME, FLAG_FRAMETYPE_INFO, FLAG_FRAMETYPE_INTERFRAME, FLAG_FRAMETYPE_KEYFRAME, FLAG_RATE_11_KHZ, FLAG_RATE_22_KHZ, FLAG_RATE_44_KHZ, FLAG_RATE_48_KHZ, FLAG_RATE_5_5_KHZ, FLAG_SIZE_16_BIT, FLAG_SIZE_8_BIT, FLAG_TYPE_MONO, FLAG_TYPE_STEREO, INFO_PACKET_SEEK_END, INFO_PACKET_SEEK_START, MASK_SOUND_FORMAT, MASK_SOUND_RATE, MASK_SOUND_SIZE, MASK_SOUND_TYPE, MASK_VIDEO_CODEC, MASK_VIDEO_FRAMETYPE, TYPE_AUDIO, TYPE_ENCRYPTED, TYPE_ENCRYPTED_AUDIO, TYPE_ENCRYPTED_METADATA, TYPE_ENCRYPTED_VIDEO, TYPE_METADATA, TYPE_VIDEO
Fields inherited from interface org.red5.codec.IVideoStreamCodec
FLV_FRAME_KEY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
addData
(org.apache.mina.core.buffer.IoBuffer data, int timestamp) Update the state of the codec with the passed data.boolean
Check if the codec supports frame dropping.boolean
canHandleData
(org.apache.mina.core.buffer.IoBuffer data) Returns true if the codec knows how to handle the passed stream data.getName()
Methods inherited from class org.red5.codec.AVCVideo
addData, getDecoderConfiguration, getInterframe, getNumInterframes, isBufferInterframes, reset, setBufferInterframes, setFrames, setInterFrame, softReset
Methods inherited from class org.red5.codec.AbstractVideo
getKeyframe, getKeyframes
-
Field Details
-
log
private static org.slf4j.Logger log -
CODEC_NAME
AVC video codec constant- See Also:
-
-
Constructor Details
-
HEVCVideo
public HEVCVideo()
-
-
Method Details
-
getName
- Specified by:
getName
in interfaceIVideoStreamCodec
- Overrides:
getName
in classAVCVideo
- Returns:
- the name of the video codec.
-
canDropFrames
public boolean canDropFrames()Check if the codec supports frame dropping.- Specified by:
canDropFrames
in interfaceIVideoStreamCodec
- Overrides:
canDropFrames
in classAVCVideo
- Returns:
- if the codec supports frame dropping.
-
canHandleData
public boolean canHandleData(org.apache.mina.core.buffer.IoBuffer data) Returns true if the codec knows how to handle the passed stream data.- Specified by:
canHandleData
in interfaceIVideoStreamCodec
- Overrides:
canHandleData
in classAVCVideo
- Parameters:
data
- some sample data to see if this codec can handle it- Returns:
- can this code handle the data.
-
addData
public boolean addData(org.apache.mina.core.buffer.IoBuffer data, int timestamp) Update the state of the codec with the passed data.- Specified by:
addData
in interfaceIVideoStreamCodec
- Overrides:
addData
in classAVCVideo
- Parameters:
data
- data to tell the codec we're addingtimestamp
- time associated with the data- Returns:
- true for success. false for error
-