diff --git a/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java b/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java index 7ec21b4..9302c85 100644 --- a/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java +++ b/android-ffmpeg/src/main/java/nl/bravobit/ffmpeg/FFcommandExecuteAsyncTask.java @@ -18,6 +18,7 @@ class FFcommandExecuteAsyncTask extends AsyncTask<Void, String, CommandResult> i private final long timeout; private long startTime; private Process process; + private StringBuilder outputStringBuilder = new StringBuilder(); private String output = ""; private boolean quitPending; @@ -39,6 +40,7 @@ protected void onPreExecute() { @Override protected CommandResult doInBackground(Void... params) { + CommandResult ret = CommandResult.getDummyFailureResponse(); try { process = shellCommand.run(cmd, environment); if (process == null) { @@ -46,16 +48,19 @@ protected CommandResult doInBackground(Void... params) { } Log.d("Running publishing updates method"); checkAndUpdateProcess(); - return CommandResult.getOutputFromProcess(process); + ret = CommandResult.getOutputFromProcess(process); + outputStringBuilder.append(ret.output); } catch (TimeoutException e) { Log.e("FFmpeg binary timed out", e); - return new CommandResult(false, e.getMessage()); + ret = new CommandResult(false, e.getMessage()); + outputStringBuilder.append(ret.output); } catch (Exception e) { Log.e("Error running FFmpeg binary", e); } finally { Util.destroyProcess(process); } - return CommandResult.getDummyFailureResponse(); + output = outputStringBuilder.toString(); + return ret; } @Override @@ -68,7 +73,6 @@ protected void onProgressUpdate(String... values) { @Override protected void onPostExecute(CommandResult commandResult) { if (ffmpegExecuteResponseHandler != null) { - output += commandResult.output; if (commandResult.success) { ffmpegExecuteResponseHandler.onSuccess(output); } else { @@ -107,7 +111,7 @@ private void checkAndUpdateProcess() throws TimeoutException, InterruptedExcepti return; } - output += line + "\n"; + outputStringBuilder.append(line); outputStringBuilder.append("\n"); publishProgress(line); } } catch (IOException e) {