Class TechSmithCodec
- All Implemented Interfaces:
Codec
TechSmithCodec (tscc) encodes a BufferedImage as a byte[] array.
The TechSmith codec works with AVI and QuickTime.
This codec supports encoding from a BufferedImage into the file
format, and decoding from the file format to a BufferedImage.
This codec does not encode the color palette of an image. This must be done separately.
Supported input formats:
-
FormatwithBufferedImage.class, any width, any height, depth=8,16 or 24.
-
Formatwithbyte[].class, same width and height as input format, depth=8,16 or 24.
Compression of a frame is performed in two steps: In the first, step a frame is compressed line by line from bottom to top. In the second step the resulting data is compressed again using zlib compression.
Apart from the second compression step and the support for 16- and 24-bit
data, this encoder is identical to the RunLengthCodec.
Each line of a frame is compressed individually. A line consists of two-byte op-codes optionally followed by data. The end of the line is marked with the EOL op-code.
The following op-codes are supported:
0x00 0x00
Marks the end of a line.0x00 0x01
Marks the end of the bitmap.0x00 0x02 x y
Marks a delta (skip).xandyindicate the horizontal and vertical offset from the current position.xandyare unsigned 8-bit values.0x00 n pixel{n} 0x00?
Marks a literal run.ngives the number of 8-, 16- or 24-bit pixels that follow.nmust be between 3 and 255. If n is odd and 8-bit pixels are used, a pad byte with the value 0x00 must be added.n pixel
Marks a repetition.ngives the number of times the given pixel is repeated.nmust be between 1 and 255.
Compressed data Expanded data 03 04 04 04 04 05 06 06 06 06 06 06 00 03 45 56 67 00 45 56 67 02 78 78 78 00 02 05 01 Move 5 right and 1 down 02 78 78 78 00 00 End of line 09 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 00 01 End of RLE bitmap
References:
http://wiki.multimedia.cx/index.php?title=TechSmith_Screen_Capture_Codec
- Author:
- Werner Randelshofer
-
Field Summary
Fields inherited from class org.monte.media.av.AbstractCodec
inputFormat, inputFormats, name, outputFormat, outputFormatsFields inherited from interface org.monte.media.av.Codec
CODEC_FAILED, CODEC_INPUT_NOT_CONSUMED, CODEC_OK, CODEC_OUTPUT_NOT_FILLED -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintintintPerforms the media processing defined by this codec.voidreset()Empty implementation of the reset method.Sets the output format.Methods inherited from class org.monte.media.av.codec.video.AbstractVideoCodec
copyImage, getARGB32, getBufferedImage, getColorModel, getIndexed8, getRGB15, getRGB16, getRGB24, writeInt24, writeInt24LE, writeInts24, writeInts24LEMethods inherited from class org.monte.media.av.AbstractCodec
getInputFormat, getInputFormats, getName, getOutputFormat, getOutputFormats, setInputFormat, toString
-
Constructor Details
-
TechSmithCodec
public TechSmithCodec()
-
-
Method Details
-
setOutputFormat
Description copied from interface:CodecSets the output format. Returns the format that was actually set. This is the closest format that the Codec supports. Returns null if the specified format is not supported and no reasonable match could be found.- Specified by:
setOutputFormatin interfaceCodec- Overrides:
setOutputFormatin classAbstractCodec
-
reset
public void reset()Description copied from class:AbstractCodecEmpty implementation of the reset method. Don't call super.- Specified by:
resetin interfaceCodec- Overrides:
resetin classAbstractCodec
-
process
-
decode
-
encode
-