<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: movie code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Wed, 08 Oct 2008 08:12:30 GMT</pubDate>
    <description>DZone Snippets: movie code</description>
    <item>
      <title>Java - JMF Simple Filter</title>
      <link>http://snippets.dzone.com/posts/show/2940</link>
      <description>&lt;code&gt;&lt;br /&gt;import java.awt.Dimension;&lt;br /&gt;&lt;br /&gt;import javax.media.Buffer;&lt;br /&gt;import javax.media.Effect;&lt;br /&gt;import javax.media.Format;&lt;br /&gt;import javax.media.ResourceUnavailableException;&lt;br /&gt;import javax.media.format.RGBFormat;&lt;br /&gt;&lt;br /&gt;public class SimpleFilter implements Effect&lt;br /&gt;{&lt;br /&gt;	protected Format inputFormat = null;&lt;br /&gt;	protected Format outputFormat = null;&lt;br /&gt;	&lt;br /&gt;	protected Format[] inputFormats = null;&lt;br /&gt;	protected Format[] outputFormats = null;&lt;br /&gt;	&lt;br /&gt;	public AngelMotionCodec()&lt;br /&gt;	{&lt;br /&gt;		inputFormats = new Format[]{ new RGBFormat(null, Format.NOT_SPECIFIED, Format.byteArray, Format.NOT_SPECIFIED, 24, 3, 2, 1, 3, Format.NOT_SPECIFIED, Format.TRUE, Format.NOT_SPECIFIED) };&lt;br /&gt;		outputFormats = new Format[]{ new RGBFormat(null, Format.NOT_SPECIFIED, Format.byteArray, Format.NOT_SPECIFIED, 24, 3, 2, 1, 3, Format.NOT_SPECIFIED, Format.TRUE, Format.NOT_SPECIFIED) };&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	/****** Codec ******/&lt;br /&gt;	public Format[] getSupportedInputFormats()&lt;br /&gt;	{&lt;br /&gt;		return inputFormats;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Format[] getSupportedOutputFormats(Format input)&lt;br /&gt;	{&lt;br /&gt;		if(input != null)&lt;br /&gt;		{&lt;br /&gt;			if(matches(input, inputFormats) != null)&lt;br /&gt;				return new Format[]{ outputFormats[0].intersects(input) };&lt;br /&gt;			else&lt;br /&gt;				return new Format[0];&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		return outputFormats;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public int process(Buffer input, Buffer output)&lt;br /&gt;	{&lt;br /&gt;		// Swap tra input &amp; output&lt;br /&gt;		Object tmp = input.getData();&lt;br /&gt;		&lt;br /&gt;		input.setData(output.getData());&lt;br /&gt;		output.setData(tmp);&lt;br /&gt;		&lt;br /&gt;		return BUFFER_PROCESSED_OK;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Format setInputFormat(Format input)&lt;br /&gt;	{&lt;br /&gt;		inputFormat = input;&lt;br /&gt;		&lt;br /&gt;		return input;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Format setOutputFormat(Format output)&lt;br /&gt;	{&lt;br /&gt;		if(output != null || matches(output, outputFormats) != null)&lt;br /&gt;		{&lt;br /&gt;			RGBFormat inRGB = (RGBFormat) output;&lt;br /&gt;			&lt;br /&gt;			Dimension size = inRGB.getSize();&lt;br /&gt;			int maxDataLength = inRGB.getMaxDataLength();&lt;br /&gt;			int lineStride = inRGB.getLineStride();&lt;br /&gt;			int flipped = inRGB.getFlipped();&lt;br /&gt;			&lt;br /&gt;			if(size == null)&lt;br /&gt;				return null;&lt;br /&gt;			&lt;br /&gt;			if(maxDataLength &lt; size.width*size.height*3)&lt;br /&gt;				maxDataLength = size.width*size.height*3;&lt;br /&gt;			&lt;br /&gt;			if(lineStride &lt; size.width*3)&lt;br /&gt;				lineStride = size.width*3;&lt;br /&gt;			&lt;br /&gt;			if(flipped != Format.FALSE)&lt;br /&gt;				flipped = Format.FALSE;&lt;br /&gt;			&lt;br /&gt;			outputFormat = outputFormats[0].intersects(new RGBFormat(size, maxDataLength, inRGB.getDataType(), inRGB.getFrameRate(), inRGB.getBitsPerPixel(), inRGB.getRedMask(), inRGB.getGreenMask(), inRGB.getBlueMask(), inRGB.getPixelStride(), lineStride, flipped, inRGB.getEndian()));&lt;br /&gt;			&lt;br /&gt;			return outputFormat;&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		return null;&lt;br /&gt;	}&lt;br /&gt;	/****** Codec ******/&lt;br /&gt;&lt;br /&gt;	/****** PlugIn ******/&lt;br /&gt;	public void close()&lt;br /&gt;	{&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public String getName()&lt;br /&gt;	{&lt;br /&gt;		return "Simple-Filter";&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void open() throws ResourceUnavailableException&lt;br /&gt;	{&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void reset()&lt;br /&gt;	{&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;	/****** PlugIn ******/&lt;br /&gt;&lt;br /&gt;	/****** Controls ******/&lt;br /&gt;	public Object getControl(String controlType)&lt;br /&gt;	{&lt;br /&gt;		return null;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public Object[] getControls()&lt;br /&gt;	{&lt;br /&gt;		return null;&lt;br /&gt;	}&lt;br /&gt;	/****** Controls ******/&lt;br /&gt;	&lt;br /&gt;	/****** Utility ******/&lt;br /&gt;	private Format matches(Format in, Format[] out)&lt;br /&gt;	{&lt;br /&gt;		if(in != null &amp;&amp; out != null)&lt;br /&gt;		{&lt;br /&gt;			for(int i=0, cnt=out.length; i&lt;cnt; i++)&lt;br /&gt;			{&lt;br /&gt;				if(in.matches(out[i]))&lt;br /&gt;					return out[i];&lt;br /&gt;			}&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		return null;&lt;br /&gt;	}&lt;br /&gt;	/****** Utility ******/&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 01 Nov 2006 06:00:23 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2940</guid>
      <author>whitetiger ()</author>
    </item>
    <item>
      <title>Java - Example Very Simple Player (JMF)</title>
      <link>http://snippets.dzone.com/posts/show/2912</link>
      <description>// Main Class&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.jmf.example;&lt;br /&gt;&lt;br /&gt;import javax.swing.JDialog;&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt;import javax.swing.UIManager;&lt;br /&gt;import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;import javax.swing.plaf.metal.MetalLookAndFeel;&lt;br /&gt;&lt;br /&gt;public class ExampleJMF&lt;br /&gt;{&lt;br /&gt;	public static void main(String[] args)&lt;br /&gt;	{&lt;br /&gt;		JFrame.setDefaultLookAndFeelDecorated(true); &lt;br /&gt;		JDialog.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;		&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			UIManager.setLookAndFeel(new MetalLookAndFeel());&lt;br /&gt;		}&lt;br /&gt;		catch(UnsupportedLookAndFeelException e)&lt;br /&gt;		{&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;		&lt;br /&gt;		new exampleFrame();&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;// Frame Class&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.jmf.example;&lt;br /&gt;&lt;br /&gt;import java.awt.Toolkit;&lt;br /&gt;import java.awt.event.WindowAdapter;&lt;br /&gt;import java.awt.event.WindowEvent;&lt;br /&gt;&lt;br /&gt;import javax.swing.JFrame;&lt;br /&gt;&lt;br /&gt;public class exampleFrame extends JFrame&lt;br /&gt;{&lt;br /&gt;	private static final long serialVersionUID = 1L;&lt;br /&gt;	&lt;br /&gt;	public exampleFrame()&lt;br /&gt;	{&lt;br /&gt;		super("JMF - Example...");&lt;br /&gt;		&lt;br /&gt;		setSize(400, 300);&lt;br /&gt;		setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getWidth())/2, (Toolkit.getDefaultToolkit().getScreenSize().height - getHeight())/2);&lt;br /&gt;		&lt;br /&gt;		addWindowListener(new WindowAdapter()&lt;br /&gt;		{&lt;br /&gt;			public void windowClosing(WindowEvent evt)&lt;br /&gt;			{&lt;br /&gt;				System.exit(0);&lt;br /&gt;			}&lt;br /&gt;		});&lt;br /&gt;		&lt;br /&gt;		setContentPane(new examplePanel());&lt;br /&gt;		setVisible(true);&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;// Panel Class&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;package org.jmf.example;&lt;br /&gt;&lt;br /&gt;import java.awt.Component;&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.awt.event.ActionEvent;&lt;br /&gt;import java.awt.event.ActionListener;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.net.MalformedURLException;&lt;br /&gt;import java.net.URL;&lt;br /&gt;&lt;br /&gt;import javax.media.ControllerEvent;&lt;br /&gt;import javax.media.ControllerListener;&lt;br /&gt;import javax.media.Manager;&lt;br /&gt;import javax.media.NoPlayerException;&lt;br /&gt;import javax.media.Player;&lt;br /&gt;import javax.media.RealizeCompleteEvent;&lt;br /&gt;import javax.swing.JPanel;&lt;br /&gt;&lt;br /&gt;public class examplePanel extends JPanel implements ActionListener, ControllerListener&lt;br /&gt;{&lt;br /&gt;	private static final long serialVersionUID = 1L;&lt;br /&gt;	&lt;br /&gt;	private Component visualComponent;&lt;br /&gt;	private Player player;&lt;br /&gt;	&lt;br /&gt;	public examplePanel()&lt;br /&gt;	{&lt;br /&gt;		try&lt;br /&gt;		{&lt;br /&gt;			player = Manager.createPlayer(new URL("file:///tmp/a.mpg"));&lt;br /&gt;			player.addControllerListener(this);&lt;br /&gt;			&lt;br /&gt;			player.start();&lt;br /&gt;		}&lt;br /&gt;		catch(NoPlayerException e)&lt;br /&gt;		{&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;		catch(MalformedURLException e)&lt;br /&gt;		{&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;		catch(IOException e)&lt;br /&gt;		{&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;	&lt;br /&gt;	public void paintComponent(Graphics g)&lt;br /&gt;	{&lt;br /&gt;		super.paintComponent(g);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void actionPerformed(ActionEvent e)&lt;br /&gt;	{&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void controllerUpdate(ControllerEvent c)&lt;br /&gt;	{&lt;br /&gt;		if(player == null)&lt;br /&gt;			return;&lt;br /&gt;		&lt;br /&gt;		if(c instanceof RealizeCompleteEvent)&lt;br /&gt;		{&lt;br /&gt;			if((visualComponent = player.getVisualComponent()) != null)&lt;br /&gt;				add(visualComponent);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 27 Oct 2006 15:53:37 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2912</guid>
      <author>whitetiger ()</author>
    </item>
  </channel>
</rss>
