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

Unified Diff: talk/app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java

Issue 1393203005: Add option to print peer connection factory Java stack traces. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Use mediaCodecThread for check Created 5 years, 2 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: talk/app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java
diff --git a/talk/app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java b/talk/app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java
index 6a218fd56834f649a05e9972f0550fc999ead744..0af2133c423b176d0facd7c8a07cc23da16b2d74 100644
--- a/talk/app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java
+++ b/talk/app/webrtc/java/src/org/webrtc/MediaCodecVideoEncoder.java
@@ -25,7 +25,6 @@
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package org.webrtc;
import android.media.MediaCodec;
@@ -62,6 +61,7 @@ public class MediaCodecVideoEncoder {
}
private static final int DEQUEUE_TIMEOUT = 0; // Non-blocking, no wait.
+ private static MediaCodecVideoEncoder instance = null;
private Thread mediaCodecThread;
private MediaCodec mediaCodec;
private ByteBuffer[] outputBuffers;
@@ -103,7 +103,7 @@ public class MediaCodecVideoEncoder {
private ByteBuffer configData = null;
MediaCodecVideoEncoder() {
- mediaCodecThread = null;
+ instance = this;
}
// Helper struct for findHwEncoder() below.
@@ -199,6 +199,18 @@ public class MediaCodecVideoEncoder {
}
}
+ public static void printStackTrace() {
+ if (instance != null && instance.mediaCodecThread != null) {
+ StackTraceElement[] mediaCodecStackTraces = instance.mediaCodecThread.getStackTrace();
+ if (mediaCodecStackTraces.length > 0) {
+ Logging.d(TAG, "MediaCodecVideoEncoder stacks trace:");
+ for (StackTraceElement stackTrace : mediaCodecStackTraces) {
+ Logging.d(TAG, stackTrace.toString());
+ }
+ }
+ }
+ }
+
static MediaCodec createByCodecName(String codecName) {
try {
// In the L-SDK this call can throw IOException so in order to work in
@@ -245,6 +257,7 @@ public class MediaCodecVideoEncoder {
mediaCodec = createByCodecName(properties.codecName);
this.type = type;
if (mediaCodec == null) {
+ Logging.e(TAG, "Can not create media encoder");
return false;
}
mediaCodec.configure(
@@ -302,6 +315,8 @@ public class MediaCodecVideoEncoder {
}
mediaCodec = null;
mediaCodecThread = null;
+ instance = null;
+ Logging.d(TAG, "Java releaseEncoder done");
}
private boolean setRates(int kbps, int frameRateIgnored) {

Powered by Google App Engine
This is Rietveld 408576698