DO i need some extra hardware interface for receving both Audio and video

hi i m doing e-learning project. i have to capture video from webcam and voice from headphone and send to client.
but my code is working fine for either one at a time.
DO i need some extra hardware interface for receving both Audio and video. im using code AVTransmit and AVReceive found from this site only
After running TX
i give Dsound:// & vfw://0 in Media Locater only sound is received and no vedio
and when i give vfw://0 in Media Locater only live video is transmited.
im using JMF1.1.2e.
if any one know the method to run or cause of it plz reply me soon. i will be very thankfull
transmiter/server side code .first run TX on server
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import javax.media.rtp.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class Tx extends JFrame implements ActionListener, KeyListener,
MouseListener, WindowListener {
Vector targets;
JList list;
JButton startXmit;
JButton rtcp;
JButton update;
JButton expiration;
JButton statistics;
JButton addTarget;
JButton removeTarget;
JTextField tf_remote_address;
JTextField tf_remote_data_port;
JTextField tf_media_file;
JTextField tf_data_port;
TargetListModel listModel;
AVTransmitter avTransmitter;
RTCPViewer rtcpViewer;
JCheckBox cb_loop;
Config config;
public Tx() {
setTitle( "JMF/RTP Transmitter");
     config= new Config();
     GridBagLayout gridBagLayout= new GridBagLayout();
     GridBagConstraints gbc;
     JPanel p= new JPanel();
     p.setLayout( gridBagLayout);
     JPanel localPanel= createLocalPanel();
     gbc= new GridBagConstraints();
     gbc.gridx= 0;
     gbc.gridy= 0;
     gbc.gridwidth= 2;
     gbc.anchor= GridBagConstraints.CENTER;
     gbc.fill= GridBagConstraints.BOTH;
     gbc.insets= new Insets( 10, 5, 0, 0);
     ((GridBagLayout)p.getLayout()).setConstraints( localPanel, gbc);
     p.add( localPanel);
     JPanel targetPanel= createTargetPanel();
     gbc= new GridBagConstraints();
     gbc.gridx= 1;
     gbc.gridy= 1;
     gbc.weightx= 1.0;
     gbc.weighty= 1.0;
     gbc.anchor= GridBagConstraints.CENTER;
     gbc.fill= GridBagConstraints.BOTH;
     gbc.insets= new Insets( 10, 5, 0, 0);
     ((GridBagLayout)p.getLayout()).setConstraints( targetPanel, gbc);
p.add( targetPanel);
     JPanel mediaPanel= createMediaPanel();
     gbc= new GridBagConstraints();
     gbc.gridx= 1;
     gbc.gridy= 2;
     gbc.weightx= 1.0;
     gbc.weighty= 1.0;
     gbc.anchor= GridBagConstraints.CENTER;
     gbc.fill= GridBagConstraints.BOTH;
     gbc.insets= new Insets( 10, 5, 0, 0);
     ((GridBagLayout)p.getLayout()).setConstraints( mediaPanel, gbc);
p.add( mediaPanel);
JPanel buttonPanel= new JPanel();
rtcp= new JButton( "RTCP Monitor");
update= new JButton( "Transmission Status");
     update.setEnabled( false);
     rtcp.addActionListener( this);
     update.addActionListener( this);
     buttonPanel.add( rtcp);
     buttonPanel.add( update);
     gbc= new GridBagConstraints();
     gbc.gridx = 0;
     gbc.gridy = 3;
gbc.gridwidth= 2;
     gbc.weightx = 1.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.CENTER;
     gbc.fill = GridBagConstraints.HORIZONTAL;
     gbc.insets = new Insets( 5,5,10,5);
     ((GridBagLayout)p.getLayout()).setConstraints( buttonPanel, gbc);
     p.add( buttonPanel);
getContentPane().add( p);
     list.addMouseListener( this);
     addWindowListener( this);
pack();
setVisible( true);
private JPanel createMediaPanel() {
JPanel p= new JPanel();
     GridBagLayout gridBagLayout= new GridBagLayout();
GridBagConstraints gbc;
     p.setLayout( gridBagLayout);
     JLabel label= new JLabel( "Media Locator:");
     gbc= new GridBagConstraints();
     gbc.gridx = 0;
     gbc.gridy = 0;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.EAST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,10,5);
     ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
     p.add( label);
     tf_media_file= new JTextField( 35);
     gbc= new GridBagConstraints();
     gbc.gridx = 1;
     gbc.gridy = 0;
     gbc.weightx = 1.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.WEST;
     gbc.fill = GridBagConstraints.HORIZONTAL;
     gbc.insets = new Insets( 5,5,10,5);
     ((GridBagLayout)p.getLayout()).setConstraints( tf_media_file, gbc);
     p.add( tf_media_file);
     tf_media_file.setText( config.media_locator);
     cb_loop= new JCheckBox( "loop");
     startXmit= new JButton( "Start Transmission");
     startXmit.setEnabled( true);
     startXmit.addActionListener( this);
     gbc= new GridBagConstraints();
     gbc.gridx = 2;
     gbc.gridy = 0;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.WEST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,10,5);
     ((GridBagLayout)p.getLayout()).setConstraints( cb_loop, gbc);
     p.add( cb_loop);
     cb_loop.setSelected( true);
     cb_loop.addActionListener( this);
     gbc= new GridBagConstraints();
     gbc.gridx = 1;
     gbc.gridy = 1;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.CENTER;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,10,5);
     ((GridBagLayout)p.getLayout()).setConstraints( startXmit, gbc);
     p.add( startXmit);
     TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Source");
     p.setBorder( titledBorder);
     return p;
private JPanel createTargetPanel() {
JPanel p= new JPanel();
     GridBagLayout gridBagLayout= new GridBagLayout();
GridBagConstraints gbc;
     p.setLayout( gridBagLayout);
     targets= new Vector();
     for( int i= 0; i < config.targets.size(); i++) {
     targets.addElement( config.targets.elementAt( i));
listModel= new TargetListModel( targets);
list= new JList( listModel);
     list.addKeyListener( this);
     list.setPrototypeCellValue( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
JScrollPane scrollPane= new JScrollPane( list,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
     gbc= new GridBagConstraints();
     gbc.gridx= 0;
     gbc.gridy= 0;
     gbc.weightx= 1.0;
     gbc.weighty= 1.0;
     gbc.anchor= GridBagConstraints.CENTER;
     gbc.fill= GridBagConstraints.BOTH;
     gbc.insets= new Insets( 10, 5, 0, 0);
     ((GridBagLayout)p.getLayout()).setConstraints( scrollPane, gbc);
     p.add( scrollPane);
JPanel p1= new JPanel();
     p1.setLayout( gridBagLayout);
     JLabel label= new JLabel( "IP Address:");
     gbc= new GridBagConstraints();
     gbc.gridx = 0;
     gbc.gridy = 0;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.EAST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,0,5);
     ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
     p1.add( label);
     tf_remote_address= new JTextField( 15);
     gbc= new GridBagConstraints();
     gbc.gridx = 1;
     gbc.gridy = 0;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.WEST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,0,5);
     ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_address, gbc);
     p1.add( tf_remote_address);
     label= new JLabel( "Data Port:");
     gbc= new GridBagConstraints();
     gbc.gridx = 0;
     gbc.gridy = 1;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.EAST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,0,5);
     ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
     p1.add( label);
     tf_remote_data_port= new JTextField( 15);
     gbc= new GridBagConstraints();
     gbc.gridx = 1;
     gbc.gridy = 1;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.WEST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,0,5);
     ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_data_port, gbc);
     p1.add( tf_remote_data_port);     
JPanel p2= new JPanel();
addTarget= new JButton( "Add Target");     
removeTarget= new JButton( "Remove Target");
     p2.add( addTarget);
     p2.add( removeTarget);
     addTarget.addActionListener( this);
     removeTarget.addActionListener( this);
     gbc= new GridBagConstraints();
     gbc.gridx = 0;
     gbc.gridy = 2;
     gbc.weightx = 1.0;
     gbc.weighty = 0.0;
     gbc.gridwidth= 2;
     gbc.anchor = GridBagConstraints.CENTER;
     gbc.fill = GridBagConstraints.HORIZONTAL;
     gbc.insets = new Insets( 20,5,0,5);
     ((GridBagLayout)p1.getLayout()).setConstraints( p2, gbc);
     p1.add( p2);
     gbc= new GridBagConstraints();
     gbc.gridx= 1;
     gbc.gridy= 0;
     gbc.weightx= 1.0;
     gbc.weighty= 1.0;
     gbc.anchor= GridBagConstraints.CENTER;
     gbc.fill= GridBagConstraints.BOTH;
     gbc.insets= new Insets( 10, 5, 0, 0);
     ((GridBagLayout)p.getLayout()).setConstraints( p1, gbc);
     p.add( p1);
     TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Targets");
     p.setBorder( titledBorder);
     return p;
