Class BaseStdReader<T>

java.lang.Object
com.github.kokorin.jaffree.process.BaseStdReader<T>
Type Parameters:
T - type of parsed result
All Implemented Interfaces:
StdReader<T>
Direct Known Subclasses:
FFmpegResultReader, FFprobeLogReader

public abstract class BaseStdReader<T> extends Object implements StdReader<T>
BaseStdReader reads std output, parses result and logs, and sends logs to SLF4J with corresponding log level.
  • Constructor Details

    • BaseStdReader

      public BaseStdReader()
  • Method Details

    • read

      public T read(InputStream stdOut)
      Reads provided InputStream until it's depleted.

      This method parses every line to detect ffmpeg log level. Lines with INFO log level are additionally parsed for a result (which may be null because of too strict log level).

      Specified by:
      read in interface StdReader<T>
      Parameters:
      stdOut - input stream to read from
      Returns:
      T if found or null
      Throws:
      JaffreeException - if IOException appears or program ends with error message.
      See Also:
    • getErrorLogMessages

      public List<LogMessage> getErrorLogMessages()
      Get the list of error messages produced by the running process.
      Specified by:
      getErrorLogMessages in interface StdReader<T>
      Returns:
      error messages
    • defaultResult

      protected T defaultResult()
      Returns:
      default result
    • handleLogMessage

      protected abstract T handleLogMessage(LogMessage logMessage)
      Parses single ffmpeg/ffprobe log message.
      Parameters:
      logMessage - log message
      Returns:
      parsed result or null