public void run() { Throwable tr = null; try { List<Object> cmdArray = ((List<Object>) (new ArrayList<Object>(20))); cmdArray.add(((Object) (SettingsAdapter.getInstance().getMPlayerCommand()))); if (MPlayer.isChangingProcessPrioritySupported()) { cmdArray.add("-priority"); cmdArray.add(((Object) (SettingsAdapter.getInstance().getMPlayerProcessPriority().name()))); } cmdArray.add("-ss"); cmdArray.add(((Object) (Long.toString(mOffset)))); cmdArray.add(((Object) (player.mFile.getPath()))); if (logger.isDebugEnabled()) { StringBuilder sb = new StringBuilder(); String s; for (Iterator<Object> iterator = cmdArray.iterator(); iterator.hasNext(); sb.append(s).append(' ')) s = (String) iterator.next(); logger.debug( ((Object) ((new StringBuilder("Executing [")) .append(((Object) (sb))) .append("]") .toString()))); } mProc = Runtime.getRuntime() .exec((String[]) cmdArray.toArray(((Object[]) (new String[cmdArray.size()])))); logger.debug( ((Object) ((new StringBuilder(" as process ")).append(((Object) (mProc))).toString()))); threadStartupDone = true; StreamGobbler errorGobbler = new StreamGobbler("stderr", mProc.getErrorStream()); errorGobbler.start(); StreamGobbler outputGobbler = new StreamGobbler("stdout", mProc.getInputStream()); outputGobbler.start(); int exitCode = mProc.waitFor(); logger.debug( ((Object) ((new StringBuilder()) .append(((Object) (mProc))) .append(" finished with exit code ") .append(exitCode) .toString()))); } catch (Exception e) { logger.error("", ((Throwable) (e))); tr = ((Throwable) (e)); } finally { threadStartupDone = true; terminated = true; } if (tr != null) player.fireExceptionEvent(tr); }