Need some graphics card advice for using 3D and Adobe

Below are the specs for the workstation I just bought. I'm planning on upgrading the graphics card to a GeForce GTX 570 (Fermi) 1280MB. The chassis is pretty small, and I'm concerned that it might get too hot. Does anyone have any advice as to whether this machine can handle this card, and whether or not I should by extra fans, or a water cooling system for the card? Thanks in advance!
Processor & Memory:
Intel® Core™ i7-2600 Processor (3.40GHz)  
Intel® H67 Chipset  
16GB DDR3 Memory (4 slots, 32GB MAX)
  Drives: 
2TB SATA II Hard Drive  
12X Blu-ray Rewritable Drive: Read AND Write CDs/DVDs/Blu-Ray Discs  
Front Panel 19-in-1 digital multimedia card reader
  Graphics: 
Integrated Intel® HD Graphics (dual monitor capable)
  Communications: 
10/100/1000 Mb/s Gigabit  LAN
  Audio: 
Flexible 8-channel audio with jack sensing
  Keyboard & Mouse: 
USB Keyboard  
USB Mouse
  Expandability (total bays/slots): 
2 x 5.25" external (1 occupied)  
1 x 3.5" external (1 occupied)  
4 x 3.5" internal (1 occupied)  
1 x PCI-Ex16   
2 x PCIe x1
  Ports: 
1x DVI  
1x HDMI  
2 x USB 3.0 ports (rear)  
6 x USB 2.0 ports (2 Front, 4 Rear)  
3 x Audio Ports  
1x S/PDIF out  
1x RJ45
  Operating System: 
Genuine Microsoft Windows® 7 Home Premium, 64-bit
  Additional Software: 
Microsoft® Office Starter (reduced functionality versions of Word and Excel; not the full version of Microsoft® Office 2010)  
Symantec Norton Internet Security 2011 (60-day trial)
  Additional Information: 
Dimensions: (HxWxD):  13.9" x 7.1" x 16.9" (approx.)  
Power supply: 350W  
Lifetime, 24/7 toll-free phone support  
1 Year Limited Parts & Labor Warranty  
Email and fax support M-F from 9am-6pm EST

Here are the major failings of that "workstation":
1) The power supply is much too weak to handle an upgrade to a GTX 570. Heck, that PSU might not have been capable of actually handling even its claimed 350W - but more like 200W. As such, it's barely capable of handling even that "workstation"'s base configuration with integrated Intel HD 2000 graphics. You will definitely need a new power supply (at least 550W, but preferably 750W to 850W) right away before you can even upgrade the graphics card at all.
2) That PC has only one hard disk. Adobe requires a minimum of at least one additional hard disk (preferably two or more additional disks) in order to run Premiere Pro acceptably well.
3) Change out the H67 motherboard for a Z68 motherboard. H67 cannot overclock the "limited-overclockable" i7-2600 CPU at all. And even with a Z68 motherboard, the fastest that you can run that non-K i7-2600 would be 3.9GHz.
4) As you stated, that small case will not be enough. You will need a much bigger case to handle the load from Premiere Pro plus all of the hardware upgrades that I'm suggesting.
Also, keep in mind that the company only offers "lifetime" technical support if you don't tinker with the PC's innards at all - not even a minor hardware upgrade or only for a vendor-approved hardware upgrade such as RAM. Once you open that case for a non-vendor-approved hardware upgrade (e.g. an upgraded power supply, an upgraded GPU or upgraded cooling), you will no longer have technical support from that company that you're getting the PC from.
As currently equipped, that system will run about 25 to 30 times slower than a fast PC. Look at payal's 622-second result running 5.0.3 on the PPBM5 results list, with the same CPU, chipset and integrated graphics as your system: It is already more than 12 times slower (in terms of the Relative Performance Index) than a fast system - and that system is already running two disks. With only one disk for absolutely everything - the OS, media, projects, previews, cache and exports - it would be much slower than even that because SATA is only a half-duplex interface, not a full-duplex interface. As a half-duplex interface, SATA can only deliver data transfers in one direction at a time. However, video editing programs like PPro require simultaneous reads and writes. This means that the single disk must wait for data transfers in a given direction to be completed before any data starts transferring in the opposite direction.

