Temporary fix to allow Invoke() calls for VP8 HW encoder and decoder.
BUG= R=jiayl@webrtc.org Review URL: https://webrtc-codereview.appspot.com/24849004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7387 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -1234,6 +1234,13 @@ static int64_t GetCurrentTimeMs() {
|
|||||||
return TickTime::Now().Ticks() / 1000000LL;
|
return TickTime::Now().Ticks() / 1000000LL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Allow Invoke() calls from from current thread.
|
||||||
|
static void AllowBlockingCalls() {
|
||||||
|
Thread* current_thread = Thread::Current();
|
||||||
|
if (current_thread != NULL)
|
||||||
|
current_thread->SetAllowBlockingCalls(true);
|
||||||
|
}
|
||||||
|
|
||||||
// MediaCodecVideoEncoder is a webrtc::VideoEncoder implementation that uses
|
// MediaCodecVideoEncoder is a webrtc::VideoEncoder implementation that uses
|
||||||
// Android's MediaCodec SDK API behind the scenes to implement (hopefully)
|
// Android's MediaCodec SDK API behind the scenes to implement (hopefully)
|
||||||
// HW-backed video encode. This C++ class is implemented as a very thin shim,
|
// HW-backed video encode. This C++ class is implemented as a very thin shim,
|
||||||
@ -1417,6 +1424,7 @@ MediaCodecVideoEncoder::MediaCodecVideoEncoder(JNIEnv* jni)
|
|||||||
j_info_presentation_timestamp_us_field_ = GetFieldID(
|
j_info_presentation_timestamp_us_field_ = GetFieldID(
|
||||||
jni, j_output_buffer_info_class, "presentationTimestampUs", "J");
|
jni, j_output_buffer_info_class, "presentationTimestampUs", "J");
|
||||||
CHECK_EXCEPTION(jni) << "MediaCodecVideoEncoder ctor failed";
|
CHECK_EXCEPTION(jni) << "MediaCodecVideoEncoder ctor failed";
|
||||||
|
AllowBlockingCalls();
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t MediaCodecVideoEncoder::InitEncode(
|
int32_t MediaCodecVideoEncoder::InitEncode(
|
||||||
@ -2142,6 +2150,7 @@ MediaCodecVideoDecoder::MediaCodecVideoDecoder(JNIEnv* jni)
|
|||||||
if (render_egl_context_ == NULL)
|
if (render_egl_context_ == NULL)
|
||||||
use_surface_ = false;
|
use_surface_ = false;
|
||||||
memset(&codec_, 0, sizeof(codec_));
|
memset(&codec_, 0, sizeof(codec_));
|
||||||
|
AllowBlockingCalls();
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaCodecVideoDecoder::~MediaCodecVideoDecoder() {
|
MediaCodecVideoDecoder::~MediaCodecVideoDecoder() {
|
||||||
|
Reference in New Issue
Block a user