private JPanel createLocalPanel() {
JPanel p= new JPanel();
     GridBagLayout gridBagLayout= new GridBagLayout();
GridBagConstraints gbc;
     p.setLayout( gridBagLayout);
     JLabel label= new JLabel( "IP Address:");
     gbc= new GridBagConstraints();
     gbc.gridx = 0;
     gbc.gridy = 0;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.EAST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,0,5);
     ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
     p.add( label);
     JTextField tf_local_host= new JTextField( 15);
     gbc= new GridBagConstraints();
     gbc.gridx = 1;
     gbc.gridy = 0;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.WEST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,0,5);
     ((GridBagLayout)p.getLayout()).setConstraints( tf_local_host, gbc);
     p.add( tf_local_host);
     try {
String host= InetAddress.getLocalHost().getHostAddress();     
     tf_local_host.setText( host);
     } catch( UnknownHostException e) {
     label= new JLabel( "Data Port:");
     gbc= new GridBagConstraints();
     gbc.gridx = 0;
     gbc.gridy = 1;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.EAST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,0,5);
     ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
     p.add( label);
     tf_data_port= new JTextField( 15);
     gbc= new GridBagConstraints();
     gbc.gridx = 1;
     gbc.gridy = 1;
     gbc.weightx = 0.0;
     gbc.weighty = 0.0;
     gbc.anchor = GridBagConstraints.WEST;
     gbc.fill = GridBagConstraints.NONE;
     gbc.insets = new Insets( 5,5,10,5);
     ((GridBagLayout)p.getLayout()).setConstraints( tf_data_port, gbc);
     p.add( tf_data_port);
     tf_data_port.setText( config.local_data_port);
     TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Local Host");
     p.setBorder( titledBorder);
     return p;
