⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 videocodectest.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package net.sf.fmj.test.compat.sun;import java.awt.Dimension;import javax.media.Buffer;import javax.media.Format;import javax.media.format.RGBFormat;import javax.media.format.VideoFormat;import junit.framework.TestCase;import com.ibm.media.codec.video.VideoCodec;/** *  * @author Ken Larson * */public class VideoCodecTest extends TestCase{		public void testVideoCodec3()	{		MyVideoCodec c = new MyVideoCodec();		Buffer b = new Buffer();		VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);		c.doUpdateOutput(b, f, 3333, 44);		assertTrue(b.getFormat() == f); 		assertTrue(b.getLength() == 3333);		assertTrue(b.getOffset() == 44);		assertFalse(b.isDiscard());		assertFalse(b.isEOM());				c.doUpdateOutput(b, null, 3335, 45);		assertTrue(b.getFormat() == null); 		assertTrue(b.getLength() == 3335);		assertTrue(b.getOffset() == 45);					}	public void testVideoCodec2()	{		MyVideoCodec c = new MyVideoCodec() {			//@Override			protected Format[] getMatchingOutputFormats(Format arg0)			{				supportedOutputFormats = defaultOutputFormats;				return defaultOutputFormats;				//return super.getMatchingOutputFormats(arg0);			}					};		assertTrue(c.accessPluginName() == null);		assertTrue(c.accessDefaultOutputFormats() == null);		assertTrue(c.accessSupportedInputFormats() == null);		assertTrue(c.accessSupportedOutputFormats() == null);		assertTrue(c.accessInputFormat() == null);		assertTrue(c.accessOutputFormat() == null);				assertTrue(c.getName() == null);		c.setPlugInName("abc");		assertEquals(c.getName(), "abc");				c.setDefaultOutputFormats(new VideoFormat[]{				new RGBFormat(new java.awt.Dimension(320, 200), 64000, Format.intArray, 1.3414634f, 32, 0xff, 0xff00, 0xff0000, 1, 320, 0, -1)		});		{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			//assertEquals(c.checkFormat(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f)), true);			VideoFormat[] fs = new VideoFormat[] {f};			c.setSupportedInputFormats(fs);			assertTrue(c.getSupportedInputFormats() == fs);		}				// only works once setSupportedInputFormats is called		Format[] r = c.getSupportedOutputFormats(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f));		assertFalse(r == null);		assertEquals(r.length, 1);		assertTrue(c.accessSupportedOutputFormats().length == 1);						{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			VideoFormat result = (VideoFormat) c.setInputFormat(f);	// this calls matches			assertTrue(f == result);								}				assertTrue(c.accessSupportedOutputFormats() != null);	}	public void testVideoCodec()	{//if (true)//	return;		MyVideoCodec c = new MyVideoCodec();		assertTrue(c.accessPluginName() == null);		assertTrue(c.accessDefaultOutputFormats() == null);		assertTrue(c.accessSupportedInputFormats() == null);		assertTrue(c.accessSupportedOutputFormats() == null);		assertTrue(c.accessInputFormat() == null);		assertTrue(c.accessOutputFormat() == null);				assertTrue(c.getName() == null);		c.setPlugInName("abc");		assertEquals(c.getName(), "abc");				{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			//assertEquals(c.checkFormat(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f)), true);			VideoFormat[] fs = new VideoFormat[] {f};			c.setSupportedInputFormats(fs);			assertTrue(c.getSupportedInputFormats() == fs);		}				// only works once setSupportedInputFormats is called		c.getSupportedOutputFormats(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f));			{			Format f = new Format("xyz");			VideoFormat result = (VideoFormat) c.setInputFormat(f);	// this calls matches			assertTrue(null == result);					}				{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			VideoFormat result = (VideoFormat) c.setInputFormat(f);	// this calls matches			assertTrue(f == result);								}		assertTrue(c.accessSupportedOutputFormats() == null);				{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), -1, null, 2.f);			VideoFormat result = (VideoFormat) c.setInputFormat(f);	// this calls matches			assertTrue(f == result);								}				{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, int[].class, 2.f);			VideoFormat result = (VideoFormat) c.setInputFormat(f);	// this calls matches			assertTrue(null == result);					}				c.getSupportedOutputFormats(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f));		// TODO: need to set default output formats?		{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			VideoFormat result = (VideoFormat) c.setOutputFormat(f);				assertTrue(null == result);					}				c.getSupportedOutputFormats(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f));				{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			//assertEquals(c.checkFormat(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f)), true);			VideoFormat[] fs = new VideoFormat[] {f};			c.setSupportedOutputFormats(fs);			assertFalse(c.getSupportedOutputFormats(f) == fs);						assertEquals(c.accessMatchingOutputFormats(f).length, 0);					}				{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			VideoFormat result = (VideoFormat) c.setOutputFormat(f);				assertTrue(null == result);					}				{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			VideoFormat[] fs = new VideoFormat[] {f};			c.setDefaultOutputFormats(fs);			assertTrue(c.accessDefaultOutputFormats() == fs);								}				assertTrue(c.accessDefaultOutputFormats() != null);		assertTrue(c.accessSupportedInputFormats() != null);		assertTrue(c.accessSupportedOutputFormats() != null);		assertTrue(c.accessInputFormat() != null);		assertTrue(c.accessOutputFormat() == null);		{			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			VideoFormat result = (VideoFormat) c.setOutputFormat(f);				assertTrue(null == result);			assertTrue(c.accessOutputFormat() == null);					c.forceSetOutputFormat(f);			assertTrue(c.accessOutputFormat() == f);			assertTrue(c.checkFormat(new VideoFormat("ayz", new Dimension(1, 2), 2000, null, 3.f)));			//assertTrue(c.checkFormat(new VideoFormat("ayz", null, 2000, int[].class, 3.f))); // NPE			//assertTrue(c.checkFormat(new Format("ayz"))); // class cast except									assertTrue(c.checkFormat(f));			{				VideoFormat f2 = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);				assertTrue(c.checkFormat(f2));			}			{				VideoFormat f2 = new VideoFormat("xyc", new Dimension(1, 2), 1000, byte[].class, 2.f);				assertTrue(c.checkFormat(f2));			}//			{//				VideoFormat f2 = new VideoFormat("xyc", new Dimension(1, 3), 1000, byte[].class, 2.f); //				assertTrue(c.checkFormat(f2)); // calls videoResized//			}					assertTrue(c.accessOutputFormat() == f);		}				if (false)		{			TracingVideoCodec c2 = new TracingVideoCodec();						{				VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);				//assertEquals(c.checkFormat(new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f)), true);				VideoFormat[] fs = new VideoFormat[] {f};				c2.setSupportedInputFormats(fs);				assertTrue(c2.getSupportedInputFormats() == fs);			}						System.out.println("-->");			VideoFormat f = new VideoFormat("xyz", new Dimension(1, 2), 1000, byte[].class, 2.f);			c2.getSupportedOutputFormats(f);						System.out.println("-->");			c2.setInputFormat(f);			System.out.println("-->");			System.out.println("f: " + f);			assertTrue(c2.setOutputFormat(f) == null);			System.out.println("-->");			assertTrue(c2.getOutputFormat() == null);					}			}	class MyVideoCodec extends VideoCodec	{		public void doUpdateOutput(Buffer outputBuffer, Format format, int length, int offset)		{			updateOutput(outputBuffer, format, length, offset);		}		//@Override		public int process(Buffer arg0, Buffer arg1)		{			return 0;		}				public void setPlugInName(String s)		{	PLUGIN_NAME = s;		}		public String accessPluginName()		{	return PLUGIN_NAME;		}				public void forceSetOutputFormat(VideoFormat value)		{	outputFormat = value;		}				public void setDefaultOutputFormats(VideoFormat[] value)		{	defaultOutputFormats = value;		}		public VideoFormat[] accessDefaultOutputFormats()		{			return defaultOutputFormats;		}				public void setSupportedInputFormats(VideoFormat[] value)		{	supportedInputFormats = value;		}		public VideoFormat[] accessSupportedInputFormats()		{			return supportedInputFormats;		}				public void setSupportedOutputFormats(VideoFormat[] value)		{	supportedOutputFormats = value;		}		public VideoFormat[] accessSupportedOutputFormats()		{			return supportedOutputFormats;		}		public VideoFormat accessInputFormat()		{			return inputFormat;		}				public VideoFormat accessOutputFormat()		{			return outputFormat;		}				public Format[] accessMatchingOutputFormats(Format in)		{	return getMatchingOutputFormats(in); 		}		protected void videoResized()		{			System.out.println("videoResized");		}	}		class TracingVideoCodec extends MyVideoCodec	{		//@Override		public boolean checkFormat(Format arg0)		{			System.out.println("checkFormat");			return super.checkFormat(arg0);		}		//@Override		protected Format getInputFormat()		{			System.out.println("getInputFormat");			return super.getInputFormat();		}		//@Override		protected Format[] getMatchingOutputFormats(Format arg0)		{			System.out.println("getMatchingOutputFormats " + arg0 );			return super.getMatchingOutputFormats(arg0);		}		//@Override		public String getName()		{			System.out.println("getName");			return super.getName();		}		//@Override		protected Format getOutputFormat()		{			System.out.println("getOutputFormat");			return super.getOutputFormat();		}		//@Override		public Format[] getSupportedInputFormats()		{			System.out.println("getSupportedInputFormats");			return super.getSupportedInputFormats();		}		//@Override		public Format[] getSupportedOutputFormats(Format arg0)		{			System.out.println("getSupportedOutputFormats");			return super.getSupportedOutputFormats(arg0);		}		//@Override		public Format setInputFormat(Format arg0)		{			System.out.println("setInputFormat");			return super.setInputFormat(arg0);		}		//@Override		public Format setOutputFormat(Format arg0)		{			System.out.println("setOutputFormat");			return super.setOutputFormat(arg0);		}		//@Override		protected void updateOutput(Buffer arg0, Format arg1, int arg2, int arg3)		{			System.out.println("updateOutput");			super.updateOutput(arg0, arg1, arg2, arg3);		}		//@Override		protected void videoResized()		{			System.out.println("videoResized");			super.videoResized();		}		//@Override		public int process(Buffer arg0, Buffer arg1)		{			System.out.println("process");			return 0;		}			}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -