Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1286)

Unified Diff: webrtc/sdk/android/api/org/webrtc/VideoFileRenderer.java

Issue 2741743002: IdlingResource for destroy() VideoFileRenderer (Closed)
Patch Set: Using local Collider and AppRTC Server Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/sdk/android/api/org/webrtc/VideoFileRenderer.java
diff --git a/webrtc/sdk/android/api/org/webrtc/VideoFileRenderer.java b/webrtc/sdk/android/api/org/webrtc/VideoFileRenderer.java
index 02a4a3fd0f37488434935c966d18b1b2f7158628..380d063108e271aaf6ec254d61b571c98218d69f 100644
--- a/webrtc/sdk/android/api/org/webrtc/VideoFileRenderer.java
+++ b/webrtc/sdk/android/api/org/webrtc/VideoFileRenderer.java
@@ -12,6 +12,7 @@ package org.webrtc;
import android.os.Handler;
import android.os.HandlerThread;
+import android.os.Looper;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -130,34 +131,36 @@ public class VideoFileRenderer implements VideoRenderer.Callbacks {
*/
public void release() {
final CountDownLatch cleanupBarrier = new CountDownLatch(1);
+ final Looper renderLooper = renderThreadHandler.getLooper();
renderThreadHandler.post(new Runnable() {
@Override
public void run() {
yuvConverter.release();
eglBase.release();
- renderThread.quit();
+ try {
+ for (ByteBuffer buffer : rawFrames) {
+ videoOutFile.write("FRAME\n".getBytes());
+
+ byte[] data = new byte[outputFrameSize];
+ buffer.get(data);
+
+ videoOutFile.write(data);
+
+ nativeFreeNativeByteBuffer(buffer);
+ }
+ videoOutFile.close();
+ Logging.d(TAG,
+ "Video written to disk as " + outputFileName + ". Number frames are "
+ + rawFrames.size() + " and the dimension of the frames are " + outputFileWidth
+ + "x" + outputFileHeight + ".");
+ } catch (IOException e) {
+ Logging.e(TAG, "Error writing video to disk", e);
+ }
+ renderLooper.quit();
cleanupBarrier.countDown();
}
});
ThreadUtils.awaitUninterruptibly(cleanupBarrier);
- try {
- for (ByteBuffer buffer : rawFrames) {
- videoOutFile.write("FRAME\n".getBytes());
-
- byte[] data = new byte[outputFrameSize];
- buffer.get(data);
-
- videoOutFile.write(data);
-
- nativeFreeNativeByteBuffer(buffer);
- }
- videoOutFile.close();
- Logging.d(TAG, "Video written to disk as " + outputFileName + ". Number frames are "
- + rawFrames.size() + " and the dimension of the frames are " + outputFileWidth + "x"
- + outputFileHeight + ".");
- } catch (IOException e) {
- Logging.e(TAG, "Error writing video to disk", e);
- }
}
public static native void nativeI420Scale(ByteBuffer srcY, int strideY, ByteBuffer srcU,

Powered by Google App Engine
This is Rietveld 408576698