Similar Messages

  • Need latest graphic card drivers for Satellite Pro M70

    I've had this PC for only a few months now and i've been disappointed to have heard that my drivers are WAY out of date. The only drivers i can find are on here and they are only v.8 something (although the game reads this as an older version).
    The problem comes in when i want to play games like Half Life 2 and CSS, the game crashes because these drivers are out of date. Where can i get the LATEST drivers for the ATI Mobility Radeon x700 card for the Toshiba Pro M70?

    Hi Stephanus
    First of all you must not be disappointed about that because you must understand few things. Because of notebook construction it is not recommended to force graphic card to run at the limit. Using latest drivers you do exact something like that. More performance means more warmness and I hope yo know very well what happen when notebook is too hot.
    I am not 100% sure but I presume that Toshiba priority is to provide hardware protection. I saw that some other notebook manufacturers offer latest drivers but there is also notice that they are not responsible if something goes wrong.
    One more thing: you have mobile computer and not desktop.

  • Need latest graphic card driver for Satellite 5200-801

    Just cant find latest drivers, 3.6.3.8 not work propertly with this graphic card.
    Plz help.

    Well with drivers (version 3.6.3.8) there are some troubles playing games, where requires higher graphic, screen begins flash or where requires higher rendering i see just triangles. Yes i know that in toshiba webpage exists higer drivers version, the problem is Where?
    So far i found 5.7.8.2 version of drivers for videocard NVIDIA GeForce4 460 go (Toshiba), but realese date 04/11/2004.
    Reggards,
    Raimundas

  • Need advice on graffics card upgrade for use of CS6 Mercury Playback in PR & AE w/ dell xps 9100

    I am curretly running CS6 on my dell xps 9100
    Windows 7 64bit
    12GB Ram
    2TB HD + 0 Rate 2TB External Drive (x2)
    Intel Core i7 930 operating at 2.8 gigahertz with an 8-megabyte cache.
      Memory and Storage  
    The Studio XPS 9100 can be equipped with up to 24 gigabytes of RAM. It uses Tri-Channel DDR3 SDRAM operating at 1333 megahertz. The computer has six DIMMs into which RAM can be plugged. The Studio XPS 9100 may have a hard disk size of up to 2000 gigabytes using SATA drives operating at 7200 rpm.
    Video
    ATI Radeon HD5870 with 1024 megabytes of RAM
      Expansion and Networking  
    The Studio XPS 9100 has one PCI slot, three PCIe x1 slots, one PCIe x8 slot and one PCIe X16 slot. It has four USB 2.0 ports, a 15-in-1 card reader, a headphone port and a microphone port on the front panel. The rear ports into an IEEE 1394a port, surround-sound audio ports, four USB 2.0 ports, one eSATA port, an S/PDIF port and HDMI ports. It has integrated 10/100/1000 Gigabit LAN through the RJ45 port on the back with optional internal Wireless-N. PCI card slot (PCI_1) 26
    PCI Express x1 card slot (PCIE1X3)
    PCI Express x16 card slot (PCIE16_1)
    PCI Express x1 card slot (PCIE1X2)
    PCI Express x1 card slot (PCIE1X1)
    PCI Express x8 card slot (PCIE8_2)
      Chassis and Power  
    The Studio XPS 9100 is 19.4 inches high by 7.8 inches wide by 20.7 inches deep. It weighs about 40 pounds. A 525-watt power supply powers the computer.
    I use Audition, Premiere Pro and After Effects (Dynamic Link) to edit concerts filmed on 4 HD Camera's (m2ts x3 and mp4) I also take and mix 6-8 tracks from soundboard and mix in audition. I find my system is struggling to keep up when I have done some color correction and then try to cut in multi-cam mode. My graphics card does not support CUDA and as stated above my system only has a 525w power supply. So a GeForce GTX 470, 570, 580 would not be compatable. I do not GAME but I work with large HD files (4 angles, 1-2 hours each, audio & effects).
    My trouble is I don't know which one of the graffics cards that support Mercury play back, would be the best for my needs without having to upgrade my power source (if possable). I'm thinking a mid level card and another 8-12 ram upgrade would be more suited (and cheaper) to my needs, unless I'm going to need a power upgrade anyway. If someone could please let me know what card would help me with my worload of these that would be great! I guess what Im saying is can someone tell me which of these is compatable with my system and is it worth it for the change in performance I will see?
    GeForce GTX 285 (Windows and Mac OS)
    GeForce GTX 470 (Windows)
    GeForce GTX 570 (Windows)
    GeForce GTX 580 (Windows)
    NVIDIA® Tesla C2075 card (Windows) when paired with a Quadro card as part of an NVIDIA Maximus™ configuration
    Quadro FX 3700M (Windows)
    Quadro FX 3800 (Windows)
    Quadro FX 3800M (Windows)
    Quadro FX 4800 (Windows and Mac OS)
    Quadro FX 5800 (Windows)
    Quadro 2000 (Windows)
    Quadro 2000D (Windows)
    Quadro 2000M (Windows)
    Quadro 3000M (Windows)
    Quadro 4000 (Windows and Mac OS)
    Quadro 4000M (Windows)
    Quadro 5000 (Windows)
    Quadro 5000M (Windows)
    Quadro 5010M (Windows)
    Quadro 6000 (Windows)
    Quadro CX (Windows)
    Tesla C2075** (Windows)

    Right now I can get a 570 for 175 bucks... R4yMoNd. When I look at the 570 in comparison  to what I have it doesnt look as though itis going to make too much difference. http://www.hwcompare.com/9048/geforce-gtx-570-vs-radeon-hd-5870/ I'm sure however the CUDA cores will speed it right up. I'm no good when it comes to all that so thanks to both you for the help. I have tracked down a 670 in stock (seems tough) for $440 then I need a 700 w power supply for about 70. If the 570 should take care of the problems listed above thats what I'm going for.. Just wasnt sure if it would make the needed difference

  • Need graphics card advice.

    I purchased a new laptop from BB about 6 months ago, a Toshiba Satellite P875. I need a graphics card with at least 128mb of dedicated memory and think I only have a chip with 32mb of dedicated memory. I was wondering if anyone knows what would be good, keeping in mind that cost is an issue. 
    Thanks. 
    Solved!
    Go to Solution.

    http://simswiki.info/wiki.php?title=Game_Help:TS3_System_Requirements
    That link lists all the expansion packs, and if they will, will not, or might work with various graphics cards(the list is fairly extensive).
    My guess is that your CPU picked up the slack for your lacking GPU in the base game, but the later expansion packs seem to weed out all but the higher end cards.
    Unfortunately, you don't have a gaming computer, so the best you can do is see just how far down you can turn the graphics settings/resolutino.
    If you like my post, or solution to your issue/question, go ahead and click on the little star by my name and/or accept the post as the Solution. It makes me happy.
    I'm NOT an employee of Best Buy, or Geek Squad, though I did work as an Agent for a year 5 years ago. None of my posts are to be taken as the official stance that Best Buy will take on your situation. My advice is just that, advice.
    Unfortunately, that's the bad luck of any electronic, there's going to be bad Apples... wait that's a horrible pun.

  • I have upgraded my MacBook Pro 15 late 2011 to 8Gb RAM, now when I go to about this mac in it more info it doesn't show AMD graphics card as it used to before, it just show  Intel HD Graphics 3000 512 MB is that a problem that I need to worry about?

    I have upgraded my MacBook Pro 15 late 2011 to 8Gb RAM, now when I go to about this mac in it more info it doesn't show AMD graphics card as it used to before, it just show  Intel HD Graphics 3000 512 MB is that a problem that I need to worry about?
    and in system report >> hardware >> Graphics/Display >> it shows both grafics card listed.

    Some Mac's when the RAM is increased the Intel HD 3000 integrated graphics will bump itself up to the higher video RAM it takes, this seems to be what occured.
    It also means the dedicated graphics card will be used less, but only so slightly less.
    You obviously still should have both, you can test this by turning off Graphics Switching in Energy Saver, that will use the decicated AMD card all the time.
    You can also run Cinebench and compare the scores here
    Mac video card performance

  • I try to save or delete photos from some SD cards that I use in trail cameras.  The cards are unlocked, but only allow me to read files.  Also, is it unusual for ad tabs to pop up in Safari every time I click on the tab I am using?

    I try to save or delete photos from some SD cards that I use in trail cameras.  The cards are unlocked, but only allow me to read files.  Also, is it unusual for ad tabs to pop up in Safari every time I click on the tab I am using?

    I try to save or delete photos from some SD cards that I use in trail cameras.  The cards are unlocked, but only allow me to read files.  Also, is it unusual for ad tabs to pop up in Safari every time I click on the tab I am using?

  • Graphic card help for Pr and Ae use

    Hi there great community :)
    I'm currently working with only the on-board graphic card, and of course I should upgrade as my GPU is working on 99% on large renders and they are slow...
    I've been recommended the GeForce nvidia 2-4GB gtx 760, but neither the 750 or 760 are listed as supported graphic cards in the premiere cc system requirements.
    Is there a reason for this or should I ignore that?
    Is there a good reason for spending a little extra cash on the 4 GB vs the 2 GB card ?
    What exactly will a graphic card do for my performance? (I'm not a computer expert)
    My general use is premiere cc and after effects cc
    Hope you'll help. Greatly appreciated!
    Nice weekend to all :)
    - Simon

    Premiere accelerates both playback and export with the  GPU. AE Ray Tracer acceleration is far more limited and will only be used for a limited functions.
    Eric
    ADK

  • Need new graphic card for my Satellite Pro P100

    Hi
    My Toshiba Satellite Pro P100 has no display from screen or external monitor it has a seperate Nvidia Geforce go 7600 graphics Card.
    Can any body tell me were I can get a replacement card?
    Thanks

    How you know your notebook has separate graphic card?
    Have you had success to remove it from the mainborad?
    Sorry about these questions but Im a little bit confused. As far as I know graphic card is part of mainborad and cannot be replaced separately.
    http://195.182.196.33/kb0/FAQ7A01ZW0007R01.htm

  • RAM & graphics card advice

    Was hoping to get some advice re: RAM & a graphics card upgrade for my macpro.
    I have been using Premiere pro CS 5.5 & FCP 7.0.3 on my macpro for a little while with no issues
    (along with the other apps in the suites: AE, PS, compressor, DVDSP, etc).
    For the CUDA acceleration the Adobe site recommends that I ugrade to one of these cards:
    GeForce GTX 285 for Mac
    Quadro FX 4800 for Mac
    Quadro 4000 for Mac
    I also just received a copy of Avid Media Composer 5.5 & have been waiting to install it based on Avid approving stability for OS 10.6.8 + not sure how the matrox card is working for them yet either.
    Would anyone recommend one of these above cards specifically for use with all 3 applications?
    Was also looking at putting in 24 GB of RAM as well. Assume I can always use more, but how much?
    Is there anybody running a similar setup as this on OS 10.6.8?
    I know there are a number of editors on here that may use all 3 apps (FCP, PP, & Avid), but I am not sure if they run on the same computer without issues, or what the setup may be.
    From what I have read online it looks like there are lots of issues with the 4000, but it is hard to tell if that is reliable info as some of the posters have found out they had bad RAM, or it was some other problem they introduced.
    Mostly i see that they recommend the GTX 285 card if I can find one, but I am unsure which way to go. Any suggestions?
    MacPro Specs are:
    Mac OS 10.6.8
    MacPro4,1
    Processor - 2 X 2.26 GHz Quad core Intel Xeon (8 cores)
    memory - 6 GB 1066 MHz DDR3
    graphics card - NVIDIA GeForce GT 120 (512MB VRAM)
    also have a matrox mini card installed
    under system profiler - memory it says:
    Type is DDR3 ECC, speed 1066 MHz
    THANKS!

    Last I talked to Matrox, the MC5 driver install for the MXO2 mini is different than the install for CS5. I don't know if they changed that with the new Matrox tools but you will want to contact them and see. If not then you will only be able to setup the Matrox for 1 or the other since I doubt you can install both and they work without issue
    The Quadro 4000 is best for Adobe versus the other 2. The differences between the cards really tont effect MC5 but they recommend a Quadro because that's what they test with.
    Eric
    ADK

  • 2 monitors+1 video projector: do i need 2 graphic cards?

    I m about to buy a new graphic card for my G5: i d like to use 2 monitors (extended desk) + 1 video projector:
    - has anybody successfully done that with their PowerPC G5 and did it actually work?
    - do i really need 2 graphic cards?
    Which card(s) should i get for ultimate result?
    (AquaDB kindly sent me this list but i m clueless http://www.jcsenterprises.com/Japamacs_Page/Blog/4B4B7BA2-7ABB-47F1-87AC-B03D379 42BEE.html)
    Thank you for your experiences.

    Most G5 cards will support 2 monitors on one card, depending on resolution of th Monitors, but it depends what connections the Monitors/Projectors have... running 2 Monitors plus a projector would require 2 Graphic cards.
    Power Mac G5: Display Compatibility
    http://support.apple.com/kb/HT2707?viewlocale=en_US
    http://support.apple.com/kb/sp96

  • Please Help...Can't find graphics card matrix for AE7pro

    Hello Everyone,
    All I can find is the graphics card matrix for CS3. Does anyone know where I can find the matrix for AE7pro?
    Thanks,
    Paul Bolden

    What card do you want to use, if it's a common one perhaps some of us can remember if it was on the list.

  • Graphics card upgrade for HP Pavilion a1020n

    Hi Everyone! I need to upgrade the Graphics card in my HP Pavilion a1020n for windows 7 Aero or windows 8. i need the graphics card to run Minecraft,Roblox,The Sims 3, Roller coaster tycoon 3, decently. Thanks
    This question was solved.
    View Solution.

    Here are the specs for your HP Pavilion a1020n Desktop Computer and it's PTGD-LA (Goldfish3) motherboard. According to the specs, your computer has no dedicated graphics card expansion slot. The only expansion slots available on this system are three traditional and/or conventional PCI slots. One of these slots currently contains a K56flex modem.
    Here is a selection of PCI graphics cards that may meet your requirements. Please note that these cards may also require you to upgrade your power supply as well.
    Please send KUDOs
    Frank
    {------------ Please click the "White Kudos" Thumbs Up to say THANKS for helping.
    Please click the "Accept As Solution" on my post, if my assistance has solved your issue. ------------V
    This is a user supported forum. I am a volunteer and I don't work for HP.
    HP 15t-j100 (on loan from HP)
    HP 13 Split x2 (on loan from HP)
    HP Slate8 Pro (on loan from HP)
    HP a1632x - Windows 7, 4GB RAM, AMD Radeon HD 6450
    HP p6130y - Windows 7, 8GB RAM, AMD Radeon HD 6450
    HP p6320y - Windows 7, 8GB RAM, NVIDIA GT 240
    HP p7-1026 - Windows 7, 6GB RAM, AMD Radeon HD 6450
    HP p6787c - Windows 7, 8GB RAM, NVIDIA GT 240

  • 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

  • Is there example code for using Ni488 and PCI-GPIB card in non controller mode?

    Is there example code for using Ni488 and PCI-GPIB card in non controller mode?

    cymrieg,
    Your code looks good to me. What is the problem? What happens when it fails? What is the IBSTA value on the controller, and at what point in the code does it stop? What is the IBSTA value on the slave, and at what point does it stop?
    One thing is that you might not want to call IBCLR() in a loop on the device. At the beginning of the program is fine...This will send a clear command to the device and will clear out any LACS and TACS bits that might be set. Also your IBDEV call shouldn't be in a loop.
    Hope this helps, but let me know if you need more information.
    Scott B.
    GPIB Software
    National Instruments

Maybe you are looking for

  • Need help on how to specify the current select row in a View Object

    Hi, I have a ADF table on my page, when I was selecting the rows in this table, I want the set and get methods in the ViewRowImpl class to do some customized actions. I found out that each time regardless the row I select in the table, the viewrowimp

  • I get "itunes not installed correctly error 7 windows error 193?

    tried to open itunes today and got "itunes not installed correctly reinstall error 7 windows 193" ?  I did nothing to my system just wanted to open itunes.  I had no problem other times before. If I reinstall will I lose my songs.  I can still get  t

  • Interlace problem with psd. logo.......

    I added a small logo to my project. It is a psd file and it has tearing or interlace problems. I tried to add a de-interlace filter on it---didt'n work I added a gaussian blur to it and it didn't look good. What is the right way to correct the interl

  • Approve and Cancel Button

    In the HR portal,When the user requests for a booking , The Manager Can Approve or Cancel that booking based on the Requirement.But In HR portal,when the manager is logged in, when he opens the booking .it is just showing the Forward and cancel assig

  • Photos on screen saver

    How do I get photos taken at the height that appears at the height of the screen saver, now shows them lying down.