Log export errors that occur after export completes

PiperOrigin-RevId: 518281002
This commit is contained in:
tofunmi 2023-03-21 15:33:58 +00:00 committed by tonihei
parent 0a9a758079
commit 8df4fd769c
3 changed files with 17 additions and 4 deletions

View File

@ -627,9 +627,7 @@ public final class TransformerActivity extends AppCompatActivity {
"exportStopwatch", "exportStopwatch",
}) })
private void onError(ExportException exportException) { private void onError(ExportException exportException) {
if (exportStopwatch.isRunning()) { exportStopwatch.stop();
exportStopwatch.stop();
}
informationTextView.setText(R.string.export_error); informationTextView.setText(R.string.export_error);
progressViewGroup.setVisibility(View.GONE); progressViewGroup.setVisibility(View.GONE);
debugFrame.removeAllViews(); debugFrame.removeAllViews();

View File

@ -418,7 +418,12 @@ public final class Transformer {
} }
} }
/** A listener for the export events. */ /**
* A listener for the export events.
*
* <p>If the export is not cancelled, either {@link #onError} or {@link #onCompleted} will be
* called once for each export.
*/
public interface Listener { public interface Listener {
/** /**

View File

@ -34,6 +34,7 @@ import android.content.Context;
import android.os.HandlerThread; import android.os.HandlerThread;
import android.os.Looper; import android.os.Looper;
import android.os.Message; import android.os.Message;
import android.util.Log;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.media3.common.C; import androidx.media3.common.C;
@ -90,6 +91,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
private static final int MSG_END = 3; private static final int MSG_END = 3;
private static final int MSG_UPDATE_PROGRESS = 4; private static final int MSG_UPDATE_PROGRESS = 4;
private static final String TAG = "TransformerInternal";
private static final int DRAIN_PIPELINES_DELAY_MS = 10; private static final int DRAIN_PIPELINES_DELAY_MS = 10;
private final Context context; private final Context context;
@ -322,6 +324,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
boolean forCancellation = endReason == END_REASON_CANCELLED; boolean forCancellation = endReason == END_REASON_CANCELLED;
@Nullable ExportException releaseExportException = null; @Nullable ExportException releaseExportException = null;
boolean releasedPreviously = released;
if (!released) { if (!released) {
released = true; released = true;
for (int i = 0; i < sequenceAssetLoaders.size(); i++) { for (int i = 0; i < sequenceAssetLoaders.size(); i++) {
@ -378,12 +381,19 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
} }
if (exception != null) { if (exception != null) {
if (releasedPreviously) {
Log.e(TAG, "Export error after export ended: ", exception);
return;
}
ExportException finalException = exception; ExportException finalException = exception;
applicationHandler.post( applicationHandler.post(
() -> () ->
listener.onError( listener.onError(
exportResultBuilder.setExportException(finalException).build(), finalException)); exportResultBuilder.setExportException(finalException).build(), finalException));
} else { } else {
if (releasedPreviously) {
return;
}
applicationHandler.post(() -> listener.onCompleted(exportResultBuilder.build())); applicationHandler.post(() -> listener.onCompleted(exportResultBuilder.build()));
} }
} }