public void actionPerformed( ActionEvent event) {
Object source= event.getSource();
     if( source == addTarget) {
     String ip= tf_remote_address.getText().trim();
     String port= tf_remote_data_port.getText().trim();
     String localPort= tf_data_port.getText().trim();
     addTargetToList( localPort, ip, port);
     if( avTransmitter != null) {
     avTransmitter.addTarget( ip, port);
     } else if( source == removeTarget) {
     int index= list.getSelectedIndex();
     if( index != -1) {
          Target target= (Target) targets.elementAt( index);
          if( avTransmitter != null) {
     avTransmitter.removeTarget( target.ip, target.port);
          targets.removeElement( target);
          listModel.setData( targets);          
     } else if( source == startXmit) {
     if( startXmit.getLabel().equals( "Start Transmission")) {          
     int data_port= new Integer( tf_data_port.getText()).intValue();
          avTransmitter= new AVTransmitter( this, data_port);
     avTransmitter.start( tf_media_file.getText().trim(), targets);          
          avTransmitter.setLooping( cb_loop.isSelected());
     startXmit.setLabel( "Stop Transmission");
     } else if( startXmit.getLabel().equals( "Stop Transmission")) {
          avTransmitter.stop();
          avTransmitter= null;
          removeNonBaseTargets();
          listModel.setData( targets);
     startXmit.setLabel( "Start Transmission");          
     } else if( source == rtcp) {
     if( rtcpViewer == null) {
     rtcpViewer= new RTCPViewer();
     } else {
          rtcpViewer.setVisible( true);
          rtcpViewer.toFront();
     } else if( source == cb_loop) {
     if( avTransmitter != null) {
          avTransmitter.setLooping( cb_loop.isSelected());
private void removeNonBaseTargets() {
     String localPort= tf_data_port.getText().trim();
     for( int i= targets.size(); i > 0;) {
     Target target= (Target) targets.elementAt( i - 1);
     if( !target.localPort.equals( localPort)) {
targets.removeElement( target);
     i--;
public void addTargetToList( String localPort,
                         String ip, String port) {     
ListUpdater listUpdater= new ListUpdater( localPort, ip,
                              port, listModel, targets);
SwingUtilities.invokeLater( listUpdater);           
public void rtcpReport( String report) {
     if( rtcpViewer != null) {
     rtcpViewer.report( report);
public void windowClosing( WindowEvent event) {
     config.local_data_port= tf_data_port.getText().trim();
     config.targets= new Vector();
     for( int i= 0; i < targets.size(); i++) {
     Target target= (Target) targets.elementAt( i);
     if( target.localPort.equals( config.local_data_port)) {
          config.addTarget( target.ip, target.port);
     config.media_locator= tf_media_file.getText().trim();
     config.write();
System.exit( 0);
public void windowClosed( WindowEvent event) {
public void windowDeiconified( WindowEvent event) {
public void windowIconified( WindowEvent event) {
public void windowActivated( WindowEvent event) {
public void windowDeactivated( WindowEvent event) {
public void windowOpened( WindowEvent event) {
public void keyPressed( KeyEvent event) {
public void keyReleased( KeyEvent event) {
Object source= event.getSource();
     if( source == list) {
     int index= list.getSelectedIndex();
public void keyTyped( KeyEvent event) {
public void mousePressed( MouseEvent e) {
public void mouseReleased( MouseEvent e) {
public void mouseEntered( MouseEvent e) {
public void mouseExited( MouseEvent e) {
public void mouseClicked( MouseEvent e) {
Object source= e.getSource();
     if( source == list) {
     int index= list.getSelectedIndex();
     if( index != -1) {
          Target target= (Target) targets.elementAt( index);
          tf_remote_address.setText( target.ip);
          tf_remote_data_port.setText( target.port);
     int index= list.locationToIndex( e.getPoint());
public static void main( String[] args) {
new Tx();
class TargetListModel extends AbstractListModel {
private Vector options;
public TargetListModel( Vector options) {
     this.options= options;
public int getSize() {
     int size;
     if( options == null) {
     size= 0;
     } else {
     size= options.size();
     return size;
public Object getElementAt( int index) {
String name;
if( index < getSize()) {
     Target o= (Target)options.elementAt( index);
name= o.localPort + " ---> " + o.ip + ":" + o.port;
     } else {
     name= null;
     return name;
public void setData( Vector data) {
     options= data;
     fireContentsChanged( this, 0, data.size());
class ListUpdater implements Runnable {
String localPort, ip, port;
TargetListModel listModel;
Vector targets;
public ListUpdater( String localPort, String ip, String port,
               TargetListModel listModel, Vector targets) {
     this.localPort= localPort;
     this.ip= ip;
     this.port= port;
     this.listModel= listModel;
     this.targets= targets;
public void run() {
Target target= new Target( localPort, ip, port);
     if( !targetExists( localPort, ip, port)) {
     targets.addElement( target);
listModel.setData( targets);
public boolean targetExists( String localPort, String ip, String port) {
     boolean exists= false;
     for( int i= 0; i < targets.size(); i++) {
     Target target= (Target) targets.elementAt( i);
     if( target.localPort.equals( localPort)
     && target.ip.equals( ip)
          && target.port.equals( port)) {          
          exists= true;
     break;
     return exists;
>>>>>>>>>>>>>>>>>
import java.awt.*;
import java.io.*;
import java.net.InetAddress;
import java.util.*;
import javax.media.*;
import javax.media.protocol.*;
import javax.media.format.*;
import javax.media.control.TrackControl;
import javax.media.control.QualityControl;
import javax.media.rtp.*;
import javax.media.rtp.event.*;
import javax.media.rtp.rtcp.*;
public class AVTransmitter implements ReceiveStreamListener, RemoteListener,
ControllerListener {
// Input MediaLocator
// Can be a file or http or capture source
private MediaLocator locator;
private String ipAddress;
private int portBase;
private Processor processor = null;
private RTPManager rtpMgrs[];
private int localPorts[];
private DataSource dataOutput = null;
private int local_data_port;
private Tx tx;
public AVTransmitter( Tx tx, int data_port) {
     this.tx= tx;
     local_data_port= data_port;
* Starts the transmission. Returns null if transmission started ok.
* Otherwise it returns a string with the reason why the setup failed.
public synchronized String start( String filename, Vector targets) {
     String result;
     locator= new MediaLocator( filename);
     // Create a processor for the specified media locator
     // and program it to output JPEG/RTP
     result = createProcessor();
     if (result != null) {
     return result;
     // Create an RTP session to transmit the output of the
     // processor to the specified IP address and port no.
     result = createTransmitter( targets);
     if (result != null) {
     processor.close();
     processor = null;
     return result;
     // Start the transmission
     processor.start();
     return null;
* Use the RTPManager API to create sessions for each media
* track of the processor.
private String createTransmitter( Vector targets) {
     // Cheated. Should have checked the type.
     PushBufferDataSource pbds = (PushBufferDataSource)dataOutput;
     PushBufferStream pbss[] = pbds.getStreams();
     rtpMgrs = new RTPManager[pbss.length];
     localPorts = new int[ pbss.length];
     SessionAddress localAddr, destAddr;
     InetAddress ipAddr;
     SendStream sendStream;
     int port;
     SourceDescription srcDesList[];
     for (int i = 0; i < pbss.length; i++) {
     // for (int i = 0; i < 1; i++) {
     try {
          rtpMgrs[i] = RTPManager.newInstance();     
          port = local_data_port + 2*i;
          localPorts[ i]= port;
          localAddr = new SessionAddress( InetAddress.getLocalHost(),
                              port);
          rtpMgrs.initialize( localAddr);          
          rtpMgrs[i].addReceiveStreamListener(this);
          rtpMgrs[i].addRemoteListener(this);
     for( int k= 0; k < targets.size(); k++) {
          Target target= (Target) targets.elementAt( k);
          int targetPort= new Integer( target.port).intValue();
          addTarget( localPorts[ i], rtpMgrs[ i], target.ip, targetPort + 2*i);
          sendStream = rtpMgrs[i].createSendStream(dataOutput, i);          
          sendStream.start();
     } catch (Exception e) {
          e.printStackTrace();
          return e.getMessage();
     return null;
public void addTarget( String ip, String port) {
     for (int i= 0; i < rtpMgrs.length; i++) {
     int targetPort= new Integer( port).intValue();
     addTarget( localPorts[ i], rtpMgrs[ i], ip, targetPort + 2*i);
public void addTarget( int localPort, RTPManager mgr, String ip, int port) {
     try {
     SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                              new Integer( port).intValue());
     mgr.addTarget( addr);
     tx.addTargetToList( localPort + "", ip, port + "");
     } catch( Exception e) {
     e.printStackTrace();
public void removeTarget( String ip, String port) {
     try {     
     SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
                              new Integer( port).intValue());
     for (int i= 0; i < rtpMgrs.length; i++) {
     rtpMgrs[ i].removeTarget( addr, "target removed from transmitter.");
     } catch( Exception e) {
     e.printStackTrace();
boolean looping= true;
public void controllerUpdate( ControllerEvent ce) {
     System.out.println( ce);
     if( ce instanceof DurationUpdateEvent) {
     Time duration= ((DurationUpdateEvent) ce).getDuration();
     System.out.println( "duration: " + duration.getSeconds());
     } else if( ce instanceof EndOfMediaEvent) {
     System.out.println( "END OF MEDIA - looping=" + looping);
     if( looping) {
     processor.setMediaTime( new Time( 0));
          processor.start();
public void setLooping( boolean flag) {
     looping= flag;
public void update( ReceiveStreamEvent event) {
     String timestamp= getTimestamp();
     StringBuffer sb= new StringBuffer();
     if( event instanceof InactiveReceiveStreamEvent) {
     sb.append( timestamp + " Inactive Receive Stream");
     } else if( event instanceof ByeEvent) {
     sb.append( timestamp + " Bye");
     } else {
     System.out.println( "ReceiveStreamEvent: "+ event);
     tx.rtcpReport( sb.toString());     
public void update( RemoteEvent event) {     
     String timestamp= getTimestamp();
     if( event instanceof ReceiverReportEvent) {
     ReceiverReport rr= ((ReceiverReportEvent) event).getReport();
     StringBuffer sb= new StringBuffer();
     sb.append( timestamp + " RR");
     if( rr != null) {
          Participant participant= rr.getParticipant();
          if( participant != null) {
          sb.append( " from " + participant.getCNAME());
          sb.append( " ssrc=" + rr.getSSRC());
          } else {
          sb.append( " ssrc=" + rr.getSSRC());
          tx.rtcpReport( sb.toString());
     } else {
     System.out.println( "RemoteEvent: " + event);
private String getTimestamp() {
     String timestamp;
     Calendar calendar= Calendar.getInstance();
     int hour= calendar.get( Calendar.HOUR_OF_DAY);
     String hourStr= formatTime( hour);
     int minute= calendar.get( Calendar.MINUTE);
     String minuteStr= formatTime( minute);
     int second= calendar.get( Calendar.SECOND);
     String secondStr= formatTime( second);
     timestamp= hourStr + ":" + minuteStr + ":" + secondStr;     
     return timestamp;
private String formatTime( int time) {     
     String timeStr;
     if( time < 10) {
     timeStr= "0" + time;
     } else {
     timeStr= "" + time;
     return timeStr;
* Stops the transmission if already started
public void stop() {
     synchronized (this) {
     if (processor != null) {
          processor.stop();
          processor.close();
          processor = null;
     for (int i= 0; i < rtpMgrs.length; i++) {
     rtpMgrs[ i].removeTargets( "Session ended.");
          rtpMgrs[ i].dispose();
public String createProcessor() {
     if (locator == null) {
     return "Locator is null";
     DataSource ds;
     DataSource clone;
     try {
     ds = javax.media.Manager.createDataSource(locator);
     } catch (Exception e) {
     return "Couldn't create DataSource";
     // Try to create a processor to handle the input media locator
     try {
     processor = javax.media.Manager.createProcessor(ds);
     processor.addControllerListener( this);     
     } catch (NoProcessorException npe) {
     return "Couldn't create processor";
     } catch (IOException ioe) {
     return "IOException creating processor";
     // Wait for it to configure
     boolean result = waitForState(processor, Processor.Configured);
     if (result == false)
     return "Couldn't configure processor";
     // Get the tracks from the processor
     TrackControl [] tracks = processor.getTrackControls();
     // Do we have atleast one track?
     if (tracks == null || tracks.length < 1)
     return "Couldn't find tracks in processor";
     // Set the output content descriptor to RAW_RTP
     // This will limit the supported formats reported from
     // Track.getSupportedFormats to only valid RTP formats.
     ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);
     processor.setContentDescriptor(cd);
     Format supported[];
     Format chosen;
     boolean atLeastOneTrack = false;
     // Program the tracks.
     for (int i = 0; i < tracks.length; i++) {
     Format format = tracks[i].getFormat();
     if (tracks[i].isEnabled()) {
          supported = tracks[i].getSupportedFormats();
          // We've set the output content to the RAW_RTP.
          // So all the supported formats should work with RTP.
          // We'll just pick the first one.
          if (supported.length > 0) {
          if (supported[0] instanceof VideoFormat) {
               // For video formats, we should double check the
               // sizes since not all formats work in all sizes.
               chosen = checkForVideoSizes(tracks[i].getFormat(),
                                   supported[0]);
          } else
               chosen = supported[0];
          tracks[i].setFormat(chosen);
          System.err.println("Track " + i + " is set to transmit as:");
          System.err.println(" " + chosen);
          atLeastOneTrack = true;
          } else
          tracks[i].setEnabled(false);
     } else
          tracks[i].setEnabled(false);
     if (!atLeastOneTrack)
     return "Couldn't set any of the tracks to a valid RTP format";
     // Realize the processor. This will internally create a flow
     // graph and attempt to create an output datasource for JPEG/RTP
     // audio frames.
     result = waitForState(processor, Controller.Realized);
     if (result == false)
     return "Couldn't realize processor";
     // Set the JPEG quality to .5.
     setJPEGQuality(processor, 0.5f);
     // Get the output data source of the processor
     dataOutput = processor.getDataOutput();
     return null;
static SessionAddress destAddr1, destAddr2;
* For JPEG and H263, we know that they only work for particular
* sizes. So we'll perform extra checking here to make sure they
* are of the right sizes.
Format checkForVideoSizes(Format original, Format supported) {
     int width, height;
     Dimension size = ((VideoFormat)original).getSize();
     Format jpegFmt = new Format(VideoFormat.JPEG_RTP);
     Format h263Fmt = new Format(VideoFormat.H263_RTP);
     if (supported.matches(jpegFmt)) {
     // For JPEG, make sure width and height are divisible by 8.
     width = (size.width % 8 == 0 ? size.width :
                    (int)(size.width / 8) * 8);
     height = (size.height % 8 == 0 ? size.height :
                    (int)(size.height / 8) * 8);
     } else if (supported.matches(h263Fmt)) {
     // For H.263, we only support some specific sizes.
     if (size.width < 128) {
          width = 128;
          height = 96;
     } else if (size.width < 176) {
          width = 176;
          height = 144;
     } else {
          width = 352;
          height = 288;
     } else {
     // We don't know this particular format. We'll just
     // leave it alone then.
     return supported;
     return (new VideoFormat(null,
                    new Dimension(width, height),
                    Format.NOT_SPECIFIED,
                    null,
                    Format.NOT_SPECIFIED)).intersects(supported);
* Setting the encoding quality to the specified value on the JPEG encoder.
* 0.5 is a good default.
void setJPEGQuality(Player p, float val) {
     Control cs[] = p.getControls();
     QualityControl qc = null;
     VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
     // Loop through the controls to find the Quality control for
     // the JPEG encoder.
     for (int i = 0; i < cs.length; i++) {
     if (cs[i] instanceof QualityControl &&
          cs[i] instanceof Owned) {
          Object owner = ((Owned)cs[i]).getOwner();
          // Check to see if the owner is a Codec.
          // Then check for the output format.
          if (owner instanceof Codec) {
          Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
          for (int j = 0; j < fmts.length; j++) {
               if (fmts[j].matches(jpegFmt)) {
               qc = (QualityControl)cs[i];
               qc.setQuality(val);
               System.err.println("- Setting quality to " +
                         val + " on " + qc);
               break;
          if (qc != null)
          break;
* Convenience methods to handle processor's state changes.
private Integer stateLock = new Integer(0);
private boolean failed = false;
Integer getStateLock() {
     return stateLock;
void setFailed() {
     failed = true;
private synchronized boolean waitForState(Processor p, int state) {
     p.addControllerListener(new StateListener());
     failed = false;
     // Call the required method on the processor
     if (state == Processor.Configured) {
     p.configure();
     } else if (state == Processor.Realized) {
     p.realize();
     // Wait until we get an event that confirms the
     // success of the method, or a failure event.
     // See StateListener inner class
     while (p.getState() < state && !failed) {
     synchronized (getStateLock()) {
          try {
          getStateLock().wait();
          } catch (InterruptedException ie) {
          return false;
     if (failed)
     return false;
     else
     return true;
* Inner Classes
class StateListener implements ControllerListener {
     public void controllerUpdate(ControllerEvent ce) {
     // If there was an error during configure or
     // realiz

I do this all the time, I put my MBP to a 60 inch Sharp. If you have the video working do the simple thing first. Check to make sure your sound is on your TV and Mac. Then if that doesn't work go to System Prefrences and under sound go to a tab called Output and see if your TV is listed and if it is change it to that setting
Hope It Works

Similar Messages

  • Extra hardware interface for transmiting both Audio and video to client ??

    hi i m doing e-learning project. i have to capture video from webcam and voice from headphone and send to client.
    but my code is working fine for either one at a time.
    DO i need some extra hardware interface for Transmitting  both Audio and video to client im using code AVTransmit and AVReceive found from this site only
    After running TX
    i give dsound:// & vfw://0 in Media Locater only sound is received and no vedio
    and when i give vfw://0 in Media Locater only live video is transmited.
    im using JMF1.1.2e.
    if any one know the method to run or cause of it plz reply me soon. i will be very thankfull
    transmiter/server side code .first run TX on server
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.util.*;
    import javax.media.rtp.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    public class Tx extends JFrame implements ActionListener, KeyListener,
    MouseListener, WindowListener {
    Vector targets;
    JList list;
    JButton startXmit;
    JButton rtcp;
    JButton update;
    JButton expiration;
    JButton statistics;
    JButton addTarget;
    JButton removeTarget;
    JTextField tf_remote_address;
    JTextField tf_remote_data_port;
    JTextField tf_media_file;
    JTextField tf_data_port;
    TargetListModel listModel;
    AVTransmitter avTransmitter;
    RTCPViewer rtcpViewer;
    JCheckBox cb_loop;
    Config config;
    public Tx() {
    setTitle( "JMF/RTP Transmitter");
    config= new Config();
    GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
    JPanel p= new JPanel();
    p.setLayout( gridBagLayout);
    JPanel localPanel= createLocalPanel();
    gbc= new GridBagConstraints();
    gbc.gridx= 0;
    gbc.gridy= 0;
    gbc.gridwidth= 2;
    gbc.anchor= GridBagConstraints.CENTER;
    gbc.fill= GridBagConstraints.BOTH;
    gbc.insets= new Insets( 10, 5, 0, 0);
    ((GridBagLayout)p.getLayout()).setConstraints( localPanel, gbc);
    p.add( localPanel);
    JPanel targetPanel= createTargetPanel();
    gbc= new GridBagConstraints();
    gbc.gridx= 1;
    gbc.gridy= 1;
    gbc.weightx= 1.0;
    gbc.weighty= 1.0;
    gbc.anchor= GridBagConstraints.CENTER;
    gbc.fill= GridBagConstraints.BOTH;
    gbc.insets= new Insets( 10, 5, 0, 0);
    ((GridBagLayout)p.getLayout()).setConstraints( targetPanel, gbc);
    p.add( targetPanel);
    JPanel mediaPanel= createMediaPanel();
    gbc= new GridBagConstraints();
    gbc.gridx= 1;
    gbc.gridy= 2;
    gbc.weightx= 1.0;
    gbc.weighty= 1.0;
    gbc.anchor= GridBagConstraints.CENTER;
    gbc.fill= GridBagConstraints.BOTH;
    gbc.insets= new Insets( 10, 5, 0, 0);
    ((GridBagLayout)p.getLayout()).setConstraints( mediaPanel, gbc);
    p.add( mediaPanel);
    JPanel buttonPanel= new JPanel();
    rtcp= new JButton( "RTCP Monitor");
    update= new JButton( "Transmission Status");
    update.setEnabled( false);
    rtcp.addActionListener( this);
    update.addActionListener( this);
    buttonPanel.add( rtcp);
    buttonPanel.add( update);
    gbc= new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 3;
    gbc.gridwidth= 2;
    gbc.weightx = 1.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.insets = new Insets( 5,5,10,5);
    ((GridBagLayout)p.getLayout()).setConstraints( buttonPanel, gbc);
    p.add( buttonPanel);
    getContentPane().add( p);
    list.addMouseListener( this);
    addWindowListener( this);
    pack();
    setVisible( true);
    private JPanel createMediaPanel() {
    JPanel p= new JPanel();
    GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
    p.setLayout( gridBagLayout);
    JLabel label= new JLabel( "Media Locator:");
    gbc= new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.EAST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,10,5);
    ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
    p.add( label);
    tf_media_file= new JTextField( 35);
    gbc= new GridBagConstraints();
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.weightx = 1.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.WEST;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.insets = new Insets( 5,5,10,5);
    ((GridBagLayout)p.getLayout()).setConstraints( tf_media_file, gbc);
    p.add( tf_media_file);
    tf_media_file.setText( config.media_locator);
    cb_loop= new JCheckBox( "loop");
    startXmit= new JButton( "Start Transmission");
    startXmit.setEnabled( true);
    startXmit.addActionListener( this);
    gbc= new GridBagConstraints();
    gbc.gridx = 2;
    gbc.gridy = 0;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.WEST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,10,5);
    ((GridBagLayout)p.getLayout()).setConstraints( cb_loop, gbc);
    p.add( cb_loop);
    cb_loop.setSelected( true);
    cb_loop.addActionListener( this);
    gbc= new GridBagConstraints();
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,10,5);
    ((GridBagLayout)p.getLayout()).setConstraints( startXmit, gbc);
    p.add( startXmit);
    TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Source");
    p.setBorder( titledBorder);
    return p;
    private JPanel createTargetPanel() {
    JPanel p= new JPanel();
    GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
    p.setLayout( gridBagLayout);
    targets= new Vector();
    for( int i= 0; i < config.targets.size(); i++) {
    targets.addElement( config.targets.elementAt( i));
    listModel= new TargetListModel( targets);
    list= new JList( listModel);
    list.addKeyListener( this);
    list.setPrototypeCellValue( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    JScrollPane scrollPane= new JScrollPane( list,
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    gbc= new GridBagConstraints();
    gbc.gridx= 0;
    gbc.gridy= 0;
    gbc.weightx= 1.0;
    gbc.weighty= 1.0;
    gbc.anchor= GridBagConstraints.CENTER;
    gbc.fill= GridBagConstraints.BOTH;
    gbc.insets= new Insets( 10, 5, 0, 0);
    ((GridBagLayout)p.getLayout()).setConstraints( scrollPane, gbc);
    p.add( scrollPane);
    JPanel p1= new JPanel();
    p1.setLayout( gridBagLayout);
    JLabel label= new JLabel( "IP Address:");
    gbc= new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.EAST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,0,5);
    ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
    p1.add( label);
    tf_remote_address= new JTextField( 15);
    gbc= new GridBagConstraints();
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.WEST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,0,5);
    ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_address, gbc);
    p1.add( tf_remote_address);
    label= new JLabel( "Data Port:");
    gbc= new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 1;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.EAST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,0,5);
    ((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
    p1.add( label);
    tf_remote_data_port= new JTextField( 15);
    gbc= new GridBagConstraints();
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.WEST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,0,5);
    ((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_data_port, gbc);
    p1.add( tf_remote_data_port);
    JPanel p2= new JPanel();
    addTarget= new JButton( "Add Target");
    removeTarget= new JButton( "Remove Target");
    p2.add( addTarget);
    p2.add( removeTarget);
    addTarget.addActionListener( this);
    removeTarget.addActionListener( this);
    gbc= new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 2;
    gbc.weightx = 1.0;
    gbc.weighty = 0.0;
    gbc.gridwidth= 2;
    gbc.anchor = GridBagConstraints.CENTER;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.insets = new Insets( 20,5,0,5);
    ((GridBagLayout)p1.getLayout()).setConstraints( p2, gbc);
    p1.add( p2);
    gbc= new GridBagConstraints();
    gbc.gridx= 1;
    gbc.gridy= 0;
    gbc.weightx= 1.0;
    gbc.weighty= 1.0;
    gbc.anchor= GridBagConstraints.CENTER;
    gbc.fill= GridBagConstraints.BOTH;
    gbc.insets= new Insets( 10, 5, 0, 0);
    ((GridBagLayout)p.getLayout()).setConstraints( p1, gbc);
    p.add( p1);
    TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Targets");
    p.setBorder( titledBorder);
    return p;
    private JPanel createLocalPanel() {
    JPanel p= new JPanel();
    GridBagLayout gridBagLayout= new GridBagLayout();
    GridBagConstraints gbc;
    p.setLayout( gridBagLayout);
    JLabel label= new JLabel( "IP Address:");
    gbc= new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.EAST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,0,5);
    ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
    p.add( label);
    JTextField tf_local_host= new JTextField( 15);
    gbc= new GridBagConstraints();
    gbc.gridx = 1;
    gbc.gridy = 0;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.WEST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,0,5);
    ((GridBagLayout)p.getLayout()).setConstraints( tf_local_host, gbc);
    p.add( tf_local_host);
    try {
    String host= InetAddress.getLocalHost().getHostAddress();
    tf_local_host.setText( host);
    } catch( UnknownHostException e) {
    label= new JLabel( "Data Port:");
    gbc= new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 1;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.EAST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,0,5);
    ((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
    p.add( label);
    tf_data_port= new JTextField( 15);
    gbc= new GridBagConstraints();
    gbc.gridx = 1;
    gbc.gridy = 1;
    gbc.weightx = 0.0;
    gbc.weighty = 0.0;
    gbc.anchor = GridBagConstraints.WEST;
    gbc.fill = GridBagConstraints.NONE;
    gbc.insets = new Insets( 5,5,10,5);
    ((GridBagLayout)p.getLayout()).setConstraints( tf_data_port, gbc);
    p.add( tf_data_port);
    tf_data_port.setText( config.local_data_port);
    TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Local Host");
    p.setBorder( titledBorder);
    return p;
    public void actionPerformed( ActionEvent event) {
    Object source= event.getSource();
    if( source == addTarget) {
    String ip= tf_remote_address.getText().trim();
    String port= tf_remote_data_port.getText().trim();
    String localPort= tf_data_port.getText().trim();
    addTargetToList( localPort, ip, port);
    if( avTransmitter != null) {
    avTransmitter.addTarget( ip, port);
    } else if( source == removeTarget) {
    int index= list.getSelectedIndex();
    if( index != -1) {
    Target target= (Target) targets.elementAt( index);
    if( avTransmitter != null) {
    avTransmitter.removeTarget( target.ip, target.port);
    targets.removeElement( target);
    listModel.setData( targets);
    } else if( source == startXmit) {
    if( startXmit.getLabel().equals( "Start Transmission")) {
    int data_port= new Integer( tf_data_port.getText()).intValue();
    avTransmitter= new AVTransmitter( this, data_port);
    avTransmitter.start( tf_media_file.getText().trim(), targets);
    avTransmitter.setLooping( cb_loop.isSelected());
    startXmit.setLabel( "Stop Transmission");
    } else if( startXmit.getLabel().equals( "Stop Transmission")) {
    avTransmitter.stop();
    avTransmitter= null;
    removeNonBaseTargets();
    listModel.setData( targets);
    startXmit.setLabel( "Start Transmission");
    } else if( source == rtcp) {
    if( rtcpViewer == null) {
    rtcpViewer= new RTCPViewer();
    } else {
    rtcpViewer.setVisible( true);
    rtcpViewer.toFront();
    } else if( source == cb_loop) {
    if( avTransmitter != null) {
    avTransmitter.setLooping( cb_loop.isSelected());
    private void removeNonBaseTargets() {
    String localPort= tf_data_port.getText().trim();
    for( int i= targets.size(); i > 0;) {
    Target target= (Target) targets.elementAt( i - 1);
    if( !target.localPort.equals( localPort)) {
    targets.removeElement( target);
    i--;
    public void addTargetToList( String localPort,
    String ip, String port) {
    ListUpdater listUpdater= new ListUpdater( localPort, ip,
    port, listModel, targets);
    SwingUtilities.invokeLater( listUpdater);
    public void rtcpReport( String report) {
    if( rtcpViewer != null) {
    rtcpViewer.report( report);
    public void windowClosing( WindowEvent event) {
    config.local_data_port= tf_data_port.getText().trim();
    config.targets= new Vector();
    for( int i= 0; i < targets.size(); i++) {
    Target target= (Target) targets.elementAt( i);
    if( target.localPort.equals( config.local_data_port)) {
    config.addTarget( target.ip, target.port);
    config.media_locator= tf_media_file.getText().trim();
    config.write();
    System.exit( 0);
    public void windowClosed( WindowEvent event) {
    public void windowDeiconified( WindowEvent event) {
    public void windowIconified( WindowEvent event) {
    public void windowActivated( WindowEvent event) {
    public void windowDeactivated( WindowEvent event) {
    public void windowOpened( WindowEvent event) {
    public void keyPressed( KeyEvent event) {
    public void keyReleased( KeyEvent event) {
    Object source= event.getSource();
    if( source == list) {
    int index= list.getSelectedIndex();
    public void keyTyped( KeyEvent event) {
    public void mousePressed( MouseEvent e) {
    public void mouseReleased( MouseEvent e) {
    public void mouseEntered( MouseEvent e) {
    public void mouseExited( MouseEvent e) {
    public void mouseClicked( MouseEvent e) {
    Object source= e.getSource();
    if( source == list) {
    int index= list.getSelectedIndex();
    if( index != -1) {
    Target target= (Target) targets.elementAt( index);
    tf_remote_address.setText( target.ip);
    tf_remote_data_port.setText( target.port);
    int index= list.locationToIndex( e.getPoint());
    public static void main( String[] args) {
    new Tx();
    class TargetListModel extends AbstractListModel {
    private Vector options;
    public TargetListModel( Vector options) {
    this.options= options;
    public int getSize() {
    int size;
    if( options == null) {
    size= 0;
    } else {
    size= options.size();
    return size;
    public Object getElementAt( int index) {
    String name;
    if( index < getSize()) {
    Target o= (Target)options.elementAt( index);
    name= o.localPort + " ---> " + o.ip + ":" + o.port;
    } else {
    name= null;
    return name;
    public void setData( Vector data) {
    options= data;
    fireContentsChanged( this, 0, data.size());
    class ListUpdater implements Runnable {
    String localPort, ip, port;
    TargetListModel listModel;
    Vector targets;
    public ListUpdater( String localPort, String ip, String port,
    TargetListModel listModel, Vector targets) {
    this.localPort= localPort;
    this.ip= ip;
    this.port= port;
    this.listModel= listModel;
    this.targets= targets;
    public void run() {
    Target target= new Target( localPort, ip, port);
    if( !targetExists( localPort, ip, port)) {
    targets.addElement( target);
    listModel.setData( targets);
    public boolean targetExists( String localPort, String ip, String port) {
    boolean exists= false;
    for( int i= 0; i < targets.size(); i++) {
    Target target= (Target) targets.elementAt( i);
    if( target.localPort.equals( localPort)
    && target.ip.equals( ip)
    && target.port.equals( port)) {
    exists= true;
    break;
    return exists;
    import java.awt.*;
    import java.io.*;
    import java.net.InetAddress;
    import java.util.*;
    import javax.media.*;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import javax.media.control.TrackControl;
    import javax.media.control.QualityControl;
    import javax.media.rtp.*;
    import javax.media.rtp.event.*;
    import javax.media.rtp.rtcp.*;
    public class AVTransmitter implements ReceiveStreamListener, RemoteListener,
    ControllerListener {
    // Input MediaLocator
    // Can be a file or http or capture source
    private MediaLocator locator;
    private String ipAddress;
    private int portBase;
    private Processor processor = null;
    private RTPManager rtpMgrs[];
    private int localPorts[];
    private DataSource dataOutput = null;
    private int local_data_port;
    private Tx tx;
    public AVTransmitter( Tx tx, int data_port) {
    this.tx= tx;
    local_data_port= data_port;
    * Starts the transmission. Returns null if transmission started ok.
    * Otherwise it returns a string with the reason why the setup failed.
    public synchronized String start( String filename, Vector targets) {
    String result;
    locator= new MediaLocator( filename);
    // Create a processor for the specified media locator
    // and program it to output JPEG/RTP
    result = createProcessor();
    if (result != null) {
    return result;
    // Create an RTP session to transmit the output of the
    // processor to the specified IP address and port no.
    result = createTransmitter( targets);
    if (result != null) {
    processor.close();
    processor = null;
    return result;
    // Start the transmission
    processor.start();
    return null;
    * Use the RTPManager API to create sessions for each media
    * track of the processor.
    private String createTransmitter( Vector targets) {
    // Cheated. Should have checked the type.
    PushBufferDataSource pbds = (PushBufferDataSource)dataOutput;
    PushBufferStream pbss[] = pbds.getStreams();
    rtpMgrs = new RTPManager[pbss.length];
    localPorts = new int[ pbss.length];
    SessionAddress localAddr, destAddr;
    InetAddress ipAddr;
    SendStream sendStream;
    int port;
    SourceDescription srcDesList[];
    for (int i = 0; i < pbss.length; i++) {
    // for (int i = 0; i < 1; i++) {
    try {
    rtpMgrs[i] = RTPManager.newInstance();
    port = local_data_port + 2*i;
    localPorts[ i]= port;
    localAddr = new SessionAddress( InetAddress.getLocalHost(),
    port);
    rtpMgrs.initialize( localAddr);
    rtpMgrs[i].addReceiveStreamListener(this);
    rtpMgrs[i].addRemoteListener(this);
    for( int k= 0; k < targets.size(); k++) {
    Target target= (Target) targets.elementAt( k);
    int targetPort= new Integer( target.port).intValue();
    addTarget( localPorts[ i], rtpMgrs[ i], target.ip, targetPort + 2*i);
    sendStream = rtpMgrs[i].createSendStream(dataOutput, i);
    sendStream.start();
    } catch (Exception e) {
    e.printStackTrace();
    return e.getMessage();
    return null;
    public void addTarget( String ip, String port) {
    for (int i= 0; i < rtpMgrs.length; i++) {
    int targetPort= new Integer( port).intValue();
    addTarget( localPorts[ i], rtpMgrs[ i], ip, targetPort + 2*i);
    public void addTarget( int localPort, RTPManager mgr, String ip, int port) {
    try {
    SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
    new Integer( port).intValue());
    mgr.addTarget( addr);
    tx.addTargetToList( localPort + "", ip, port + "");
    } catch( Exception e) {
    e.printStackTrace();
    public void removeTarget( String ip, String port) {
    try {
    SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
    new Integer( port).intValue());
    for (int i= 0; i < rtpMgrs.length; i++) {
    rtpMgrs[ i].removeTarget( addr, "target removed from transmitter.");
    } catch( Exception e) {
    e.printStackTrace();
    boolean looping= true;
    public void controllerUpdate( ControllerEvent ce) {
    System.out.println( ce);
    if( ce instanceof DurationUpdateEvent) {
    Time duration= ((DurationUpdateEvent) ce).getDuration();
    System.out.println( "duration: " + duration.getSeconds());
    } else if( ce instanceof EndOfMediaEvent) {
    System.out.println( "END OF MEDIA - looping=" + looping);
    if( looping) {
    processor.setMediaTime( new Time( 0));
    processor.start();
    public void setLooping( boolean flag) {
    looping= flag;
    public void update( ReceiveStreamEvent event) {
    String timestamp= getTimestamp();
    StringBuffer sb= new StringBuffer();
    if( event instanceof InactiveReceiveStreamEvent) {
    sb.append( timestamp + " Inactive Receive Stream");
    } else if( event instanceof ByeEvent) {
    sb.append( timestamp + " Bye");
    } else {
    System.out.println( "ReceiveStreamEvent: "+ event);
    tx.rtcpReport( sb.toString());
    public void update( RemoteEvent event) {
    String timestamp= getTimestamp();
    if( event instanceof ReceiverReportEvent) {
    ReceiverReport rr= ((ReceiverReportEvent) event).getReport();
    StringBuffer sb= new StringBuffer();
    sb.append( timestamp + " RR");
    if( rr != null) {
    Participant participant= rr.getParticipant();
    if( participant != null) {
    sb.append( " from " + participant.getCNAME());
    sb.append( " ssrc=" + rr.getSSRC());
    } else {
    sb.append( " ssrc=" + rr.getSSRC());
    tx.rtcpReport( sb.toString());
    } else {
    System.out.println( "RemoteEvent: " + event);
    private String getTimestamp() {
    String timestamp;
    Calendar calendar= Calendar.getInstance();
    int hour= calendar.get( Calendar.HOUR_OF_DAY);
    String hourStr= formatTime( hour);
    int minute= calendar.get( Calendar.MINUTE);
    String minuteStr= formatTime( minute);
    int second= calendar.get( Calendar.SECOND);
    String secondStr= formatTime( second);
    timestamp= hourStr + ":" + minuteStr + ":" + secondStr;
    return timestamp;
    private String formatTime( int time) {
    String timeStr;
    if( time < 10) {
    timeStr= "0" + time;
    } else {
    timeStr= "" + time;
    return timeStr;
    * Stops the transmission if already started
    public void stop() {
    synchronized (this) {
    if (processor != null) {
    processor.stop();
    processor.close();
    processor = null;
    for (int i= 0; i < rtpMgrs.length; i++) {
    rtpMgrs[ i].removeTargets( "Session ended.");
    rtpMgrs[ i].dispose();
    public String createProcessor() {
    if (locator == null) {
    return "Locator is null";
    DataSource ds;
    DataSource clone;
    try {
    ds = javax.media.Manager.createDataSource(locator);
    } catch (Exception e) {
    return "Couldn't create DataSource";
    // Try to create a processor to handle the input media locator
    try {
    processor = javax.media.Manager.createProcessor(ds);
    processor.addControllerListener( this);
    } catch (NoProcessorException npe) {
    return "Couldn't create processor";
    } catch (IOException ioe) {
    return "IOException creating processor";
    // Wait for it to configure
    boolean result = waitForState(processor, Processor.Configured);
    if (result == false)
    return "Couldn't configure processor";
    // Get the tracks from the processor
    TrackControl [] tracks = processor.getTrackControls();
    // Do we have atleast one track?
    if (tracks == null || tracks.length < 1)
    return "Couldn't find tracks in processor";
    // Set the output content descriptor to RAW_RTP
    // This will limit the supported formats reported from
    // Track.getSupportedFormats to only valid RTP formats.
    ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);
    processor.setContentDescriptor(cd);
    Format supported[];
    Format chosen;
    boolean atLeastOneTrack = false;
    // Program the tracks.
    for (int i = 0; i < tracks.length; i++) {
    Format format = tracks[i].getFormat();
    if (tracks[i].isEnabled()) {
    supported = tracks[i].getSupportedFormats();
    // We've set the output content to the RAW_RTP.
    // So all the supported formats should work with RTP.
    // We'll just pick the first one.
    if (supported.length > 0) {
    if (supported[0] instanceof VideoFormat) {
    // For video formats, we should double check the
    // sizes since not all formats work in all sizes.
    chosen = checkForVideoSizes(tracks[i].getFormat(),
    supported[0]);
    } else
    chosen = supported[0];
    tracks[i].setFormat(chosen);
    System.err.println("Track " + i + " is set to transmit as:");
    System.err.println(" " + chosen);
    atLeastOneTrack = true;
    } else
    tracks[i].setEnabled(false);
    } else
    tracks[i].setEnabled(false);
    if (!atLeastOneTrack)
    return "Couldn't set any of the tracks to a valid RTP format";
    // Realize the processor. This will internally create a flow
    // graph and attempt to create an output datasource for JPEG/RTP
    // audio frames.
    result = waitForState(processor, Controller.Realized);
    if (result == false)
    return "Couldn't realize processor";
    // Set the JPEG quality to .5.
    setJPEGQuality(processor, 0.5f);
    // Get the output data source of the processor
    dataOutput = processor.getDataOutput();
    return null;
    static SessionAddress destAddr1, destAddr2;
    * For JPEG and H263, we know that they only work for particular
    * sizes. So we'll perform extra checking here to make sure they
    * are of the right sizes.
    Format checkForVideoSizes(Format original, Format supported) {
    int width, height;
    Dimension size = ((VideoFormat)original).getSize();
    Format jpegFmt = new Format(VideoFormat.JPEG_RTP);
    Format h263Fmt = new Format(VideoFormat.H263_RTP);
    if (supported.matches(jpegFmt)) {
    // For JPEG, make sure width and height are divisible by 8.
    width = (size.width % 8 == 0 ? size.width :
    (int)(size.width / 8) * 8);
    height = (size.height % 8 == 0 ? size.height :
    (int)(size.height / 8) * 8);
    } else if (supported.matches(h263Fmt)) {
    // For H.263, we only support some specific sizes.
    if (size.width < 128) {
    width = 128;
    height = 96;
    } else if (size.width < 176) {
    width = 176;
    height = 144;
    } else {
    width = 352;
    height = 288;
    } else {
    // We don't know this particular format. We'll just
    // leave it alone then.
    return supported;
    return (new VideoFormat(null,
    new Dimension(width, height),
    Format.NOT_SPECIFIED,
    null,
    Format.NOT_SPECIFIED)).intersects(supported);
    * Setting the encoding quality to the specified value on the JPEG encoder.
    * 0.5 is a good default.
    void setJPEGQuality(Player p, float val) {
    Control cs[] = p.getControls();
    QualityControl qc = null;
    VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
    // Loop through the controls to find the Quality control for
    // the JPEG encoder.
    for (int i = 0; i < cs.length; i++) {
    if (cs[i] instanceof QualityControl &&
    cs[i] instanceof Owned) {
    Object owner = ((Owned)cs[i]).getOwner();
    // Check to see if the owner is a Codec.
    // Then check for the output format.
    if (owner instanceof Codec) {
    Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
    for (int j = 0; j < fmts.length; j++) {
    if (fmts[j].matches(jpegFmt)) {
    qc = (QualityControl)cs[i];
    qc.setQuality(val);
    System.err.println("- Setting quality to " +
    val + " on " + qc);
    break;
    if (qc != null)
    break;
    * Convenience methods to handle processor's state changes.
    private Integer stateLock = new Integer(0);
    private boolean failed = false;
    Integer getStateLock() {
    return stateLock;
    void setFailed() {
    failed = true;
    private synchronized boolean waitForState(Processor p, int state) {
    p.addControllerListener(new StateListener());
    failed = false;
    // Call the required method on the processor
    if (state == Processor.Configured) {
    p.configure();
    } else if (state == Processor.Realized) {
    p.realize();
    // Wait until we get an event that confirms the
    // success of the method, or a failure event.
    // See StateListener inner class
    while (p.getState() < state && !failed) {
    synchronized (getStateLock()) {
    try {
    getStateLock().wait();
    } catch (InterruptedException ie) {
    return false;
    if (failed)
    return false;
    else
    return true;
    * Inner Classes
    class StateListener implements ControllerListener {
    public void controllerUpdate(ControllerEvent ce) {
    // If there was an error during configure or
    // realize, the processor will be closed
    if (ce instanceof ControllerClosedEvent)
    setFailed();
    // All controller events, send a notification
    // to the waiting thread in waitForState method.
    if (ce instanceof ControllerEvent) {
    synchronized (getStateLock()) {
    getStateLock().notifyAll();
    import java.io.*;
    import java.util.*;
    public class Config {
    private String pathPrefix;
    public String local_data_port;
    public Vector targets;
    public String media_locator;
    public Config() {
    pathPrefix= System.getProperty( "user.home") + File.separator;
    read();
    public void read() {
    targets= new Vector();
    try {
    String path= pathPrefix + "xmit.dat";
    FileInputStream fin= new FileInputStream( path);
    BufferedInputStream bin= new BufferedInputStream( fin);
    DataInputStream din= new DataInputStream( bin);
    local_data_port= readString( din);
    int n_targets= din.readInt();
    for( int i= 0; i < n_targets; i++) {
    String ip= readString( din);
    String port= readString( din);
    targets.addElement( new Target( local_data_port, ip, port));
    media_locator= readString( din);
    fin.close();
    } catch( IOException e) {
    System.out.println( "xmit.dat file missing!");
    local_data_port= "";
    media_locator= "";
    public void write() {
    try {
    String path= pathPrefix + "xmit.dat";
    FileOutputStream fout= new FileOutputStream( path);
    BufferedOutputStream bout= new BufferedOutputStream( fout);
    DataOutputStream dout= new DataOutputStream( bout);
    writeString( dout, local_data_port);
    dout.writeInt( targets.size());
    for( int i= 0; i < targets.size(); i++) {
    Target target= (Target) targets.elementAt( i);
    writeString( dout, target.ip);
    writeString( dout, target.port);
    writeString( dout, media_locator);
    dout.flush();
    dout.close();
    fout.close();
    } catch( IOException e) {
    System.out.println( "Error writing xmit.dat!");
    public String readString( DataInputStream din) {
    String s= null;
    try {
    short length= din.readShort();
    if( length > 0) {
    byte buf[]= new byte[ length];
    din.read( buf, 0, length);
    s= new String( buf);
    } catch( IOException e) {
    System.err.println( e);
    return s;
    public void writeString( DataOutputStream dout, String str) {
    try {
    if( str != null) {
    dout.writeShort( str.length());
    dout.writeBytes( str);
    } else {
    dout.writeShort( 0);
    } catch( Exception e) {
    e.printStackTrace();
    public void addTarget( String ip, String port) {
    targets.addElement( new Target( "", ip, port));
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.util.*;
    import javax.media.rtp.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    public class RTCPViewer extends JFrame implements ActionListener, KeyListener,
    MouseListener, WindowListener {
    private JList list;
    private Vector reports;
    private RtcpListModel listModel;
    private JButton clear;
    private JButton start;
    private boolean recording;
    public RTCPViewer() {
    setTitle( "JMF/RTCP Tracer");
    re

    I'm also getting some really bad sound quality on facebook notifications. I've been forced to disable them they sound horrible like they are clipping.
    Trying to figure out if this is a problem on all Late 2013 15" macbook pros or if mine is defective? This occurs even at around 20-30% volume levels with the Facebook notification sound problems...

  • HOW DO I FIND THE DRIVERS FOR WINDOWS 8 AUDIO AND VIDEO TO UNINSTALL?

    I NEED TO INSTALL AND UNINSTALL WINDOWS 8 DRIVERS FOR AUDIO AND VIDEO SO THAT I MAY REINSTALL THEM, BUT I DON'T KNOW WHERE TO GO TO FIND THEM IN THE FIRST PLACE.
    ALSO, IF I PURCHASE THE PROGRAM FOR UPDATING DRIVERS, WILL THAT PROGRAM ALSO INSTALL THE NEW AUDIO/VIDEO DRIVERS AND UNINSTALL THE FORMER ONES SO THAT I DON'T HAVE TO GO THROUGH SO MANY STEPS BY MYSELF. I FIND THE DIRECTIONS TO DO THIS FOR MYSELF VERY COMPLICATED.

    Hi, I would like to assist you on this matter, however I would need some information from you first.  I see that you are running windows 8. What is the make and model number of the computer that you are using?  The windows 8 that you are using, is it a 32 bit or a 64 bit operating system?  Please write back and I will be happy to do research on this issue.
    Thank you
    Waterboy71
    Click the “Kudos Thumbs Up" at the bottom of this post to say “Thanks” for helping!
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    W a t e r b o y 71
    I work on behalf of HP

  • Do you have fix for Photo Booth Audio and Video are not syncing properly, Do you have fix for Photo Booth Audio and Video are not syncing properly

    My audio and video are not syncing properly. There is a lag from the audio to the video.  Does anyone have a permanent fix for Photo Booth where the Audio and Video are not syncing properly?

    If you monitor the "More Like This" box (top right), other threads appear. Opening them usually displays other threads. You aren't the only one having this problem.
    One person having a Photo Booth problem, although not the same one as you are having solved it by running Disk Utility/Repair Permissions.

  • Does QT Pro for Mac allow webcast recording of Audio and Video?

    While watching a webcast, say from NY Times, I'd like to record both audio and video via QT Pro (for later viewing). Before I spend $$ to upgrade to QT Pro, can this be done?

    If the file being viewed is loaded via the QuickTime browser plug-in (part of the html page code) then the file can be saved (after it has ben downloaded). If the file isn't loaded by the QuickTime browser plug-in then it can't be saved (locally via the Pro upgrade).
    QuickTime Player Pro can't "record" the screen (QuickTime X can, but only at the screen resolution).
    Look in the Help menu of QuickTime X to learn more about the options.

  • I need some Important Trigger Programs for Objects

    I need some Important Trigger Programs for Objects.
    If the program includes the V-array appln, that would be better to.

    There are some drawbacks, running Windows 7 (only) on a Mac via Bootcamp yields less than stellar results, especially with the Retina display.
    And of your traveling, the Mac's high power needs (especially the Retina display) and lack of removable battery are going to be a serious issue. The Retina display is glossy, not ideal for viewing on the road and in varied environments.
    CS4 won't run on the OS X version that comes with a Mac, so your looking at purchasing CS6.
    Support for Windows is more widespread than for Mac's, also if you ever need to redownload OS X to fix a issue, requires a fast reliable Internet connection of the broadband kind.
    If your running Windows on your Mac, you can expect to be on your own and not get support as easily as if you were running it on a regular PC.
    If you can't afford to keep up with CS upgrades, then you shouldn't be considering a Mac because there are more paid upgrades on that than on Windows 7, it's like a annual nightmare.
    IMMO your still better off on a decent,  1920 x 1080 res, matte screen, removable battery (with extras), Win 7 Pro i7 machine (Pro+ runs XP programs) which will stay like it is and get security updates until 2020.
    OS X changes every year and if you don't upgrade, + all your third party software, then about 3 years later your left behind for updates.
    Also you will have to buy Win 7 to run on your Mac, the OEM disks won't work.
    If your trying to budget, then a Mac is certainly not for you.

  • I NEED OVER ALL HARDWARE SUPPORT FOR PAVILION DV6-3043TX

    I NEED OVER ALL HARDWARE SUPPORT FOR PAVILION DV6-3043TX, DISPLAY : FLASHING, HDD : SMART ERROR 301, KEY BOARD : UNSERVISEABLE, USB PORT : DISCONNECTED CONTINUOUSLY, THERMAL SHUT DOWN : RAPIDLY SHUTDOWN DUE TO INCREASE IN TEMP AS I M PERIODICLY CLEANING VENTS AND USING COOL PAD RECOMENDED BY HP DEALER, CD/DVD DRIVE NOT WORKING PROPERLY. SO I NEED SUPPORT FROM HP. MY EMAIL IS {Personal Information Removed}

    The smart error is usually a fatal hard drive error and it probably needs to be replaced.  Here is a quick scan of this forum for smart error 301:
    http://h30434.www3.hp.com/t5/forums/searchpage/tab/message?filter=location&location=forum-board%3ALa...
    I think the high heat situation and damaged your video chip at the very least and someone will have to open the laptop and reflow, reball or replace the video chip. If this machine is in warrantee, you need to call HP or contact them before it is out of warrantee.
    Reminder: Please select the "Accept as Solution" button on the post that best answers your question. Also, you may click on the white star in the "Kudos" button for any helpful post to give that person a quick thanks. These feedback tools help keep our community active, so you receive better answers faster.

  • Do we need to create message interfaces for idocs and rfcs thatare imported

    do we need to create message interfaces for idocs and rfcs thatare imported
    from sap server
    in scenarios from sap system to file or vice versa
    i knew that we need not create message types
    do we also skip creating message interfaces

    hi,
    you create an abstract message interface for IDOC only if you want to use
    them in a BPM (integration process)
    for more about IDOCs have a look at my book:
    <a href="/people/michal.krawczyk2/blog/2006/10/11/xi-new-book-mastering-idoc-business-scenarios-with-sap-xi"><b>Mastering IDoc Business Scenarios with SAP XI</b></a>
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Need the AD Link cable for SB X-Fi and other models. Anyone have an unneeded one?

    Need the AD Link cable for SB X-Fi and other models. Creative is out of stock & discontinued. Anyone have an unneeded one? TIA.

    This will do it perfectly. http://www.cableyourworld.com/prodde...?prod=CYW-1755
    I once swapped such a cable with the one supplied by Creative because I needed a few extra inches of length. Therefore my recommendation is no gamble, it is a certainty. The only reason I would anticipate failure is if the PIN 1 matching is not performed on both the sound card and I/O bay. I have also seen people turn the cable upside down as well.

  • Need to set default values for the fields plant and location in ME21N

    Hi All,
    i need to set default values for the fields plant and location in ME21N tcode.
    In accout assignment if we give 'A' then we need to create asset by clicking the Asset tab,there you have the fields plant and location.
    How to resolve this?
    Thanks in Advance

    hi .
    i needed to set default strorage location and plant in personal setting  in me21n.
    i solve it with this way.
    go to program SAPLMEPERS in se38.
    create new function in output with the sample name :MODULE ZTEST_001 OUTPUT.
    in this module write:
    if MEPOITEM_PROP-WERKS is INITIAL and  MEPOITEM_PROP-LGORT is INITIAL.
    MEPOITEM_PROP-WERKS = '1000'.
    MEPOITEM_PROP-LGORT = '0032'.
    endif.
    this is the solution.
    best regards.
    maryam

  • I bought some in app content for cartoon wars 2 and didnt get it

    i bought some in app content for cartoon wars 2 and didnt get it how can i get a refund or at least get what i purchased in the first place if possible.

    If you haven't received the item then try the 'report a problem' page to contact iTunes Support : http://reportaproblem.apple.com
    If the 'report a problem' link doesn't work then you can try contacting iTunes support via this page : http://www.apple.com/support/itunes/contact/- click on Contact iTunes Store Support on the right-hand side of the page, then Purchases, Billing & Redemption

  • Do I need the same ip address for my computer, router and printer?

    Do I need the same IP address for my computer, router and printer?
    I am trying to reset my router. I have had a lot of problems with "no connection" to my wireless printer. I reinstalled the software and it works for a while.
    Also, lose connection a lot on my laptop or it says I am a guest. My cable provider said it is my router.

    A typical convenient-sized "block" of addresses commonly used is just under 256 addresses. The router almost always is at location xx.yy.zz.1
    By default, DHCP will pass out addresses starting at the next address, xx.yy.zz.2 and keep going up toward 254.
    By convention, the Address at the end of the range ( xx.yy.zz.255 in this case) is a "magic" address used for broadcast messages, and must not be assigned to an actual device.
    To talk to each other easily, the Addresses must "match" in the first three octets of their address, and be different in the last octet, as the above examples do.
    When you produce a reference outside that range, such as asking for Apple's web page at:
    http://17.149.160.49
    It is sent to your Router, which acts as your "agent" in dealing with the Internet. The Router hides your computer's local address and uses its own Public address (provided automatically by your ISP) so send out packets on your behalf, and listen for the answering packets coming back.
    When you use a Router that you control, your computer cannot receive unsolicited queries from the Internet at large because the Router's Firewall discards them. Having a Router that you control means you already have the protection of its Firewall, and need not enable the Firewall built-into your Mac.

  • OT: What viewers do you need to use ALL audio and video files?

    I had a lot of trouble with audio and video files on my PC. I
    now have a
    MacBook Pro, which is a big improvement. But I still
    frequently
    encounter files that I can't use. I try to open them, but
    Apple doesn't
    know what to do with them. For example, I often encounter
    unusable
    videos while perusing news websites. I also have some audio
    files with
    .mva or .mvw extensions that don't work.
    So what viwers/players do I need to download in order to be
    able to play
    every audio/video file that comes my way? iTunes handles .mp3
    files, and
    I also have QuickTime installed. I just viewed another video
    after I
    installed a Flash plugin. What else do I need to install?
    Thanks.
    www.geobop.org - Family Websites
    www.invisible-republic.org - Adult political websites (Mature
    adults only)

    VLC is a big favorite
    http://www.macupdate.com/app/mac/5758/vlc-media-player

  • Does 2 firewire audio and video interface can work together  on FCP ?

    hello,
    My audio interface is a TC Electronic Konnekt 24D
    my video interface is a Canopus ADVC 110
    my hard drives are plugged in firewire too
    and I use Final Cut Pro 5.0.4
    So, the konnekt is recognized by FCP only when the Canopus is not plugged. And even then, the audio sometimes drop out and sometimes causes the app to crash, so that I have to trash the preferences
    When I plug the Canopus, the Konnekt 24D is recognised by OS X but not FCP
    I want to use the voice over tool with the konnekt 24D, so what should I do ?
    Does 2 firewire audio and video interface can work together ?
    If so, maybe I only have a driver problem from TC Electronic.
    But if not, I have to change this interface. Let me know if only RME, MOTU, Presonus and Edirol work, as it is said on apple's webpage for hardware compatibility
    thanks
    eMac G4 1,25 Ghz Mac OS X (10.3.9)
    eMac G4 1,25 Ghz 1 Go RAM DDR   Mac OS X (10.3.9)  

    The 1082 does show up as a possible input when I open
    the VO tool.
    Ok. So an audio interface can be plugged to FCP without crashing the app. Because of the Konnekt driver problem, I wasn't shure of this.
    I use my Aja box for export & external monitoring.
    All my audio sources run back into the Tascam and I
    use the analog mixer in the 1082 to monitor different
    sources.
    When I view external video, the audio follows it to
    keep sync.
    that's exactly what I want with other I/O interfaces. I'd like to monitor video with the canopus ADVC 110, and monitor audio with the Konnekt 24D (or another interface if this one is not compatible)
    I also imput dailies with a deck or a camera (DV or HDV) but that's not the point here.
    I want to imput audio with the Konnekt 24D because of its audio quality. Not audio sync to video dailies. But voice over, in sync with FCP video playback (for me, tha ADVC 110)

  • Syncing Audio and Video but wish for the Audio not to move on timeline?

    Has anyone worked out how to sync audio and video within Premiere Pro but have the Audio stay fixed on the timeline and the video move? Every way I try it Premiere Pro insists on moving the audio. Locking the track does not work as you cannot select the audio within it to Sync with.
    I have a music video shoot with 14 camera angles used on the lead singer (don't ask me why). Multi-camera editing is not an option as there are too many sources for my brand new MacbookPro to handle. I think I would need the computer from Superman II to edit that many clips together.
    What I am doing is syncing the first clip, the one Im going to use as the baseline fall back shot and then I need to sync other clips onto the timeline. However Premiere Pro insists on moving the audio to fit with the video not visa-versa.
    Any help would be appreciated.

    @slitchfield: on the mentioned page, it is stated that "Improvements in screen real estate, with slimmer top status bar and optional (in some apps) bottom toolbar, meaning that all phones will have a larger useful display area."
    But on the E6 the bottom toolbar decreases available screen size in most apps, most noticeable in Web browser where the full view has gone. The bottom toolbar is not optional, you can't configure it yourself.
    And: "Homescreen widgets will now come in up to five different sizes (1x1, 2x1, 4x1, 2x2, 4x4) and allow a greater degree of interactivity.", but on the E6 they are in only one size, always with large borders and other visual effects.
    So beware of differences between phones, perhaps some aspects of Belle work differently depending on the type of device.
    "Notes now brings up a white (and AMOLED-unfriendly...) editing screen.": that you can change by switching themes, "Dark Solid for Anna" does a good job. It is a shame that the lines of Notes have gone though.
    When switching themes, I found you have to restart the phone, otherwise the theme doesn't get properly loaded in all apps. Stopping/starting apps is not enough. So when experimenting and loading one theme after another, you may end up with disfunctional combinations of black-on-black and white-on-white, but it may not be due to the last theme. Also you may end up with a good combination that isn't around anymore the next time you restart your phone.
    Current N900 and former E6 user regretting Belle upgrade
    Devices owned: 2110, 2110i, Cellular Data Card, 8110, 7110, 6210, 6310i, 6100, 9500, 6233, 5140i, 3109c, N900, E6-00

Maybe you are looking for