📄 formattest.java
字号:
package net.sf.fmj.test.compat.formats;import java.awt.Dimension;import javax.media.Format;import javax.media.format.AudioFormat;import javax.media.format.H261Format;import javax.media.format.H263Format;import javax.media.format.IndexedColorFormat;import javax.media.format.JPEGFormat;import javax.media.format.RGBFormat;import javax.media.format.VideoFormat;import javax.media.format.YUVFormat;import com.sun.media.format.WavAudioFormat;import junit.framework.TestCase;/** * * @author Ken Larson * */public class FormatTest extends TestCase{ class MyFormat extends Format { public MyFormat(String arg0, Class arg1) { super(arg0, arg1); } public MyFormat(String arg0) { super(arg0); } public Class getClazz() { return this.clz; } } public void testWavFormat() { { final WavAudioFormat f = new WavAudioFormat("abc"); assertEquals(f.getEncoding(), "abc"); assertEquals(f.getSampleRate(), (double) Format.NOT_SPECIFIED); assertEquals(f.getSampleSizeInBits(), Format.NOT_SPECIFIED); assertEquals(f.getChannels(), Format.NOT_SPECIFIED); assertEquals(f.getFrameSizeInBits(), Format.NOT_SPECIFIED); assertEquals(f.getAverageBytesPerSecond(), Format.NOT_SPECIFIED); assertEquals(f.getFrameRate(), (double) Format.NOT_SPECIFIED); assertEquals(f.getEndian(), Format.NOT_SPECIFIED); assertEquals(f.getSigned(), Format.NOT_SPECIFIED); assertEquals(f.getDataType(), Format.byteArray); } { final WavAudioFormat f = new WavAudioFormat("abc", 1.0, 2, 3, 4, 5, 6, 7, 8.f, Format.byteArray, new byte[] {(byte) 0}); assertEquals(f.getEncoding(), "abc"); assertEquals(f.getSampleRate(), 1.0); assertEquals(f.getSampleSizeInBits(), 2); assertEquals(f.getChannels(), 3); assertEquals(f.getFrameSizeInBits(), 4); assertEquals(f.getAverageBytesPerSecond(), 5); assertEquals(f.getFrameRate(), 5.0); assertEquals(f.getEndian(), 6); assertEquals(f.getSigned(), 7); assertEquals(f.getDataType(), Format.byteArray); } { final WavAudioFormat f = new WavAudioFormat("abc", 1.0, 2, 3, 4, 10, 6, 7, 8.f, Format.byteArray, new byte[] {(byte) 0}); assertEquals(f.getEncoding(), "abc"); assertEquals(f.getSampleRate(), 1.0); assertEquals(f.getSampleSizeInBits(), 2); assertEquals(f.getChannels(), 3); assertEquals(f.getFrameSizeInBits(), 4); assertEquals(f.getAverageBytesPerSecond(), 10); assertEquals(f.getFrameRate(), 10.0); assertEquals(f.getEndian(), 6); assertEquals(f.getSigned(), 7); assertEquals(f.getDataType(), Format.byteArray); } { final WavAudioFormat f = new WavAudioFormat("abc", 1.0, 2, 3, 4, Format.NOT_SPECIFIED, 6, 7, 8.f, Format.byteArray, new byte[] {(byte) 0}); assertEquals(f.getEncoding(), "abc"); assertEquals(f.getSampleRate(), 1.0); assertEquals(f.getSampleSizeInBits(), 2); assertEquals(f.getChannels(), 3); assertEquals(f.getFrameSizeInBits(), 4); assertEquals(f.getAverageBytesPerSecond(), Format.NOT_SPECIFIED); assertEquals(f.getFrameRate(), (double) Format.NOT_SPECIFIED); assertEquals(f.getEndian(), 6); assertEquals(f.getSigned(), 7); assertEquals(f.getDataType(), Format.byteArray); } { final WavAudioFormat f = new WavAudioFormat("abc", 1.0, 2, 3, 4, 5, new byte[] {(byte) 0}); assertEquals(f.getEncoding(), "abc"); assertEquals(f.getSampleRate(), 1.0); assertEquals(f.getSampleSizeInBits(), 2); assertEquals(f.getChannels(), 3); assertEquals(f.getFrameSizeInBits(), 4); assertEquals(f.getAverageBytesPerSecond(), 5); assertEquals(f.getFrameRate(), 5.0); assertEquals(f.getEndian(), Format.NOT_SPECIFIED); assertEquals(f.getSigned(), Format.NOT_SPECIFIED); assertEquals(f.getDataType(), Format.byteArray); } } public void testToString() { // strings assertEquals(new Format("abc").toString(), "abc"); assertEquals(new Format(null).toString(), null); assertEquals(new Format("abc", Format.byteArray).toString(), "abc"); assertEquals(new Format("abc", Format.intArray).toString(), "abc"); assertEquals(new Format("abc", Format.shortArray).toString(), "abc"); assertEquals(new VideoFormat("abc").toString(), "ABC"); assertEquals(new VideoFormat(null).toString(), "N/A"); assertEquals(new VideoFormat(VideoFormat.MPEG).toString(), "MPEG"); assertEquals(new VideoFormat(VideoFormat.MPEG, new Dimension(0, 0), 1000, Format.byteArray, 1.f).toString(), "MPEG, 0x0, FrameRate=1.0, Length=1000"); assertEquals(new VideoFormat(VideoFormat.MPEG, null, 1000, Format.byteArray, 1.f).toString(), "MPEG, FrameRate=1.0, Length=1000"); assertEquals(new VideoFormat(VideoFormat.MPEG, null, Format.NOT_SPECIFIED, Format.byteArray, 1.f).toString(), "MPEG, FrameRate=1.0"); assertEquals(new VideoFormat(VideoFormat.CINEPAK).toString(), "CVID"); assertEquals(new VideoFormat(VideoFormat.JPEG_RTP).toString(), "JPEG/RTP"); assertEquals(new VideoFormat(VideoFormat.IRGB).toString(), "IRGB"); assertEquals(new VideoFormat(VideoFormat.INDEO32).toString(), "IV32"); assertEquals(new YUVFormat().toString(), "YUV Video Format: Size = null MaxDataLength = -1 DataType = class [B yuvType = -1 StrideY = -1 StrideUV = -1 OffsetY = -1 OffsetU = -1 OffsetV = -1\n"); assertEquals(new YUVFormat(YUVFormat.YUV_111).toString(), "YUV Video Format: Size = null MaxDataLength = -1 DataType = class [B yuvType = 8 StrideY = -1 StrideUV = -1 OffsetY = -1 OffsetU = -1 OffsetV = -1\n"); assertEquals(new YUVFormat(new java.awt.Dimension(120, 200), 1000, YUVFormat.byteArray, 1.f, YUVFormat.YUV_111, 2, 3, 4, 5, 6).toString(), "YUV Video Format: Size = java.awt.Dimension[width=120,height=200] MaxDataLength = 1000 DataType = class [B yuvType = 8 StrideY = 2 StrideUV = 3 OffsetY = 4 OffsetU = 5 OffsetV = 6\n"); assertEquals(new RGBFormat().toString(), "RGB, -1-bit, Masks=-1:-1:-1, PixelStride=-1, LineStride=-1"); assertEquals(new JPEGFormat().toString(), "jpeg video format: dataType = class [B"); assertEquals(new JPEGFormat(new Dimension(1, 1), 1000, Format.shortArray, 1.f, 2, 3).toString(), "jpeg video format: size = 1x1 FrameRate = 1.0 maxDataLength = 1000 dataType = class [S q factor = 2 decimation = 3"); assertEquals(new JPEGFormat(new Dimension(1, 1), 1000, Format.shortArray, 1.f, -1, 3).toString(), "jpeg video format: size = 1x1 FrameRate = 1.0 maxDataLength = 1000 dataType = class [S decimation = 3"); assertEquals(new H261Format().toString(), "H.261 video format"); assertEquals(new H261Format(new Dimension(1, 1), 2000, Format.byteArray, 3.f, 1).toString(), "H.261 video format"); assertEquals(new H263Format().toString(), "H.263 video format"); assertEquals(new H263Format(new Dimension(1, 1), 2000, Format.shortArray, 2.f, 1, 2, 3, 4, 5, 6).toString(), "H.263 video format"); assertEquals(new IndexedColorFormat(new Dimension(1, 1), 2000, Format.byteArray, 3.f, 1, 2, new byte[] {0, 0}, new byte[] {0, 0}, new byte[] {0, 0}).toString(), "IRGB, 1x1, FrameRate=3.0, Length=2000"); assertEquals(new IndexedColorFormat(new Dimension(1, 1), 2000, Format.byteArray, -1.f, 1, 2, new byte[] {0, 0}, new byte[] {0, 0}, new byte[] {0, 0}).toString(), "IRGB, 1x1, Length=2000"); assertEquals(new IndexedColorFormat(new Dimension(1, 1), -1, Format.byteArray, -1.f, 1, 2, new byte[] {0, 0}, new byte[] {0, 0}, new byte[] {0, 0}).toString(), "IRGB, 1x1"); assertEquals(new IndexedColorFormat(null, -1, Format.byteArray, -1.f, 1, 2, new byte[] {0, 0}, new byte[] {0, 0}, new byte[] {0, 0}).toString(), "IRGB"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3).toString(), "dolbyac3, Unknown Sample Rate"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 1, 2, 3, 4, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 1-bit, Stereo, Unsigned, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 1, 1, 3, 4, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 1-bit, Mono, Unsigned, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 1, 0, 3, 4, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 1-bit, 0-channel, Unsigned, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 1, 3, 3, 4, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 1-bit, 3-channel, Unsigned, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 1, 3, 3, 0, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 1-bit, 3-channel, Unsigned, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 1, 3, 3, 1, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 1-bit, 3-channel, Signed, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 32, 3, 1, 1, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 32-bit, 3-channel, BigEndian, Signed, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.DOLBYAC3, 2.0, 32, 3, 0, 1, 5, 6.0, Format.byteArray).toString(), "dolbyac3, 2.0 Hz, 32-bit, 3-channel, LittleEndian, Signed, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.LINEAR, 2.0, 16, 3, 1, 1, 5, 6.0, Format.byteArray).toString(), "LINEAR, 2.0 Hz, 16-bit, 3-channel, BigEndian, Signed, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.LINEAR, 2.0, 8, 3, 1, 1, 5, 6.0, Format.byteArray).toString(), "LINEAR, 2.0 Hz, 8-bit, 3-channel, Signed, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.LINEAR, 2.0, 9, 3, 1, 1, 5, 6.0, Format.byteArray).toString(), "LINEAR, 2.0 Hz, 9-bit, 3-channel, BigEndian, Signed, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(AudioFormat.LINEAR, 2.0, -1, 3, 1, 1, 5, 6.0, Format.byteArray).toString(), "LINEAR, 2.0 Hz, 3-channel, Signed, 6.0 frame rate, FrameSize=5 bits"); assertEquals(new AudioFormat(null).toString(), "null, Unknown Sample Rate"); } private static class CopiableFormat extends Format { public CopiableFormat(String arg0, Class arg1) { super(arg0, arg1); } public CopiableFormat(String arg0) { super(arg0); } public void doCopy(Format f) { copy(f); } } private static class CopiableVideoFormat extends VideoFormat { public CopiableVideoFormat(String arg0, Dimension arg1, int arg2, Class arg3, float arg4) { super(arg0, arg1, arg2, arg3, arg4); } public CopiableVideoFormat(String arg0) { super(arg0); } public void doCopy(Format f) { copy(f); } } public void testCopy() { { final Format f1 = new Format("abc", Format.shortArray); final CopiableFormat f2 = new CopiableFormat("xyz", Format.byteArray); f2.doCopy(f1); assertEquals(f1.getEncoding(), "abc"); assertEquals(f2.getEncoding(), "xyz"); assertEquals(f1.getDataType(), f2.getDataType()); } { final Format f1 = new Format("abc", null); final CopiableFormat f2 = new CopiableFormat("xyz", Format.byteArray); f2.doCopy(f1); assertEquals(f1.getEncoding(), "abc"); assertEquals(f2.getEncoding(), "xyz"); assertEquals(f1.getDataType(), f2.getDataType()); } { final Format f1 = new Format("abc", null); final CopiableFormat f2 = new CopiableFormat(null, Format.byteArray); f2.doCopy(f1); assertEquals(f1.getEncoding(), "abc"); assertEquals(f2.getEncoding(), null); assertEquals(f1.getDataType(), f2.getDataType()); } { final VideoFormat f1 = new VideoFormat(VideoFormat.MPEG, new Dimension(0, 0), 1000, Format.byteArray, 1.f); final CopiableVideoFormat f2 = new CopiableVideoFormat(VideoFormat.CINEPAK, new Dimension(1, 0), 1001, Format.shortArray, 2.f); f2.doCopy(f1); assertEquals(f1.getEncoding(), "mpeg"); assertEquals(f2.getEncoding(), "cvid"); assertEquals(f1.getDataType(), f2.getDataType()); assertEquals(f1.getFrameRate(), f2.getFrameRate()); assertEquals(f1.getMaxDataLength(), f2.getMaxDataLength()); assertEquals(f1.getSize(), f2.getSize()); } { final VideoFormat f1 = new VideoFormat(VideoFormat.MPEG, new Dimension(0, 0), Format.NOT_SPECIFIED, Format.byteArray, 1.f); final CopiableVideoFormat f2 = new CopiableVideoFormat(VideoFormat.CINEPAK, null, 1001, Format.shortArray, 2.f); f2.doCopy(f1); assertEquals(f1.getEncoding(), "mpeg"); assertEquals(f2.getEncoding(), "cvid"); assertEquals(f1.getDataType(), f2.getDataType()); assertEquals(f1.getFrameRate(), f2.getFrameRate()); assertEquals(f1.getMaxDataLength(), f2.getMaxDataLength()); assertEquals(f1.getSize(), f2.getSize()); } try { final Format f1 = new Format(VideoFormat.MPEG, Format.byteArray); final CopiableVideoFormat f2 = new CopiableVideoFormat(VideoFormat.CINEPAK, null, 1001, Format.shortArray, 2.f); f2.doCopy(f1); assertTrue(false); } catch (ClassCastException e) { } { final VideoFormat f1 = new VideoFormat(VideoFormat.MPEG, new Dimension(0, 0), Format.NOT_SPECIFIED, Format.byteArray, 1.f); final CopiableFormat f2 = new CopiableFormat(VideoFormat.CINEPAK, Format.shortArray); f2.doCopy(f1); assertEquals(f1.getEncoding(), "mpeg"); assertEquals(f2.getEncoding(), "cvid"); assertEquals(f1.getDataType(), f2.getDataType()); } } public void testIntersects() { // intersects: { final Format f1 = new Format("abc"); final Format f2 = new Format("abc"); assertEquals(f1.intersects(f2), f1); assertEquals(f1.intersects(f2), f2); assertEquals(f2.intersects(f1), f1); assertEquals(f2.intersects(f1), f2); } { final Format f1 = new Format("abc"); final Format f2 = new Format("xyz"); assertEquals(f1.intersects(f2), f2); assertNotEquals(f1.intersects(f2), f1); assertNotEquals(f2.intersects(f1), f2); assertEquals(f2.intersects(f1), f1); } { final Format f1 = new Format("abc"); final Format f2 = new Format(null); assertEquals(f1.intersects(f2), f1); assertNotEquals(f1.intersects(f2), f2); assertEquals(f2.intersects(f1), f1); } { final Format f1 = new Format("abc", Format.byteArray); final Format f2 = new Format(null); assertEquals(f1.intersects(f2), f1); assertNotEquals(f1.intersects(f2), f2); assertEquals(f2.intersects(f1), f1); } { final Format f1 = new Format("abc", Format.byteArray); final Format f2 = new Format("xyz", Format.shortArray); assertEquals(f1.intersects(f2), f2); assertNotEquals(f1.intersects(f2), f1); assertNotEquals(f2.intersects(f1), f2); assertEquals(f2.intersects(f1), f1); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -