import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.media.*; import javax.media.control.TrackControl; import javax.media.Format; import javax.media.format.*; import java.net.*; /** * Sample program to test the video frame difference. * Author : Dr Mike Spann */ public class MovieFrameDifferenceApplet extends JApplet implements ActionListener { String sequenceFilename=null; public static final String[] sequenceList={"Face.avi","Movement.avi","Walk1.avi", "CorridorScene1.avi","ShopScene1.avi"}; JMenuItem[] openItem; JDesktopPane desktop=null; MyFrame2 f=null; Processor p=null; Processor p1=null; public void actionPerformed(ActionEvent evt) { Object source = evt.getSource(); for (int i=0; ithreshold) binVal=255; outData[op++] = (byte)binVal; outData[op++] = (byte)binVal; outData[op++] = (byte)binVal; } } if (processorID!=0) // Copy the previous frame data System.arraycopy(inData,0,previousFrameData,0,pixStrideIn*iw*ih); frameNumber++; return BUFFER_PROCESSED_OK; } // method for the ChangeListner interface public void stateChanged(ChangeEvent e) { JSlider s=(JSlider)e.getSource(); threshold=s.getValue(); } // methods for interface PlugIn public String getName() { return "Video Frame Threshold"; } public void open() {} public void close() {} public void reset() {} // methods for interface javax.media.Controls public Object getControl(String controlType) { return null; } public Object[] getControls() { return null; } // Utility methods. Format matches(Format in, Format outs[]) { for (int i = 0; i < outs.length; i++) { if (in.matches(outs[i])) return outs[i]; } return null; } byte[] validateByteArraySize(Buffer buffer,int newSize) { Object objectArray=buffer.getData(); byte[] typedArray; if (objectArray instanceof byte[]) { // is correct type AND not null typedArray=(byte[])objectArray; if (typedArray.length >= newSize ) { // is sufficient capacity return typedArray; } byte[] tempArray=new byte[newSize]; // re-alloc array System.arraycopy(typedArray,0,tempArray,0,typedArray.length); typedArray = tempArray; } else { typedArray = new byte[newSize]; } buffer.setData(typedArray); return typedArray; } }