Package com.aelitis.azureus.core.devices

Examples of com.aelitis.azureus.core.devices.TranscodeException


          result.setProfileName( profile.getName());
        }
      }
    }catch( Throwable e ){
     
      throw( new TranscodeException( "File allocation failed", e ));
    }
   
    for ( TranscodeTargetListener l: listeners ){
     
      try{
View Full Code Here


       
        tf.setCacheFile( new File( cache_file.getParentFile(), reverted_name ));
      }
    }catch( Throwable e ){
     
      throw( new TranscodeException( "File name revertion failed", e ));
    }
  }
View Full Code Here

        }
       

      }catch( Throwable e ){
       
        throw( new TranscodeException( "Delete failed", e ));
      }
    }
  }
View Full Code Here

     
      return( getProfile( uid ));
     
    }catch( Throwable e ){
     
      throw( new TranscodeException( "Failed to add profile", e ));
    }
  }
View Full Code Here

             
        PluginInterface av_pi = plugin_interface.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[]{ input });
   
        if ( url_str != null && url_str.length() > 0 ){
       
          source_url = new URL( url_str );
     
          pipe = new TranscodePipeStreamSource( source_url.getHost(), source_url.getPort());
       
          source_url = UrlUtils.setHost( source_url, "127.0.0.1" );

          source_url = UrlUtils.setPort( source_url, pipe.getPort());         
        }
      }
     
      if ( source_file == null && source_url == null ){
     
        throw( new TranscodeException( "File doesn't exist" ));
      }

      final TranscodePipe f_pipe = pipe;
     
      try
        final IPCInterface  ipc = plugin_interface.getIPC();

        final Object analysis_context;
       
        if ( source_url != null ){
         
          analysis_context = ipc.invoke(
            "analyseContent",
            new Object[]{
              source_url,
              profile.getName() });
        }else{
         
          analysis_context = ipc.invoke(
            "analyseContent",
            new Object[]{
              source_file,
              profile.getName() });
        }
       
        final Map<String,Object>  result = new HashMap<String, Object>();
       
        final TranscodeProviderAnalysisImpl analysis =
          new TranscodeProviderAnalysisImpl()
          {
            public void
            cancel()
            {
              try{
                ipc.invoke( "cancelAnalysis", new Object[]{ analysis_context });
               
              }catch( Throwable e ){
               
                Debug.printStackTrace( e );
              }
            }
           
            public boolean
            foundVideoStream()
            {
              return( getLongProperty( PT_VIDEO_WIDTH ) > 0 );
            }
           
            public boolean
            getBooleanProperty(
              int    property )
            {
              if ( property == PT_TRANSCODE_REQUIRED ){
               
                return( getBooleanProperty( "xcode_required", true ));
               
              }else{
               
                Debug.out( "Unknown property: " + property );
               
                return( false );
              }
            }
           
            public void
            setBooleanProperty(
              int    property,
              boolean  value )
            {
              if ( property == PT_FORCE_TRANSCODE ){
               
                result.put( "force_xcode", value );
               
              }else{
               
                Debug.out( "Unknown property: " + property );
              }
            }
           
            public long
            getLongProperty(
              int    property )
            {
              if ( property == PT_DURATION_MILLIS ){
               
                long duration = getLongProperty( "duration_millis", 0 );
               
                long audio_duration  = getLongProperty( "audio_duration_millis", 0 );
               
                if ( duration <= 0 && audio_duration > 0 ){
                 
                  duration = audio_duration;
                }
               
                if ( audio_duration > 0 && audio_duration < duration ){
                 
                  duration = audio_duration;
                }
             
                return( duration );
               
              }else if ( property == PT_VIDEO_WIDTH ){
               
                return( getLongProperty( "video_width", 0 ));
 
              }else if ( property == PT_VIDEO_HEIGHT ){
               
                return( getLongProperty( "video_height", 0 ));
 
              }else if ( property == PT_SOURCE_SIZE ){
               
                return( getLongProperty( "source_size", 0 ));

              }else if ( property == PT_ESTIMATED_XCODE_SIZE ){
               
                return( getLongProperty( "estimated_transcoded_size", 0 ));

              }else{
               
                Debug.out( "Unknown property: " + property );
               
                return( 0 );
              }
            }
           
            protected boolean
            getBooleanProperty(
              String    name,
              boolean    def )
            {
              Boolean b = (Boolean)result.get( name );
             
              if ( b != null ){
               
                return( b );
              }
             
              return( def );
            }
           
            protected long
            getLongProperty(
              String    name,
              long    def )
            {
              Long l = (Long)result.get( name );
             
              if ( l != null ){
               
                return( l );
              }
             
              return( def );
            }
           
            public Map<String,Object>
            getResult()
            {
              return( result );
            }
          };
         
        new AEThread2( "analysisStatus", true )
        {
          public void
          run()
          {
            try{
              while( true ){
                               
                try{
                  Map status = (Map)ipc.invoke( "getAnalysisStatus", new Object[]{ analysis_context });
                 
                  long  state = (Long)status.get( "state" );
                 
                  if ( state == 0 ){
 
                      // running
                   
                    Thread.sleep(50);
                   
                  }else if ( state == 1 ){
                   
                    _adapter.failed( new TranscodeException( "Analysis cancelled" ));
                   
                    break;
                   
                  }else if ( state == 2 ){
                   
                    _adapter.failed( new TranscodeException( "Analysis failed", (Throwable)status.get( "error" )));
                   
                    break;
                   
                  }else{
                   
                    result.putAll((Map<String,Object>)status.get( "result" ));
                   
                    _adapter.complete();
                   
                    break;
                  }
                }catch( Throwable e ){
                 
                  _adapter.failed( new TranscodeException( "Failed to get status", e ));
                 
                  break;
                }
              }
            }finally{
             
              if ( f_pipe != null ){
             
                f_pipe.destroy();
              }
            }
          }
        }.start();
       
        return( analysis );

           
      }catch( Throwable e ){
       
        if ( pipe != null ){
       
          pipe.destroy();
        }
       
        throw( e );
      }
    }catch( TranscodeException e ){
     
      throw( e );
       
    }catch( Throwable e ){
     
      throw( new TranscodeException( "analysis failed", e ));
    }
  }
