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) { |