transcode_file.setTranscodeRequired( false );
        
        if ( job.isStream()){
          
          PluginInterface av_pi = PluginInitializer.getDefaultInterface().getPluginManager().getPluginInterfaceByID( "azupnpav" );
          
          if ( av_pi == null ){
          
            throw( new TranscodeException( "Media Server plugin not found" ));
          }
          
          IPCInterface av_ipc = av_pi.getIPC();
          
          String url_str = (String)av_ipc.invoke( "getContentURL", new Object[]{ source });
          
          
          if ( url_str == null || url_str.length() == 0 ){
            
              // see if we can use the file directly
            
            File source_file = source.getFile();
            
            if ( source_file.exists()){
              
              job.setStream( new BufferedInputStream( new FileInputStream( source_file )));
              
            }else{
              
              throw( new TranscodeException( "No UPnPAV URL and file doesn't exist" ));
            }
          }else{
            
            URL source_url = new URL( url_str );
          
            job.setStream( source_url.openConnection().getInputStream());
          }
        }else{
          
          if ( device.getAlwaysCacheFiles()){
            
            PluginInterface av_pi = PluginInitializer.getDefaultInterface().getPluginManager().getPluginInterfaceByID( "azupnpav" );
            
            if ( av_pi == null ){
            
              throw( new TranscodeException( "Media Server plugin not found" ));
            }
            
            IPCInterface av_ipc = av_pi.getIPC();
            
            String url_str = (String)av_ipc.invoke( "getContentURL", new Object[]{ source });
            
            InputStream  is;