View Full Code Here

    try{
      PluginInterface av_pi = plugin_interface.getPluginManager().getPluginInterfaceByID( "azupnpav" );
     
      if ( av_pi == null ){
     
        throw( new TranscodeException( "Media Server plugin not found" ));
      }
     
      final TranscodeProviderJob[] xcode_job = { null };
     
      URL         source_url  = null;
      TranscodePipe    pipe    = null;

      if ( direct_input ){
       
        if ( input.getDownloaded() == input.getLength()){
         
          File  file = input.getFile();
         
          if ( file.exists() && file.length() == input.getLength()){
           
            source_url = file.toURI().toURL();
          }
        }
       
        if ( source_url == null ){
       
          manager.log( "Failed to use direct input as source file doesn't exist/incomplete" );
        }
      }
     
      if ( source_url == null ){
       
        IPCInterface av_ipc = av_pi.getIPC();
       
        String url_str = (String)av_ipc.invoke( "getContentURL", new Object[]{ input });
       
       
        if ( url_str == null || url_str.length() == 0 ){
         
            // see if we can use the file directly
         
          File source_file = input.getFile();
         
          if ( source_file.exists()){
           
            pipe =
              new TranscodePipeFileSource(
                  source_file,
                  new TranscodePipe.errorListener()
                  {
                    public void
                    error(
                      Throwable e )
                    {
                      _adapter.failed(
                        new TranscodeException( "File access error", e ));
                     
                      if ( xcode_job[0] != null ){
                       
                        xcode_job[0].cancel();
                      }
                    }
                  });
           
            source_url = new URL( "http://127.0.0.1:" + pipe.getPort() + "/" );
           
          }else{
           
            throw( new TranscodeException( "Source file doesn't exist" ));
          }
        }else{
          source_url = new URL( url_str );
       
          pipe = new TranscodePipeStreamSource( source_url.getHost(), source_url.getPort());
         
          source_url = UrlUtils.setHost( source_url, "127.0.0.1" );

          source_url = UrlUtils.setPort( source_url, pipe.getPort());   
        }
      }
     
      final TranscodePipe f_pipe = pipe;
     
      try
        final IPCInterface  ipc = plugin_interface.getIPC();

        final Object context;
       
        final TranscodeProviderAdapter  adapter;
       
        if ( output.getProtocol().equals( "tcp" )){
         
          adapter = _adapter;
         
          context =
            ipc.invoke(
              "transcodeToTCP",
              new Object[]{
                ((TranscodeProviderAnalysisImpl)analysis).getResult(),
                source_url,
                profile.getName(),
                output.getPort() });
        }else{
         
          final File file = new File( output.toURI());
           
          adapter =
            new TranscodeProviderAdapter()
            {
              public void
              updateProgress(
                int    percent,
                int    eta_secs,
                int    width,
                int    height )
              {
                _adapter.updateProgress( percent, eta_secs, width, height );
              }
             
              public void
              streamStats(
                long          connect_rate,
                long          write_speed )
              {
                _adapter.streamStats(connect_rate, write_speed);
              }
             
              public void
              failed(
                TranscodeException    error )
              {
                try{
                  file.delete();
                 
                }finally{
                 
                  _adapter.failed( error );
                }
              }
             
              public void
              complete()
              {
                _adapter.complete();
              }
            };
           
          context =
            ipc.invoke(
              "transcodeToFile",
              new Object[]{
                ((TranscodeProviderAnalysisImpl)analysis).getResult(),
                source_url,
                profile.getName(),
                file });
        }
 
        new AEThread2( "xcodeStatus", true )
          {
            public void
            run()
            {
              try{
                boolean  in_progress = true;
               
                while( in_progress ){
                 
                  in_progress = false;
                 
                  if ( f_pipe != null ){
                   
                    adapter.streamStats( f_pipe.getConnectionRate(), f_pipe.getWriteSpeed());                   
                  }
                 
                  try{
                    Map status = (Map)ipc.invoke( "getTranscodeStatus", new Object[]{ context });
                   
                    long  state = (Long)status.get( "state" );
                   
                    if ( state == 0 ){
                     
                      int  percent = (Integer)status.get( "percent" );
                     
                      Integer  i_eta  = (Integer)status.get( "eta_secs" );
                     
                      int eta = i_eta==null?-1:i_eta;
                     
                      Integer  i_width  = (Integer)status.get( "new_width" );
                     
                      int width = i_width==null?0:i_width;
                     
                      Integer  i_height  = (Integer)status.get( "new_height" );
                     
                      int height = i_height==null?0:i_height;
                     
                      adapter.updateProgress( percent, eta, width, height );
                     
                      if ( percent == 100 ){
                       
                        adapter.complete();
   
                      }else{
                       
                        in_progress = true;
                     
                        Thread.sleep(1000);
                      }
                    }else if ( state == 1 ){
                     
                      adapter.failed( new TranscodeException( "Transcode cancelled" ));
                     
                    }else{
                     
                      adapter.failed( new TranscodeException( "Transcode failed", (Throwable)status.get( "error" )));
                    }
                  }catch( Throwable e ){
                   
                    adapter.failed( new TranscodeException( "Failed to get status", e ));
                  }
                }
              }finally{
               
                if ( f_pipe != null ){
               
                  f_pipe.destroy();
                }
              }
            }
          }.start();
         
     
        xcode_job[0] =
          new TranscodeProviderJob()
          {
            public void
            pause()
            {
              if ( f_pipe != null ){
             
                f_pipe.pause();
              }
            }
           
            public void
            resume()
            {
              if ( f_pipe != null ){
               
                f_pipe.resume();
              }
            }
 
            public void
            cancel()
            {
              try{
                ipc.invoke( "cancelTranscode", new Object[]{ context });
               
              }catch( Throwable e ){
               
                Debug.printStackTrace( e );
              }
            }
           
            public void
            setMaxBytesPerSecond(
              int     max )
            {
              if ( f_pipe != null ){
             
                f_pipe.setMaxBytesPerSecond( max );
              }
            }
          };
         
        return( xcode_job[0] );
       
      }catch( Throwable e ){
       
        if ( pipe != null ){
       
          pipe.destroy();
        }
       
        throw( e );
      }
    }catch( TranscodeException e ){
     
      throw( e );
       
    }catch( Throwable e ){
     
      throw( new TranscodeException( "transcode failed", e ));
    }
  }
View Full Code Here

  {
    String  file_str = getString( KEY_FILE );
   
    if ( file_str == null ){
     
      throw( new TranscodeException( "File has been deleted" ));
    }
   
    return(new File( file_str ));
  }
View Full Code Here

 
    throws TranscodeException
  {
    if ( isDeleted()){
     
      throw( new TranscodeException( "File has been deleted" ));
    }
  }
View Full Code Here

TOP

Related Classes of com.aelitis.azureus.core.devices.TranscodeException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.