Relax threading requirements in VideoEncoder.

Previous strict threading requirements we not always followed and this
causes crashes in some scenarios.

Bug: webrtc:7760
Change-Id: I4808edfff19c63a9c4a9585834d46f9c73bb1c4b
Reviewed-on: https://webrtc-review.googlesource.com/13660
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20353}
This commit is contained in:
Sami Kalliomäki
2017-10-19 11:34:08 +02:00
committed by Commit Bot
parent 15c9cf732b
commit 5f5fc6845a
3 changed files with 16 additions and 4 deletions

View File

@ -141,6 +141,9 @@ class HardwareVideoEncoder implements VideoEncoder {
this.forcedKeyFrameNs = TimeUnit.MILLISECONDS.toNanos(forceKeyFrameIntervalMs);
this.bitrateAdjuster = bitrateAdjuster;
this.sharedContext = sharedContext;
// Allow construction on a different thread.
encodeThreadChecker.detachThread();
}
@Override
@ -263,6 +266,9 @@ class HardwareVideoEncoder implements VideoEncoder {
codec = null;
outputThread = null;
// Allow changing thread after release.
encodeThreadChecker.detachThread();
return returnValue;
}
@ -414,7 +420,6 @@ class HardwareVideoEncoder implements VideoEncoder {
@Override
public String getImplementationName() {
encodeThreadChecker.checkIsOnValidThread();
return "HardwareVideoEncoder: " + codecName;
}