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

📄 videoformat.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package javax.media.format;import java.awt.Dimension;import javax.media.Format;import net.sf.fmj.utility.FormatUtils;/** * Coding complete. * Frame rate is in frames per second. *  * @author Ken Larson * */public class VideoFormat extends Format{		protected Dimension size;	protected int maxDataLength = NOT_SPECIFIED;	protected float frameRate = NOT_SPECIFIED;		// encodings:	public static final String CINEPAK = "cvid";	public static final String JPEG = "jpeg";	public static final String JPEG_RTP = "jpeg/rtp";	public static final String MPEG = "mpeg";	public static final String MPEG_RTP = "mpeg/rtp";	public static final String H261 = "h261";	public static final String H261_RTP = "h261/rtp";	public static final String H263 = "h263";	public static final String H263_RTP = "h263/rtp";	public static final String H263_1998_RTP = "h263-1998/rtp";	public static final String RGB = "rgb";	public static final String YUV = "yuv";	public static final String IRGB = "irgb";	public static final String SMC = "smc";	public static final String RLE = "rle";	public static final String RPZA = "rpza";	public static final String MJPG = "mjpg";	public static final String MJPEGA = "mjpa";	public static final String MJPEGB = "mjpb";	public static final String INDEO32 = "iv32";	public static final String INDEO41 = "iv41";	public static final String INDEO50 = "iv50";				public VideoFormat(String encoding) 	{		super(encoding);	}		public VideoFormat(String encoding, Dimension size, int maxDataLength, Class dataType, float frameRate) 	{		super(encoding, dataType);		this.size = FormatUtils.clone(size);		this.maxDataLength = maxDataLength;		this.frameRate = frameRate;	}		public Dimension getSize()	{	return size;	}		public int getMaxDataLength()	{	return maxDataLength;	}			public Object clone()	{		return new VideoFormat(encoding, FormatUtils.clone(size), maxDataLength, dataType, frameRate);	}		public float getFrameRate()	{	return frameRate;	}			protected void copy(Format f)	{		super.copy(f);				final VideoFormat oCast = (VideoFormat) f;	// it has to be a VideoFormat, or ClassCastException will be thrown.		this.size = FormatUtils.clone(oCast.size);		this.maxDataLength = oCast.maxDataLength;		this.frameRate = oCast.frameRate;			}		public String toString()	{			final StringBuffer b = new StringBuffer();				if (encoding == null)			b.append("N/A");		else			b.append(encoding.toUpperCase());				if (FormatUtils.specified(size))		{	b.append(", ");			b.append(size.width);			b.append('x');			b.append(size.height);		}				if (FormatUtils.specified(frameRate))		{			b.append(", ");			b.append("FrameRate=");			b.append(FormatUtils.frameRateToString(frameRate));		}				if (FormatUtils.specified(maxDataLength))		{			b.append(", ");			b.append("Length=");			b.append(maxDataLength);		}				return b.toString();	}			public boolean equals(Object format)	{		if (!super.equals(format))			return false;				if (!(format instanceof VideoFormat))			{			return false;		}				final VideoFormat oCast = (VideoFormat) format;		return 			(oCast.size == this.size || (oCast.size != null && this.size != null && oCast.size.equals(this.size))) &&			oCast.maxDataLength == this.maxDataLength &&			oCast.frameRate == this.frameRate;				}			public boolean matches(Format format)	{			if (!super.matches(format))		{				if (getClass() == FormatUtils.videoFormatClass) FormatUtils.traceMatches(this, format, false); // otherwise let subclass trace			return false;		}				if (!(format instanceof VideoFormat))		{				final boolean result = true;			if (getClass() == FormatUtils.videoFormatClass) FormatUtils.traceMatches(this, format, result);			return result;		}					final VideoFormat oCast = (VideoFormat) format;//		 do not match against max data length.		final boolean result = 			FormatUtils.matches(oCast.getFrameRate(), this.getFrameRate()) &&			FormatUtils.matches(oCast.getSize(), this.getSize());				if (getClass() == FormatUtils.videoFormatClass) FormatUtils.traceMatches(this, format, result); // otherwise let subclass trace				return result;	}		public Format intersects(Format other)	{			final Format result = super.intersects(other);		if (other instanceof VideoFormat)		{			final VideoFormat resultCast = (VideoFormat) result;						final VideoFormat oCast = (VideoFormat) other;			if (getClass().isAssignableFrom(other.getClass()))			{					// "other" was cloned.				resultCast.size = oCast.size;	// to ensure it is not a copy.  TODO: this is a hack, need to understand what is going on here.								if (FormatUtils.specified(this.size))					resultCast.size = this.size;	// strange, we don't clone here.				if (FormatUtils.specified(this.maxDataLength))					resultCast.maxDataLength = this.maxDataLength;				if (FormatUtils.specified(this.frameRate))					resultCast.frameRate = this.frameRate;			}			else if (other.getClass().isAssignableFrom(getClass()))			{	// this was cloned								resultCast.size = this.size;	// to ensure it is not a copy.  TODO: this is a hack, need to understand what is going on here.				if (!FormatUtils.specified(resultCast.size))					resultCast.size = oCast.size;	// strange, we don't clone here.				if (!FormatUtils.specified(resultCast.maxDataLength))					resultCast.maxDataLength = oCast.maxDataLength;				if (!FormatUtils.specified(resultCast.frameRate))					resultCast.frameRate = oCast.frameRate;			}		}				if (getClass() == FormatUtils.videoFormatClass) FormatUtils.traceIntersects(this, other, result);				return result;	}			public Format relax()	{			final VideoFormat result = (VideoFormat) super.relax();		result.size = null;		result.maxDataLength = NOT_SPECIFIED;		result.frameRate = NOT_SPECIFIED;		return result;	}		}

⌨️ 快捷键说明

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